ChaiScript v6.1.0 Release Notes
Release Date: 2018-05-29 // almost 6 years ago-
🔄 Changes since 6.0.0
- ➕ Add namespacing support #290 @stephenberry
- ➕ Add utf parsing support
- ⚡️ cheatsheet.md updates
- 👍
add_class
utility support for scoped enums #306 @StanEpp - 📜 Parser optimizations #300 @niXman
- 🛠 Various JSON fixes #377 #400 #409 #371 @totalgee @dinghram @arcoRocks
- 🛠 Various cleanups, bugfixes and warning fixes and minor performance improvements
- 👌 Support for C++17 compilers!
- 👌 Support for UTF8 BOM #439 @AlekMosingiewicz @MarioLiebisch
Previous changes from v6.0.0
-
🔄 Changes since 5.8.6
6.0.0 is a massive rework compared to 5.x. It now requires a C++14 enabled compiler
Compiler Requirements
- MSVC 2015 or greater
- g++ 4.9 or greater
- clang 3.6 or greater
💥 Breaking Changes
- 🏗 Instantiating a ChaiScript object now, by default, builds the stdlib in
- This was done to address the most common support issues of loading stdlib dynamically at runtime
- If you want the old behavior, use include/chaiscript/chaiscript_basic.hpp
- 🏗 Headers have been reorganized to fully separate stdlib/parser/engine from each other (some faster builds)
- Bootstrap functions no longer return a reference to the module added to (compile time savings)
- It's now no longer possible modify AST_Nodes (compile time, runtime efficiency)
- Function annotations no longer exist (simplifies code, reduces compile time, compile size)
🆕 New Features Added
- Modular optimization system; this can be accessed via the ChaiScript_Basic interface
- Execution tracing capability; also accessed via ChaiScript_Basic interface
- 🐎 range-based for loops
for( id : container ) { }
(much better performance than other loop types) - If-init expressions (ala C++17)
- 👌 Support for passing r-value references to functions
- 👌 Support for containing unique_ptr
- ➕ Add helpers for exposing enum classes to ChaiScript
- 👍 Allow typed ChaiScript defined functions to perform conversions on call #303
👌 Improvements
- Compile time improvements
- Compile size improvements
- 👀 Significant runtime improvements (see "Modular optimization system")
- 📜 Significant parser improvements, both with parse-time and parser initialization time (Thanks @niXman)
- 🛠 Fix type conversion to bool in conditionals
👌 Improvements Still Need To Be Made
- File location tracking has been rewritten; this currently means error location reporting is not as good as it was
- ✅ Tracing capability needs to be tested and vetted