Skip to content

Releases: ClueLang/Clue

Version 3.4.7

29 Mar 11:59
Compare
Choose a tag to compare
  • Set workspace.resolver to 2.
  • Fixed rust-version being no longer correct (from 1.65 to 1.70).
  • Fixed preprocessor macros' arguments not allowing ,s inside {}.
  • Fixed --debug causing causing an invalid sequence error on Windows.
  • Moved rpmalloc feature from core to cli.
  • Updated all dependencies.

Version 3.4.6

24 Nov 19:04
Compare
Choose a tag to compare
  • Fixed ULL and LL not being properly read by the scanner.
  • Fixed using safe indexing after round brackets resulting in invalid code.
  • Fixed code like (a).b on its own being allowed (results in invalid code).
  • Fixed safe indexing inside loop conditions causing issues.
  • Improved how safe indexings are compiled.

Version 3.4.5

19 Nov 16:05
Compare
Choose a tag to compare
  • Fix using continue multiple times in a single loop with the MoonScript.
  • Allow ;s to be used in code blocks to allow clarifying ambiguous code.

Version 3.4.4

23 Oct 20:54
Compare
Choose a tag to compare
  • Fixed @define directives not parsing strings properly.
  • Strings in @define directives can now be be multi-lined.

Version 3.4.3

01 Oct 19:59
Compare
Choose a tag to compare
  • Fixed enums not allowing negative values.
  • Removed a debug print that was accidentally left out last patch.

Version 3.4.2

30 Aug 21:39
Compare
Choose a tag to compare
  • Fixed commas inside strings being treated as actual commas (thus ending the argument and going to the next)

Version 3.4.1

27 Jun 16:06
Compare
Choose a tag to compare
  • Fixed bitwise operators breaking when using the library bitwise mode
  • Refactored vec_deque![]

Version 3.4

13 Jun 15:21
Compare
Choose a tag to compare
  • Added renamable table destructuring (local {a => b} = t works like local b = t.a), can be used alongside normal destructuring.
  • Added nested table destructuring (local {a => {x, y}} = t).
  • Reworked the way match blocks are compiled, to allow more advanced syntax with them.
  • With the above rework the compiled output is now more efficient with internal variables (example: if a branch used a ternary, it will now only handle that ternary when actually needed).
  • Fixed operators mistaking previous code blocks as tables and thus allowing invalid syntax.
  • Optimized the way keywords are stored.
  • Removed every "deprecated" element which was not actually deprecated (like the macro keyword).
  • Added phf dependency.
  • Reduced the size of the symbols maps.
  • Added support for storing an imported file into a table when using @import (@import "file" => my_table.file).
  • @import now also preprocesses the chosen name if it has to (@import "file" => $NAME).
  • Fixed @import not erroring when the chosen name is empty (@import "file" => is now invalid).
  • Fixed @import not erroring when the file name is empty (@import "dir." is now invalid).

Version 3.3.1

21 May 15:52
Compare
Choose a tag to compare
  • Fixed Clue failing to compile without mlua
  • Merged the 2 finish functions into 1
  • Added a check for building Clue with all possible combination of features in the test action (since this isn't the first time this happened...)
  • Removed clue.ico from the repository

Version 3.3

20 May 15:35
Compare
Choose a tag to compare
  • Added loop { ... } while x loops
  • Added if local ... = ... { ... }
  • Added --expand (-E) flag to print preprocessed file
  • Clue will now add .clue to the given filename if missing
  • Conditional indexing's output is now wrapped in ()
  • Simplified and remade @version directive
  • Added @ifndef directive
  • @import now automatically figures out if the file should be imported using require() or import()
  • Fixed non ASCII characters crashing the preprocessor if they're the last character of a file
  • Fixed table parsing not accounting for ?(
  • Fixed preprocessor @else_<if_name> chains breaking often
  • Fixed format_clue!() possibly breaking when passing a function call (as it gets called twice)
  • Fixed some blocks getting inaccurate block start lines with --debug
  • Fixed match blocks returning the matched expression when no matches are found (now returns nil)
  • Fixed Clue::env_struct() not working correctly at all.
  • Optimized and fixed match blocks being able to panic or give weird errors
  • Optimized ternary, match and coalesce's output (the output could have processed them even when unnecessary before)
  • Small code adjustments
  • Small refactor of how the input path and the output name are handled
  • Improved and fixed documentation
  • Reworked and improved the output of --debug by a lot (still not perfect...)
  • All loops will have additional debug information with --debug
  • return now errors if the code block continues after it
  • Updated clap to 3.2.25