Repository navigation
Conversation
|
@ChrisRackauckas is attempting to deploy a commit to the roger-luo's projects Team on Vercel. A member of the Team first needs to authorize it. |
Benchmark Results (Julia v1)Time benchmarks
Memory benchmarks
|
e49c732 to
8302f97
Compare
Generate anchored promotion methods when self-references are the only source of ADT parameters. Preserve all-bottom and partially inferred construction without leaving method type variables unbound. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com> Co-Authored-By: OpenAI Codex <noreply@openai.com> Agent-Harness: Codex (version unknown) Agent-Model: unknown Agent-Session: local session ID 01a04608-d980-7e61-88d9-f6486b0c1916
8302f97 to
b6d7f41
Compare
|
Benchmark red-team result: the first 117-line implementation showed a repeatable ~7% package load-time regression, so I narrowed the generator change to 48 added lines and removed the extra partial-inference machinery. The final benchmark at #92 (comment) reports The normal CI workflow is awaiting maintainer approval for this forked PR at https://github.com/Roger-luo/Moshi.jl/actions/runs/33164273641; it has not executed or failed. |
|
@Roger-luo what do you think? |
|
The latest updates on your projects. Learn more about Vercel for GitHub. |
|
Thanks. Sorry, I was on vacation and was not checking GitHub. |
Codecov Report❌ Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #92 +/- ##
==========================================
+ Coverage 91.91% 91.99% +0.07%
==========================================
Files 43 43
Lines 1732 1748 +16
==========================================
+ Hits 1592 1608 +16
Misses 140 140 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Moshi 0.3.10–0.3.12 emit an unbound promoting Div constructor; v0.3.13 (Roger-luo/Moshi.jl#92) binds those parameters. Keep excluding the broken range while admitting the fixed release. Agent-Harness: Cursor Agent CLI 2026.09.28-64d2043 Agent-Model: auto Agent-Session: local session, transcript at /home/crackauc/sandbox/agent-jobs/ib-su/SymbolicUtils.jl/jobs/1037-cursor/log.txt on amdci2.julia.csail.mit.edu Co-authored-by: ChrisRackauckas-Claude <accounts@chrisrackauckas.com> Co-authored-by: Cursor Agent <noreply@cursor.com>
Ignore this draft until reviewed by @ChrisRackauckas.
What changed and why
Promoting constructors added by #76 use a union between the resolved self type and the singleton-bottom type. When no ordinary field binds every ADT parameter, the all-bottom dispatch path leaves one or more method type parameters unbound. This is observable both through
Test.detect_unbound_argsand, for partially inferred multi-parameter ADTs, as anUndefVarErrorduring construction.This change emits the broad union constructor only when ordinary fields bind every parameter. Otherwise a single self-reference keeps its exact constructor, while multiple self-references use disjoint anchored promotion methods: earlier arguments must be singleton-bottom, the anchor binds the ADT parameters, and later arguments accept either the resolved or singleton-bottom type.
Failing before
On unmodified
mainatdff7f45:A standalone two-parameter Moshi reproducer on the same base produced:
Passing after
The focused tests include zero detected unbound parameters and zero detected ambiguities.
Downstream verification
SymbolicUtils was tested with its Moshi cap removed and this branch developed locally:
Formatting was applied with JuliaFormatter 2.13.0 to both changed files.
git diff --check upstream/mainpassed.git diff upstream/main | typos --config .tmp/typos.toml -passed with a temporary exact-identifier allowance for the pre-existing internal nameis_inferrable.Review considerations
The anchored signatures preserve promotion when a concrete self-reference exists without leaving an all-bottom union branch unbound. A partially inferred multi-parameter all-bottom call now fails dispatch with
MethodErrorinstead of entering an invalid method and raisingUndefVarError; choosing values for absent type parameters is intentionally left outside this focused fix.Documentation was not built because this changes no public API or documentation. Nightly Julia and non-Linux platforms were not run locally.
Links
🤖 Generated with Codex (version unknown; model: unknown; session: local session ID 01a04608-d980-7e61-88d9-f6486b0c1916)