Treelite Release Notes ====================== ## 0.32 (04/20/2018) Usability improvements * Add `__version__` attribute (#17) * Shape results appropriately for multiclass classification (#16) * Add default LOG handler, to make C API easier to use (#19) * Allow batches smaller than `nthread` Bug fixes * Python 2.7 compatibility fix (#14) * handle categorical splits with empty `left_categories` * Fix `create_shared()` to be compatible with shells `zsh` and `fish` (#18) New feature * (Experimental) Export model as XGBoost model file, as per request in #14. ## 0.31 (03/30/2018) * Implement a custom thread pool to improve prediction performance - Amortize thread launch cost - Pin down threads to physical cores and prevent migration * Accommodate infinite thresholds in LightGBM models ## 0.30 (03/23/2018) **Major re-factoring of the backend code** * New code generator, based on Abstract Syntax Trees (AST) * Build AST first * Iteratively transform AST * Finally convert AST into C/JAVA program * Improved abstraction and modularity (no more spaghetti code!) * It's now much easier to "edit" tree prediction logic: you'd just need to operate on a tree graph. Re-factoring was a worthwhile investment for future research. For instance, we could create a new node type in AST representing an AVX operation. A group of conditional nodes can be converted into the AVX node with equivalent semantics. * Support for Java: see example at https://github.com/hcho3/treelite-java-example **BREAKING CHANGES** * Prediction library generated by previous versions are NOT compatible with the current version. You will have to run `export_lib()` or `compile()` again. ## 0.21 (03/08/2018) New features: * Now categorical features with more than 64 categories are supported. * It is now possible to specify variants of GCC and Clang for `export_lib`; `gcc-5`, `gcc-7`, `arm-linux-gnueabi-gcc`, and so forth. Bug fixes: * Fix segmentation fault when `parallel_comp` is set to a high value ## 0.2 (02/12/2018) A few minor fixes: * Disable Link-Time Optimization (LTO) by default, to decrease compilation time * Use /bin/sh when the environment variable SHELL is not set * Enable relative path in predictor constructor * Increase precision for floating-point values ## 0.1rc1 (11/15/2017) * Initial release