aboutsummaryrefslogtreecommitdiff
path: root/src (unfollow)
Commit message (Collapse)AuthorFilesLines
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
2016-05-01- Simplified the language by eliminating coercion and macro-declaration from ↵Eduardo Julian6-23/+11
the analysis type.
2016-04-27- Unified dozens of host operations under the _lux_host special form.Eduardo Julian7-1576/+683
2016-04-26- Now using the actual class-names for arrays of primitives, instead of the ↵Eduardo Julian4-32/+49
#Array of "something" format.
2016-04-26- Now, the parser no longer ignores uneven-record errors.Eduardo Julian2-11/+23
2016-04-26- Made some fixes to type-inference for pattern-matching.Eduardo Julian4-45/+63
2016-04-21- Fixed a bug when lexing multi-line text.Eduardo Julian7-55/+37
- Made some minor refactorings.
2016-04-19- Added inference for pattern-matching on tuples, records and variants.Eduardo Julian3-19/+125
2016-04-18- The compiler now takes the list of directories on which to look for source ↵Eduardo Julian6-36/+36
code during compilation.
2016-04-16- The REPL no longer dies as soon as the first error happens.Eduardo Julian4-50/+59
- Writing "exit" in the REPL, kills it. - Fixed a bug wherein checking the presence of multiple methods with the same name being implemented, the names would overwrite each other and make some methods become impossible to check. - Fixed an error when type-checking parameterized host types. - Fixed a bug when loading the .lux files in JARs in the class-path.
2016-04-10- Improved the loading of classes when testing whether a module is cached.Eduardo Julian2-53/+56
- Fixed a bug in which null-pointers where being compiled, rather than references to the "unit" value.
2016-03-15- Fixed a bug in the way sub-indices for sub-tuples were being calculated ↵Eduardo Julian1-2/+2
when doing product_getLeft.
2016-03-12- Added a REPL mode.Eduardo Julian8-21/+121
2016-03-11- Fixed the way the CLI arguments are received by _jvm_program by using the ↵Eduardo Julian1-23/+9
new format for data-structures.
2016-03-09- Fixed a bug wherein type-variables were not getting properly cleaned and ↵Eduardo Julian7-73/+120
that was causing trouble with type-checking. - Fixed a bug in the way arguments for method-definitions were getting compiled. - Fixed a bug in the way double greater-than comparison was being compiled. - Fixed how exception signatures were getting compiled for method-definitions.
2016-03-06- Fixed an error when parsing annotations syntax, in which the wrong ↵Eduardo Julian2-2/+2
data-structures were being returned. - Fixed an error when generating class signatures in annotations in .class files, in which the class-name was being generated instead.
2016-02-29- VarT and ExT types are now treated as java.lang.Object.Eduardo Julian6-60/+193
- Now wrapping primitive method arguments inside objects, as Lux code always assumes everything is an object. - Now using a hand-made text lexer, that is less tolerant of escaping-cleanup errors. - When packaging the contents of dependency JARs inside the output program JAR, the compressed size of the entries is recalculated with (.setCompressedSize -1), in order to avoid errors in the JarOutputStream.