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.
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.
Version: 3.1.0 Released: 6/18/2011
The development for ChaiScript has officially moved to github.
It's important to share something about the development process we have at ChaiScript.
What does this mean to you, the user? Mainly it means that even though we have not pushed out an official release in nearly a year, git master branch always represents a stable release.
If you want the latest and greatest version, with confidence that it will be stable, simply grab the tar (or zip) ball from github. Also, with github doing the hosting for us, it's very easy for anyone to fork the project and submit pull requests back to us. So if you've been waiting to contribute to ChaiScript, the wait is over, go ahead and fork and flaunt your stuff.
As far as the general state of the project, the changes since the last official release are almost too numerous to count.
boost::function is supported as a first class object during dispatch and casting. This means you can pass a ChaiScript function object to a C++ function expecting a boost::function<> and the code will Just Work. This is pretty cool and results in a lot of neat potential uses. More examples to follow as the docs are updated.Anyone looking to make contributions right now should look at function serialization. We can parse functions and walk them, but we cannot write them back out yet. Other interesting possibilities include JSON or YAML support on some level.
Personally, besides documentation, I will be working on making C++ POD types intrinsic to the system. Currently every type and every operation that exists is a C++ function callback. This makes the overhead much greater than it needs to be for simple operations like 4+5. We made the decision to build the system like it is for flexibility but have decided that ultimately the project needs the performance (both compile time and runtime) of having POD types built in. Initial investigation shows about a 30% compile time improvement and about a 30% runtime improvement for loops once these changes are made.