source |
      all versions |
      oilshell.org
      
      
Oil 0.9.3
2021-10-05
This is the home page for version 0.9.3 of Oil, a Unix shell.  To use it,
- Download a source tarball.
- Build it and do a "smoke test", as described in INSTALL.
These steps take 30 to 60 seconds on most machines.  After installation, see
Getting Started.
Test results, metrics, and benchmarks are shown below.
Download
  |  | File / SHA256 checksum | Size |  | 
     
      |  | oil-0.9.3.tar.xz | 1,265,164 | 
    
      |  | 62f36072f69f3378e03b79d8d5255c1d136094ec11410db4f16ee82f1660efda | 
     
      |  | oil-0.9.3.tar.gz | 1,778,573 | 
    
      |  | fd96dd339b3b29096e56c930bafd49ccaaae4cf2fd7997f556e7efc78b8845cb | 
     
      |  | oil-native-0.9.3.tar.xz | 248,124 | 
    
      |  | 5f18ab65c578e5d659c2cfb6b2ad3ec2aad51804b5739a5cc49a4e756d709236 | 
 
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:
- Getting Started
- 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-nativetarball.
 
- 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 Mon Oct  4 22:43:39 EDT 2021