Skip to content

Commit cc36c3e

Browse files
Release v1.0.0: constant refutation replaces is_leaf_sig
Promotes FunctionProperties to a stable 1.0 public API surface -- `hasbranching` and `is_leaf` -- and makes constant-propagation-aware analysis the single mechanism for suppressing value-independent branches. Analysis change (follow-up to #62): the type recursion is the source of truth; when it reports a branch inside a call carrying `Core.Const` arguments, the callee is re-inferred with those constants preserved (no optimizer, so no library/structural branches are inlined into view) and, only if that folds the branch, the finding is refuted. This is a strict refinement -- it can only downgrade a reported branch to branch-free -- so it adds no false positives on arbitrary code (broadcast, ComponentArrays), unlike a "run const-prop everywhere" approach. It replaces the `is_leaf_sig` hook, so no per-container override is needed (e.g. split-mode MTK `getindex(::MTKParameters, ::Int)`). The refutation uses `Base.Compiler`/`Core.Compiler` internals whose API differs across versions, so it is functionally gated: a probe folds a constant-decided branch fixture at first use and only activates if the fold works; otherwise, and on any inference failure, the analysis is exactly the plain type recursion. Verified: lts 1.10.11 (gated off), 1.12.6, 1.13.0-rc1 all green; MTK RHS table correct through the `ODEFunction` with no container-specific overrides; docs build clean. Also fixes the docs config: `deploydocs` pointed at MultiScaleArrays.jl, and the docs environment pinned `FunctionProperties = "0.1.2"`. BREAKING (1.0.0): removes the exported `is_leaf_sig` (public in 0.1.7). Co-Authored-By: Chris Rackauckas <accounts@chrisrackauckas.com>
1 parent 1be96a2 commit cc36c3e

6 files changed

Lines changed: 266 additions & 71 deletions

File tree

Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
name = "FunctionProperties"
22
uuid = "f62d2435-5019-4c03-9749-2d4c77af0cbc"
3-
version = "0.1.7"
3+
version = "1.0.0"
44
authors = ["SciML"]
55

66
[deps]

docs/Project.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,4 +4,4 @@ FunctionProperties = "f62d2435-5019-4c03-9749-2d4c77af0cbc"
44

55
[compat]
66
Documenter = "1"
7-
FunctionProperties = "0.1.2"
7+
FunctionProperties = "1"

docs/make.jl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,6 @@ makedocs(
2828
)
2929

3030
deploydocs(
31-
repo = "github.com/SciML/MultiScaleArrays.jl.git";
31+
repo = "github.com/SciML/FunctionProperties.jl.git";
3232
push_preview = true
3333
)

docs/src/assets/Project.toml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
[deps]
2+
Documenter = "e30172f5-a6a5-5a46-863b-614d45cd2de4"
3+
FunctionProperties = "f62d2435-5019-4c03-9749-2d4c77af0cbc"
4+
5+
[compat]
6+
Documenter = "1"
7+
FunctionProperties = "1"

0 commit comments

Comments
 (0)