The Curious Engineer

All blogs / Other languages

Oils Blog 2016-2024

oilshell.org/blog

Other languagesLinux / UnixCompilers

Posts
227 from 10 Oct 2016 to 4 Jan 2025
Posting
now and then
Kind
project news

2025 1

  1. Oils 0.24.0 - Closures, Objects, and Namespaces

2024 13

  1. Oils Will Move to the oils.pub Domain
  2. Why Should a Unix Shell Have Objects?
  3. Oils 0.23.0 - Writing YSH Code, User Feedback, and Bug Bounty
  4. A Retrospective on the Oils Project
  5. Garbage Collection Makes YSH Different
  6. After 8 Years, Oils Is Still Small and Flexible
  7. What Oils Looks Like in 2024
  8. Oils 0.22.0 - Docs, Pretty Printing, Nix, and Zsh
  9. Comments on Scripting, CGI, and FastCGI
  10. Notes for Houston Functional Programmers Talk
  11. Oils 0.21.0 - Flags, Integers, Starship Bug, and Speed
  12. Oils 0.20.0 - Eggex, JSON, and Android
  13. Oils 0.19.0 - Dicts, Procs, Funcs, and Places

2023 16

  1. Interactive Shell Screencasts
  2. Winter Status Update
  3. Oils 0.18.0 - Progress on All Fronts
  4. Oils 0.17.0 - YSH Is Becoming Real
  5. Oils 0.16.0 - Breaking Renames and YSH
  6. Oils Is Exterior-First (Code, Text, and Structured Data)
  7. Narrow Waists Can Be Interior or Exterior: PyObject vs. Unix Files
  8. How to Create a UTF-16 Surrogate Pair by Hand, with Python
  9. Sketches of YSH Features
  10. Reviewing YSH
  11. Oils 0.15.0 - Big Contributions and More Concessions
  12. Reasons for the Big Renaming to Oils, OSH, and YSH
  13. Oils 2023 FAQ
  14. Oils Roadmap: What We Can Use Help With
  15. Oil 0.14.2 - Interactive Shell, and Conceding to autoconf
  16. Pictures of a Working Garbage Collector

2022 10

  1. Oil 0.12.7 - Garbage Collector Problems
  2. Oil 0.12.4 - User Feedback
  3. Oil 0.11.0 - Big Features and Project Changes
  4. A Garbage-Collected Heap in C++, Shaped Like Typed Python
  5. Brief Descriptions of a Python to C++ Translator
  6. Oil 0.10.0 - Can Unix Shell Error Handling Be Fixed Once and For All?
  7. Oil Is Being Implemented "Middle Out"
  8. A Sketch of the Biggest Idea in Software Architecture
  9. The Internet Was Designed With a Narrow Waist
  10. January Release Notes and Themes

2021 29

  1. Retrospective: Software Architecture
  2. Backlog: Language FAQs
  3. Backlog: Rough Progress Assessments
  4. Backlog: Explaining the Oil Project
  5. Appendix: The Journey of Extended Globs
  6. Winter Blog Backlog: Recent Progress
  7. Oil 0.9.4 - User Feedback
  8. Oil Has Multi-line Commands and String Literals
  9. An Opinionated Guide to xargs
  10. Unix Shell: History and Trivia
  11. Classic Blog Posts by Joel Spolsky
  12. Blog Review: Distributed Systems
  13. Summer Blog Backlog: Distributed Systems
  14. Summer Blog Backlog: Understanding and Using Shell
  15. Release of Oil 0.8.12
  16. Recent Progress on the Oil Language
  17. Notes on the HotOS Unix Shell Panel
  18. Release of Oil 0.8.9
  19. Comments About Build Systems and CI Services
  20. find and test: How To Read And Write Them
  21. Oil Doesn't Require Quoting Everywhere
  22. Release of Oil 0.8.8
  23. Updates to the Oil FAQ
  24. Why Create a New Unix Shell?
  25. Unix Shell: Philosophy, Design, and FAQs
  26. Shell Scripts, Audio, Images, and 3D Graphics
  27. Shell Scripts Are Executable Documentation
  28. Comments About Parsing: Theory vs. Practice
  29. Blog Roadmap for January 2021

2020 30

  1. Three Great Videos About Regex Derivatives
  2. Fixes and Updates to Oil Benchmarks
  3. Changes to Shell Runtime Semantics
  4. Proposed Changes to Oil's Syntax
  5. More Changes to Oil's Syntax
  6. Metrics for Oil 0.8.4
  7. Big Changes to the Oil Language
  8. Four Features That Justify a New Unix Shell
  9. Technical Issues And Risks
  10. A Plan for Oil 0.8 and 0.9
  11. Regular Languages, Part 2: Ideas and Questions
  12. Comments on Eggex and Regular Languages
  13. Summer 2020 Blog Roadmap
  14. Oil 0.8.pre6 - Pure Bash and C++
  15. Oil 0.8.pre5 - Progress in C++
  16. Oil 0.8.pre4 - The Biggest Shell Programs in the World
  17. Three Comics For Understanding Unix Shell
  18. Oil 0.8.pre3 - A Line Editor and a Continuous Build
  19. Metrics for Oil 0.8.pre2
  20. March Recap / Link Dump
  21. Oil Doesn't Confuse Flags and Files (Code and Data)
  22. February Recap / Brain Dump
  23. Four More Posts in "Shell: The Good Parts"
  24. Ambitions for a Unix Shell
  25. Oil's Parser Doesn't Worry About Aliases and Prompts
  26. Oil Uses Its Parser For History And Completion
  27. Oil's Parser is 160x to 200x Faster Than It Was 2 Years Ago
  28. The Simplest Explanation of Oil
  29. Blog Roadmap for January 2020
  30. Making Plans for Oil in 2020

2019 13

  1. Eggex Example: Recognizing Python Integer Literals
  2. Oil 0.7.pre9 and a Fast Shell Parser
  3. You Can Now Try the Oil Language
  4. Oil Language Design Notes #1
  5. Oil's Stricter Semantics Solve Real Problems
  6. Release of OSH 0.7.pre1
  7. Frequently Asked Questions (2019)
  8. What's Happened Since February?
  9. OSH 0.6.pre15 Does Not Crave Chaos and Destruction
  10. How to Parse Shell Like a Programming Language
  11. Success With the Interactive Shell
  12. BayLISA Presentation Materials
  13. I'm Speaking About the Oil Shell this Thursday in San Jose, California

2018 21

  1. Dev Log #9: Progress on Oil Subprojects
  2. Dev Log #8: Shell Protocol Designs
  3. What Is a Data Frame? (In Python, R, and SQL)
  4. Dev Log #7: Hollowing Out the Python Interpreter
  5. Release of OSH 0.6.pre5
  6. Running Bash Completion Scripts with OSH
  7. Release of OSH 0.6.pre2
  8. Summer Vacation is Over!
  9. OSH 0.5 - A Release with Many Contributors
  10. Summer Blog Topics
  11. Summer Status Update
  12. Release of OSH 0.5.alpha3
  13. oil-dev is moving to Zulip
  14. Addendum: Two Recurse Center Projects That Explain CPython
  15. I'm Attending Recurse Center this Summer
  16. Building Oil with the OPy Bytecode Compiler
  17. CommonMark is a Useful, High-Quality Project
  18. OSH 0.4 - A Shell Language That's Nearly Feature Complete
  19. Popular Posts With Many Comments
  20. Why Create a New Unix Shell?
  21. Success with Aboriginal, Alpine, and Debian Linux

2017 52

  1. OSH 0.3 - Optimization, Benchmarks, and Bug Fixes
  2. When Are Lexer Modes Useful?
  3. The Oil Lexer: Introduction and Recap
  4. Blog Retrospective #3
  5. Correction: How to Parse Here Documents
  6. OSH 0.2 - Parsing One Million Lines of Shell
  7. Comments About Shell, Awk, and Make
  8. Status Update: Parser Correctness and Performance
  9. Roadmap #5: Why Oil, and Why OSH?
  10. Git Log in HTML: A Harder Problem and A Safe Solution
  11. How to Quickly and Correctly* Generate a Git Log in HTML
  12. Please Try the OSH 0.1 Release
  13. Problems With the test Builtin: What Does -a Mean?
  14. Avoid Directly Manipulating File Descriptors in Shell
  15. Post-Release Blog Topics
  16. Review of Roadmap #4 (abridged)
  17. The Long Slog Through the Shell (abridged)
  18. Please Try the First OSH Release
  19. OSH Runs Real Shell Programs
  20. How I Plan to Use Tests: Transforming OSH
  21. How I Use Tests
  22. Working Toward an OSH Release
  23. Project Metrics
  24. Post-Vacation Update and Build System Observations
  25. Rewriting Python's Build System From Scratch
  26. OVM will be a Slice of the CPython VM
  27. The OPy Front End is Working
  28. Code for the Shunting Yard Algorithm, and More
  29. Blog Retrospective #2
  30. Switching to "Twitter Mode"
  31. An Unexpected Solution: Cobbling Together a Python Interpreter
  32. The Riskiest Part of the Project
  33. Pratt Parsing Index and Updates
  34. Precedence Climbing is Widely Used
  35. Measuring Progress with Tests
  36. Oil-dev is Alive!
  37. If you have Debian/Ubuntu, and Five Minutes
  38. Project Roadmap #4
  39. Review of Roadmap #3
  40. Status Update and Blog Backlog
  41. From AST to Lossless Syntax Tree
  42. Translating Shell to Oil, Part Two
  43. Translating Shell to Oil
  44. Bernstein Chaining of ssh and su
  45. The Thinner Waist of the Interpreter
  46. Pretty Printing ASTs with ASDL, and Metaprogramming
  47. On the Wiki: Project Goals and Related Projects
  48. Pipelines Support Vectorized, Point-Free, and Imperative Style
  49. Shell Has a Forth-like Quality
  50. What is oheap?
  51. ASDL Implementation and Use Cases
  52. Success with ASDL

2016 42

  1. Questions about Superoptimization
  2. Using Reddit for Blog Comments
  3. Bespoke Superoptimization
  4. Four Functions and Enum Labelings
  5. A Math Problem: Function-Directed Enum Labeling
  6. Analogies for ASDL
  7. What is Zephyr ASDL?
  8. Type Checking vs. Metaprogramming; ML vs. Lisp
  9. A Problem with Type Checking
  10. Status Update: the Backbone of the Interpreter
  11. Roadmap #3 Continued
  12. Roadmap #3: Two Top Priorities
  13. Blog Retrospective #1
  14. Oil is on Github
  15. Problems With $((
  16. OSH Can Be Parsed With Two Tokens of Lookahead
  17. Example Code in Shell, Awk, and Make
  18. Shell, Awk, and Make Should Be Combined
  19. Parsing 183,000 Lines of Git's Shell Source Code
  20. Contrived Example Found in the Wild
  21. Thirteen Incorrect Ways and Two Awkward Ways to Use Arrays
  22. Pratt Parsers Can Be Statically Typed
  23. Pratt Parsing Without Prototypal Inheritance, Global Variables, Virtual Dispatch, or Java
  24. Review of Pratt/TDOP Parsing Tutorials
  25. Pratt Parsing and Precedence Climbing Are the Same Algorithm
  26. Four Slashes and Three Meanings
  27. The Five Meanings of #. And What Does ${####} Mean?
  28. Grammar for Variable Substitutions
  29. Four More Projects Parsed
  30. Roadmap #2
  31. New Terminology: Static Parsing vs. Dynamic Parsing
  32. Parsing Bash is Undecidable
  33. How OSH Uses Lexer Modes
  34. Shells Use Temp Files to Implement Here Documents
  35. How to Parse Here Documents
  36. debootstrap Parsed
  37. Blog Roadmap, and Project Roadmap
  38. Oil Now Parses My /etc/init.d Directory
  39. OSH Parses Shell Scripts Up Front in a Single Pass. Other Shells Don't.
  40. [ Is a Builtin, But [[ Is Part of the Language
  41. Oil Can Parse Real Shell Programs
  42. What Oil Looks Like, and a Plan for This Blog