Redtail is a scripting engine library and script language. The Redtail library provides the ability to execute Scheme-like Redtail scripts from within an application, increasing flexibility.
The goal of Redtail is to provide a library (or set of libraries) that will allow applications to embed scripting functionality. The ability to execute scripted logic from within an application (and vice versa) adds powerful flexibility. Toward this end, Redtail will focus on several design elements:
- Portability: Redtail will be multi-platform. Windows and Linux will be the first targets, however others will be added as the project moves forward.
- Speed: Redtail will be designed with execution speed in mind. While bytecode will always be slower than natively compiled code, significant delays when executing scripts are unacceptable.
- Stability: Redtail will also employ high fault tolerance. The nature of embedded scripting makes this a necessity.
One of the key features of Redtail that distinguishes it from other embedded scripting engines (such as Lua) is the use of a functional language approach. The Redtail language will be based on Scheme (specifically, standard R5RS).
Initial releases of Redtail will implement a basic feature set from Scheme with alterations and additions. Subsequent releases will add language features with the eventual goal of implementing a near-Scheme scripting language.
The Redtail compiler component will follow standard compiler design. It will produce Redtail VM bytecode from Redtail scripts. By keeping the compiler modular, it will be possible in future releases to add support for additional script languages with the use of new compiler modules.
The Redtail virtual machine will operate on bytecode produced by the compiler. Special considerations will be given to portability, speed, and stability as mentioned above.
As with the Redtail language, the virtual machine will gain additional features (and optimizations) with each subsequent release. The eventual goal will be to provide a complete, robust virtual machine module independent of script language.
The Redtail application interface will be designed primarily for developer ease of use while also ensuring there is no sacrifice in capability. Redtail will be implemented using C++, however, an interface will also be provided for C.