Releases: niv/neverwinter.nim
Releases · niv/neverwinter.nim
2.0.2
2.0.1
[2.0.1] - 2024-10-12
This release now requires nim 2.0 or newer.
Added
- Add support for nim 2.0.x and 2.2.x.
- lib: Now correctly reads retail.key for game version 37+.
- scriptcomp: Added support for
__FUNCTION__
,__FILE__
,__LINE__
,__DATE__
and__TIME__
keywords. - scriptcomp: Added dead branch code optimisations for constant ifs.
- scriptcomp: Added support for unary plus (e.g. constants like
+7
now compile). - scriptcomp: Added support for double bang (e.g.
!!x
not compiles). - scriptcomp: Added support for hashed string literals (e.g.
h"foo"
-> int). - scriptcomp: Can now output graphviz parse trees to help compiler engineers.
- scriptcomp: Added better error reporting on parser errors.
Fixed
- lib: Fixed --manifests not working.
- lib: Compressedbuf can now correctly handle zero-byte payloads.
- nwn_resman_*: Fixed --all not working.
- nwn_nwsync_prune: Incorrect size reporting on reference pruning.
- scriptcomp: Fixed potential stack overflow issue when compiling particularly complex switch statements.
- scriptcomp: Fixed Unidentified Identifier errors not displaying the identifier label.
1.8.0
[1.8.0] - 2024-03-26
Added
- The nwsync utilities from beamdog/nwsync have been moved into this repository.
- nwsync: prune utility will not trim recently-written files (default: 2 weeks).
Fixed
- nwsync: Will now correctly error out if any lookup path element cannot be found.
- nwsync: Do not create directories in dryrun mode.
1.7.3
1.7.2
[1.7.2] - 2024-02-04
Changed
- All binaries now build with stacktraces enabled, to make user reports more useful.
Fixed
- Fixed installation on nim 1.6 due to changed checksums package upstream.
Performance Improvements
- scriptcomp: Optimized the common for loop construct
for (i = 0; i < N; ++i)
.
1.7.1
[1.7.1] - 2023-12-17
Changed
- ResDir instances now cache their contents on creation time. This is a change from previous behaviour, where additions to a local directory were reflected immediately.
Fixed
- ResDir is now case-insensitive, same as base game and other ResContainer types.
- scriptcomp: Messages about encoding are no longer printed multiple times when using threads.
1.7.0
[1.7.0] - 2023-11-26
Added
- script_comp: Add cli flag to optionally follow symlinks.
- script_comp: Add cli flag to allow raising the max include depth.
- script_comp: Now also prints the full include chain for each error.
- script_comp: Now prints timing for each handled file; updated some help text to be clearer.
Fixed
- ResMan/Res: Fix prematurely opening FDs and exhausting allowed pool when sourcing many files (e.g. script_comp *.nss).
This release bumps version to 1.7 due to the minor API change on the Res type.
Windows amd64 binaries might still have file seeking issues due to the prevailing mingw bug. If you run into strange issues related to broken file reads, try the 32bit binaries first.
1.6.4
[1.6.4] - 2023-10-14
Added
- Preliminary support for nim 2.0.
Fixed
- script_comp: Don't ever compile nwscript.nss.
- script_comp: Don't link libstdc++ statically on LINUX.
1.6.3
[1.6.3] - 2023-08-01
Bytecode Disassembler
- Canonical op representation separates op and aux with a dot now, to make visual and machine parsing easier.
- Float formatting is now less noisy.
- nwn_asm no longer prints relative jump offsets.
- nwn_asm can now specify padding and term width for printing.
Fixed
- Fixed encoding not initialising correctly when get*Encoding wasn't called.
1.6.2
[1.6.2] - 2023-07-26
Script Compiler
- Script compiler now supports raw string literals:
r".."
andR".."
, which can also span multiple lines. - Temporarily disabled MOVSP merging optimization (fixing STACK_UNDERFLOW errors when using -O2).
Bytecode Disassembler
nwn_asm
now prints shorter, canonical opcodes.nwn_asm
now parsesnwscript.nss
and prints the names of executed actions.nwn_asm
now prints in colour; indicates jump source/target IPs; improved column display.nwn_asm
now disassembles the whole file in debug mode (-g), not just known functions.
Fixed
- Fixed the default steam path for Windows.
- Fixed a crash when the Beamdog Client settings.json file could not be found.
- Fixed
--language
not defaulting toen
and overrides not working at all. - resman.nim: Fixed sometimes not throwing a ValueError when the requested resref does not exist.
Removed
- Removed remaining double-byte language support (this is not supported on EE).
Note: [Windows only!] Still unsure about amd64 windows binaries. Mingw fseek bug probably persists and I have no time to look into it. To be safe, or if you run into stream exceptions on known-good data, pick the i386 variant.