frostney / frostney/GocciaScript

Add embedding smoke tests (C, Rust, Zig, Crystal, Nim, C#)

Open
#866 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

new feature
Dominant language
Pascal
Stars
20
Forks
3
Avg merge
3d 4h
Merged PRs (30d)
45

Description

Summary

Add real foreign-host smoke tests that load libgoccia and exercise the stable C ABI from C, Rust, Zig, Crystal, Nim, and C#.

Why

The ABI and dynamic-library packaging are only proven when real host toolchains can locate the artifact, resolve symbols, exchange values, and release all owned handles.

Current behavior

No non-Pascal embedding boundary or cross-language embedding test exists.

Expected behavior

  • One minimal program per language loads or links against the platform libgoccia dynamic library.
  • Each program creates and frees an engine, evaluates source, reads a value, calls a function, and handles a thrown error through the structured error channel.
  • Tests cover UTF-8 ownership, value ref/unref, missing or incompatible ABI versions, symbol lookup, and repeated library/engine lifecycle.
  • CI exercises every language whose supported toolchain is available on the runner.
  • Packaged-artifact tests verify runtime library discovery rather than accidentally using an in-tree build output.

Scope notes

  • Depends on #865.
  • The smoke programs become the examples used by #867.
  • Parent #823.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with the stable C ABI and dependency #865, then run the available host toolchains against the packaged libgoccia dynamic library. Done means each language exercises engine and value lifecycles, function calls, structured errors, ABI and symbol checks, and runtime library discovery in CI.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, crystal, csharp, nim, rust, zig
Domain
api, build-system, ci-cd, testing-qa
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.