frostney / frostney/GocciaScript
Add embedding smoke tests (C, Rust, Zig, Crystal, Nim, C#)
Nobody has claimed this yet.
- 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
libgocciadynamic 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
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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