Release 1.2
The Mercurial changelog and the list of closed tickets provide more information on what has happened, including bugs that have been fixed.
- Added LenskitConfiguration class and deprecated LenskitRecommenderEngineFactory. Use LenskitRecommenderEngine.build() to build an engine from a configuration.
- Added PreferenceDomainBuilder to build preference domains.
- PreferenceDomain now uses a precision of 0 to represent continuous scales (#327); the value is still formally undefined behavior, but code which (incorrectly) depended on the precision when a domain does not have a precision may need to be corrected.
- Implemented new lenskit-groovy module to load LensKit configurations from Groovy-based configuration files. See the config package JavaDoc for information on how to use this support.
- SparseVector performance improvements, particularly for dot products.
- Sparse vectors now expose Pointers over their entries directly, allowing pointer-based access more efficiently than with IteratorPointer.
- Pairwise iteration in Vectors uses direct pointers.
- Dot products now use pairs of pointers directly, rather than indirectly using pairwise iteration.