Skip to content

Releases: NSIS-Dev/nsl-assembler

Release 1.1.0

06 Jan 12:17
7f4c12b

Choose a tag to compare

Release Notes

15 years after the last release, there's a new version of nsL Assembler! What started as a mere attempt to fix the broken test turned into something bigger: 19 new instructions have been added to this version, the tooling has been updated, and all binary artifacts have been removed from the repository.

It should be noted that this version was released with no involvement of the original author, Afrow UK. We hope that the changes are to his liking. We tried to follow the intention of the DSL and its coding style and conventions.

What's Changed

  • test: remove stray test for lineoprev by @idleberg in #1
  • refactor: use gradle to build and test by @idleberg in #2
  • feat: add support for new language instructions by @idleberg in #3
  • feat: add support for CPU instruction by @idleberg in #7
  • refactor: make StrCpy extensible by @idleberg in #8
  • ci: add release workflow by @idleberg in #9

Full Changelog: https://github.com/NSIS-Dev/nsl-assembler/commits/v1.1.0

1.0.3

24 Mar 02:18

Choose a tag to compare

1.0.3 - 18th April 2011

  • Fixed bug resulting in func() == true, func() == false, func() != true
    or func() != false not being assembled correctly.
  • Removed unused linenoprev() function from Tokenizer class.

1.0.2

24 Mar 02:17

Choose a tag to compare

1.0.2 - 28th March 2011

  • Global assignments of "" to registers are no longer assembled
    (registers are intialised to an empty string by NSIS).
  • Fixed < and > operators using incorrect jump labels.
  • Jump instructions when used in switch statements now receive similar
    optimisations to their use in if statements. For example, MessageBox
    can be used with cases "IDYES", "IDNO", "IDCANCEL" and so on. IfSilent
    can be used with cases true or false. The go-to labels for each case
    will be used directly on the jump instruction (i.e. IfSilent label_case_true label_case_false) as is also done with if statements.
  • Switch cases must have literal string, Boolean or integer values.
  • Added missing 'default:' case for switch statements.
  • Fixed Boolean values or instructions not being accepted as operands
    for a Boolean operator.
  • Fixed MessageBox being accepted as a Boolean value.
  • Fixed MessageBox using 3 goto jumps on the end when only 2 are
    allowed.
  • Fixed If statements accepting a non-boolean expression.
  • Fixed Boolean logic for || operator with left and right operands as
    relative/equality comparisons.
  • Added error on literal division by zero.
  • More example scripts!

1.0.1

24 Mar 02:14

Choose a tag to compare

1.0.1 - 27th March 2011

  • Added @ prefix for strings to disable escape sequences (\r \n etc.)
    being parsed.

1.0.0

24 Mar 02:14

Choose a tag to compare

1.0.0 - 26th March 2011

  • First public release.