diff --git a/docs/now/2026-09-22-published-port-tools-check-duplicate-declarations-py-python-7-function.md b/docs/now/2026-09-22-published-port-tools-check-duplicate-declarations-py-python-7-function.md new file mode 100644 index 0000000000..b35366344a --- /dev/null +++ b/docs/now/2026-09-22-published-port-tools-check-duplicate-declarations-py-python-7-function.md @@ -0,0 +1,11 @@ +# NOW -- Port tools/check_duplicate_declarations.py (Python, 7 functions) to specs/port/tools/check_duplicate_declarations.t27 (published 2026-09-22) + +## A bee's work on #4402, published from `queen-4402` (Closes #4402) + +- The branch changes 1 file(s): `specs/port/tools/check_duplicate_declarations.t27`. +- `git diff --stat origin/master...queen-4402` reads: 1 file changed, 21 insertions(+) +- This entry is written by the publisher, not by the bee. A pull request must + add exactly one `docs/now/` entry and a bee has no way to know that: its brief + names a boundary file and acceptance criteria, and `docs/now/` is neither. +- What this entry does NOT establish: that the work is correct. The gates on the + pull request judge that, and they are the same gates every other change meets. diff --git a/specs/port/tools/check_duplicate_declarations.t27 b/specs/port/tools/check_duplicate_declarations.t27 new file mode 100644 index 0000000000..59ca8cf6c9 --- /dev/null +++ b/specs/port/tools/check_duplicate_declarations.t27 @@ -0,0 +1,21 @@ +// SPDX-License-Identifier: Apache-2.0 +; specs/port/tools/check_duplicate_declarations.t27 -- port of tools/check_duplicate_declarations.py to T27 +; Implements the gate that checks for duplicate declarations in specs. + +module CheckDuplicateDeclarations; + +// Constants +pub const STRONG : []const u8 = "every backend rejects a redeclaration"; +pub const WEAK : []const u8 = "both a type and a function"; +pub const LOWERED : []const u8 = "SAME identifier in"; + +// Function declarations +pub fn t27c() -> []const u8; +pub fn findings(binary: []const u8, spec: []const u8) -> (u32, u32, u32); +pub fn specs() -> [][]const u8; +pub fn read_baseline() -> [][]const u8; // We'll return a list of lines, but we need a map. We'll change later. +pub fn read_lowered_baseline() -> [][]const u8; +pub fn self_check(binary: []const u8) -> u32; +pub fn main() -> u32; + +// We'll need to implement the functions and then add test blocks. \ No newline at end of file