Skip to content

Admit canonical parameter values before deriving dataclass help - #12

Merged
trissim merged 2 commits into
mainfrom
perf/prepared-declaration-source-20261004
Oct 5, 2026
Merged

trissim merged 2 commits into
mainfrom
perf/prepared-declaration-source-20261004

Conversation

@trissim

@trissim trissim commented Oct 5, 2026 •

Copy link
Copy Markdown
Contributor

Headless dataclass analysis currently discovers presentation documentation while admitting values. Existing ParameterInfo now owns the canonical parameter declaration and derives dataclass descriptions on help demand; SignatureAnalyzer retains its existing declaration/source cache and prepares the registered schema-source closure without evaluating factories or full type analysis. Value/default factory admission and callable type-bearing documentation remain on their existing paths. Description-preserving _replace does not demand help.

Public0.2 migration: ParameterInfo keeps its five named fields, constructor and _replace, but is a frozen nominal declaration rather than NamedTuple; tuple unpacking/_asdict, UnifiedParameterInfo/source_type and analyze_nested are removed. Dataclass presentation failures yield absent help without discarding valid declarations. Existing installed PyQtReactive/MetaclassRegistry consumer audit found no removed-API uses; PyQt's direct parameter-help consumer reads the supported description property.

Validation: existing source/signature/declaration controls, factory/error/cache and demanded help/reset parity passed. Current CI passes Python3.11/3.12 on Linux/Windows/macOS. Three Python3.10 recursive AbstractSequence decoder tests fail with140passing: dataclass_projection.py is byte-identical to current main430 (SHA256d2be277051b070d73503025a3addcde8016787e18a369c45b60be0c0edb65fea), so this is a documented preexisting decoder defect, not a change in this PR. No decoder patch or qualified-wheel replacement is included. Separate follow-up: issue13.

Current production qualification (2026-10-05): OpenHCS integration92c22 used the exact private PythonIntrospect0.2.0/ObjectState1.3.0 wheels, normal public RegistryService READY before clocks, and default internal runtime profiling OFF. One Illum3 observation measured compile206.535ms, execution264.932ms, total565.896ms. Both older retained native output sets passed the full nonempty-image/inventory/source-association comparison under the existing1e-6 policy (maximum pixel difference2.98e-8). Source/input/helper/eight-dependency/four-native-ABI guards passed; owned processes terminated.

This is an absolute candidate observation, not a controlled ON→OFF or individual-patch gain. Older unpaired native full-invocation mean695.522ms gives1.229×total; the2×total target remains218.135ms away. Native module mean626.957ms is a different clock. Evidence: /home/ts/.local/state/openhcs-maintenance/20261005/parameter-owner-illum3-default-ordinary-v1/receiving-summary.json; durable OpenHCS receipt: benchmark/results/perf_parameter_declaration_first_job_20261005/ordinary-observer-off.json.

Earlier evidence is retained with its limits: authentic first-job PipelineConfig+10-step saved admission129.320→82.766ms (46.555ms reduction, mainly PipelineConfig); already-warm second-case3D231.263→235.966ms showed no gain. The earlier standalone261ms3D replay is not a whole-compiler gain. Failed helper attempts and the prior negative warmed ordinary observation remain archived; no repeat timing was used to rescue them.

Release state: this PR merged as43cdbf3; its tree is identical to qualified2ab8140. Root pushed annotatedv0.2.0 and is tracking the supported tag-triggered publisher. ObjectState22 has also merged as7db1519 with identical qualified source and annotatedv1.3.0; publication availability and shared-environment integration remain pending. Private wheels were used only for receiving.

Closes #11

Value overlays retain their deferred declaration owner; explicit help overrides and renamed fields preserve the original help law. Remove the duplicate UnifiedParameterInfo/source_type path and publish the API migration as version 0.2.0.

Fixes #11
@trissim
trissim marked this pull request as ready for review October 5, 2026 16:47
Copilot AI balanced review requested due to automatic review settings October 5, 2026 16:47
@trissim
trissim merged commit 43cdbf3 into main Oct 5, 2026
9 of 12 checks passed

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

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.

Separate dataclass presentation from canonical parameter admission

2 participants