frostney / frostney/GocciaScript

Write the C-ABI embedding guide and examples

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

Nobody has claimed this yet.

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

Description

Summary

Document embedding through the versioned libgoccia dynamic library and stable C ABI, with a worked example for every validated host language.

Why

docs/embedding.md covers FreePascal-native embedding only. Foreign hosts need installation, runtime-discovery, ownership, and compatibility guidance specific to a dynamic library.

Expected behavior

  • Document platform artifact names and runtime search/install configuration for .dylib, .so, and .dll.
  • Publish the C API reference: ABI versioning, lifecycle, value handles, ref/unref, error handling, thread affinity, and execution limits.
  • Include a worked C, Rust, Zig, Crystal, Nim, and C# example sourced from #866.
  • Explain library/header compatibility and upgrade rules.
  • Document redistribution and release-artifact verification.

Scope notes

  • Depends on #864, #865, and #866.
  • Parent #823.
  • Do not describe static linking as a supported embedding route.

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 docs/embedding.md and the outputs from #864, #865, and #866, since this guide depends on them. Cover the versioned libgoccia artifacts, stable C ABI, runtime and ownership rules, compatibility, redistribution, and verification. Done means the guide includes validated C, Rust, Zig, Crystal, Nim, and C# examples without presenting static linking as supported.

Written by the indexing model from the issue text.

Assessment

Tech stack
c, crystal, csharp, nim, rust, zig
Domain
documentation
Issue type
Documentation
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.