2023 December Update
This has been a busy time for me professionally, with lots of business travel, so progress is a bit slower than I would like. Want to help accelerate Hadron development? Get involved and volunteer!
I wrote a short article outlining some of my plans to support SuperCollider language evolution. Please take a look. In short, Hadron will establish a clear Code of Conduct and governance model, it has an Apache license allowing for commercial projects, and it promises interoperability between legacy code and new language features. There’s a lot more to add here, but hopefully, this can start a conversation about Hadron’s role in the future evolution of SuperCollider. Feedback welcome!
Hand-coding a parser is a lot of work! I restructured the parser testing to compare it to output from Sparkler, my ANTLR4-based SuperCollider parser library, and this has helped development by increasing my confidence in the parsing code. I hope to wrap up the main part of the parser, barring more exotic constructions like list comprehensions and generator expressions, by the end of the year. Next up, semantic analysis, then VM bytecode generation! Let me know if you’d like to get involved.
I got CI set up and working, so Hadron changes are again validated with formatting and unit testing, as well as a WASM32 build to ensure we maintain WASM compatibility in the language core. I roughed out some ideas for continuous fuzzing infrastructure, but this was feeling like a big project and a distraction from Hadron so I put it aside for now. I continue to fuzz Hadron ad-hoc between each parser commit and have found several issues this way. I can’t recommend fuzzing language frontends enough!
- Code of Conduct: I’d like Hadron to have a robust CoC to protect and foster a positive community where all are welcomed who feel they can meaningfully contribute. If you have experience moderating CoC for programming languages, I’d love to chat.
- Rust: #1 I’ve broken the detailed
parser work into a bunch of
handle_functions in lang/src/toolchain/parser/tree. Please let me know if you’d like to tackle a particular part! These smaller issues are a great way to get started hacking on Hadron.
- Docs: #3 The parser has been moving around quite a bit but should now be settled down enough that we could start to pay down some of the RustDoc debt.
- Fuzzing Infra: Feel like working on a standalone async Rust project not on the critical path but critically important to Hadron? I have just the project for you.
- Rust: To get early feedback on the parser, particularly the error messages, I’ll be spinning up a Rust-based LSP implementation targeting WASM.
- TypeScript, VSCode: Given a rust-based WASM LSP crate, add the trimmings for a full-featured sclang VSCode extension.
- Anyone: Suggestions and feedback. Is there something on your mind about sclang and Hadron? Let me know!