1
0
Fork 0
a Funge-98 interpreter written in zig
Find a file
2024-11-22 09:28:09 +01:00
lib zig 0.12 and 0.13 changes 2024-11-22 09:28:09 +01:00
mycology@2e405a62a3 Bumped the mycology test suite to the last version 2024-01-28 23:18:38 +01:00
spec@7b4330df1a Added submodules for the spec and the mycology test suite 2022-05-10 23:18:22 +02:00
src zig 0.12 and 0.13 changes 2024-11-22 09:28:09 +01:00
tests Automated the mycology test suite 2022-08-24 22:07:06 +02:00
.gitignore Added code coverage to tests with zig build test -Dtest-coverage 2022-02-20 23:06:19 +01:00
.gitmodules Began writing a debugging tui 2022-12-03 15:07:57 +01:00
build.zig zig 0.12 and 0.13 changes 2024-11-22 09:28:09 +01:00
LICENSE initial import 2022-02-17 02:30:37 +01:00
README.md zig 0.12 and 0.13 changes 2024-11-22 09:28:09 +01:00

ZigFunge98 : a Funge-98 interpreter written in zig

This repository contains code for a zig program that can interpret a valid Funge-98 program. It passes the mycology test suite.

Current limitations are :

  • currently does not implement any fingerprints
  • does not implement concurrent execution with the t command
  • does not implement file I/O with the i and o commands
  • does not implement system execution with the = command

Contents

Dependencies

zig is required. Only zig version 0.13 on linux amd64 (Gentoo) is being regularly tested.

Quick Install

To get, compile then install zigfunge98, do something like:

git clone https://git.adyxax.org/adyxax/zigfunge98
cd zigfunge98
zig build -Drelease-safe
install ./zig-out/bin/zigfunge98 ~/.local/bin/

Usage

Launching zigfunge98 is as simple as :

zigfunge98 something.b98

The interpreter will load and execute the specified Funge-98 program until the program normally terminates or is interrupted or killed.

Building

To run tests, use :

zig build test

To test the coverage, use:

zig build test -Dtest-coverage
firefox kcov-output/index.html

To build a debug build, simply use:

zig build

For a non debug build, use either one of:

zig build -Doptimize=ReleaseSafe
zig build -Doptimize=ReleaseSmall
zig build -Doptimize=ReleaseFast