GNU ccScript is a C class framework for creating a virtual machine execution system for use with and as a scripting/assembler language for state-transition driven realtime systems. The most common example of this is as the core of the scripting engine found in GNU Bayonne.
GNU ccScript uses a class hierarchy and one extends the ScriptInterp base class to create a new dialect localized for a given applications. One then binds script keywords to method calls in the derived class. This aspect of GNU ccScript resembles in C the process of how one might localize tcl.
GNU ccScript is intended for use where step execution is important, and where each step is in response to a callback event or a state machine transition. It offers deterministic execution and low overhead so that many concurrent instances can be running together.
GNU ccScript can execute text files which form the basis of a script language. However, in addition to offering step machine execution, GNU ccScript loads all scripts into an active image at once. This is for performance, as all operations in the script system, to assure deterministic execution, are in memory.
GNU ccScript also offers the ability to load new scripts in-mass. Existing active sessions operate on the currently loaded scripts, and new sessions are offered the new script. When the last active session on an old script set completes, the entire script set is flushed from memory. This enables one to operate scripted servers like GNU Bayonne without downtime to rebuild script images in memory.
GNU ccScript is derived from and requires the use of GNU Common C . ccscript 3 is not a stand-alone class library.
What's New in This Release: [ read full changelog ]
· Direct indexing and mapping of arrays, tuples, and dictionaries using 's and accessors rather than special operators is now possible.
· Numeric and string assignment expressions and symbol manipulations (such as pre-increment, push, pop, etc.) can now be directly used and have simplified operator syntaxes.
· Local method blocks have been added so that common code can be passed down from ccscript templates and overridden as needed in derived script sections.
· More math operators were added for numeric expressions.