Expand description
The core object defintions.
Objects are implemented as rust enum with at max a 56 bit payload. This means that it will always be 64 bits. 32 bit systems are not supported. Because of this it gives us more flexibility in the amount of information we can encode in the object header. For example, we can have 255 variants of objects before we need to box the object header. We are making the assumption that pointers are no bigger then 56 bits and that they are word aligned. All objects should be bound to a lifetime to ensure sound operation of the vm.
Modulesยง
- buffer ๐
- cell ๐
- convert ๐This module holds implementation of conversion functions. Much of this code could be replaced with macros or specialized generics if those are ever stabalized.
- float ๐
- func ๐
- hashtable ๐The design of the hashtable is based on the requirments we have. First is we need it to support being both thread local and global. Second we need iterate and mutate at the same time. Third we need to be able to clean up the heap allocation when it is garbage collected.
- string ๐
- symbol ๐
- tagged ๐
- vector ๐
Functionsยง
- display_
slice ๐