| Commit message (Collapse) | Author | Files | Lines |
|
|
|
for debug info.
|
|
- The "impl" methods in lambda classes are now marked "final"
|
|
|
|
|
|
to Lux's, while also allowing non-literal tags that can be defined as constants elsewhere.
- Added some extra JVM ops for bit-fiddling that were missing.
|
|
(universal-quantification / AllT) was not being taken into account properly when destructuring.
- Fixed a compiler error wherein the types of definitions didn't generate (correctly) the structures necessary for storage inside the class _meta(data) field.
- Improved both the "open" and "import" macros with extra features.
|
|
|
|
|
|
- Implemented module-caching to avoid the waiting too much during program compilation.
|
|
|
|
same purpose.
- Optimized some code a bit.
|
|
- Also removed several unused definitions.
|
|
- Made some changes to the way type-checking is performed on variants, records & tuples in order to improve the speed of type-checking.
|
|
|
|
- WORKING ON DEBUGGING A COMPILER ERROR: java.lang.IncompatibleClassChangeError
|
|
- Compilation units are not longer wrapped inside Expression/Statement variants.
- analyse-apply* no longer returns lists.
|
|
|
|
- Fixed several bugs within lux.lux.
- Renamed "check'" to ":'" and "coerce" to ":!".
|
|
- Fixed an error in lux.base/analyse-2
- Modified the analyser so the symbols that identify all of the special forms must mandatorily have "" as their prefix.
- Fixed a bug in the binary operations at lux.analyser.host wherein the types where being omitted.
- Fixed a bug when closing-over variables inside lambda bodies wherein the names of bindings where being stores as (incomparable) arrays, instead of as (comparable) strings.
|
|
- Added more cases for totality checking in pattern-matching.
- Fixed a bug when type-checking function application that used the exo-type for both the function being applied as to the application itself.
- Fixed a few minor bugs scattered around that had to do with wrong number of arguments being passed to functions.
|
|
- :let within |do now uses |let instead of let.
- The analyser now does totality analysis and structures the pattern matching, with the compiler only compiling the generated structures.
- Local bindings with case' can now be prefixed arbitrarily. (Note: must do the same with functions).
|
|
- Removed exec, get@' & set@' special forms, as they are not primitive enough as to be part of the language.
|
|
|
|
- System works correctly once more.
|
|
- Changed indents to symbols.
- Corrected some of the bugs in the system. Many more still awaiting fixes.
|
|
- Finished moving the codebase to use the functions from lux.base with the "&" prefix.
|
|
- Migrated more of the compiler's data-structures to using Lux's format.
|
|
- Finishing implementing the type-system.
- Migrating more of the data-structures used in the compiler to the ones used by Lux itself.
|
|
- Fixed a bug when compiling lambda instantiation (the bug had to do with compiling the env variables passed to the closure).
- Fixed a bug in the lexer wherein the backquote (`) wasn't being recognized.
|
|
now "jvm-" instead of "jvm;"
- Fixed the bug where the same local vars/registers were getting registered more than once and the class-verifier complained.
- Fixed a bug where the "end label" for pattern-matching bodies was never inserted.
- Simplified the analyser by removing "self" calls and having self be just a local for the "this" object (register 0).
- Removed the lambda-folding optimization.
- The compiler state now holds and environment for naming globally-scoped lambdas.
|
|
of using custom classes for that.
|
|
function self-calls are broken).
Also fixed several small bugs, including the one that caused ".apply" to never make progress (always returned a function with count 0).
Also fixed an issue with scopes that caused class-names to be generated improperly.
|
|
- Simplified the code for handling definitions and macros.
- Slightly changed the names of the fields of tuple classes.
- Added a (currently empty) optimization phase.
|
|
- Split lux/analyser/env into "env" & "def" modules.
- Renamed lux/analyser/util to "base".
|
|
## "compiler" subsystem now (almost) compiles.
|
|
|