~pixelherodev/zyg

Simpler Zig compiler
[driver] check fread
[parser] extern functions
[parser] legacy function syntax

refs

master
browse  log 

clone

read-only
https://git.sr.ht/~pixelherodev/zyg
read/write
git@git.sr.ht:~pixelherodev/zyg

You can also use your local clone with git send-email.

#Zyg

Zig Tricarbonate compiler.

#Status

Currently in alpha status. Unless you're interested in helping out, there's not much to see here right now.

The analysis pipeline rework was just completed (5/10/21). Currently working on integration with scas for assembly, and the zyg test driver, so that we can start getting upstream behavior tests passing.

#Goals

  • Simple compiler
    • No LLVM
    • Incremental compilation via object file cache
  • Fast
    • Optional multiprocessing, one process per input file
      • No shared address space, and no dependencies, so no data races
    • Fast to compile
      • Five seconds on Linux on the PineBook Pro
      • Two seconds on Plan 9 on the RPi 3 with two of the four cores disabled
  • Full conformance
    • No features not present in the zig language will be supported
    • Some features may be left unimplemented if they aren't desired - but those features which are supported will conform 100%
  • Possibly become the zig bootstrap compiler
  • Optimizing
    • Simple optimizations such as CSE and inlining
      • callconv(.Inline) is already supported, deciding to inline unmarked functions is not yet
    • Prioritize lightning-fast compilation over marginal runtime improvements