Mattias Ljungström
@spacesofplay
minc.dev, spacesofplay.com, based in berlin.
Also pushed an update to box3d-minc with some performance tweaks. box3d-minc is now faster on some benchmarks than MSVC on x64, arm64 and wasm are at around x1.2 compared to clang/emcc. wasm live demo: spacesofplay.github.io/box3d-minc/ box3d-minc: github.com/SpacesOfPlay...
Minor correctness release of minc compiler (0.9.10) Fixed a codegen issue, added optimizations, compiler size reduced, and syntax highlightning tweaks. install from minc.dev (or run minc_update)
I'm bad at blog posts, but the project started from zero. There was an initial prototype that was just "how small can you make a self-compiling language?". There's a bootstrap compiler in C that compiles the actual .mc compiler source. The compiler then self-compiles over 3 steps + 1 control step:
Finally got around to setting up the raylib-minc wasm example page: spacesofplay.github.io/raylib-minc/
You can live-edit a smaller box3d demo here, if you want to play around with the source code without downloads: minc.dev/playground/g...
Released minc compiler 0.9.9 - this is a major correctness and optimization update. The motivation for this work was to run the transpiled Box3D library at equal performance levels as msvc/clang. Installer scripts and links to repos at minc.dev
screenshot in minc, in C you need to write "return lo + (int32_t)(rng_next() % ((uint64_t)hi - (uint64_t)lo));" to avoid UB.
Ported an old project to minc compiler, original C++ project is ~200k lines of code and compiles in 21s (without cmake generation, which would add another 35s). The minc project is 160k lines and compiles in ~1s. Left terminal apple clang c++, right terminal minc compiler:
Working on a JIT/hot-reload module for minc compiler. This is a godot app written in minc, with a static "engine" part that loads the minc compiler as a .dll module (libminc.dll), then watches file dir with OS events, recompiles directly to executable memory and remaps. Cross platform win/mac/linux.
Added minesweeper example based on thirteen.mc header to the minc compiler wasm playground: minc.dev/playground/g... The thirteen header is a tiny library that opens a window and hands back an RGBA pixel buffer.
Added a imgui_demo example to the gfx playground. minc.dev/playground/g...
the godot bindings repo comes with a polished next gen game as well, or... maybe not. (it's interactive and shows some more binding flow.)
updated the minc gfx playground with webgpu compute shader example: minc.dev/playground/g...
the minc compiler is 1.5MB. it requires ~512Mb to self-compile inside the minc micro kernel.
sokol wasm/webgpu support in minc compiler, available in next release.
Did you know that any language can be bound to control the Godot game engine? Here's a quick test setup with minc running the game loop, drawing a mc test cube. All scripted in minc, no godot editor used. Running on macOS.
minc uefi kernel booting, reclaiming boot memory, setting up interrupts, a physical allocator and dropping to user mode/ring 3 with (a very basic) preemptive scheduler.
The thirteen-minc single header transpile/port for minc is now available at github.com/SpacesOfPlay... The original is "a header-only C++ library that initializes a window and gives you a pointer to RGBA uint8 pixels to write to." Targets win, linux, macos, wasm.
Released minc compiler v0.9.7. This release had a bit of feature creep. Added shader live editing, supported with cli "minc run --shader-live app.mc" syntax, and in vs code including wasm targets. Preview directly in the live wasm playground at minc.dev/playground/g...
spent way too long debugging why this didn't trigger a size change in the live reloading...