Skip to content

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

1.24.11

17 Oct 15:08
4712cd3

Choose a tag to compare

Features:

  • Stabilize phi types in tctx.apply which is the core function application logic
  • This requires:
    • phi types are added as necessary
    • phi types are maintained as necessary
    • phi types are removed as necessary
  • The normalization of phi types here is fairly strict
  • like (a,b) -> (a,a) must work for phi types, which is subtle
  • removed Phi::Initialize, which can just be kept as Phi::State always, no conversion necessary

1.24.10

16 Oct 22:52
127fbb1

Choose a tag to compare

Features:

  • isolate and stabilize the core logic of function application
  • many regressions on phi 2.0 tests, but these will be fixed progressively
  • create promises tests for apply logic

The core .apply function application logic is now finally stable and has comments explaining each part.

There was a full regression on all lib2 promises because Phi 2.0 support was lost temporarily. This is the next thing that will be stabilized, then finally we can have some stable primitives to work with here.

Least-upper-bound was also lost somehow. The implementation was fragile, and it broke. I think the problem is non-exact matches like T<A + B> x T<A>, where A => B but I haven't confirmed this suspicion yet.

1.24.9

14 Oct 02:00
d771c59

Choose a tag to compare

Features:

  • denormalize and denormalize-strong are in V2/3 Common
  • we will move towards denormalize-strong as the default and just call it .denormalize, but performance-wise we can't yet
  • had a mix-up deploying changes before waiting to see checks pass
  • then accidentally reverted instead of forwarded the final fixes
  • this is why we make lots of releases, to snapshot the repo (just in case)

1.24.8

13 Oct 19:59
593e0ec

Choose a tag to compare

Features:

  • remove with-size denormalization helper function
  • .enrich already infers Sized property and is completely sound

1.24.7

13 Oct 01:08
f42f64f

Choose a tag to compare

  • add support for weakening Tag:: style prefix wildcards
  • add support for unifying Tag:: style prefix wildcards
  • add tests for unifying Tag:: style prefix wildcards
  • rename normalize to .normalize
  • stabilize .normalize
  • remove outdated TUTORIAL folder

1.24.6

12 Oct 19:45
bcf7a26

Choose a tag to compare

Features:

  • github task runners are working again: idky
  • normalize-strong is just normalize now
  • normalize is almost entirely based on weaken quick props and alias rewriting
    • there is one exception for removing Tag::* and Field::* information, which is not supported by weaken yet
  • add some opaque type definitions for Nil, Never, and IO::File
  • remove normalize cache, which frees up some memory (maybe 1GB tops)
    • maybe this has something to do with Github task runners, but I kind of doubt it

1.24.5

12 Oct 01:59
d0b1e35

Choose a tag to compare

Features:

  • migrate more features to V23COMMON
    • tctx operations
    • ast constructors
    • quick props
  • upgrade strong normalization to support weakening of T<A => B> type inferences

1.24.4

08 Oct 16:16
078911a

Choose a tag to compare

Features:

  • lots of code moved into V23COMMON folder to be stabilized for V3 release
  • lots of promises tested to cover V3 features
  • 63% speedup of compile times
  • for some reason tests on Github are timing out now (idky), they take 2 minutes to run on my machine

1.24.3

26 Sep 02:06
f333647

Choose a tag to compare

Features:

  • lots of fixes for phi type propagation
  • fix some GC errors in lib2
  • phi seems to be working well enough finally to start getting some real work done
  • there is like 90% code coverage of phi types used throughout type inference and hopefully the other 10% is just working as intended
  • going to test with gcc for now until V3, because for whatever reason it crashes better/sooner when memory is corrupted

1.24.2

18 Sep 02:39
f0971ef

Choose a tag to compare

Features:

  • GC-enabled Vector
  • GC-enabled 2/3/4-Tuples
  • GC-enabled Type constructors

Now when something is wrong, it usually isn't GC-related. In order to get here there have been a lot of tricky bugs to mill through.

Fixed a major dumb bug with OwnedData where release would free owned elements always, not just when reference-count hit 0. I have no idea how this was not crashing before...

Phi typing is messy and inconsistent, but hopefully we can do workarounds until we reach V3.