Document public code generation API - #1928
Conversation
Declare the low-level code generation entry points public, render their documentation, and bump Symbolics to 7.32 for the added API surface. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## master #1928 +/- ##
=======================================
Coverage 81.21% 81.21%
=======================================
Files 59 59
Lines 5807 5807
=======================================
Hits 4716 4716
Misses 1091 1091 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Assert that both newly public low-level code generation entry points retain docstrings. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Assertion follow-up and independent verification:
Benchmark check classification: its benchmark comparisons completed successfully with ratios effectively 1. The job failed only when |
|
Downstream follow-up: SciML/ModelingToolkit.jl#4744 raises the Symbolics floor to 7.32 and adds the ODEProblem code-generation regression. Local ModelingToolkitBase InterfaceI passed with 1,466 checks and 5 marked broken. Benchmark computations for this PR completed with ratios near 1 and identical allocations; the reported benchmark failure is only the AirspeedVelocity result-comment POST receiving 403 from fork-token permissions. |
Direct downstream users to SymbolicUtils.IRStructure, where the low-level IR type is declared public, instead of implying ownership through Symbolics' reexport. Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
|
Owner-module follow-up (
The PR body now reflects the latest full Core totals (17,061 passed, 351 pre-existing broken), the 9/9 targeted result, and the owner qualification. |
|
The refreshed benchmark check failed before running any Symbolics benchmark. AirspeedVelocity tried to download the ephemeral PR merge commit 775cdb7 as a repository revision, but that merge commit is not present in the clone, so Pkg reported |
e3c0806
into
JuliaSymbolics:master
Summary
CodegenFunctionOptionsandcodegen_functionas public Symbolics APIcodegen_functionand render both low-level code-generation entries in the manualSymbolicUtils.IRStructuretype rather than its Symbolics reexportMotivation
ModelingToolkit now uses these low-level code-generation entries, but Symbolics 7.31 introduced them without declaring them public. Publishing and documenting them at their owning package lets downstream code avoid relying on internals. The documentation also names
SymbolicUtils.IRStructurethrough its owner module, where that type is declared public.Local verification
julia +1.12 --startup-file=no --project=. -e 'using Pkg; Pkg.instantiate(); using Test; include("test/codegen_function.jl")'— passed, including 9/9CodegenFunctionOptionsinterface/public/documentation checksGROUP=Core julia +1.12 --startup-file=no --project=. -e 'using Pkg; Pkg.test(; allow_reresolve=true)'— passed (17,061 passed; 351 pre-existing broken checks), followed by 12/12, 12/12, and 14/14 passing SymbolicIndexingInterface testsetsjulia +1.12 --startup-file=no --project=docs -e 'using Pkg; Pkg.develop(path = pwd()); Pkg.instantiate(); include("docs/make.jl")'— passed; both low-level API entries and theSymbolicUtils.IRStructureowner qualification rendered without docstring or cross-reference warningsgit diff --check— passed