aboutsummaryrefslogtreecommitdiff
path: root/luxc/src/lux/compiler/host.clj (unfollow)
Commit message (Collapse)AuthorFilesLines
2016-05-02- Removed _jvm_getstatic, _jvm_getfield, _jvm_putstatic and _jvm_putfield ↵Eduardo Julian1-43/+52
from the list of special forms.
2016-05-01- Removed _jvm_monitorenter, _jvm_monitorexit and _jvm_throw from the list ↵Eduardo Julian1-99/+104
of special forms.
2016-05-01- Removed _jvm_null and _jvm_null? from the list of special forms.Eduardo Julian1-19/+23
2016-04-27- Unified dozens of host operations under the _lux_host special form.Eduardo Julian1-246/+346
2016-04-21- Fixed a bug when lexing multi-line text.Eduardo Julian1-1/+1
- Made some minor refactorings.
2016-04-10- Improved the loading of classes when testing whether a module is cached.Eduardo Julian1-1/+1
- 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-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 Julian1-29/+34
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 Julian1-1/+1
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 Julian1-5/+74
- 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-22- Added the means to convert characters into other things.Eduardo Julian1-12/+17
- Fixed character & integer comparisons. - Added the means to "apply" type-functions that are bound to type-variables.
2016-02-18- Now adding the contents of the "resources" directory into the class-path ↵Eduardo Julian1-2/+2
and the generated JAR file. - Fixed a bug when generating the input list for _jvm_program.
2016-02-08- Both abstract & native methods can now have privacy modifiers.Eduardo Julian1-4/+6
2016-02-08- Added the ability to define native methods.Eduardo Julian1-0/+14
2016-02-08- Added the ability to define constant fields in classes.Eduardo Julian1-14/+53
2016-02-08- Added support for strict floating-point arithmetic on methods.Eduardo Julian1-7/+11
2016-02-07- Fixed a bug when getting a value out of a variant (it was acting ↵Eduardo Julian1-8/+20
improperly when dealing with "composed" variants). - Revamped the way variants are defined & used in the compiler.
2016-02-07- Added support for "abstract" classes & methods.Eduardo Julian1-0/+14
2016-02-06- Added support for "final" fields, methods & classes.Eduardo Julian1-4/+6
2016-02-06- Added support for "volatile" modifier for fields.Eduardo Julian1-15/+6
- Minor style fixes.
2016-02-06- Added support for defining static methods in JVM classes.Eduardo Julian1-0/+20
- Fixed a bug wherein host data-types weren't getting cleaned when working with type variables.
2016-02-04- Fixed some bugs regarding the handling of sums & products.Eduardo Julian1-10/+43
- Added the capacity to specify access modifiers to both class fields & methods. - No longer including "META-INF/MANIFEST.MF" files of imported jars.
2016-01-17- Removed the tags off tuples/products & variants/sums, as they were no ↵Eduardo Julian1-18/+10
longer necessary.
2016-01-17- Made an optimization to variants/sums, by encoding the last/tail flag as a ↵Eduardo Julian1-5/+4
pointer (with null as false, and everything else as true).
2016-01-17- Added a special constructor for variants to ensure they don't take null ↵Eduardo Julian1-1/+36
values.
2016-01-17- I overdid the switch from null to lux.base/unit-tag, so I reversed the ↵Eduardo Julian1-43/+43
change on places where it was superfluous, to reduce the overhead of variable look-up during compilation.
2016-01-17- Fixed a bug introduced when I made the change for the "unit" value to be a ↵Eduardo Julian1-43/+43
special String, rather than null.
2016-01-17- Now using the new utility methods in LuxUtils for working with variants/sums.Eduardo Julian1-1/+51
2016-01-16- Now using the new utility methods in LuxUtils for working with ↵Eduardo Julian1-1/+60
tuples/products.
2016-01-05- Optimized the new "product" implementation to improve performance & memory ↵Eduardo Julian1-13/+13
consumption.
2016-01-04- Switched from TupleT to ProdT (implementation-wise).Eduardo Julian1-9/+15
2016-01-02- Switched from VariantT to SumT.Eduardo Julian1-3/+26
2016-01-02- Added the VoidT and UnitT types.Eduardo Julian1-1/+1
2016-01-01- Modified _jvm_anewarray so it now works with generic classes.Eduardo Julian1-4/+8
2015-12-30- Fixed some bugs in the way _jvm_putfield & _jvm_putstatic special forms ↵Eduardo Julian1-8/+15
were being compiled. - Fixed a bug in the way constructor arguments in constructor methods were being compiled. - Fixed small bugs in the lux.type.host/instance-param and lux.host.generics/gclass->class-name functions.
2015-12-30- Bug fixes:Eduardo Julian1-10/+12
- - Improved type generation for object-type during analysis of getstatic & putstatic. - - Improved type generation for _jvm_this object during analyse-method. - - Fixed a bug in how the $jvm-class data-structure was being generated for analyse-jvm-class. - - Fixed the format of the "captured-slot-type" for anonymous classes. - - Fixed some minor parsing bugs in lux.analyser.parser. - - Upgraded the version of the compiled bytecode to 0.3.2. - - Fixed the calls to putfield & putstatic in the compiler phase. - - Fixed signature generation for compile-jvm-instanceof. - - Fixed signature generation for class definition & signature definition. - - Fixed dummy-value & dummy-return so they work with generic types. - - Fixed the signature generation for use-dummy-class. - - Improved JVM generic signature generation. - - Fixed a bug when tracing a lineage class->interface. - - Fixed a bug in class-name->type wherein primitive-arrays where given various object-array types.
2015-12-24- Fixed a bug wherein the wrong super-class name was being generated (due to ↵Eduardo Julian1-2/+3
a type error >_<) when generating the default constructor for anonymous classes. - Fixed a bug when tracing the lineage of interfaces when doing host-type type-checking.
2015-12-20- Fixed a bug wherein the cache became ineffective due to wrong file-paths ↵Eduardo Julian1-15/+11
making the directories impossible to find. - Fixed a bug wherein the 'Function' class was getting erased when the compiler went on to compile the 'lux' module.
2015-12-19- Fixed some bugs regarding JVM interface definition.Eduardo Julian1-3/+1
- Removed (unnecessary) logging.
2015-12-16- Changed the way methods are defined in class definitions.Eduardo Julian1-51/+116
2015-12-06- lux.Function is now generated directly from the compiler, not from the ↵Eduardo Julian1-0/+17
lux.lux file.
2015-12-06- Removed modifiers from field/method declaration.Eduardo Julian1-6/+7
2015-12-02- Made a variety of refactorings and minor changes.Eduardo Julian1-92/+99
- Generic class definitions are halfway done.
2015-11-30- Refactored some of the parsing done inside the analyser to a separate ↵Eduardo Julian1-19/+28
namespace. - Added a new namespace for generating generics signatures for classes & methods. - Added generics-based polymorphism to JVM interface definition. - Fixed a bug wherein inconsistent bytecode versions where being used for the generation of classes (1.6 for some, 1.5 for others).
2015-11-29- _lux_coerce no longer adds checkcast.Eduardo Julian1-14/+17
- 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-29- _jvm_anon-class now requires that constructor arguments (with proper ↵Eduardo Julian1-18/+63
type-tags) are given in order to construct the instances.
2015-11-28- Improved support for existential quantification.Eduardo Julian1-0/+3
2015-11-28- Added better support for existential quantification.Eduardo Julian1-6/+12
- No longer requiring type-parameters in JVM interop forms.
2015-10-13- Separated type coercions from type annotations.Eduardo Julian1-1/+1
- Enriched type annotatins. - Improved class->type convertions. - Improved showing AST.