source |
all versions |
oilshell.org
Oil 0.8.7
2021-01-23
This is the home page for version 0.8.7 of Oil, a Unix shell. To use it,
- Download a source tarball.
- Build and install it, as described in INSTALL.
These steps take 30 to 60 seconds on most machines. After that, you can
assemble an oshrc
file, which is described in the
manual.
Test results, metrics, and benchmarks are shown below.
Download
|
File / SHA256 checksum |
Size |
|
|
oil-0.8.7.tar.xz |
1,243,080 |
|
29c5eed6efccbef6c22dbe5aec3d3d36f7c93da7a8d1cf19fc2cee93b5d1db73 |
|
oil-0.8.7.tar.gz |
1,739,752 |
|
599a93985dd70adaf8773f021742ddced82deeb5a9414405de10f2298100ad7b |
|
oil-native-0.8.7.tar.xz |
239,988 |
|
0eeb865132efff33a63baecf611cc40f93f3ad56dbd2f9aa9e9215aa326c97a0 |
Note: oil-native
is a preview release, not a working shell.
What's New
Documentation
The Doc Overview links to all docs. Here is the subset of them that
are ready to read:
- OSH:
- The Oil language:
- Language Design:
- Interchange Formats:
More docs:
Tests
Main Test Suites
- Spec Tests
- OSH Survey. Test OSH with existing
shells, and compare their behavior.
- OSH in C++. The progress of Oil's
C++ translation.
- Oil Language. The legacy-free
language.
- Wild Tests. Parse and translate thousands of shell scripts
with OSH.
- Unit Tests. Python unit test results.
Other Suites
Manual Tests
- [ ] Test build and install on OS X
Benchmarks
- Parser. How fast does OSH
parse compared to other shells?
- Runtime. How fast does OSH run shell
scripts?
- Compute. How fast does OSH run small programs
without I/O?
- Build. How long does it take for end users to
build Oil? How big is the resulting binary?
- Virtual Memory Baseline. How much memory do
shells use at startup?
- mycpp. Compares Python and generated C++
on small examples.
Metrics
- Lines of source, counted in different ways:
- osh-cloc. OSH and common
libraries, as measured by the cloc tool.
- src. The whole Oil repo organized by
type of source file.
- oil-cpp. The C++ code in the
oil-native
tarball.
oil-native
.
Source Code
These files may help you understand how Oil is implemented, i.e. with
domain-specific languages and code generation.
- _devbuild/gen/id.h. A list of language
elements, used in the lexer and in multiple parsers and evaluators.
- The regex-based lexer uses two stages of code generation:
- frontend/syntax.asdl. The syntax tree
for OSH and Oil.
- oil_lang/grammar.pgen2. The
expression grammar for Oil. In contrast, the OSH parsers are hand-written.
Also see the oilshell/oil repository.
Old / Experimental
These links describe the CPython / "OVM" build, which should become
the "experimental" version of Oil.
OPy Tests
The OPy compiler is used to compile Oil to bytecode, but isn't itself part of
the release.
OPy / OVM Metrics
- OPy Line Counts.
- Lines of dependencies:
- pydeps. Oil code plus the Python
standard library.
- nativedeps. Oil code plus a
slice of CPython.
- Bytecode Metrics
- OVM / CPython
- overview - An analysis of GCC's
compilation of OVM (a subset of CPython). Bloaty provides the
underlying data.
- cpython-defs/overview - We try to
ship as little of CPython as possible, and this is what's left.
Generated on Sat Jan 23 00:06:31 PST 2021