[ #compiler ] I wrote a study notes blog post on Day 9 of Matt Godbolt's Advent of Compiler Optimisations 2025 series: "Induction variables and loops".
Read more here: gapry.github.io/2026/03/31/A...
[ #compiler ] I wrote a study notes blog post on Day 8 of Matt Godbolt's Advent of Compiler Optimisations 2025 series: "Going loopy".
Read more here: gapry.github.io/2026/03/31/A...
[ #compiler ] I wrote a study notes blog post on Day 7 of Matt Godbolt's Advent of Compiler Optimisations 2025 series: "Division by a Constant".
Read more here: gapry.github.io/2026/03/31/A...
This is patch #310
#OpenSource #Wave #Compiler #Patch
blog.wave-lang.dev/post/2026-03...
Whee. Compiler stage3 now passes all tests that stage1 and stage2 do, when running the tests via the IR emulator.
Time to start improving the IR, allocating registers, and implementing a backend to generate "real" code from the IR.
#Projects #Compiler
When Verified Source Lies I deployed a staking vault on Sepolia and got it verified on Etherscan with a green checkmark. The source code contains a storage write that does not exist in the compiled...
#smart-contracts #solidity #blockchain-security #ethereum #cybersecurity […]
This is patch #308
#OpenSource #Wave #Compiler #Patch
blog.wave-lang.dev/patch-308-pr...
git commit history for a couple changes tidying up the tree and splitting ir-types.spl into ir-instructions.spl and ir-blocks.spl
Blergh. Did a little tidying up, made a bigger mess, chased down the tiny one-line change that broke everything and hid in the noise, and put it all back together again.
Good: Everything's tidier.
Bad: Did not actually do the thing I set out to do this afternoon.
#Projects #Compiler
¿
Abstraction:
It removes the need for
manual __syncthreads() calls,
as #compiler automatically
manages #thread-synchronization
and #memory-movement.
Out Nerded The Source Code
Out Nerded The Source Code
#programming #Parenting #compiler #sourcecode #Family
programmerhumor.io/programming-memes/out-ne...
Spent a few days playing with the game of life program, fixed a lot of bugs in the language doing so. I should make more projects like this to stress test the language, any ideas for what else I should try coding?
#compiler #programming #raylib
Managed to build a cheeky little game of life simulator in my programming language!
#programming #compiler #raylib
A snippet of my programming language showing anonymous structs, multiple return values, and tuples ``` fn multiple_returns(): struct { u32, u32 } { return { 6, 7 } } //accept as anonymous struct fn foo(struct { a: u32, b: u32}) { println(a) println(b) } //accept as tuple fn bar(tup: struct { u32, u32 }) { println(tup.0) println(tup.1) } fn main(): u32 { let x = multiple_returns() foo(x) bar(x) return 0 } ```
Anonymous structs have blown open a whole new slew of features. Multiple return values and tuples basically for free
#compiler #programming
Wave v0.1.8-pre-beta is now released!
#OpenSource #Wave #Compiler #Release
blog.wave-lang.dev/wave-languag...
A snippet of code in my programming language showing coercion between a named struct and an unnamed struct, as well as promotion of an anonymous struct's fields to the containing struct: ``` struct Foo { { a: u32, b: u32 } } struct Pair { a: u32, b: u32 } fn foo({a: u32, b: u32}, c: u32) { println(a, b, c) } fn main(): u32 { let pair = Pair { 1, 2 } foo(pair, 3) //named struct coerced to anonymous struct let f = Foo { pair } println(f.a) println(f.b) return 0 } ```
The output: ``` 1, 2, 3 1 2 ```
Been noodling on how my language will handle anonymous structs. They're not done yet but I think they'll be pretty loose, able to coerce between compatible named structs. Plus they'll basically act like tuples once you can create anonymous struct literals, which is nice!
#programming #compiler
Compiler directives give you fine‑grained control over the build process. Use #Pragma to toggle debug‑only code, profile performance hotspots, or conditionally compile for specific platforms (Desktop, Web, Mobile). Do you use any in your projects?
#Compiler #Programming #BuildOptimization
#Development #Releases
Vite 8.0 is out · It ships Rolldown for up to 10–30x faster builds ilo.im/16bd5y by Vite
_____
#Vite #Tooling #Builder #Bundlers #Compiler #NodeJS #Rust #WebDev #Frontend
www.inference.vc/the-future-o... #software #machinecode #compiler #future
Two files in my language showing a barebones gameboy CPU and raylib draw loop with the gameboy window running, showing a blank screen
Getting to the point where I can write semi-serious programs in my language. It's a great way to find a bunch of subtle bugs and missing functionality. E.g. here's a ~totally functioning~ gameboy emulator
#programming #compiler #raylib
A program in my language showing function overloads: ``` struct Vec2 { x: u32, y: u32 } struct Vec3 { x: u32, y: u32, z: u32 } fn add(a: Vec2, b: Vec2): Vec2 { return Vec2 { a.x + b.x, a.y + b.y } } fn add(a: Vec3, b: Vec3): Vec3 { return Vec3 { a.x + b.x, a.y + b.y, a.z + b.z } } fn main(): u32 { let v2a = Vec2 { 3, 2 } let v2b = Vec2 { 4, 3 } let v2c = add(v2a, v2b) println(v2c) let v3a = Vec3 { 3, 2, 1 } let v3b = Vec3 { 2, 1, 1 } let v3c: Vec3 = add(v3a, v3b) println(v3c) return 0 } ```
The output of the program: ``` { 7, 5 } { 5, 3, 2 } ```
Had to implement some name mangling when emitting functions to lay the groundwork for interfaces, and I noticed this gave me function overloads for free. Take that, C!
#compiler #programming
#Development #Explainers
The CodePen Compiler · The CodePen 2.0 editor has a whole new brain ilo.im/16bcg0 by CodePen
_____
#CodePen #CodeEditor #Compiler #Builder #Website #WebDev #Frontend #HTML #CSS #JavaScript
Starting to get some credible looking (unoptimized) IR out of the stage3 compiler. Physical registers are dollar-prefixed, virtual registers percent-prefixed. The comments on the basic blocks are human-friendly tags to help see which part of the codegen they came from.
#Projects #Compiler
A snippet of my programming language showing optionals and early returns on optionals: ``` fn maybe(b: bool): ?u32 { if (b) return 10 return none } fn opt_return(b: bool): ?u32 { let x = maybe(b) println(x?) //if x is none, return here, else print the value of x (10) println("x was some!") return x } fn main(): u32 { let x = opt_return(true) if (x) |value| { println(value + 10) } else println("x was none") let y = opt_return(false) if (y) |value| { println(value + 10) } else println("y was none") return 0 } ```
The output of the program: ``` 10 x was some! 20 y was none ```
It's all coming together. Now I have unions I can implement the optional type ?T which is just a tagged union. In addition I could implement rust style try-unwrap of optionals basically for free with all the parts I have!
Here opt_return only prints x if it's some, else it returns early!
#compiler
my weekend warrior project #zigttp now has a web site (🚧):
zigttp.timok.deno.net
🎉🚀
#ziglang #typescript #runtime and #compiler
Now with the fancy struct syntax, implementing tagged unions was relatively easy. Also got rid of all those pesky semicolons messing up the place
#compiler
Using my MXVM Interpreter/Compiler to produce x86_64 Assembly language with AT&T syntax, then using att2intel to convert from AT&T to Intel. #asm #compiler
Xcode Swift: “expression too complex to resolve…”
So, you’re saying the language is non-deterministic and too convulsed even for a compiler… Gotcha!
My bane in using Swift. You have to jump through hoops and invent non-existent curses to resolve the error.
#apple #swift #xcode #compiler #failure