Skip to content

Releases: Lambda-Mountain-Compiler-Backend/lambda-mountain

1.25.23

22 Apr 15:36
a1c2d09

Choose a tag to compare

Features:

  • all deprecated macros are gone. All macros are typed macros now
  • all macros 1.0 infrastructure is gone
  • removed quite a bit of dead code
  • back down to 6189 total lines of code

1.25.22

19 Apr 17:04
8f76739

Choose a tag to compare

Features:

  • all but one macro moved to macros 2.0
  • quite a bit faster, not a lot of memory saved

1.25.21

10 Apr 15:47
2f9d94f

Choose a tag to compare

Features:

  • remove small type allocations and replace with constants
  • only small performance improvements

1.25.20

10 Apr 04:27
d9bb1fb

Choose a tag to compare

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

09 Apr 20:43
cc776c7

Choose a tag to compare

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

31 Mar 18:17
16c58ba

Choose a tag to compare

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

31 Mar 03:35
07e6a0e

Choose a tag to compare

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

29 Mar 19:33
9ca1504

Choose a tag to compare

Features:

  • greatly reduced absolute number of memory allocations
  • down to 14GB total

1.25.15

29 Mar 15:09
47d8542

Choose a tag to compare

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

27 Mar 19:12
3a48ff7

Choose a tag to compare

Features:

  • move a few more data structures from List to Vector
  • ~5% performance improvement runtime and memory usage