| Commit message (Collapse) | Author | Files | Lines |
|
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.
|
|
|
|
- Made some improvements to working with object arrays.
|
|
- Added support for instancing generic objects.
|
|
Lux code (.tar.gz files).
- Fixed a bug regarding indices and loading/storing from/to arrays.
|
|
|
|
|
|
declarations of which exceptions they throw.
|
|
defined, instead of the type of the super-class.
|
|
for debug info.
|
|
- Fixed some bugs.
|
|
|
|
|
|
|
|
to too many corner cases, I decided the abandon the path towards a more mathematical implementation of tuples & variants.
|
|
|
|
- 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.
|
|
- 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.
|
|
|
|
|
|
|
|
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.
|
|
- 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.
|
|
- Fixed several bugs with host (JVM) interop.
- Now packaging everything in a .jar file ("program.jar").
|
|
(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.
|
|
- Fixed some errors regarding cache loading.
|
|
|
|
- More additions to the standard library.
|
|
- Fixed several bugs.
|
|
- Implemented module-caching to avoid the waiting too much during program compilation.
|
|
- The version of the compiler is now stored as a field in the compiled definitions.
|
|
- The command-line params argument in jvm_program is now transformed from a String array into (List Text).
|
|
|
|
- Made some changes to the way type-checking is performed on variants, records & tuples in order to improve the speed of type-checking.
|
|
- 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.
|
|
|
|
|
|
- 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.
|
|
- :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).
|
|
- Removed exec, get@' & set@' special forms, as they are not primitive enough as to be part of the language.
|
|
|
|
- System works correctly once more.
|
|
- Corrected more bugs in the system.
|
|
- Changed indents to symbols.
- Corrected some of the bugs in the system. Many more still awaiting fixes.
|
|
- Finished moving the codebase to use the functions from lux.base with the "&" prefix.
|
|
- Finishing implementing the type-system.
- Migrating more of the data-structures used in the compiler to the ones used by Lux itself.
|
|
- Added invokespecial & invokeinterface.
- Added putstatic & putfield.
- Corrected primitive conversions & bitwise operators to take into account (un)boxing.
|
|
- Added bitwise operators.
- Added synchronization primitives (monitor enter & exit).
- Added exception-handling.
- Added conversions between primitive values.
|
|
|
|
- Made a small change in float & double comparisons to make sure NaN < n.
|