Skip to content

Releases: RyanSquared/fusionscript

FusionScript 0.3.2 [Alpha] - Linting!

08 Jun 02:55
Compare
Choose a tag to compare
Pre-release

Note: This version is marked as a pre-release. The code is stable, but it will not be released as a complete version; instead, version 0.4 will be coming out with some backwards-incompatible changes.

New Features

  • fusion.util is a new module, with a version-independent unpack() function
  • fusion-lint is a new program to print a quickfix-format list of errors

Changed Features

  • Use serpent library instead of penlight for fusion-ast.

Bug Fixes

  • All modules now use fusion.util for the unpack() function
  • The parsere module now properly prints out the character before a required semicolon
  • Remove .vimrc due to incompatibility with versions lower than Vim 8
  • Remove files that no longer serve a purpose

To view changes:

git fetch
git log --oneline v0.3.1..v0.3.2-alpha
git show --reverse v0.3.1..v0.3.2-alpha

FusionScript 0.3.1 - Bug Fixes

09 May 01:09
Compare
Choose a tag to compare

New Features

  • The fusion-source runtime (currently the default) automatically injects syntax extensions
    • If you're not compiling to Lua, this means you can leave out using statements
  • Methods can be chained
    • x():y().z()

Changed Features

  • The object:method<Class> syntax has the <Class> section removed
  • Functions used as generators (print(x in y);) are now removed
    • This, "unfortunately", had to be done because chaining and generators... Nope.

Bug Fixes

  • AST errors give a more accurate error (including the node itself)
  • mpeterv/argparse is now used instead of manually parsing flags

To view changes:

git fetch
git log v0.3.0..v0.3.1
git diff v0.3.0 v0.3.1

FusionScript 0.3.0

08 May 01:46
Compare
Choose a tag to compare

New Features

  • Local interfaces
  • luacheck 0.19 compatibility
  • Local variables without assignment (local (a, b...))

Changed Features

  • Change parsers/* to compilers/* and lexer to parser
  • Make lambdas use expression_list / statement_block
    • \x-> y() now works
    • \x-> if x y(); does not
    • \x-> {if x y();} still works

Bug Fixes

  • Make .topics/FusionScript.md a symlink
  • Moved module loading down so modules aren't reloaded if loaded already
  • Added nonendorsement clause and update year in license

To view changes:

git fetch
git log v0.2.1..v0.3.0
git diff v0.2.1 v0.3.0