Skip to content

Conversation

@jneem
Copy link
Member

@jneem jneem commented Nov 12, 2025

This adds precompiled C libraries to the release artifacts. I've tested here that the resulting static libraries pass the go bindings' tests.

@github-actions
Copy link
Contributor

github-actions bot commented Nov 12, 2025

🐰 Bencher Report

Branchpublish-libraries
Testbedubuntu-latest
Click to view all benchmark results
BenchmarkLatencymicroseconds (µs)
diagnostics-benches/inputs/goto-perf.ncl📈 view plot
🚷 view threshold
10,167.00 µs
diagnostics-benches/inputs/large-record-tree.ncl📈 view plot
🚷 view threshold
189,710.00 µs
diagnostics-benches/inputs/redis-replication-controller.ncl📈 view plot
🚷 view threshold
304.37 µs
diagnostics-benches/inputs/small-record-tree.ncl📈 view plot
🚷 view threshold
433.57 µs
fibonacci 10📈 view plot
🚷 view threshold
234.36 µs
foldl arrays 50📈 view plot
🚷 view threshold
480.28 µs
foldl arrays 500📈 view plot
🚷 view threshold
2,989.20 µs
foldr strings 50📈 view plot
🚷 view threshold
3,645.30 µs
foldr strings 500📈 view plot
🚷 view threshold
34,721.00 µs
generate normal 250📈 view plot
🚷 view threshold
18,335.00 µs
generate normal 50📈 view plot
🚷 view threshold
1,099.20 µs
generate normal unchecked 1000📈 view plot
🚷 view threshold
2,120.30 µs
generate normal unchecked 200📈 view plot
🚷 view threshold
415.63 µs
init-diagnostics-benches/inputs/goto-perf.ncl📈 view plot
🚷 view threshold
53,611.00 µs
init-diagnostics-benches/inputs/large-record-tree.ncl📈 view plot
🚷 view threshold
210,530.00 µs
init-diagnostics-benches/inputs/redis-replication-controller.ncl📈 view plot
🚷 view threshold
48,081.00 µs
init-diagnostics-benches/inputs/small-record-tree.ncl📈 view plot
🚷 view threshold
47,744.00 µs
pidigits 100📈 view plot
🚷 view threshold
1,946.70 µs
pipe normal 20📈 view plot
🚷 view threshold
699.84 µs
pipe normal 200📈 view plot
🚷 view threshold
4,796.20 µs
product 30📈 view plot
🚷 view threshold
350.08 µs
requests-benches/inputs/goto-perf.ncl-000📈 view plot
🚷 view threshold
3,019.00 µs
requests-benches/inputs/large-record-tree.ncl-000📈 view plot
🚷 view threshold
587,780.00 µs
requests-benches/inputs/large-record-tree.ncl-001📈 view plot
🚷 view threshold
88.73 µs
scalar 10📈 view plot
🚷 view threshold
621.18 µs
sum 30📈 view plot
🚷 view threshold
351.73 µs
🐰 View full continuous benchmarking report in Bencher

@jneem jneem force-pushed the publish-libraries branch 7 times, most recently from 015a233 to 43f4ed9 Compare November 13, 2025 03:51
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR adds precompiled C libraries (static and dynamic) to the release artifacts across all supported platforms (Linux x86_64/arm64, macOS arm64, and Windows x86_64). The changes enable downstream projects, particularly the go bindings, to use these precompiled libraries.

  • Builds and publishes C library artifacts (.a static libraries and .so/.dylib/.dll dynamic libraries) for Linux, macOS, and Windows
  • Includes the nickel_lang.h header file in Linux artifacts
  • Configures Windows builds to use MinGW toolchain for cgo compatibility

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

bash ./scripts/shrink_archive.sh -o libnickel_lang-x86_64-windows-mingw.a \
./target/x86_64-pc-windows-gnu/release/libnickel_lang.a
cp ./target/x86_64-pc-windows-gnu/release/nickel_lang.dll libnickel_lang-x86_64-windows-mingw.dll
- name: "Upload binaries as release assets"
Copy link

Copilot AI Nov 20, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

[nitpick] The step name should be updated to "Upload binaries/libraries as release assets" to match the updated names in the Linux (line 51) and macOS (line 121) jobs, since this step now uploads both binaries and libraries.

Suggested change
- name: "Upload binaries as release assets"
- name: "Upload binaries/libraries as release assets"

Copilot uses AI. Check for mistakes.
@jneem jneem added this pull request to the merge queue Nov 20, 2025
Merged via the queue into master with commit ff0c532 Nov 20, 2025
5 checks passed
@jneem jneem deleted the publish-libraries branch November 20, 2025 18:15
@jneem jneem mentioned this pull request Nov 20, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants