Skip to content
Switch branches/tags

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Code for the Oil Shell Blog

TODO: Parsing Bash is Undecidable

andychu/pratt-parsing-demo (other repo) -- Pratt Parsing Without Prototypal Inheritance, Global Variables, Virtual Dispatch, or Java

TODO: Thirteen Incorrect Ways and Two Awkward Ways to Use Arrays

TODO: Example Code in Shell, Awk, and Make

id-kind-func/ - Four Functions and Enum Labelings

forth-like/ - Shell Has a Forth-like Quality

point-free/ - Pipelines Support Vectorized, Point-Free, and Imperative Style

bernstein-fix/ - Bernstein Chaining of ssh and su

bourguet/operator_precedence_parsing - Code for the Shunting Yard Algorithm, and More

hard-coded-descriptors/ - Avoid Directly Manipulating File Descriptors in Shell

git-changelog/ - How to Quickly and Correctly* Generate a Git Log in HTML


args-pattern/ -- TODO: Shell: The Good Parts

redirects-dup/ -- This was for explaining redirects

metaprogramming/ -- Different styles of metaprogramming solving the same problem

python-getopt/ -- Quadratic behavior I noticed when implementing, never used

py-slots/ -- Slots are not that much faster, but they use much less memory.

empty-arrays/ -- From bash-help thread

dynamic-scope/ -- Never blogged about this

dotd/ -- HN thread about Make

closures/ -- HN thread about use cases for closures



perl/ -- Is Perl an Acceptable Shell?

tools-snapshot/ -- A few people wanted to know whta tools I use to write the blog.

ddmin/ -- Refactoring / rewriting the original ddmin Python code.

fgrep-problem-benchmarks/ -- Grew out of a discussion on the Aho-Corasick algorithm for matching a set of fixed strings.