Bring the release notes up to date and fix what the audit turned up - #651
Merged
Conversation
Audited the Unreleased section against the 129 commits since v4.5.0. Two plugins new since then had no entry at all: the clock tree extractor was not mentioned, and the DOT viewer had two incremental lines but no entry saying the plugin exists and what it does. The core bookkeeping speedup, the module pin event coalescing, the delay gate type property, the Boolean function and Liberty parser fixes, the hal_py log functions, the simulation wizard features, five GUI fixes and four build changes were missing as well. Seven terse entries now say what the user sees and why, one entry sat in the wrong group, one described defects that never shipped, and one claimed both shortest-path overloads existed before when only one did. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Commit 55bf6c1 changed the default of the overload without an ID to descending, in C++ and in both Python bindings, but left the overload with an ID at ascending. The same call therefore built a descending group from Python and an ascending one from C++, and all four doc strings kept saying the default is ascending. Descending is what the GUI, the dataflow analysis and the module identification produce, so both overloads now default to it and the doc strings say so. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
GateTypeProperty::delay was added in C++ for the clock tree extractor but the binding lists the enum values by hand and stopped at scan, so hal_py.GateTypeProperty.delay did not exist. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
When the clock net of a flip-flop is a global input net, the extraction inserted the net as a vertex and moved on without an edge to the flip-flop, so on a netlist without clock buffers every flip-flop was an isolated root. The branch for nets reached through a gate adds that edge; this one now does as well. Tests cover the buffered and the direct case, the plugin had none. The Python bindings keep the netlist alive behind a returned tree, protect the objects handed out by get_ptrs_from_vertices the way the other getters do, and carry doc strings with return types so the binding lifetime check covers the class from now on. -march=native is gone from the build: nothing in the plugin needs it and it made the library non-portable. The plugin is whitelisted in plugins/.gitignore, which had been bypassed by force-adding its files. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
… leftovers The CMake check for Agdisc_t::mem set HAS_AGDISC_MEM but never passed it to the compiler, and the two #ifdefs spelled it HAS_AGDISK_MEM, so the in-memory reader was dead code on every Graphviz version; the plain reader always ran, which is why it worked. The define is now passed when the check succeeds and the guards use its name. The colour-style toggle no longer prints to stderr, its menu text no longer says "attibute", and -march=native is gone from the build as nothing needs it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
…l config install_dependencies.sh appended export PATH="$BREW_PREFIX/..." lines to .zshrc and .bash_profile in single quotes, so the variable was never expanded and every such line prepended a path that does not exist. The lines are now written and checked with the prefix expanded. Also: the macOS workflow passed -DQt5_DIR at a Qt 6 install, which CMake ignored, and now passes Qt6_DIR; the Brewfile listed graphviz twice; and the pin group context menu said "Autmatically rename pins". Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
An audit of the Unreleased changelog section against all 129 commits since v4.5.0, plus fixes for what the audit found in the code. Six commits, each self-contained.
Release notes. Two plugins new since 4.5.0 had no entry (clock tree extractor) or no entry saying they exist (DOT viewer). Missing as well: the netlist bookkeeping speedup, module pin event coalescing, the
delaygate type property, Boolean function and Liberty parser fixes, thehal_py.log_*functions, simulation wizard features, five GUI fixes, four build changes. Seven terse entries now say what the user sees and why; one sat in the wrong group, one described defects that never shipped, one made a claim the history contradicts.Code, found by the audit.
Module::create_pin_group: the overload with an ID still defaulted to ascending after 55bf6c1 made the other one descending, and all four doc strings said ascending. Both overloads default to descending now, matching the GUI, the dataflow analysis and the module identification.GateTypeProperty.delaywas never bound to Python.get_ptrs_from_verticescarriesborrowed(), and every binding has a doc string so the lifetime check covers the class.-march=nativeremoved. The plugin is now whitelisted inplugins/.gitignore; its files had been force-added.#ifdefs misspelled it, so that reader was dead code. Wired through. Astd::cerrdebug print and a typo removed,-march=nativeremoved.install_dependencies.shwrote$BREW_PREFIXunexpanded into the shell config. The macOS workflow passed-DQt5_DIRat a Qt 6 install. Duplicategraphvizline in the Brewfile. "Autmatically rename pins" menu label.Verification
Full suite passes locally, 42 of 42, on a Debug build against Qt 6.11, Python 3.14.7 and pybind11 3.1.0 (the CI runner's versions), including the two new clock tree tests.
hal_py.GateTypeProperty.delayverified from Python.Test plan
🤖 Generated with Claude Code