~jojo/Carth

ref: 3f71c019bc3fd13360c650cd69e5e211660db158 Carth/package.yaml -rw-r--r-- 2.2 KiB
Add basic import system. Basically C-style include
Release 0.0.2. Update CHANGELOG & bump version
Add phantom param to Id to encode upper/lower case

Will be useful when instancing Arbitrary, to have separate instances
for each case.
Integrate Match with rest of compiler

Until now, the Match module was just kind of for "testing". It wasn't
actually used in the rest of the compiler. This commit replaces my
earlier, quite bad implementation of pattern matching to decision
trees with Sestofts one.

One major change made along the way was to how sub-matchees are
accessed in the code-generator and interpreter. Previously, the
decision tree was assumed to be structured such that we could simply
extract sub-matchees and put them on a stack. As far as I understand
it, that way is incompatible with Sestofts trees, as they can "skip"
steps that are known to be irrefutable in context. As such, I have
chosen to augment the `Access` type with some additional information,
such that the value of a sub-matchee can simply be generated from the
Access-path as needed, with memoization in the Selections module. See
`genSelect`.
Update resolver to get llvm 9.0.1
Fix test-suite for Megaparsec transition
Change Parsec to Megaparsec

Seems to be better all-around
Fix readme url in package.yaml
Update version in package.yaml to follow PVP

In semver, our current version would be 0.1.0. Convert from semver to
PVP by prefixing with a "0.". I intend to ignore this additional
major-release number, only using the 3 last digits and treat them as
if they were semver.
Update warnings again
Update resolver to lts-14.1 & minor dependency fixes

llvm-hs is now included in stackage, so no longer a need for extra dep
there! Also, I don't remember why parsec was locked to a specific
version unlike all other deps (other than llvm-*), so removed that.
Update warning flags. Default to Weverything, and disable specifics
Update email to jo@jo.zone and copyright year to 2019
Add homepage url (carth.jo.zone) and update git-page url (gitlab)
Compile binary w cc in Compile.hs & Improve command line interface
Prettyprint a couple of error types
Fix typo of executable name
Impl lambdas, closures
f9d42b55 — Johan Johansson 2 years ago
Generate string constants
9fa96556 — Johan Johansson 2 years ago
Start getting some structure. Begin impl gen of const
Next