The PyonScript programming language.
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.



The PyonScript programming language is a Lisp-like language
with a minimal syntax and a stack. It is an extension of the
PostScript programming language and is implemented in PostScript.

The PyonScript interpreter requires GPL Ghostscript to run.
It has been tested on GPL Ghostscript 8.70 and 8.71 but may not
work on earlier versions.

GPL Ghostscript may be downloaded at


On Unix-like systems, you may use the provided build script.
To build, run the script:

   $ sh

This assembles a "" file containing the source code for
the PyonScript interpreter as well as a shell script named

To run the PyonScript interpreter on one or more PyonScript
source files in sequence, specify the filenames of the programs
as arguments:

   $ pyon file1.pyon [file2.pyon ...]

To run PyonScript in interactive mode, simply run "pyon" without

   $ pyon


On Unix-like systems, you may install PyonScript by running the script:

   $ sudo sh

This installs "pyon" and "" in the /usr/bin/ directory.

==Other Systems==

It is possible to run PyonScript directly through Ghostscript
without building and installing. This option may be best for
non-Unix-like systems.

To do so, concatenate all .ps files in the src/ directory into
a single "" file, with "" being the last.
Then run Ghostscript on the command line with the following
arguments for interactive mode:

   $ gs -q -dNODISPLAY --

If additional filenames are given on the command line, they
will be sequentially interpreted as PyonScript source files.

For Windows systems, there is a provided "pyon.bat" file.
This runs PyonScript directly from the source files.
It assumes that the Ghostscript executable is located at

   C:\Program Files\gs\gs8.71\bin\gswin32.exe

If this is not the case, please replace this with the correct
path. The filenames of PyonScript source files may be provided
as additional arguments to "pyon.bat"; they will be executed
in sequence. When called with no arguments, this loads the
interactive shell.