Update FUBS authored by Eron's avatar Eron
...@@ -59,17 +59,17 @@ We have an almost pathological focus on minimalism. We want the functionality o ...@@ -59,17 +59,17 @@ We have an almost pathological focus on minimalism. We want the functionality o
* Object (instance of a specific class) * Object (instance of a specific class)
* Functions, Closures * Functions, Closures
* Tuples (passed by value) * Tuples (passed by value)
* Decent type inferencing for stack variable types. * Decent type inferencing for stack variables.
* No automatic coercion except for widening of object types. * No automatic coercion except for widening of object types.
* Decent support for [generic programming](https://en.wikipedia.org/wiki/Generic_programming). * Decent support for [generic programming](https://en.wikipedia.org/wiki/Generic_programming).
* Heap management: * Heap management:
* No dynamic reachability analysis except when debugging. * No dynamic reachability analysis except when debugging.
* A reference type may be "prime", which means that it will be automatically freed when it leaves scope (for local variables), or its parent is freed (for object fields). * A reference type may be "prime", which means that it will be automatically freed when it leaves scope (for local variables), or its parent is freed (for object members).
* Static analysis will help catch program errors with respect to prime reference management. * Static analysis will help catch program errors with respect to prime reference management.
* Guaranteed to catch double-free errors. * Guaranteed to catch double-free errors.
* The programmer is expected to avoid use after free errors. Less efficient execution modes can guarantee this with runtime reference counting. * The programmer is expected to avoid use after free errors. Less efficient execution modes can guarantee this with runtime reference counting.
* [Balls](https://en.wikipedia.org/wiki/Exception_handling) * [Balls](https://en.wikipedia.org/wiki/Exception_handling)
* [Closures](https://en.wikipedia.org/wiki/Closure_(computer_programming)) * [Closures](https://en.wikipedia.org/wiki/Closure_(computer_programming))
* Automatic object persistence. * Automatic object persistence.
* Object member fields can be annotated to be persisted. * Object members can be annotated to be persisted.
* Objects are loaded using their 8 word hash as a key (a FUBS word is 4 bytes). * Objects are loaded using their hash as a key.