8.8.0
- 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)
- 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)
- "-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)