aboutsummaryrefslogtreecommitdiff
path: root/src/lux/compiler/lambda.clj (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-09-29- Cleaned-up the comments from the codebase.Eduardo Julian1-1/+0
2015-09-16- Now the file-name & the line numbers are stored inside the .class files ↵Eduardo Julian1-4/+6
for debug info.
2015-09-08- A few minor fixes in the standard library.Eduardo Julian1-33/+36
- The "impl" methods in lambda classes are now marked "final"
2015-08-28Changed the license from EPL to MPL.Eduardo Julian1-7/+4
2015-08-08Refactored the tags for the analyser.Eduardo Julian1-3/+3
2015-08-06- Refacted the compiler by shifting to a pattern-matching syntax more akin ↵Eduardo Julian1-8/+8
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.
2015-07-26- Fixed a pattern-matching error where generalizations of types ↵Eduardo Julian1-1/+1
(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.
2015-07-25/cache and /output now using same format.Eduardo Julian1-6/+7
2015-07-19Added copyright notice on all files that missed it.Eduardo Julian1-0/+8
2015-06-20- The directory for source-code is now named "input".Eduardo Julian1-2/+3
- Implemented module-caching to avoid the waiting too much during program compilation.
2015-05-14- Removed the apparently unnecessary total-locals.Eduardo Julian1-7/+2
2015-05-07- Eliminated #eval-ctor from the HostState and now #seed is used for the ↵Eduardo Julian1-2/+2
same purpose. - Optimized some code a bit.
2015-05-06- Made several optimizations to the compiler.Eduardo Julian1-11/+5
- Also removed several unused definitions.
2015-05-06- Removed all the unnecesary comments.Eduardo Julian1-16/+4
- Made some changes to the way type-checking is performed on variants, records & tuples in order to improve the speed of type-checking.
2015-05-03- Optimized the compiler by eliminating reflection.Eduardo Julian1-34/+7
2015-05-02- Implemented some new macros & functions in lux.lux.Eduardo Julian1-33/+35
- WORKING ON DEBUGGING A COMPILER ERROR: java.lang.IncompatibleClassChangeError
2015-05-01Optimized the compiler with 2 tweaks:Eduardo Julian1-9/+9
- Compilation units are not longer wrapped inside Expression/Statement variants. - analyse-apply* no longer returns lists.
2015-04-25- No more Any (Top) and Nothing (Bottom) types.Eduardo Julian1-1/+1
2015-04-23- Removed analyse-2, as it was redundant.Eduardo Julian1-17/+45
- Fixed several bugs within lux.lux. - Renamed "check'" to ":'" and "coerce" to ":!".
2015-04-19- Fixed several bugs in lux.luxEduardo Julian1-1/+2
- 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.
2015-04-09- Function names & parameters now take prefixes into account.Eduardo Julian1-2/+2
- 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.
2015-04-08- Renamed exec to |do.Eduardo Julian1-4/+4
- :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).
2015-03-30- Beginning to add type-system + type-inferencer.Eduardo Julian1-1/+1
- Removed exec, get@' & set@' special forms, as they are not primitive enough as to be part of the language.
2015-03-21- Added module-name aliasing.Eduardo Julian1-2/+4
2015-03-21[2nd Super Refactoring That Breaks The System: Part 7]Eduardo Julian1-2/+2
- System works correctly once more.
2015-03-19[2nd Super Refactoring That Breaks The System: Part 5]Eduardo Julian1-17/+20
- Changed indents to symbols. - Corrected some of the bugs in the system. Many more still awaiting fixes.
2015-03-18[2nd Super Refactoring That Breaks The System: Part 4]Eduardo Julian1-5/+4
- Finished moving the codebase to use the functions from lux.base with the "&" prefix.
2015-03-18[2nd Super Refactoring That Breaks The System: Part 3]Eduardo Julian1-9/+9
- Migrated more of the compiler's data-structures to using Lux's format.
2015-03-15[2nd Super Refactoring That Breaks The System: Part 1]Eduardo Julian1-1/+1
- Finishing implementing the type-system. - Migrating more of the data-structures used in the compiler to the ones used by Lux itself.
2015-03-08- In lux.lux, fixed a bug in the "list" macro that rendered it unusable.Eduardo Julian1-2/+2
- 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.
2015-03-08- Changed once more the syntax of the prefix for host special forms. It's ↵Eduardo Julian1-134/+60
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.
2015-03-01Simplified the compiler by using arrays to encode tuples & variants instead ↵Eduardo Julian1-1/+1
of using custom classes for that.
2015-03-01Code compiles again! (although, I had to employ a hack for "fold", as ↵Eduardo Julian1-1/+1
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.
2015-03-01- Fixed some bugs with pattern matching and macros.Eduardo Julian1-1/+2
- Simplified the code for handling definitions and macros. - Slightly changed the names of the fields of tuple classes. - Added a (currently empty) optimization phase.
2015-02-18[Refactor]Eduardo Julian1-7/+7
- Split lux/analyser/env into "env" & "def" modules. - Renamed lux/analyser/util to "base".
2015-02-17Corrections to the super-refactoring: part 3Eduardo Julian1-20/+35
## "compiler" subsystem now (almost) compiles.
2015-02-15Super refactoring that breaks the system: Part 4Eduardo Julian1-0/+176