Home

Oil Blog Posts by Tag

See the blog index for a chronological list of posts.

Link to directly to a tag #FOO with tags.html#FOO.

#ASDL

2016-12-05 Type Checking vs. Metaprogramming; ML vs. Lisp
2016-12-11 What is Zephyr ASDL?
2016-12-16 Analogies for ASDL
2017-01-04 Success with ASDL
2017-01-06 ASDL Implementation and Use Cases
2017-01-09 What is oheap?
2017-01-21 Pretty Printing ASTs with ASDL, and Metaprogramming
2017-01-26 The Thinner Waist of the Interpreter

#awk

2016-11-13 Shell, Awk, and Make Should Be Combined
2016-11-14 Example Code in Shell, Awk, and Make
2017-10-25 Comments About Shell, Awk, and Make

#bernstein-chaining

2017-01-13 Shell Has a Forth-like Quality
2017-01-31 Bernstein Chaining of ssh and su

#blog-meta

2016-10-10 What Oil Looks Like, and a Plan for This Blog
2016-10-15 Blog Roadmap, and Project Roadmap
2016-11-20 Blog Retrospective #1
2016-12-29 Using Reddit for Blog Comments
2017-02-26 Status Update and Blog Backlog
2017-04-20 Switching to "Twitter Mode"
2017-04-21 Blog Retrospective #2
2017-07-31 Post-Release Blog Topics
2017-09-19 How to Quickly and Correctly* Generate a Git Log in HTML
2017-10-24 Status Update: Parser Correctness and Performance

#blog-topics

2017-10-24 Status Update: Parser Correctness and Performance
2017-10-25 Comments About Shell, Awk, and Make
2017-10-26 Comments About Programming Languages

#boil

2017-05-05 Rewriting Python's Build System From Scratch
2017-05-31 Post-Vacation Update and Build System Observations

#data-structures

2016-11-29 Status Update: the Backbone of the Interpreter
2017-02-11 From AST to Lossless Syntax Tree

#lexing

2016-10-19 Lexical State and How We Use It

#make

2016-11-13 Shell, Awk, and Make Should Be Combined
2016-11-14 Example Code in Shell, Awk, and Make
2017-05-05 Rewriting Python's Build System From Scratch
2017-05-31 Post-Vacation Update and Build System Observations
2017-10-25 Comments About Shell, Awk, and Make

#metaprogramming

2016-11-30 A Problem with Type Checking
2016-12-05 Type Checking vs. Metaprogramming; ML vs. Lisp
2017-01-21 Pretty Printing ASTs with ASDL, and Metaprogramming
2017-10-26 Comments About Programming Languages

#metrics

2016-10-10 What Oil Looks Like, and a Plan for This Blog
2017-01-26 The Thinner Waist of the Interpreter
2017-03-23 Measuring Progress with Tests
2017-06-02 Project Metrics
2017-09-09 Please Try the OSH 0.1 Release

#misc

2016-12-23 A Math Problem: Function-Directed Enum Labeling
2016-12-26 Four Functions and Enum Labelings
2016-12-27 Bespoke Superoptimization
2016-12-30 Questions about Superoptimization

#oheap

2017-01-09 What is oheap?

#oil-dev

2016-11-19 Oil is on Github
2017-01-26 The Thinner Waist of the Interpreter
2017-03-04 If you have Debian/Ubuntu, and Five Minutes
2017-03-09 Oil-dev is Alive!
2017-03-23 Measuring Progress with Tests
2017-06-22 How I Use Tests
2017-06-24 How I Plan to Use Tests: Transforming OSH

#oil-language

2016-11-06 Thirteen Incorrect Ways and Two Awkward Ways to Use Arrays
2016-11-07 Contrived Example Found in the Wild
2016-11-18 Problems With $((
2017-02-05 Translating Shell to Oil
2017-02-06 Translating Shell to Oil, Part Two
2017-09-29 Git Log in HTML: A Harder Problem and A Safe Solution

#oil-release

2017-07-23 Please Try the First OSH Release
2017-09-09 Please Try the OSH 0.1 Release
2017-11-10 OSH 0.2 - Parsing One Million Lines of Shell

#opy

2017-04-09 An Unexpected Solution: Cobbling Together a Python Interpreter
2017-04-23 The OPy Front End is Working
2017-06-24 How I Plan to Use Tests: Transforming OSH

#osh-to-oil

2017-02-05 Translating Shell to Oil
2017-02-06 Translating Shell to Oil, Part Two

#OVM

2017-04-09 An Unexpected Solution: Cobbling Together a Python Interpreter
2017-04-25 OVM will be a Slice of the CPython VM
2017-05-05 Rewriting Python's Build System From Scratch
2017-06-24 How I Plan to Use Tests: Transforming OSH

#parsing

2016-10-20 Parsing Bash is Undecidable
2016-10-22 New Terminology: Static Parsing vs. Dynamic Parsing
2016-11-01 Pratt Parsing and Precedence Climbing Are the Same Algorithm
2016-11-02 Review of Pratt/TDOP Parsing Tutorials
2016-11-03 Pratt Parsing Without Prototypal Inheritance, Global Variables, Virtual Dispatch, or Java
2016-11-05 Pratt Parsers Can Be Statically Typed
2016-11-17 OSH Can Be Parsed With Two Tokens of Lookahead
2017-02-11 From AST to Lossless Syntax Tree
2017-03-30 Precedence Climbing is Widely Used
2017-03-31 Pratt Parsing Index and Updates
2017-04-22 Code for the Shunting Yard Algorithm, and More
2017-10-26 Comments About Programming Languages

#parsing-shell

2016-10-12 [ Is a Builtin, But [[ Is Part of the Language
2016-10-13 Oil Parses Shell Scripts Up Front in a Single Pass. Other Shells Don't.
2016-10-17 How to Parse Here Documents
2016-10-19 Lexical State and How We Use It
2016-10-20 Parsing Bash is Undecidable
2016-10-22 New Terminology: Static Parsing vs. Dynamic Parsing
2016-10-26 Grammar for Variable Substitutions
2016-10-28 The Five Meanings of #. And What Does ${####} Mean?
2016-10-29 Four Slashes and Three Meanings
2016-11-17 OSH Can Be Parsed With Two Tokens of Lookahead
2016-11-18 Problems With $((
2017-08-31 Problems With the test Builtin: What Does -a Mean?
2017-11-10 OSH 0.2 - Parsing One Million Lines of Shell

#performance

2016-12-27 Bespoke Superoptimization
2016-12-30 Questions about Superoptimization

#project-roadmap

2016-10-15 Blog Roadmap, and Project Roadmap
2016-10-23 Roadmap #2
2016-11-21 Roadmap #3: Two Top Priorities
2016-11-25 Roadmap #3 Continued
2017-02-27 Review of Roadmap #3
2017-03-01 Project Roadmap #4
2017-07-29 Review of Roadmap #4 (abridged)
2017-10-06 Roadmap #5: Why Oil, and Why OSH?

#project-updates

2016-10-10 What Oil Looks Like, and a Plan for This Blog
2016-10-11 Oil Can Parse Real Shell Programs
2016-10-14 Oil Now Parses My /etc/init.d Directory
2016-10-16 debootstrap Parsed
2016-10-24 Four More Projects Parsed
2016-11-09 Parsing 183,000 Lines of Git's Shell Source Code
2016-11-19 Oil is on Github
2016-11-29 Status Update: the Backbone of the Interpreter
2017-01-19 On the Wiki: Project Goals and Related Projects
2017-02-26 Status Update and Blog Backlog
2017-04-08 The Riskiest Part of the Project
2017-05-31 Post-Vacation Update and Build System Observations
2017-06-02 Project Metrics
2017-06-19 Working Toward an OSH Release
2017-07-02 OSH Runs Real Shell Programs
2017-07-28 The Long Slog Through the Shell (abridged)

#python

2017-04-08 The Riskiest Part of the Project
2017-04-09 An Unexpected Solution: Cobbling Together a Python Interpreter
2017-04-23 The OPy Front End is Working
2017-04-25 OVM will be a Slice of the CPython VM

#sample-code

2016-10-20 Parsing Bash is Undecidable
2016-11-03 Pratt Parsing Without Prototypal Inheritance, Global Variables, Virtual Dispatch, or Java
2016-11-06 Thirteen Incorrect Ways and Two Awkward Ways to Use Arrays
2016-11-14 Example Code in Shell, Awk, and Make
2016-12-26 Four Functions and Enum Labelings
2017-01-13 Shell Has a Forth-like Quality
2017-01-15 Pipelines Support Vectorized, Point-Free, and Imperative Style
2017-01-31 Bernstein Chaining of ssh and su
2017-04-22 Code for the Shunting Yard Algorithm, and More
2017-08-12 Avoid Directly Manipulating File Descriptors in Shell
2017-09-19 How to Quickly and Correctly* Generate a Git Log in HTML
2017-09-29 Git Log in HTML: A Harder Problem and A Safe Solution

#shell-quoting

2017-01-31 Bernstein Chaining of ssh and su
2017-09-19 How to Quickly and Correctly* Generate a Git Log in HTML
2017-09-29 Git Log in HTML: A Harder Problem and A Safe Solution

#shell-runtime

2016-10-18 Shells Use Temp Files to Implement Here Documents
2017-02-26 Status Update and Blog Backlog
2017-07-02 OSH Runs Real Shell Programs
2017-07-28 The Long Slog Through the Shell (abridged)

#shell-style-guideline

2017-08-12 Avoid Directly Manipulating File Descriptors in Shell
2017-08-31 Problems With the test Builtin: What Does -a Mean?

#shell-the-bad-parts

2016-10-20 Parsing Bash is Undecidable
2016-10-28 The Five Meanings of #. And What Does ${####} Mean?
2016-10-29 Four Slashes and Three Meanings
2016-11-06 Thirteen Incorrect Ways and Two Awkward Ways to Use Arrays
2016-11-07 Contrived Example Found in the Wild
2016-11-18 Problems With $((
2017-08-12 Avoid Directly Manipulating File Descriptors in Shell
2017-08-31 Problems With the test Builtin: What Does -a Mean?

#shell-the-good-parts

2017-01-13 Shell Has a Forth-like Quality
2017-01-15 Pipelines Support Vectorized, Point-Free, and Imperative Style

#status-update

2017-10-24 Status Update: Parser Correctness and Performance

#testing

2017-03-04 If you have Debian/Ubuntu, and Five Minutes
2017-03-23 Measuring Progress with Tests
2017-06-22 How I Use Tests
2017-06-24 How I Plan to Use Tests: Transforming OSH
2017-11-10 OSH 0.2 - Parsing One Million Lines of Shell

#type-checking

2016-11-30 A Problem with Type Checking
2016-12-05 Type Checking vs. Metaprogramming; ML vs. Lisp

#unix-tools

2017-01-31 Bernstein Chaining of ssh and su
2017-09-29 Git Log in HTML: A Harder Problem and A Safe Solution

#usage-tips

2017-01-31 Bernstein Chaining of ssh and su
2017-09-19 How to Quickly and Correctly* Generate a Git Log in HTML
2017-09-29 Git Log in HTML: A Harder Problem and A Safe Solution
2017-10-25 Comments About Shell, Awk, and Make

Back to blog index.