Keywords: onyx

Next: Contents Up: Onyx Manual, Version 5.1.2 Previous: Onyx Manual, Version 5.1.2 Contents Index

# Preface

This manual primarily documents the Onyx programming language. However, Onyx is designed to be run either as a stand alone program or as an embeddable interpreter, so the manual also documents different aspects of the implementation that are important when embedding Onyx into another program.

Onyx came into existence when the author started working on a text editor (since mothballed) that was meant to be extensible. One of the goals was to provide robust multi-threading. Unfortunately, when work began on the text editor in 1999, the author was unable to find any embeddable scripting languages that provided adequate support for threads. Thus Onyx was born. The author was familiar and enamored with Adobe's PostScript language, which has basic threading support when used in a Display PostScript environment, so Onyx started off looking very similar. As Onyx matured, it deviated to the point that it is now a truly different language, with different syntax, additional and more powerful data types, better debugging capabilities, POSIX-related functionality, more powerful threading, regular expressions, etc.

As this project grew far beyond what was originally expected, it became clear that in order to justify the effort being put into Onyx's design and implementation, Onyx would have to be usable for more than just a text editor. Therefore, Onyx has been structured such that it can be configured in a myriad of ways, with the hope that others will be able to easily make it fit their needs. This manual documents Onyx in its full glory without mention that features may be disabled, so there are portions that do not apply to Onyx interpreters that have been configured without Onyx's full feature set.

For software distributions, news, and additional project information, see `http://www.canonware.com/onyx/`. The author is interested in hearing how people are using Onyx, so please do not hesitate to email him comments or questions.

Next: Contents Up: Onyx Manual, Version 5.1.2 Previous: Onyx Manual, Version 5.1.2 Contents Index