Releases: Lambda-Mountain-Compiler-Backend/lambda-mountain
1.24.11
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 asPhi::State
always, no conversion necessary
1.24.10
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
Features:
denormalize
anddenormalize-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
Features:
- remove
with-size
denormalization helper function .enrich
already infersSized
property and is completely sound
1.24.7
- 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
Features:
- github task runners are working again: idky
normalize-strong
is justnormalize
nownormalize
is almost entirely based on weaken quick props and alias rewriting- there is one exception for removing
Tag::*
andField::*
information, which is not supported by weaken yet
- there is one exception for removing
- add some opaque type definitions for
Nil
,Never
, andIO::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
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
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
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
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.