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)
Changes since 5.7.0
- Build time reduction
- Build size reduction
- Performance increases
- Fixed ~20 crash-bugs found with fuzzy testing #194
- Let unhandled exceptions propogate to user
- Report eval_error when break statement is not in loop
- Fix handling of 0 length scripts closes #193
- Don’t crash on arity mismatch - Specifically affects the case where no overloads exist for a given function
- Fix error printing for
bind
calls
- Handle unexpected continue statement
- Check arity during bind
- Don’t allow arith conversion on variadic function
- Correct
bind
parameter match count
- Add in expected Boxed_Value exception cases
- Check access to AST, don’t allow
;
in func def
- Don’t attempt arithmetic unary & call
- Don’t crash on 0 param call to
bind
- Catch errors during member function dispatch
- Properly handle type of const bool &
- Automatic deduction of lambda type signatures
- Work with non-polymorphic parent/child conversions
- Move to codecov for coverage reporting
- Add
.at
method for Map objects
- Various corrections for support of move-only objects
Changes since 5.6.0
- Significant code cleanups and reduction
- Smaller builds
- Faster compiles
- Less runtime memory usage
- ~2x faster runtimes
- biicode support
- method_missing feature added #164 @arBmind
- Generic objects with dynamic properties support
- Add ability to call functions contained in properties
- Add lambda captures
- Create cheatsheet.md for all-in-one reference of features
- Fix support for libc++
- Eliminate clone of return value stored locally
- Eliminate ‘return’ statements when last line of function
- Reduce number of runtime exceptions occuring
- Reduce copies / moves of return values.
- make use statement return value of last statement in file
- Add ability to access fixed array sizes
- Add support for scientific notation floating point literals #174 @totalgee
Changes since 5.5.1
- Throw exception on integer divide by 0
- Add optional type specification to function declarations
- Many minor fixes for compiler warnings
- Add support for
std::future
and std::async
- Fully support r-value returns, supporting move-only objects and reducing object copies
Changes since 5.5.0
- 30% performance increase
- Fix handling of object stack, resulting in greatly reduced memory usage
- Code cleanups
Changes since 5.4.0
- 2x performance increase
- Significant code cleanups
- Throw exception if user attempts to call function on null object
- Allow user defined type conversions from within chaiscript or c++
- Fix object lifetime for nested function calls made at the global scope
- Fix returning of boolean values from function calls
Changes since 5.3.1
- Decreased compile time and build size
- Make “reflection” module built in (losing some of the time / build size gains)
- Add new “class” syntax for ChaiScript defined methods and attributes see: unittests/class.chai for examples
- Minor performance enhancements
- major to_string performance enhancements
- Provide API for retrieving registered type name #124
- Added strong reference to container to range object #132
Changes since 5.3.0
- Add automatic conversion of arithmetic return types, following the same
rules as conversion of arithmetic types when passing parameters
- Add automatic casting up the inheritence hierarchy when possible.
- Enable travis.ci testing
- Allow users to add globals from within script
- Various static analysis fixes
- Code modernization to C++11
- Unofficial support for Haiku added
- Fix #121 - Inability to compile on cygwin
- Formatting fixes and spelling corrections
- Apply “include what you use” https://code.google.com/p/include-what-you-use/
- Apply clang-modernize
- Various threading fixes
- Performance improvements
Note, with this version the C++11 version of ChaiScript has become the official version, and the boost version of ChaiScript will see very little if any future development.
Changes since 5.2.0
- Official support for MSVC with C++11. All major platforms and compilers are now support for C++11 release
- Enhanced unit tests
- Add
continue
statement, fix various use cases for for
loops
- Fix use of suffixed numbers in vector initialization
- Code cleanups
- Eliminate global data, which makes code more portable and thread safe
- Fix issue #79
- Merge pretty_print fixes from @mgee #82
- Compiler warning fixes for latest compiler releases
- Fix threading problems
- Fix linking error on MacOS Mavericks #88
- Allow non-const globals
- Make sure user cannot name a variable with
::
in it #91
- Fix various string / map / vector
size
and count
calls for compilers which have weird overloads for them. #90 #93 #95
- Make module search path relative to the currently running executable
- Build and work with wstring windows builds
- fix for some new line cases in the middle of a vector initialization from jespada
Note: this is scheduled to be the last release that requires boost, new releases
after this will require a C++11 compiler.
Changes since 4.2.0
- Enhanced unit tests
- Add continue statement, fix various use cases for for loops
- Fix use of suffixed numbers in vector initialization
- Code cleanups
- Eliminate global data, which makes code more portable and thread safe
- Fix issue #79
- Merge pretty_print fixes from @mgee #82
- Compiler warning fixes for latest compiler releases
- Fix threading problems
- Fix linking error on MacOS Mavericks #88
- Allow non-const globals
- Make sure user cannot name a variable with :: in it #91
- Fix various string / map / vector size and count calls for compilers which have weird overloads for them. #90 #93 #95
- Make module search path relative to the currently running executable
- Build and work with wstring windows builds