Skip to content

Commit

Permalink
1.6.1
Browse files Browse the repository at this point in the history
  • Loading branch information
niv committed Jul 19, 2023
1 parent 489fe1a commit dea29b8
Show file tree
Hide file tree
Showing 2 changed files with 35 additions and 6 deletions.
39 changes: 34 additions & 5 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,40 @@

All notable changes to this project will be documented in this file.

## [Unreleased]

### Changed

- `nwn_script_comp` can now compile in parallel; has gained more CLI flags.
## [1.6.1] - 2023-07-19

### Script Compiler

With 1.6.0, the official nwscript compiler source code has been added to the repository, licenced as GPL-3.0. This release builds on this:

- Parser now understands floating point values such as `0f`, `.0` and `.42f`.
- For loops can now take non-integer expressions in the first and third part of a loop statement. (e.g. floating point values now work).
- Constant folding: `const` declarations can now contain any constant expression (such as arithmetics), including previously defined consts.
- Instruction melding: A second pass over the generated bytecode will now meld some redundant instructions together.
- Where possible, expressions are now evaluated at compile time (instead of runtime).
- The CLI utility can now utilise all CPU cores to compile scripts in parallel.
- The script compiler will ensure no outdated .ndb remains when re/compiling scripts without debugging support enabled.
- Fixed structures passed using the `?:` operator causing a bad compiler state.
- The script compiler has gained support for enabling optimisations. Currently available:
- `-O0` Turn off all optimisations
- `-O2`: Turn on all optimisations:
- Constant folding
- Instruction melding
- Removing all dead/unused code

### Bytecode Disassembler

- `nwn_asm` can now decode DE_STRUCT instructions.
- `nwn_asm` can now disable loading .ndb with a cli flag, if no per-function disassembly is desired.
- `nwn_asm` now prints global offsets in addition to per-function offsets when .ndb is enabled.
- `nwn_asm` can now optionally weave the originating source code into the disassembly, if both source code and .ndb is available.

### Other utilities

- Fixed regression introduced with 1.6.0 that resulted in GFF files failing to compile with a integer out of range error.
- All cli utilities now support the flag `--silent` to hide all output, even errors. Errors can be detected by checking the process exit code.
- Performance improvements on internal data structures to make utilities start up faster.
- Added some legacy (currently unused) restypes: .res, .wfx

## [1.6.0] - 2023-07-06

Expand Down
2 changes: 1 addition & 1 deletion neverwinter.nimble
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import sequtils, os, strutils

version = "1.6.0"
version = "1.6.1"
author = "Bernhard Stöckner <[email protected]>"
description = "Neverwinter Nights 1: Enhanced Edition data accessor library and utilities"
license = "MIT"
Expand Down

0 comments on commit dea29b8

Please sign in to comment.