Kinda weird, since one would expect the C-runtime be as low level as it gets. Heck, most software makes this assumption, so that has such a huge negative impact on the whole industry.
-
-
Replying to @beast_pixels
The C runtime is not low-level at all. I'm not sure why anyone would think that?
5 replies 0 retweets 12 likes -
Replying to @cmuratori @beast_pixels
I have never seen software NOT using the C runtime library. I thought that you cannot ship a program without it. For example, I thought malloc is the only way to allocate memory, and every program has to call it (calloc and new call it too, right?)
1 reply 0 retweets 3 likes -
Replying to @JustSlavic @beast_pixels
malloc does not map memory. It is just a sub-allocator that sits on top of the OS's memory map, which you can instead just call directly. You call VirtualAlloc on Windows or mmap on Linux. For example, in the refterm stuff I just posted:https://github.com/cmuratori/refterm/blob/91e932f011e12c02a6c609ac59570f5c19fe4727/refterm_example_terminal.c#L6 …
1 reply 0 retweets 16 likes -
Furthermore, the CRT actually doesn't give you access to the powerful memory mapping features of your OS. Again, in refterm, here is a circular buffer implemented entirely with OS allocation calls:https://github.com/cmuratori/refterm/blob/91e932f011e12c02a6c609ac59570f5c19fe4727/refterm_example_source_buffer.c#L15 …
2 replies 2 retweets 16 likes -
That small set of calls is all you need for a circular buffer that works "automatically" - meaning that you never need to check where you are in the buffer, because the memory is mapped twice, so reading off the end of the buffer just reads the beginning of the buffer.
1 reply 1 retweet 13 likes -
This is all stuff that the CPU does automatically for you, but which people don't realize you can do because of libraries like the CRT which were written for the lowest common denominator (eg., chips with no MMU).
1 reply 0 retweets 12 likes -
Replying to @cmuratori @JustSlavic
Well, holy shit. This is quite the revelation.
1 reply 0 retweets 6 likes -
Replying to @beast_pixels @JustSlavic
Now I am wondering what people thought malloc was doing :) If you didn't know it called the OS to change the virtual memory mapping for your process, what _did_ you think it was doing?
3 replies 0 retweets 6 likes -
Replying to @cmuratori @JustSlavic
Basically the assumption was: - The OS provides the C runtime which implements the most efficient and low level routines necessary for programs to work. - The OS provides their own API on top of it, which provides _higher level_ features than the C runtime.
1 reply 0 retweets 8 likes
Whoa! OK. Well, that makes sense. That's not what happens, but I can see why people might think that.
Loading seems to be taking a while.
Twitter may be over capacity or experiencing a momentary hiccup. Try again or visit Twitter Status for more information.