Questions on which to pick and why have boiled down to the need to separate var into individual sources, each implementing a behavior. Var 4 will apparently implement several options.
The first of these is in how arrays are handled: - GM uses a Map for everything, as some of you know. I guess I could make that an option. - ENIGMA R3 uses a simple dynamic array. It checks for size, then dereferences O(1). - Lua uses both. It would implement no additional overhead from R3, but would add some in computing whether it should use the map for large indexes.
The second of these is in how variants store memory. - GM's method cannot be determined simply through experimentation. Presumably, since it is interpreted, Mark keeps close track of type (an extra check among a map lookup is nothing). - ENIGMA R3 kept variant next to double for max speed, but high memory usage. - I am capable of constructing and destroying string on the site, at the cost of an additional check per = operation (and of course, constructor and destructor call). This will reduce memory usage, but slightly(?) lower speed as well.
I will spend today trying to implement them (among other things).
|