Neolithic Alpha v0.3.1 - The mysteriously missing release.
Pre-releasev0.3.1 -- Forgot to tag v0.3.... and there have been a few commits since then
Changes from previous version
FEATURES:
-
Added "alias" identifier types to allow name aliasing of variables / variable references.
These help the compiler generate more optimal code when referencing a specific element
of an array of structs. -
Added more functionality to enums:
- Un-named enum lists now work. Each enum value gets added to main symbol table as consts.
- Named-enum lists have their own scope. Using one of the enumeration values within now requires
referencing with the enum list name. This is mainly to put them in-line with how named-structs work.
-
Added a bit more functionality to array references.
-
Started adding some command line parameters.
Run 'neolithic' without any arguments to see the list. -
Started adding more compiler directives.
+ #echo
- Allows user to print debug information during compile-time.
+ #use_quick_index_table
- Allows user to specify that an array should have an index table created to
make element access quicker... mainly useful for array of structs. -
Begun to write test cases for all the features of the compiler.
BUG FIXES / IMPROVEMENTS:
- Fixed some tidbits with the assembly processing and opcode support.
- Switched more of the assembly ops to display as variable references instead of just absolute memory addresses.
- Fixed call-tree analysis to help eliminate some problem cases with overlapping variables.
- Improved assembly output to show missing source code lines case statements, do-while).
- Fixed tokenizer to process tokens up to 82 characters in length.
This was fixed to allow supporting long string literals for #echo.
UNDER THE COVERS:
Compiler memory usage optimization and cleanup.
- Added separate allocation functions to help track memory usage.
- Major cleanup/rework of the compiler symbol table / record subsystem.
Basically, a lot of things were consolidated and/or simplified. - Added in hash-based identifier storage system.