Oil 0.7.pre6
2019-11-11
This is the home page for version 0.7.pre6 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.7.pre6.tar.xz |
1,076,244 |
|
7ba71ca026f77d9dae2fe1a53da36d965dffd1eed389079c964b928673cf0efa |
|
oil-0.7.pre6.tar.gz |
1,477,931 |
|
72c787672d73f0580253f9321bdc5d0494f713323ba2474d3bb185cedf3a45dd |
What's New
Documentation
Oil has three major sources of docs:
- The Doc Overview links to all other docs, including the Manual and
Oil Language Reference. It's work in progress. Up-to-date docs include:
- Quick Reference, with examples (incomplete).
This doc underlies the
help
builtin, and gives a rough overview of what
features Oil implements.
- Github Wiki for oilshell/oil
- The Oil Deployments
wiki page has other ways of getting Oil. These versions may not be
up-to-date.
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.
- OPy. How much code is in the OPy
toolchain?
- Lines of dependencies:
- pydeps. Oil code plus the Python
standard library.
- nativedeps. Oil code plus A
slice of CPython.
- Bytecode Metrics
- Native Code Metrics
- 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.
Tests
More tests:
OPy Tests
The OPy compiler is used to compile Oil to bytecode, but isn't itself part of
the release.
Tree-shaking:
Manual Tests
- [ ] Test build and install on OS X
Benchmarks
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.
Generated on Mon Nov 11 13:17:23 PST 2019