Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
183 commits
Select commit Hold shift + click to select a range
9cd1942
perf(native): keep x86-64 decode loops off per-sample libm calls
jcwal1516 Nov 2, 2026
788bb41
refactor(native): simplify the x86-64 dispatch changes
jcwal1516 Nov 2, 2026
987abb0
perf(native): libm-free rounding and one output path on every target
jcwal1516 Nov 2, 2026
9a64e88
ci(xtask): audit baseline x86-64 j2k-native codegen
jcwal1516 Nov 2, 2026
3e3faad
perf(native): keep x86-64's hand-written output blocks and hardware r…
jcwal1516 Nov 2, 2026
2d38577
perf(native): keep the encoder's quantizer off per-sample libm calls
jcwal1516 Nov 2, 2026
5c0c7d3
fix(jpeg): apply the scalar IDCT's DC-only row shortcut on AVX2
jcwal1516 Nov 3, 2026
e80d8c4
perf(jpeg): 16-bit-lane AVX2 islow IDCT behind a proven range check
jcwal1516 Nov 3, 2026
814bee1
perf(jpeg): sparse-shape entry points for the AVX2 16-bit IDCT
jcwal1516 Nov 3, 2026
9fa45f1
perf(jpeg): 16-bit AVX2 YCbCr->RGB and fancy 4:2:0 upsampling
jcwal1516 Nov 3, 2026
039075f
test(jpeg): cover 32-pixel chunk boundaries in the colour row test
jcwal1516 Nov 3, 2026
d9f0315
refactor(jpeg): share IDCT constants, the h2v2 pair loop and test sca…
jcwal1516 Nov 3, 2026
beafccc
perf(jpeg): stream 4:2:0 decode through one stripe with a two-row halo
jcwal1516 Nov 3, 2026
62c9527
perf(jpeg): stream 4:4:4 YCbCr and identity-RGB decode, including reg…
jcwal1516 Nov 3, 2026
5ebb654
perf(jpeg): stream 4:2:2 decode, including regions
jcwal1516 Nov 3, 2026
078382d
perf(jpeg): one memchr restart-marker scanner and a cached restart index
jcwal1516 Nov 3, 2026
a8aba38
perf(jpeg): row and span entropy-checkpoint grid without a lock acros…
jcwal1516 Nov 3, 2026
4ed6fe8
perf(jpeg): device DCT windows seek from the nearest entropy checkpoint
jcwal1516 Nov 3, 2026
9b390c6
docs(changelog): drop entries swept into 8208c320 from uncommitted work
jcwal1516 Nov 3, 2026
500dc49
style(jpeg-cuda): derive CudaSession Default without the CUDA runtime
jcwal1516 Nov 3, 2026
e3eff3f
perf(native,j2k): dispatch and vectorize sample conversion to 16-bit …
jcwal1516 Nov 3, 2026
36f698e
refactor(jpeg): one shape rule, seek entry, column window and restart…
jcwal1516 Nov 3, 2026
011bcf1
style(codec-math): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
3abecf1
style(compare): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
2216a49
style(core): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
da236fb
style(cuda-jpeg-engine): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
35df690
style(cuda-runtime): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
31e8d7d
style(j2k-cuda): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
3a73839
style(jpeg-cuda): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
dcdc5b7
style(jpeg-metal): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
94857bb
style(jpeg): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
6f910d2
style(metal-support): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
7bd33fc
style(metal): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
ac08a10
style(ml): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
ea13476
style(native): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
1f69995
style(python): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
563c938
style(t803): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
bf08a25
style(test-support): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
979e442
style(tilecodec): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
7b7b488
style(transcode-metal): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
ea6f58b
style(transcode-test-support): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
a98a8bc
style(transcode): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
340cfda
style(xtask): fix pedantic and nursery clippy findings
jcwal1516 Nov 3, 2026
0a56736
style(metal,test-support): fix strict clippy findings in decoder rout…
jcwal1516 Nov 3, 2026
934a59d
ci(xtask): extend strict clippy to 32 workspace crates
jcwal1516 Nov 3, 2026
ce4aabd
test(jpeg): Huffman-only scan microbench
jcwal1516 Nov 3, 2026
6ae86ea
perf(jpeg): two-symbol AC Huffman lookups
jcwal1516 Nov 3, 2026
d9b403b
feat(j2k-native): reference-grid origins, row-sink stops and recoveri…
jcwal1516 Nov 5, 2026
683e23a
feat(j2k): reference-grid planning, route reports, bounded streaming …
jcwal1516 Nov 5, 2026
f20bd30
fix(j2k-metal,j2k-cuda): size device reductions and regions from the …
jcwal1516 Nov 5, 2026
9557462
fix(j2k-python): prepare CUDA and MPS batches with the backend-neutra…
jcwal1516 Nov 5, 2026
6f1c8f7
feat(j2k-c): C ABI, C++17 wrapper and relocatable libj2k packages
jcwal1516 Nov 5, 2026
75fbd63
docs: changelog, README, architecture and API records for the working…
jcwal1516 Nov 5, 2026
3bbe940
refactor(codec-math): own the JPEG islow IDCT and call it from the CP…
jcwal1516 Nov 5, 2026
62176b3
refactor(cuda-oxide): decode and transcode kernels call the shared is…
jcwal1516 Nov 5, 2026
4cefe2f
refactor(jpeg-metal): generate the Metal IDCT constants from Rust
jcwal1516 Nov 5, 2026
eb83b32
perf(j2k): convert 9- to 16-bit planes inside the native SIMD dispatch
jcwal1516 Nov 5, 2026
8d21513
refactor(jpeg): share the streaming deposit and driver paths across d…
jcwal1516 Nov 5, 2026
38c8158
refactor(jpeg): one Huffman table and allocation helper set
jcwal1516 Nov 5, 2026
9698a6d
style: drop lint expectations the strict lint policy no longer needs
jcwal1516 Nov 5, 2026
ed268eb
chore(api): refresh the API inventories for the integrated queue
jcwal1516 Nov 5, 2026
a939853
test(xtask): lower the panic-surface ceilings after the const-assert …
jcwal1516 Nov 5, 2026
fcf318f
refactor: simplify pass over codec-math, jpeg-metal and jpeg
jcwal1516 Nov 5, 2026
15bd837
fix(j2k-native): exact reductions, bounded regions and decode controls
jcwal1516 Nov 8, 2026
cac6be4
feat(j2k): exact region and reduction operations with controls and reuse
jcwal1516 Nov 8, 2026
5b1379c
refactor(jpeg): one frame writer, scan orchestration and transcode pr…
jcwal1516 Nov 8, 2026
21384bc
refactor(metal): share completion-slot lifetime between JPEG and J2K …
jcwal1516 Nov 8, 2026
f79ae05
feat(j2k-metal): exact operations, decode controls and session routing
jcwal1516 Nov 8, 2026
08a157b
feat(j2k-cuda): exact operations and exact-reduction planning
jcwal1516 Nov 8, 2026
0d51303
feat(j2k-c): exact operations, decode controls and row-layout probes
jcwal1516 Nov 8, 2026
52ab392
feat(j2k-python): exact operations and decode controls on CPU, MPS an…
jcwal1516 Nov 8, 2026
17411c2
fix(xtask): audit x86 codegen with baseline CPU flags only
jcwal1516 Nov 8, 2026
013ef77
docs: changelog, support matrix and API records for the integrated work
jcwal1516 Nov 8, 2026
299fd94
fix(j2k-native): encode HTJ2K subbands with zero magnitude bitplanes
jcwal1516 Nov 8, 2026
7d1722f
perf(j2k-metal): decode sampled classic RGB8 Tier-1 on the CPU pool
jcwal1516 Nov 8, 2026
a21e0a2
feat(j2k-jpeg): windowed quantized-only DCT extraction and lossless c…
jcwal1516 Nov 8, 2026
7aabf13
bench: fair decode comparison harness and latest reference pins
jcwal1516 Nov 2, 2026
d76c4cb
refactor(compare): simplify the fair decode harness
jcwal1516 Nov 2, 2026
d44b32c
fix(compare): pack every comparator's rows without per-sample overhead
jcwal1516 Nov 2, 2026
0bbe505
refactor(compare): type the parity status and read every option once
jcwal1516 Nov 2, 2026
7a5fe5e
docs(bench): report the fair decode rerun in benchmark-evidence
jcwal1516 Nov 3, 2026
31a1f16
test(j2k-metal): name the sampled characterization timings without a …
jcwal1516 Nov 8, 2026
e667bce
fix(j2k-native): refuse ROI shifts that overflow 32-bit coefficients
jcwal1516 Nov 8, 2026
cde7fdb
fix(j2k-jpeg): check device DCT window ends for overflow
jcwal1516 Nov 8, 2026
1f2724d
perf(j2k-metal): take the CPU Tier-1 route on single-group external d…
jcwal1516 Nov 8, 2026
c360b03
refactor(j2k): plain J2kDecoder decodes call their controlled forms
jcwal1516 Nov 8, 2026
2c1c6be
fix(j2k-native): validate common options before precomputed 9/7 block…
jcwal1516 Nov 8, 2026
6dd7b9a
fix(j2k): do not require device packetization for CPU-packetized loss…
jcwal1516 Nov 8, 2026
7e6b80d
test(j2k): split the parity corpus into fixture files and encoded var…
jcwal1516 Nov 8, 2026
613e333
fix(j2k-native): widen ROI subbands past 32-bit coefficients instead …
jcwal1516 Nov 8, 2026
d377cd6
test(j2k-cuda): RequireDevice lossy encodes accept CPU-packetized opt…
jcwal1516 Nov 8, 2026
197d61f
perf(metal): split classic Tier-1 between the GPU and the CPU pool
jcwal1516 Oct 23, 2026
9a47f78
perf(metal): run colour region decodes on the Metal Tier-1 route
jcwal1516 Oct 23, 2026
ed6cfce
test(metal): cover the split and Metal region route on cropped sub-bands
jcwal1516 Nov 9, 2026
6d50d18
fix(j2k-native): grow packet segments without realloc
jcwal1516 Oct 24, 2026
0277753
perf(encode): scan each preencoded HT block once for its maximum
jcwal1516 Oct 24, 2026
db5647e
perf(encode): guess the first byte-target scale and interpolate the s…
jcwal1516 Oct 23, 2026
44a7af0
perf(packet-encode): form large single-layer tiles' packets on the pool
jcwal1516 Oct 23, 2026
c5c0a51
feat(j2k): plan exact operations for bindings
jcwal1516 Nov 9, 2026
f5e24ef
refactor(j2k-c,j2k-python): plan exact operations through the facade
jcwal1516 Nov 9, 2026
fff594c
style(jpeg-bench): expect the reviewed Send impls of the libjpeg-turb…
jcwal1516 Nov 9, 2026
998b39b
chore(release): stage the workspace as 0.14.0
jcwal1516 Nov 9, 2026
747c041
feat(j2k): report the colour specification decoding applies
jcwal1516 Nov 9, 2026
5b84f8d
feat(j2k-c): complete the C ABI with parameterized encode, colour and…
jcwal1516 Nov 9, 2026
92b66f5
feat(j2k-python): general encode and applied colour in inspect
jcwal1516 Nov 9, 2026
43b742b
chore(api): API inventory, review and report for 0.14.0
jcwal1516 Nov 9, 2026
96730e9
test(gpu): report skipped GPU tests visibly and count them
jcwal1516 Nov 9, 2026
151edf2
fix(j2k-cuda): round irreversible output without MCT before the level…
jcwal1516 Nov 9, 2026
f007728
fix(j2k-cuda): round the separate-route ICT output like the CPU
jcwal1516 Nov 9, 2026
c0a9e03
refactor(j2k-metal): generate Tier-1 and HTJ2K tables from j2k-codec-…
jcwal1516 Nov 9, 2026
72dd7d4
refactor(j2k-metal): take the ICT coefficients from j2k-codec-math
jcwal1516 Nov 9, 2026
aa88255
refactor(j2k-cuda-j2k-engine): take decode ICT, RCT and MEL constants…
jcwal1516 Nov 9, 2026
81b3acb
fix(j2k-metal): write the measured HT magnitude bound in resident CAP…
jcwal1516 Nov 9, 2026
a967538
fix(j2k-metal): compile the J2K Metal libraries with safe math and no…
jcwal1516 Nov 9, 2026
777ca18
test(j2k-metal): pin wide 9/7 decode, 5/3 FDWT and quantizer steps to…
jcwal1516 Nov 9, 2026
1a12d98
test(gpu): require bit-exact irreversible 9/7 output and document it
jcwal1516 Nov 9, 2026
38c8cb9
fix(gpu): refuse to decode components wider than 16 bits on Metal and…
jcwal1516 Nov 9, 2026
f35ebc1
test(xtask): give each canonical codec literal one owner in repo-lint
jcwal1516 Nov 9, 2026
fb90974
fix(j2k-metal): split classic Tier-1 batches that exceed one Metal al…
jcwal1516 Nov 9, 2026
dc3d875
feat(codec-math): add the canonical binary32 9/7 transcode arithmetic
jcwal1516 Nov 9, 2026
a6d5691
feat(j2k-transcode): canonical binary32 9/7 path with CPU-only f64 op…
jcwal1516 Nov 9, 2026
f58a077
feat(j2k-transcode-metal): evaluate the canonical binary32 9/7 sequence
jcwal1516 Nov 9, 2026
9f82376
feat(j2k-transcode-cuda): evaluate the canonical binary32 9/7 sequence
jcwal1516 Nov 9, 2026
34e6f73
fix(j2k-cuda-j2k-engine): mask unsigned encode samples to their preci…
jcwal1516 Nov 9, 2026
6471d6c
fix(j2k-cuda-j2k-engine): round each forward 9/7 lifting step once, a…
jcwal1516 Nov 9, 2026
e997c79
refactor(j2k-cuda-j2k-engine): take forward MCT constants from j2k-co…
jcwal1516 Nov 9, 2026
e1b6229
test(j2k-cuda): byte parity of CUDA packet headers across precincts
jcwal1516 Nov 9, 2026
872b7e2
test(j2k-cuda-j2k-engine): reject contractible and approximate float …
jcwal1516 Nov 9, 2026
bf8547c
fix(j2k-cuda): decline whole-tile HT encodes whose tag trees exceed t…
jcwal1516 Nov 9, 2026
3810c78
bench(j2k-cuda): cover lossy, 2048 and 4096 squares and Gray batches …
jcwal1516 Nov 9, 2026
a440b96
perf(j2k-cuda): wait once per CUDA encode stage, not after every kernel
jcwal1516 Nov 9, 2026
0d2f63f
feat(j2k-codec-math): integer forward DCT and quantization for baseli…
jcwal1516 Nov 9, 2026
7dd9846
feat(j2k-jpeg): produce the canonical integer DCT coefficients in the…
jcwal1516 Nov 9, 2026
659423c
fix(j2k-jpeg-metal): compute the encode FDCT with the canonical integ…
jcwal1516 Nov 9, 2026
9473bda
fix(j2k-cuda-jpeg-engine): compute the encode FDCT with the canonical…
jcwal1516 Nov 9, 2026
5b589a8
test(jpeg): one cross-backend golden for the CPU, Metal and CUDA base…
jcwal1516 Nov 9, 2026
2279bb1
refactor(jpeg): give the encode RGB to YCbCr transform one owner in c…
jcwal1516 Nov 9, 2026
35f99f6
refactor(jpeg): take the GPU decoders' YCbCr to RGB constants from co…
jcwal1516 Nov 9, 2026
41e81be
fix(j2k-cuda-jpeg-engine): round CUDA 4:2:2 fancy upsampling like the…
jcwal1516 Nov 9, 2026
ae88035
fix(j2k-cuda-jpeg-engine): clamp dequantized coefficients to i16 as t…
jcwal1516 Nov 9, 2026
c3235d4
fix(jpeg): pad GPU encode frames by edge replication, as the CPU does
jcwal1516 Nov 9, 2026
586a218
test(jpeg): check the GPU entropy stages alone against the CPU encoder
jcwal1516 Nov 9, 2026
bd48bb1
test(jpeg): add the transcode matrix's synthetic inputs to the cross-…
jcwal1516 Nov 9, 2026
5c93777
fix(j2k-jpeg): chunk GPU baseline batches whose worst case exceeds th…
jcwal1516 Nov 9, 2026
7ed9979
perf(j2k-native): zero the coefficient buffer while the packets are p…
jcwal1516 Nov 9, 2026
cdedc7b
perf(j2k-native): run native-depth full decodes on the pool from thei…
jcwal1516 Nov 9, 2026
b1db342
test(j2k-native): strand the first band task whichever thread starts it
jcwal1516 Nov 9, 2026
fe5c268
docs(j2k): say which output a native region plan's two parts describe
jcwal1516 Nov 9, 2026
d3e64bf
fix(decode): keep signed samples of at most eight bits in 16-bit output
jcwal1516 Nov 9, 2026
30706b4
feat(jpeg): read reserved Adobe transforms as libjpeg-turbo does when…
jcwal1516 Nov 9, 2026
53f526c
feat(j2k): inspect main-header coding style and T.800 decode areas
jcwal1516 Nov 9, 2026
4774053
feat(j2k-python): report the geometry an IIIF info.json needs in inspect
jcwal1516 Nov 9, 2026
cea7420
feat(j2k-python): accept bytes-like encoded input in every decode ent…
jcwal1516 Nov 9, 2026
77c8fad
feat(j2k-python): read immutable encoded buffers in place
jcwal1516 Nov 9, 2026
3693fbc
feat(j2k-cli): decode with opj_decompress options and as opj_decompress
jcwal1516 Nov 9, 2026
042b5ca
docs(iiif): map IIIF Image API 3.0 and Cantaloupe onto j2k
jcwal1516 Nov 9, 2026
2858186
fix(j2k-metal): build operation plan cache keys only on macOS
jcwal1516 Nov 9, 2026
70266ae
test(j2k-transcode): repin the 9/7 matrix for the integer forward DCT
jcwal1516 Nov 9, 2026
ceb058e
test(xtask): drop the codec-literal copy allowlist now that every cop…
jcwal1516 Nov 9, 2026
23b76e9
docs(changelog): record the 0.14 parity, transcode, IIIF, decode and …
jcwal1516 Nov 9, 2026
537dfac
chore(api): API inventory, review and report for the 0.14 integration
jcwal1516 Nov 9, 2026
a62e485
test(xtask): own the JPEG YCbCr literals in codec-math's ycbcr module
jcwal1516 Nov 9, 2026
5672ba5
test(j2k-cuda-transcode-engine): split reference blocks with as_chunks
jcwal1516 Nov 9, 2026
0daf496
test(j2k-jpeg): convert the NEON energy-gate sum without a cast
jcwal1516 Nov 9, 2026
be0ec9f
perf(j2k-native): pull classic Tier-1 blocks in shrinking batches
jcwal1516 Nov 9, 2026
09c94ae
perf(j2k-native): fill non-RGB8 planes in specialized and pooled loops
jcwal1516 Nov 9, 2026
367a65f
perf(j2k-native): run CPU encodes on a Rayon pool worker
jcwal1516 Nov 9, 2026
876765c
perf(j2k-native): run declined-accelerator encodes on a pool worker
jcwal1516 Nov 10, 2026
08d9567
chore(release): date the 0.14.0 changelog
jcwal1516 Nov 10, 2026
bbd6e43
docs(changelog): summarize the 0.14.0 upgrade notes and highlights
jcwal1516 Nov 10, 2026
53871f5
docs(changelog): drop the measured-slower line from the 0.14.0 highli…
jcwal1516 Nov 10, 2026
07b5f50
style(compare): end the OpenHTJ2K and OpenJPH shims without a blank line
jcwal1516 Nov 10, 2026
4cfaa38
fix(j2k-native): reject JP2 palette columns deeper than 38 bits
jcwal1516 Nov 11, 2026
3ad186a
fix(jpeg): reject empty decode regions
jcwal1516 Nov 11, 2026
64b95ca
fix(j2k-metal): fail when a command buffer before the final one did n…
jcwal1516 Nov 11, 2026
80c48f7
fix(xtask): reject perf-guard thresholds that are not finite
jcwal1516 Nov 11, 2026
e4d2bc9
style(jpeg): backtick TurboJPEG in the libjpeg-turbo parity test
jcwal1516 Nov 11, 2026
16f927b
docs(j2k-native): replace the upstream testing and performance notes
jcwal1516 Nov 11, 2026
3401cda
chore(deps): drop the unused burn-autodiff workspace dependency
jcwal1516 Nov 11, 2026
7219321
docs(changelog): record the palette, empty-region and Metal fixes and…
jcwal1516 Nov 11, 2026
d6a5797
fix: exact deep lossless coding and one copy of each codec rule
jcwal1516 Nov 12, 2026
1d0179f
docs(changelog): date 0.14.0 for the tag day
jcwal1516 Nov 12, 2026
61740d5
chore(api): review the API items the deep lossless fix adds
jcwal1516 Nov 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
62 changes: 62 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,7 @@ jobs:
metal: ${{ steps.plan.outputs.metal }}
metal_compile: ${{ steps.plan.outputs.metal_compile }}
public_api: ${{ steps.plan.outputs.public_api }}
c_api: ${{ steps.plan.outputs.c_api }}
expectations: ${{ steps.plan.outputs.expectations }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
Expand Down Expand Up @@ -104,6 +105,7 @@ jobs:
cargo xtask test
cargo xtask release-integrity
cargo xtask repo-lint
cargo xtask x86-codegen-audit

docs:
name: Documentation
Expand Down Expand Up @@ -166,6 +168,65 @@ jobs:
- run: cargo xtask stable-api
- run: cargo xtask semver

c-api:
name: C/C++ API (${{ matrix.os }})
needs: [planner]
if: ${{ needs.planner.outputs.c_api == 'true' }}
strategy:
fail-fast: false
matrix:
os: [ubuntu-latest, macos-latest]
runs-on: ${{ matrix.os }}
timeout-minutes: 30
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1
with:
persist-credentials: false
- uses: dtolnay/rust-toolchain@2c7215f132e9ebf062739d9130488b56d53c060c
with:
toolchain: "1.99.0"
- run: cargo test -p j2k-c --locked
- run: python3 crates/j2k-c/scripts/package.py --output dist/j2k-c
- name: Inspect the packaged shared library
shell: bash
run: |
set -euo pipefail
abi=$(sed -En 's/^pub const J2K_ABI_VERSION: u32 = ([0-9]+);$/\1/p' crates/j2k-c/src/abi.rs)
test -n "$abi"
if [[ "$RUNNER_OS" == "Linux" ]]; then
lib="dist/j2k-c/lib/libj2k.so.$abi"
readelf -d "$lib" | grep -F "Library soname: [libj2k.so.$abi]"
test "$(readlink dist/j2k-c/lib/libj2k.so)" = "libj2k.so.$abi"
nm -D --defined-only "$lib"
echo "Newest required glibc symbol version (package floor):"
objdump -T "$lib" | grep -o 'GLIBC_[0-9][0-9.]*' | sort -uV | tail -n 1
ldd --version | head -n 1
else
lib="dist/j2k-c/lib/libj2k.$abi.dylib"
test "$(otool -D "$lib" | tail -n 1)" = "@rpath/libj2k.$abi.dylib"
otool -L "$lib" | grep -F "@rpath/libj2k.$abi.dylib (compatibility version $abi.0.0,"
test "$(readlink dist/j2k-c/lib/libj2k.dylib)" = "libj2k.$abi.dylib"
nm -gU "$lib"
otool -l "$lib" | grep -A4 LC_BUILD_VERSION
fi
if strings "$lib" | grep -F "$HOME/"; then
echo "::error::$lib embeds runner-local paths"
exit 1
fi
- name: Test a relocated package from C and C++
shell: bash
run: |
set -euo pipefail
mv dist/j2k-c "dist/relocated package"
cargo run -p j2k-c --locked --example make_fixture -- target/fixture.j2c
cmake -S crates/j2k-c/native/tests -B target/native-tests -DCMAKE_BUILD_TYPE=Release -DCMAKE_PREFIX_PATH="$PWD/dist/relocated package" -DJ2K_FIXTURE="$PWD/target/fixture.j2c"
cmake --build target/native-tests
ctest --test-dir target/native-tests --output-on-failure
cmake -S "dist/relocated package/examples" -B target/examples -DCMAKE_PREFIX_PATH="$PWD/dist/relocated package"
cmake --build target/examples
target/examples/j2k_decode target/fixture.j2c
target/examples/j2k_decode_cpp target/fixture.j2c

gpu-evidence:
name: GPU evidence policy
needs: [planner]
Expand Down Expand Up @@ -218,6 +279,7 @@ jobs:
- docs
- metal-compile
- public-api
- c-api
- gpu-evidence
runs-on: ubuntu-latest
env:
Expand Down
895 changes: 884 additions & 11 deletions CHANGELOG.md

Large diffs are not rendered by default.

81 changes: 51 additions & 30 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading