-
-
Notifications
You must be signed in to change notification settings - Fork 165
Home
Welcome to the oil wiki!
- Contributing / Spec Tests
- Git Tips -- Patterns for using Git on this project.
- Testing the Interactive Shell -- a bunch of manual test cases
-
Debugging Completion Scripts -- the useful
--debug-file
flag! - Using Zephyr ASDL
- Implementing the Oil Expression Language
Other:
Implementation Details
External Resources -- External Resources on Unix shells, programming language design, and implementation
- Coprocess Protocol Proposal
- Shellac Protocol Proposal -- for shell-independent command-line completion.
- TSV2 Proposal
- Interactive Shell -- Ideas about the interactive shell and possibly graphical shell.
- Shell Security Problems
- Shell WTFs
- Unix Tools -- notes on the things that a shell interacts with. The shell "standard library".
- Little Languages
OSH Parser / OSH Optimization Log
Parsing Case Studies -- What algorithms and tools do production-quality languages use for parsing?
Bootstrapping Case Studies -- How are languages bootstrapped?
Language Subsets -- an abstract but practical way of specifying a language
Architecture of Various Interpreters
- Feature Detection Is Better than Version Detection
- Language Composition Bestiary
- Exhaustive Test Suite
-
Interesting facts about other language implementations:
- Clang AST, TypeScript external visitors with "switch", TableGen language in LLVM, sh/awk/C code gen in most shells.
-
Breaking abstractions -- the
git log | python
pipeline is like the Go-style of unicode handling with utf-8. You don't always have to parse, operate, serialize. Sometimes you can just massage the input. -
Remote evaluation.
ssh user@host find -type f -a -executable
sends an expression over the wire, just like SQL does. Orsh
,awk
, etc.