@@ 0,0 1,85 @@
+# Projects
+
+## [asciilasers](https://git.sr.ht/~prokop/alc) (2023)
+
+C++20, Meson, FTXUI, Catch2, clang-tidy, libFuzzer
+
+Esoteric visual programming language. Includes a [language
+specification](https://git.sr.ht/~prokop/asciiLasers-spec), [implementation and
+debugger](https://git.sr.ht/~prokop/alc).
+
+
+
+## [Whisper](https://git.sr.ht/~prokop/whisper) (2022)
+
+C, Meson, Bison, Flex, SPIR-V
+
+I believe there is no way of linking compile time GLSL code with runtime
+generated SPIR-V[^glsl]. Therefore I created the Whisper language and whc
+compiler to provide similar (but lower level) experience to GLSL with this
+additional feature. The compiler implements lexing, tokenizing, semantic
+analysis of the AST, error reporting and code gen of unoptimized SPIRV.
+
+ 
+
+## [FactorioFotograf](https://git.sr.ht/~prokop/FactorioFotograf) (2021)
+
+C, Lua, Make, CI
+
+Small and fast generator of web-viewable maps of Factorio saves. Unfortunately
+Linux-only because of dependent libraries (libucw).
+
+## [Pebble](https://git.sr.ht/~prokop/lua-pebble) (2023)
+
+Tiny Lua package manager that injects itself into `require` and fetches/updates
+dependencies on demand as they are `require`d. (Currently Linux-only but would
+be trivial to port)
+
+## [lua-fp](https://git.sr.ht/~prokop/lua-fp) (2022)
+
+Small library with functional style of lazy iterators over Lua constructs.
+
+# Yet Unfinished Experiments
+
+## [Lebka](https://git.sr.ht/~prokop/lebka) (2023)
+
+Rust, Lua
+
+I think that Lua would make a great replacement of the entire HTML/CSS/JS stack.
+Currently thinking about the best way to declare website layout in code.
+
+## [lb](https://git.sr.ht/~prokop/lb) (2023)
+
+Lua, C
+
+There is no good general purpose build system. I think Lua would be a great fit.
+
+## [lua-spreadsheet](https://git.sr.ht/~prokop/lua-spreadsheet) (2022)
+
+Lua, SDL2
+
+Minimalistic spreadsheet application with lua scripting.
+
+## [beltwiz](https://git.sr.ht/~prokop/beltwiz) (2023)
+
+Lua, Factorio
+
+Autonomus hive mind that can play Factorio instead of me.
+
+## [uzenatch](https://git.sr.ht/~prokop/uzenatch) (2022)
+
+Zig
+
+Toy chess engine.
+
+# Open source contributions
+
+- [Stockfish](https://github.com/official-stockfish/Stockfish/pull/3461)
+- [SPIV-Headers](https://github.com/KhronosGroup/SPIRV-Headers/pull/261)
+- [FTXUI](https://github.com/ArthurSonzogni/FTXUI/pull/660)
+- [qoi](https://github.com/phoboslab/qoi/pull/256)
+- [umka-lang](https://github.com/vtereshkov/umka-lang/pull/209)
+- [umka-lang 2](https://github.com/vtereshkov/umka-lang/pull/126)
+- [tup](https://github.com/gittup/tup/pull/477)
+
+[^glsl]: The problem is that the [main glsl implementation](https://github.com/KhronosGroup/glslang) [does not allow function declarations without definitions](https://github.com/KhronosGroup/glslang/blob/main/glslang/MachineIndependent/linkValidate.cpp#L1484) and because of that you can't call code that does not exists at the time of compiling the GLSL code.