Commit Graph
23 Commits
Author SHA1 Message Date
Oliver Hamlet d0bde327c2 Speed up CRC32 calculation
It turns out that passing in one byte at a time is really inefficient
(which really should have been obvious...). For small files the
difference is insignificant, but for Skyrim SE's Update.esm (18 MB)
feeding in the buffered file content slice made the calculation twice
as fast, and this seems to have non-linear effect, as the benchmark
against Dragonborn.esm (63 MB) would have taken ~ 1137 seconds to run
when passing one byte at a time (the benchmark using a buffer took ~ 5
seconds).

On top of that, switching to the crc32fast crate has an insignificant
effect on benchmarking with Blank.esm, but Update.esm's benchmark
was twice as fast again, and when benchmarking with Dragonborn.esm,
using crc32fast was ~ 170x faster than using the crc crate!
2020-06-13 23:17:32 +01:00
Oliver Hamlet 458820b638 Update criterion to v0.3.0 2019-12-23 14:04:16 +00:00
Oliver Hamlet 377ebcbb63 Update pelite to v0.8.0 2019-12-23 13:37:55 +00:00
Oliver Hamlet 1075596e99 Update versions and changelog for v2.1.0 2019-10-05 13:24:52 +01:00
Oliver Hamlet cb211d6ec3 Add support for an is_master(file path) function 2019-10-05 13:24:52 +01:00
Oliver Hamlet 90cbeff71a Update versions and changelog for v2.0.1 2019-07-23 19:15:35 +01:00
Oliver Hamlet 214cc93423 Update versions and changelog for v2.0.0 2019-06-30 11:25:24 +01:00
Oliver Hamlet 52792626af Update to Rust 2018 syntax 2019-06-30 11:25:23 +01:00
Oliver Hamlet 4db34be2c9 Upgrade to nom v5
Error handling has changed, affecting the error variants LCI exports,
and macros are replaced by functions, so all the parsing code has been rewritten.
2019-06-30 11:25:23 +01:00
Oliver Hamlet 2e05117b61 Update versions and changelog for v1.3.0 2019-04-07 12:25:40 +01:00
Oliver Hamlet ea3a922ee7 Update versions and changelog for v1.2.2 2019-01-26 09:50:40 +00:00
Oliver Hamlet 3777c067a4 Update versions and changelog for v1.2.1 2019-01-20 00:47:21 +00:00
Oliver Hamlet 517b636743 Update versions and changelog for v1.2.0 2018-12-22 23:51:01 +00:00
Oliver Hamlet 4f1b1c0bf0 Update versions and changelog for 1.1.1 2018-11-14 21:17:59 +00:00
Oliver Hamlet 80676f72b4 Update versions and changelog for 1.1.0 2018-10-23 21:12:41 +01:00
Oliver Hamlet c0bea60673 Add FFI wrapper crate 2018-10-20 21:13:33 +01:00
Oliver Hamlet f6f51e2ee6 Add benchmarks to help optimise result caching 2018-10-06 13:28:03 +01:00
Oliver Hamlet 3bf009e579 Implement PartialEq, Eq for Function 2018-10-06 10:29:50 +01:00
Oliver Hamlet be313c40cb Support reading file version from Windows executables 2018-10-05 19:52:51 +01:00
Oliver Hamlet 3e1c2084e5 Add evaluation of checksum() conditions 2018-10-03 19:21:45 +01:00
Oliver Hamlet b9448e2072 Implement file path function evaluation 2018-10-03 17:15:34 +01:00
Oliver Hamlet dfb41233bd Update nom to v4 and regex to v1 2018-10-03 17:15:33 +01:00
Oliver Hamlet b3435122dd Initial commit of experimental LOOT condition parser
Some FilePath functionality is missing, not all tests pass, and parsing
is incorrect for all structs.
2018-10-03 17:15:33 +01:00