Releases: Lambda-Mountain-Compiler-Backend/lambda-mountain
Releases · Lambda-Mountain-Compiler-Backend/lambda-mountain
1.25.23
1.25.22
Features:
- all but one macro moved to macros 2.0
- quite a bit faster, not a lot of memory saved
1.25.21
Features:
- remove small type allocations and replace with constants
- only small performance improvements
1.25.20
Features:
- add a term count profiler that counts how many terms are allocated before and after preprocessing/typechecking
- add support for suffix rewriting in macros 2.0
- move some core macros to macros 2.0 (no significant performance impact so far)
- move some redundant temporary allocations to be constants
- it is easy to underestimate how impactful this would be
t2(c"Arrow", t0(c"Any"), t0(c"Any"))creates at least 3 new heap allocations
- down to 9.5GB run allocation for GC-disabled compiler
- down to 7.8 minutes for all tests to run from 9.5 minutes last commit
1.25.19
Features:
- new Type case TId for numerical ids
- change Phi::Ids to use TIds instead of string identifiers
- integers don't use any heap memory
- integers are very fast to compare because they never need to load indirect memory like strcmp
- about 10-20x speedup and significantly reduced memory usage for GC enabled compiler
- full test suite takes 9.5 minutes to run with GC enabled for all tests
1.25.18
Features:
- replace memset calls with universal zero initializer (7% speedup overall)
- silence a linear leaked variable in if cases
- this needs to be released not ignored, so next commit will fix this
- otherwise it would be a memory leak
1.25.17
Features:
- moved AST.Typedef case from direct declaration to indirect declaration behind a pointer
- this reduces the size of the AST type by 90%
- speed is improved by about 30% (somehow memory size reduction helps here with zeroing and moves)
- resulting in a total memory usage reduction in the compiler of 40% (9GB total with GC disabled)
- PCTX was heavily affected by this because it contains a blame field and has many rows
- so this will affect the memory usage of GC-enabled compiler more than current one
1.25.16
Features:
- greatly reduced absolute number of memory allocations
- down to 14GB total
1.25.15
Features:
- add ability to count type allocations to profile memory usage
- lots of type allocations (potentially, hard to get rid of)
- lots of U8, and S allocations (no idea why this is so high)
1.25.14
Features:
- move a few more data structures from List to Vector
- ~5% performance improvement runtime and memory usage