feat(pkg): phase 15 - a package can carry a native library
native "<target>" "<path>" in a package's package.ludic; the compiler records the libraries of every package a program imports and writes them into the IR (; ludic-native:), so ludicc -o, ludic build, ludic test and ludic bundle all link one list. macOS: an rpath to the package and to Contents/Frameworks, where ludic bundle copies and signs each library and drops the build machine's rpath. Windows: the import library, the .dll copied beside the exe (--natives-out for the bundle). tools/native/lib.sh builds from a pinned, checksummed source with clang on both machines; ludic.nativeecho is the worked example; the shim rules are in packages/README.md. Linked at build time rather than dlopen (docs/PACKAGES.md says why). Reseeded. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
5df0747642
commit
5d3a799e33
25 changed files with 54474 additions and 51707 deletions
|
|
@ -439,7 +439,7 @@ function emit_cov_runtime() -> void {
|
|||
# drivers read); with a path it is written to that file so ludicc can hand it to
|
||||
# clang itself.
|
||||
function ir_flush(path: pointer) -> bool {
|
||||
let h = buf_str(head)
|
||||
let h = native_ir_lines() + buf_str(head)
|
||||
let c = buf_str(code)
|
||||
if (path == null) { # raw IR to stdout (no trailing newline)
|
||||
let out = file_stdout()
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue