Skip to content

Convert SDK to fasm syntax for the new single-pass backend - #1

Merged
Prestgg1 merged 1 commit into
mainfrom
fasm-sdk
Oct 9, 2026
Merged

Prestgg1 merged 1 commit into
mainfrom
fasm-sdk

Conversation

@Prestgg1

@Prestgg1 Prestgg1 commented Oct 7, 2026 •

Copy link
Copy Markdown
Member

What

  • write.s / exit.s / fopen.s: drop GAS directives (.intel_syntax, .global, .text) — these are now plain fasm sources (fasm defaults to Intel syntax)
  • lib.az: @link now points at the fasm sources directly (./sdk/src/*.s) instead of prebuilt ./sdk/build/*.o objects
  • build.sh: removed — there is no separate assembly/build step anymore

Why

The AzLang compiler backend was rewritten to emit a single .asm file that fasm assembles and links in one pass (no more qbe/as/ld.lld, no object files). @link targets are included directly into the generated assembly, so the SDK must be fasm-syntax source, not pre-assembled GAS objects.

Companion PR: AzLangProgramingLanguage/AzLang#69 — merge this first, that PR's submodule pointer references 273f2b0.

Verified

  • azcli build examples/hello_world.az → 198-byte ELF, runs
  • Full integration program (modules, loops, recursion, strings): all assertions pass, 2113 bytes
  • Docs hello world example: 228-byte ELF, correct output

- write.s/exit.s/fopen.s: remove GAS directives (.intel_syntax/.global/.text),
  fasm defaults to Intel syntax; sources are now @link include targets
- lib.az: @link paths point at ./sdk/src/*.s fasm sources instead of
  prebuilt ./sdk/build/*.o objects
- build.sh: removed; there is no assembly/build step anymore — the compiler
  includes the sources directly into the generated .asm
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant