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
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 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 firstname.lastname@example.org 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
Generate string constants
Start getting some structure. Begin impl gen of const