I plan to release OSH 0.5 next week! This post is an update on what's happened since the last release.
In late March, I wrote a post to relieve myself of Oil-related "duties" while attending the Recurse Center.
But a few things happened in the meantime, and I ended up working on Oil a lot:
Python creator Guido van Rossum tweeted about my project [1]. That attracted new contributors, and I kept my promise to review their pull requests quickly.
I'm embarrassed that these commits have been sitting unreleased in the repo since May, but I will fix this shortly.
Pair programming is a core part of the Recurse Center experience. It turned out that many people were interested in pairing on Oil. You'll see this in the release notes.
After the handling the logistics of traveling and housing, it felt good to work on Oil, rather than something unfamilar.
After I release Oil, I'll have 3 weeks left, and I hope to spend that time on a few small experiments with computer graphics.
In the same post on Recurse Center, I wrote about a few subprojects related to Oil:
sh -x.I've decided to focus on two of these projects. They address the main problem I see: OSH is basically a slower and less featureful version of bash right now!
Although OSH is more principled in its implementation, that isn't quite a user-facing feature. It will pay dividends in the far future, but I'd like to make OSH more compelling in the near future.
This is a "carrot" for OSH.
Before leaving for New York, I prototyped a web-based shell trace tool with my friend Eric.
I conjectured that we could make use bash as the client, rather than Oil. This way we can test the idea with a client people already have installed.
I came up with some horrible hacks involving the $PS4 variable, which
controls the output of sh -x.
(NOTE: The Oil language is a bigger "carrot", but it's not yet implemented. I'm looking for a more short-term win.)
OPy compiler: This is to make OSH faster and "production quality". It's a bit risky and unusual, but I've optimistic based on the progress so far.
OPy itself. I worked on this a bit at Recurse Center and have a clearer idea of what it will look like. I had some chats with Darius Bacon at Recurse Center which helped clarify things in my mind.
I had a couple realizations:
BREAK_LOOP and
CONTINUE_LOOP instead of raw jumps. This is apparently changing in
Python 3.8.I went to Recurse Center so I could talk to people about computers in person, rather than on the Internet! So I didn't blog.
But I got several ideas for blog posts this summer.
Older posts in the blog backlog:
The Oil release.
Reminder: Zulip.
[1] Regular readers know that I have a serious interesting in parsing — specifically the difference between theory and practice.
I e-mailed Guido about his latest blog post on pgen2, the bespoke parser generator that powers Python.