3418 Commits
Author SHA1 Message Date
Oliver Hamlet ce7d9c21cd Update version and changelog for v0.18.3 release 0.18.3 2022-12-13 20:51:45 +00:00
Oliver Hamlet 3f7e2b48f3 Adjust messages logged on game handle creation 2022-12-13 20:51:45 +00:00
Oliver Hamlet f5811808fa Adjust some log statement levels
Largely so that LOOT's logging can run at info verbosity by default
instead of warn without too much detail in the log output.

I've also moved some statements between trace and debug based on how
useful I think they'd be when debugging issues.
2022-12-13 20:15:07 +00:00
Oliver Hamlet 99ae67dad0 Add additional logging statements during sorting
Indicating the start of each stage of adding edges to the plugin graph.
2022-12-13 20:15:07 +00:00
Oliver Hamlet 06f9201717 Tidy up PluginSortingData construction 2022-12-13 20:15:01 +00:00
Oliver Hamlet 280a4aab66 Improve performance of adding group edges
This reduced the time taken when using a very large userlist (featuring
11 group definitions and 1287 group assignments) and 1619 plugins from
332 seconds to 34 seconds.

Without the large userlist, the time taken went from 17 seconds to
1.8 seconds.
2022-12-12 11:22:17 +00:00
Oliver Hamlet 02570b2063 Store graph vertices in a std::vector
It doesn't make much of a difference to performance, but it does
simplify the code a little and silence a few compiler warnings.
2022-12-12 11:22:17 +00:00
Oliver Hamlet 1a6eba1c3b Split PluginGraph::TopologicalSort() into smaller functions
To help with testing.
2022-12-12 11:22:17 +00:00
Oliver Hamlet b1f4288548 Pass vector into GetOverlapSize() by reference
The function is only used when sorting Morrowind plugins, but this
should remove some unnecessary overhead in that case.
2022-12-10 13:33:27 +00:00
Oliver Hamlet 17cb506d24 Reorder PluginGraph methods
Also make the order of definitions match the order of declarations,
and rename a few internal functions for clarity.
2022-12-08 21:48:05 +00:00
Oliver Hamlet 338c092cf5 Refactor PluginGraph
Expose more basic graph interactions (e.g. adding a vertex) through
member functions so that it'll be possible to do more fine-grained
testing.
2022-12-08 21:24:16 +00:00
Oliver Hamlet 46aa3f5a07 Refactor PluginSortingData to not depend on Plugin
This is a step towards making it easier to test sorting without having
to load real plugins.
2022-12-07 21:25:27 +00:00
Oliver Hamlet 2bd3682109 Store plugin graph edges in a std::vector
This cuts the sorting time of a large (1619 plugins) load order by over
60% (15.5 min to 6 min).
2022-12-02 17:21:44 +00:00
Oliver Hamlet d2ebefc40a Change paths cache storage stype
It's about 10% faster with a map of sets vs. a set of pairs.
2022-12-02 17:21:43 +00:00
Oliver Hamlet 85decd2746 Refactor sorting path cache
It'll be easier to experiment on with the cache storage abstracted away.
2022-12-02 14:49:00 +00:00
Oliver Hamlet 38363c17d5 Remove tie() usage in for loops
It's unnecessary since C++17 introduced structured bindings.
2022-12-02 14:21:37 +00:00
Oliver Hamlet b3436d23d8 Rename PluginGraph::EdgeCreatesCycle
It's really got nothing to do with cycles.
2022-12-02 14:17:09 +00:00
Oliver Hamlet d145d234e2 Handle null Plugin pointers in PluginSortingData
The data won't make a lot of sense, but it's better than trying to
dereference a null pointer.
2022-12-02 14:11:27 +00:00
Oliver HamletandGitHub f4ea7790a0 Merge pull request #88 from loot/sib-not-note
Remove notes on not operator & expressions
2022-11-16 20:51:21 +00:00
Oliver Hamlet b393389e69 Update spdlog to v1.11.0 2022-11-16 18:36:01 +00:00
Oliver Hamlet 22c64339de Add URL hashes tor external projects in CMakeLists
This will help avoid unnecessary downloads on rebuilds.
2022-11-16 18:35:50 +00:00
Oliver Hamlet aba9ed7e95 Fix fields in resource file
When reading Microsoft's docs to debug an issue in another codebase I
noticed that the fields added in this commit are documented as being
required, and that there was a specific FILETYPE for DLLs.
2022-11-16 18:33:27 +00:00
sibir f4236037e4 Remove notes on not operator & expressions
No longer true as of v0.17 of metadata syntax.
2022-11-16 00:25:07 -08:00
Oliver Hamlet 4636b95c3e Remove git describe output from release version
To simplify release artifact names.
2022-11-01 16:46:53 +00:00
Oliver HamletandGitHub 6632cce93d Merge pull request #86 from NicBOMB/master
Resolve cmake warning on ExternalProject_Add
2022-11-01 16:45:01 +00:00