About ChaiScript

ChaiScript is the first and only scripting language designed from the ground up with C++ compatibility and modern design in mind. It is an ECMAScript-inspired, embedded functional-like language.

ChaiScript is licensed under the BSD license.

Download

Due to an increased release schedule, and the nature of ChaiScript being a header-only library, binary releases will be made less often. Previous releases can be found on github.

Version: 4.2.0 Released: 12/1/2012
(Requires Boost)
Source (tar.bz2)
Source (zip)

Version: 5.2.0 Released: 12/1/2012
(Requires C++11 Compiler)
Source (tar.bz2)
Source (zip)

C++0x Support

MSVC and GCC both now have pretty good support C++0x. It would be nice if ChaiScript would allow the option of using std::shared_ptr, std::function, and std::bind instead of the boost equivalents.
Unfortenely it can't be done with tyepdef's alone, and will need macro hacks or struct wrapped typedefs, still it would be very handy for those of us already using 0x.

It might be possible to move

It might be possible to move to using boost::tr1::function, bind and shared_ptr. I've never used the functions in that namespace before, but if I understand correctly they use the system provided versions if they exist.

That might be a reasonable option, but moving fully to C++0x and dropping boost is not yet possible. The main feature that we will need is variadic templates. GCC has support for them but Visual Studio still does not.

When the two major compilers do support all of the features we need, we will be dropping boost as a requirement. This will mean also dropping support for all older compilers, so it will have to be done carefully.

So, now that I've said all of that, is your main concern that you want to be able to use tr1 functions with ChaiScript, or is your main concern dropping the requirement for boost?

-Jason

boost::tr1

Using boost::tr1 should work. I had forgotten that boost::tr1 can forward to your native headers (if set up).
My main concern is not to remove a boost dependency, but to remove the forced universal usage of boost::shared_ptr in an application that wants to use ChaiScript. The problem is shared_ptr's are infectious, and can't really be mixed at all, a shared_ptr demands unique ownership. Mixing and matching would be seriously asking for trouble. With ChaiScript currently you must either use boost::shared_ptr everywhere in your application, or avoiding passing shared_ptrs at all. Not ideal.

Ian

Support ChaiScript by sharing it with your friends: