Commit Graph
34 Commits
Author SHA1 Message Date
Oliver Hamlet db9f51a2b2 Update changelog and version for 0.27.0 2025-06-08 20:59:14 +01:00
Oliver Hamlet 11bd321861 Rework handling of esplugin errors
The error scenario represented by PluginNotLoadedError is distinguished from all other esplugin errors by LOOT, so it's worth handling separately.
2025-06-08 20:26:07 +01:00
Oliver Hamlet 05c984c769 Remove libloadorder_category()
Throw errors from libloadorder as std::runtime_error instead of std::system_error.
2025-06-08 17:58:27 +01:00
Oliver Hamlet 2b0eec9929 Remove ConditionSyntaxError
It's not usefully different from throwing std::runtime_error.
2025-06-08 17:58:27 +01:00
Oliver Hamlet ba50882ad3 Update changelog and version for 0.26.3 2025-06-08 09:23:43 +01:00
Oliver Hamlet 8c317d93ed Avoid direct dependency on saphyr-parser 2025-05-18 22:26:10 +01:00
Oliver Hamlet 699915efff Update the versions and changelog to 0.26.2
To reflect the v0.26.2 release of the C++ implementation.
2025-05-16 23:28:01 +01:00
Oliver Hamlet 17892f54c4 Fix outdated version numbers 2025-05-11 16:09:02 +01:00
Oliver Hamlet e0a97f88c0 Use hyphen in Python wrapper crate name 2025-05-11 16:09:02 +01:00
Oliver Hamlet 1317eea055 Use Rust Filename comparisons for C++ Filename operators
To prevent inconsistencies between implementations. This means allocating new boxed Filenames for each comparison, but an extra string copy is avoided by making the C++ operators friends of the C++ class (which is ABI-safe).
2025-05-05 11:45:50 +01:00
Oliver Hamlet eabc7a5d85 Sync with libloot v0.26.1
Aside from adding GameType::oblivionRemastered and its usage, this is almost entirely about moving C++ files and tests around.
2025-05-02 17:56:49 +01:00
Oliver Hamlet 83d9420422 Rename cxx directory to cpp
Also update the crate name and references to it. This helps distinguish the C++ wrapper that's built using CXX from CXX itself.
2025-04-29 17:42:46 +01:00
Oliver Hamlet 2b1b67daba Rename pyo3 directory to python
Also update the crate's name.
2025-04-29 17:21:03 +01:00
Oliver Hamlet 56b1fb09c9 Replace rstest with a couple of proc macros
rstest was overkill and pulled in 23 additional dependencies.
2025-04-24 20:03:23 +01:00
Oliver Hamlet db8984096f Set nodejs wrapper version to 0.26.0 2025-04-22 19:30:53 +01:00
Oliver Hamlet b19b4dfb6d Add generated files for Node.js wrapper module
Generated using @napi-rs/cli's "napi new".
2025-04-22 18:47:56 +01:00
Oliver Hamlet fb1e1ad360 Sync with libloot v0.26.0 2025-04-20 15:58:13 +01:00
Oliver Hamlet fc4b976bd6 Update esplugin to v6.1.2 2025-04-20 09:56:16 +01:00
Oliver Hamlet 501efda9e3 Update saphyr to v0.0.4 2025-04-20 09:56:16 +01:00
Oliver Hamlet 76d0410509 Update dependencies 2025-04-09 17:23:31 +01:00
Oliver Hamlet e7a5bfd5ab Update loot-condition-interpreter to v5.3.1 2025-03-26 21:44:42 +00:00
Oliver Hamlet fb6d3b1260 Update windows crate to v0.61.1 2025-03-26 21:44:42 +00:00
Oliver Hamlet 23a00630e4 Update libloadorder to v18.3.0 2025-03-26 21:44:41 +00:00
Oliver Hamlet e61aeabfbb Integrate logging in the Python wrapper 2025-03-25 22:02:34 +00:00
Oliver Hamlet 3b6752843a Use faster hashing algorithm in sorting code
The default std hasher is DoS-resistant but relatively slow, and
DoS-resistance isn't a useful property during sorting.

I tested using the rustc-hash, fnv and ahash crates against my
1600-plugin load order, and the results vs the default std hasher
were:

- AHash: 31% faster
- FNV: 33% faster
- FxHasher (from rustc-hash): 37% faster

With the std hasher the Rust libloot is 35% slower than C++, with
FxHasher it's 15% faster.
2025-03-25 22:02:33 +00:00