aboutsummaryrefslogtreecommitdiff
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
2016-07-30- Now storing the name of each scope as a list/stack of name-fragments, to ↵Eduardo Julian4-21/+11
eliminate the need to keep an explicit cache for it.
2016-07-30- Scope-names are no longer being reversed when generated, but only when ↵Eduardo Julian6-54/+26
compiling functions and captured vars. - Now caching scope-names (pre-joining) to ensure all checks needed during pre-scoping are identity checks.
2016-07-30- Now streamlining simple "let" expressions when doing pattern-matching.Eduardo Julian4-7/+30
2016-07-29- Fixed a bug in the way type-adjustment happens during pattern-matching, in ↵Eduardo Julian4-71/+210
which the handing of universal quantification and type-vars was done improperly and caused the wrong type-vars to show up in the wrong places. - Fixed a bug in the type-checking of function application, in which, if the result of an apply was a universally-quantified value, the type wasn't actually universally-quantified, even though the BoundTs had been added to it. - Fixed a bug in the way the "loop" optimized-AST was compiled, which sometimes caused miscalculation, due to premature rebinding of variables. - Now also cleaning ExQ.
2016-07-26- A module's hash is also stored in the Compiler state and in the cached ↵Eduardo Julian5-99/+114
classes, to check for inconsistencies in the dependencies when loading cached modules.
2016-07-24- Improved error messages in analyser by adding cursor.Eduardo Julian1-40/+23
2016-07-24- Added the [bit count] procedure.Eduardo Julian2-1/+22
2016-07-23- Fixed a bug in which the signatures for multi-parameter generic classes ↵Eduardo Julian2-6/+6
where getting spaces between the parameter signatures, which is invalid. - Type-errors now include cursor information.
2016-07-23- Added object/reference/pointer testing.Eduardo Julian2-0/+36
2016-07-19- Fixed the bug in the optimizer that was causing some functions to end up ↵Eduardo Julian2-38/+62
with the same name.
2016-07-13- Optimized the type-checker slightly by now using a 2-tuple for the ↵Eduardo Julian2-24/+23
results, but instead just returning the fixpoints.
2016-07-13- Added bitwise operations.Eduardo Julian2-0/+86
2016-07-11- Renamed LuxUtils to LuxRT.Eduardo Julian5-35/+35
- Fixed a bug in _lux_proc ["array" "get"].
2016-07-10- The compiler no longer complains about not catching RuntimeException and ↵Eduardo Julian4-37/+68
it's derivatives. - Fixed a bug that cause the exception-handling scope of an outer function or method to be treaded as part of the exception-handling scope of an inner one. - The return-type of ["jvm" "throw"] is now Bottom. - Improved error messages coming from lux.base, by adding cursor data.
2016-07-01- Small fixes to reader & type-system.Eduardo Julian1-10/+4
- Test suites for reader, lexer and parser got updated. - Added unit-tests for type-system.
2016-06-19- Fixed a bug in the way type-vars were flowing when type-checking JVM ↵Eduardo Julian1-8/+8
method calls.
2016-06-13- Implemented a procedure for loading JVM classes.Eduardo Julian2-0/+24
2016-06-13- Removed all the unnecessary stack-frame descriptors.Eduardo Julian1-15/+0
2016-06-13- Now avoiding unnecessary pops of the pattern-matching stack/cursor.Eduardo Julian1-3/+11
2016-06-13- Finished the test-sharing code.Eduardo Julian6-398/+401
2016-06-06- [WIP] sharing tests during pattern-matching.Eduardo Julian4-177/+402
2016-05-22- Fixed that bug that was causing method definitions to be set as final and ↵Eduardo Julian2-6/+10
with strict-fp math.
2016-05-22- Added Tail-Recursion Optimization.Eduardo Julian5-104/+177
2016-05-21- Merged _lux_alias into _lux_import.Eduardo Julian3-30/+26
2016-05-21- Now it's possible to pattern-match against variants using numeric indices.Eduardo Julian3-20/+15
2016-05-21- Now folding top-level function-classes into their owner def-classes.Eduardo Julian4-100/+209
2016-05-21- Improved the optimization of self-calls.Eduardo Julian1-4/+9
2016-05-21- Fixed a bug in which it was impossible to pattern-match against ↵Eduardo Julian7-67/+169
existentially-qualified types. - Improved error-reporting. - When loading a class post-compilation, the ClassLoader kept referring to the previous dummy version used during analysis, which meant the real class, with it's code, couldn't be used at compile time. Fixed this (with a hack, sadly...). - Fixed a bug in which using JVM type-vars with top-bounds different from java.lang.Object was not getting acknowledged by the compiler, and resulted in incorrect signatures for methods.
2016-05-20- Fixed a bug when parsing the names of arguments in method definitions, ↵Eduardo Julian2-2/+6
wherein the names couldn't be full-blown (unprefixed) idents.
2016-05-14- Now storing the type-variables created during type-checking for the sake ↵Eduardo Julian4-48/+93
of reference later on in definitions.
2016-05-13- Optimized pattern-matching on the analyser-phase.Eduardo Julian4-177/+135
- Analysis of statements now ensures they are top-level forms, by making sure there is no expected type when they are analyzed.
2016-05-13- The expected-type in the compiler-state is now a (Maybe Type), instead of ↵Eduardo Julian5-165/+184
a Type. - Simplified and optimized the pattern-matching done during the analysis phase. - Fixed the bug that caused the JVM garbage-collector to go crazy after running the compiler.
2016-05-13- Fixed a bug that allowed pattern-matching using unknown tags to proceed.Eduardo Julian5-27/+72
- Streamlined invocation of functions when the args-list >= the arity. The impl method gets called immediately, instead of passing first by the apply method.
2016-05-12- Now with better localization for reader, lexer & parser errors.Eduardo Julian6-24/+24
2016-05-11- Now generating variants of the "apply" method of lux/Function up to 8 arities.Eduardo Julian7-112/+70
2016-05-11- Now fusing impl and apply1 for 1-arity functions.Eduardo Julian1-80/+90
- Now avoiding to "reset" functions at stage 0, when called with an apply-N where N = arity.
2016-05-11- lux/Function is now an abstract class with 4 versions of apply, to improve ↵Eduardo Julian6-69/+176
performance when calling functions.
2016-05-10- Added an optimization to fold directly-nested functions and fuse them into ↵Eduardo Julian13-296/+640
multi-argument functions.
2016-05-08- Removed _jvm_class, _jvm_interface and _jvm_anon-class from the list of ↵Eduardo Julian10-675/+732
special forms.
2016-05-03- Made a small adjustment when packaging the .jars of programs, to avoid ↵Eduardo Julian1-1/+4
packaging .jars that are necessary for the compiler itself, but not for the Lux program that was compiled.
2016-05-03- Added multi-platform support for arrays.Eduardo Julian2-0/+83
2016-05-03- Now, showing the right error when trying to lex an ident with an ↵Eduardo Julian5-47/+94
invalid/unknown prefix.
2016-05-03- Renamed #DataT to #HostT.Eduardo Julian12-117/+126
- Renamed _lux_host to _lux_proc.
2016-05-03- Simplified the Analysis type.Eduardo Julian8-269/+256
- Renamed _jvm_program to _lux_program.
2016-05-03- Removed _jvm_instanceof from the list of special forms.Eduardo Julian6-90/+67
2016-05-02- Removed _jvm_try from the list of special forms.Eduardo Julian7-122/+50
- Fixed a bug when compiling method bodies where the list of thrown exceptions did not get excluded from the safety-check when analysing the bodies.
2016-05-02- Removed _jvm_new, _jvm_invokestatic, _jvm_invokeinterface, ↵Eduardo Julian6-326/+260
_jvm_invokevirtual and _jvm_invokespecial from the list of special forms.
2016-05-02- Removed _jvm_getstatic, _jvm_getfield, _jvm_putstatic and _jvm_putfield ↵Eduardo Julian6-153/+114
from the list of special forms.
2016-05-01- Removed _jvm_monitorenter, _jvm_monitorexit and _jvm_throw from the list ↵Eduardo Julian6-238/+210
of special forms.
2016-05-01- Removed _jvm_null and _jvm_null? from the list of special forms.Eduardo Julian7-99/+83