Settings
Help

Module object

Module object 

Source
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 πŸ”’
chartab πŸ”’
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.
integer πŸ”’
string πŸ”’
symbol πŸ”’
tagged πŸ”’
vector πŸ”’

FunctionsΒ§

display_slice πŸ”’