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 |
|
2020-04-02 |
Three Comics For Understanding Unix Shell |
2020-04-19 |
Oil 0.8.pre4 - The Biggest Shell Programs in the World |
|
2020-05-25 |
Oil 0.8.pre5 - Progress in C++ |
|
2020-06-18 |
Oil 0.8.pre6 - Pure Bash and C++ |
|
2020-07-19 |
Summer 2020 Blog Roadmap |
2020-07-21 |
Comments on Eggex and Regular Languages |
2020-07-22 |
Regular Languages, Part 2: Ideas and Questions |
|
2020-08-12 |
A Plan for Oil 0.8 and 0.9 |
2020-08-17 |
Technical Issues And Risks |
|
2020-10-22 |
Four Features That Justify a New Unix Shell |
2020-10-31 |
Big Changes to the Oil Language |
|
2020-11-07 |
Metrics for Oil 0.8.4 |
2020-11-08 |
More Changes to Oil's Syntax |
2020-11-09 |
Proposed Changes to Oil's Syntax |
2020-11-10 |
Changes to Shell Runtime Semantics |
2020-11-23 |
Fixes and Updates to Oil Benchmarks |
|
2020-12-23 |
Three Great Videos About Regex Derivatives |
|
2021-01-05 |
Blog Roadmap for January 2021 |
2021-01-06 |
Comments About Parsing: Theory vs. Practice |
2021-01-24 |
Shell Scripts Are Executable Documentation |
2021-01-25 |
Shell Scripts, Audio, Images, and 3D Graphics |
2021-01-26 |
Unix Shell: Philosophy, Design, and FAQs |
|
|
2021-01-27 |
Why Create a New Unix Shell? (2021) |
|
2021-02-11 |
Updates to the Oil FAQ |
|
2021-03-19 |
Release of Oil 0.8.8 |
|
2021-04-09 |
Oil Doesn't Require Quoting Everywhere |
2021-04-10 |
find and test: How To Read And Write Them |
2021-04-11 |
Comments About Build Systems and CI Services |
2021-04-13 |
Release of Oil 0.8.9 |
|
2021-06-05 |
Notes on the HotOS Unix Shell Panel |
2021-06-08 |
Recent Progress on the Oil Language |
|
2021-07-07 |
Release of Oil 0.8.12 |
2021-07-08 |
Summer Blog Backlog: Understanding and Using Shell |
2021-07-09 |
Summer Blog Backlog: Distributed Systems |
2021-07-19 |
Blog Review: Distributed Systems |
2021-07-22 |
Classic Blog Posts by Joel Spolsky |
|
2021-08-06 |
Unix Shell: History and Trivia |
2021-08-21 |
An Opinionated Guide to xargs |
|
2021-09-19 |
Oil Has Multi-line Commands and String Literals |
|
2021-11-20 |
Oil 0.9.4 - User Feedback |
2021-11-30 |
Winter Blog Backlog: Recent Progress |
|
2021-12-01 |
Appendix: The Journey of Extended Globs |
2021-12-02 |
Backlog: Explaining the Oil Project |
2021-12-07 |
Backlog: Rough Progress Assessments |
2021-12-20 |
Backlog: Language FAQs |
2021-12-31 |
Retrospective: Software Architecture |
|
2022-01-30 |
January Release Notes and Themes |
|
2022-02-26 |
The Internet Was Designed With a Narrow Waist |
|
2022-03-12 |
A Sketch of the Biggest Idea in Software Architecture |
2022-03-31 |
Oil Is Being Implemented "Middle Out" |
|
2022-05-05 |
Oil 0.10.0 - Can Unix Shell Error Handling Be Fixed Once and For All? |
2022-05-10 |
Brief Descriptions of a Python to C++ Translator |
2022-05-29 |
A Garbage-Collected Heap in C++, Shaped Like Typed Python |
|
2022-07-28 |
Oil 0.11.0 - Big Features and Project Changes |
|
2022-08-24 |
Oil 0.12.4 - User Feedback |
|
2022-10-20 |
Oil 0.12.7 - Garbage Collector Problems |
|
2023-01-11 |
Pictures of a Working Garbage Collector |
|
2023-03-16 |
Oil 0.14.2 - Interactive Shell, and Conceding to autoconf |
2023-03-25 |
Oils Roadmap: What We Can Use Help With |
2023-03-26 |
Oils 2023 FAQ |
2023-03-31 |
Reasons for the Big Renaming to Oils, OSH, and YSH |
|
2023-05-13 |
Oils 0.15.0 - Big Contributions and More Concessions |
|
2023-06-08 |
Reviewing YSH |
2023-06-11 |
Sketches of YSH Features |
2023-06-15 |
How to Create a UTF-16 Surrogate Pair by Hand, with Python |
2023-06-17 |
Narrow Waists Can Be Interior or Exterior: PyObject vs. Unix Files |
2023-06-20 |
Oils Is Exterior-First (Code, Text, and Structured Data) |
|
|
2023-06-24 |
Oils 0.16.0 - Breaking Renames and YSH |
|
2023-08-02 |
Oils 0.17.0 - YSH Is Becoming Real |
|
2023-09-17 |
Oils 0.18.0 - Progress on All Fronts |
|
2023-11-30 |
Winter Status Update |
|
2023-12-21 |
Interactive Shell Screencasts |
|
2024-01-16 |
Oils 0.19.0 - Dicts, Procs, Funcs, and Places |
|
2024-02-21 |
Oils 0.20.0 - Eggex, JSON, and Android |
|
2024-03-21 |
Oils 0.21.0 - Flags, Integers, Starship Bug, and Speed |
|
2024-05-14 |
Notes for Houston Functional Programmers Talk |
|
2024-06-17 |
Comments on Scripting, CGI, and FastCGI |
2024-06-19 |
Oils 0.22.0 - Docs, Pretty Printing, Nix, and Zsh |
|
2024-09-09 |
What Oils Looks Like in 2024 |
2024-09-10 |
After 8 Years, Oils Is Still Small and Flexible |
2024-09-11 |
Garbage Collection Makes YSH Different |
2024-09-13 |
A Retrospective on the Oils Project |
|
2024-11-13 |
Oils 0.23.0 - Writing YSH Code, User Feedback, and Bug Bounty |
|