I’m Francesco Duca, a computer science student in Cesena, Italy. Most of what I write runs close to the operating system or the hardware.
Right now I’m working on fshell, a Unix shell with typed pipelines; my fork of shadPS4, where I work on the AArch64 JIT; and flanger, a small language frontend.
A Unix shell with the sh syntax you already know and typed pipelines. Native commands pass records instead of text, so you filter, sort, and pick fields directly instead of parsing output columns. External commands still work the way they do in any other shell.
ps | filter cpu > 50.0 | map pid command
Keep processes above 50% CPU, then show only their PID and command.
My fork of shadPS4, the PS4 emulator. I work on the native AArch64 backend: lifting x86-64 blocks and emitting AArch64 code, plus guest memory, fault handling, and calls between the guest and host ABI. The latest changes are LOCK-prefixed atomics, scalar float conversion, and x86 shift semantics.
x86-64Guest instructions
IRLifted block
AArch64Emitted host code
How instructions get translated. Guest memory and runtime calls have to cross the same boundary.
A small language frontend I’m writing to learn compilers properly. It has a lexer, a parser, a syntax tree, and spans for error messages. So far it parses functions, return statements, integer arithmetic, and i32/i64. No code generation yet.