Skip to content

Releases: ClueLang/Clue

Version 3.2

01 May 18:38
Compare
Choose a tag to compare
  • Small code improvements
  • Added @import directive to replace import() and require()
  • Fixed lines being read wrongly by the scanner
  • Fixed code failing to compile without the interpreter feature on
  • Fixed ?> not being properly deprecated
  • Fixed pseudo variables not working correctly with ..=, &&=, ||= and ??=
  • Fixed local a = (...).x y = ... being considered invalid by the parser
  • Fixed errors being only half printed to stderr, while the rest was printed in stdout
  • Added rust-version field in Cargo.toml
  • Removed remnants of Clue 2.X's macros
  • Added safe calling (?()
  • Improved error messages, they now include the column
  • Remade the way safe indexing is compiled
  • When importing a module, it gets the module path as the ... arg
  • Removed panics in the compiler
  • Documented the codebase
  • Clue can now be installed from the AUR
  • Clue can now be installed from a .deb
  • Clue can now be installed from a .rpm

Version 3.1

21 Feb 14:44
Compare
Choose a tag to compare
  • Fixed =>, <= and >= not being ignored by pseudo variables
  • --pathiscode now saves the output to a file if the name is defined
  • --pathiscode shows the output automatically (like in previous versions) when the output was not gonna be saved
  • --output now has a short version -o
  • ContinueMode now follow the standard Rust syntax (CONTINUE -> Continue)
  • Added --target flag to use preset flag values for specific Lua versions
  • --continue now ignores casing
  • --jitbit is now deprecated and replaced by --bitwise
  • With --bitwise Clue can now output valid 5.4 bitwise code
  • --base's short version was changed to -B
  • --continue=luajit is now deprecated and replaced by --continue=goto
  • Removed dummy --types flag
  • Fixed nested directives breaking
  • Fixed comments removing newlines
  • Fixed LuaJIT's bit library not being loaded in the output even when --jitbit (now --bitwise) was set
  • Fixed floor division not compiling correctly
  • Added usedindex metamethod (--target=blua only)
  • Improved Code struct
  • Added @iflua and @version directives
  • Added a library interface for clue_core

Version 3.0.1

05 Feb 18:14
Compare
Choose a tag to compare
  • Fixed some functions of the cli being exposed as a library
  • Fixed safe indexing to function call resulting in an error if the safe indexing fails (making it not safe at all...)
  • Fixed the custom output file name being ignored when compiling a single file
  • Fixed the output file not being saved where Clue was called
  • When compiling a directory Clue will print more readable paths (for finished/errored files)

Version 3.0

29 Jan 17:24
de2f61e
Compare
Choose a tag to compare
  • Reorganized repository using a Cargo workspace
  • Refactored arg parsing to not use unsafe blocks
  • Refactored casing of function names (from PascalCase to snake_case)
  • Refactored the entire compiler generally
  • Refactored the way the parser reads tokens to improve performance
  • General refactors and optimizations in all the code
  • All internal variables are now named _internalX in the output (X being the var id)
  • Fixed global a; causing invalid output
  • Fixed match blocks inside expressions not properly parsing next tokens
  • Fixed Clue skipping a newline inside normal strings when \ was right before it
  • Fixed local a; = ... being valid syntax
  • Fixed output sometimes breaking when calling functions in some specific cases
  • Fixed { [...].a = ... } being valid syntax
  • Implemented multi-threaded compilation for compiling directories
  • Clue is now installed with CARGO_PROFILE_RELEASE_LTO by default
  • Improved how strings and the output are handled
  • --execute can now be disabled on install
  • Added rpmalloc to improve performance, can be disabled when installing
  • Added a precompiler
  • Pseudo variables are now handled by the precompiler
  • Fixed ternary not working with pseduo variables
  • Deprecated macro and replaced it with @define and @macro
  • Added lib.rs and env.rs
  • Deprecated ?= and := and replaced them with &&= and ||=
  • Added ?? and ??=
  • Added table destructuring (local {a, b, ...} = ...)
  • Added and slightly improved examples
  • Replaced HashMaps with AHashMaps
  • Minor cleanings in the code
  • Removed winres as a build dependency (icon unnecessary for something ran in the console)
  • When ran Clue will now set the env varible CLUE_VERSION (mainly to be used in the preprocessor)
  • Added len, pairs, ipairs and close meta methods
  • Added criterion for benchmarking
  • Slightly improved and added new error messages
  • Clue now uses VecDeque instead of LinkedList

Version 2.5.3

24 Nov 09:28
Compare
Choose a tag to compare
  • Fixed --execute not working with --pathiscode
  • Fixed a compiled directory not returning what main.clue returns when loaded externally
  • Formatted code

This should, hopefully, be the last 2.5.X release, and the next version should be 3.0.

Version 2.5.2

19 Nov 16:00
Compare
Choose a tag to compare
  • Fixed a || {} (and similar cases) not being valid syntax
  • Fixed --debug not working properly by remaking most of it
  • Improved --execute's start and finish messages
  • Updated struct, extern and constructor's error messages
  • Added warning for macro

Version 2.5.1

08 Nov 18:29
Compare
Choose a tag to compare
  • Added --execute flag
  • Compiled code can now be executed from Clue itself with the new flag
  • Fixed string scanning when the string ends with // (by progmboy)

Version 2.5

05 Sep 16:29
Compare
Choose a tag to compare
  • Fixed the compiler adding an additional .lua when the output name already ended in .lua
  • Added custom bases
  • Added --base flag for using custom bases
  • The default base will now check for main.lua before loading it
  • Improved the way flags that are not used by the actual compiler itself are handled
  • Renamed --debugcomments to --debug
  • Added an actual debugging system

Version 2.4.2

23 Aug 16:29
Compare
Choose a tag to compare
  • Removed unused code
  • Small code improvement
  • Fixed raw strings generating invalid code with ]s and =s (examples: `]]`, `]=]`, ...)

Version 2.4.1

19 Aug 07:45
Compare
Choose a tag to compare
  • Fixed match not being considered a valid right hand token
  • Fixed bitwise NOT causing invalid syntax (a~b was considered valid)
  • Fixed and improved raw strings parsing and compiling
  • Fixed \", \' and \` resulting in an "Unterminated string" error
  • Fixed table parsing
  • Commas in tables are now optional without it being a bug