Closed magnus-madsen closed 1 year ago
CC @stephentetley I hope this is not too painful.
Maybe we could also use the minor version more for non-breaking versions instead of 0.X.0
for everything.
Thanks Magnus, the changes are fine.
One thing that is a problem is "unexpected non-enum" in Resolver.scala gets throw crashing the compiler if use
statements try to access enum constructors that don't exist. I don't think Flix checked use
imports before so I have quite a few cases in my libraries that were never caught as code got refactored. The stacktrace from the compiler crash doesn't help locate the problem so I've had to append the source location to the "unexpected non-enum" message in a hacked version of the compiler.
Thanks Magnus, the changes are fine.
One thing that is a problem is "unexpected non-enum" in Resolver.scala gets throw crashing the compiler if
use
statements try to access enum constructors that don't exist. I don't think Flix checkeduse
imports before so I have quite a few cases in my libraries that were never caught as code got refactored. The stacktrace from the compiler crash doesn't help locate the problem so I've had to append the source location to the "unexpected non-enum" message in a hacked version of the compiler.
I suspect this will be fixed. We are kind of "in between" the old and new system.
We are currently in a period of breaking changes. I just wanted to collect these in one place.
Recent, current, and on-going breaking changes:
f :: Int32
tof = Int32
.Static
region (esp. for channels / processes).use
syntax, e.g.use X.Y.Z.W
.namespace A/B/C
syntax will becomemod A.B.C
.Result
(and how we can make it into a Monad etc.)let*
etc.rel
andlat
in favor of using an ordinary type alias (but this is not yet possible).EDIT: The good news is that the "core" language (other than channels/processes) remain stable.