aboutsummaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* - 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.
* - Removed _jvm_null and _jvm_null? from the list of special forms.Eduardo Julian2016-05-017-99/+83
|
* - Simplified the language by eliminating coercion and macro-declaration from ↵Eduardo Julian2016-05-016-23/+11
| | | | the analysis type.
* - Unified dozens of host operations under the _lux_host special form.Eduardo Julian2016-04-277-1576/+683
|
* - Now using the actual class-names for arrays of primitives, instead of the ↵Eduardo Julian2016-04-264-32/+49
| | | | #Array of "something" format.
* - Now, the parser no longer ignores uneven-record errors.Eduardo Julian2016-04-263-12/+24
|
* Update README.mdLuxLang2016-04-261-32/+11
|
* - Made some fixes to type-inference for pattern-matching.Eduardo Julian2016-04-265-47/+67
|
* - Fixed a bug when lexing multi-line text.Eduardo Julian2016-04-217-55/+37
| | | - Made some minor refactorings.
* - Added inference for pattern-matching on tuples, records and variants.Eduardo Julian2016-04-193-19/+125
|
* - The compiler now takes the list of directories on which to look for source ↵Eduardo Julian2016-04-187-37/+37
| | | | code during compilation.
* - The REPL no longer dies as soon as the first error happens.Eduardo Julian2016-04-164-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.
* - Improved the loading of classes when testing whether a module is cached.Eduardo Julian2016-04-102-53/+56
| | | - Fixed a bug in which null-pointers where being compiled, rather than references to the "unit" value.
* - Fixed a bug in the way sub-indices for sub-tuples were being calculated ↵Eduardo Julian2016-03-151-2/+2
| | | | when doing product_getLeft.
* - Added a REPL mode.Eduardo Julian2016-03-128-21/+121
|
* - Fixed the way the CLI arguments are received by _jvm_program by using the ↵Eduardo Julian2016-03-111-23/+9
| | | | new format for data-structures.
* - Fixed a bug wherein type-variables were not getting properly cleaned and ↵Eduardo Julian2016-03-097-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.
* - Fixed an error when parsing annotations syntax, in which the wrong ↵Eduardo Julian2016-03-062-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.
* - VarT and ExT types are now treated as java.lang.Object.Eduardo Julian2016-02-296-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.
* - Added the means to convert characters into other things.Eduardo Julian2016-02-227-31/+91
| | | | - Fixed character & integer comparisons. - Added the means to "apply" type-functions that are bound to type-variables.
* - Fixed a bug when lexing text that contains escaped characters.Eduardo Julian2016-02-201-3/+6
|
* - The analyser disallows importing a module more than once.Eduardo Julian2016-02-191-7/+9
|
* - Added support for bounded polymorphism.Eduardo Julian2016-02-195-58/+110
| | | - Fixed some minor JVM-interop bugs.
* - Now adding the contents of the "resources" directory into the class-path ↵Eduardo Julian2016-02-183-7/+31
| | | | | and the generated JAR file. - Fixed a bug when generating the input list for _jvm_program.
* - Added CompilerMode and CompilerInfo data to the Compiler state.Eduardo Julian2016-02-176-24/+60
| | | - Removed the (now unnecessary #;eval? tag).
* - [Bug Fix] Can no longer compile expressions that are at the top-level ↵Eduardo Julian2016-02-161-3/+1
| | | | (unlike statements).
* - Now, you cannot use the tags of types that haven't been exported if you're ↵Eduardo Julian2016-02-155-13/+40
| | | | not in that type's module.
* - Improved the instantiation of generic types when using unparameterized ↵Eduardo Julian2016-02-153-9/+17
| | | | | | classes. - Added beta-reduction for ExQ. - Improved ident->text.
* - Can now use unicode characters in identifiers.Eduardo Julian2016-02-152-25/+10
| | | - Can now escape unicode characters in both Char and Text.