Oliver Hamlet
4ec93727d2
Use boost::unordered_flat_map in wide strings cache
...
This improves sorting performance by 7%.
The change also revealed an iterator invalidation bug in the previous implementation, so now it inserts both strings into the cache before getting their wide values.
2025-01-17 20:18:34 +00:00
Oliver Hamlet
a28b73517f
Use boost::unordered_flat_* for sorting paths cache
...
This improves sorting performance by 31%.
2025-01-17 20:18:34 +00:00
Oliver Hamlet
bc8701a7ba
Use boost::unordered_flat_set to hold visited vertices in FindPath()
...
This improves sorting performance by 40%.
2025-01-17 20:18:34 +00:00
Oliver Hamlet
ead4f21250
Return a cached reference from PluginSortingData::GetName()
...
Avoiding the string copies improves sorting performance by 7%.
2025-01-17 20:18:34 +00:00
Oliver Hamlet
379cf32ec7
Avoid repeating UTF-16 conversions when setting up sorting data
...
This makes sorting 5% faster.
2025-01-17 20:18:28 +00:00
Oliver Hamlet
7849682946
Cache UTF-16 strings on Windows during sorting
...
Converting between UTF-8 and UTF-16 is surprisingly slow, this improves
sorting performance by 16%.
2025-01-17 18:52:52 +00:00
Oliver Hamlet
e52b9ef2ec
Construct esplugin error strings lazily
...
This improves sorting performance by 7% by avoiding unnecessary string
concatenation.
2025-01-17 18:52:52 +00:00
Oliver Hamlet
7abfc66f8c
Run tests in parallel in CI
2025-01-15 19:01:06 +00:00
Oliver Hamlet
1f4d43a49f
Adapt build to CMake's CMP0167 policy
...
This is a little awkward because libloot only needs Boost's headers, but it doesn't supply a CMake config unless it's built, so we build the system stub to make that happen as quickly as possible.
2025-01-15 18:31:58 +00:00
Oliver Hamlet
1e57ea1a39
Tweak how CMake is run in CI
2025-01-15 18:21:51 +00:00
Oliver Hamlet
9b6ec47709
Use ctest to run tests in CI
2025-01-15 18:17:31 +00:00
Oliver Hamlet
b582f3a4fb
Fix minimum required CMake
...
FIND_PACKAGE_ARGS was introduced in 3.24. I don't think there's any newer functionality used, but I could be wrong.
2025-01-15 18:13:54 +00:00
Oliver Hamlet
aac3f68a4c
Fix running tests using ctest
2025-01-15 18:13:54 +00:00
Oliver Hamlet
7442a16706
Remove dependency on Boost's UUID and Lexical Cast libraries
2025-01-15 17:10:48 +00:00
Oliver Hamlet
349981b2a0
Remove ICU version specified in CMakeLists
...
It doesn't really serve any purpose any more, and could end up causing issues.
2025-01-13 19:47:15 +00:00
Oliver Hamlet
9dd391d65d
Remove Linux release CI job
...
The build was run to prove it works, but that happens in the CI job anyway, so it's just a maintenance burden.
2025-01-13 19:18:33 +00:00
Oliver Hamlet
e0301302aa
Install ICU from package repositories in CI
...
Now that the Linux release builds are no longer published, there's no real need to depend on a specific different version.
2025-01-13 19:05:40 +00:00
Oliver Hamlet
65f8bcd410
Update CI cargo cache config
2025-01-13 19:05:40 +00:00
Oliver Hamlet
0c4bc2f59a
Migrate Linux CI to the ubuntu-24.04 GitHub Actions runner
...
The ubuntu-20.04 runner is due to be deprecated on 2025-02-01 and
unsupported by 2025-04-01.
The ubuntu-24.04 runner does not include cbindgen, so it's now installed
using apt.
GCC 10 doesn't support the newer libtbb that is in Ubuntu 24.04's apt
repositories, so update to GCC 13.
The behaviour of std::filesystem::equivalent changed at some point
between GCC 10 and GCC 13, so the tests have been updated to reflect
that.
2025-01-13 19:03:26 +00:00
Oliver Hamlet
6bc2189cc5
Update Boost to 1.87.0
...
Also update the download URL as downloads seem to no longer be hosted on JFrog.
2025-01-05 11:59:40 +00:00
Oliver Hamlet
5cabe7ec3f
Log when a .ghost file extension is added
2025-01-05 11:08:18 +00:00
Oliver Hamlet
32db24e1c8
Don't upload Linux release archives
...
Run the build to prove it works, but don't publish the archive because LOOT no longer needs it, and it's not very portable to other Linux distributions or versions of Ubuntu, and people might try to use it instead of building from source.
2024-11-18 21:10:21 +00:00
Oliver Hamlet
2ac1e4363c
Update spdlog to v1.15.0
2024-11-09 16:13:25 +00:00
Oliver Hamlet
44008ea720
Update changelog and version for 0.24.5
0.24.5
2024-10-24 10:40:20 +01:00
Oliver Hamlet
a1de089f67
Update sorting doc
2024-10-24 10:40:19 +01:00