▲ | WalterBright 3 days ago | |||||||||||||||||||||||||
The Zortech C/C++ compiler had another memory model: handle pointers. When dereferencing a handle pointer, the compiler emitted code that would swap in the necessary page from expanded memory, extended memory, or disk. It works like a virtual memory system, except that the compiler emitted the necessary code rather than the CPU doing it in microcode. https://www.digitalmars.com/ctg/handle-pointers.html Similarly, Zortech C++ had the "VCM" memory model, which worked like virtual memory. Your code pages would be swapped in an out of memory as needed. | ||||||||||||||||||||||||||
▲ | sitkack 3 days ago | parent | next [-] | |||||||||||||||||||||||||
That is sort of like inlining the demand paging code from the OS. When we have exokernels, they exist as a library so can be delt with like regular code This would be trivial (and fun) to implement with Wasm. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
▲ | jmclnx 2 days ago | parent | prev | next [-] | |||||||||||||||||||||||||
I was a user of Zortech C 1.0. I loved its disp_* functions. One program (com) I wrote with it back then is still being used by at least one person. I talked to them a couple of months ago and they said they still use it. | ||||||||||||||||||||||||||
| ||||||||||||||||||||||||||
▲ | WalterBright 2 days ago | parent | prev [-] | |||||||||||||||||||||||||
Borland's "Zoom" scheme for overlays was well marketed, but not competitive with VCM (because only one overlay could be used at a time). That didn't matter, though, because Zoom was a catchy name and VCM was dull as dirt. Phillipe Kahn is a marketing genius, and I am not. (VCM's overlays could be loaded anywhere, the relocation happened at runtime.) |