This repository was archived by the owner on Oct 21, 2026. It is now read-only.
Repository navigation
Myrissa v0.1.0 #2
jarroddavis68
announced in
Announcements
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Myrissa™ - Pascal Elegance. C Interop. Native Binaries. Zero Dependencies.
Myrissa™ is a systems programming language that compiles straight to native Win64 and Linux64 binaries from a single Windows host. The lexer, parser, semantic analyzer, SSA optimizer, x86_64 encoder, PE/ELF writers, linker and runtime are all Delphi code in one repository. No LLVM. No Clang. No assembler, no
link.exe, nold, no C runtime to ship. Pointmyrat a.myrfile and it produces an executable.This is the first public release.
Highlights
begin..endblocks,:=assignment, strong static typing, a module system. Keywords are case-insensitive; identifiers are case-sensitive.int8touint64,float32,float64,char,wchar,boolean,pointer, and managedstring(UTF-8) andwstring(UTF-16).packed,align(n), overlays (unions), anonymous overlays for tagged unions, bit fields, named record literals.constandvarparameters, first-class routine types, overloading viacpplink, forward declarations, variadics withvarargs.external; produce C-callable DLLs and static libraries withpublic routine clink. Naming a library in anexternalclause is what links it.exe,dll,lib,unit. Private by default,publicto export, always qualified on import,initializeandfinalizeon every kind.guard/except/finallywiththrowandthrowcode. Catches software throws and hardware faults on both targets and propagates across routine, module and static-library boundaries.@define,@ifdef,@ifndef,@elseif,@else,@endifwithMYRISSA,TARGET_WIN64,TARGET_LINUX64,DEBUG,RELEASE,BUILD_EXE,BUILD_DLL,BUILD_LIB.myr cimport <script.mys>reads C headers and writes a completeunitmodule with per-target DLL names. One binding serves both targets. Bindings for raylib, SDL3, SDL3_image, SDL3_mixer, SDL3_net, SDL3_rtf, SDL3_sound and SDL3_ttf ship with the release.test "name" begin ... end;blocks withassert,asserteq,asserteqf,assertnil,assertnotnil,assertfailand more.The pipeline
Every stage is Delphi code. No temporary files, no child processes. Lexer, recursive-descent/Pratt parser, semantic analysis, emitter, SSA optimizer (constant propagation and folding, copy propagation, CSE, DCE), x86_64 codegen with linear-scan register allocation and direct byte encoding for both the Win64 and System V ABIs, PE writer with
.pdataunwind info, ELF writer, COFF and ELF archive writers, and a linker that reads foreign MSVC and MinGW archives and chases/DEFAULTLIBinto SDK import libraries.Optimization levels:
none(default, writes a.mdbgdebug sidecar),basic,full. Every level must produce correct output on both targets; the compliance gate enforces it.Tooling
myr-- the command-line compiler.-rbuild-and-run (Linux binaries run via WSL),-ddebug,-t win64|linux64,-opt none|basic|full,-sub console|gui,-ooutput dir,-hhelp.myr cimport-- generate a binding unit from a C header via a.mysscript.myrlsp-- language server: diagnostics, completions, hover, go-to-definition, document symbols..mdbgsidecar. Breakpoints via@breakpoint;, stepping, variables, call stacks. Launch withmyr myapp -d. Currently targetswin64.myrtester-- runs every compliance suite across both targets at all three optimization levels.Quick start
Compiles
hello.myrto a native executable and runs it. Add-t linux64for an ELF binary from the same source.Release contents (
Myrissa-0.1.0-x86_64-windows.zip)bin/myr.exebin/myrlsp.exebin/myrtester.exebin/res/libs/std/bin/res/libs/system/bin/res/libs/vendor/bin/res/cimport/.mysscripts for the shipped bindingsbin/res/demos/bin/res/tests/.myrsources)bin/res/assets/docs/Myrissa.mddocs/Myrissa.pdfmedia/README.mdLICENSEDocumentation: See
docs/Myrissa.md(ordocs/Myrissa.pdf) for the complete language reference. Online at myrissa.org.Requirements: Windows 10/11 x64.
linux64binaries build on the same host; running them via-rrequires WSL2. Building the compiler from source requires Delphi 12 Athens.File Integrity
Release files are signed with minisign to verify their authenticity and integrity.
Public key:
RWSLGfwSOWByrazkUwTzwlJ3rozKvaSnr3KT2aS/hSPDSLzUTPgj/m2XTo verify a downloaded file:
A successful verification confirms that the file was signed by the project and has not been modified since it was signed.
This discussion was created from the release Myrissa v0.1.0.
All reactions