blog | oilshell.org
A year ago, I wrote several posts to take stock of the project, starting with these two:
They still feel useful after year: I didn't write every post, but I ended up addressing almost every issue.
So it's time to do it again. What's happened recently in the Oil project, and what are our plans for 2021?
I described the biggest accomplishment of the year in October, in Four Features That Justify a New Unix Shell. Summary: the OSH language is mature, with a compelling feature set, and the Oil language is taking a nice shape.
But the interpreter needs to be faster, and we're speeding it up by translating statically typed Python to C++. The translation relies on a runtime library that includes a garbage collector.
Unfortunately, you could say that writing and debugging the collector kicked my ass in December. I spent much of the month knee deep in segfaults, GDB plugins, and CLion.
I did manage to fix many bugs, and I addressed overlooked issues like vtable pointers in object headers. And I still believe the design is right. However, I grew tired of the work and took a break.
As a result, Oil didn't fully achieve its goals for 2020. But I'm still happy with the progress we made.
Long-time readers know that I make many comments about the project on Hacker News, Reddit, and lobste.rs. Explaining the project ends up shaping it.
Some of these comments are naturally blog posts, so I keep track of them on the
#blog-ideas stream on Zulip (and previously
But rather than write full blog posts, I'll link and summarize the comments. I feel like this style of dialogue could be more effective at communicating subtle ideas, and it takes less time. I divided them into these categories:
Writing these summaries should take a week or two. I hope that some of the "big ideas" will attract a new audience to the project.
Let's review a few posts from 2020 before talking about 2021.
I can see that many people are downloading Oil, and the blog is more popular than ever. Each new post has many readers, and people continue to read what I wrote years ago.
But I can use more feedback! Let me know if OSH works on your shell programs, and let me know what you think of the Oil language. (Thanks to Danilo Spinella for recent comments.)
See Where To Send
also a new
#oil-help stream on Zulip.
To be honest, I haven't figured out what 2021 will look like. After I flush the blog queue, I should write about project plans. Explaining the project to others often helps me figure out what to do.
Off the top of my head, here are the top priorities:
errexityet, but all the code has been there for a few months. This is more evidence of the project bottleneck.
This post outlined what I want to write about in January. I hope to get most of it done, but no promises. The first post in this series will be Comments About Parsing: Theory vs. Practice.
A few interesting side projects have made their appearance behind the scenes. I mention them here so you know they exist and can questions, but I don't have plans to write about them.
Three tools that help with blogging and web publishing:
.zipfile. I wrote this in Python in 2017, and it's used extensively on every release page.
picdir, a small PHP program that serves dynamically resized images. It will be useful for writing, and it also gave me experience with PHP.
I tend to write code in useful languages, not simple or elegant ones. This is a rich source of ideas for language design, both positive and negative.
constexpr, but I've also used C-style macros to work around various limitations.
document.querySelector. It's a very Unix-y form of ad-hoc reuse.