Space and Time

When your C++ program fails to release memory, is real storage gone forever? No, eventually the program ‘quits’ and the OS reclaims all memory allocated to that program. This relies on a reclamation pattern beyond the notions of most languages. The scope is local; when your C++ program ends my storage is not freed. In Keykos there is an object, the space bank, from which you can get space. There is a space bank capability invocation of which recalls all space provided by that bank. That may break references to departed data and programs but these references are replaced by null references that break their users in a highly consistent manner.

Running too long is another hazard typically ignored in language design. In Keykos there is the meter which supplies power, (time that is). Meters form a tree and if someone turns off some meter between you and the ultimate power source your lights go out, but your data survives for the lights may come back.

Meters and banks are recursive, unlike most operating systems which know how to deliver only one level of such function. Language features are normally nested in this way too.