oilshell.org

Oil Blog

Latest Posts

2020-03-25 Oil 0.8.pre3 - A Line Editor and a Continuous Build
2020-03-08 Metrics for Oil 0.8.pre2
2020-03-05 March Recap / Link Dump
2020-02-27 Oil Doesn't Confuse Flags and Files (Code and Data)
2020-02-20 February Recap / Brain Dump
2020-02-19 Four More Posts in "Shell: The Good Parts"
2020-01-22 Ambitions for a Unix Shell
2020-01-18 Oil's Parser Doesn't Worry About Aliases and Prompts

Where Should I Start Reading?

  Why Create a New Unix Shell?
  Frequently Asked Questions (2019)
  Popular Posts With Many Comments
  How to Parse Shell Like a Programming Language - An overview of the parser, which is fundamental to the Oil project.
Pratt Parsing Index and Updates - Popular posts about expression parsing algorithms.
   
2016-11-20 Blog Retrospective #1
2017-04-21 Blog Retrospective #2
2017-11-30 Blog Retrospective #3

Read Posts on a Particular Topic

ASDL (11)    awk (3)    bernstein-chaining (2)    blog-meta (13)    blog-topics (19)    boil (2)    book-reviews (1)    coprocess (1)    correction (1)    data-structures (2)    eggex (1)    escaping-quoting (5)    event (2)    FAQ (3)    interactive-shell (7)    lexing (5)    linux-distro (3)    make (5)    metaprogramming (3)    metrics (7)    misc (4)    mycpp (1)    oheap (4)    oil-dev (11)    oil-language (15)    oil-release (23)    opy (7)    osh-to-oil (2)    OVM (7)    parsing (11)    parsing-is-difficult (1)    parsing-shell (21)    performance (4)    praise (3)    project-roadmap (11)    project-updates (30)    python (10)    r-language (2)    real-problems (4)    recurse-center (6)    sample-code (14)    security (1)    shell-runtime (5)    shell-style-guideline (2)    shell-the-bad-parts (12)    shell-the-good-parts (4)    testing (5)    translated-post (1)    tweet (3)    type-checking (2)    unix-tools (2)    usage-tips (6)    utf8 (3)    why-a-new-shell (9)    zulip-links (4)   

All Posts in Chronological Order

2016-10-10 What Oil Looks Like, and a Plan for This Blog
2016-10-11 Oil Can Parse Real Shell Programs
2016-10-12 [ Is a Builtin, But [[ Is Part of the Language
2016-10-13 OSH Parses Shell Scripts Up Front in a Single Pass. Other Shells Don't.
2016-10-14 Oil Now Parses My /etc/init.d Directory
   
2016-10-15 Blog Roadmap, and Project Roadmap
2016-10-16 debootstrap Parsed
2016-10-17 How to Parse Here Documents
2016-10-18 Shells Use Temp Files to Implement Here Documents
2016-10-19 How OSH Uses Lexer Modes
   
2016-10-20 Parsing Bash is Undecidable
2016-10-22 New Terminology: Static Parsing vs. Dynamic Parsing
2016-10-23 Roadmap #2
2016-10-24 Four More Projects Parsed
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-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-06 Thirteen Incorrect Ways and Two Awkward Ways to Use Arrays
   
2016-11-07 Contrived Example Found in the Wild
2016-11-09 Parsing 183,000 Lines of Git's Shell Source Code
2016-11-13 Shell, Awk, and Make Should Be Combined
2016-11-14 Example Code in Shell, Awk, and Make
2016-11-17 OSH Can Be Parsed With Two Tokens of Lookahead
   
2016-11-18 Problems With $((
2016-11-19 Oil is on Github
2016-11-20 Blog Retrospective #1
2016-11-21 Roadmap #3: Two Top Priorities
2016-11-25 Roadmap #3 Continued
   
2016-11-29 Status Update: the Backbone of the Interpreter
2016-11-30 A Problem with Type Checking

2016-12-05 Type Checking vs. Metaprogramming; ML vs. Lisp
2016-12-11 What is Zephyr ASDL?
2016-12-16 Analogies for ASDL
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-29 Using Reddit for Blog Comments
2016-12-30 Questions about Superoptimization

2017-01-04 Success with ASDL
2017-01-06 ASDL Implementation and Use Cases
2017-01-09 What is oheap?
2017-01-13 Shell Has a Forth-like Quality
2017-01-15 Pipelines Support Vectorized, Point-Free, and Imperative Style
   
2017-01-19 On the Wiki: Project Goals and Related Projects
2017-01-21 Pretty Printing ASTs with ASDL, and Metaprogramming
2017-01-26 The Thinner Waist of the Interpreter
2017-01-31 Bernstein Chaining of ssh and su

2017-02-05 Translating Shell to Oil
2017-02-06 Translating Shell to Oil, Part Two
2017-02-11 From AST to Lossless Syntax Tree
2017-02-26 Status Update and Blog Backlog
2017-02-27 Review of Roadmap #3

2017-03-01 Project Roadmap #4
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-03-30 Precedence Climbing is Widely Used
   
2017-03-31 Pratt Parsing Index and Updates

2017-04-08 The Riskiest Part of the Project
2017-04-09 An Unexpected Solution: Cobbling Together a Python Interpreter
2017-04-20 Switching to "Twitter Mode"
2017-04-21 Blog Retrospective #2
2017-04-22 Code for the Shunting Yard Algorithm, and More
   
2017-04-23 The OPy Front End is Working
2017-04-25 OVM will be a Slice of the CPython VM

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

2017-06-02 Project Metrics
2017-06-19 Working Toward an OSH Release
2017-06-22 How I Use Tests
2017-06-24 How I Plan to Use Tests: Transforming OSH

2017-07-02 OSH Runs Real Shell Programs
2017-07-23 Please Try the First OSH Release
2017-07-28 The Long Slog Through the Shell (abridged)
2017-07-29 Review of Roadmap #4 (abridged)
2017-07-31 Post-Release Blog Topics

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

2017-09-09 Please Try the OSH 0.1 Release
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-06 Roadmap #5: Why Oil, and Why OSH?
2017-10-24 Status Update: Parser Correctness and Performance
2017-10-25 Comments About Shell, Awk, and Make

2017-11-10 OSH 0.2 - Parsing One Million Lines of Shell
2017-11-28 Correction: How to Parse Here Documents
2017-11-30 Blog Retrospective #3

2017-12-15 The Oil Lexer: Introduction and Recap
2017-12-17 When Are Lexer Modes Useful?
2017-12-22 OSH 0.3 - Optimization, Benchmarks, and Bug Fixes

2018-01-15 Success with Aboriginal, Alpine, and Debian Linux
2018-01-28 Why Create a New Unix Shell?
2018-01-31 Popular Posts with Many Comments

2018-02-03 OSH 0.4 - A Shell Language That's Nearly Feature Complete
2018-02-14 CommonMark is a Useful, High-Quality Project

2018-03-04 Building Oil with the OPy Bytecode Compiler
2018-03-25 I'm Attending Recurse Center this Summer
2018-03-27 Addendum: Two Recurse Center Projects That Explain CPython

2018-04-26 oil-dev is moving to Zulip
2018-04-30 Release of OSH 0.5.alpha3

2018-07-21 Summer Status Update
2018-07-22 Summer Blog Topics
2018-07-23 OSH 0.5 - A Release with Many Contributors

2018-08-15 Summer Vacation is Over!
2018-08-19 Release of OSH 0.6.pre2

2018-10-10 Running Bash Completion Scripts with OSH
2018-10-11 Release of OSH 0.6.pre5

2018-11-15 Dev Log #7: Hollowing Out the Python Interpreter
2018-11-30 What Is a Data Frame? (In Python, R, and SQL)

2018-12-05 Dev Log #8: Shell Protocol Designs
2018-12-16 Dev Log #9: Progress on Oil Subprojects

2019-01-14 I'm Speaking About the Oil Shell this Thursday in San Jose, California
2019-01-18 BayLISA Presentation Materials

2019-02-05 Success With the Interactive Shell
2019-02-07 How to Parse Shell Like a Programming Language
2019-02-18 OSH 0.6.pre15 Does Not Crave Chaos and Destruction

2019-06-13 What's Happened Since February?
2019-06-17 Frequently Asked Questions (2019)

2019-07-19 Release of OSH 0.7.pre1

2019-08-16 Oil's Stricter Semantics Solve Real Problems
2019-08-22 Oil Language Design Notes #1

2019-10-04 You Can Now Try the Oil Language

2019-12-09 Oil 0.7.pre9 and a Fast Shell Parser
2019-12-22 Eggex Example: Recognizing Python Integer Literals

2020-01-11 Making Plans for Oil in 2020
2020-01-12 Blog Roadmap for January 2020
2020-01-14 The Simplest Explanation of Oil
2020-01-16 Oil's Parser is 160x to 200x Faster Than It Was 2 Years Ago
2020-01-17 Oil Uses Its Parser For History And Completion
   
2020-01-18 Oil's Parser Doesn't Worry About Aliases and Prompts
2020-01-22 Ambitions for a Unix Shell

2020-02-19 Four More Posts in "Shell: The Good Parts"
2020-02-20 February Recap / Brain Dump
2020-02-27 Oil Doesn't Confuse Flags and Files (Code and Data)

2020-03-05 March Recap / Link Dump
2020-03-08 Metrics for Oil 0.8.pre2
2020-03-25 Oil 0.8.pre3 - A Line Editor and a Continuous Build