vowpal_wabbit v8.8.0 Release Notes

Release Date: 2019-12-07 // over 4 years ago
    • ๐Ÿ‘ There has significant work in streamlining and improving support for the Python bindings. Thanks @peterychang! (#1928)
    • The Conditional Contextual Bandit reduction got merged in, this reduction allows you to express problems where there are multiple slots to fill. See here for the wiki page. (#1816) (#1995) (#2078) (#2141)
    • CMake install targets have been added to the build files (#2172) (#2135)

      • Now you can find and link VW easily in other projects:

      find_package(VowpalWabbit REQUIRED)add_executable(my_exe main.cpp)target_link_libraries(my_exe PRIVATE VowpalWabbit::vw)

    • ๐Ÿ”€ Slim VW got merged into master. This is an experimental lightweight inference runtime that supports a subset of VW features. (#2028)

    • ๐Ÿ› Bug fixes! (see all changes below)

    Internal improvements

    We are at work overhauling and modernizing VW, some of the relevant changes on that front are below:

    • Migrate c arrays to std::array (#2094)
    • ๐Ÿ‘‰ Make hashing constexpr in C++14 and unify rotl impl (#2093)
    • Make is_example_header const (#2095)
    • Allow constructor arugments for calloc_or_throw (#2070)
    • Learner now holds type erased reduction data (#2060)
    • Use numeric_limits (#2107)
    • ๐Ÿ‘ป Unify throwing of exceptions to use vw_exception instead of bare std:exception (#2171)
    • Cb explore adf atomization (#2069)
    • Refactor cb_adf reduction (#2057)
    • Move cb_sample to be class based (#2087)
    • Atomize topk reduction (#2050)
    • Atomize autolink reduction (#2047)

    Other notable changes:

    • ๐Ÿ— --version now includes commit id if available at build time (#1951)
    • ๐ŸŽ Macos added as CI target (#1965)
    • ๐Ÿ‘ Allow escaped command lines (#2157)
    • โšก๏ธ Update MSVC Toolchain to v14.1 (#1988)
    • Multiinstance mode for multiline examples (#1934)

    All Changes

    Click to expand all changes in 8.8.0

    • ๐Ÿ›  Fix warning (#2179)
    • โž• Add/exclude new folders in the python MANIFEST (#2180)
    • ๐Ÿ›  fix some warnings (#2177)
    • ๐Ÿ›  Fixes for Learning2Search Subsystem (#2176)
    • Install rapidjson too (#2174)
    • ๐Ÿ‘‰ Use standard save/load functionality for sklearn Python lib (#2142)
    • 0๏ธโƒฃ Default the label for CCB when reading cached labels (#2158)
    • ๐Ÿ‘ Allow escaped command lines (#2157)
    • ๐Ÿ›  Fix header install locations (#2172)
    • ๐Ÿ‘ป Unify throwing of exceptions to use vw_exception instead of bare std::exception (#2171)
    • Disallow combining no_sample and cb_sample (#2148)
    • ๐Ÿ›  Fix memory leak in search.cc (#2167)
    • ๐Ÿ›  Fix unlabeled sgd examples (#2162)
    • โž• Add deleter for parsed examples (#2153)
    • ๐Ÿ›  Fix misinterpreted negative option (#2149)
    • Catalina segfault mitigation (#2152)
    • Implement CCB type binding for Python (#2141)
    • โšก๏ธ Update test dependencies (#2147)
    • Fix typo: setup.py is not in vowpal_wabbit/python (#2143)
    • Throw instead of silently append nullptr when types don't match (#2139)
    • ๐Ÿ›  Fix variadic macro warning (#2138)
    • โœ… Create testing harness for cluster operation of VW and add test (#2134)
    • ๐Ÿ‘Œ Improve VW support for CMake install process (#2135)
    • ๐Ÿ— Properly support default build type, fix comment, define project version (#2133)
    • โšก๏ธ Update cluster readme to markdown, cleanup, format code (#2131)
    • ๐Ÿ›  Fix slim build and various CMake fixes (#2130)
    • โšก๏ธ Update CMakeLists.txt (#2127)
    • ๐Ÿ›  fixed docker image version (#2126)
    • Fix segfault when ring_size argument is not supplied (#2125)
    • ๐Ÿ—„ Python: fix deprecated joblib (#2068)
    • forgot to set a parameter (#2114)
    • โž• Add option to turn off sampling for CCB (#2096)
    • โœ‚ Remove redunant copy from CCB reduction (#2112)
    • ๐Ÿ›  Fix segfault in CCB - MTR must clean up predictions allocated for cost sensitive examples (#2111)
    • Softmaxpredfile (#2113)
    • Update vw_types.natvis (#2109)
    • Use numeric_limits (#2107)
    • Refactor cb_adf reduction (#2057)
    • ๐Ÿ›  Fix an LGTM warning in recommend (#2105)
    • โšก๏ธ Update CMakeSettings.json (#2104)
    • โœ‚ Remove all usages of "using namespace std" (#2071)
    • ๐Ÿ›  Fix lots of warnings and clang-tidy suggestions (#2085)
    • ๐Ÿ‘‰ Make hashing constexpr in C++14 and unify rotl impl (#2093)
    • Migrate c arrays to std::array (#2094)
    • Cb explore adf initialize vars (#2102)
    • 0๏ธโƒฃ "-q" as default nc delay option (#2098)
    • Move cb_sample to be class based (#2087)
    • Cb explore adf atomization (#2069)
    • ๐Ÿ›  Fix OSX builds when not using Anaconda. (#2097)
    • ๐Ÿ‘ท Mac Os X CI tests fixes (#2035)
    • Make is_example_header const (#2095)
    • Enable use of newer standards (#2092)
    • mitigate clang-cl SIMD issue (#2091)
    • Java Binding Improvements (#2081)
    • ๐Ÿ›  fix: softmax can overflow (#2088)
    • ๐Ÿ›  Fix type issues and windows version in cmake file (#2084)
    • Atomize topk reduction (#2050)
    • โšก๏ธ Update badges in Python readme (#2086)
    • ๐Ÿ‘ pdrop support for cb/ccb dsjson (#2078)
    • โž• Add CMake option to force color codes (#2082)
    • Atomize autolink reduction (#2047)
    • โž• Add forwarding header for commonly used objects in reductions headers (#2080)
    • ๐Ÿ›  Fix initilizer (#2073)
    • ๐Ÿ— Force OSX to build .so files for python (#2061)
    • Allow constructor arugments for calloc_or_throw (#2070)
    • Propagate cache reading failures (#2062)
    • Learner now holds type erased reduction data (#2060)
    • โœ‚ Remove unnecessary null checks (#2067)
    • โœ‚ Remove most usages of unsafe sprintf function (#2054)
    • ๐Ÿ›  Fix LGTM Java build issues (#2063)
    • โž• Add unit tests to coverage report (#2053)
    • โœ‚ remove copy from closure, and do by reference (#2058)
    • Limit python install parallelisation to number of cpus (#2056)
    • โšก๏ธ Update noexcept specifier (#2048)
    • ๐Ÿ›  Fix memory leak in CCB prediction (#2065)
    • ๐Ÿšš Constrain doxygen input dirs, remove graphs (#2055)
    • vw_slim into master (#2028)
    • DBG helper and new natvis (#2042)
    • Multiinstance mode for multiline examples (#1934)
    • Properly add CCB index feature with stride/offset (#2041)
    • ๐Ÿ›  Ataymano/memory leaks fixes (#2020)
    • Implement explicit included actions for CCB (#1995)
    • โž• Add VW-JNI SNAPSHOT publishing to nightly build
    • ๐Ÿ›  Fix compile errors on centos (#2005)
    • Install all headers as fix for missing headers in installed library (#1994)
    • โž• Add comment to to tovw to clarify usage (#1999)
    • โž• Add comment to learner.h (#1997)
    • โšก๏ธ Update MSVC Toolchain to v14.1 (#1988)
    • โœ‚ Remove deprecated projects and old scripts (#1992)
    • ๐Ÿ›  fixed command line argument retrieval from parsed model (#1993)
    • ๐Ÿ›  Fix implicit fallthrough warning and unused variable warning in GCC (#1984)
    • Replace nanpattern and infpattern with std:: equivalents (#1983)
    • ๐Ÿณ Migrate Travis to migrated Docker image + cleanup old files (#1982)
    • โž• Add Azure pipeline for Linux CI (#1981)
    • โž• Add constexpr and noexcept to some functions, cleanup unused functions (#1985)
    • vw-hyperopt. Passing additional command when training and validating (#1959)
    • ๐Ÿšš Ensure vw object cannot be moved or copied (#1986)
    • ๐Ÿ›  Fix building GCOV with Clang (#1980)
    • โšก๏ธ Update RunTests to be able to find binaries in the build directory (#1979)
    • Test and unify usage of ec_is_example_header (#1970)
    • Remove thread_local_storage from ccb (#1976)
    • โœ‚ Remove hard requirement for git during Windows build (#1977)
    • ๐Ÿ–จ Action scores print tag (#1971)
    • ๐Ÿ›  Fix some warnings (#1973)
    • โœ‚ Remove two makefiles that were missed in Cmake change (#1969)
    • cd_adf: Added importance weight probability clipping for cb_type mtr, ips, dr (#1952)
    • ๐Ÿ›  Fix file permissions for macos CI scripts (#1966)
    • โž• Add macos pipeline (#1965)
    • โž• Add LICENSE to the python source package (#1963)
    • โž• Add source info to VW Nuget description, and update copyright years. (#1962)
    • ๐Ÿ”– Update new_version script (#1956)
    • โšก๏ธ Update python README to reflect new build proceedures (#1961)
    • Conditional Contextual Bandit (#1816)
    • โšก๏ธ Java Maven pom.xml.in update (#1954)
    • โž• Add git commit to output of --version (#1951)
    • cover and regcb: data.counter++ only in learn examples (not predict) (#1950)
    • ๐Ÿ›  Spark/JNI multipass fixes and AllReduce quiet support (#1949)
    • cb_explore_adf: fixed bug when resetting cb_type + improvements (#1948)
    • ๐Ÿ‘ vw-hyperopt (add support for passing namespaces) (#1941)
    • Tau first should count only learn examples (not predict) (#1944)
    • Python distributions (#1928)
    • ๐Ÿ— Enable suppressing NuGet version tag for official builds (#1946)
    • Fix predict path for cb_explore_adf First (#1939)
    • CS simulator v3.0 (#1932)
    • cs/cli/vw_label.h: Avoid to throw for precision issues (#1933)
    • โœ‚ Remove hard-coded version in Windows CI package gen script. (#1936)
    • ๐Ÿ›  Fix clear labels the correct way (#1930)