ChaiScript 6.0.0

ChaiScript is an embedded scripting language for C++ designed from the ground up to be easy to use by the C++ developer.

Tags c++ interpreter software-development
License BSDL-2
State mature

Recent Releases

6.0.023 Feb 2017 06:45 minor feature: MSVC 2015 or greater. g++ 4.9 or greater. clang 3.6 or greater. Instantiating a ChaiScript object now, by default, builds the stdlib in This was done to address the most common support of loading stdlib dynamically at runtime. If you want the old behavior, use include/chaiscript/chaiscript_basic.hpp . This was done to address the most common support 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). 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 . Compile time improvements. Compile size improvements. Significant runtime improvements (see "Modular optimization system"). Significant parser improvements, both with parse-time and parser initialization time. type conversion to bool in conditionals. 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.
5.8.629 Oct 2016 12:45 minor feature: order of operations for preoperators. Make sure atomics are initialized properly. Remove parsing of unused pre operator.
5.8.510 Oct 2016 02:06 minor feature: Fix order of operations for prefix operators. Other fixes.
5.8.017 Feb 2016 00:50 major feature: Many bug fixes. Performance improvements. Built in JSON support.
5.7.117 Jul 2015 21:38 minor feature: Memory, compile time, performance improvements. Enhanced support for move only C++ types. Many crash fixes found with fuzzy testing.
5.7.006 May 2015 20:35 major feature: Memory, compile time, performance improvements. Support for scientific notation. Support for dynamic properties on dynamic objects. Support for lambda argument capturing. Support for method_missing. Avoid copies of return values when assigning to local variables.
5.6.018 Jan 2015 03:25 minor feature: Throw exception on integer divide by 0 Add optional type specification to function declarations def func(int i, j, double k) // i must be an int. // j can be anything // k must be a double // normal conversion rules still apply Many minor fixes for compiler warnings Add support for std::future and std::async var f := async(someFunction); var f2 := async(someFunction2); // someFunction and someFunction2 are running in parallel now f.get(); f2.get(); Fully support r-value returns, supporting move-only objects and reducing object copies
5.5.121 Dec 2014 20:51 major feature: Changes since 5.5.0: 30 percent performance increase; Fix handling of object stack, resulting in greatly reduced memory usage; Code cleanups
5.5.010 Nov 2014 20:01 major feature: ### 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 * Fix object lifetime for nested function calls made at the global scope * Fix returning of boolean values from function calls
v5.5.010 Nov 2014 20:01 major feature: ### 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 * Fix object lifetime for nested function calls made at the global scope * Fix returning of boolean values from function calls
5.4.001 Sep 2014 03:12 major feature: 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
v5.4.001 Sep 2014 03:12 major feature: 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