https://github.com/cbilz/gnu-m4-zig
GNU M4 packaged for Zig
https://github.com/cbilz/gnu-m4-zig
gnu gnu-m4 m4 zig zig-package
Last synced: about 1 year ago
JSON representation
GNU M4 packaged for Zig
- Host: GitHub
- URL: https://github.com/cbilz/gnu-m4-zig
- Owner: cbilz
- License: mit
- Created: 2025-02-01T18:59:18.000Z (over 1 year ago)
- Default Branch: main
- Last Pushed: 2025-02-26T12:10:30.000Z (over 1 year ago)
- Last Synced: 2025-02-26T13:24:12.726Z (over 1 year ago)
- Topics: gnu, gnu-m4, m4, zig, zig-package
- Language: Zig
- Homepage:
- Size: 146 KB
- Stars: 1
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# GNU M4 packaged for Zig
Work in progress.
## Goal
This project aims to provide a Zig package for GNU M4 that runs on Linux, macOS
and Windows without system dependencies. The longer-term goal is to extract a
reusable Zig library for compiling projects that rely on Autotools and Gnulib.
## Status
Compiles and appears to run correctly on my Linux system when built in
`ReleaseFast` or `ReleaseSmall` mode. However, with safety checks enabled, the
executable hits an illegal instruction immediately on startup, presumably due to
undefined behavior.
## Next steps
1. Fix the illegal instruction issue.
2. Port the test suite and integrate it as a build step.
3. Implement those configuration checks that do not depend on preprocessing,
compilation or execution of probing code. Exclude any unused or redundant
checks.
4. Implement a `LazyValue` system to allow other build steps to pass
configuration values to `ConfigHeader`.
5. Implement remaining configuration checks, again excluding unused or redundant
ones.
6. Extract a reusable configuration library for projects using Autotools or
Gnulib.
## Requirements
- Uses Zig 0.14.0-dev.3367+1cc388d52.
## Limitations
- Native language support is disabled.