-
Notifications
You must be signed in to change notification settings - Fork 8
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Rewritten Var/values implementation based around flexbuffers
This basically rewrites most of the values layer to be based around values and collections held in flexbuffers. (Flexbuffers are part of the flatbuffers project, and are a kind of zero copy dynamic flatbuffer.) Part of a bigger effort to do the following: * Rip out custom serialization formats and replace with a combination of flatbuffers and flexbuffers * Same for all uses of bincode2 * Clean up the Var interface more broadly Along with this change came major cleanups generally to the interface in the values layer: * Make all index-based operations take an argument stating whether they should operate on one-indexed (like MOO) or zero-indexed (like most languages). This cleans up the ad-hoc way the conversion was happening before, and makes it easier to use languages other than MOO, but using the same values layer. * Move printing of the literal representation of a value out into the `compiler` crate, making it clear that the literal printing is of a MOO value, and leaving room for other languages to have other representations, or to add different pretty printing / decompilation options. * Makes the type system interface more regular in general, providing traits to identify operations for scalar/associative/sequence classes of type. To be done still: * Rip out use of bincode2 and custom serialization code and replace with schema'd flatbuffer entities. * There are definitely lots of excessive copies still happening, and there's likely much more clever things that can be happening inside Var, including switching between a 'building' and 'reading' mode such that a given value doesn't obtain its flexbuffered pickled form until first written to the database. Or something.
- Loading branch information
Showing
100 changed files
with
3,685 additions
and
3,341 deletions.
There are no files selected for viewing
Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.