Skip to content

0.7.0

Compare
Choose a tag to compare
@eduardoejp eduardoejp released this 15 Aug 01:04
· 305 commits to master since this release

Added

  • Inlined functions.
  • Can pass configuration parameters from the build description to the compiler.
  • Code selection based on configuration parameters.
  • Code selection based on compiler version.
  • (Experimental) extensible meta-compiler architecture.
  • Export machinery to consume Lux code from host-language programs.
  • Generalized/type-agnostic arithmetic.
  • (Optional) faster (but unsafe) array-handling machinery.
  • (Optional) faster (but unsafe) text-handling machinery.
  • (Optional) faster (but unsafe) binary-handling machinery.
  • Can now deploy releases with Aedifex.
  • Extensible import syntax.
  • Context-aware macros.
  • Macro volabularies for more controlled macro-expansion.

Changed

  • JVM compilation no longer relies on the ASM library.
  • Friendlier syntax.
  • No more automatic conversions of primitive types in JVM FFI.
  • Now demanding mandatory loop names, instead of using default "again" name.
  • Now taking into account both contravariance and covariance for mutable types in the standard library.
  • Improved syntax for JVM interop.
  • Programs are now explicit and first-class and the "main" program must be specified in an Aedifex project.lux file.
  • Macros are first-class values.
  • Pattern-matching now supports matching against globally-defined constants.
  • All (normal) macros in a pattern are now automatically expanded.

Removed

Fixed

  • Pattern-matching bug that allowed redundancies for primitives.
  • Various bugs related to compiler extensions.
  • Various JVM interop bugs.

Deprecated

Security