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 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 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/.