next up previous contents index
Next: Contents Up: Onyx Manual, Version 4.3.0 Previous: Onyx Manual, Version 4.3.0   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 in to existence when the author started working on a text editor named slate (still in development) that was meant to be extensible, much in the same way as GNU emacs, JED, and Jade. One of the goals was to provide robust multi-threading in slate in order to make it simple to avoid the long pauses that afflict, for example, users of the gnus news/mail reader, which is part of emacs. Unfortunately, when work began on slate 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$_{TM}$ language, which has basic threading support when used in a Display PostScript$_{TM}$ 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 slate, or else slate would have to become very popular, which seems unlikely, given the plethora of text editors. 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/.


next up previous contents index
Next: Contents Up: Onyx Manual, Version 4.3.0 Previous: Onyx Manual, Version 4.3.0   Contents   Index
Jason Evans 2003-01-31