|  | Commit message (Collapse) | Author | Age | Files | Lines | 
|---|
| | 
| 
| 
| 
| 
| 
| 
| | - Refactored the standard library a bit.
- Implemented the "loop" macro.
- Added the expected type of expressions as a field in the compiler state.
- Added syntactic sugar for using tuples with variants, in order to minimize the usage of brackets to delimit the contents of data-structures.
- Fixed a bug wherein "macro-expand" was behaving like "macro-expand-all", and added a separate implementation for "macro-expand-all".
- Fixed a few bugs. | 
| | 
| 
| 
| 
| 
| 
| 
| | - 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"). | 
| | 
| 
| 
| 
| | - Completed lux/host/jvm
- Modified (slightly) the syntax used in several host (JVM) special forms.
- The "defsyntax" macro now binds all of the arguments it receives inside a variable named "tokens". | 
| | 
| 
| 
| 
| 
| | (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. | 
| | 
| 
| | - "input" has been renamed as "source" and "output" has been renamed as "target". | 
| | |  | 
| | 
| 
| | - Fixed the caching mechanism. | 
| | 
| 
| | - Fixed some errors regarding cache loading. | 
| | 
| 
| 
| 
| | expansions in order to aid error-reporting.
- Added recursive type definitions through the #rec tag in deftype. | 
| | 
| 
| | - Added some type-tags to avoid reflection inside the compiler. | 
| | |  | 
| | 
| 
| | - More additions to the standard library. | 
| | 
| 
| 
| 
| | unquote splice working and not automatic prefixing of unprefixed symbols/tags.
- Added (slightly) better type-error messages. | 
| | 
| 
| | - Fixed several bugs. | 
| | |  | 
| | 
| 
| | - Implemented module-caching to avoid the waiting too much during program compilation. | 
| | 
| 
| | - Now storing information about definitions & imports inside the .class files. | 
| | |  | 
| | 
| 
| 
| | line & column). | 
| | |  | 
| | 
| 
| | - The version of the compiler is now stored as a field in the compiled definitions. | 
| | 
| 
| 
| | generated class. | 
| | 
| 
| | - The command-line params argument in jvm_program is now transformed from a String array into (List Text). | 
| | |  | 
| | 
| 
| 
| | - Replace most instances of "=" with ".equals".
- Added an optimization to lux.type/type= that drastically speeds-up type comparisons. | 
| | 
| 
| 
| 
| | type-functions which are most-likely the same, due to their name (remembering that when you define types using deftype, the type-function's name will correspond to the def's).
- Gave empty environments to top-level type-functions, instead of leaving them with unset environments. | 
| | 
| 
| 
| 
| 
| 
| | - Temporarily reverted back to forward apply-analysis.
- Fixed an error in lux.base/show-ast.
- Reader now only returns a tuple instead of a full-blown #Meta variant.
- Reader now doesn't cut the strings that it reads. Instead, the "cursor" just moves around, indicating where to read.
- Inlined some calculations that previously relied on try-all%. | 
| | |  | 
| | |  | 
| | 
| 
| 
| | better from the tags of the Type type. | 
| | 
| 
| 
| 
| | host's.
- Made a few optimizations to speed-up the now slowed-down compiler. | 
| | |  | 
| | 
| 
| 
| 
| | same purpose.
- Optimized some code a bit. | 
| | 
| 
| | - Also removed several unused definitions. | 
| | |  | 
| | |  | 
| | 
| 
| | - 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. | 
| | 
| 
| 
| | - Fixed a few bugs both in lux.lux & the compiler.
- Added exports to the language. | 
| | 
| 
| 
| 
| 
| | - | and & now normalize their slot-names.
- Added several implementations of Eq, Ord & Show. | 
| | 
| 
| 
| | - Added a version of ` that prefixes unprefixed idents with the current module's name.
- The special forms no longer require unprefixed symbols and work with anything (in order to work properly with the new `). | 
| | |  | 
| | 
| 
| 
| | - Added 2 custom pattern-matchers (\ & \or) & gensym
- Added signatures & structures ^_^ | 
| | 
| 
| 
| 
| 
| 
| 
| 
| | - Finally, the "case" macro has been implemented ^_^
- The macro-expand function is also alive!
- Corrected the field-access special forms so they take their field as a symbol instead of text.
- Macros are no longer stored inside the CompilerState as (Maybe Macro), but as Macro.
- Void is implemented as 
- Fixed an error when parsing escaped characters in text.
- Fixed an error in the reader in which parsing regex2 gave back a 2-vector instead of a 2-tuple. | 
| | 
| 
| | - WORKING ON DEBUGGING A COMPILER ERROR: java.lang.IncompatibleClassChangeError | 
| | 
| 
| 
| 
| | still there. Must find & squash).
- | 
| | 
| 
| | - Removed the (now useless) lux.type/is-Type? function. | 
| | 
| 
| 
| | - Compilation units are not longer wrapped inside Expression/Statement variants.
- analyse-apply* no longer returns lists. |