aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* - Now storing the name of each scope as a list/stack of name-fragments, to ↵Eduardo Julian2016-07-304-21/+11
| | | | eliminate the need to keep an explicit cache for it.
* - Scope-names are no longer being reversed when generated, but only when ↵Eduardo Julian2016-07-306-54/+26
| | | | | compiling functions and captured vars. - Now caching scope-names (pre-joining) to ensure all checks needed during pre-scoping are identity checks.
* - Now streamlining simple "let" expressions when doing pattern-matching.Eduardo Julian2016-07-304-7/+30
|
* - Fixed a bug in the way type-adjustment happens during pattern-matching, in ↵Eduardo Julian2016-07-294-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.
* - A module's hash is also stored in the Compiler state and in the cached ↵Eduardo Julian2016-07-265-99/+114
| | | | classes, to check for inconsistencies in the dependencies when loading cached modules.
* - Improved error messages in analyser by adding cursor.Eduardo Julian2016-07-241-40/+23
|
* - Added the [bit count] procedure.Eduardo Julian2016-07-242-1/+22
|
* - Fixed a bug in which the signatures for multi-parameter generic classes ↵Eduardo Julian2016-07-232-6/+6
| | | | | where getting spaces between the parameter signatures, which is invalid. - Type-errors now include cursor information.
* - Added object/reference/pointer testing.Eduardo Julian2016-07-232-0/+36
|
* - Fixed the bug in the optimizer that was causing some functions to end up ↵Eduardo Julian2016-07-192-38/+62
| | | | with the same name.
* - Optimized the type-checker slightly by now using a 2-tuple for the ↵Eduardo Julian2016-07-132-24/+23
| | | | results, but instead just returning the fixpoints.
* - Added bitwise operations.Eduardo Julian2016-07-132-0/+86
|
* - Renamed LuxUtils to LuxRT.Eduardo Julian2016-07-115-35/+35
| | | - Fixed a bug in _lux_proc ["array" "get"].
* - The compiler no longer complains about not catching RuntimeException and ↵Eduardo Julian2016-07-104-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.
* - Small fixes to reader & type-system.Eduardo Julian2016-07-015-83/+546
| | | | - Test suites for reader, lexer and parser got updated. - Added unit-tests for type-system.
* - Fixed a bug in the way type-vars were flowing when type-checking JVM ↵Eduardo Julian2016-06-191-8/+8
| | | | method calls.
* - Implemented a procedure for loading JVM classes.Eduardo Julian2016-06-132-0/+24
|
* - Removed all the unnecessary stack-frame descriptors.Eduardo Julian2016-06-131-15/+0
|
* Merge pull request #15 from LuxLang/pm_sharingLuxLang2016-06-135-350/+586
|\ | | | | Pm sharing
| * - Now avoiding unnecessary pops of the pattern-matching stack/cursor.Eduardo Julian2016-06-131-3/+11
| |
| * - Finished the test-sharing code.Eduardo Julian2016-06-136-398/+401
| |
| * - [WIP] sharing tests during pattern-matching.Eduardo Julian2016-06-064-177/+402
|/
* - Fixed that bug that was causing method definitions to be set as final and ↵Eduardo Julian2016-05-222-6/+10
| | | | with strict-fp math.
* - Added Tail-Recursion Optimization.Eduardo Julian2016-05-225-104/+177
|
* - Merged _lux_alias into _lux_import.Eduardo Julian2016-05-213-30/+26
|
* - Now it's possible to pattern-match against variants using numeric indices.Eduardo Julian2016-05-213-20/+15
|
* - Now folding top-level function-classes into their owner def-classes.Eduardo Julian2016-05-214-100/+209
|
* - Improved the optimization of self-calls.Eduardo Julian2016-05-211-4/+9
|
* - Fixed a bug in which it was impossible to pattern-match against ↵Eduardo Julian2016-05-217-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.
* - Fixed a bug when parsing the names of arguments in method definitions, ↵Eduardo Julian2016-05-202-2/+6
| | | | wherein the names couldn't be full-blown (unprefixed) idents.
* - Now storing the type-variables created during type-checking for the sake ↵Eduardo Julian2016-05-144-48/+93
| | | | of reference later on in definitions.
* - Optimized pattern-matching on the analyser-phase.Eduardo Julian2016-05-134-177/+135
| | | - Analysis of statements now ensures they are top-level forms, by making sure there is no expected type when they are analyzed.
* - The expected-type in the compiler-state is now a (Maybe Type), instead of ↵Eduardo Julian2016-05-135-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.
* - Fixed a bug that allowed pattern-matching using unknown tags to proceed.Eduardo Julian2016-05-135-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.
* - Now with better localization for reader, lexer & parser errors.Eduardo Julian2016-05-126-24/+24
|
* - Now generating variants of the "apply" method of lux/Function up to 8 arities.Eduardo Julian2016-05-117-112/+70
|
* - Now fusing impl and apply1 for 1-arity functions.Eduardo Julian2016-05-111-80/+90
| | | - Now avoiding to "reset" functions at stage 0, when called with an apply-N where N = arity.
* - lux/Function is now an abstract class with 4 versions of apply, to improve ↵Eduardo Julian2016-05-116-69/+176
| | | | performance when calling functions.
* - Added an optimization to fold directly-nested functions and fuse them into ↵Eduardo Julian2016-05-1013-296/+640
| | | | multi-argument functions.
* - Removed _jvm_class, _jvm_interface and _jvm_anon-class from the list of ↵Eduardo Julian2016-05-0810-675/+732
| | | | special forms.
* - Made a small adjustment when packaging the .jars of programs, to avoid ↵Eduardo Julian2016-05-031-1/+4
| | | | packaging .jars that are necessary for the compiler itself, but not for the Lux program that was compiled.
* - Added multi-platform support for arrays.Eduardo Julian2016-05-032-0/+83
|
* - Now, showing the right error when trying to lex an ident with an ↵Eduardo Julian2016-05-035-47/+94
| | | | invalid/unknown prefix.
* - Renamed #DataT to #HostT.Eduardo Julian2016-05-0312-117/+126
| | | - Renamed _lux_host to _lux_proc.
* - Simplified the Analysis type.Eduardo Julian2016-05-038-269/+256
| | | - Renamed _jvm_program to _lux_program.
* - Removed _jvm_instanceof from the list of special forms.Eduardo Julian2016-05-036-90/+67
|
* - Removed _jvm_try from the list of special forms.Eduardo Julian2016-05-027-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.
* - Removed _jvm_new, _jvm_invokestatic, _jvm_invokeinterface, ↵Eduardo Julian2016-05-026-326/+260
| | | | _jvm_invokevirtual and _jvm_invokespecial from the list of special forms.
* - Removed _jvm_getstatic, _jvm_getfield, _jvm_putstatic and _jvm_putfield ↵Eduardo Julian2016-05-026-153/+114
| | | | from the list of special forms.
* - Removed _jvm_monitorenter, _jvm_monitorexit and _jvm_throw from the list ↵Eduardo Julian2016-05-016-238/+210
| | | | of special forms.