vowpal_wabbit v8.7.0 Release Notes

Release Date: 2019-06-07 // almost 5 years ago
    • 🚚 The repo has moved to the VowpalWabbit organization
    • The group of core maintainers has been growing with steady improvements

    πŸ”„ Changes

    πŸ›  As always, lots of bug fixes.

    πŸ‘· Build System

    πŸ‘· The build system for VW has been overhauled to use CMake. This means, easier dependency resolution, faster build times and easier consumption as a dependency. The old automake + make systems have been replaced by this and eventually the .sln file will be replaced too. (#1624)

    Reductions/Learning Algorithms

    • Coin betting (#1903)
    • Contextual Memory Tree (#1799)
    • Warm start for cbify (#1534)
    • Softmax learner for cbadf (#1839)
    • cbify: --cbify_ldf for multiline (csoaa_ldf input datasets (#1681))

    Other Improvements

    • The parser has moved to using std types for concurency and has a clearer data production model. You’ll slowly notice more RAII types in VW. (#1731) (#1777)
    • A clang format file was added and the codebase reformatted. This is to keep things more consistent and easy to read. (#1701)
    • πŸ”§ The Python bindings can now use JSON as the input format, as long as the VW instance you’re using is configured to be parsing input as JSON (#1809)
    • πŸ“œ A new --strict_parse option was added to throw instead of warn for malformed examples (#1906)
    • ⚑️ Bare Java JNI Bindings optimized for Apache Spark (#1798)
    • βž• Add multiclass support for hyperopt utl (#1682)

    All Changes

    Click to expand all changes in 8.7.0

    • Warm start for cbify (#1534)
    • utl/vw-varinfo: work-around for issue/1547 (#1548)
    • βœ… Gramhagen 1538 python make test (#1550)
    • Fixed bug in CLI parsing of --csoaa_ldf multiline (#1551)
    • ksvm lambda fix (#1556)
    • Fixed bug causing to reset dump_interval to 1 when input model -i is provided (#1558)
    • Extract stable_unique to own function for clarity (#1559)
    • πŸ‘Œ Improvements and small fixes to utl (vw-lda, csv2vw (#1580)
    • πŸ“œ When parsing dsjson, skip lines not starting with "{" (#1593)
    • 🏁 Clean windows build and unify output paths (#1599)
    • βœ… Remove unused cs_testcommon project and directory (#1606)
    • build instructions: program_options insufficient (#1607)
    • Fixed _labelIndex out of bound error message (#1609)
    • ⚑️ Update Readme with details on installing boost dependencies (#1613)
    • βž• Add caching to appveyor build (#1616)
    • πŸ— Use a prebuilt docker image for travis build (#1620)
    • πŸ— CMake build definitions (#1624)
    • πŸ›  VS 2017 fixes (#1628)
    • πŸ— Further improve build cache by saving packages (#1634)
    • ⚑️ Update Travis and Appveyor badges to reflect organization change (#1642)
    • πŸ›  Fix cb explore adf segfault (#1643)
    • πŸ— Make VW setup projects buildable from the command-line (#1646)
    • πŸ— Use nuget restore instead of nuget install in Appveyor build (#1659)
    • βœ‚ Remove unused boost packages from VW (#1664)
    • Replace $(SolutionDir with $(ProjectDir (#1666)
    • ⚠ Use cerr for parser warnings (#1670)
    • Export vw audit output to .tsv file (#1677)
    • πŸ”§ Enable selective CMake configuration, improve messaging (#1678)
    • Fix crash when empty multi_ex is supplied for --cb_explore_adf (#1679)
    • cbify: --cbify_ldf for multiline (csoaa_ldf input datasets (#1681)
    • βž• add multiclass support for hyperopt utl (#1682)
    • bugfix: cb_adf is not including some examples in stats calculation (#1686)
    • Move trace_message from arguments to vw object (#1688)
    • βž• Add bug report issue template (#1693)
    • πŸ›  Fix some VW initialization memory leaks (#1697)
    • Fix memory leak in cb_explore_adf (#1698)
    • vw java 11 compatibility (#1700)
    • βž• Add clang-format (#1701)
    • πŸ›  Fix best constant and best constant's loss calculation when using ksvm (#1704)
    • ⚑️ Update assembly versions to match current version (#1705)
    • πŸ”¨ options_i command line parsing refactor (#1706)
    • πŸ›  Disable stdin processing for all but single instance CLI. Fixes 1300 (#1708)
    • πŸ‘‰ Use std::exp instead of exp free function (#1709)
    • πŸ›  Fix unused params warnings plus incomplete struct init (done to default values. (#1710)
    • πŸ“œ Add check for hash_inv when creating json parser (#1711)
    • πŸ›  Compile fixes (#1713)
    • πŸ”„ Change from strcmp to std::string operator== (#1715)
    • ⚑️ Update Dockerfile for TravisCI, define pipeline, upgrade Java (#1716)
    • Change to using a bool_switch for bool options (#1717)
    • Ataymano/mac options types fix (#1718)
    • βž• Add clang-format 7.0.1 to CI image (#1719)
    • ⚑️ Create Windows build scripts and update instructions (#1721)
    • Make cbify reduction respect is_learn parameter (#1722)
    • Add natvis file for v_array and substring (#1723)
    • πŸ”— Remove -DSTATIC_LINK_VW from Ubuntu build instructions (#1727)
    • πŸ›  Fix warnings in Windows MSVC x64 build (#1730)
    • 🚚 Move to std types for concurrency (#1731)
    • πŸ“¦ Scripts for running tests and generating NuGet packages (#1732)
    • πŸ›  Fix a small issue and cleanup usage of long long (#1733)
    • πŸ›  Fix file enocding for .rc files (#1734)
    • πŸ›  Fix build scripts forcing Debug builds. Add LTO mode and fix VW default visibility. (#1735)
    • ⚑️ Update README.md (#1737)
    • ⚑️ Update image used in travis (#1738)
    • πŸ›  Fix model file parser for proper treatment of negative-valued options (#1742)
    • shift clang-format to advise (#1744)
    • βœ… [tests] Make repeat.py compatible with python 3. (#1747)
    • βœ… Do not define BOOST_TEST_DYN_LINK when statically linking (#1750)
    • πŸ›  Fix test 175 (#1751)
    • Convert TopK reduction to be multiline example based (#1752)
    • βœ… RunTests: use test label number instead of counter (#1753)
    • πŸ›  Fix static linking (#1758)
    • πŸ“œ Small Json parser cleanup (#1759)
    • πŸ“œ Type erase json parser context for easier deletion (#1760)
    • Migrate from v_array to std::vector in some places + other changes (#1765)
    • On OSX, we need to catch boost::program_options::ambiguous_option directly. Probably due to different boost versions. (#1776)
    • πŸ“œ Parser now uses object and prod/cons queue and object pool for example parsing (#1777)
    • Fix resetting of cb_type (#1779)
    • πŸ›  Fix weighted average on cluster mode (#1781)
    • Allow spanning_tree to be a static executable (#1787)
    • [audit] Make sure --audit output is reproducible across systems. (#1788)
    • βž• Add example C# Simulator (#1790)
    • πŸ›  Fix usage of char instead of unsigned char for namespace index (#1791)
    • πŸ›  Fix to bug 1729: no bias regularization for BFGS not working (#1794)
    • ⚑️ Bare Java JNI Bindings optimized for Apache Spark (#1798)
    • Contextual Memory Tree (#1799)
    • expand Boost_LIBRARIES for pkg-config libs (#1801)
    • Use std::stable_sort when computing interactions. (#1804)
    • πŸ‘ [OSX] Improve support for static linking. (#1807)
    • πŸ“œ Enable JSON example parsing in Python bindings (#1809)
    • πŸ›  Fix example constructor (#1814)
    • 🐧 [python] Fix packaging so it's possible to produce a wheels package on linux. (#1815)
    • ⚑️ Update Python readme to reflect latest way to consume bindings from source (#1817)
    • πŸ›  Fix L2S HookTask in c-library and Python bindings (#1818)
    • Clear cb labels when returning to pool (#1822)
    • πŸ›  Fix build scripts for python3 (#1823)
    • Fix "average loss" bug in cb_explore.cc (#1825)
    • βž• Add gitter chat badge to readme (#1826)
    • πŸ›  Fix README.Windows.md link (#1827)
    • Consume RapidJson through submodule (#1828)
    • πŸ›  fix bug 1784: return probabilities for actions in the correct order in python binding (#1830)
    • πŸ›  Fix else statement (#1832)
    • πŸ›  Fix NaN issue in box-muller tranform (#1833)
    • πŸ›  Fix v142 toolchain (#1834)
    • ⚑️ Implement finish_example, update scripts to match (#1837)
    • cb_adf and cb_explore_adf: Setting --cb_type mtr as default (#1838)
    • First attempt at softmax learner for cbadf (#1839)
    • Fix conda_install.sh script (#1843)
    • Fix counting issue with --holdout_after option (#1844)
    • 🐳 Run coveralls inside docker (#1847)
    • 🏁 Cmake build on Windows (#1849)
    • Fix coveralls badge URL in README [(#1850)]#1850)
    • 🏁 Azure Pipeline for Windows CI (#1853)
    • cleaning up broken python3 vcxproj files (#1854)
    • BF: add cmake to installed dependencies in unstable singularity images (#1857)
    • Ataymano/c wrapper fix2 (#1859)
    • πŸ›  Fix Azure Pipeline build-break (#1867)
    • Enable Version and Tag override for NuGet pack (#1870)
    • πŸ”€ Shared example merge reduction (#1873)
    • Update gd_mf_weights.cc right namespace (#1874)
    • πŸ›  Fixed warning message ips -> mtr (#1875)
    • πŸ›  Fix dsjson parser regression and add smoke-test (#1878)
    • do not output progressive validation loss for oaa with subsampling (#1880)
    • βž• Add python documentation generation (#1884)
    • πŸ“š Update python documentation theme and index (#1885)
    • πŸ”„ Change references from SolutionDir to ProjectDir (#1886)
    • 🚚 Clean up some options warnings and remove some extra copies (#1888)
    • fix to make invert_hash work with bfgs (#1892)
    • Treat resource files as binary (#1896)
    • ⚠ memory leaks and warnings (#1898)
    • πŸ”„ Change version-generation for C# bindings to use version.txt (#1899)
    • πŸ”„ Change to absolute https path for submodule (#1900)
    • πŸ›  fix for no label confidence (#1901)
    • Coin betting (#1903)
    • πŸ‘‰ Use Appveyor MSBuildLogger (#1904)
    • πŸ‘» Optional exception (#1906)
    • fix closing invalid file descriptor with memory_io_buf (#1910)
    • βœ‚ remove warnings (#1911)
    • πŸ›  Fix to save the state of FTRL models (#1912)
    • πŸ›  fix static library build (#1913)
    • ⚠ more warnings (#1915)
    • πŸ›  fix for daemon race condition (#1918)
    • Bremen79 fix save ftrl (#1919)
    • πŸ”„ change semantics of lambda (#1920)