RuntimesΒΆ

Conceptually, runtimes are packages that contain a specific language interpreter/compiler. For example, Enthought may provide a python 2.7.10 runtime, or a pypy-based runtime.

Concretely, runtimes are simple zipfiles containing the files required for the interpreter to work, its standard library, etc... It generally is fairly close to the upstream distribution of the interpreter, e.g. a python runtime on windows will be fairly close to a python installed from the python.org msi package.

The format is as follows:

<runtime_file>/enthought/runtime.json
<runtime_file>/...

where the enthought/runtime.json file contains some metadata for Enthought tools to understand the runtime. Every other file is simply unpacked as is in the installation prefix.

The enthought/runtime.json MUST follow the json schemas as defined in okonomiyaki.runtimes.runtime_schema. Each language has a common set of attributes, plus an optional set of language-specific attributes.

For example, a windows julia runtime following the metadata version “1.0” may look as follows:

{
    "metadata_version": "1.0",

    "language": "julia",
    "implementation": "default",
    "version": "0.3.11+1",
    "language_version": "0.3.11",
    "platform": "win_x86_64",

    "build_revision": "483dbf5279",

    "executable": "${prefix}\\bin\\julia.exe",
    "paths": ["${prefix}\\bin"],
    "post_install": []
}

When installed, jaguar will automatically fillup the ${} variables from the installation prefix.

Previous topic

API

This Page