Flagship

Mappa

Compile-time mapping that stays Native AOT friendly, readable, and reusable.

A C# source generator that emits plain mapping code between types — similar in spirit to AutoMapper, but the work happens at compile time. Attributes configure the mapper without changing source or target types; missing nested maps are generated for you. Methods can live on any partial class, including static types and extension methods. Companion packages cover Google.Protobuf well-known types and MongoDB BSON. Recent releases add IQueryable projection, polymorphic mapping, reference and cycle handling, and dependency-injection registration.

Tags C#source-generatorcsharpdotnet

Posts Mappa v10.2.0 Mappa v10.1.0 Mappa v10.0.0 Mappa v1.2.0 Mappa v1.1.0 Mappa the source generator C# mapper

Libraries

Comment TODO Analyzer

TODOs without a ticket number rot; this makes the format a compiler rule.

A Roslyn analyzer that requires every TODO comment to follow the same shape. Built-in formats are GitHub (TODO [#33] This needs to be handled.), Jira (TODO [COMMON-1234] This needs to be handled!), and plain (TODO: Should we handle this?), or a custom regex from .editorconfig. Optional rules fail the build on any leftover TODO (TA0002) or on a list of task IDs you want closed (TA0003).

Tags C#analyzercsharpdotnet

Posts Comment TODO analyzer v1.2.0 Comment TODO analyzer v1.1.0 Comment TODO analyzer

PrettyCode.StringBuilder

Generated source is easier to debug when indent and directives nest and unwind themselves.

A StringBuilder wrapper for emitting formatted source. Disposable scopes handle indentation, curly-brace blocks, #pragma warning, #nullable, and #region, and restore the previous state when the scope ends.

Tags C#csharpdotnet

Posts Pretty Code string builder

Compilers & Interpreters

EML

Math expressions down to a two-opcode stack IR, then run or emit JS and C.

An Ada compiler and interpreter for EML (All elementary functions from a single operator), a tiny language built around eml(x, y) = exp(x) − ln(y) over complex numbers. Front ends cover math source (.mxeml), nested trees (.teml), textual stack IR (.eml), and packed binary (.beml). Pipelines preprocess, tokenize, parse, compile, and run; compile targets include .eml / .beml IR, browser JavaScript (math.js), and C (long double complex, plus a library form with a companion header). Built with Alire.

Tags adaAlirecompilerinterpreteremlmath

Posts EML: an exp-minus-log compiler and interpreter

Turing machine emulators

One Turing-machine interpreter, many languages, so the idioms are comparable.

The same Turing machine interpreter written in C#, Python, C++, Go, Pascal, Ada, C, D, and Rust. Shared PowerShell scripts check toolchains, build, run a substitute-machine sample, and test every language the same way.

Turing machine emulator — tape and state display

Tags c++pythondotnetgocsharppascaladacdrust

Posts New Turing machine interpreter implemented in Rust New Turing machine interpreter implemented in D New Turing machine interpreter implemented in C New Turing machine interpreter implemented in Ada New Turing machine interpreter implemented in Pascal Turing machine interpreters implemented in C#, C++, Python and Go

Brainfuck interpreters

The same cross-language exercise for a tiny language, including Erlang.

A Brainfuck interpreter in C#, Python, C++, Go, Pascal, Ada, C, D, Rust, and Erlang. The same Check / Build / Test scripts as the Turing suite, plus a hello-world runner.

Brainfuck interpreter — running a small program

Tags c++pythondotnetgocsharppascaladacdrusterlang

Posts New Brainfuck interpreter implemented in Erlang New Brainfuck interpreter implemented in Rust New Brainfuck interpreters implemented in C and D New Brainfuck interpreter implemented in Ada New Brainfuck interpreter implemented in Pascal Brainfuck interpreters implemented in C#, C++, Python and Go

Web

stefano.ie

Same Jekyll site, now living at a domain that is just my first name.

This page, now at stefano.ie. A Jekyll site on GitHub Pages: YAML-driven career, projects, and media lists, an SVG sprite, dark / light / system theme, and a GitHub Actions build on Jekyll 4 so plugins like the sitemap, redirects, cached includes, and pagination can run.

Tags jekyllliquidsassgithub-pages

Posts Moving to stefano.ie Adding a travels section Rebuilding this site

Games

Blocchi

Learn Rust and Bevy’s ECS by implementing Tetris.

A Tetris clone written in Rust with the Bevy game engine.

Blocchi — a Tetris-style board in Bevy

Tags rustBevygameecs

Posts Blocchi

Fifteen

A small C++ and SDL2 sliding-tile puzzle to practise native game setup.

A 15 Puzzle built with C++ and SDL2 (image and TTF). CMake on macOS with Homebrew SDL packages.

Fifteen — the 15-puzzle board

Tags c++cppSDLSDL2gamepuzzle

Posts Fifteen