Releases: ChaiScript/ChaiScript
Releases · ChaiScript/ChaiScript
Release 6.1.0
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
Release 6.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
Release 5.8.6
Changes since 5.8.5
- Optimize away
return
statements in lambdas also - Allow conversions to bool in conditionals
- Don't allow
class
statements inside of scopes - Properly error when a dynamic object non-function member is called
Release 5.8.5
Changes since 5.8.4
- Fix order of operations for prefix operators
- Make sure atomics are initialized properly
- Remove parsing of unused prefix
&
operator
Release 5.8.4
Changes since 5.8.3
- Fix case with some numeric conversions mixed with numerics that do not need conversion
Release 5.8.3
Changes since 5.8.2
- Add support for reference of pointer return types
Release 5.8.2
Changes since 5.8.1
- Allow casting to non-const & std::shared_ptr
Release 5.8.1
Changes since 5.8.0
- Fix parsing of floats to be locale independent #250
- Various warning fixes on various platforms
Release 5.8.0
Changes since 5.7.1
- Make all parser iterator operations range checked
- Parse in-string eval statements once, not once for each execution
- Fix parsing of operators (ie 1<-1 now parses)
- Fix variable scoping for functors
- Exception reduction
- Various object lifetime fixes
- Add JSON support for load / save #207
- Numeric overload resolution fixes #209
- Fix long long #208
- Add octal escapes in strings #211
- Fixed sizing of binary literals #213
- Added support for != with bool values #217
- Various value assignment vector fixes
- Fixed broken hex escape sequences from @ChristianKaeser
- Multiply defined symbols fixes #232 @raptorfactor
- Add add_class helper #233 @vrennert
- Cheatsheet fixes #235 @mlamby
- Fix parsing of strings inside of in-string eval statements
- Allow lower-case global keyword
- Enable thread-local on MSVC (should be significant performance boost)
Test_Release
Implement option explicit for dynamic objects. Closes #218