* Programming / debugging bridge to another device. (2023 Q3)
* Nail heap management. (mostly done but not "nailed")
* Write open source license.
* Other high priority things:
* Android container. (2023 Q4)
## Details so far
## Language Details
* FUBS is basically an imperative language with decent support for closures and class hierarchies.
* Classes can contain inner classes, data fields (singleton or per object), and functions (singleton or bound to an object).
* Inner classes exist solely for the purpose of providing a hierarchical namespace.
...
...
@@ -50,7 +49,7 @@ We have an almost pathological focus on minimalism. We want the functionality o
* Diamond inheritance is prohibited.
* Name collisions for singletons and object fields are prohibited.
* Name collisions for object functions create a function group for [dynamic dispatch](https://en.wikipedia.org/wiki/Dynamic_dispatch).
* Only classes exist at the top level. All functions and data are fields of a class.
* Only classes exist at the top level. All functions and data are fields belonging to a class.
* Strongly typed.
* Supported types:
* Primitive types (passed by value):
...
...
@@ -74,19 +73,9 @@ We have an almost pathological focus on minimalism. We want the functionality o
* 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).
* Static analysis will help catch program errors with respect to prime reference management.
* Copies of prime references are permitted. The static analyzer will try to prove that a copy does not escape the lifetime of its associated prime reference.
* Copies of prime references are permitted. The static analyzer will try to prove that a copy does not escape the lifetime of the object it points to.
* Only rudimentary support for strings.
* A string constant may be specified in a program. It will manifest itself as a mutable array of single bytes.