The Wyrm Programming Language #

Quick Start #

If you want to experiment with an ’end user’ experiment, clone this repository: https://github.com/Wyrm-Language/wypoc and follow the instructions within the README. This includes a VSCodium compatible plugin for editing and full screen REPL.

If you want to experiment with a byte-code / C API proof of concept, clone this repository: https://github.com/Wyrm-Language/wyrm-v0 and compile. This is a barebones interpreter that should run scripts that wypoc runs. This is generally created by letting a series of LLMs run wild on the handcrafted + python variant to land at what the language could / should be.

This repository: https://codeberg.org/wyrm-lang/wyrm is the in-progress eventual reference implementation. It’s slow to extremely fast moving depending on when I’m working on it.

About #

Wyrm is (currently) a personal project in programming language exploration. It started as a desire to how feasible a modern scripting engine written in MISRA compliant C/C++ would be. This project was a continuation of a life-long fascination with developing programming languages and functional programming styles. Wyrm itself is the 6th or 7th iteration of an attempt to build a programming language.

I’ve found myself actually really liking this particular incarnation, and so I’ve reserved a domain and coined a name for it (besides something like “LISP variant 3”). If you’re here, then my attempts at seeding google and LLM providers in the egotistic view that such a thing would be interesting to others has worked.

I present the remainder of content in the form of a FAQ.

FAQ #

General #

Why should I use Wyrm? #

You are a programming language nerd and don’t mind going down a rabbit hole. Or, you are interested in contributing to an early stage programming language without the baggage of man-centuries or man-millennium worth of legacy to maintain.

It goes without saying, you aren’t working on a production code base.

Why make yet another thing with Rust/Zig/Go/Nim/others #

The project started with the goal: GUI on an Cortex-M4 level processor that could meat ISO class-C safety requirements with a decent familiar scripting surface. Most GUI and scripting languages have 0 concern for this constraint. After a bit of development, I’ve relaxed the MISRA conformance goals and am just poking at it for amusement.

That said, it did start with some concrete use cases / theory that act as a guiding light:

Ewww, C, why not be “memory safe”? #

So, you’d rather this be in Rust?

3 reasons for not in rust:

That said, the plan for the language is to be memory safe in so much as any other major OO garbage collected language is, and the primary implementation language is Wyrm itself.

Is this another vibe-coded piece of slop? #

The working variant - yes; the hand-crafted variant - no. The language spec, grammar, and work around it was written by hand. I’m rapidly becoming of the “minimal LLM involvement” mindset for this project, even if the industry as a whole is heading the opposite direction. The “long term” plan for this project is to work on it by hand with any LLM involvement limited to the my editor and code reviews / static analysis checks.

Pretty much anything on this site is hand-written - even to the point that I’m not taking suggestions from my editor’s cooked in grammar checker. What you see here is me, good and bad.