The Helix programming system enables versioning of program state by exporting execution state as YAML files, allowing developers to navigate forward and backward through a program's execution while it runs, using standard Git for version control. The system uses Lisp-style S-expression syntax where arrays represent function calls with the first element as the function and remaining elements as arguments. A Python wrapper script manages the execution by creating Helix programs, running them, and writing back the new state to files. The system supports first-class errors that can be represented as data, includes an include folder mechanism for importing libraries (including precompiled binaries), and demonstrates the ability to branch program state when modifications are made.
Deep Dive
Prerequisite Knowledge
- No data available.
Where to go next
- No data available.
Deep Dive
Helix Programming SystemAdded:
All right, this is a demo of my Helix programming system.
It allows me to version program state, so I can go forward and backwards while a program is running and actually even branch it. It's just using regular Git.
Um the way I can do this is by exporting the program state and just storing it as a plain YAML file.
Um actually the syntax of the language which is just on top of YAML.
Um so what you're looking at right now is a simple program here. Um this is the main function.
Um this is Lisp style S-expression syntax if you're familiar with that.
The first uh element of each of these arrays is just the function and the rest of them is the argument that the function will be called on.
So this function step is being called on this uh I call them micro VMs.
Um so we're calling step on the cell VM, so I'm going to go ahead and run this debug wrapper here.
So we can start stepping through the program. Unfortunately, this does not preserve white space.
Um and you're going to see on the left here is a Git a log tree that's going to unfold as we step through this.
But right now you can see that it's uh this is where our program counter is.
Um the program counter is just the top of this frame stack stack frame.
And um you can see this uh cell VM here has already started running.
Uh the status is running and it's already has this frame, so that means it's right ready to execute this point here. So how this whole thing is working is actually a Python script um grabs this entire file and just uses Helix itself, calls the step function from within Helix on this whole file.
So, this Python basically creates a Helix program that looks like this.
And it just runs this Helix program and Helix prints out um the new state of this inner VM and then Python just writes it back to the file. So, that's all that's happening um here.
Okay? And so, I can continue stepping through this.
And uh something's about to happen. So, uh you can see that we created an error here.
Um we can go backwards and see that this this is the line that the error that caused the error.
And Helix actually has first-class errors just in the same way that like some languages can have first-class types or whatever.
Um so, that just means that they can be represented as data. Um just like everything is cuz how am I supposed to do this uh um procedural versioned machine state.
Anyway, uh so, we can go back up here and take a look. This is actually a bug in this Python wrapper, but you can see that it created a branch here mistakenly. These are the same.
I can uh Oh.
All right. Well, I'm not sure what's happening there, but anyway, uh so, we can see this uh VM state. So, we we want to stop this from happening, so we can go back to before it happened.
And the issue is that they we didn't call set with enough parameters. So, if I just put total here and we can we'll be setting the variable to total.
And this should create an automatic branch. Yep, so we've continued running from where we were having fixed that error.
Um and so and you can see that we've set total to something. So, uh the variable total has appeared down here.
Um and then we're going to uh set total to a new thing, which is X + Y.
That's 13.
And then uh add Y to the total. Okay.
And then uh it's just some demonstration of being able to access uh inner values just using dot syntax.
And Healix also has uh includes. So, at the beginning when it when uh the program starts, it looks for this include uh folder and it will include all the stuff in here and this actually even works with the dot so files.
Um for precompiled binary C++ if I need to put an extension on this.
Uh I can show you that in a second.
And so, um as you can see, we already stepped the cell VM twice.
But it does have uh more happening in its main function. So, this s- uh frame state stack frame, excuse me, uh is pointing here right now.
Um And so, it's about to execute this and then once we get to the end of um this outer program, we're going to call start, which is basically just the same as continue in a uh typical debugger.
And that's going to finish off this uh inner VM and as well as the outer VM because it's um has a that's the last step. So, they're they're both finished now.
Okay?
And let me see if I can quickly demonstrate the uh library importing feature.
So, in this case I've actually precompiled this library.
And if I run Helix on this file it should oop open this uh very simple SFML thing.
But, this is using these SFML functions have been imported from this SO file.
All right, that's it. Hopefully, that's given you a taste of some interesting functionality that I'm working on.
And uh this is all available on GitHub if you want to check it out.
Thanks.
Related Videos
Agentforce NOW AMA: Build with React and Salesforce Multi-Framework
SalesforceDevs
490 viewsโข2026-05-28
How agent o11y differs from traditional o11y โ Phil Hetzel, Braintrust
aiDotEngineer
450 viewsโข2026-05-28
WEB TECHNOLOGIES UNIT-2 | Degree 4th sem BCOM Computers web technologies unit-2 full explanation๐ฏโ
LearnwithSahera
1K viewsโข2026-05-29
More tests are always better? How to use AI to identify tests that bring little value
Alliance4Qualification
335 viewsโข2026-05-29
Search Algorithms Explained in 60 Seconds! ๐ค๐จ
samarthtuliofficial
218 viewsโข2026-06-01
People of Game of Thrones using JavaScript DOM
AltCampus
296 viewsโข2026-05-30
Introduction to Problem Solving Part - 1 | Lecture 1 | Intermediate DSA
ascensionix
107 viewsโข2026-05-29
So What's Odin Lang Even Good For
TechOverTea
131 viewsโข2026-06-01











