frostney / frostney/GocciaScript

Build the libgoccia dynamic library and generated C header

Open
#865 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 a Pascal dynamic-library target named libgoccia that exports the C ABI from #864, together with a generated goccia.h.

Why

The build currently produces executables only. Foreign hosts need a loadable, versioned library artifact and a header that stays synchronized with its exported symbols.

Current behavior

There is no Pascal library target, exported symbol set, generated C header, ABI version metadata, or release artifact for embedding.

Expected behavior

  • Add a Pascal library entry point exporting the #864 functions with the agreed calling convention.
  • Produce libgoccia.dylib, libgoccia.so, and libgoccia.dll on supported platforms.
  • Generate goccia.h from the canonical ABI definition and verify that header declarations match exports.
  • Define ABI-major artifact/version conventions, symbol visibility, and runtime lookup/install-name behavior.
  • Include the dynamic library and header in release packaging with checksums.
  • Validate clean load/unload and repeated engine lifecycle before cross-language tests.

Scope notes

  • Depends on #864 and is validated by #866.
  • Cross-compilation enabling work is tracked by #238.
  • Parent #823.
  • Do not emit or document a static-library deliverable.

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 canonical ABI definition from #864 and inspect the repository's build and release configuration. Define the Pascal library target, generated goccia.h, artifact/version and symbol conventions, then validate loading and lifecycle behavior before the cross-language checks in #866; done includes platform libraries, header synchronization, release packaging, and checksums.

Written by the indexing model from the issue text.

Assessment

Domain
api, build-system, release
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.