Skip to content

Releases: niv/neverwinter.nim

2.0.2

25 Jan 15:07
Compare
Choose a tag to compare

[2.0.2] - 2025-01-25

Added

  • scriptcomp: Added support for binary (0b101010) and octal (0o52) integers.

Fixed

  • The MacOS binary build via GHA is now amd64, not arm64. A proper universal build can come later.
  • asm: Can now correctly disasm struct equality checks.

2.0.1

12 Oct 09:49
Compare
Choose a tag to compare

[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

26 Mar 11:12
Compare
Choose a tag to compare

[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

17 Feb 15:51
Compare
Choose a tag to compare

[1.7.3] - 2024-02-17

Fixed

  • Fixed checksums import when using neverwinter.nim as library (#110).
  • scriptcomp: Fixed regression not utilising all threads when compiling (#109).

1.7.2

04 Feb 13:45
Compare
Choose a tag to compare

[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

17 Dec 15:17
Compare
Choose a tag to compare

[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

26 Nov 15:10
Compare
Choose a tag to compare

[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

14 Oct 09:20
Compare
Choose a tag to compare

[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

01 Aug 09:05
Compare
Choose a tag to compare

[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

26 Jul 14:25
Compare
Choose a tag to compare

[1.6.2] - 2023-07-26

Script Compiler

  • Script compiler now supports raw string literals: r".." and R"..", 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 parses nwscript.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 to en 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.