From dea29b806a90871ad58cda9bf21ca371cadc4aa1 Mon Sep 17 00:00:00 2001 From: Bernhard Stoeckner Date: Wed, 19 Jul 2023 09:18:05 +0200 Subject: [PATCH] 1.6.1 --- CHANGELOG.md | 39 ++++++++++++++++++++++++++++++++++----- neverwinter.nimble | 2 +- 2 files changed, 35 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0d8d530..bd566b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -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 diff --git a/neverwinter.nimble b/neverwinter.nimble index 77c69c7..1630b14 100644 --- a/neverwinter.nimble +++ b/neverwinter.nimble @@ -1,6 +1,6 @@ import sequtils, os, strutils -version = "1.6.0" +version = "1.6.1" author = "Bernhard Stöckner " description = "Neverwinter Nights 1: Enhanced Edition data accessor library and utilities" license = "MIT"