aboutsummaryrefslogtreecommitdiff
path: root/luxc/src/lux/compiler/host.clj (unfollow)
Commit message (Collapse)AuthorFilesLines
2015-10-07- The method-invocation analysers now take into consideration whether they ↵Eduardo Julian1-3/+3
must work for classes or interfaces & perform the appropriate checks. - A default <init> method is added to the dummy class used during the analysis of anonymous classes. - When adding the default invoke-special for anonymous classes, now using the one from the parent class, rather than the one from Object. - The packaging for the uberjar is now a bit more specific regarding which elements to include or to exclude. - Type errors when comparing JVM generic types are now a bit more specific.
2015-09-29- Cleaned-up the comments from the codebase.Eduardo Julian1-55/+14
2015-09-28- Removed reflection warnings.Eduardo Julian1-15/+12
- Made some improvements to working with object arrays.
2015-09-27- Added support for type-checking generic classes.Eduardo Julian1-7/+8
- Added support for instancing generic objects.
2015-09-27- Lux programs can now use libraries for both the JVM (.jar files) and pure ↵Eduardo Julian1-4/+12
Lux code (.tar.gz files). - Fixed a bug regarding indices and loading/storing from/to arrays.
2015-09-26- Added support for Java annotations.Eduardo Julian1-8/+29
2015-09-26- Finished some missing bits of class definition analysis.Eduardo Julian1-3/+33
2015-09-26- Both method declarations & method definitions in classes can now include ↵Eduardo Julian1-2/+4
declarations of which exceptions they throw.
2015-09-16- Did a trick to make sure "this" always had the type of the class being ↵Eduardo Julian1-18/+3
defined, instead of the type of the super-class.
2015-09-16- Now the file-name & the line numbers are stored inside the .class files ↵Eduardo Julian1-42/+48
for debug info.
2015-09-14- Added the possibility to define anonymous classes.Eduardo Julian1-61/+105
- Fixed some bugs.
2015-09-12- Added full support for arrays.Eduardo Julian1-5/+54
2015-09-12- Primitive data-types can now be parameterized by other types.Eduardo Julian1-9/+9
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-13/+13
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 1]Eduardo Julian1-13/+13
2015-08-18- Tags data is now stored in the cache.Eduardo Julian1-0/+2
- Fixed a caching bug wherein imports data wasn't being installed when loading cached modules. - Fixed a compilation error regarding tags in compile-program. - Refactored the names of fields inside the generated classes, and also the named of the "module class". - Refactored some of the details of how module info is stored inside the fields of module classes.
2015-08-17- Finished turning tags into indices.Eduardo Julian1-1/+7
- 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-06More factoring of tags.Eduardo Julian1-10/+10
2015-08-06Started factoring out the tags used in variants within the compiler.Eduardo Julian1-7/+7
2015-08-06- Fixed some errors with argument ordering with JVM arithmetic ops.Eduardo Julian1-6/+6
2015-08-06- Refacted the compiler by shifting to a pattern-matching syntax more akin ↵Eduardo Julian1-32/+35
to Lux's, while also allowing non-literal tags that can be defined as constants elsewhere. - Added some extra JVM ops for bit-fiddling that were missing.
2015-07-31- Did some refactoring of the standard library.Eduardo Julian1-5/+5
- Introduced 2 new modules: lux/data/tuple & lux/codata/function - Now doing safe reading of files. - Took the "let", "lambda" & "def" macros to their ultimate form. - Added some macros for doing better JVM interop. - Fixed a bug when compiling comparisons for doubles. - Changed the order in which arguments are compiled for all arithmetic operations, as the order is reversed (from the conventional order) in the JVM bytecode.
2015-07-29- lux;using no longer prefixes variables.Eduardo Julian1-84/+122
- Fixed several bugs with host (JVM) interop. - Now packaging everything in a .jar file ("program.jar").
2015-07-26- Fixed a pattern-matching error where generalizations of types ↵Eduardo Julian1-1/+1
(universal-quantification / AllT) was not being taken into account properly when destructuring. - Fixed a compiler error wherein the types of definitions didn't generate (correctly) the structures necessary for storage inside the class _meta(data) field. - Improved both the "open" and "import" macros with extra features.
2015-07-24- Fixed an error when compiling Java field access (both static & virtual).Eduardo Julian1-3/+7
- Fixed some errors regarding cache loading.
2015-07-19Added copyright notice on all files that missed it.Eduardo Julian1-0/+8
2015-07-19- Some bug fixes.Eduardo Julian1-6/+18
- More additions to the standard library.
2015-07-12- Added the beginnings of the standard library.Eduardo Julian1-13/+14
- Fixed several bugs.
2015-06-20- The directory for source-code is now named "input".Eduardo Julian1-38/+38
- Implemented module-caching to avoid the waiting too much during program compilation.
2015-05-31- Finished _jvm-interface_ & _jvm-class_.Eduardo Julian1-31/+53
- The version of the compiler is now stored as a field in the compiled definitions.
2015-05-27- _jvm_program now relies on the (IO (,)) type.Eduardo Julian1-6/+77
- The command-line params argument in jvm_program is now transformed from a String array into (List Text).
2015-05-06- Made some small optimizations in the compiler.Eduardo Julian1-6/+5
2015-05-06- Removed all the unnecesary comments.Eduardo Julian1-6/+1
- Made some changes to the way type-checking is performed on variants, records & tuples in order to improve the speed of type-checking.
2015-05-04- Added the LuxVar type to properly specify the type of environment bindings.Eduardo Julian1-9/+14
- Implemented "using". - Implemented jvm-program. - Corrected some primitive (un)wrapping errors in lux.compiler.host. - jvm-program is now scoped to enable local variables. - The types of definitions are now stored within the module dictionary. - Added a "main" method that just compiles program.lux.
2015-05-03- Optimized the compiler by eliminating reflection.Eduardo Julian1-34/+24
2015-04-25- No more Any (Top) and Nothing (Bottom) types.Eduardo Julian1-203/+219
2015-04-15- Fixed a few type-related bugs.Eduardo Julian1-5/+5
- Variants now need types to be specified both when constructing them as when deconstructing them (in pattern-matching). - Simplified DataT types by no-longer requiring a list of params, so only the tame name is necessary.
2015-04-08- Renamed exec to |do.Eduardo Julian1-34/+34
- :let within |do now uses |let instead of let. - The analyser now does totality analysis and structures the pattern matching, with the compiler only compiling the generated structures. - Local bindings with case' can now be prefixed arbitrarily. (Note: must do the same with functions).
2015-03-30- Beginning to add type-system + type-inferencer.Eduardo Julian1-6/+6
- Removed exec, get@' & set@' special forms, as they are not primitive enough as to be part of the language.
2015-03-21- Added module-name aliasing.Eduardo Julian1-17/+17
2015-03-21[2nd Super Refactoring That Breaks The System: Part 7]Eduardo Julian1-3/+4
- System works correctly once more.
2015-03-20[2nd Super Refactoring That Breaks The System: Part 6]Eduardo Julian1-15/+16
- Corrected more bugs in the system.
2015-03-19[2nd Super Refactoring That Breaks The System: Part 5]Eduardo Julian1-1/+4
- Changed indents to symbols. - Corrected some of the bugs in the system. Many more still awaiting fixes.
2015-03-18[2nd Super Refactoring That Breaks The System: Part 4]Eduardo Julian1-9/+6
- Finished moving the codebase to use the functions from lux.base with the "&" prefix.
2015-03-15[2nd Super Refactoring That Breaks The System: Part 1]Eduardo Julian1-10/+10
- Finishing implementing the type-system. - Migrating more of the data-structures used in the compiler to the ones used by Lux itself.
2015-03-12- Added program creation (generates the "main" method).Eduardo Julian1-42/+86
- Added invokespecial & invokeinterface. - Added putstatic & putfield. - Corrected primitive conversions & bitwise operators to take into account (un)boxing.
2015-03-12- Added a special form for testing if references are null.Eduardo Julian1-0/+130
- Added bitwise operators. - Added synchronization primitives (monitor enter & exit). - Added exception-handling. - Added conversions between primitive values.
2015-03-10- Added null values as jvm-null.Eduardo Julian1-0/+5
2015-03-09- Implemented record compilation, alongside get@' and set@'.Eduardo Julian1-6/+6
- Made a small change in float & double comparisons to make sure NaN < n.