Task engine VM – for tasks with executable instructions (progress update)
The core idea is Minimal task model + programmable behaviour — a small core that enables unlimited features, since each task can carry executable scripts.
Recent updates:
- VM now uses NaN-boxing technique.
- All stack values are 64-bit (u64) but encode 5 distinct types: Boolean, String, CallData, U32, and MemSlice (25-bit offset + 25-bit size).
- Added InlineVec — a vector-like structure backed by a fixed-size array. The VM stack, control stack, call stack, and jump stack now use it with defined limits. - VM has memory now (heap). Memory is simple Vec<u64>, grows dynamically, but technically length is restricted by mem_slice_val format: 25 bits payload for offset and size
Project is still in absolutely early stage.
Repo is here: https://github.com/tracyspacy/spacydo
Would you care to explain to an average dumb developer like me what’s the point of all this and what actual end user problem does it solve?
It's an experimental approach to ordinary todos. There are plenty of good tools like taskwarrior, but their features are hardcoded task body is huge — you either dig through hundreds of features to find what you need, or something you need is too niche, so it will make no sense to hard code it for devs. So, I decided to try a different approach as an experiment: keep the task model super simple (id,title, status,calldata), but let tasks have executable instructions. That way almost any custom behavior becomes possible — tasks depending on other tasks, tasks modifying other tasks or creating new ones, recurring, self-deleting tasks, task that monitoring new tasks creation and creates alert task, or increase priority of older tasks etc. The tradeoff is complexity for flexibility, like vim/helix vs zed or atom. To make that work a tiny virtual machine is needed and a set of opcodes. So this vm can be a basis for some todo app.
duplicating link to a repo since it is not clickable in body: https://github.com/tracyspacy/spacydo