Skip to content

Build complete GocciaScript raylib 0.1 bindings and examples - #7

Merged
frostney merged 2 commits into
mainfrom
codex/build-raylib-0.1
Jul 23, 2026
Merged

frostney merged 2 commits into
mainfrom
codex/build-raylib-0.1

Conversation

@frostney

Copy link
Copy Markdown
Owner

Summary

Build the first complete GocciaScript raylib package against GocciaScript 0.10.0
and raylib 6.0, using raylib exclusively as a dynamic library.

  • pin and normalize the official raylib 6.0 API description
  • generate deterministic TypeScript bindings and declarations
  • validate all 35 native struct layouts and representative FFI calls against
    raylib itself
  • add GocciaScript unit tests, deterministic generation checks, package checks,
    and macOS/Linux CI
  • add typed window, input, embedded-image, Bunnymark, raycasting, and GPL DOOM
    examples with FPS overlays
  • document the measured Bunnymark loop comparison and stable-runtime
    compatibility boundary

Why

The repository previously contained only a placeholder README. This establishes
a reproducible, reviewable bindings package whose generated surface, unsupported
functions, ABI assumptions, platform loading, examples, and release artifact are
all checked from pinned source.

The DOOM example is the meme-accurate implementation: WAD handling, game logic,
AI, BSP traversal, and the 320x200 software renderer execute in GocciaScript
bytecode. Dynamic raylib handles only platform input, windowing, and framebuffer
presentation.

Licensing and packaging

The published npm package remains MIT. examples/doom-gpl/ is a separately
licensed GPL-2.0-only subproject derived from an exact pinned pure-JavaScript
LinuxDoom port. Its source cache, WAD data, and generated engine modules are
ignored, and the entire GPL directory is excluded from the npm tarball. No
proprietary IWAD is included.

Validation

  • GocciaScript interpreter unit suite: 8/8 tests, 66 assertions
  • GocciaScript bytecode unit suite: 8/8 tests, 66 assertions
  • deterministic generated-output check
  • TypeScript declaration check
  • native ABI oracle: all 35 structs
  • representative dynamic-raylib FFI integration
  • package check: exact 20-file MIT tarball
  • macOS example and Goccia-executed DOOM rendering smoke
  • Linux/amd64 Docker build and full smoke suite, including DOOM under llvmpipe
  • staged diff and license/source provenance checks

Closes #1
Closes #2
Closes #3
Closes #4
Closes #5
Closes #6

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant