[PR #1238] Introduce C library for Pkl #960

Open
opened 2025-12-30 01:27:58 +01:00 by adam · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/apple/pkl/pull/1238
Author: @bioball
Created: 10/15/2025
Status: 🔄 Open

Base: mainHead: c-library


📝 Commits (1)

  • 46db74a Introduce C library for Pkl

📊 Changes

64 files changed (+3526 additions, -333 deletions)

View changed files

📝 .circleci/config.pkl (+5 -2)
📝 .circleci/config.yml (+874 -56)
📝 .circleci/jobs/BuildNativeJob.pkl (+13 -1)
📝 .idea/inspectionProfiles/Project_Default.xml (+4 -1)
📝 bench/gradle.lockfile (+0 -1)
📝 buildSrc/src/main/kotlin/BuildInfo.kt (+26 -16)
buildSrc/src/main/kotlin/CArchive.kt (+89 -0)
buildSrc/src/main/kotlin/CCompile.kt (+407 -0)
📝 buildSrc/src/main/kotlin/NativeImageBuild.kt (+74 -16)
buildSrc/src/main/kotlin/Target.kt (+93 -0)
📝 buildSrc/src/main/kotlin/pklNativeExecutable.gradle.kts (+68 -136)
📝 buildSrc/src/main/kotlin/pklNativeLifecycle.gradle.kts (+19 -50)
buildSrc/src/main/resources/license-header.batch-script.txt (+15 -0)
buildSrc/src/main/resources/license-header.hash-comment.txt (+15 -0)
📝 buildSrc/src/main/resources/license-header.line-comment.txt (+0 -1)
📝 docs/gradle.lockfile (+0 -1)
📝 gradle/libs.versions.toml (+7 -0)
libpkl/gradle.lockfile (+87 -0)
libpkl/libpkl.gradle.kts (+389 -0)
libpkl/scripts/README.adoc (+7 -0)

...and 44 more files

📄 Description

This introduces native C bindings for Pkl.

This uses native-image to generate a C library for Pkl. This generated library from native-image is wrapped with our own library, in pkl.h.

This produces a static and a dynamic library for each os/arch variant that Pkl currently supports.

Supersedes #1136


🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/apple/pkl/pull/1238 **Author:** [@bioball](https://github.com/bioball) **Created:** 10/15/2025 **Status:** 🔄 Open **Base:** `main` ← **Head:** `c-library` --- ### 📝 Commits (1) - [`46db74a`](https://github.com/apple/pkl/commit/46db74a14199265378641c89bb03521081ed7505) Introduce C library for Pkl ### 📊 Changes **64 files changed** (+3526 additions, -333 deletions) <details> <summary>View changed files</summary> 📝 `.circleci/config.pkl` (+5 -2) 📝 `.circleci/config.yml` (+874 -56) 📝 `.circleci/jobs/BuildNativeJob.pkl` (+13 -1) 📝 `.idea/inspectionProfiles/Project_Default.xml` (+4 -1) 📝 `bench/gradle.lockfile` (+0 -1) 📝 `buildSrc/src/main/kotlin/BuildInfo.kt` (+26 -16) ➕ `buildSrc/src/main/kotlin/CArchive.kt` (+89 -0) ➕ `buildSrc/src/main/kotlin/CCompile.kt` (+407 -0) 📝 `buildSrc/src/main/kotlin/NativeImageBuild.kt` (+74 -16) ➕ `buildSrc/src/main/kotlin/Target.kt` (+93 -0) 📝 `buildSrc/src/main/kotlin/pklNativeExecutable.gradle.kts` (+68 -136) 📝 `buildSrc/src/main/kotlin/pklNativeLifecycle.gradle.kts` (+19 -50) ➕ `buildSrc/src/main/resources/license-header.batch-script.txt` (+15 -0) ➕ `buildSrc/src/main/resources/license-header.hash-comment.txt` (+15 -0) 📝 `buildSrc/src/main/resources/license-header.line-comment.txt` (+0 -1) 📝 `docs/gradle.lockfile` (+0 -1) 📝 `gradle/libs.versions.toml` (+7 -0) ➕ `libpkl/gradle.lockfile` (+87 -0) ➕ `libpkl/libpkl.gradle.kts` (+389 -0) ➕ `libpkl/scripts/README.adoc` (+7 -0) _...and 44 more files_ </details> ### 📄 Description This introduces native C bindings for Pkl. This uses native-image to generate a C library for Pkl. This generated library from native-image is wrapped with our own library, in `pkl.h`. This produces a static and a dynamic library for each os/arch variant that Pkl currently supports. Supersedes #1136 --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
adam added the pull-request label 2025-12-30 01:27:58 +01:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/pkl#960