Skip to content

Prepare v1.0.8: fix Julia TypeEgal compatibility - #174

Merged
Krastanov merged 3 commits into
JuliaDynamics:masterfrom
Krastanov-agent:codex/resumable-typeegal-release-108
Sep 12, 2026
Merged

Krastanov merged 3 commits into
JuliaDynamics:masterfrom
Krastanov-agent:codex/resumable-typeegal-release-108

Conversation

@Krastanov-agent

@Krastanov-agent Krastanov-agent commented Sep 12, 2026 •

Copy link
Copy Markdown
Contributor

Julia 1.14 development builds pass Core.TypeEgal wrappers to generated functions, causing @resumable iterator construction to fail with a MethodError. Accept both Core.TypeEq and Core.TypeEgal, while preserving the existing path on older Julia versions.

This rebases #163 onto current master (1972985), preserves Keno's original patch and authorship, and adds a changelog entry plus a version bump to 1.0.8 for release after merge. Supersedes #163.

Add Egal to the spelling exceptions so the changelog can name TypeEgal.

Validation:

  • Full Pkg.test() passed on Julia 1.10.12, 1.11.9, 1.12.7, 1.13.0, and 1.14.0-DEV.3170 (two threads).
  • These runs include the existing integration tests, zero-allocation checks, doctests, Aqua, and ExplicitImports. JET ran on Julia 1.12 and 1.13; it is skipped on older Julia and prereleases by the existing runner. Nightly follows the existing CI setup by removing the JET test dependency only in its isolated test worktree.
  • typos 1.50.1 passed with .typos.toml.
  • git range-diff confirms the rebased compatibility patch is unchanged.
  • Independent review found no blockers; git diff --check passed.

AI assistance was used to prepare and review this PR.

Keno and others added 2 commits September 12, 2026 03:48
The Base PR JuliaLang/julia#62001 is expected to spell exact closed type-object dispatch keys as Core.TypeEgal. Accept Core.TypeEq and Core.TypeEgal generated-function dispatch wrappers when they are available, while preserving the existing Type{Type{T}} path on older Julia versions.

A <:T-style signature would also accept the new spelling, as discussed in Ferrite-FEM/Tensors.jl#249. The structural unwrap used here asks slightly less of the compiler, since it avoids solving the extra subtype relation in this generated-function helper path.

AI disclosure: This commit was prepared with assistance from generative AI. The resulting PR should be checked carefully by a maintainer before merging.

Co-authored-by: OpenAI Codex <codex@openai.com>
@Krastanov-agent
Krastanov-agent force-pushed the codex/resumable-typeegal-release-108 branch 2 times, most recently from f0c1ec0 to e24f96b Compare September 12, 2026 03:53
@Krastanov-agent
Krastanov-agent force-pushed the codex/resumable-typeegal-release-108 branch from e24f96b to 671df17 Compare September 12, 2026 03:53
@github-actions

github-actions Bot commented Sep 12, 2026 •

Copy link
Copy Markdown

Benchmark Results (Julia v1)

Time benchmarks
master 671df17... master / 671df17...
hardcoded types/BigInt/Channels csize=0 0.166 ± 0.0027 ms 0.167 ± 0.003 ms 0.996 ± 0.024
hardcoded types/BigInt/Channels csize=1 0.17 ± 0.0019 ms 0.17 ± 0.0018 ms 1 ± 0.015
hardcoded types/BigInt/Channels csize=100 23.2 ± 0.64 μs 22.6 ± 0.63 μs 1.03 ± 0.04
hardcoded types/BigInt/Channels csize=20 30 ± 0.48 μs 29.3 ± 0.5 μs 1.02 ± 0.024
hardcoded types/BigInt/Closure 5.46 ± 0.17 μs 6.83 ± 0.16 μs 0.799 ± 0.031
hardcoded types/BigInt/Closure optimized 3.66 ± 0.5 μs 3.6 ± 0.17 μs 1.02 ± 0.15
hardcoded types/BigInt/Closure statemachine 3.6 ± 0.3 μs 3.63 ± 0.54 μs 0.991 ± 0.17
hardcoded types/BigInt/Direct 3.54 ± 0.17 μs 3.56 ± 0.14 μs 0.994 ± 0.062
hardcoded types/BigInt/Iteration protocol 3.59 ± 0.13 μs 3.6 ± 0.15 μs 0.997 ± 0.055
hardcoded types/BigInt/ResumableFunctions 3.59 ± 0.16 μs 3.6 ± 0.15 μs 0.997 ± 0.061
hardcoded types/BigInt/Task scheduling 0.0336 ± 0.12 ms 0.0353 ± 0.12 ms 0.952 ± 4.6
hardcoded types/Int64/Channels csize=0 0.157 ± 0.0014 ms 0.158 ± 0.0018 ms 0.992 ± 0.014
hardcoded types/Int64/Channels csize=1 0.158 ± 0.0028 ms 0.159 ± 0.0022 ms 0.994 ± 0.022
hardcoded types/Int64/Channels csize=100 18.2 ± 0.34 μs 18.4 ± 0.33 μs 0.992 ± 0.026
hardcoded types/Int64/Channels csize=20 24.5 ± 0.36 μs 24.9 ± 0.35 μs 0.987 ± 0.02
hardcoded types/Int64/Closure 2.23 ± 0.011 μs 2.23 ± 0.03 μs 0.996 ± 0.014
hardcoded types/Int64/Closure optimized 0.05 ± 0 μs 0.05 ± 0 μs 1 ± 0
hardcoded types/Int64/Closure statemachine 0.05 ± 0 μs 0.05 ± 0.001 μs 1 ± 0.02
hardcoded types/Int64/Direct 0.05 ± 0.001 μs 0.05 ± 0.01 μs 1 ± 0.2
hardcoded types/Int64/Iteration protocol 0.06 ± 0.01 μs 0.06 ± 0.01 μs 1 ± 0.24
hardcoded types/Int64/ResumableFunctions 0.05 ± 0 μs 0.05 ± 0 μs 1 ± 0
hardcoded types/Int64/Task scheduling 29.9 ± 1.1e+02 μs 0.0321 ± 0.12 ms 0.931 ± 4.9
time_to_load 0.0378 ± 0.001 s 0.0379 ± 0.00086 s 0.996 ± 0.035
Memory benchmarks
master 671df17... master / 671df17...
hardcoded types/BigInt/Channels csize=0 0.302 k allocs: 7.7 kB 0.302 k allocs: 7.7 kB 1
hardcoded types/BigInt/Channels csize=1 0.302 k allocs: 7.71 kB 0.302 k allocs: 7.71 kB 1
hardcoded types/BigInt/Channels csize=100 0.305 k allocs: 9.24 kB 0.305 k allocs: 9.24 kB 1
hardcoded types/BigInt/Channels csize=20 0.305 k allocs: 9.24 kB 0.305 k allocs: 9.24 kB 1
hardcoded types/BigInt/Closure 0.192 k allocs: 5.23 kB 0.192 k allocs: 5.23 kB 1
hardcoded types/BigInt/Closure optimized 0.19 k allocs: 5.2 kB 0.19 k allocs: 5.2 kB 1
hardcoded types/BigInt/Closure statemachine 0.19 k allocs: 5.2 kB 0.19 k allocs: 5.2 kB 1
hardcoded types/BigInt/Direct 0.188 k allocs: 5.14 kB 0.188 k allocs: 5.14 kB 1
hardcoded types/BigInt/Iteration protocol 0.19 k allocs: 5.2 kB 0.19 k allocs: 5.2 kB 1
hardcoded types/BigInt/ResumableFunctions 0.19 k allocs: 5.2 kB 0.19 k allocs: 5.2 kB 1
hardcoded types/BigInt/Task scheduling 0.197 k allocs: 5.85 kB 0.197 k allocs: 5.85 kB 1
hardcoded types/Int64/Channels csize=0 0.097 k allocs: 2.27 kB 0.097 k allocs: 2.27 kB 1
hardcoded types/Int64/Channels csize=1 19 allocs: 1.06 kB 19 allocs: 1.06 kB 1
hardcoded types/Int64/Channels csize=100 22 allocs: 2.59 kB 22 allocs: 2.59 kB 1
hardcoded types/Int64/Channels csize=20 22 allocs: 2.59 kB 22 allocs: 2.59 kB 1
hardcoded types/Int64/Closure 0.082 k allocs: 1.28 kB 0.082 k allocs: 1.28 kB 1
hardcoded types/Int64/Closure optimized 0 allocs: 0 B 0 allocs: 0 B
hardcoded types/Int64/Closure statemachine 0 allocs: 0 B 0 allocs: 0 B
hardcoded types/Int64/Direct 0 allocs: 0 B 0 allocs: 0 B
hardcoded types/Int64/Iteration protocol 0 allocs: 0 B 0 allocs: 0 B
hardcoded types/Int64/ResumableFunctions 0 allocs: 0 B 0 allocs: 0 B
hardcoded types/Int64/Task scheduling 0.085 k allocs: 1.88 kB 0.085 k allocs: 1.88 kB 1
time_to_load 0.201 k allocs: 11.8 kB 0.201 k allocs: 11.8 kB 1

@codecov-commenter

codecov-commenter commented Sep 12, 2026 •

Copy link
Copy Markdown

Codecov Report

❌ Patch coverage is 50.00000% with 3 lines in your changes missing coverage. Please review.
✅ Project coverage is 81.74%. Comparing base (1972985) to head (671df17).

Files with missing lines Patch % Lines
src/utils.jl 50.00% 3 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master     #174      +/-   ##
==========================================
- Coverage   82.16%   81.74%   -0.43%     
==========================================
  Files           6        6              
  Lines         729      734       +5     
==========================================
+ Hits          599      600       +1     
- Misses        130      134       +4     

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@Krastanov
Krastanov merged commit 102f690 into JuliaDynamics:master Sep 12, 2026
21 checks passed
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.

4 participants