chore: refresh governance metadata - #23
Conversation
| @@ -1,18 +1,18 @@ | |||
| ; SPDX-License-Identifier: MPL-2.0 | |||
| ;; guix.scm — GNU Guix package definition for AcceleratorGate.jl | |||
| ;; guix.scm — GNU Guix package definition for squisher-corpus | |||
There was a problem hiding this comment.
⚠️ Bug: guix.scm mislabels package as squisher-corpus with different license
guix.scm now declares name/synopsis/description/home-page as "squisher-corpus" and changes the license from MPL-2.0 to "PMPL-1.0-or-later", while this repository is AcceleratorGate.jl (Project.toml and the SPDX header still say MPL-2.0). This looks like an accidental overwrite from another repo (commit "update guix.scm from squisher-corpus") and produces a broken/misleading package definition and a conflicting license declaration. Restore the AcceleratorGate.jl name, home-page, and MPL-2.0 license.
Revert guix.scm to describe AcceleratorGate.jl under MPL-2.0:
;; guix.scm — GNU Guix package definition for AcceleratorGate.jl
...
(name "AcceleratorGate.jl")
...
(synopsis "AcceleratorGate.jl")
(description "AcceleratorGate.jl — part of the hyperpolymath ecosystem.")
(home-page "https://github.com/hyperpolymath/AcceleratorGate.jl")
(license ((@@ (guix licenses) license) "MPL-2.0"
"https://www.mozilla.org/MPL/2.0/")))
Was this helpful? React with 👍 / 👎
| handle = Libdl.dlopen(path) | ||
| abi_version = ccall(Libdl.dlsym(handle, :enaction_accel_abi_version), UInt32, ()) | ||
| abi_version == 0x00010000 || throw(ErrorException("unsupported Enaction accelerator ABI: $abi_version")) | ||
| count = ccall(Libdl.dlsym(handle, :enaction_accel_capability_count), UInt32, ()) |
There was a problem hiding this comment.
⚠️ Edge Case: UInt32 underflow hangs capability loop when count is 0
In EnactionZigProvider, count is a UInt32 and the loop for index in UInt32(0):(count - UInt32(1)) computes 0 - 1 which wraps to 0xFFFFFFFF when the library reports zero capabilities, producing a ~4.3-billion-iteration range that effectively hangs (each iteration issues a ccall). Guard against an empty capability set before looping.
Skip iteration when count is 0 to avoid unsigned wraparound:
count = ccall(Libdl.dlsym(handle, :enaction_accel_capability_count), UInt32, ())
at = Libdl.dlsym(handle, :enaction_accel_capability_at)
claims = CapabilityEvidence[]
for index in UInt32(0):UInt32(count == 0 ? 0 : count - 1)
count == 0 && break
Was this helpful? React with 👍 / 👎
| support = Symbol(first(key for (key, value) in _SUPPORT_CODE if value == raw[].support)) | ||
| determinism = Symbol(first(key for (key, value) in _DETERMINISM_CODE if value == raw[].determinism)) |
There was a problem hiding this comment.
💡 Quality: Reverse code lookups throw opaque errors on unknown values
The reverse lookups Symbol(first(key for (key,value) in _SUPPORT_CODE if value == raw[].support)) (and the determinism equivalent) call first on a generator with no fallback. If the Zig library reports a support/determinism code not present in the maps, first throws an unclear error rather than a descriptive ABI-drift message, since the earlier capability validation does not check these fields. Use get/an explicit reverse map with a clear error.
Was this helpful? React with 👍 / 👎
There was a problem hiding this comment.
Configure merge blocking · Maintainers can dismiss this review.
|
Note Automatic reviews are paused because your trial's included automatic processing has been used for this period. Upgrade now, or comment "Gitar review" to run a review anytime. Code Review
|
| Compact |
|
Important
Your trial ends in 1 day — upgrade now to keep code review, CI analysis, auto-apply, custom automations, and more.
Was this helpful? React with 👍 / 👎 | Gitar
416bd7d to
a94cd1b
Compare
Refreshes governance and maintainer dates after the coprocessor admission work. No runtime code changes.
Summary by Gitar
operations.jlimplementingOperationRequest,CapabilityEvidence, and deterministic provider planningEnactionZigProviderfor loading pure-Zig shared library FFI with ABI validationThis will update automatically on new commits.