Skip to content

Expand ZASM support, native builds, samples, and release automation - #18

Merged
DamianSuess merged 40 commits into
masterfrom
develop
Nov 8, 2026
Merged

DamianSuess merged 40 commits into
masterfrom
develop

Conversation

@DamianSuess

Copy link
Copy Markdown
Collaborator

Makes generated Windows executables runnable, expands ZASM syntax and x86
instruction support, and adds native compiler publishing and automated releases.

Compiler and CLI

  • Fix PE headers and import addresses so generated executables run correctly.
  • Add named db declarations, quoted strings, and symbol address resolution.
  • Support imported calls such as call [MessageBoxA], preserving legacy aliases.
  • Add x86 memory loads and callback returns for Win32 applications.
  • Add run to compile and execute a source file, returning its exit code.
  • Prevent execution after failed compilation.

Builds and releases

  • Publish Native AOT versions of both zero.exe and zcc.exe, including samples.
  • Share version metadata across projects with CI/CD overrides.
  • Automatically increment versions after merged pull requests.
  • Create tags and GitHub Releases with packaged Windows binaries on master merges.
  • Validate every ZASM sample during builds and through automatic unit-test discovery.

Samples and organization

  • Add console, arithmetic, string concatenation, named-data, MessageBox,
    and Win32 controls examples.
  • Add tutorials, build instructions, and future architecture design notes.
  • Organize PE code, x86 definitions, parsing helpers, and diagnostics.

Validation

  • All 71 tests pass.
  • All nine samples compile.
  • Verified native compiler execution and legacy import compatibility.
  • Visually verified the Win32 window and button behavior.

DamianSuess and others added 30 commits November 6, 2026 23:24
…ded "hello-console.zasm" sample code.

Duplicate DOS header: It wrote the header twice, so Windows looked for the PE signature at the wrong location.
Missing header field: The omitted LoaderFlags field shifted the remaining PE header data by four bytes.
Incorrect import addresses: Addresses for Windows functions were calculated before the import sections had their final offsets.
Enhance register support and fix PE generation issues
Clean up documentation and artifacts
Implement zero language sample proof-of-concept and auto-versioning
Zero-Version-PR: develop#9
Move samples folder and add MessageBox and math examples
Zero-Version-PR: develop#10
* Added the ability to run the project after building it from command line: zcc run <code.zasm>

* Introducing zero.exe (as it was initially intended)
Restructure folder organization for Formats and Targets expansion
Enhance ZASM with data directives and string concatenation tutorial
Add script validator for builds and unit tests
…ample, `hello-win86-controls.zasm` with a Label, editable text box (Hello Zero!) and a button to show a message box.
github-actions Bot and others added 10 commits November 8, 2026 15:52
Zero-Version-PR: develop#14
Support x86 Win32 callbacks and add a controls sample
Zero-Version-PR: develop#15
…of "IAT_" or "__imp_" aliases anymore (Import Address Table). Updated samples to no longer use `IAT_` prefix.
Allow imported function calls without the IAT_ prefix
Zero-Version-PR: develop#16
Zero-Version-PR: develop#17
@DamianSuess DamianSuess added this to the v0.0.3 milestone Nov 8, 2026
@DamianSuess DamianSuess self-assigned this Nov 8, 2026
@DamianSuess DamianSuess added the enhancement New feature or request label Nov 8, 2026
@DamianSuess
DamianSuess merged commit 049f576 into master Nov 8, 2026

This branch was previously deployed

1 inactive deployment
github-pages — 89e6f829 Deployed Nov 8, 2026 by DamianSuess via deploy #1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

enhancement New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant