aboutsummaryrefslogtreecommitdiff
path: root/luxc/src/lux/analyser/lux.clj (unfollow)
Commit message (Collapse)AuthorFilesLines
2016-05-03- Simplified the Analysis type.Eduardo Julian1-4/+13
- Renamed _jvm_program to _lux_program.
2016-05-01- Simplified the language by eliminating coercion and macro-declaration from ↵Eduardo Julian1-6/+10
the analysis type.
2016-04-21- Fixed a bug when lexing multi-line text.Eduardo Julian1-6/+7
- Made some minor refactorings.
2016-04-19- Added inference for pattern-matching on tuples, records and variants.Eduardo Julian1-13/+44
2016-03-09- Fixed a bug wherein type-variables were not getting properly cleaned and ↵Eduardo Julian1-3/+4
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-02-29- VarT and ExT types are now treated as java.lang.Object.Eduardo Julian1-11/+16
- 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.
2016-02-08- Added support for strict floating-point arithmetic on methods.Eduardo Julian1-13/+14
2016-02-07- Fixed a bug when getting a value out of a variant (it was acting ↵Eduardo Julian1-50/+50
improperly when dealing with "composed" variants). - Revamped the way variants are defined & used in the compiler.
2016-02-06- Fixed some bugs wherein type-variables being created where not getting ↵Eduardo Julian1-8/+11
removed from types that used them.
2016-01-17- I overdid the switch from null to lux.base/unit-tag, so I reversed the ↵Eduardo Julian1-3/+3
change on places where it was superfluous, to reduce the overhead of variable look-up during compilation.
2016-01-17- Made a small modification to how variants/sums are created, to ensure ↵Eduardo Julian1-5/+7
variants for which there is only 1 possible value just compile down to that value (into the same way that 1-tuples are compiled down to their single value).
2016-01-17- Fixed a bug introduced when I made the change for the "unit" value to be a ↵Eduardo Julian1-3/+3
special String, rather than null.
2016-01-17- Now using the new utility methods in LuxUtils for working with variants/sums.Eduardo Julian1-7/+10
2016-01-05- Optimized the new "product" implementation to improve performance & memory ↵Eduardo Julian1-15/+15
consumption.
2016-01-04- Switched from TupleT to ProdT (implementation-wise).Eduardo Julian1-2/+3
2016-01-02- Switched from TupleT to ProdT (type-wise).Eduardo Julian1-10/+33
2016-01-02- Switched from VariantT to SumT.Eduardo Julian1-18/+18
2016-01-02- Added the VoidT and UnitT types.Eduardo Julian1-71/+80
2016-01-02- Implemented the feature of adding arbitrary meta-data to definitions.Eduardo Julian1-81/+30
- Implemented exports, macros, tags and aliases on top of definition meta-data (a.k.a DefMeta).
2015-12-16- Changed the way methods are defined in class definitions.Eduardo Julian1-31/+33
2015-12-02- Made a variety of refactorings and minor changes.Eduardo Julian1-1/+1
- Generic class definitions are halfway done.
2015-12-01- Improved error reporting when pattern-matching on tuples.Eduardo Julian1-24/+26
- Improved error reporting when analysing functions. - Now handling arrays in class/interface/method definitions as a kind of GenericType, rather than as a GenericClass.
2015-11-29- Improved error messaging when building variants & tuples.Eduardo Julian1-102/+107
- Improved error messaging when type-checking. - Improved error messaging when applying functions.
2015-11-29- _lux_coerce no longer adds checkcast.Eduardo Julian1-2/+1
- Now using the correct types for checkcast in arrays of primitives. - aaload, aastore and arraylength now add the appropriate checkcast for the arrays.
2015-11-28- Added better support for existential quantification.Eduardo Julian1-8/+26
- No longer requiring type-parameters in JVM interop forms.
2015-10-27- Storage instructions during pattern matching when doing aliasing now use ↵Eduardo Julian1-3/+0
the -1 index to signal no-op. - Removed unnecessary debugging logging.
2015-10-13- Added local var aliasing.Eduardo Julian1-1/+7
2015-10-13- Separated type coercions from type annotations.Eduardo Julian1-2/+5
- Enriched type annotatins. - Improved class->type convertions. - Improved showing AST.
2015-09-29- Cleaned-up the comments from the codebase.Eduardo Julian1-112/+53
2015-09-27- Lux programs can now use libraries for both the JVM (.jar files) and pure ↵Eduardo Julian1-1/+3
Lux code (.tar.gz files). - Fixed a bug regarding indices and loading/storing from/to arrays.
2015-09-16- Now the file-name & the line numbers are stored inside the .class files ↵Eduardo Julian1-51/+78
for debug info.
2015-09-14- Renamed "this" to "_jvm_this".Eduardo Julian1-4/+3
- Movied lux/data/io to lux/codata/io.
2015-09-13- Fixed bug wherein mutual recursion could occur between modules.Eduardo Julian1-2/+5
- Fixed bug wherein recompiling a previously cached module didn't always trigger all the necessary recompilations from dependent modules.
2015-09-12- Added exhaustiveness testing for exception-handling code.Eduardo Julian1-13/+13
- Added some optimizations for using List & Maybe within the compiler.
2015-09-12- Primitive data-types can now be parameterized by other types.Eduardo Julian1-8/+4
2015-09-10- Added inference during construction of variants.Eduardo Julian1-33/+73
2015-09-10- Implemented inference for constructing records.Eduardo Julian1-51/+95
2015-09-09- Added type inference for functions.Eduardo Julian1-49/+81
- Fixed a bug wherein the "case" macro ignored tokens when receiving uneven inputs.
2015-09-07- Type checking of polymorphic functions now relies on ExT types to ↵Eduardo Julian1-78/+83
guarantee that type-variables don't unify to anything, instead of relying on VarT types. - Fixed some bugs in the standard library due to improper behavior of the type-checker. - The analysis and pattern-matching code for records now reuses that of tuples.
2015-09-06- Added the (untested) inference of tuple destructuring.Eduardo Julian1-13/+5
- Removed several (unnecessary) type annotations.
2015-09-06- Added type-inference when constructing tuples.Eduardo Julian1-30/+36
2015-08-29- Added some compiler optimizations.Eduardo Julian1-6/+0
- Removed the (unnecessary) lux/control/dict & lux/control/stack modules. - The "Meta" type is now a record instead of a variant.
2015-08-28- Changed the name of AllT (for-all type) to UnivQ (universal quantification).Eduardo Julian1-42/+21
- UnivQ no longer stores the environment as key-val pairs with Text names, but instead stores it as type-lists with variables accessed via an index through a (updated) BoundT. - UnivQ no longer stores the name of the type-fun, not the name of the type-arg.
2015-08-28Changed the license from EPL to MPL.Eduardo Julian1-7/+4
2015-08-28Due to several performance issues and my inability to optimize them away due ↵Eduardo Julian1-127/+150
to too many corner cases, I decided the abandon the path towards a more mathematical implementation of tuples & variants.
2015-08-23- Restructuring how sums & products work [part 3]Eduardo Julian1-9/+13
2015-08-23- Restructuring how sums & products work [part 1]Eduardo Julian1-141/+114
2015-08-17- Finished turning tags into indices.Eduardo Julian1-29/+14
- As an unexpected bonus, the compiler has become 2.5x faster. - Fixed some minor bugs. - Tag declarations now include associated types. - Tag declarations info is now stored twice (one from the perspective of tags, the other from the perspective of types). - Changed the named of the "types" member of the Compiler type, to "type-vars" to avoid collision with the "types" member of the Module type.
2015-08-16Introduced named types (#NamedT Ident Type).Eduardo Julian1-4/+10
2015-08-16Unified tuples & records.Eduardo Julian1-1/+1