Update docs

This commit is contained in:
Oliver Hamlet
2017-10-16 08:38:41 +01:00
parent 6672eec163
commit ceddf77c08
3 changed files with 52 additions and 21 deletions
+42
View File
@@ -2,6 +2,48 @@
Version History
***************
0.12.0 - Unreleased
===================
Added
-----
- Support for light master (``.esl``) plugins.
- :cpp:any:`LoadCurrentLoadOrderState()` in :cpp:any:`loot::GameInterface` to
expose load order cache management to clients, as libloadorder no longer
internally manages it.
- :cpp:any:`loot::SetLoggingCallback()` to allow clients to handle the LOOT
API's logging statements themselves.
- Logging of libloadorder error details.
Changed
-------
- :cpp:any:`LoadPlugins()` now loads the current load order
state before loading plugins.
- Replaced libespm dependency with esplugin v1.0.5. This significantly improves
safety and sorting performance, especially for large load orders.
- Updated libloadorder to v10.0.0. This significantly improves safety and the
performance of load order operations, at the expense of exposing cache
management to the client.
- Updated libgit2 to v0.26.0.
Removed
-------
- ``DatabaseInterface::EvalLists()`` as it was superseded in v0.11.0 by the
ability to evaluate conditions when getting general messages and individual
plugins' metadata, which is more efficient.
- ``SetLoggingVerbosity()`` and ``SetLogFile()`` as they have been superseded
by the new :cpp:any:`loot::SetLoggingCallback()` function.
Fixed
-----
- Formatting in metadata documentation.
- Saving metadata wrote entries in an inconsistent order.
- Clang build errors.
0.11.1 - 2017-06-19
===================
+8 -17
View File
@@ -39,36 +39,22 @@ metadata files into memory, but does not evaluate these conditions, so the
loaded metadata may contain metadata that is invalid for the installed game that
the :cpp:class:`loot::DatabaseInterface` object being operated on was created for.
The :cpp:func:`EvalLists` must be called to evaluate any conditions in the
loaded metadata. In doing so it discards any metadata with a condition that
evaluates to false, but the pre-evaluation metadata is cached internally so that
re-evaluation does not require the lists to be reloaded.
Caching
=======
All unevaluated metadata is cached between calls to :cpp:func:`LoadLists`.
Evaluated metadata is cached between calls to :cpp:func:`EvalLists`. Metadata
conditions and their results are cached between calls to :cpp:func:`EvalLists`,
so that every call to :cpp:func:`EvalLists` re-evaluates all conditions, but
conditions that are used more than once in the loaded metadata are only
evaluated once.
Plugin content is cached between calls to :cpp:func:`LoadPlugins` and
:cpp:func:`SortPlugins`.
Load order is cached on creation of a game using :cpp:func:`CreateGameHandle`
and when :cpp:func:`SetLoadOrder` is called, and plugins' active states are
cached between calls to :cpp:func:`LoadPlugins` and :cpp:func:`SortPlugins`.
Load order is cached between calls to :cpp:func:`LoadPlugins`,
:cpp:func:`SortPlugins` and :cpp:func:`LoadCurrentLoadOrderState`.
Performance
===========
Loading metadata lists is a relatively costly operation, as is updating the
masterlist (which involves loading it). Evaluating the loaded metadata lists is
not very costly relative to loading them, though is performance depends on the
type and number of conditions used in the loaded metadata, and all the
conditions involve filesystem access.
masterlist (which involves loading it).
Sorting plugins is expensive, as it involves loading all the FormIDs for all
the plugins, apart from the game's main master file, which is skipped as an
@@ -77,3 +63,8 @@ other plugin, so is unnecessary and slow to load).
Getting plugin metadata once loaded is cheap, as is getting a masterlist's
revision.
Loading the current load order state is relatively cheap and can take < 1 ms
depending on hardware and the size of the load order, but involves filesystem
access and should not be done more often than necessary to avoid a performance
impact.
+2 -4
View File
@@ -9,7 +9,7 @@ Enumerations
.. doxygenenum:: loot::GameType
.. doxygenenum:: loot::LogVerbosity
.. doxygenenum:: loot::LogLevel
.. doxygenenum:: loot::MessageType
@@ -25,9 +25,7 @@ Public-Field Data Structures
Functions
=========
.. doxygenfunction:: loot::SetLoggingVerbosity
.. doxygenfunction:: loot::SetLogFile
.. doxygenfunction:: loot::SetLoggingCallback
.. doxygenfunction:: loot::IsCompatible