ChaiScript/releasenotes.md

5.0 KiB

Notes:

Current Version: 5.4.0

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

Changes since 5.2.0

  • Official support for MSVC with C++11. All major platforms and compilers are now support for C++11 release

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
  • fix for some new line cases in the middle of a vector initialization from jespada

Changes since 5.1.0

  • Add support for automatic conversion of arithmetic types when possible and when no ambiguous method dispatch exists.

Changes since 5.0.0

  • Fix sizing of numeric constants to match that of the C++ standard
  • Add support for u,ll,l,f suffixes for numeric constants
  • Siginificant improvement in error reporting

Changes since 4.0.0

  • Dropped boost in favor of C++11
  • Separated out stdlib to make more options for compile time improvements

Changes since 3.1.0

  • svenstaro: Unused variables and CMake consistency fixes
  • Added support for returning pointers from functions (#13)
  • Compile with -pedantic (#9)
  • Fix issues with multiple ChaiScript object types having the same attribute name (#15)
  • Prevent variable redeclaration in same scope (#22)
  • mgee: Boxed_Number improvements (#27)
  • Support switch statements (#34)
  • Fix uint16 comparions (#26)
  • Add ability to add const_var globals in Module objects (#14)
  • Add support for ternary operators ?:
  • Add headers to CMakeLists so they show up in IDEs
  • Add ability to get vector of defined objects and vector of defined functions
  • Fix memory leak in cyclical references
  • Clean up static analysis issues discovered
  • Fix vector construction to be consistent with map construction
  • Increased unit tests to 161
  • Performance enhancements

Changes since 3.0.0

  • Numeric operations performance increased approximately 10x
  • Looping operations performance increased up to 2x
  • Engine start up time decreased
  • Several parsing bugs related to index operators fixed
  • Added full support for all C algebraic types: double, long double, float, int, long, char, uint8_t, uint16_t, uint32_t, uint64_t, int8_t, int16_t, int32_t, int64_t
  • Enhanced support for capturing of exceptions thrown from ChaiScript in C++

Changes since 2.3.3

  • Code simplifications
  • Fully integrate documentation with source code in doxygen style comments
  • Unit tests increased from 114 to 137
  • Automatic conversion between boost::function objects and ChaiScript functions
  • Many bug fixes
  • Minor performance improvements
  • Namespace reorganization to make end user code more accessible
  • clang support
  • VisualStudio 2010 Support
  • Support for C++ base classes and automatic upcasting
  • Remove __ reserved identifiers
  • Better code organization to reduce #ifdefs
  • clanmills: command line options for chai eval
  • clanmills: parser cleanups and code reduction
  • Function introspection and reflection
  • Correct function dispatch order to account for base classes and provide a defined order of dispatch
  • Predictable object lifetime that emulates C++ stack lifetime
  • emarcotte: pkgconfig support
  • standardize on method/member naming and indentation
  • 64bit Visual Studio support
  • Better support for const objects
  • Drastic reduction of runtime exceptions - making debug builds orders of magnitude faster
  • Support for platforms with no loadable module support
  • Add helper macro for registering class