You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
This repo is archived. You can view files and clone it, but cannot push or open issues/pull-requests.
 
 
 
 
Go to file
alex 6a93ba9a30
zig: switch from stage1 to the new stage2 compiler
stage2 has been merged and set as default around end of aug 2022 in
https://github.com/ziglang/zig/pull/12368. since then the main focus has
been on this new stage2 compiler.

with the release of 0.10.1 the stage2 is fairly useable now and it is
the way forward, towards zig 0.11 or 1.0. read more about difference in
https://github.com/ziglang/zig/wiki/Self-Hosted-Compiler-Upgrade-Guide

another good read on the relevant topic is
https://ziglang.org/news/goodbye-cpp/
2 years ago
doc start: initial minimal implementation 2 years ago
lib src,lib: zig fmt and clang-format all code 2 years ago
src zig: switch from stage1 to the new stage2 compiler 2 years ago
tools src,lib: zig fmt and clang-format all code 2 years ago
.clang-format src,lib: zig fmt and clang-format all code 2 years ago
.git-blame-ignore-revs docs: a quick local dev setup and contributing sections 2 years ago
.gitignore repo: initial blank import of zig init-exe 2 years ago
LICENSE license: add qeles AG to copyright holders 2 years ago
README.md docs: a quick local dev setup and contributing sections 2 years ago
build.zig zig: switch from stage1 to the new stage2 compiler 2 years ago

README.md

nakamochi daemon and gui (ndg)

build for rpi:

zig build -Dtarget=aarch64-linux-musl -Ddriver=fbev -Drelease-safe -Dstrip

otherwise just zig build on dev host

local development

you'll need zig v0.10.x. if working on the gui, also SDL2.

note that compiling the daemon on macOS is currently unsupported since it requires some linux primitives.

compiling is expected to be as easy as

# only gui
zig build ngui
# only daemon
zig build nd
# everything at once
zig build

the output is placed in ./zig-out/bin directory. for example, to run the gui, simply execute ./zig-out/bin/ngui.

run all tests with

zig build test

or a filtered subset using test-filter:

zig build test -Dtest-filter=xxx

significant contributors may find adding .git-blame-ignore-revs file to their git config useful, to skip very likely irrelevant commits when browsing git blame:

git config blame.ignoreRevsFile .git-blame-ignore-revs

see also the contributing section.

contributing

to contribute, create a pull request or send a patch with git send-mail to alex-dot-cloudware.io.

before sending a change, please make sure tests pass:

zig build test

and all code is formatted: zig code with zig fmt and C according to the style described by .clang-format file. if clang-format tool is installed, all formatting can be checked with:

./tools/fmt-check.sh

note that only C files in src/ are formatted. leave third party libraries as is - it is easier to update and upgrade when the original style is preserved, even if it doesn't match this project.