From 7ecde909c79167ca4e1e1f43efd89bc87e9cd855 Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Tue, 8 Sep 2026 10:31:11 +0300 Subject: [PATCH 01/23] fix(resolution): a same-name re-binding is not a local definition `const { fetchUser } = useStore.getState()` and `const setZipUri = useStore((s) => s.setZipUri)` are how a store action reaches its caller; the local-binding rule read both as definitions and dropped the cross-file edge the store-action resolution exists to hold (object-literal-methods, ui-steps-api). A declaration whose pattern or initializer names the same member is a re-binding of something defined elsewhere: the graph's symbol is what the bare call means. Co-Authored-By: Claude Fable 5.1 (cherry picked from commit afa69fcc5ff0d70d776568a1d63861cee99b1d12) --- __tests__/bare-call-no-method.test.ts | 35 ++++++++++++++++++++++++--- src/resolution/name-matcher.ts | 25 +++++++++++++------ 2 files changed, 49 insertions(+), 11 deletions(-) diff --git a/__tests__/bare-call-no-method.test.ts b/__tests__/bare-call-no-method.test.ts index ba5e1d3f8..81ec92e35 100644 --- a/__tests__/bare-call-no-method.test.ts +++ b/__tests__/bare-call-no-method.test.ts @@ -80,7 +80,7 @@ describe('a receiver-less JS/TS call never binds to a method (#1714)', () => { it('a bare call to a name the file binds itself has no cross-file candidate', async () => { tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'codegraph-1714-')); - fs.writeFileSync(path.join(tempDir, 'config.ts'), 'export function resolve(p: string) { return p; }\nexport function transform(c: string) { return c; }\nexport function now() { return 0; }\n'); + fs.writeFileSync(path.join(tempDir, 'config.ts'), 'export function resolve(p: string) { return p; }\nexport function transform(c: string) { return c; }\n'); fs.writeFileSync( path.join(tempDir, 'client.ts'), [ @@ -90,9 +90,8 @@ describe('a receiver-less JS/TS call never binds to a method (#1714)', () => { ' setTimeout(() => resolve(), 10);', ' });', '}', - 'export function run(options: { now?: () => number }) {', - ' const now = options.now || (() => Date.now());', - ' return now() + transform("x").length;', + 'export function run() {', + ' return transform("x").length;', '}', '', ].join('\n') @@ -130,6 +129,34 @@ describe('a receiver-less JS/TS call never binds to a method (#1714)', () => { expect(names).toContain('test'); }); + it('a const that picks a same-named store action out of a hook is a re-binding, not a local definition', async () => { + tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'codegraph-1714-')); + fs.writeFileSync(path.join(tempDir, 'package.json'), '{"name":"t","dependencies":{"zustand":"^4"}}\n'); + fs.writeFileSync( + path.join(tempDir, 'store.ts'), + "import { create } from 'zustand'\nexport const useStore = create((set) => ({\n setZipUri: (zipUri: string) => set({ zipUri }),\n reset: () => set({}),\n}))\n" + ); + fs.writeFileSync( + path.join(tempDir, 'screen.ts'), + [ + "import { useStore } from './store'", + 'export function onZipComplete(uri: string) {', + ' const setZipUri = useStore((s) => s.setZipUri)', + ' const { reset } = useStore.getState()', + ' setZipUri(uri)', + ' reset()', + '}', + '', + ].join('\n') + ); + cg = await CodeGraph.init(tempDir, { index: true }); + cg.resolveReferences(); + const from = cg.getNodesByKind('function').find((n) => n.name === 'onZipComplete')!; + const targets = cg.getOutgoingEdges(from.id).filter((e) => e.kind === 'calls').map((e) => cg!.getNode(e.target)).map((n) => `${n?.filePath}:${n?.name}`); + expect(targets).toContain('store.ts:setZipUri'); + expect(targets).toContain('store.ts:reset'); + }); + it('keeps `other.serialize()` — a call through a receiver', async () => { const callees = await callsFromMethod( [ diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index 2ce958e97..b76268b71 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -673,13 +673,17 @@ function isBareJsCall(ref: UnresolvedRef, context: ResolutionContext): boolean { const LOCAL_BINDING_MEMO = new WeakMap>(); /** - * Whether a JS/TS file binds `name` itself — as a `const`/`let`/`var`/ - * `function`/`class` declaration (destructuring included) or as a parameter - * of a function or arrow. Such a binding shadows every same-named symbol in + * Whether a JS/TS file binds `name` itself — as a plain `const`/`let`/`var`/ + * `function`/`class` declaration or as a parameter of a function or arrow. + * A binding that only re-names a same-named member of something defined + * elsewhere is NOT one: `const { fetchUser } = useStore.getState()` and + * `const setZipUri = useStore((s) => s.setZipUri)` are how a store action + * reaches its caller, and the store-action resolution follows exactly those + * shapes — treating them as local would drop the `loginFlow → fetchUser` + * edge the graph is built to hold. A definition shadows every same-named symbol in * other files, so a bare call to it has no cross-file candidate: the * `resolve` of `new Promise((resolve, reject) => …)`, a spec's - * `const transform = await makeTransform()`, a factory's `const now = - * options.now || (() => new Date())`. None of these is a node the graph + * `const transform = await makeTransform()`. Neither is a node the graph * holds (a parameter, a const bound to a call result), so without this the * matcher hands the call to whichever other file defines the name — and * once methods stop being candidates for a bare call (#1714), the function @@ -699,12 +703,19 @@ function isLocallyBoundJsName(name: string, filePath: string, context: Resolutio // `const { name } = require('./m')` / `= await import('./m')` binds an IMPORT, // not a shadow: the symbol lives in the other file and the call means it. const declRe = new RegExp( - '\\b(?:const|let|var)\\s+(?:' + n + '\\b|[{\\[][^;=]*?\\b' + n + '\\b[^;=]*?[}\\]])\\s*(?:=\\s*([^;\\n]*))?', + '\\b(?:const|let|var)\\s+' + n + '\\b\\s*(?:=\\s*([^;\\n]*))?', 'g' ); let bound = false; + const reBinding = new RegExp('(?:^|[^\\w$])' + n + '\\b'); for (const m of source.matchAll(declRe)) { - if (!/^\s*(?:await\s+)?(?:require|import)\s*\(/.test(m[1] ?? '')) { bound = true; break; } + const init = m[1] ?? ''; + // `const x = require(…)` is an import; `const setZipUri = useStore((s) => + // s.setZipUri)` picks a same-named member out of something defined + // elsewhere. Neither defines the name — the graph's symbol is what it means. + if (/^\s*(?:await\s+)?(?:require|import)\s*\(/.test(init) || reBinding.test(init)) continue; + bound = true; + break; } if (!bound) { bound = From a29d1126ee57f0f9cbca47eeaad6784b6c238eca Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Tue, 8 Sep 2026 10:53:40 +0300 Subject: [PATCH 02/23] fix(resolution): only a selector arrow or a destructure is a re-binding `const now = opts.now || Date.now` is a local binding after all: on a Kotlin + JS app the wider "initializer mentions the name" exemption sent 24 `now()` calls onto a Kotlin test's `private val now`. A re-binding is a destructuring pattern or an arrow that picks the member off its own parameter (`useStore((s) => s.setZipUri)`); `() => Date.now()` is not one. The `options.now` fixture is back in the test. Co-Authored-By: Claude Fable 5.1 --- __tests__/bare-call-no-method.test.ts | 7 ++++--- src/resolution/name-matcher.ts | 25 +++++++++++++++++-------- 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/__tests__/bare-call-no-method.test.ts b/__tests__/bare-call-no-method.test.ts index 81ec92e35..029a98697 100644 --- a/__tests__/bare-call-no-method.test.ts +++ b/__tests__/bare-call-no-method.test.ts @@ -80,7 +80,7 @@ describe('a receiver-less JS/TS call never binds to a method (#1714)', () => { it('a bare call to a name the file binds itself has no cross-file candidate', async () => { tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'codegraph-1714-')); - fs.writeFileSync(path.join(tempDir, 'config.ts'), 'export function resolve(p: string) { return p; }\nexport function transform(c: string) { return c; }\n'); + fs.writeFileSync(path.join(tempDir, 'config.ts'), 'export function resolve(p: string) { return p; }\nexport function transform(c: string) { return c; }\nexport function now() { return 0; }\n'); fs.writeFileSync( path.join(tempDir, 'client.ts'), [ @@ -90,8 +90,9 @@ describe('a receiver-less JS/TS call never binds to a method (#1714)', () => { ' setTimeout(() => resolve(), 10);', ' });', '}', - 'export function run() {', - ' return transform("x").length;', + 'export function run(options: { now?: () => number }) {', + ' const now = options.now || (() => Date.now());', + ' return now() + transform("x").length;', '}', '', ].join('\n') diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index b76268b71..ecebe9f4a 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -676,14 +676,18 @@ const LOCAL_BINDING_MEMO = new WeakMap>( * Whether a JS/TS file binds `name` itself — as a plain `const`/`let`/`var`/ * `function`/`class` declaration or as a parameter of a function or arrow. * A binding that only re-names a same-named member of something defined - * elsewhere is NOT one: `const { fetchUser } = useStore.getState()` and - * `const setZipUri = useStore((s) => s.setZipUri)` are how a store action - * reaches its caller, and the store-action resolution follows exactly those - * shapes — treating them as local would drop the `loginFlow → fetchUser` - * edge the graph is built to hold. A definition shadows every same-named symbol in + * elsewhere is NOT one: `const { fetchUser } = useStore.getState()` and the + * selector `const setZipUri = useStore((s) => s.setZipUri)` are how a store + * action reaches its caller, and the store-action resolution follows exactly + * those shapes — treating them as local would drop the `loginFlow → fetchUser` + * edge the graph is built to hold. A plain alias with a fallback (`const now = + * opts.now || Date.now`) is still local: on a Kotlin+JS app it otherwise + * landed 24 `now()` calls on a Kotlin test's `private val now`. A definition + * shadows every same-named symbol in * other files, so a bare call to it has no cross-file candidate: the * `resolve` of `new Promise((resolve, reject) => …)`, a spec's - * `const transform = await makeTransform()`. Neither is a node the graph + * `const transform = await makeTransform()`, a factory's `const now = + * options.now || (() => new Date())`. None of these is a node the graph * holds (a parameter, a const bound to a call result), so without this the * matcher hands the call to whichever other file defines the name — and * once methods stop being candidates for a bare call (#1714), the function @@ -707,13 +711,18 @@ function isLocallyBoundJsName(name: string, filePath: string, context: Resolutio 'g' ); let bound = false; - const reBinding = new RegExp('(?:^|[^\\w$])' + n + '\\b'); + // A selector: an arrow whose body is the same-named member of its own + // argument — `useStore((s) => s.setZipUri)`, `useSelector((st) => st.now)`. + // `() => Date.now()` is not one: the member is not picked off a parameter. + const selector = new RegExp('\\(?\\s*([\\w$]+)\\s*\\)?\\s*=>\\s*[({]?\\s*\\1\\.' + n + '\\b'); for (const m of source.matchAll(declRe)) { const init = m[1] ?? ''; // `const x = require(…)` is an import; `const setZipUri = useStore((s) => // s.setZipUri)` picks a same-named member out of something defined // elsewhere. Neither defines the name — the graph's symbol is what it means. - if (/^\s*(?:await\s+)?(?:require|import)\s*\(/.test(init) || reBinding.test(init)) continue; + // A plain alias with a fallback, `const now = opts.now || Date.now`, IS a + // local binding: nothing in the graph is what that call means. + if (/^\s*(?:await\s+)?(?:require|import)\s*\(/.test(init) || selector.test(init)) continue; bound = true; break; } From 28ca635b7cce6c6b62feed626c79032324f501d6 Mon Sep 17 00:00:00 2001 From: Aaron Queen Date: Thu, 10 Sep 2026 22:35:02 -0600 Subject: [PATCH 03/23] fix(cli): reject sync for stale extraction indexes --- CHANGELOG.md | 2 + __tests__/cli-sync-stale-index.test.ts | 85 ++++++++++++++++++++++++++ src/bin/codegraph.ts | 5 ++ 3 files changed, 92 insertions(+) create mode 100644 __tests__/cli-sync-stale-index.test.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index c9b68b091..f2f20e8d9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -145,6 +145,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- `codegraph sync` now refuses outdated extraction indexes instead of reporting them as up to date, and directs users to a full rebuild. (#1798) + - Spring mappings now include every declared path combination and resolve constants declared in the same file, while unresolved paths no longer appear as false root routes. (#1461) - `codegraph callers`, `codegraph callees` and `codegraph impact` now resolve qualified names, group results and JSON edges by definition, and accept `--file` to narrow ambiguous names; thanks @ferrine. (#1512, #1656) - `codegraph callers`, `codegraph callees` and `codegraph impact` (CLI and MCP) now report missing names with did-you-mean suggestions instead of another symbol's results, and exact matches with no callers stay empty; thanks @uvmplus. (#1473, #1481) diff --git a/__tests__/cli-sync-stale-index.test.ts b/__tests__/cli-sync-stale-index.test.ts new file mode 100644 index 000000000..a07492251 --- /dev/null +++ b/__tests__/cli-sync-stale-index.test.ts @@ -0,0 +1,85 @@ +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import { spawnSync } from 'child_process'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { CodeGraph } from '../src'; +import { EXTRACTION_VERSION } from '../src/extraction/extraction-version'; + +const BIN = path.resolve(__dirname, '../dist/bin/codegraph.js'); +const { DatabaseSync } = require('node:sqlite'); +let root: string; + +function run(...args: string[]) { + return spawnSync(process.execPath, [BIN, ...args], { + cwd: root, + encoding: 'utf8', + timeout: 30_000, + env: { ...process.env, CODEGRAPH_NO_DAEMON: '1', CODEGRAPH_WASM_RELAUNCHED: '1', NO_COLOR: '1' }, + }); +} + +function setStamp(stamp: number | null) { + const db = new DatabaseSync(path.join(root, '.codegraph', 'codegraph.db')); + try { + if (stamp === null) { + db.prepare('DELETE FROM project_metadata WHERE key = ?').run('indexed_with_extraction_version'); + } else { + db.prepare('UPDATE project_metadata SET value = ? WHERE key = ?') + .run(String(stamp), 'indexed_with_extraction_version'); + } + } finally { + db.close(); + } +} + +beforeEach(async () => { + root = fs.mkdtempSync(path.join(os.tmpdir(), 'codegraph-sync-stale-')); + fs.writeFileSync(path.join(root, 'original.ts'), 'export function original() { return 1; }\n'); + const cg = CodeGraph.initSync(root); + try { await cg.indexAll(); } finally { cg.close(); } +}); + +afterEach(() => fs.rmSync(root, { recursive: true, force: true })); + +describe('explicit CLI sync with stale extraction', () => { + for (const stamp of [EXTRACTION_VERSION - 1, null]) { + for (const quiet of [false, true]) { + it(`rejects stamp ${stamp} before syncing, quiet=${quiet}`, () => { + setStamp(stamp); + const args = quiet ? ['sync', '--quiet'] : ['sync']; + for (const changed of [false, true]) { + if (changed) fs.writeFileSync(path.join(root, 'added.ts'), 'export const added = 2;\n'); + const result = run(...args); + expect(result.status).toBe(1); + const output = result.stdout + result.stderr; + if (quiet) expect(output).toBe(''); + else expect(output).toContain('Run "codegraph index"'); + expect(output).not.toContain('Already up to date'); + const cg = CodeGraph.openSync(root); + try { + expect(cg.isIndexStale()).toBe(true); + expect(cg.getStats().fileCount).toBe(1); + } finally { cg.close(); } + } + }); + } + } + + it.each([false, true])('still syncs a current index, quiet=%s', (quiet) => { + fs.writeFileSync(path.join(root, 'added.ts'), 'export const added = 2;\n'); + expect(run('sync', ...(quiet ? ['--quiet'] : [])).status).toBe(0); + const cg = CodeGraph.openSync(root); + try { + expect(cg.isIndexStale()).toBe(false); + expect(cg.getStats().fileCount).toBe(2); + } finally { cg.close(); } + }); + + it('accepts sync after the prescribed full rebuild', () => { + setStamp(EXTRACTION_VERSION - 1); + expect(run('sync').status).toBe(1); + expect(run('index').status).toBe(0); + expect(run('sync').status).toBe(0); + }); +}); diff --git a/src/bin/codegraph.ts b/src/bin/codegraph.ts index a6fe54c98..a4beda6d2 100644 --- a/src/bin/codegraph.ts +++ b/src/bin/codegraph.ts @@ -955,6 +955,11 @@ program const { default: CodeGraph } = await loadCodeGraph(); const cg = await CodeGraph.open(projectPath); + if (cg.isIndexStale()) { + cg.destroy(); + throw new Error('Index extraction is stale. Run "codegraph index" for a full rebuild before syncing.'); + } + if (options.quiet) { await cg.sync(); cg.destroy(); From 3b8d55ed92117f76ef02c1d2b0f1496b47d4e967 Mon Sep 17 00:00:00 2001 From: Aaron Queen Date: Thu, 10 Sep 2026 23:20:00 -0600 Subject: [PATCH 04/23] fix(status): detect committed but unindexed changes --- CHANGELOG.md | 2 ++ __tests__/sync.test.ts | 20 ++++++++++++++++ src/extraction/index.ts | 52 ++++------------------------------------- 3 files changed, 27 insertions(+), 47 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9b68b091..62c3291f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -145,6 +145,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- `codegraph status` now reports unindexed additions, edits, and deletions even after they have been committed to Git. (#1829) + - Spring mappings now include every declared path combination and resolve constants declared in the same file, while unresolved paths no longer appear as false root routes. (#1461) - `codegraph callers`, `codegraph callees` and `codegraph impact` now resolve qualified names, group results and JSON edges by definition, and accept `--file` to narrow ambiguous names; thanks @ferrine. (#1512, #1656) - `codegraph callers`, `codegraph callees` and `codegraph impact` (CLI and MCP) now report missing names with did-you-mean suggestions instead of another symbol's results, and exact matches with no callers stay empty; thanks @uvmplus. (#1473, #1481) diff --git a/__tests__/sync.test.ts b/__tests__/sync.test.ts index 3ce6a0a86..0944e6752 100644 --- a/__tests__/sync.test.ts +++ b/__tests__/sync.test.ts @@ -219,6 +219,26 @@ describe('Sync Module', () => { } }); + it.each(['added', 'modified', 'removed'] as const)( + 'reports %s files after committing without indexing (#1829)', + async (kind) => { + const relativePath = kind === 'added' ? 'src/new.ts' : 'src/index.ts'; + const filePath = path.join(testDir, relativePath); + if (kind === 'removed') fs.unlinkSync(filePath); + else fs.writeFileSync(filePath, 'export function changed() { return 99; }'); + + const expected = { added: [], modified: [], removed: [], [kind]: [relativePath] }; + // In particular, unstaged deletions remain in git ls-files. + expect(cg.getChangedFiles()).toEqual(expected); + git('add', '--', 'src'); + git('commit', '-m', 'changed without indexing'); + expect(cg.getChangedFiles()).toEqual(expected); + + await cg.sync(); + expect(cg.getChangedFiles()).toEqual({ added: [], modified: [], removed: [] }); + } + ); + it('should detect modified files via git', async () => { fs.writeFileSync( path.join(testDir, 'src', 'index.ts'), diff --git a/src/extraction/index.ts b/src/extraction/index.ts index 8095ee5b5..e349a32c7 100644 --- a/src/extraction/index.ts +++ b/src/extraction/index.ts @@ -3173,53 +3173,10 @@ export class ExtractionOrchestrator { /** * Get files that have changed since last index. - * Uses git status as a fast path when available, falling back to full scan. + * Compare the full source inventory with the index: git status omits + * committed changes that have not been indexed yet (#1829). */ getChangedFiles(): { added: string[]; modified: string[]; removed: string[] } { - const gitChanges = getGitChangedFiles(this.rootDir); - - if (gitChanges) { - // === Git fast path === - const added: string[] = []; - const modified: string[] = []; - const removed: string[] = []; - - // Deleted files — only report if tracked in DB - for (const filePath of gitChanges.deleted) { - const tracked = this.queries.getFileByPath(filePath); - if (tracked) { - removed.push(filePath); - } - } - - // Modified + added files — read + hash, compare with DB. Untracked (`??`) - // files stay untracked in git even after indexing, so they must be - // hash-compared like modified files instead of always counting as added — - // otherwise status reports them as pending forever. (See issue #206.) - for (const filePath of [...gitChanges.modified, ...gitChanges.added]) { - const fullPath = path.join(this.rootDir, filePath); - let content: string; - try { - content = fs.readFileSync(fullPath, 'utf-8'); - } catch (error) { - logDebug('Skipping unreadable file while detecting changes', { filePath, error: String(error) }); - continue; - } - - const contentHash = hashContent(content); - const tracked = this.queries.getFileByPath(filePath); - - if (!tracked) { - added.push(filePath); - } else if (tracked.contentHash !== contentHash) { - modified.push(filePath); - } - } - - return { added, modified, removed }; - } - - // === Fallback: full scan (non-git project or git failure) === const currentFiles = new Set(scanDirectory(this.rootDir)); const trackedFiles = this.queries.getAllFiles(); @@ -3233,9 +3190,10 @@ export class ExtractionOrchestrator { const modified: string[] = []; const removed: string[] = []; - // Find removed files + // git ls-files can still list an unstaged deletion; check disk too, + // matching the full sync reconciliation. for (const tracked of trackedFiles) { - if (!currentFiles.has(tracked.path)) { + if (!currentFiles.has(tracked.path) || !fs.existsSync(path.join(this.rootDir, tracked.path))) { removed.push(tracked.path); } } From a5709f470eb333b2ac14177fc7a82a5c9c24164d Mon Sep 17 00:00:00 2001 From: Aaron Queen Date: Thu, 10 Sep 2026 23:32:45 -0600 Subject: [PATCH 05/23] test(sync): verify committed renames and repeated no-op recovery --- __tests__/sync.test.ts | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/__tests__/sync.test.ts b/__tests__/sync.test.ts index 0944e6752..89f3d8f1f 100644 --- a/__tests__/sync.test.ts +++ b/__tests__/sync.test.ts @@ -239,6 +239,31 @@ describe('Sync Module', () => { } ); + it('detects a committed rename and preserves the graph across repeated no-op syncs', async () => { + git('mv', 'src/index.ts', 'src/renamed.ts'); + git('commit', '-m', 'rename without indexing'); + + expect(cg.getChangedFiles()).toEqual({ + added: ['src/renamed.ts'], modified: [], removed: ['src/index.ts'], + }); + // Status must not discard the last usable graph before sync succeeds. + expect(cg.searchNodes('hello').some(r => r.node.filePath === 'src/index.ts')).toBe(true); + + const renamed = await cg.sync(); + expect(renamed.filesAdded).toBe(1); + expect(renamed.filesRemoved).toBe(1); + const nodes = cg.searchNodes('hello').map(r => r.node); + expect(nodes).toHaveLength(1); + expect(nodes[0].filePath).toBe('src/renamed.ts'); + + for (let i = 0; i < 2; i++) { + expect(cg.getChangedFiles()).toEqual({ added: [], modified: [], removed: [] }); + const unchanged = await cg.sync(); + expect([unchanged.filesAdded, unchanged.filesModified, unchanged.filesRemoved]).toEqual([0, 0, 0]); + expect(cg.searchNodes('hello').map(r => r.node.id)).toEqual(nodes.map(node => node.id)); + } + }); + it('should detect modified files via git', async () => { fs.writeFileSync( path.join(testDir, 'src', 'index.ts'), From 95dccf90dbfbbf3d87d57c3c1f0e09a6e11063e7 Mon Sep 17 00:00:00 2001 From: Aaron Queen Date: Fri, 11 Sep 2026 00:40:21 -0600 Subject: [PATCH 06/23] fix(extraction): retain nested call evidence without guessed targets Keep JS/TS nested call-site text for Steps and framework resolution, and refuse last-name guesses that bound Map.get/set/has to unrelated project methods. --- CHANGELOG.md | 1 + __tests__/kernel-tsjs-parity.test.ts | 25 ++++++++++++++++++++----- __tests__/resolution.test.ts | 24 ++++++++++++++++++++++++ __tests__/ts-chained-receiver.test.ts | 4 ++-- codegraph-kernel/src/tsjs/extractors.rs | 19 +++++++------------ src/extraction/extraction-version.ts | 2 +- src/extraction/tree-sitter.ts | 22 ++++++++-------------- src/resolution/index.ts | 10 +++++++++- src/resolution/js-builtins.ts | 15 +++++++++++++++ src/resolution/name-matcher.ts | 5 ++++- 10 files changed, 91 insertions(+), 36 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c9b68b091..d341407cc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -145,6 +145,7 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- Nested JavaScript and TypeScript calls now remain available to Steps and framework resolution without linking built-in collection calls to unrelated project methods; rebuild existing indexes to refresh these results. (#1794, #1566) - Spring mappings now include every declared path combination and resolve constants declared in the same file, while unresolved paths no longer appear as false root routes. (#1461) - `codegraph callers`, `codegraph callees` and `codegraph impact` now resolve qualified names, group results and JSON edges by definition, and accept `--file` to narrow ambiguous names; thanks @ferrine. (#1512, #1656) - `codegraph callers`, `codegraph callees` and `codegraph impact` (CLI and MCP) now report missing names with did-you-mean suggestions instead of another symbol's results, and exact matches with no callers stay empty; thanks @uvmplus. (#1473, #1481) diff --git a/__tests__/kernel-tsjs-parity.test.ts b/__tests__/kernel-tsjs-parity.test.ts index 3d4316a34..46ef15f89 100644 --- a/__tests__/kernel-tsjs-parity.test.ts +++ b/__tests__/kernel-tsjs-parity.test.ts @@ -98,24 +98,39 @@ describe.skipIf(!kernelBuilt)('kernel TS/JS extraction parity', () => { it.each([ ['ts', 'typescript'], ['tsx', 'tsx'], ['js', 'javascript'], ['jsx', 'jsx'], - ] as const)('leaves nested identifier receivers unresolved and keeps argument calls: %s (#1566)', (ext, language) => { - const result = assertParity(`fixture.${ext}`, ` + ] as const)('preserves nested receivers and argument calls: %s (#1794)', (ext, language) => { + const source = ` function readKey() { return 'answer'; } function local() { const values = new Map(); return values.get(readKey()); } -function nested(holder) { +function nested(holder, höldér) { holder.values.get(readKey()); holder.values?.get(readKey()); holder['values'].get(readKey()); holder.deep.values.get(readKey()); + holder?.values.get(readKey()); + holder[readKey()].get(readKey()); + holder[0].get(readKey()); + holder["odd.key"].get(readKey()); + holder /* receiver */.values.get(readKey()); + höldér.values.get(readKey()); } -`, language); +`; + const result = assertParity(`fixture.${ext}`, source, language); + assertParity(`fixture-crlf.${ext}`, source.replace(/\n/g, '\r\n'), language); const nested = result.nodes.find((n) => n.name === 'nested' && n.kind === 'function'); expect(nested).toBeDefined(); expect(result.unresolvedReferences.filter((r) => r.referenceKind === 'calls' && r.fromNodeId === nested!.id) - .map((r) => r.referenceName)).toEqual(['readKey', 'readKey', 'readKey', 'readKey']); + .map((r) => r.referenceName)).toEqual([ + 'holder.values.get', 'readKey', 'holder.values.get', 'readKey', + "holder['values'].get", 'readKey', 'holder.deep.values.get', 'readKey', + 'holder?.values.get', 'readKey', 'holder[readKey()].get', 'readKey', 'readKey', + 'holder[0].get', 'readKey', 'holder["odd.key"].get', 'readKey', + 'holder /* receiver */.values.get', 'readKey', + 'höldér.values.get', 'readKey', + ]); expect(result.unresolvedReferences.some((r) => r.referenceName === 'values.get')).toBe(true); }); diff --git a/__tests__/resolution.test.ts b/__tests__/resolution.test.ts index b8d25f6b8..f3cf1cc0c 100644 --- a/__tests__/resolution.test.ts +++ b/__tests__/resolution.test.ts @@ -2316,6 +2316,30 @@ func main() { }); describe('Local-variable receiver-type inference (#1108)', () => { + it.each(['ts', 'tsx', 'js', 'jsx'])('keeps compound receiver evidence without guessing targets — %s (#1794)', async (ext) => { + fs.writeFileSync(path.join(tempDir, `holder.${ext}`), 'export const holder = { values: new Map() };'); + const receivers = [ + 'holder?.values', 'holder[readKey()]', 'holder[0]', 'holder["odd.key"]', + 'holder /* receiver */.values', 'höldér.values', 'imported.values', 'data.holder.values', + ]; + fs.writeFileSync(path.join(tempDir, `calls.${ext}`), ` +import { holder as imported } from './holder'; +import * as data from './holder'; +export class Collision { get(key) { return key; } } +export function readKey() { return 'values'; } +${receivers.map((receiver, i) => `export function nested${i}(holder, höldér) { return ${receiver}.get(readKey()); }`).join('\n')} +`); + cg = await CodeGraph.init(tempDir, { index: true }); + for (let i = 0; i < receivers.length; i++) { + const caller = cg.getNodesByName(`nested${i}`).find(n => n.kind === 'function')!; + const callees = cg.getCallees(caller.id).filter(({ edge }) => edge.kind === 'calls'); + // Argument and computed-key calls survive, but neither an imported + // root object nor Collision.get is evidence of the called member. + expect(callees.length, receivers[i]).toBeGreaterThan(0); + expect(callees.every(({ node }) => node.name === 'readKey'), receivers[i]).toBe(true); + } + }); + it.each(['ts', 'tsx', 'js', 'jsx'])('keeps built-in Map calls off project methods — %s (#1566)', async (ext) => { const typed = ext === 'ts' || ext === 'tsx'; fs.writeFileSync(path.join(tempDir, `cache.${ext}`), ` diff --git a/__tests__/ts-chained-receiver.test.ts b/__tests__/ts-chained-receiver.test.ts index 267aadb8c..a544163b9 100644 --- a/__tests__/ts-chained-receiver.test.ts +++ b/__tests__/ts-chained-receiver.test.ts @@ -3,8 +3,8 @@ * .get(k)`, `document.body.querySelector(s)` — ends in a platform API. Emitting * the bare method name for it let every such call exact-match whatever project * symbol shared the name, so a storage wrapper's `get` called itself (#1707). - * Those are dropped, as are untyped identifier chains (#1566). The existing - * `window.MyNs.run()` and `this..m()` paths remain outside that guard. + * Complete call references are retained; only proven targets become edges. + * `window.MyNs.run()` and `this..m()` keep their existing resolution. */ import { describe, it, expect, beforeAll, afterAll } from 'vitest'; diff --git a/codegraph-kernel/src/tsjs/extractors.rs b/codegraph-kernel/src/tsjs/extractors.rs index 83f070b76..249a46c84 100644 --- a/codegraph-kernel/src/tsjs/extractors.rs +++ b/codegraph-kernel/src/tsjs/extractors.rs @@ -1130,10 +1130,9 @@ impl<'t> Walker<'t> { // --- extractCall (TS/JS generic tail) ------------------------------------------------- - /// Identifier-rooted member chains have no inferred property type (#1566), - /// including host API chains (#1707). Keep the existing window namespace - /// escape; call-result and `this` receivers are outside this guard. - fn is_unresolved_member_chain(&self, receiver: Node<'t>) -> bool { + /// Identifier-rooted nested receivers retain their full call-site text. + /// Preserve the existing window namespace escape (#1794, #1566). + fn is_identifier_chain(&self, receiver: Node<'t>) -> bool { let mut cur = receiver; if !matches!(cur.kind(), "member_expression" | "subscript_expression") { return false; @@ -1174,14 +1173,6 @@ impl<'t> Walker<'t> { if is_literal_receiver(r.kind()) { return; } - // `holder.values.get()` has no inferred property type - // (#1566). Dropping the receiver or merely preserving it - // would allow unrelated same-name method guesses. Emit - // nothing, as for host chains (#1707); argument calls are - // visited independently. Mirrors extractCall in TS. - if self.is_unresolved_member_chain(r) { - return; - } } let recv_ident = receiver.filter(|r| { matches!(r.kind(), "identifier" | "simple_identifier" | "field_identifier") @@ -1205,6 +1196,10 @@ impl<'t> Walker<'t> { // TreeSitterExtractor.extractCall. let Some(inner) = self.plain_inner_callee(r) else { return }; callee_name = format!("{inner}().{method_name}"); + } else if let Some(r) = receiver.filter(|r| self.is_identifier_chain(*r)) { + // Frameworks and Steps need the call site even when + // generic resolution cannot prove a target (#1794). + callee_name = format!("{}.{method_name}", self.text(r)); } else { callee_name = method_name.to_string(); } diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index 8ddab13b8..3691e95f0 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 26; +export const EXTRACTION_VERSION = 27; diff --git a/src/extraction/tree-sitter.ts b/src/extraction/tree-sitter.ts index 20f5dbb26..b96ab74b4 100644 --- a/src/extraction/tree-sitter.ts +++ b/src/extraction/tree-sitter.ts @@ -411,12 +411,10 @@ const TS_JS_CHAIN_LANGUAGES = new Set(['typescript', 'tsx', 'javascript', 'jsx'] const TS_JS_CHAIN_RECEIVER_TYPES = new Set(['member_expression', 'subscript_expression']); /** - * Identifier-rooted member chains have no inferred property type (#1566), - * including host API chains (#1707). Keep the existing `window.MyNamespace` - * escape for project globals; call-result and `this` receivers have their own - * paths and are outside this guard. + * Nested identifier receivers retain their call-site text; window keeps its + * existing project-namespace behavior. Call-result and this paths are separate. */ -function isUnresolvedTsJsChain(node: SyntaxNode, source: string): boolean { +function isTsJsIdentifierChain(node: SyntaxNode, source: string): boolean { let cur: SyntaxNode | null = node; while (cur && TS_JS_CHAIN_RECEIVER_TYPES.has(cur.type)) { cur = getChildByField(cur, 'object'); @@ -4868,16 +4866,12 @@ export class TreeSitterExtractor { TS_JS_CHAIN_LANGUAGES.has(this.language) && receiver && TS_JS_CHAIN_RECEIVER_TYPES.has(receiver.type) && - isUnresolvedTsJsChain(receiver, this.source) + isTsJsIdentifierChain(receiver, this.source) ) { - // `holder.values.get()` has no inferred property type (#1566). - // Emitting bare `get` exact-matches an unrelated project method; - // preserving the chain alone would still allow receiver guessing. - // Emit nothing until the property type can be established. This - // also covers host chains such as `chrome.storage.local.get()` - // (#1707). Calls inside arguments are visited independently. - // Mirrored in the kernel's extract_call (tsjs/extractors.rs). - return; + // Keep call-site evidence for framework resolution and Steps. + // Generic resolution must not guess a target from the last name + // when the nested receiver's type is unknown (#1794, #1566). + calleeName = `${getNodeText(receiver, this.source)}.${methodName}`; } else { calleeName = methodName; } diff --git a/src/resolution/index.ts b/src/resolution/index.ts index 011e0e0f2..ee95cd5a8 100644 --- a/src/resolution/index.ts +++ b/src/resolution/index.ts @@ -33,7 +33,7 @@ import { logDebug } from '../errors'; import { lexicalPathWithinRoot } from '../utils'; import type { ReExport } from './types'; import { LRUCache } from './lru-cache'; -import { JS_BUILT_INS } from './js-builtins'; +import { JS_BUILT_INS, isTsJsNestedCall } from './js-builtins'; /** Node kinds that can declare supertypes (extends/implements). */ const SUPERTYPE_BEARING_KINDS = new Set([ @@ -1021,6 +1021,14 @@ export class ReferenceResolver { if (this.profileStages) this.stageAdd('frameworks', ref, fwEarly !== null, tFw); if (fwEarly) return fwEarly; + // An imported root is not the called nested member. Keep framework + // evidence, but never bind holder.values.get to holder or an unrelated get. + if (isTsJsNestedCall(ref)) { + return candidates.length > 0 + ? candidates.reduce((best, curr) => curr.confidence > best.confidence ? curr : best) + : null; + } + // Strategy 2: Try import-based resolution // A TS/JS/Python call-receiver chain (`useStore.getState().reset`, #1683) // names the ROOT's import, not the method's: letting resolveViaImport see diff --git a/src/resolution/js-builtins.ts b/src/resolution/js-builtins.ts index ad3e33879..77e0b5941 100644 --- a/src/resolution/js-builtins.ts +++ b/src/resolution/js-builtins.ts @@ -1,3 +1,5 @@ +import type { UnresolvedRef } from './types'; + /** Shared JS/TS built-ins for direct references and inferred receiver types. */ export const JS_BUILT_INS = new Set([ 'console', 'window', 'document', 'global', 'process', @@ -6,3 +8,16 @@ export const JS_BUILT_INS = new Set([ 'setTimeout', 'setInterval', 'clearTimeout', 'clearInterval', 'fetch', 'require', 'module', 'exports', '__dirname', '__filename', ]); + +/** Nested property calls need framework evidence, not a last-name guess. */ +export function isTsJsNestedCall(ref: UnresolvedRef): boolean { + if (ref.referenceKind !== 'calls' || + !['typescript', 'tsx', 'javascript', 'jsx'].includes(ref.language)) return false; + const receiver = ref.referenceName.slice(0, ref.referenceName.lastIndexOf('.')).trim(); + // Call-result chains have their own validated store/factory resolution. + if (receiver.endsWith('()')) return false; + // The extractors preserve compound receiver text, including brackets, + // optional access and comments. A simple receiver is just the root itself. + const root = receiver.split(/[.\[?\s]/, 1)[0]; + return receiver !== root && root !== 'this' && root !== 'window'; +} diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index 4db2c1f17..88c99af58 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -8,7 +8,7 @@ import * as path from 'path'; import { Language, Node } from '../types'; import { UnresolvedRef, ResolvedRef, ResolutionContext, SUPERTYPE_TARGET_KINDS, isInheritanceRef, isImportableKind } from './types'; import { blankStringContents, stripCommentsForRegex } from './strip-comments'; -import { JS_BUILT_INS } from './js-builtins'; +import { JS_BUILT_INS, isTsJsNestedCall } from './js-builtins'; /** * Ceiling on how many same-named definitions a FUZZY name-match strategy will @@ -3149,6 +3149,9 @@ export function matchReference( } } + // No generic fallback can establish an unknown nested receiver's type. + if (isTsJsNestedCall(ref)) return null; + // Try strategies in order of confidence let result: ResolvedRef | null; From 97de99bc58b1b5765bbf40fc1d14d632489cae03 Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 10:27:28 +0300 Subject: [PATCH 07/23] =?UTF-8?q?fix:=20=D1=83=D1=81=D0=BA=D0=BE=D1=80?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80=D0=BA?= =?UTF-8?q?=D1=83=20=D0=B8=D0=BD=D0=B4=D0=B5=D0=BA=D1=81=D0=B0=20=D0=B8=20?= =?UTF-8?q?=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD=D0=B8=D1=82=D1=8C=20=D0=BA?= =?UTF-8?q?=D0=BE=D1=80=D1=80=D0=B5=D0=BA=D1=82=D0=BD=D0=BE=D1=81=D1=82?= =?UTF-8?q?=D1=8C=20=D1=81=D0=B2=D1=8F=D0=B7=D0=B5=D0=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 + __tests__/awaited-receiver.test.ts | 33 +++ __tests__/cli-sync-stale-index.test.ts | 7 +- __tests__/sync-rebuild-convergence.test.ts | 80 +++++++ __tests__/sync.test.ts | 209 +++++++++++++++++ docs/validation-index-fast-path-2026-09-12.md | 100 ++++++++ src/bin/codegraph.ts | 7 +- src/db/queries.ts | 15 ++ src/extraction/extraction-version.ts | 2 +- src/extraction/index.ts | 217 +++++++++++++++--- src/index.ts | 26 +++ src/resolution/name-matcher.ts | 17 ++ 12 files changed, 685 insertions(+), 32 deletions(-) create mode 100644 __tests__/awaited-receiver.test.ts create mode 100644 docs/validation-index-fast-path-2026-09-12.md diff --git a/CHANGELOG.md b/CHANGELOG.md index eb85fb0f1..7954c8e82 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -157,6 +157,10 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). #### MCP / indexing +- При отказе `codegraph sync --quiet` из-за устаревшего индекса причина теперь выводится одной строкой в stderr. +- Прерывание повторного разрешения связей больше не оставляет граф без исходной связи и записи восстановления. +- В TypeScript вызов метода у результата `await` с объявленным `Promise` больше не связывается с одноимённым методом постороннего класса. + - The prompt hook no longer injects unrelated projects when run from your home directory or a broader directory containing a stray workspace manifest. (#1454) - Indexing now succeeds when Node.js's SQLite lacks FTS5, with search falling back to name and fuzzy matching; thanks @aniruddhaadak80. (#1532) diff --git a/__tests__/awaited-receiver.test.ts b/__tests__/awaited-receiver.test.ts new file mode 100644 index 000000000..1a92c476a --- /dev/null +++ b/__tests__/awaited-receiver.test.ts @@ -0,0 +1,33 @@ +import { describe, it, expect } from 'vitest'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { CodeGraph } from '../src'; + +describe('awaited receiver return types (#1840)', () => { + it.each(['string', 'PaneManager'])('resolves awaited %s without guessing unrelated methods', async (type) => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-awaited-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'source.ts'), ` +export class PaneManager { split() { return 'pane'; } } +export async function make(): Promise<${type}> { return ${type === 'string' ? "'a,b'" : 'new PaneManager()'}; } +export async function snapshot() { + const listed = await make(); + return listed.split(','); +} +export function actual() { const pane = new PaneManager(); return pane.split(); } +`); + cg = CodeGraph.initSync(root); + await cg.indexAll(); + const callees = (name: string) => { + const node = cg!.getNodesByName(name).find(n => n.kind === 'function')!; + return cg!.getCallees(node.id).filter(x => x.edge.kind === 'calls').map(x => x.node.name); + }; + expect(callees('snapshot')).toContain('make'); + if (type === 'string') expect(callees('snapshot')).not.toContain('split'); + else expect(callees('snapshot')).toContain('split'); + expect(callees('actual')).toContain('split'); + } finally { cg?.close(); fs.rmSync(root, {recursive: true, force: true}); } + }); +}); diff --git a/__tests__/cli-sync-stale-index.test.ts b/__tests__/cli-sync-stale-index.test.ts index a07492251..3656efae6 100644 --- a/__tests__/cli-sync-stale-index.test.ts +++ b/__tests__/cli-sync-stale-index.test.ts @@ -53,8 +53,11 @@ describe('explicit CLI sync with stale extraction', () => { const result = run(...args); expect(result.status).toBe(1); const output = result.stdout + result.stderr; - if (quiet) expect(output).toBe(''); - else expect(output).toContain('Run "codegraph index"'); + expect(output).toContain('Run "codegraph index"'); + if (quiet) { + expect(result.stdout).toBe(''); + expect(result.stderr.trim().split('\n')).toHaveLength(1); + } expect(output).not.toContain('Already up to date'); const cg = CodeGraph.openSync(root); try { diff --git a/__tests__/sync-rebuild-convergence.test.ts b/__tests__/sync-rebuild-convergence.test.ts index fc9c626ae..688e5e37c 100644 --- a/__tests__/sync-rebuild-convergence.test.ts +++ b/__tests__/sync-rebuild-convergence.test.ts @@ -146,6 +146,86 @@ describe('Incremental sync converges to a full rebuild (CG-33)', () => { expect(describeDiff(synced, rebuilt)).toBe('missing from synced: 0, stale in synced: 0'); }); + it('keeps one edge when re-resolution selects the same target', async () => { + write('src/caller.ts', `export function run(): number {\n return pct(1);\n}\n`); + write('src/alpha.ts', `export function pct(n: number): number {\n return n;\n}\n`); + cg = CodeGraph.initSync(testDir, { config: { include: ['**/*.ts'], exclude: [] } }); + await cg.indexAll(); + + // zeta.ts introduces a competing definition, so the existing edge is + // reopened, but alpha.ts remains the deterministic first candidate. + write('src/zeta.ts', `export function pct(n: number): number {\n return n * 2;\n}\n`); + const result = await cg.sync(); + expect(result.definitionDelta).toContain('pct'); + + const targets = withDb((db) => + ( + db + .prepare( + `SELECT target.file_path AS file + FROM edges edge + JOIN nodes source ON source.id = edge.source + JOIN nodes target ON target.id = edge.target + WHERE source.name = 'run' + AND target.name = 'pct' + AND edge.kind = 'calls'` + ) + .all() as Array<{ file: string }> + ).map((row) => row.file) + ); + expect(targets).toEqual(['src/alpha.ts']); + }); + + it('rolls back edge deletion when requeueing its reference is interrupted', async () => { + write('src/caller.ts', `export function run(): number {\n return pct(1);\n}\n`); + write('src/zeta.ts', `export function pct(n: number): number {\n return n;\n}\n`); + cg = CodeGraph.initSync(testDir, { config: { include: ['**/*.ts'], exclude: [] } }); + await cg.indexAll(); + + const originalEdge = withDb((db) => { + const row = db + .prepare( + `SELECT edge.source, edge.target, edge.kind + FROM edges edge + JOIN nodes source ON source.id = edge.source + JOIN nodes target ON target.id = edge.target + WHERE source.name = 'run' + AND target.name = 'pct' + AND edge.kind = 'calls'` + ) + .get() as { source: string; target: string; kind: string }; + db.exec( + `CREATE TRIGGER interrupt_pct_requeue + BEFORE INSERT ON unresolved_refs + WHEN NEW.reference_name = 'pct' + BEGIN + SELECT RAISE(ABORT, 'forced rebind interruption'); + END;` + ); + return `${row.source}|${row.target}|${row.kind}`; + }); + + write('src/alpha.ts', `export function pct(n: number): number {\n return n * 2;\n}\n`); + await expect(cg.sync()).rejects.toThrow(/forced rebind interruption/); + + // A failed requeue leaves the last committed graph answer untouched. + expect(edgeSet().has(originalEdge)).toBe(true); + const queued = withDb( + (db) => + ( + db + .prepare( + `SELECT COUNT(*) AS count + FROM unresolved_refs ref + JOIN nodes source ON source.id = ref.from_node_id + WHERE source.name = 'run' AND ref.reference_name = 'pct'` + ) + .get() as { count: number } + ).count + ); + expect(queued).toBe(0); + }); + /** * The mirror direction: removing a definition narrows the candidate set too, * so the delta must include names the sync DROPPED, not just names it added. diff --git a/__tests__/sync.test.ts b/__tests__/sync.test.ts index 89f3d8f1f..3cd5f336a 100644 --- a/__tests__/sync.test.ts +++ b/__tests__/sync.test.ts @@ -926,3 +926,212 @@ describe('Scoped sync parity (#watcher-scoped)', () => { expect(cg.searchNodes('gamma').length).toBe(1); }); }); + +// A change that is COMMITTED but not yet indexed used to read as zero pending +// changes: getChangedFiles' git fast path built its candidate list from +// `git status --porcelain`, and committing is exactly what removes a file from +// that output. The hash comparison below it was correct and simply never +// reached. Committed work is now sourced from `git diff HEAD`. +// (#1829) +describe('committed-but-unindexed changes (#1829)', () => { + let testDir: string; + let cg: CodeGraph; + + const git = (...args: string[]) => + execFileSync('git', args, { cwd: testDir, encoding: 'utf-8', stdio: ['pipe', 'pipe', 'pipe'] }); + + beforeEach(async () => { + testDir = fs.mkdtempSync(path.join(os.tmpdir(), 'codegraph-1829-')); + git('init'); + git('config', 'user.email', 'test@test.com'); + git('config', 'user.name', 'Test'); + + fs.mkdirSync(path.join(testDir, 'src')); + fs.writeFileSync(path.join(testDir, 'src', 'one.ts'), `export function alpha() { return 1; }`); + git('add', '-A'); + git('commit', '-m', 'initial'); + + cg = CodeGraph.initSync(testDir, { config: { include: ['**/*.ts'], exclude: [] } }); + await cg.indexAll(); + }); + + afterEach(() => { + if (cg) cg.destroy(); + if (fs.existsSync(testDir)) fs.rmSync(testDir, { recursive: true, force: true }); + }); + + it('sees a committed NEW file (git status shows nothing; the DB has no row)', async () => { + fs.writeFileSync(path.join(testDir, 'src', 'two.ts'), `export function beta() { return 2; }`); + git('add', '-A'); + git('commit', '-m', 'add two'); + + const changes = cg.getChangedFiles(); + expect(changes.added).toContain('src/two.ts'); + + // status and sync must agree — the whole point is that the number a user + // reads matches the work that is actually outstanding. + const result = await cg.sync(); + expect(result.filesAdded).toBe(1); + expect(cg.searchNodes('beta').length).toBeGreaterThan(0); + }); + + it('sees a committed MODIFICATION to an already-tracked file', async () => { + fs.writeFileSync(path.join(testDir, 'src', 'one.ts'), `export function alphaRenamed() { return 99; }`); + git('add', '-A'); + git('commit', '-m', 'edit one'); + + expect(cg.getChangedFiles().modified).toContain('src/one.ts'); + const result = await cg.sync(); + expect(result.filesModified).toBe(1); + expect(cg.searchNodes('alphaRenamed').length).toBeGreaterThan(0); + }); + + it('sees a committed DELETE', async () => { + fs.writeFileSync(path.join(testDir, 'src', 'two.ts'), `export function beta() { return 2; }`); + git('add', '-A'); + git('commit', '-m', 'add two'); + await cg.sync(); + + fs.rmSync(path.join(testDir, 'src', 'two.ts')); + git('add', '-A'); + git('commit', '-m', 'remove two'); + + expect(cg.getChangedFiles().removed).toContain('src/two.ts'); + const result = await cg.sync(); + expect(result.filesRemoved).toBe(1); + }); + + it('reports zero once the sync has absorbed the commit (the stamp advances)', async () => { + fs.writeFileSync(path.join(testDir, 'src', 'two.ts'), `export function beta() { return 2; }`); + git('add', '-A'); + git('commit', '-m', 'add two'); + await cg.sync(); + + const after = cg.getChangedFiles(); + expect(after.added).toHaveLength(0); + expect(after.modified).toHaveLength(0); + expect(after.removed).toHaveLength(0); + }); + + it('counts a file once when it was committed AND edited again since', async () => { + // The same path now reaches the candidate list from both sources — the + // committed diff and `git status`. It is still one changed file. + fs.writeFileSync(path.join(testDir, 'src', 'one.ts'), `export function alpha() { return 2; }`); + git('add', '-A'); + git('commit', '-m', 'edit one'); + fs.writeFileSync(path.join(testDir, 'src', 'one.ts'), `export function alpha() { return 3; }`); + + const changes = cg.getChangedFiles(); + expect(changes.modified.filter((f) => f === 'src/one.ts')).toHaveLength(1); + expect(changes.added).toHaveLength(0); + + const result = await cg.sync(); + expect(result.filesModified).toBe(1); + }); + + it('sees a committed RENAME as a removal plus an add', async () => { + // `--no-renames` on the committed diff is deliberate: the index keys files + // by path, so a rename IS a removal and an add, and pairing them up would + // only have to be taken apart again. + fs.renameSync(path.join(testDir, 'src', 'one.ts'), path.join(testDir, 'src', 'renamed.ts')); + git('add', '-A'); + git('commit', '-m', 'rename one'); + + const changes = cg.getChangedFiles(); + expect(changes.removed).toContain('src/one.ts'); + expect(changes.added).toContain('src/renamed.ts'); + + const result = await cg.sync(); + expect(result.filesRemoved).toBe(1); + expect(result.filesAdded).toBe(1); + expect(cg.searchNodes('alpha').every((r) => r.node.filePath !== 'src/one.ts')).toBe(true); + }); + + it('still filters committed changes by the rules the full index uses', async () => { + // vendor/ is a built-in exclude git knows nothing about. Sourcing candidates + // from `git diff` must not smuggle in files `git status` would have had + // filtered out (#766) — same classifier, both sources. + fs.mkdirSync(path.join(testDir, 'vendor')); + fs.writeFileSync(path.join(testDir, 'vendor', 'lib.ts'), `export function vendored() { return 1; }`); + git('add', '-A'); + git('commit', '-m', 'add vendor'); + + const changes = cg.getChangedFiles(); + expect(changes.added).not.toContain('vendor/lib.ts'); + expect(changes.modified).not.toContain('vendor/lib.ts'); + }); + + it('falls back to the full scan when history moved under the index', async () => { + // A rebase/gc/shallow clone can leave the stamped commit unreachable. The + // fast path cannot diff against a commit that is gone, so the (correct, + // slower) full scan has to answer instead of silently reporting zero. + fs.writeFileSync(path.join(testDir, 'src', 'two.ts'), `export function beta() { return 2; }`); + git('add', '-A'); + git('commit', '-m', 'add two'); + (cg as unknown as { queries: { setMetadata(k: string, v: string): void } }) + .queries.setMetadata('indexed_at_commit', '0'.repeat(40)); + + expect(cg.getChangedFiles().added).toContain('src/two.ts'); + }); + + it('an index with no stamp still answers correctly (pre-#1829 index upgrading)', async () => { + (cg as unknown as { queries: { setMetadata(k: string, v: string): void } }) + .queries.setMetadata('indexed_at_commit', ''); + fs.writeFileSync(path.join(testDir, 'src', 'two.ts'), `export function beta() { return 2; }`); + git('add', '-A'); + git('commit', '-m', 'add two'); + + expect(cg.getChangedFiles().added).toContain('src/two.ts'); + + // ...and it self-heals: the sync writes a stamp, so the next read is clean. + await cg.sync(); + expect(cg.getChangedFiles().added).toHaveLength(0); + }); + it('keeps the remaining committed diff after a scoped sync', async () => { + fs.writeFileSync(path.join(testDir, 'src', 'one.ts'), 'export function changed() {}'); + fs.writeFileSync(path.join(testDir, 'src', 'two.ts'), 'export function beta() {}'); + git('add', '-A'); git('commit', '-m', 'two changes'); + await cg.sync({ paths: ['src/two.ts'] }); + expect(cg.getChangedFiles().modified).toContain('src/one.ts'); + await cg.sync(); + expect(cg.getChangedFiles()).toEqual({ added: [], modified: [], removed: [] }); + }); + + it('preserves a committed deletion recreated with the indexed content', async () => { + const file = path.join(testDir, 'src', 'one.ts'); + const content = fs.readFileSync(file, 'utf8'); + fs.rmSync(file); git('add', '-A'); git('commit', '-m', 'delete'); + fs.writeFileSync(file, content); + expect(cg.getChangedFiles()).toEqual({ added: [], modified: [], removed: [] }); + await cg.sync(); + expect(cg.searchNodes('alpha').length).toBeGreaterThan(0); + }); + + it('reads committed non-ASCII paths without git quoting', () => { + fs.writeFileSync(path.join(testDir, 'src', 'пример.ts'), 'export function beta() {}'); + git('add', '-A'); git('commit', '-m', 'unicode'); + expect(cg.getChangedFiles().added).toContain('src/пример.ts'); + }); + + it('finds an unstaged removal when an old stamp requires the fallback', () => { + (cg as unknown as { queries: { setMetadata(k: string, v: string): void } }) + .queries.setMetadata('indexed_at_commit', ''); + fs.rmSync(path.join(testDir, 'src', 'one.ts')); + expect(cg.getChangedFiles().removed).toContain('src/one.ts'); + }); + + it('does not absorb a commit made during full indexing', async () => { + const before = git('rev-parse', 'HEAD').trim(); + let committed = false; + await cg.indexAll({ onProgress: () => { + if (committed) return; + committed = true; + fs.writeFileSync(path.join(testDir, 'src', 'two.ts'), 'export function beta() {}'); + git('add', '-A'); git('commit', '-m', 'during index'); + }}); + expect(committed).toBe(true); + const queries = (cg as unknown as { queries: { getMetadata(k: string): string } }).queries; + expect(queries.getMetadata('indexed_at_commit')).toBe(before); + }); + +}); diff --git a/docs/validation-index-fast-path-2026-09-12.md b/docs/validation-index-fast-path-2026-09-12.md new file mode 100644 index 000000000..327ba6f7f --- /dev/null +++ b/docs/validation-index-fast-path-2026-09-12.md @@ -0,0 +1,100 @@ +# Пересмотр проверки актуальности индекса — 12 сентября 2026 + +## Решение и источник + +В checkout `/home/danik/storage/codegraph-fix-20260911` поверх `086e577b` +проверка полного inventory из #1843 заменена подходом #1848 +(`496f1f4eef7501e737033452fe74526eee543325`). + +- Обсуждение: https://github.com/colbymchenry/codegraph/pull/1843 +- Альтернатива: https://github.com/colbymchenry/codegraph/pull/1848 + +На момент проверки #1848 открыт. Автор #1843 закрыл свой PR в пользу +альтернативы; это не подтверждение слияния или решения владельца upstream. + +Индекс хранит `indexed_at_commit`. Проверка объединяет рабочие изменения +Git с diff между сохранённым коммитом и HEAD и хеширует только кандидатов. +Если отметка отсутствует или недоступна, используется полный inventory. +Полный sync обновляет отметку; частичный sync её сохраняет. +Сам filesystem reconcile внутри sync сохраняется. + +## Дополнения к #1848 + +- HEAD для полной индексации фиксируется до начала работы, чтобы коммит во + время индексации не считался автоматически обработанным. +- Ошибка committed diff переводит проверку на полный inventory. +- NUL-разделители committed diff сохраняют имена с кириллицей и табуляцией. +- Удалённый коммитом, но восстановленный на диске файл проверяется по + текущему содержимому; его символы не удаляются из-за устаревшего статуса D. +- Fallback сохраняет проверку существования файла для unstaged удаления. + +Исправления extraction/store и CLI guard из предыдущей сборки сохранены. + +## Проверки + +Linux x64, Node 24.15.0. + +- WASM (`CODEGRAPH_KERNEL=0`): 73 passed, 4 файла — sync, + include-ignored-config, git-changed-untracked-dir, extraction-old-git. +- Native (`CODEGRAPH_KERNEL_EXPECT=1`): тот же набор, 73 passed. +- Native: cli-sync-stale-index и object-literal-methods, 15 passed. +- `npx tsc --noEmit`: успешно. +- `npm run build`: успешно, viewer и 29 WASM-грамматик проверены. +- `git diff --check`: успешно. + +Добавлены девять тестов upstream и пять дополнительных регрессий: частичный +sync, восстановление удалённого файла, Unicode, fallback удаления и коммит +во время полной индексации. Старые тесты committed rename/no-op сохранены. + +Полный suite, Windows/macOS не запускались. Предыдущие результаты полного +suite относятся к `086e577b`, а не к этим изменениям. + +## Локальное сравнение скорости + +Синтетический Git-репозиторий: 2000 TypeScript-файлов, около 8.87 MB. +Два прогрева, 10 измерений каждого варианта, порядок чередуется. +Сравнивались метод из `086e577b` и новая сборка; одинаковые записи хешей +в памяти, без SQLite и без построения графа. Каждый набор изменений +проверялся assertion. В таблице верхняя медиана десяти измерений. + +| Состояние | Полный inventory, мс | Git + committed diff, мс | +|---|---:|---:| +| Чистое | 57.60 | 19.88 | +| Незакоммиченная правка | 56.64 | 20.09 | +| Та же правка после commit | 57.32 | 24.24 | + +Это тёплый in-process microbenchmark, не end-to-end CLI и не реальный +крупный проект. Результаты и скрипт: `.scratch/freshness-benchmark.json` +и `.scratch/freshness-bench.cjs` (локальные, исключены из VCS). + +Ограничение подхода upstream: изменения, скрытые через `assume-unchanged`, +могут отсутствовать в Git-кандидатах; полного сканирования на каждом status +больше нет. Для полного обновления остаётся полная индексация. + +## Состояние доставки + +Исходники и локальная сборка обновлены. Команда на PATH уже ссылается на +`dist/bin/codegraph.js` этого checkout. Существующие MCP-процессы не +перезапускались. Эта редакция подготовлена для публикации в ветке `fix/call-evidence-index-freshness` и обновления draft PR #1845; SHA публикации проверяется отдельно по remote. + +## Последующие исправления в той же локальной редакции + +- Перенесён quiet stderr из #1842 (`cb8dbdc3`): одинарная строка объяснения, + пустой stdout, exit 1 при старом или отсутствующем extraction stamp. +- Перенесён атомарный rebind #1849 (`e4c931a7`): удаление edges и запись + unresolved_refs объединены транзакцией. Тест с SQL-trigger RAISE(ABORT) + подтверждает сохранение исходной связи после неудачной записи. +- Исправлен repro #1840: локальный receiver, полученный через await простого + вызова, использует явно объявленный Promise разрешённой функции. + Примитивный тип не допускает fallback к постороннему методу; настоящий + Promise и new PaneManager сохраняют вызов split. + Это ограниченная инференция явной сигнатуры, не полный TypeScript type checker. +- Extraction stamp повышен с 27 до 28; уже построенным индексам нужен полный + rebuild. Автоматическую переиндексацию пользовательских проектов не запускали. + +Тест #1840 перед исправлением: 1 failed / 1 passed; после — 2 passed. +WASM: 292 passed / 6 файлов, включая resolution и sync-rebuild-convergence. +Native: 299 passed / 7 файлов, тот же набор плюс cli-sync-stale-index. +Сборка viewer/engine и TypeScript успешны. Реальный probe на dist показывает +только snapshot → listPaths; связи snapshot → PaneManager.split больше нет. +Полный suite и Windows/macOS не запускались. diff --git a/src/bin/codegraph.ts b/src/bin/codegraph.ts index a4beda6d2..e8320f670 100644 --- a/src/bin/codegraph.ts +++ b/src/bin/codegraph.ts @@ -957,7 +957,12 @@ program if (cg.isIndexStale()) { cg.destroy(); - throw new Error('Index extraction is stale. Run "codegraph index" for a full rebuild before syncing.'); + const message = 'Index extraction is stale. Run "codegraph index" for a full rebuild before syncing.'; + if (options.quiet) { + process.stderr.write(`codegraph sync: ${message}\n`); + process.exit(1); + } + throw new Error(message); } if (options.quiet) { diff --git a/src/db/queries.ts b/src/db/queries.ts index 37c078845..1bce611a1 100644 --- a/src/db/queries.ts +++ b/src/db/queries.ts @@ -3526,6 +3526,21 @@ export class QueryBuilder { return changed; } + /** + * Replace resolution edges with their original unresolved references as one + * transaction. If ref insertion fails, the edge deletion is rolled back. + */ + replaceResolutionEdgesWithUnresolvedRefs( + edgeIds: number[], + refs: UnresolvedReference[] + ): number { + return this.db.transaction(() => { + const changed = this.deleteEdgesByIds(edgeIds); + this.insertUnresolvedRefsBatch(refs); + return changed; + })(); + } + /** * Distinct node names present in the given files — the symbol names a sync * pass uses to look up retryable failed refs after those files changed. diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index 3691e95f0..e41b5f614 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 27; +export const EXTRACTION_VERSION = 28; diff --git a/src/extraction/index.ts b/src/extraction/index.ts index e349a32c7..d15980444 100644 --- a/src/extraction/index.ts +++ b/src/extraction/index.ts @@ -1287,20 +1287,97 @@ interface GitChanges { * case this cannot see (the child status that would report the deletions is gone * with it); a full `codegraph index` reconciles that. */ -export function getGitChangedFiles(rootDir: string): GitChanges | null { +export function getGitChangedFiles(rootDir: string, sinceCommit?: string | null): GitChanges | null { try { + // `git status` only ever describes the WORKING TREE, so a change that has + // been committed leaves no entry and never enters the candidate set — the + // hash comparison in getChangedFiles is correct but is never reached for + // it, and `pendingChanges` reads 0 while the index is genuinely behind + // (#1829). `sinceCommit` — the commit the index was last brought up to + // date at — adds the other half: what has been committed since. Callers + // that hold no such stamp still get exactly what they always did, the + // working-tree changes. const changes: GitChanges = { modified: [], added: [], deleted: [] }; // Custom extension → language overrides from the project's codegraph.json, // so change detection sees the same custom-extension files the full index does. const overrides = loadExtensionOverrides(rootDir); - collectGitStatus(rootDir, '', changes, overrides, loadIncludeIgnoredMatcher(rootDir), loadExcludeMatcher(rootDir)); + collectGitStatus(rootDir, '', changes, overrides, loadIncludeIgnoredMatcher(rootDir), loadExcludeMatcher(rootDir), sinceCommit ?? undefined); return changes; } catch { return null; } } -function collectGitStatus(repoDir: string, prefix: string, out: GitChanges, overrides?: Record, includeIgnored: Ignore | null = null, exclude: Ignore | null = null): void { +/** + * Metadata key: the commit the index was last brought up to date at. Written by + * a full index AND by every successful sync — unlike the extraction stamp, which + * a sync must not advance because it only touches a subset of files. This one is + * about the TREE, and a sync does absorb the whole diff it computed. (#1829) + */ +export const INDEXED_AT_COMMIT_KEY = 'indexed_at_commit'; + +/** HEAD's commit sha, or null in a non-git repo or one with no commits yet. */ +export function getGitHeadSha(rootDir: string): string | null { + try { + return execFileSync('git', ['rev-parse', 'HEAD'], { + cwd: rootDir, encoding: 'utf-8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'], windowsHide: true, + }).trim() || null; + } catch { + return null; + } +} + +/** + * `Apath` / `Mpath` / `Dpath` lines for every path committed + * between `sinceCommit` and HEAD. Empty when the stamp IS HEAD, which is the + * common case — one cheap git call on the hot path. + */ +function gitCommittedChangesSince(repoDir: string, sinceCommit: string): string[] { + // Let getGitChangedFiles return null on failure, selecting the full scan. + const out = execFileSync('git', ['diff', '--name-status', '--no-renames', '-z', sinceCommit, 'HEAD', '--'], { + cwd: repoDir, encoding: 'utf-8', timeout: 10000, maxBuffer: 50 * 1024 * 1024, stdio: ['pipe', 'pipe', 'pipe'], windowsHide: true, + }); + const fields = out.split('\0'); + const lines: string[] = []; + for (let i = 0; i + 1 < fields.length; i += 2) { + lines.push(`${fields[i]}\t${fields[i + 1]}`); + } + return lines; +} + +/** + * Can an INDEX trust the git fast path, given the commit it was built at? + * + * False means "fall back to the full scan" — the expensive path that compares + * every file on disk against the DB, and the only correct read when git cannot + * say what happened between the stamp and now: + * + * - stamp present but unknown to this repo (rebase, gc, shallow clone, a stamp + * from a different checkout) — history moved under the index. + * - stamp absent while the repo HAS commits — an index built before stamping + * existed. One full scan; the next sync stamps it and the fast path returns. + * + * A repo with NO commits keeps the fast path with or without a stamp: every + * file is untracked, so `git status` already sees all of them. Callers with no + * index behind them (the exported `getGitChangedFiles`) never ask this — a + * working-tree diff is the whole of what they wanted. (#1829) + */ +export function canTrustGitFastPath(rootDir: string, sinceCommit?: string | null): boolean { + const head = getGitHeadSha(rootDir); + if (head == null) return true; // no commits (or not a git repo — caller handles that) + if (!sinceCommit) return false; + if (sinceCommit === head) return true; + try { + execFileSync('git', ['cat-file', '-e', `${sinceCommit}^{commit}`], { + cwd: rootDir, encoding: 'utf-8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'], windowsHide: true, + }); + return true; + } catch { + return false; + } +} + +function collectGitStatus(repoDir: string, prefix: string, out: GitChanges, overrides?: Record, includeIgnored: Ignore | null = null, exclude: Ignore | null = null, sinceCommit?: string): void { const output = execFileSync( 'git', // `-uall` lists individual untracked files instead of collapsing an @@ -1325,46 +1402,68 @@ function collectGitStatus(repoDir: string, prefix: string, out: GitChanges, over // parent's. (#766) const ig = buildDefaultIgnore(repoDir); - const untrackedDirs: string[] = []; - for (const line of output.split('\n')) { - if (line.length < 4) continue; // Minimum: "XY file" - - const statusCode = line.substring(0, 2); - const rel = normalizePath(line.substring(3)); - - // Untracked directory entries (trailing slash) may hide an embedded repo — - // collect for the recursion below instead of treating as a file. - if (statusCode === '??' && rel.endsWith('/')) { - untrackedDirs.push(rel); - continue; - } - + // One classifier for both candidate sources below, so a committed change is + // filtered by exactly the rules a working-tree change is (#766, #999, #1829). + const classify = (statusCode: string, rel: string): void => { const filePath = normalizePath(prefix + rel); - if (!isSourceFile(filePath, overrides)) continue; + if (!isSourceFile(filePath, overrides)) return; if (statusCode.includes('D')) { // Deletions stay unfiltered: getChangedFiles acts on one only when the // path is already tracked in the DB, where removal is always correct — and // that lets a newly-excluded dir's stale rows clean themselves up. (#766) out.deleted.push(filePath); - continue; + return; } // Added (`??`) / modified files inside an excluded dir must not enter the // index — match against the repo-relative path, same as the full scan. (#766) - if (ig.ignores(rel)) continue; + if (ig.ignores(rel)) return; // User `codegraph.json` `exclude` (#999) is project-root-relative, so it's // matched against the full path — sync must not re-add a tracked file the // full index now keeps out. Deletions above stay unfiltered so a file that // WAS indexed before an exclude was added still cleans itself out. - if (exclude && exclude.ignores(filePath)) continue; + if (exclude && exclude.ignores(filePath)) return; if (statusCode === '??') { out.added.push(filePath); } else { - // M, MM, AM, A (staged), etc. — treat as modified + // M, MM, AM, A (staged), etc. — treat as modified. getChangedFiles + // re-decides added-vs-modified from the DB, so a committed `A` that the + // index never saw still lands in `added`. out.modified.push(filePath); } + }; + + const untrackedDirs: string[] = []; + for (const line of output.split('\n')) { + if (line.length < 4) continue; // Minimum: "XY file" + + const statusCode = line.substring(0, 2); + const rel = normalizePath(line.substring(3)); + + // Untracked directory entries (trailing slash) may hide an embedded repo — + // collect for the recursion below instead of treating as a file. + if (statusCode === '??' && rel.endsWith('/')) { + untrackedDirs.push(rel); + continue; + } + + classify(statusCode, rel); + } + + // Committed but unindexed: everything between the commit this index was last + // brought up to date at and HEAD. `git status` cannot see these — committing + // is precisely what removes a file from its output — so without this pass a + // `git commit` makes a real pending change read as zero (#1829). The stamp + // belongs to the ROOT repo, so the embedded-repo recursion below passes none. + if (sinceCommit) { + for (const line of gitCommittedChangesSince(repoDir, sinceCommit)) { + const tab = line.indexOf('\t'); + if (tab < 1) continue; + // `A`/`M`/`D`/`T`… — padded to porcelain's two columns for `classify`. + classify(`${line.substring(0, tab).charAt(0)} `, normalizePath(line.substring(tab + 1))); + } } // Recurse embedded repos found under untracked dirs (at the dir itself or @@ -2906,8 +3005,7 @@ export class ExtractionOrchestrator { // rebind to the same target is a clean no-op, but leaving the old row in // place for a rebind ELSEWHERE would keep both, turning drift into // duplication. - this.queries.deleteEdgesByIds(edgeIds); - this.queries.insertUnresolvedRefsBatch(refs); + this.queries.replaceResolutionEdgesWithUnresolvedRefs(edgeIds, refs); return refs.length; } @@ -3173,10 +3271,74 @@ export class ExtractionOrchestrator { /** * Get files that have changed since last index. - * Compare the full source inventory with the index: git status omits - * committed changes that have not been indexed yet (#1829). + * Uses git status as a fast path when available, falling back to full scan. */ getChangedFiles(): { added: string[]; modified: string[]; removed: string[] } { + // The commit this index was last brought up to date at. Absent on an index + // built before stamping existed — getGitChangedFiles then declines the fast + // path and the full scan below answers correctly, once, until a sync or a + // full index writes the stamp. (#1829) + let sinceCommit: string | null = null; + try { sinceCommit = this.queries.getMetadata(INDEXED_AT_COMMIT_KEY) ?? null; } catch { /* advisory */ } + const gitChanges = canTrustGitFastPath(this.rootDir, sinceCommit) + ? getGitChangedFiles(this.rootDir, sinceCommit) + : null; + + if (gitChanges) { + // === Git fast path === + const added: string[] = []; + const modified: string[] = []; + const removed: string[] = []; + + // One file can now reach these lists from two candidate sources — the + // working tree AND the committed diff — when it was committed and then + // edited again. It is still one changed file: counting it twice would + // inflate `pendingChanges` and hand sync the same path twice. (#1829) + // A committed deletion can have been recreated on disk. Classify that + // path by its current content rather than deleting its indexed symbols. + const seenGone = new Set(); + const seenHere = new Set(); + + // Deleted files — only report if tracked in DB + for (const filePath of gitChanges.deleted) { + if (seenGone.has(filePath)) continue; + seenGone.add(filePath); + const tracked = this.queries.getFileByPath(filePath); + if (tracked && !fs.existsSync(path.join(this.rootDir, filePath))) { + removed.push(filePath); + } + } + + // Modified + added files — read + hash, compare with DB. Untracked (`??`) + // files stay untracked in git even after indexing, so they must be + // hash-compared like modified files instead of always counting as added — + // otherwise status reports them as pending forever. (See issue #206.) + for (const filePath of [...gitChanges.modified, ...gitChanges.added, ...gitChanges.deleted]) { + if (seenHere.has(filePath)) continue; + seenHere.add(filePath); + const fullPath = path.join(this.rootDir, filePath); + let content: string; + try { + content = fs.readFileSync(fullPath, 'utf-8'); + } catch (error) { + logDebug('Skipping unreadable file while detecting changes', { filePath, error: String(error) }); + continue; + } + + const contentHash = hashContent(content); + const tracked = this.queries.getFileByPath(filePath); + + if (!tracked) { + added.push(filePath); + } else if (tracked.contentHash !== contentHash) { + modified.push(filePath); + } + } + + return { added, modified, removed }; + } + + // === Fallback: full scan (non-git project or git failure) === const currentFiles = new Set(scanDirectory(this.rootDir)); const trackedFiles = this.queries.getAllFiles(); @@ -3190,8 +3352,7 @@ export class ExtractionOrchestrator { const modified: string[] = []; const removed: string[] = []; - // git ls-files can still list an unstaged deletion; check disk too, - // matching the full sync reconciliation. + // Find removed files for (const tracked of trackedFiles) { if (!currentFiles.has(tracked.path) || !fs.existsSync(path.join(this.rootDir, tracked.path))) { removed.push(tracked.path); diff --git a/src/index.ts b/src/index.ts index 9941b9c16..2cf9fb2f8 100644 --- a/src/index.ts +++ b/src/index.ts @@ -40,6 +40,8 @@ import { IndexResult, SyncResult, extractFromSource, + getGitHeadSha, + INDEXED_AT_COMMIT_KEY, initGrammars, } from './extraction'; import { @@ -476,6 +478,7 @@ export class CodeGraph { } catch { return { success: false, filesIndexed: 0, filesSkipped: 0, filesErrored: 0, nodesCreated: 0, edgesCreated: 0, errors: [{ message: 'Could not acquire file lock - another process may be indexing', severity: 'error' as const }], durationMs: 0 }; } + const headBeforeIndex = getGitHeadSha(this.projectRoot); // Defer WAL auto-checkpointing for the whole bulk run (#1231): the // default 1000-page interval re-writes hot pages into the main DB file // over and over — ~95% of all disk I/O during a bulk index, and a @@ -692,6 +695,12 @@ export class CodeGraph { try { this.queries.setMetadata('indexed_with_version', CodeGraphPackageVersion); this.queries.setMetadata('indexed_with_extraction_version', String(EXTRACTION_VERSION)); + // ...and the commit whose tree it was built from, so change + // detection can ask git what has been COMMITTED since — the half + // `git status` structurally cannot answer. (#1829) + if (headBeforeIndex && result.filesErrored === 0) { + this.queries.setMetadata(INDEXED_AT_COMMIT_KEY, headBeforeIndex); + } } catch { /* metadata is advisory — never fail an index over it */ } } @@ -822,6 +831,12 @@ export class CodeGraph { // timer-driven PASSIVE checkpoints ran, and a query-pool reader could // pin frames while the WAL grew without a bound. const backpressure = walValve ? () => walValve!.backpressure() : undefined; + // Captured BEFORE change detection runs, not after: if a commit lands + // while this sync is working, stamping the NEW head would claim we + // absorbed a diff we never looked at. Stamping the older commit only + // costs the next run a re-check of what it already has. (#1829) + const headBeforeSync = getGitHeadSha(this.projectRoot); + const result = await this.orchestrator.sync(options.onProgress, options.paths, backpressure); // Fold the store phase's WAL BEFORE the post-store reads below @@ -1028,6 +1043,17 @@ export class CodeGraph { try { this.queries.setMetadata('index_state', 'complete'); } catch { /* advisory */ } } + // Stamp the commit this sync brought the tree up to date at, so the + // NEXT change detection can see what was committed since. Only on a + // whole-tree sync: a `--paths` subset absorbed part of the diff, and + // stamping HEAD would tell the next run the rest was already indexed. + // Unlike the extraction stamp above, a sync DOES advance this one — + // it is about which tree the files came from, not which extractor + // produced their symbols. (#1829) + if (fullReconcile && headBeforeSync) { + try { this.queries.setMetadata(INDEXED_AT_COMMIT_KEY, headBeforeSync); } catch { /* advisory */ } + } + return result; } finally { // Mirror indexAll's teardown: stop the valve, then restore the diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index b0724f4b0..0c8129125 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -1952,6 +1952,22 @@ function inferLocalReceiverType( // human-written local declaration lives on, and regexing it per ref is // pure waste — skip it rather than scan it. if (line.length > 10_000) return null; + if (ESM_FAMILY.has(ref.language)) { + // Follow an explicit awaited factory return through the normal binding + // resolver; a same-named function elsewhere is not type evidence (#1840). + const awaited = line.match(memoPatterns(`awaited|${escapedReceiver}`, () => [ + new RegExp(String.raw`\b${escapedReceiver}\b\s*=\s*await\s+([A-Za-z_$][\w$]*)\s*\(`), + ])[0]!); + if (awaited?.[1]) { + const target = matchByExactName({ ...ref, referenceName: awaited[1] }, context); + const callee = target && context.getNodeById?.(target.targetNodeId); + const returnType = callee && (callee.returnType ?? callee.signature?.match(/\)\s*:\s*(Promise\s*<[^>]+>)\s*$/)?.[1]); + const promised = returnType?.match(/^Promise\s*<\s*([\w$]+)\s*>$/); + if (promised?.[1]) { + return promised[1]; + } + } + } for (const re of patterns) { const m = line.match(re); if (m && m[1]) { @@ -2207,6 +2223,7 @@ export function matchMethodCall( ? inferCppReceiverType(objectOrClass!, ref, context) : inferLocalReceiverType(objectOrClass!, ref, context)); if (inferredType) { + if (ESM_FAMILY.has(ref.language) && ['string', 'number', 'boolean', 'bigint', 'symbol'].includes(inferredType)) return null; // Java/Kotlin: when two classes share the simple name, the file's import // pins WHICH one (#314). Other languages disambiguate by call-site file. const importedFqn = From 8a09f0c50a84d865fd781b9e5acf3ff85f20f883 Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 10:56:28 +0300 Subject: [PATCH 08/23] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BA=D0=BB=D1=8E?= =?UTF-8?q?=D1=87=D0=B8=D1=82=D1=8C=20=D0=BB=D0=BE=D0=B6=D0=BD=D1=8B=D0=B5?= =?UTF-8?q?=20=D0=B2=D1=8B=D0=B7=D0=BE=D0=B2=D1=8B=20=D0=B8=20=D0=B2=D0=BE?= =?UTF-8?q?=D1=81=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D1=8C=20?= =?UTF-8?q?=D1=87=D0=B5=D1=81=D1=82=D0=BD=D1=8B=D0=B5=20=D1=81=D0=BE=D1=81?= =?UTF-8?q?=D1=82=D0=BE=D1=8F=D0=BD=D0=B8=D1=8F=20sync=20=D0=B8=20MCP?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 + __tests__/cli-sync-stale-index.test.ts | 16 +++- __tests__/query-pool.test.ts | 28 +++++++ __tests__/real-project-regressions.test.ts | 45 ++++++++++++ ...lidation-real-project-issues-2026-09-12.md | 73 +++++++++++++++++++ src/bin/codegraph.ts | 13 +++- src/extraction/extraction-version.ts | 2 +- src/extraction/index.ts | 2 + src/index.ts | 2 +- src/mcp/daemon-paths.ts | 3 + src/mcp/daemon.ts | 2 +- src/mcp/query-pool.ts | 13 +++- src/resolution/name-matcher.ts | 8 +- 13 files changed, 200 insertions(+), 11 deletions(-) create mode 100644 __tests__/real-project-regressions.test.ts create mode 100644 docs/validation-real-project-issues-2026-09-12.md diff --git a/CHANGELOG.md b/CHANGELOG.md index 7954c8e82..cad5e1df4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -157,6 +157,10 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). #### MCP / indexing +- Проверка вызовов больше не связывает C-макросы с одноимёнными enum и Go-код с посторонними TypeScript-символами. +- Занятый `codegraph sync` сообщает о блокировке вместо ложного успеха, в том числе в quiet-режиме. +- Неисправные query workers завершаются; старые PID-lockfiles живых процессов сохраняются. + - При отказе `codegraph sync --quiet` из-за устаревшего индекса причина теперь выводится одной строкой в stderr. - Прерывание повторного разрешения связей больше не оставляет граф без исходной связи и записи восстановления. - В TypeScript вызов метода у результата `await` с объявленным `Promise` больше не связывается с одноимённым методом постороннего класса. diff --git a/__tests__/cli-sync-stale-index.test.ts b/__tests__/cli-sync-stale-index.test.ts index 3656efae6..6d86c0622 100644 --- a/__tests__/cli-sync-stale-index.test.ts +++ b/__tests__/cli-sync-stale-index.test.ts @@ -3,7 +3,7 @@ import { spawnSync } from 'child_process'; import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; -import { CodeGraph } from '../src'; +import { CodeGraph, FileLock } from '../src'; import { EXTRACTION_VERSION } from '../src/extraction/extraction-version'; const BIN = path.resolve(__dirname, '../dist/bin/codegraph.js'); @@ -86,3 +86,17 @@ describe('explicit CLI sync with stale extraction', () => { expect(run('sync').status).toBe(0); }); }); + + +it.each([false, true])('reports lock contention instead of clean success, quiet=%s', quiet => { + fs.writeFileSync(path.join(root, 'added.ts'), 'export const added = 1;'); + const lock = new FileLock(path.join(root, '.codegraph', 'codegraph.lock')); + lock.acquire(); + try { + const result = run('sync', ...(quiet ? ['--quiet'] : [])); + expect(result.status).toBe(1); + expect(result.stdout + result.stderr).toMatch(/busy|lock/i); + expect(result.stdout + result.stderr).not.toContain('Already up to date'); + if (quiet) { expect(result.stdout).toBe(''); expect(result.stderr.trim().split('\n')).toHaveLength(1); } + } finally { lock.release(); } +}); diff --git a/__tests__/query-pool.test.ts b/__tests__/query-pool.test.ts index d7bf3be91..05555541d 100644 --- a/__tests__/query-pool.test.ts +++ b/__tests__/query-pool.test.ts @@ -196,3 +196,31 @@ describe('QueryPool', () => { await pool.destroy(); }); }); + +it('retires a failed-opening worker and retries with a working one', async () => { + const workers: FakeWorker[] = []; + const pool = new QueryPool({ root: '/x', size: 1, createWorker: () => { + const w = new FakeWorker(() => ({result: ok('recovered')}), workers.length > 0); + workers.push(w); return w; + }}); + try { + const result = await pool.run('codegraph_explore', {query: 'q'}); + expect(result.content[0].text).toBe('recovered'); + expect(workers[0].alive).toBe(false); + expect(pool.liveWorkers).toBe(1); + } finally { await pool.destroy(); } +}); + +it('bounds repeated open failures and completes pending work', async () => { + let spawned = 0; + const pool = new QueryPool({ root: '/x', size: 1, createWorker: () => { + spawned++; return new FakeWorker(() => ({result: ok('must not run')}), false); + }}); + try { + const result = await pool.run('codegraph_explore', {query: 'q'}); + expect(result.isError).toBe(true); + expect(pool.healthy).toBe(false); + expect(pool.liveWorkers).toBe(0); + expect(spawned).toBeLessThanOrEqual(12); + } finally { await pool.destroy(); } +}); diff --git a/__tests__/real-project-regressions.test.ts b/__tests__/real-project-regressions.test.ts new file mode 100644 index 000000000..46c6de335 --- /dev/null +++ b/__tests__/real-project-regressions.test.ts @@ -0,0 +1,45 @@ +import { it, expect } from 'vitest'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { CodeGraph } from '../src'; +import { decodeLockInfo } from '../src/mcp/daemon-paths'; +import { clearStaleDaemonLock } from '../src/mcp/daemon'; + +it('ADRC macro calls do not resolve to enum values; ordinary calls survive', async () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-adrc-reg-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'maths.h'), '#define MAX(a,b) ((a) > (b) ? (a) : (b))\n'); + fs.writeFileSync(path.join(root, 'cli.c'), 'enum { MIN, MAX };\nint helper(void) { return 1; }\n'); + fs.writeFileSync(path.join(root, 'blackbox.c'), '#include "maths.h"\nint helper(void);\nint blackbox(void) { return MAX(helper(), 2); }\n'); + cg = CodeGraph.initSync(root); await cg.indexAll(); + const node = cg.getNodesByName('blackbox').find(n => n.kind === 'function')!; + const calls = cg.getCallees(node.id).filter(x => x.edge.kind === 'calls'); + expect(calls.some(x => x.node.kind === 'enum_member')).toBe(false); + expect(calls.some(x => x.node.name === 'helper')).toBe(true); + } finally { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); } +}); + +it('CSQTT Go standard-library Size cannot bind a TypeScript interface', async () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-csqtt-reg-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'update.go'), 'package core\nimport "net"\nfunc verify(mask []byte) { net.IPMask(mask).Size() }\n'); + fs.writeFileSync(path.join(root, 'runtime.ts'), 'export interface Size { width: number; height: number }\n'); + cg = CodeGraph.initSync(root); await cg.indexAll(); + const node = cg.getNodesByName('verify').find(n => n.kind === 'function')!; + expect(cg.getCallees(node.id).filter(x => x.edge.kind === 'calls' && x.node.language === 'typescript')).toEqual([]); + } finally { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); } +}); + +it('preserves a live legacy daemon lock even without identity metadata', () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-legacy-reg-')); + const file = path.join(root, 'daemon.pid'); + try { + fs.writeFileSync(file, String(process.pid)); + expect(decodeLockInfo(String(process.pid))?.pid).toBe(process.pid); + expect(clearStaleDaemonLock(file, process.pid, { allowLivePid: true })).toBe(false); + expect(fs.existsSync(file)).toBe(true); + } finally { fs.rmSync(root, { recursive: true, force: true }); } +}); diff --git a/docs/validation-real-project-issues-2026-09-12.md b/docs/validation-real-project-issues-2026-09-12.md new file mode 100644 index 000000000..168e98de5 --- /dev/null +++ b/docs/validation-real-project-issues-2026-09-12.md @@ -0,0 +1,73 @@ +# Исправления по тестам на реальных проектах — 12 сентября 2026 + +База: `97de99bc`, Linux x64 / Node 24.15.0. Extraction stamp: 29. + +## Исправлено + +- Name matching для calls ограничен семейством языка. Межъязыковые связи + требуют отдельного bridge-resolver, а не совпадения имени. Method fallback + применяет ту же проверку. C/C++ enum_member не является целью вызова; + Rust enum constructors и Kotlin SAM-construction этим фильтром не запрещены. +- SyncResult сообщает skippedReason=locked при занятой блокировке. Watcher + сохраняет прежнюю возможность повторить sync; CLI возвращает exit 1 и + объяснение, включая одну строку stderr в quiet-режиме. +- QueryPool удаляет worker с ready(ok:false), ограниченно пытается заменить + его и завершает ожидающие запросы при исчерпании crash budget. Запрос к + неисправному pool больше не остаётся ждать worker бесконечно. +- Числовой legacy daemon.pid распознаётся. Живой PID без socket identity + нельзя удалить даже через allowLivePid; обычные структурированные записи + сохраняют механизм проверки PID reuse. + +## Тесты + +- Полный native-suite: **4655 passed, 4 failed, 9 skipped**, 270 файлов. + Все 4 отказа — kernel-dart-parity (torture.dart / TortureCtors.dart, + LF и CRLF), ранее воспроизведённые на upstream. Полный suite не зелёный; + новых отказов в этой редакции нет. +- Профильный WASM: **307 passed**, 7 файлов: resolution, query-pool, + real-project-regressions, sync, CLI stale/locked sync, awaited receiver, + sync-rebuild-convergence. +- TypeScript, build (viewer + 29 WASM-грамматик), diff whitespace: успешно. +- Windows/macOS не запускались. + +## Реальные проекты: контролируемый A/B + +Копии размещены в `/home/danik/storage/codegraph-real-issues-20260912`. +ADRC: 2069 исходных индексируемых файлов; CSQTT desktop: 51. +SQLite-копии получены backup API, исходные базы не использовались для fault +injection. A/B каждый раз создаёт БД заново на одном наборе исходников. +Baseline — name-matcher из 97de99bc, после — текущая реализация; остальные +модули одинаковы. Baseline выполняется без параллельного resolver, чтобы +worker не подменил проверяемую реализацию. Это resolver A/B, не полный +benchmark двух исторических сборок. + +| Проект | Уникальных calls до | После | Удалено | Добавлено | +|---|---:|---:|---:|---:| +| ADRC | 13923 | 13794 | 129 | 0 | +| CSQTT desktop | 381 | 380 | 1 | 0 | + +Все 129 удалённых ADRC-связей в сравнении — цели enum_member (MIN/MAX). +В прежнем аудите было 167 строк edges: здесь сравниваются уникальные +(source file/name, target file/name/kind), а не строки или call sites. +Другие callable-связи в контролируемом A/B не исчезли. +CSQTT потерял только ложную связь Go verifyUpdateCleanup → TS interface Size. + +На копии CSQTT: + +- Занятая блокировка, одна неиндексированная правка: exit 1, сообщение busy/lock, + pending.modified=1 сохраняется. Ложного Already up to date нет. +- QueryPool control: три успешных explore-запроса. +- Fault «БД не открывается»: healthy=false, ready=false, liveWorkers=0, + ожидающие запросы завершаются; все созданные worker threads остановлены. +- Legacy PID: тестовый живой PID декодируется и lockfile сохраняется. + +## Артефакты воспроизведения + +Локальные `.scratch/real-fix-compare.py`, `real-ab-index.cjs`, +`real-fix-compare.json`, `real-lock-probe.cjs`, `real-lock-results.json`, +`real-pool-probe.cjs`, `real-pool-results.json`, `real-fix-full-native.log`, +`real-fix-wasm-final.log`. Регрессионные тесты включены в исходники. + +Ограничение: это закрывает подтверждённые сценарии, а не все открытые issues +CodeGraph. В частности, отдельные macro-to-function коллизии, MCP projectPath +watch lifecycle и произвольная межъязыковая инференция здесь не реализованы. diff --git a/src/bin/codegraph.ts b/src/bin/codegraph.ts index e8320f670..cb805db8f 100644 --- a/src/bin/codegraph.ts +++ b/src/bin/codegraph.ts @@ -966,8 +966,9 @@ program } if (options.quiet) { - await cg.sync(); + const result = await cg.sync(); cg.destroy(); + if (result.skippedReason === 'locked') throw new Error('Index is busy: another process holds the lock. Retry sync shortly.'); return; } @@ -982,6 +983,10 @@ program }); await progress.stop(); + if (result.skippedReason === 'locked') { + cg.destroy(); + throw new Error('Index is busy: another process holds the lock. Retry sync shortly.'); + } const totalChanges = result.filesAdded + result.filesModified + result.filesRemoved; @@ -999,9 +1004,9 @@ program clack.outro('Done'); cg.destroy(); } catch (err) { - if (!options.quiet) { - error(`Failed to sync: ${err instanceof Error ? err.message : String(err)}`); - } + const message = `Failed to sync: ${err instanceof Error ? err.message : String(err)}`; + if (options.quiet) process.stderr.write(`${message}\n`); + else error(message); process.exit(1); } }); diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index e41b5f614..00e67c089 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 28; +export const EXTRACTION_VERSION = 29; diff --git a/src/extraction/index.ts b/src/extraction/index.ts index d15980444..f05c9a8cb 100644 --- a/src/extraction/index.ts +++ b/src/extraction/index.ts @@ -119,6 +119,8 @@ export interface IndexResult { * Result of a sync operation */ export interface SyncResult { + /** No reconciliation ran because another process owns the index lock. */ + skippedReason?: 'locked'; filesChecked: number; filesAdded: number; filesModified: number; diff --git a/src/index.ts b/src/index.ts index 2cf9fb2f8..3a05a1f95 100644 --- a/src/index.ts +++ b/src/index.ts @@ -789,7 +789,7 @@ export class CodeGraph { try { this.fileLock.acquire(); } catch { - return { filesChecked: 0, filesAdded: 0, filesModified: 0, filesRemoved: 0, nodesUpdated: 0, durationMs: 0 }; + return { skippedReason: 'locked', filesChecked: 0, filesAdded: 0, filesModified: 0, filesRemoved: 0, nodesUpdated: 0, durationMs: 0 }; } // Defer WAL auto-checkpointing for the whole incremental run, exactly // as indexAll does for the bulk path (#1231): sync's store loop and its diff --git a/src/mcp/daemon-paths.ts b/src/mcp/daemon-paths.ts index c860ee76c..df42752b4 100644 --- a/src/mcp/daemon-paths.ts +++ b/src/mcp/daemon-paths.ts @@ -169,6 +169,9 @@ export function decodeLockInfo(raw: string): DaemonLockInfo | null { if (!trimmed) return null; try { const parsed = JSON.parse(trimmed); + if (typeof parsed === 'number' && Number.isSafeInteger(parsed) && parsed > 0) { + return { pid: parsed, version: 'unknown', socketPath: '', startedAt: 0 }; + } if ( parsed && typeof parsed.pid === 'number' && diff --git a/src/mcp/daemon.ts b/src/mcp/daemon.ts index a5735d168..6248d970b 100644 --- a/src/mcp/daemon.ts +++ b/src/mcp/daemon.ts @@ -665,7 +665,7 @@ export function clearStaleDaemonLock( if (expectedDeadPid !== undefined && info.pid !== expectedDeadPid) return false; // PID liveness is normally sufficient. The takeover caller may override // it only after a failed identity handshake proves PID reuse. - if (!opts.allowLivePid && info.pid > 0 && isProcessAlive(info.pid)) return false; + if ((!opts.allowLivePid || !info.socketPath) && info.pid > 0 && isProcessAlive(info.pid)) return false; } fs.unlinkSync(pidPath); return true; diff --git a/src/mcp/query-pool.ts b/src/mcp/query-pool.ts index 0575def38..45a8fd14d 100644 --- a/src/mcp/query-pool.ts +++ b/src/mcp/query-pool.ts @@ -220,8 +220,11 @@ export class QueryPool { if (!m) return; if (m.type === 'ready') { this.pendingWorkers.delete(w); - if (m.ok === false) this.totalCrashes++; // hard open failure - else this.everReady = true; + if (m.ok === false) { + this.onWorkerGone(w); + return; + } + this.everReady = true; this.idle.push(w); this.drain(); return; @@ -256,6 +259,11 @@ export class QueryPool { this.settle(job, { isError: true, content: [{ type: 'text', text: 'codegraph worker crashed; please retry the call.' }] }); } } + if (!this.healthy) { + for (const queued of this.queue.splice(0)) { + this.settle(queued, { isError: true, content: [{ type: 'text', text: 'codegraph workers could not start; retry after checking the project index.' }] }); + } + } this.drain(); } @@ -291,6 +299,7 @@ export class QueryPool { /** Run a read tool on the pool. Always resolves (never rejects). */ run(toolName: string, args: Record): Promise { + if (!this.healthy) return Promise.resolve({ isError: true, content: [{ type: 'text', text: 'codegraph worker pool unavailable; retry after checking the project index.' }] }); return new Promise((resolve) => { const job: Job = { id: this.nextId++, toolName, args, resolve, diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index 0c8129125..f240eed4a 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -190,6 +190,12 @@ export function crossesKnownFamily(a: string, b: string): boolean { * both-known filter so `.vue`/`.svelte` (own tag) importing `.ts` survives. */ function applyLanguageGate(candidates: Node[], ref: UnresolvedRef): Node[] { + if (ref.referenceKind === 'calls') { + // Cross-language calls need a bridge resolver, never a coincidental name. + // C/C++ enum values cannot be invoked (unlike Rust enum constructors). + return candidates.filter(c => sameLanguageFamily(c.language, ref.language) && + !((ref.language === 'c' || ref.language === 'cpp') && c.kind === 'enum_member')); + } if (ref.referenceKind === 'references' || ref.referenceKind === 'function_ref') { return candidates.filter((c) => sameLanguageFamily(c.language, ref.language)); } @@ -2425,7 +2431,7 @@ export function matchMethodCall( // names like permissionEngine → PermissionRuleEngine. if (methodName) { const strat3 = nmTimedT('mc-byname', ref, (): ResolvedRef | null => { - const methodCandidates = context.getNodesByName(methodName!); + const methodCandidates = applyLanguageGate(context.getNodesByName(methodName!), ref); // Ubiquitous-method ceiling (#999): a method name re-declared across a // vendored theme/SDK (Metronic's `init`/`update`/… on every widget) yields // K candidates that receiver-word overlap can't reliably disambiguate — From bc4a057dea0c8ce2a406e3120dce6042dc52d488 Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 11:06:01 +0300 Subject: [PATCH 09/23] =?UTF-8?q?feat:=20=D0=B2=D0=BE=D1=81=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D1=8C=20Verilog=20=D0=B8?= =?UTF-8?q?=20=D1=83=D1=81=D1=82=D1=80=D0=B0=D0=BD=D0=B8=D1=82=D1=8C=20?= =?UTF-8?q?=D1=83=D1=82=D0=B5=D1=87=D0=BA=D0=B8=20MCP=20=D0=B8=20=D1=82?= =?UTF-8?q?=D0=B5=D1=81=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Порт extractor из #402 и eval/402-verilog; HDL flow ограничен Verilog. Проверены Dual UART, eMMC reader и pulp-platform/axi. Co-authored-by: FHYQ-Dong --- CHANGELOG.md | 4 + README.md | 3 +- __tests__/daemon-client-liveness.test.ts | 23 ++ __tests__/extraction.test.ts | 185 +++++++++++ __tests__/frontload-hook.test.ts | 14 +- __tests__/resolution.test.ts | 9 +- __tests__/verilog-flow.test.ts | 56 ++++ __tests__/verilog-resolution.test.ts | 87 ++++++ docs/validation-verilog-mcp-2026-09-12.md | 70 +++++ package.json | 2 +- src/bin/codegraph.ts | 3 +- src/directory.ts | 5 + src/extraction/extraction-version.ts | 2 +- src/extraction/grammars.ts | 9 +- src/extraction/languages/index.ts | 2 + src/extraction/languages/verilog.ts | 295 ++++++++++++++++++ .../wasm/tree-sitter-systemverilog.wasm | Bin 0 -> 21515233 bytes src/graph/named-symbol-flow.ts | 19 +- src/mcp/daemon.ts | 3 + src/resolution/name-matcher.ts | 26 ++ src/types.ts | 1 + 21 files changed, 803 insertions(+), 15 deletions(-) create mode 100644 __tests__/verilog-flow.test.ts create mode 100644 __tests__/verilog-resolution.test.ts create mode 100644 docs/validation-verilog-mcp-2026-09-12.md create mode 100644 src/extraction/languages/verilog.ts create mode 100644 src/extraction/wasm/tree-sitter-systemverilog.wasm diff --git a/CHANGELOG.md b/CHANGELOG.md index cad5e1df4..c81c964f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -157,6 +157,10 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). #### MCP / indexing +- Восстановлена поддержка Verilog/SystemVerilog и поиска пути от верхнего FPGA-модуля до вложенного; спасибо @FHYQ-Dong за исходный extractor. +- Обрыв подключения во время MCP-handshake больше не оставляет фантомного клиента. +- Prompt-hook пропускает служебные уведомления о завершении задач; тесты resolution удаляют временные каталоги после закрытия графа. + - Проверка вызовов больше не связывает C-макросы с одноимёнными enum и Go-код с посторонними TypeScript-символами. - Занятый `codegraph sync` сообщает о блокировке вместо ложного успеха, в том числе в quiet-режиме. - Неисправные query workers завершаются; старые PID-lockfiles живых процессов сохраняются. diff --git a/README.md b/README.md index 10a325ae2..6f0f247a8 100644 --- a/README.md +++ b/README.md @@ -289,7 +289,7 @@ CodeGraph's parsing engine is a **native Rust kernel**: 20 languages — TypeScr | **Full-Text Search** | Find code by name instantly across your entire codebase, powered by FTS5 | | **Impact Analysis** | Trace callers, callees, and the full impact radius of any symbol before making changes | | **Always Fresh** | File watcher uses native OS events (FSEvents/inotify/ReadDirectoryChangesW) with debounced auto-sync — the graph stays current as you code, zero config | -| **20+ Languages** | TypeScript, JavaScript, ArkTS, Python, Go, Rust, Java, C#, VB.NET, PHP, Ruby, C, C++, CUDA, Objective-C, Metal, Swift, Kotlin, Scala, Dart, Lua, Luau, R, Nix, Erlang, CFML, COBOL, Solidity, Terraform/OpenTofu, Svelte, Vue, Astro, Liquid, Pascal/Delphi | +| **20+ Languages** | TypeScript, JavaScript, ArkTS, Python, Go, Rust, Java, C#, VB.NET, PHP, Ruby, C, C++, CUDA, Objective-C, Metal, Swift, Kotlin, Scala, Dart, Lua, Luau, R, Nix, Erlang, CFML, COBOL, Solidity, Terraform/OpenTofu, Svelte, Vue, Astro, Liquid, Pascal/Delphi, Verilog/SystemVerilog | | **Framework-aware Routes** | Recognizes web-framework routing files and links URL patterns to their handlers across 17 frameworks | | **Mixed iOS / React Native / Expo** | Closes cross-language flows that static parsing misses: Swift ↔ ObjC bridging, React Native legacy bridge + TurboModules + Fabric view components, native → JS event emitters, Expo Modules | | **100% Local** | No data leaves your machine. No API keys. No external services. SQLite database only | @@ -892,6 +892,7 @@ is written): | Astro | `.astro` | Full support (frontmatter + script extraction, template component/call references, `src/pages/` routes) | | Liquid | `.liquid` | Full support | | Pascal / Delphi | `.pas`, `.dpr`, `.dpk`, `.lpr` | Full support (classes, records, interfaces, enums, DFM/FMX form files) | +| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули, interfaces/packages, functions/tasks, parameters, typedefs, imports/includes и иерархия instantiates; без анализа сигналов и timing | | Lua | `.lua` | Full support (functions, methods with receivers, local variables, `require` imports, call edges) | | R | `.R` `.r` | Full support (functions in every assignment form, S4/R5/R6 classes with methods, `library`/`require` imports, `source()` file references, call edges) | | Luau | `.luau` | Full support (everything in Lua, plus `type`/`export type` aliases, typed signatures, and Roblox instance-path `require`) | diff --git a/__tests__/daemon-client-liveness.test.ts b/__tests__/daemon-client-liveness.test.ts index 63e8c2cc9..7406ad5da 100644 --- a/__tests__/daemon-client-liveness.test.ts +++ b/__tests__/daemon-client-liveness.test.ts @@ -179,3 +179,26 @@ describe('Daemon.backstopShouldExit', () => { expect(d.backstopShouldExit(() => false)).toBe(false); }); }); + +it('does not attach a phantom client when the socket closes during hello', async () => { + const net = await import('node:net'); + const d = new Daemon('/tmp/codegraph-hello-close-test', { idleTimeoutMs: 0 }) as any; + const server = net.createServer(socket => d.handleConnection(socket)); + await new Promise(resolve => server.listen(0, '127.0.0.1', resolve)); + const address = server.address() as import('node:net').AddressInfo; + const client = net.createConnection({host: '127.0.0.1', port: address.port}); + try { + await new Promise((resolve, reject) => { + client.once('error', reject); + client.once('data', () => { client.destroy(); resolve(); }); + }); + await new Promise(resolve => setTimeout(resolve, 50)); + expect(d.clients.size).toBe(0); + expect(d.clientPeers.size).toBe(0); + } finally { + client.destroy(); + for (const session of [...d.clients]) d.dropClient(session); + d.disarmIdleTimer(); + await new Promise(resolve => server.close(() => resolve())); + } +}); diff --git a/__tests__/extraction.test.ts b/__tests__/extraction.test.ts index 16e0fc244..c4cc74341 100644 --- a/__tests__/extraction.test.ts +++ b/__tests__/extraction.test.ts @@ -12782,3 +12782,188 @@ describe('Unsupported-language projects report what they skipped (#1502)', () => expect(stats.unsupportedByExtension.size).toBe(0); }); }); + +describe('Verilog / SystemVerilog Extraction', () => { + it('should report Verilog as supported', () => { + expect(isLanguageSupported('verilog')).toBe(true); + expect(getSupportedLanguages()).toContain('verilog'); + }); + + it('should extract modules as containers with scoped functions and tasks', () => { + const code = ` +module top (input logic clk, output logic [7:0] z); + function automatic int square(int n); + return n * n; + endfunction + task automatic do_reset(); + z = '0; + endtask +endmodule +`; + const result = extractFromSource('top.sv', code); + + const mod = result.nodes.find((n) => n.kind === 'class' && n.name === 'top'); + expect(mod).toBeDefined(); + expect(mod?.language).toBe('verilog'); + + const fn = result.nodes.find((n) => n.kind === 'function' && n.name === 'square'); + expect(fn).toBeDefined(); + expect(fn?.qualifiedName).toBe('top::square'); // scoped under the module + + const task = result.nodes.find((n) => n.kind === 'function' && n.name === 'do_reset'); + expect(task).toBeDefined(); + }); + + it('should emit an instantiates reference from a module to its submodule type', () => { + const code = ` +module alu #(parameter int WIDTH = 8) (input logic [WIDTH-1:0] a, output logic [WIDTH-1:0] y); +endmodule + +module top (input logic [7:0] x, output logic [7:0] z); + alu #(.WIDTH(8)) u_alu (.a(x), .y(z)); +endmodule +`; + const result = extractFromSource('soc.sv', code); + + const top = result.nodes.find((n) => n.kind === 'class' && n.name === 'top'); + expect(top).toBeDefined(); + + const inst = result.unresolvedReferences.find( + (r) => r.referenceKind === 'instantiates' && r.referenceName === 'alu' + ); + expect(inst).toBeDefined(); + expect(inst?.fromNodeId).toBe(top?.id); // the parent module is the source + + // parameter is captured as a constant + const param = result.nodes.find((n) => n.kind === 'constant' && n.name === 'WIDTH'); + expect(param).toBeDefined(); + }); + + it('should extract package typedefs, functions, imports and call edges', () => { + const code = ` +package math_pkg; + typedef enum logic [1:0] { IDLE, RUN, DONE } state_t; + function automatic int add(int a, int b); + return a + b; + endfunction +endpackage + +module worker (input logic clk); + import math_pkg::*; + function automatic int caller(int y); + return add(y); + endfunction +endmodule +`; + const result = extractFromSource('pkg.sv', code); + + const pkg = result.nodes.find((n) => n.kind === 'class' && n.name === 'math_pkg'); + expect(pkg).toBeDefined(); + + const typedef = result.nodes.find((n) => n.kind === 'type_alias' && n.name === 'state_t'); + expect(typedef).toBeDefined(); + expect(typedef?.qualifiedName).toBe('math_pkg::state_t'); + + const importNode = result.nodes.find((n) => n.kind === 'import' && n.name === 'math_pkg'); + expect(importNode).toBeDefined(); + + const callRef = result.unresolvedReferences.find( + (r) => r.referenceKind === 'calls' && r.referenceName === 'add' + ); + expect(callRef).toBeDefined(); + }); + + it('should extract every package in a multi-package import statement', () => { + const code = ` +package a_pkg; + function automatic int fa(); return 1; endfunction +endpackage + +package b_pkg; + function automatic int fb(); return 2; endfunction +endpackage + +module worker (input logic clk); + import a_pkg::*, b_pkg::*; + function automatic int caller(); + return fa() + fb(); + endfunction +endmodule +`; + const result = extractFromSource('multi.sv', code); + + const imports = result.nodes.filter((n) => n.kind === 'import').map((n) => n.name); + expect(imports).toContain('a_pkg'); + expect(imports).toContain('b_pkg'); // the second import must not be dropped + + // call edges still resolve when multiple imports share one statement + const calls = result.unresolvedReferences + .filter((r) => r.referenceKind === 'calls') + .map((r) => r.referenceName); + expect(calls).toContain('fa'); + expect(calls).toContain('fb'); + }); + + it('should capture function calls inside instantiation port/param expressions', () => { + const code = ` +module sub #(parameter int W = 8) (input logic [W-1:0] a); +endmodule + +module top (input logic [7:0] x); + function automatic int dbl(int v); return v * 2; endfunction + function automatic int wid(); return 8; endfunction + sub #(.W(wid())) u_sub (.a(dbl(x))); +endmodule +`; + const result = extractFromSource('inst_calls.sv', code); + + const calls = result.unresolvedReferences + .filter((r) => r.referenceKind === 'calls') + .map((r) => r.referenceName); + expect(calls).toContain('dbl'); // call inside a port connection + expect(calls).toContain('wid'); // call inside a parameter override + + // the instantiation edge itself is still emitted + const inst = result.unresolvedReferences.find( + (r) => r.referenceKind === 'instantiates' && r.referenceName === 'sub' + ); + expect(inst).toBeDefined(); + }); + + it('should emit an import for each `include directive, named by the included path', () => { + const code = ` +\`include "defs.vh" +\`include "axi/typedef.svh" +\`include +module top (input logic clk); +endmodule +`; + const result = extractFromSource('top.sv', code); + + const includes = result.nodes.filter((n) => n.kind === 'import').map((n) => n.name); + expect(includes).toEqual(['defs.vh', 'axi/typedef.svh', 'uvm_macros.svh']); + + // the path is what the import ref carries, so the file-path matcher can + // land it on the header by suffix + const refs = result.unresolvedReferences + .filter((r) => r.referenceKind === 'imports') + .map((r) => r.referenceName); + expect(refs).toEqual(['defs.vh', 'axi/typedef.svh', 'uvm_macros.svh']); + }); + + it('should extract `define macros and top-level parameters from a header', () => { + const code = ` +\`ifndef DEFS_VH +\`define DEFS_VH +\`define DATA_W 16 +\`define ADDR(x) (x + 1) +parameter CLK_HZ = 27_000_000; +localparam BAUD = 115200; +\`endif +`; + const result = extractFromSource('defs.vh', code); + + const constants = result.nodes.filter((n) => n.kind === 'constant').map((n) => n.name); + expect(constants).toEqual(['DEFS_VH', 'DATA_W', 'ADDR', 'CLK_HZ', 'BAUD']); + }); +}); diff --git a/__tests__/frontload-hook.test.ts b/__tests__/frontload-hook.test.ts index 95cd83a0b..50085e762 100644 --- a/__tests__/frontload-hook.test.ts +++ b/__tests__/frontload-hook.test.ts @@ -12,7 +12,7 @@ import { describe, it, expect, beforeEach, afterEach, vi } from 'vitest'; import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; -import { planFrontload, findIndexedSubprojectRoots, unsafeIndexRootReason, isStructuralPrompt, hasStructuralKeyword, extractCodeTokens, PROMPT_HOOK_INJECTION_MAX, CLAUDE_CODE_INLINE_HOOK_OUTPUT_LIMIT, capPromptHookInjection } from '../src/directory'; +import { planFrontload, isTaskNotification, findIndexedSubprojectRoots, unsafeIndexRootReason, isStructuralPrompt, hasStructuralKeyword, extractCodeTokens, PROMPT_HOOK_INJECTION_MAX, CLAUDE_CODE_INLINE_HOOK_OUTPUT_LIMIT, capPromptHookInjection } from '../src/directory'; // Make the built-in exports configurable so HOME can point at a real temp // fixture without changing the process environment or the user's home files. @@ -376,3 +376,15 @@ describe('prompt-hook injection cap (#1694)', () => { expect(out.length).toBeLessThan(CLAUDE_CODE_INLINE_HOOK_OUTPUT_LIMIT); }); }); + + +describe('system task notifications (#1832)', () => { + it('skips the complete system envelope', () => { + expect(isTaskNotification(' trace AuthService login flow\n')).toBe(true); + }); + it('does not suppress a user question discussing the marker', () => { + expect(isTaskNotification('Why does trace trigger the hook?')).toBe(false); + expect(isTaskNotification('trace Explain this.')).toBe(false); + expect(isTaskNotification('trace AuthService login')).toBe(false); + }); +}); diff --git a/__tests__/resolution.test.ts b/__tests__/resolution.test.ts index f3cf1cc0c..cada60bee 100644 --- a/__tests__/resolution.test.ts +++ b/__tests__/resolution.test.ts @@ -23,16 +23,17 @@ describe('Resolution Module', () => { let cg: CodeGraph; beforeEach(() => { + cg = undefined!; // Create temp directory tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'codegraph-resolution-test-')); }); afterEach(() => { // Clean up - if (cg) { - cg.destroy(); - } else if (fs.existsSync(tempDir)) { - fs.rmSync(tempDir, { recursive: true }); + try { cg?.destroy(); } + finally { + cg = undefined!; + if (fs.existsSync(tempDir)) fs.rmSync(tempDir, { recursive: true, force: true }); } }); diff --git a/__tests__/verilog-flow.test.ts b/__tests__/verilog-flow.test.ts new file mode 100644 index 000000000..57563c14a --- /dev/null +++ b/__tests__/verilog-flow.test.ts @@ -0,0 +1,56 @@ +/** + * In an HDL the design hierarchy IS the flow: how `top` reaches `uart_rx` is + * `top` instantiating `uart_bridge` instantiating `uart_rx`. The flow finder + * rides `instantiates` edges between Verilog modules (indexed as `class`), + * and only there — a TS `new X()` stays a dependency, not a step. + */ + +import { describe, it, expect, afterEach } from 'vitest'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import CodeGraph from '../src/index'; +import { resolveNamedSymbolFlow } from '../src/graph/named-symbol-flow'; + +let tempDir: string; +let cg: CodeGraph | null = null; + +afterEach(() => { + cg?.close(); + cg = null; + fs.rmSync(tempDir, { recursive: true, force: true }); +}); + +async function index(files: Record): Promise { + tempDir = fs.mkdtempSync(path.join(os.tmpdir(), 'codegraph-verilog-flow-')); + for (const [rel, content] of Object.entries(files)) fs.writeFileSync(path.join(tempDir, rel), content); + cg = await CodeGraph.init(tempDir, { index: true }); + cg.resolveReferences(); + return cg; +} + +describe('Verilog: the module-instantiation hierarchy is the flow', () => { + it('connects top to a leaf module through an unnamed bridge module', async () => { + const g = await index({ + 'top.v': 'module top(input clk, input rx, output tx);\n uart_bridge bridge (.clk(clk), .rx(rx), .tx(tx));\nendmodule\n', + 'uart_bridge.v': 'module uart_bridge(input clk, input rx, output tx);\n uart_rx rx_inst (.clk(clk), .rx(rx));\n uart_tx tx_inst (.clk(clk), .tx(tx));\nendmodule\n', + 'uart_rx.v': 'module uart_rx(input clk, input rx);\nendmodule\n', + 'uart_tx.v': 'module uart_tx(input clk, output tx);\nendmodule\n', + }); + const flow = resolveNamedSymbolFlow(g, 'top uart_rx'); + expect(flow.chains.length).toBeGreaterThan(0); + const steps = flow.chains[0]!.steps; + expect(steps.map((s) => s.node.name)).toEqual(['top', 'uart_bridge', 'uart_rx']); + expect(steps.slice(1).map((s) => s.edge?.kind)).toEqual(['instantiates', 'instantiates']); + }); + + it('does not ride a TypeScript `new X()` the same way', async () => { + const g = await index({ + 'top.ts': "import { Bridge } from './bridge';\nexport function top() { return new Bridge(); }\n", + 'bridge.ts': "import { Leaf } from './leaf';\nexport class Bridge { leaf = new Leaf(); }\n", + 'leaf.ts': 'export class Leaf {}\n', + }); + const flow = resolveNamedSymbolFlow(g, 'top Leaf'); + expect(flow.chains.map((c) => c.steps.map((s) => s.edge?.kind))).not.toContainEqual([undefined, 'instantiates', 'instantiates']); + }); +}); diff --git a/__tests__/verilog-resolution.test.ts b/__tests__/verilog-resolution.test.ts new file mode 100644 index 000000000..65ee32263 --- /dev/null +++ b/__tests__/verilog-resolution.test.ts @@ -0,0 +1,87 @@ +/** + * Verilog module resolution across files. + * + * A module instantiation names its target by bare name — no import pins + * `pll u_pll (...)` to a file, the tool's file list does. A design commonly + * keeps a simulation stand-in beside the real module (`src/pll.v` and + * `sim/pll_stub.v`, both `module pll`); a synthesis file must land on the real + * one whatever the directory layout, while a testbench may mean either. And a + * `` `include "defs.vh" `` must become an edge to the header file. + */ +import { describe, it, expect, beforeEach, afterEach } from 'vitest'; +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import * as os from 'node:os'; +import { CodeGraph } from '../src'; + +type Edge = { kind: string; sn: string; sf: string; tn: string; tf: string }; + +async function edges(dir: string): Promise { + const cg = await CodeGraph.init(dir, { silent: true }); + await cg.indexAll(); + const db = (cg as any).db.db; + const rows = db + .prepare( + `SELECT e.kind kind, s.name sn, s.file_path sf, t.name tn, t.file_path tf + FROM edges e JOIN nodes s ON s.id = e.source JOIN nodes t ON t.id = e.target + WHERE e.kind IN ('instantiates', 'imports') AND s.language = 'verilog'` + ) + .all(); + cg.destroy(); + return rows; +} + +function write(dir: string, rel: string, body: string): void { + fs.mkdirSync(path.dirname(path.join(dir, rel)), { recursive: true }); + fs.writeFileSync(path.join(dir, rel), body); +} + +const PLL = 'module pll (input clk, output lock);\nendmodule\n'; +const TOP = 'module top (input clk, output lock);\n pll u_pll (.clk(clk), .lock(lock));\nendmodule\n'; + +describe('verilog module resolution', () => { + let dir: string; + beforeEach(() => { dir = fs.mkdtempSync(path.join(os.tmpdir(), 'verilog-res-')); }); + afterEach(() => { fs.rmSync(dir, { recursive: true, force: true }); }); + + it('a synthesis file skips the simulation stub even when no directory is closer', async () => { + // `top.v` at the root shares no directory with either candidate, so + // proximity cannot break the tie — the simulation path must. + write(dir, 'top.v', TOP); + write(dir, 'rtl/pll.v', PLL); + write(dir, 'sim/pll_stub.v', PLL); + const inst = (await edges(dir)).filter((e) => e.kind === 'instantiates'); + expect(inst).toEqual([{ kind: 'instantiates', sn: 'top', sf: 'top.v', tn: 'pll', tf: 'rtl/pll.v' }]); + }); + + it('a stub named by file suffix is skipped too', async () => { + write(dir, 'top.v', TOP); + write(dir, 'rtl/pll.v', PLL); + write(dir, 'models/pll_stub.v', PLL); + const inst = (await edges(dir)).filter((e) => e.kind === 'instantiates'); + expect(inst.map((e) => e.tf)).toEqual(['rtl/pll.v']); + }); + + it('a testbench keeps every candidate and lands on the stub beside it', async () => { + write(dir, 'src/pll.v', PLL); + write(dir, 'sim/pll_stub.v', PLL); + write(dir, 'sim/tb_top.v', 'module tb_top;\n reg clk; wire lock;\n pll dut (.clk(clk), .lock(lock));\nendmodule\n'); + const inst = (await edges(dir)).filter((e) => e.kind === 'instantiates'); + expect(inst.map((e) => e.tf)).toEqual(['sim/pll_stub.v']); + }); + + it('`include resolves to the header file, by suffix and closest to the includer', async () => { + write(dir, 'src/defs.vh', '`define DATA_W 16\n'); + write(dir, 'include/axi/typedef.svh', '`define AXI_TYPEDEF(x) x\n'); + write( + dir, + 'src/top.v', + '`include "defs.vh"\n`include "axi/typedef.svh"\nmodule top (input clk);\nendmodule\n' + ); + const imports = (await edges(dir)).filter((e) => e.kind === 'imports'); + expect(imports.map((e) => [e.sf, e.tf]).sort()).toEqual([ + ['src/top.v', 'include/axi/typedef.svh'], + ['src/top.v', 'src/defs.vh'], + ]); + }); +}); diff --git a/docs/validation-verilog-mcp-2026-09-12.md b/docs/validation-verilog-mcp-2026-09-12.md new file mode 100644 index 000000000..1d1c08a8a --- /dev/null +++ b/docs/validation-verilog-mcp-2026-09-12.md @@ -0,0 +1,70 @@ +# Verilog/SystemVerilog и общие исправления — 12 сентября 2026 + +## Восстановленная поддержка HDL + +Ветка, установленная после 11 сентября, не содержала Verilog, хотя предыдущая +интеграционная сборка его поддерживала. Перенесены extractor и grammar из +`eval/402-verilog` (`875880c`), включая include/define и simulation-stub +disambiguation. Первоначальный автор extractor — FHYQ-Dong, upstream PR #402 +(`26610932a9900d98df8802363581274b62b67262`); локальный порт — `e380bf7`, +дополнение include/define — `a87170a`. + +- Расширения: .v, .vh, .sv, .svh; используется tree-sitter-systemverilog 0.3.1. +- Модули/interfaces/packages, functions/tasks, constants/typedefs, imports/includes. +- Иерархия модулей через instantiates доступна в callers/callees и named flow. +- Flow следует instantiates только для Verilog; обычные new X() не превращаются + из-за этого в цепочки исполнения TypeScript. +- Порты/внутренние сигналы, timing и полный elaboration не моделируются. + Выбор по synthesis/simulation пути — эвристика, не замена filelist FPGA-tools. + +Грамматика: ABI 15, 20 повторных parse, 0 ошибок. SHA256: +`b07c23a12884f3bad0043ed77d246a7a3b04da70fc74d9193b67166481487801`. +WASM включён в version control и копируется в dist при build (30 грамматик). +Verilog разбирается WASM-путём, отдельного Rust extractor для него нет. + +## Реальные корпуса + +Использованы копии RTL/testbench-файлов наших проектов без дампов и bitstream, +а также clone pulp-platform/axi на `da8793b0e3f14c9186c94fac9ed6ec06375c254e`. + +| Корпус | HDL-файлы | Контейнеры class | Interfaces | Instantiates | Проверенный путь | +|---|---:|---:|---:|---:|---| +| 2uart_to_1uart | 11 | 11 | 0 | 11 | top → uart_rx | +| fpga_tang_nano_9k_card_reader | 33 | 32 | 0 | 34 | top → uart_bridge → uart_rx | +| pulp-platform/axi | 93 | 176 | 7 | 276 | axi_xbar → axi_xbar_unmuxed → axi_demux | + +AXI: всего проиндексировано 104 файла, из них 93 HDL; 587 typedef и 186 import. +Это новые детерминированные проверки extraction/retrieval. Старые agent A/B +из PR не переиспользуются как текущие. Нового платного agent A/B и timing/ +синтеза/прошивки FPGA не выполнялось. + +Артефакты: `.scratch/verilog-corpus.cjs`, `verilog-corpus-results.json`, +`verilog-corpus-final.log`; копии в `~/storage/codegraph-real-issues-20260912/`. + +## Общие исправления + +- #1356: закрывшийся во время hello socket не получает новую MCP session. + Проверяется реальным TCP connect → server hello → disconnect; clients=0. +- #1777: resolution tests сбрасывают ссылку cg перед тестом и удаляют tempDir + в finally после закрытия графа, а не только в альтернативной ветке else. +- #1832: prompt-hook игнорирует целый envelope task-notification до поиска + по проекту. Упоминание envelope в пользовательском вопросе не подавляется. + Реальный CLI на CodeGraph: notification — exit 0 / 0 bytes; обычный + structural prompt — exit 0 / 9223 bytes. + +Extraction stamp повышен до 30: ранее существовавшие HDL-файлы требуют rebuild. + +## Особенность тестового runtime + +Первый совместный запуск двух тяжёлых наборов без --liftoff-only завершился +V8 Fatal process out of memory: Zone; full native также имел таймауты под +нагрузкой. Эти прогоны не считаются успешными. npm test теперь запускает Vitest +с --liftoff-only, как рабочий CLI: это отключает дорогостоящую оптимизацию +тяжёлой WASM-грамматики. Контролируемый повтор выполняется последовательно, +с двумя workers. + +Итог controlled native: **4672 passed, 4 прежних Dart parity failures, +9 skipped**, 272 файла. Новых отказов нет. Профильный WASM с одним worker: +**945 passed**, 6 файлов (extraction, resolution, Verilog flow/resolution, +frontload-hook, daemon-client-liveness). TypeScript, build и whitespace +проверены. Windows/macOS не запускались. diff --git a/package.json b/package.json index d5a742420..0f867808f 100644 --- a/package.json +++ b/package.json @@ -28,7 +28,7 @@ "dev": "tsc --watch", "build:kernel": "bash scripts/build-kernel.sh", "cli": "npm run build && node dist/bin/codegraph.js", - "test": "vitest run", + "test": "node --liftoff-only node_modules/vitest/vitest.mjs run", "test:watch": "vitest", "test:eval": "vitest run __tests__/evaluation/", "eval": "npm run build && npx tsx __tests__/evaluation/runner.ts", diff --git a/src/bin/codegraph.ts b/src/bin/codegraph.ts index cb805db8f..10f78b622 100644 --- a/src/bin/codegraph.ts +++ b/src/bin/codegraph.ts @@ -41,7 +41,7 @@ try { import { Command } from 'commander'; import * as path from 'path'; import * as fs from 'fs'; -import { getCodeGraphDir, isInitialized, unsafeIndexRootReason, findNearestCodeGraphRoot, planFrontload, hasStructuralKeyword, extractCodeTokens, capPromptHookInjection } from '../directory'; +import { getCodeGraphDir, isInitialized, unsafeIndexRootReason, findNearestCodeGraphRoot, planFrontload, isTaskNotification, hasStructuralKeyword, extractCodeTokens, capPromptHookInjection } from '../directory'; import { extractProseCandidates } from '../search/identifier-segments'; import { detectWorktreeIndexMismatch, worktreeMismatchWarning } from '../sync/worktree'; import { createShimmerProgress } from '../ui/shimmer-progress'; @@ -1428,6 +1428,7 @@ program let input: { prompt?: string; cwd?: string } = {}; try { input = JSON.parse(raw); } catch { return; } const prompt = String(input.prompt || ''); + if (isTaskNotification(prompt)) return; // Gate telemetry: how often each tier fires vs. no-ops — counter names // only, NEVER prompt content (see TELEMETRY.md). This is the data that diff --git a/src/directory.ts b/src/directory.ts index 3ada4c88c..bb8277fd0 100644 --- a/src/directory.ts +++ b/src/directory.ts @@ -899,3 +899,8 @@ export function validateDirectory(projectRoot: string): { errors, }; } + +/** Claude's complete task-notification envelope is not a user search (#1832). */ +export function isTaskNotification(prompt: string): boolean { + return /^\s*[\s\S]*<\/task-notification>\s*$/.test(prompt); +} diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index 00e67c089..d121d3d0b 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 29; +export const EXTRACTION_VERSION = 30; diff --git a/src/extraction/grammars.ts b/src/extraction/grammars.ts index c7710f200..5ee46f617 100644 --- a/src/extraction/grammars.ts +++ b/src/extraction/grammars.ts @@ -23,6 +23,7 @@ const WASM_GRAMMAR_FILES: Record = { javascript: 'tree-sitter-javascript.wasm', jsx: 'tree-sitter-javascript.wasm', python: 'tree-sitter-python.wasm', + verilog: 'tree-sitter-systemverilog.wasm', go: 'tree-sitter-go.wasm', rust: 'tree-sitter-rust.wasm', java: 'tree-sitter-java.wasm', @@ -120,6 +121,11 @@ export const EXTENSION_MAP: Record = { '.scala': 'scala', '.sc': 'scala', '.lua': 'lua', + // Verilog / SystemVerilog (one grammar covers both) + '.v': 'verilog', + '.vh': 'verilog', + '.sv': 'verilog', + '.svh': 'verilog', '.luau': 'luau', '.m': 'objc', '.mm': 'objc', @@ -289,7 +295,7 @@ export async function initGrammars(): Promise { * the vendored wasm together. */ const VENDORED_WASM_LANGS: ReadonlySet = new Set([ - 'pascal', 'scala', 'lua', 'luau', 'csharp', 'r', 'cfml', 'cfscript', 'cfquery', + 'pascal', 'scala', 'lua', 'luau', 'verilog', 'csharp', 'r', 'cfml', 'cfscript', 'cfquery', 'cobol', 'vbnet', 'erlang', 'terraform', 'arkts', 'nix', 'typescript', 'tsx', 'javascript', 'jsx', 'java', 'python', 'go', // R7a (C/C++ kernel port prep): tree-sitter-c v0.24.2 (b780e47) + @@ -692,6 +698,7 @@ export function getLanguageDisplayName(language: Language): string { scala: 'Scala', lua: 'Lua', luau: 'Luau', + verilog: 'Verilog / SystemVerilog', objc: 'Objective-C', solidity: 'Solidity', nix: 'Nix', diff --git a/src/extraction/languages/index.ts b/src/extraction/languages/index.ts index 6b760b01d..ed11e1908 100644 --- a/src/extraction/languages/index.ts +++ b/src/extraction/languages/index.ts @@ -24,6 +24,7 @@ import { dartExtractor } from './dart'; import { pascalExtractor } from './pascal'; import { scalaExtractor } from './scala'; import { luaExtractor } from './lua'; +import { verilogExtractor } from './verilog'; import { rExtractor } from './r'; import { luauExtractor } from './luau'; import { objcExtractor } from './objc'; @@ -57,6 +58,7 @@ export const EXTRACTORS: Partial> = { pascal: pascalExtractor, scala: scalaExtractor, lua: luaExtractor, + verilog: verilogExtractor, r: rExtractor, luau: luauExtractor, objc: objcExtractor, diff --git a/src/extraction/languages/verilog.ts b/src/extraction/languages/verilog.ts new file mode 100644 index 000000000..79a7e000a --- /dev/null +++ b/src/extraction/languages/verilog.ts @@ -0,0 +1,295 @@ +import type { Node as SyntaxNode } from 'web-tree-sitter'; +import { getNodeText, getChildByField } from '../tree-sitter-helpers'; +import type { LanguageExtractor, ExtractorContext } from '../tree-sitter-types'; + +/** + * Verilog / SystemVerilog extractor (grammar: tree-sitter-systemverilog, ABI 15). + * + * The SystemVerilog grammar nests declared names deep inside header/body + * wrapper nodes (`module_declaration → module_ansi_header → name`, + * `function_declaration → function_body_declaration → name`), so the generic + * field/first-identifier name resolution can't reach them. Everything + * structural is therefore handled in a custom `visitNode` hook that resolves + * names explicitly, manages scope, and drives its own child recursion. + * + * What the hook emits: + * - module / interface / program / package / class → container nodes (kind + * `class`/`interface`) that scope their members. + * - function / task → `function` nodes (their bodies are walked for calls). + * - module instantiation → an `instantiates` reference (parent module → child + * module type). This is the highest-value HDL edge: it powers cross-module + * `trace`/`impact` ("what instantiates this module", "what does top use"). + * - parameter / localparam → `constant` nodes. + * - `define macro → `constant` node (a `.vh` header is mostly macros, and a + * `WIDTH` written as `` `DATA_W `` has to land somewhere). + * - typedef → `type_alias` node. + * - function/task subroutine calls (`tf_call`) → `calls` references. + * + * Package imports and `` `include `` directives go through the generic import + * path (`importTypes` + `extractImport`): each `package_import_item` so every + * package in a multi-import (`import a::*, b::*;`) gets its own node, and each + * `include_compiler_directive` with the quoted path as its module name — the + * file-path matcher resolves `"defs.vh"` / `"axi/typedef.svh"` to the indexed + * header closest to the including file, the same way a C `#include` lands. + * Ports and internal signals are intentionally NOT extracted — they would + * explode the node count without aiding structural queries. + */ + +// Header wrappers that carry a module/interface/program name. +const HEADER_TYPES = [ + 'module_ansi_header', + 'module_nonansi_header', + 'module_header', + 'interface_ansi_header', + 'interface_nonansi_header', + 'program_ansi_header', + 'program_nonansi_header', +]; + +function firstChildOfType(node: SyntaxNode, types: string[]): SyntaxNode | null { + for (let i = 0; i < node.namedChildCount; i++) { + const c = node.namedChild(i); + if (c && types.includes(c.type)) return c; + } + return null; +} + +function firstSimpleIdentifier(node: SyntaxNode): SyntaxNode | null { + for (let i = 0; i < node.namedChildCount; i++) { + const c = node.namedChild(i); + if (c && c.type === 'simple_identifier') return c; + } + return null; +} + +/** + * Keep the trailing segment of a qualified name (`pkg::mod` → `mod`, + * `obj.method` → `method`) so cross-file name matching behaves the same for + * calls and instantiations (declarations are stored unqualified). + */ +function trailingSegment(name: string): string { + const sep = Math.max(name.lastIndexOf('::'), name.lastIndexOf('.')); + return sep >= 0 ? name.slice(sep).replace(/^[:.]+/, '') : name; +} + +function visitNamedChildren(node: SyntaxNode, ctx: ExtractorContext): void { + for (let i = 0; i < node.namedChildCount; i++) { + const c = node.namedChild(i); + if (c) ctx.visitNode(c); + } +} + +/** + * Resolve a declared name that may sit directly on the node (package/class), + * on a header child (module/interface/program), or as the first identifier. + */ +function declName(node: SyntaxNode, source: string): string | undefined { + const direct = getChildByField(node, 'name'); + if (direct) return getNodeText(direct, source); + const header = firstChildOfType(node, HEADER_TYPES); + if (header) { + const hn = getChildByField(header, 'name') ?? firstSimpleIdentifier(header); + if (hn) return getNodeText(hn, source); + } + const si = firstSimpleIdentifier(node); + return si ? getNodeText(si, source) : undefined; +} + +function handleContainer( + node: SyntaxNode, + ctx: ExtractorContext, + kind: 'class' | 'interface' +): boolean { + const name = declName(node, ctx.source); + if (!name) { + visitNamedChildren(node, ctx); + return true; + } + const created = ctx.createNode(kind, name, node); + if (created) ctx.pushScope(created.id); + visitNamedChildren(node, ctx); + if (created) ctx.popScope(); + return true; +} + +function handleSubroutine(node: SyntaxNode, ctx: ExtractorContext): boolean { + const bodyDecl = firstChildOfType(node, [ + 'function_body_declaration', + 'task_body_declaration', + ]); + const nameNode = bodyDecl + ? getChildByField(bodyDecl, 'name') ?? firstSimpleIdentifier(bodyDecl) + : getChildByField(node, 'name'); + const name = nameNode ? getNodeText(nameNode, ctx.source) : undefined; + if (!name) { + visitNamedChildren(node, ctx); + return true; + } + + let signature: string | undefined; + if (bodyDecl) { + const ports = firstChildOfType(bodyDecl, ['tf_port_list']); + const ret = firstChildOfType(bodyDecl, ['data_type_or_void']); + const portText = ports ? getNodeText(ports, ctx.source) : ''; + const retText = ret ? getNodeText(ret, ctx.source).trim() : ''; + signature = `${retText} (${portText})`.trim(); + } + + const created = ctx.createNode('function', name, node, { signature }); + if (created) ctx.pushScope(created.id); + visitNamedChildren(node, ctx); + if (created) ctx.popScope(); + return true; +} + +function handleInstantiation(node: SyntaxNode, ctx: ExtractorContext): boolean { + const typeNode = getChildByField(node, 'instance_type') ?? firstSimpleIdentifier(node); + if (typeNode && ctx.nodeStack.length > 0) { + const fromId = ctx.nodeStack[ctx.nodeStack.length - 1]; + // Normalize qualified types (`pkg::mod`) to the trailing segment, matching + // handleCall, so a `pkg::mod` instance still resolves to a `mod` declaration. + const moduleName = trailingSegment(getNodeText(typeNode, ctx.source).trim()); + if (fromId && moduleName) { + ctx.addUnresolvedReference({ + fromNodeId: fromId, + referenceName: moduleName, + referenceKind: 'instantiates', + line: node.startPosition.row + 1, + column: node.startPosition.column, + }); + } + } + // Walk children so function calls inside parameter overrides (`.WIDTH(f(x))`) + // and port connections (`.a(helper(sig))`) still emit `calls` references. An + // instantiation's subtree is bounded (just its own connections), so this can't + // explode the walk the way a god-function fan-out would. + visitNamedChildren(node, ctx); + return true; +} + +function handleParam(node: SyntaxNode, ctx: ExtractorContext): boolean { + const list = firstChildOfType(node, ['list_of_param_assignments']); + if (list) { + for (let i = 0; i < list.namedChildCount; i++) { + const assign = list.namedChild(i); + if (!assign || assign.type !== 'param_assignment') continue; + const id = firstSimpleIdentifier(assign); + if (id) ctx.createNode('constant', getNodeText(id, ctx.source), assign); + } + } + return true; +} + +function handleMacro(node: SyntaxNode, ctx: ExtractorContext): boolean { + const nameNode = firstChildOfType(node, ['text_macro_name']); + const id = nameNode ? firstSimpleIdentifier(nameNode) : null; + if (id) ctx.createNode('constant', getNodeText(id, ctx.source), node); + return true; +} + +function handleTypedef(node: SyntaxNode, ctx: ExtractorContext): boolean { + const nameNode = + getChildByField(node, 'type_name') ?? + getChildByField(node, 'name') ?? + firstSimpleIdentifier(node); + const name = nameNode ? getNodeText(nameNode, ctx.source) : undefined; + if (name) ctx.createNode('type_alias', name, node); + return true; +} + +function handleCall(node: SyntaxNode, ctx: ExtractorContext): boolean { + if (ctx.nodeStack.length > 0) { + const fromId = ctx.nodeStack[ctx.nodeStack.length - 1]; + const callee = firstChildOfType(node, ['hierarchical_identifier']) ?? firstSimpleIdentifier(node); + if (fromId && callee) { + const name = trailingSegment(getNodeText(callee, ctx.source).trim()); + if (name) { + ctx.addUnresolvedReference({ + fromNodeId: fromId, + referenceName: name, + referenceKind: 'calls', + line: node.startPosition.row + 1, + column: node.startPosition.column, + }); + } + } + } + // Walk arguments so nested calls (`caller(helper(x))`) get their own refs. + visitNamedChildren(node, ctx); + return true; +} + +export const verilogExtractor: LanguageExtractor = { + // The visitNode hook below owns dispatch for all structural constructs; + // these generic arrays stay empty except imports, which reuse the core path. + functionTypes: [], + classTypes: [], + methodTypes: [], + interfaceTypes: [], + structTypes: [], + enumTypes: [], + typeAliasTypes: [], + // Target the per-item node, not the whole declaration, so every package in a + // multi-import (`import a::*, b::*;`) is indexed — one import node per item. + importTypes: ['package_import_item', 'include_compiler_directive'], + callTypes: [], + variableTypes: [], + nameField: 'name', + bodyField: 'body', + paramsField: 'tf_port_list', + + visitNode: (node, ctx) => { + switch (node.type) { + case 'module_declaration': + case 'program_declaration': + case 'package_declaration': + case 'class_declaration': + return handleContainer(node, ctx, 'class'); + case 'interface_declaration': + return handleContainer(node, ctx, 'interface'); + case 'function_declaration': + case 'task_declaration': + return handleSubroutine(node, ctx); + case 'module_instantiation': + return handleInstantiation(node, ctx); + case 'parameter_declaration': + case 'local_parameter_declaration': + return handleParam(node, ctx); + case 'text_macro_definition': + return handleMacro(node, ctx); + case 'type_declaration': + return handleTypedef(node, ctx); + case 'tf_call': + return handleCall(node, ctx); + default: + return false; + } + }, + + extractImport: (node, source) => { + if (node.type === 'include_compiler_directive') { + // `include "defs.vh"` → the quoted path; `include ` → the + // bracketed one. The path is the module name, so the generic import ref + // resolves it to the header FILE by path suffix (name-matcher's + // file-path strategy), never to a symbol. + const quoted = firstChildOfType(node, ['quoted_string']); + const item = quoted ? firstChildOfType(quoted, ['quoted_string_item']) : null; + const system = firstChildOfType(node, ['system_lib_string']); + const target = item + ? getNodeText(item, source) + : system + ? getNodeText(system, source).replace(/^<|>$/g, '') + : ''; + if (!target.trim()) return null; + return { moduleName: target.trim(), signature: getNodeText(node, source).trim() }; + } + // `node` is a package_import_item (`pkg::*` / `pkg::name`); the package name + // is its first simple_identifier. One item → one import node. + const id = firstSimpleIdentifier(node); + if (!id) return null; + return { + moduleName: getNodeText(id, source), + signature: getNodeText(node, source).trim(), + }; + }, +}; diff --git a/src/extraction/wasm/tree-sitter-systemverilog.wasm b/src/extraction/wasm/tree-sitter-systemverilog.wasm new file mode 100644 index 0000000000000000000000000000000000000000..be5ac600c33820406227a8b3f4d1212b266fdc80 GIT binary patch literal 21515233 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 z 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

+dJ2K=d}nu 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

+dJ2K=d}nu)}rUZHADYvs`J|pXy^h0 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�(De-r2 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%0Dx9A$$<9SL3VW*|{Di9UZVKGA}kw}tMTlIU_s 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 z zPVf8xIYZ7Cu6{($k@F;#V$qruJ1SG{L%ve(IRWcSqqB80wrz}WR7m1Dli6-YWqE8AE4W6+C z64m`lfJ8x}x_zuX`ykQs^h#=Okf<&ay$~dtsE-OH8cd>C*h`hn?1v{& zj1w(S*?8r~%J#Zeae7Gm%J%)25Ypc$zwbP=gF{vUkZ3T8qD@rR%Yw>-L_wlKJ`(Nq z@Fa?HqS3yYp>;R3iRx+-{SCB<4lP<pN%mNK~_ng)k2i1&M}mlL)hbL?aY?7~cvc zs*6NxL88O>yC}cvAkknFMelt1epOxxkSIvBJde?xJ3NV^cV73q7|Qn1JFlyE{=aJP zoyQ(aL+Q%`iGoC{?~fo+kZAS2kgowqlve{`KLtRdx=8fy5N)DCyM68}x!dQ@6^#>R zc5uil01^!*QS3V}>t#XZL82hhARmeLI!H8Hy@%`Fu{to2V`lU9G)M6ut99=>r6b29qe}&g=GAkSIu0 zw~v))KRk(I?tFR5#w#~wEa{rDG%^HV z07z69iH-t^`Z--J(?Oyj(ds)kNE9SmeJ|u|021ZZK-f%-zL_wm}cWjU-NVNK1$kzZQ%Bz8} zp8_CJT_pO6raAN!bzdN)+-_o=sHo3yj)6o$qSg0bkSIvB`d-M_03^z*fv}$fAW>Z; z`kQDI^>eydrh`O5qSbe7kSIvB`d-M_03^z*fv}$fAW>Z;ItC=_=X9}52Z;ugDAp6z z?fM{5kf?4SE6;v-62)$xfjL-N+xkl4oT~{tgGqEpz#Vo6T=%cLo+}5q zccJuSOxk?3CY74y}? z)&1r{^N{&kKK8oF&co&ruH*o?Oo_R z=esj6y_%41T@z<->)O_3r8^;zsH0T!LVcZE=Wdq@7wWDX0hY4giD+|nDe zc8wdd9gTLFkWTu<-A1?3Zdf7vN_Sp~6Z7o2_?ynAvtkM%XAN&^M##6>Xq&trCLxFFbCU>ZF~%CtWvugwjux7~#TZA=6BiS*v7zDejSUN^9sZckJrSSI zhn*TTJ2+$&c<@TmLMHzf3E}@e-^0CSF}KQ?&5HCd{rq8(=!U?1FAh}++q%P{D=CGB zBT=-8hLTt!(=kt3o7~(Nc)xUCv*P|aHf1(v))gKrwjQ++KuMj7Y1ev#h!(~X@-pRd} zi~e1?+C+2j=T5tx)@c*{AUBXZQ@DCI_fhU#?tDI$YG!9m^M%d!Qxf8|iPqB8F{x49 zH76G#bw24%o-xg10`oYzlM(uL=-&D7yWVCp^ubeF3fy~bsowcXErndoi{`RWe0t|^ z8vGmMrsl73U% z{;q5FDDkQlb85`&;E+||bFSWbkf^9AYZC>Dikhg8fkdq~QIM#5->S?aNVGEDl2!^N zs*6N3Akjp9Ol}fI@4Wc>(K|2dp(lpkdGyZf@vKU%qIbSh<&sqnz4N+y=dah^JCAXq zL+M*}_s)Yv#kT_z74^^)1Brq}^>|jLRzaebDwnKsAW>Z;dILx_QJ<2VM9)vXAk<0| z7q*RT8=cQNreyw$+kPv5TB2U&n|FNM<@B0SxZYGWUrRo9lIz+O8lToSV=(o~Lg?dd zv)bmg&277y#+%v}&_5T@KYyP)yV}@!UH5JMH4O;fg!>50??GI`G#cemY-O~0a zG<0j*e<@o2wnFM(6urt@EEc}2j8b=(k(b?TCC&d=0cE~Qum43GJB!s$Hf^mItFpBk zYUS^tDp{*I-A6-zS4GX1r%P)SbiH(GIwJOxP9Rvs(30^<2Zl&VP&}WE1_;Hck7p*)la|cEn@g5;0z0%>G-Tyi#$? zjrByuH_F;Xv7V@?iTW7U6Sdkzv7V@U->S?a))TEvx1^QAdZN146Ww9zUQhHao%60@ zJyB){hpYlvPc(RCd#ooa>t#XZ(L0ac`5+&O_Bwj!qt$!3-VN)C>gt`}seL`sv$W+> z#VStB4h~rb+`aQ?6BQLjo2aOVo*3Fh(I%?LvnsWUHqlCzOIA6wiRx+-{a5X6qQ6qq zCd%yKkW~O}qG%J9^&$E4XcI-7sJs`cw175Im1@S<7TQF0wTXUTdz&cc&JU&U(%mLn zZ0`Jhf%^rjcp`i4`Kt@Y;=bGG25oap{8oim@s{-10Ew1QqU=prGnTO1r+TjhiK^E$ zjuwlP=*J6lSnet8)w9aH;41d?@mbk^>EPP$x=3{GlsQe#K1P=BED%y|H$S|BkX2?c zRe2e=E7Gcb_+h%T{l5Boy6=3iIp176(mEfR)l2jDn(IfdAIWU0=$*Ifmb^c0FIV&A zZW7%-^S!0=d4d1e-s7e-z)};tJT}91;X8HzQ4|)ffJ0GNw`#R>%yA=`R zjz?ndyr@i)VwgKWl;3uE5`73HTI5B7M2m=0W)es=j9|$j(fV=DYByn&DK`&RaVo8t z!)>MWiB~HtCEDO)wmsVyu!<9}4#MRtppQiBJ?lD^Q#-8U#MCO*JHIF4z4PM-_t-7& zPwR>&S1lF2^Tnm#l-Zn#{$08DohLn+)2`|{`_2!LGvsXH>PO@pIZslwy_2?mrr3F5 zsx}|9GC2Frqj$a_nZlp&z4JQ;`zaOP9;Swg0u!z)weNf~dguGH&dXvw<2`1Nxx%zU z_LUx*PROizc3k}R_QMl0CB(}1&kXj?XSlD>>774Ve?y7h`QM?u*x$G<+uwL>hFG7Q z^0gJy+%ae50JDQbRsnbKJV;bjl+B$7iHe%2k71l>`Qt=EqU!z7u?P}%v_QyT0g&j@ zCOstDuAM|5R79f84h~rbK%&8O=N|}Y6OO)}t@K+*n`m);&?Z`3mr)}|jVOL4xvAkv z^s>g}s)Q%UZlAhlEd5~!5)GQMw7cYtCCr^4O5bl762;v4(r>IX65WKk^MkUYO|<+r zQ6?Vd&JVhf;s8igv7j+Ehq?2*NECDDhx#X@ckVoT=f(Gr-g!|EJu#4I`6Pp zSq)F37$>UpJq&f*=$+TqJ3li-o2cA4(Qhc~oo9A%$SM$~O%yYhN~>I1n`mj9GFQ<% zUtB%(&KK7Oz4KmOK%!nvkm6MUB&v%<7iuTb&5B5r*});J07x`=oG4~2$$D8(d9;b5 zO*F_yqP-3hjaKjBdN+`$E)xB+b`qUTcj;6ycb?h7A*%pLG?+xM&y`jgZK9?13BC#v z1&IcGNt8LllPG2^MfqNa+P!|X5UV)pnLGcVCVAI(a__Me)H}bgsvD%FgyEs&@#68)TZ5^YjMqRb8sSp`6%AW>N#k}nSu1&PXgkxC07QI%@O z*A_@r7m0peJBj8Lktnl+LskKhC`eS+hvdtHL_wnRUZm0jNK~bo@wEjK)kUJYCfzIB zH!C7hW(S9?0w7V4sH_jkmj{W0MCH9mr3H|vN;Tta3nZ$GM7K}WO`LSri+DUYRA`)eGaL6j)CeiIv|8;5@o8PF} z+?J|gId_)K|LvOZ)K)(-(J%;(N5l3 zxW^A_mXh1ZGV&sg-$ho?%PZ))k~>!uc9tg5mug<}t+Rbc{`Y62e@<)pi_r&a-WmNK z4gI+0Cq>Km6;i*=7Y-dhTGVFo;>XI!%PhP}^PkEqUECf^{W;C^?fmJVr}8WBlv(4- z?=+lCo}wz%(36n56d|XpsM+##X&r;Emo81n#Bs~hvNlTHV|n`QD0ZFQgN4qHx*nl_!G6b2|I=wV=R<^iaylVv=Cf2gg@t90E^3t>uT8URW5vq9rR+aWS9n znEfn->@PgY{?Y8LR(*6o@6fXUACw?B(JyV&v_G3IQ!{2qJSKWl#OtMF_TK`fbH)8? z#;~4n3-_IR zyU1@|(G8DzO8Gql@0XrJ`2_zQn=+d-(Z8z$=`HC4^t5Vwiu7boyDHAEqD|B#N|mGG z+eCLXRk^CTeH9g$aNX9qTj%;!;2zVuvdX;RDi&JP=9hE0r7s=ydR=Xzw@r}moj+KA z!z4m_&H3iqk=FUhtX`9y>qo91*?KV{{f*nQ{f)0>2YT&K8u9V@|JO8{# zLBD6<{j#`z{y9Eq9cYdIU5VpF&$NDN%FC{&b;gPAHD57bEnMAi9yAY`ujON}o9sMn z9^pzlZK6x4e~w8V=dSU}+#2A$gq$=_`jqAEBrCjkq4T`&&b*Wk8QRu0arU;ZZCzHn z6T&!AN2%n6)^wF>6J1o8bVyuXN{? zSd^dRXQw&8>1;ad#H`Rm6TGPzA>U@>d$cXH(`cc#PY;gTWGT$TQQ9WDv;GA-lexth zYdn{+&L=urX#N&s96kSUIGEdW5s)u9qEmYRv55kX7KlcF{tyaiU4@ zoyUwN(MQzB&?bsDQT1LWV=;W2C`eRB=iy!!GnRDCSh_1jo9Huxz4IB49i86!(leH3 zU#w=v60?ItRsnaLX!uo}da#O95%IB#QxQ?hOu{NoVFXLgDoz8JIIG=+QKsBHSjDNd zVwJ5aR9Pwin%MSiU%)C({#xNm7zOmL;xuqcnEU(X!75Hn8MKLt{()7TL_PGx&?bsD zQ9Yhjsa3RzR;paG%ArkESDWZxYi|?1N>Q6Avx7rc0knyhp0R|L?TdLBR<#= zO;q%0w26v(=!v0C6m6noWpp0yW&KvRx1I|t+uQHA{Pjey(!R32wVtT_ z%Jx`K)PBn{zaY`lz4IVZ8Se^P79+5OwEAAi*8n8StAVhe0w7UcB>Emm z)X(W+nGO;KiB{jSL82hh>U$wy1CS`M2Eu*{fJAkX=qZq>pVP%M9V7}8t-fP}L_wm} z_d>n~AW>cog#8o%iRvQJ{{V^lIbAH%L82hh>N_?_6eL=GFXU?g66MuE*iQkFs4fzH zA0+DMbg@haiGoC{@7N$wkZAS2kgowqlve{`KLtRdx=8ewAW=W3i)A`U6eL=G#|DXl zM62(Gd<{UNyc!7mDF71HMWUZ*nnO=f_XR@A?dCIA5VFebHR;}vT+UTAPRPSE3Bh`z zqJBd;1`-8{R^LBCq9D=gdm&!~kSMPP!hQ;XM0Jtq1rtG{eqI;HbdV@WwEBJx5(SA? z-wXK~fJAvU5cX35B&v%c376^Pu0Td9*E6!*cE{ng820-^rhr z%`N#7#q587>OazJKPcF`t5_ED=4h7u8P~PNG`_v2ZK9pLvv7|e)GQ^pk!9pX8o!II zpqE$Bb0v4KChROtqA%6FM*p1F@)x5I)VwqLJsSFP%}C}Zk(XI`ljc8_SGu@8milv==iB+yKTqXX-YK)jmEUPNmpnyPs-Y(#btytl zS5dR&>C!p|T`yglkbz52GzcpuK>E zjGz9e({9d(2>Il6Le|V@sdfqr%N||SDmz}AX4S@umH+4R^bbc{Cn4QMT{=_~z2~*Ok5;`PBp5yNmqh72WWdrv!9G@*@`6SjG#kVtLlI`Q;pL=}QN_URRrFPQf_QgC+N!|NO;-^fzwH_BS4z zA?klq;k}8eV$2!C%Ix5fRlwaQ3KA6+WhDAQ01Zb^H)0*#F`Iha=|eXT5(SA4E$<9Z zqL(!et(v1YQ7Z7zwIIq(oNuljX`PSE>ZLQBdd>AC*N>cC&q(wsqrdURLQjWXtI3=- zJI(#;kSMc*LskKhXzAX0w28`kSeWu4QIKdDKZ!0+coIdMXmoF7=-mlzqPp5ddqR+C z(A@dbZK7XP)F#U8;E+`SBnlFh^&$E4AW@L0ycemo01{QHW_)ddM0JtqquNRIj}(z8 zvx7rc0gz}giK2I2*2{v*gG521K|T`g_3$K$-uYFJ&Six4D=-ua>R zHOSPaIEg+og`f9v9~~$8$dvN$@~yJU*mH`8-i)RF7$;i(%P*@0NVI$sWdd7s=O3m1 zIVLqWRb2AN1H6}zQ6ol;C|)+XsUXqhzWZ{X{QN?U6Ya}7im4kXdTNq)^k}&&+rLn9 z#uBS_f8&#MoT%K4CFki8s$2m#iT<>(juKCz|6X#PrpoUvmK?eyI^5>Ye?Mm_`-8%- zsPj;afkZ)~L(4D2lPJcC@^5a!%&*YBZIW}`jJfkodPsC;i1kF@x}x-qrPAX>nV0rw zrtCUrw20IAW@L0ZXYYpK1j4Yz3kjw9|wurS`dO& zoNO)1pF0l{wY5veubV`}uWa9omF|U|88cj7nkhU}gK#Dpj`5 zdS#{jYhv58SA)mO_WoMoN*D#OvV9nps+H&cBE9pcBki64X`xTqTG{@Cz$kW`=15e;j^vPdRxWsJN(uY{e?$izh~e_jTC=+{~Yh+-pfV*u3RhI=ibkqc0H}L zvi%3Sf!vwG)w8*ea_4gA^RZMjJ8POR2x+c!v*0rt6N_Rr`SQsZiLdj9!-jeHyPHM4~xVL%HTo#JY z%Jw%6{*7@{^H;dP&+et^_c!0){L5x5WIaDiW1+Y5yOP;y&hOd@YbQ7{E0mt(O<(3f%2cVOlpn=aVk??5&wCW~dj{Swi`UIR#|Nzg zt@=3lVddgOqQ?ix?|6_#Pc6+G(^<+ow5pWOpXy zC?(OI^)FBoZ863g&tj-eM2Ou! zv5M31`BH*v>K-TBS7`s_Tb8126TP$0K4Z0sJ{{OvqrXjbM?f8-Z)Yq0R{h!&OP8wV z)o9v8cbPAk(Z4IPO?0if$5h=W`Udq+|2EMR0p5!?(PEw-zD*P)T1>yBr1f;VVtOL|Bt3k6yrpT zzekJ{_39G7O%&rqz3L?=1>;0@jT1d<1hS zPjF$``}vpuZs9IZ7JmOJ|NGB@_kJcY2fL?jeMg&fKG(+1UHQ|mUf*r|Zrcw6?yx7| zdU4x7tf*9RTVm?JX|pWeM_ueyPmTSaf%nVe_xI0npzTmwW$&u^ox-L5TibWq{*9hi z?jN@uZaeCFT6Xm~Jqh{uw*I!C7p}hD_Fmh6w4Kh!e%Z#(Gi|?em9+L)I>%C{)l4g1 zpWpCFcXE%KHYzZWlRFt9j1x`9dzO95v7av1JOA+lnOUOeh{Km5jtV#X3?EQ#M;wPWE)6m6o_epl7J{{-x@ zq-l?(z7YG)KQp+;QihxD&KQ`Ghw0q;(t9ki@tysR+p@B|ePW!biZ9SjqFBXARF#n^ zdgnz=)W^^}Z;>cgaZ>MFm03jZd}X>NtrU9ab@k3~(!Pq*T1CC{%nlA&1>C*!XcH9` z#VSss9(rPE6GfY-9?z=OYWOx$%$=`P<2aQ2INC&;F3PXpX}wK#z4Pzpf_vxN>74gf zw6C3zcbDv)@1X?Q-#Cf3iSBdFoxdsHs#@AV=M3JF*});JfV)i;Bq}P(Nc8%_ zReZ&3c5Iy;7$U#uoiF|(Hf1(vqJLN7Do&?JPv*3%dd|xB1LO=jTe$iWIY-WuREkAw zQtZ4iRhy4l8L*ycK`1RhAW`)ImmpD)X!ZROBnlF(z8CT}0EzNyAnd0ANK_YzKB=8V=PPOxWp;4LDgY7%iOTwr ze0h*4NL1d7R9XOus#G(+wm_n~Nc1V~B#JiCq4ZsXL_wm}_eYQ@NVNK1$kzZQ%Bz8} zp8_CJT_pO?+DY`2irPe(9UQU>fJ8x}vOXkV9wZ79mG>f*7C@pZ)r_w#kf<&a{TJ;d ziZ;=q^j(5PL88_7N02B;wEAAi*8n8StAVhe0w7UcB>Jz~NpyjtHc@5=hpYl1QIM#t z56PDYiGoDsy-1}6kf=&E<7*2fs*6OQ*G{5n6CFz5B}fz`T77>6iGoC{?}dB~K%%@F z2>U4j64gbbyS0<(wTjwAnH?Om3V=jGqOv|DUmhe15|#HNl@>svD%FgyEs&@#5`9rS ziK0z(D1Dc161{PXRl6-|rodRHTj<}6zb!D-)Bw#Yt9wh`by%Q zs|h=UN%WS0I_wTr1E(&!LkGBbr~6)N>_6{O(C-;|zbt-l{~RB*4zx!9t`4NPqz};3 zs_mK9FHL#b^|b7&MWTDnSIk!nSNEF-%|qsE`Pl0wI}e*jxRL|ZVhueBSwj7DOzJpy zjaTN@0PiK_q@S;k^r;=Y4nPrB@TOt!v`!ZC%^CtaK-|qshsMP|_4w)3tT( z*13L9y~wbxbQ(+Mu+W+|znsG@{dmr<@$p<=)(#WWNuRje=r-C7D`a2k&MUEKz8x2T z)7f-ZOd(|R1aE3a$hX<}-WBYQE!6gD?ki+>CgkW$LUz`_Fp-cJW32I9#yX$qXrcLA zjB)f_N82)YW;@KC+3hpLyC31KiC3JMQ)6ZahpYncwTl)q`L{^^fA-!6&W`H7?>>v5 zT1gecgt8HveVN@AT8VeXs-ulmBw+&~vcLp4kAmx`eOwYJ3aGKw$Ses?q(V%CWXA=v zkhN(dr%!`awGB3j4aVTN8Vfo8*bah-5LiF4V_f2g5TKY)b>_~F=FHojxAUL5_s;j; z54va0ocYh0-~2}U@}D_pl>YDe=ZAxBWR^TuwExm?eOwaVm%8t3Gj+#{?sMpkHic#* z(T}9`VNa$WRM*I(p6d2kc2CD50g{eE_hn?GRz-4)JBIHXuKrvFN%RFZGyGzx<35SL ztX@^G&98l3y`he)zCLGhL7($IrEg(t$!*}1=smVSm-a2w*3E}#{d_#dy-F=QdC|%G z7L=7DCyEQQDDajm+mYxk^Z$o8ZJl(n6Rmehbo&Wb+dg*cJTo{)IBg&Cj5TBJvfPqW z=X_>bN=$8Xm%@K;7~60np11D%cd;9OU336^|a&&I!aEL^=wIX;uiU0L`?8M(f=u)6a9~da-vQgK4ldkCz?*8JSSS#Wog@!6D22_ z=8&c=zk$6+N~Ewp?;GSO(#)uqJ^xLVx8ga`-*}Um=R}=2e99^i&WSQ&DX8eeB@36lMPqdS+x-f|{pJ?#x zI5|4tI9;=IngreHD_C%6P0>S^bpU9Hs><3k2L(8=r7FAE3ePW zSnYhGH_hJ*cjpuR#rggupOkBpS7~d?%qO}%r4QVl*Mu%qtR^RVbn>am>d#ehKGEMA zzkc{7PEHgO4QgV32@;Loorgrt`z(7zNHn`vO>PN^N|ESI6Od?=uB2TY3 zEd7F^5lc=SK4ldMKPL)_1{HNk^zoGUC02jOH`vGU5@YAXinz;=XuK|vXjB(SG^z+dkiGh(w(@e99^SiKdU8heXS|ENy#o zqS3qaymvm$HInNgQAu@sCpIK1l@onLoJ4=o5Q#c*_>@%u5`{#|dZ_&NkSHWt-bE%O zK%yqq?A=(9s1%7lDo&!mWQataIDE<~0Et4PWj$1Wdq@-#E$6nQkSHWt z)p{yC?s0eL*=)JL?O}gE;1Pb5;du2@5X{erATxl_Jrvi04FaG(@6K96n_g z2$Sfi&i#{fv&8%l3;yx>eG8nH54LT8?}FcNechP*TU*4%|LnPcWUu?&e607!HBrwk zcB+3SwC-Aa`BMwdTj^ClIKPk2E!eKES3A_B_VWAHE_?MZ`+KAIy-7LW_9Xg+1z$+) zv$se6_uGsA+V16d7av*hy~W?ROW$1Z=ds%#ov*!D-#Bymso0qDn;*;3)`{?(-TsA^ z((&<}+P}8j+}rvlw<*5ndpUbtd{5oHz#c#rPmf+Gp^JVYqqX^VvSS(oprnH_ggEq{DPl9|J|*UQg6M$ z?$>6g)~j*KWj|Z&sLtmb=exaem-7F)bMQ-x-LF#4uNxt%Vm4K?wF>vL*jC{v{<0U( zJBpoyA6)#wl)tC^t%D^mmZS2{!QH3$%fWWiOWv_4_4xdeJigfZ*3}>BeJ$^u51wJ(J0H|TW{I3AIZ+vB6^%+x zw5W2;+K!y4R8I6U@to+i&5I^xadP7DDXTy@C;AJk-H7|OJjdsU%kCx1_6wJ|t!}dO z5zgnb)}OyP-=Ee(>>t<0)`ly+=y`LZ4vB70>BFAz&T3vhqMf^%yOMGD)sX1X$)_f( zKUYTv_YWSizpfO&HGci-7elHzYojFkxb-#b>()0cr}2V5=lg{9WNXRY{AD|$n-kq( z`*UgEGCMOG_xY6+_bTlz6Rm7s0FZe>d3Ag!)Tv>DMNr zwU-9k-C+IDzC$r>&DycwuWj$_S*bhMD)p6tFWC1=XRXcFr-$9|C)Ul{?PsmiM@}DE zKcLh@BcB?5Xyo>bf_uMAixyntFZn%o;_xY}z#D6V5y*)K^>9e^BPk?aJ>3NR7+&(I zCtTmT%hizR9m97GSAVX8B>IAy8O}zcud6rIan;x7oHdt3Pw89OT5`{$PonqO{!Av( zkEgg-sYNF*I=OSbQBThx(Ry_6w!OaP%4U-2_7kkOeeBc`|E#qq(Wy;-OT83jPNn{C zJX#wj(KR+fx+J>uM1PzbC$>YPj|>b0-~HY_<&x;${=NPG*q)JoZfJ6JZs>4` zM7Omf=sk>d2q&=-_Cu#(w(!>}c(9pxs>~e`@DMuNYZj$9_?} z3Y|SG^^{Gb4-PzR=R{YGEF1B2qATq7E9{J@n-hI-be;9!=%+#?`lJ>u+%Iq0?=d-1 zPm?mg-zO*98ncw7Avw_`WlYwS6OG=TCnsvsVR>Vb6V0nwGux9BmCA|!Z}FVyX@+v5 zP8>dE6(A?te(bzMqU1!&x-4yba-uGYk`qmHN>%I0iB_d_ckhRss8mk$zmgN}?n@(Q z@5za#lju86+=+-6xB6!f!^oB zA<;T~7u+W#3W)|CQTGxgTK5^~j{QTTQY89km~V+AklOZ)y&Z@7M5X2v z?aT1C&vNfrdXu5~M4dQ%$|?{h(I3pePf34M&5M=3W9cvF=S*_nvGh{vzMo5(W64#h z%sZC8owA2_roP#`>{-gUefQ1c^xcTUNyni3GG3MB7T+8H{&@B0D)^427sh`u{$l88 z{dX+AH2(7VtMhAL8-IQLjq&5HrM?O0yI|s!3ICY=w|y?OYnS#d($@K{?01zU)cb9g zPApAr-4kf{yA$i}cO%_8vCodZ zIMfHF&a>aK^yz^W_B)pLO}uO3nQ`}f-MW2t`+XCqtvGGPM^9Jk$}QY89E z;w1XJhDg+j!>6nQkZAhdc}TRZ%hI-oL?O{Mk5s!J60KJ6ZrvLsDn+6P#YyxYLnP|N z;Zs%tNE8w+>!I@7L!yvqc^8?C0EwDZvv*@bqEaM!NSs7}&k%_^arl%~AWWjXV=1U8 z?^p`zA+yAYB}OdCIICz>Ml2Oou36hLc3x`i{5Kdo->6F|JYoqF4W52TG^mHn5+n+V z$~dcNR7kX_a?RQf5|tv+Z$hGtx|G5s%7~@l>1V`JP!E|U?#^>}UdCBPqjGn?sB+EP zj=S?xcjy1B_}%$gLwDz$IDE<~5WYJPi3SygM1y+BEJ31>sEo6UMukL+D%Y&-AWi?Ts{ka*h^4X~D!)A>3W=6?k;w>2XarDnBEt+1h zm;Jsuarl%~01{2VJOB7_dzJUJUtRgyq&H<&-jU2ZghV0H%x0;iAtYLf%w4||NK}eM z|D2p?*IylZ4geB`MDzGXrY$52iOM*uXjDkFsB+EP4ic3j(I+6$MqNr_68+h8+{52L z=*#fbxqex$v~Y5g68*CE z73-_>Yah41W_{iIMr-L?mh*kWdQ#i+Wjo>m`>WJ-wm+BlJ*}IASJ+2<+sJJrYew9Xx8}B%5?62bmV>{8ql2Tt z8m0dG+0okJK)bs}{?xv!e#OWNJNAp(Rp{(lsi*9_^A8R@yi%zZBg;lUJ?wrzv2KOk ze#OY?_Sd%q}aT@>8=lUlUk8h^>}F?Z*ERf?Cszb3dXBpTGic}^4(4QgV3 z2@-`w&AX~hL`bxZdd=Au5|tv+KZZn`a~au33W<^vt>5sFC?s0H3-umAqPiNClN5kN zrAYLCNHocGJy{ab=lAis1>4p2YKMB%UVgvYWv|?2fBk#& zH@5E0r`?_Z!h$a(_SxH`{`>94e{J{jyNi!3_}=30+of+V`19E9kIvWLt8bjS{8Vhr z_|1>yXzN6H&TjugOX>J{PVHaYZSHM-liL(u^SzusF21L3-tq-oCHL<9l0N(HRE?VL z)Sl#tQ#5UT+%|gM%Wv8_ST=?pFI?U^_}U_;&e?}kdTr4)<4QfTX6xD~T6c`Tvu;;w zZ0+(3e*XM-&yTWw>jn0`*4Dj7uO=L|$nq9Ds`L5A`EGCArTl;H9Q@K^_p6li>qdyG zm`&Aet-`%5wpBQazwE{Hj$-HF2N!=ZtM-?<*2-KaQ7+xa3pzEPJ_`0hL;8a(}wXiyKCB}fz!m2pi0V&3W?V5LcIr&sICU(Bn2Q*DH8n@IngB3^<+IH z3W?TlY)BLmt>1-u4=-kj@JC6R@ zcB0>UZLsXWcixG^r>p|ucPv4oK}8|apdK`$`8gl=ZJ#ft?)$m<_U=|m ze|pjL&L`@S=(kh$@Xpmqd#$HFDW6zRZ?f$5yAg$xjzRZjeB|U7-y8q_c=hKhloK8Q z!T5`zqxEy5FO9!E{_6bN*T!ETe`EZ3YpHL-`7W3^Wx_vZKPS4-u3g%Fzx7zi$PuxE7_Y-c(J$|RoDSf9k1Fu)-|L#6}_u2lETl)0MXziXryWgEyZ|5>^ zo!Do`UL5L!Qs>z@(N7Pou;&@yH}S5CXU5&{b?f%o?e|Tbw&JuE_uBJ-J~?`g_2lTO zt$Bm}9z3sQSpC{y$?vffhfi4re(ue|2#{z{4@fkqhs+Wr>gGftQ5k>bj|z$A*Q|+K zK%!D4`dM)jy~q%WI&t`vRR9uAAF)JEw5-e0wueL^(KL@#yB-p)R_|`z8zd@4qJL=T zKmEL;>kqRz(Y1z1)QQ8VtOAfIBwE%(<+q1KA<^h zGIMv{iNmL?0+1*qTGm75w}(U_(ef@b837VCsb=rSf<&cA^igpV{X0V>>crtwR)H{y zGIlcHSjX#?H(5D}PkR&ga*xiCZvsUTW<8_?Yx8PG=YzJMYBdQ&xfS z*m+1asHj7t@6g8O1=qSud*Ui-FZl~tjp52heRRKG>=rf9uloq?{3{2B)WY}hD7&?lj!;Z zGbHN7;Zs%tNHm>9dB;*&m!)kFi9(`j9;tRcBwDTB-MTmK&P&~$f0Ovk_Tz@`&O34V zlvMx{O(#)uqGer{wml>YiKcm^+VzlVwR(5!-pGkc!Ewhv80~y{7SVfQ7M;!{BeI+B7j*j}un;Wro)!FGe(fcp- zMl20$SD`;*>1zYmOe!^NZMJszyWhK~W-aHtw|{TH`<&>Z(Yc{x7x_ovl(yv>vBYzt zLG_9)g-MjReFk;pZJ$9sWR{pu)Fn~g_9^49{85=tG{0s|+=BT;rREdupOk*bl0%Rt z-a8M8nz-_rPn4Xf2_KbcajtB%}XZXsKPl> z<`WGH#eAYcJ!F<3QAkwASw*8}C($#t*%XWJjqSQs0Y)rIjaYiK_=qL?tkA!X<8tOXeG1*81HS+4l!S^UPnH7Pz(Ei+-c>zc(r8o1PP8?0hDP zOEiK+^OL9}_X7K?)IIh!vb1kmU;GL9c;pHSw_9}bqLagQO<#sY%Q)aYZ~K*t%WU60 z+dj6H=R{?4qWdSyKPP&)?Q^1z%jSmevuCz1_nc_=xV4jenuSC^pZaf^i6it_F^xpS z`;sS7Ml6LjH@ysr<|omY2O&|@KJ?>dCs9T$`KmRq#NBzRyYr86cfL`VQ38RuPgMGnASX&r zRN7qM}L89r;iGDjYZ&cVI?_3?OsdxE^J*v99K9DFR+F6c;L_6zzbZT!PQ7IBV z0}}02(~I;A5`{!XjFl@WBnpYJ_J*?RlPPZ@$2dhbzJqe-r>2R&-tFxw@`bd zC+}F2@uC}*S)3%*?VZ@n;v_YT(~mNXQ}0|R8IFWmoYHfmFQ409NJcER*C%}~IZ<+= z=`N|V1v$|w)$ZPX{lS)Y@137q;U3wo6IX9^N;jY9E_eT*+a|nYkjjbv;n}+U^=lQYVa@>;NHzy9CvI=C$iGHZz@11`<<@ooMJqd=l@656D zA3G=cFv*GL&xtx}F0j8!-DCT6Y2Pv}U#ctp@f7zewdmwUC+k~KR*IY`E{H1dvu_R8 z9pBoHL~pU&_S4o$7dxfiA<^w8SWW7^^Ix6ZFt*{uUR)h74b4lk&g;TJ=49T_|_2#JP7sd*6+t@#9WlxYh zkZ3u5|Ln)hZQm_hKSoY;?C7X}ww!$Aj5TBJvfPrlW~P;=oZ93q2Y;j4Po?%7$cY{% zCmIyGgO|FGM8jgrlPGuR!WF{F z&E-VjlOZR%#(uujeNJ>|>~o@r2L@7~6P+BL8#>H$qW&qYsg#98PdmSg&UyFGFPY!j zWv$ofC4R`g!l%G9=o$ z=cbc-*1Ws(b3gU%pHixV5lgG0_w4hISmN${CtWM;`w}M6UzmS~`u;(GyJ|-)-8BDH zrc0u~72d38*4M3Xw4SeW=M#Oxda||TAC)_HeuwSPM87id z1$!1JXYBl^hu!Zd*12QnPaiqGmC1c**a&kZ3lYn%=5;Ini@3CnxH-9uhTs?T2%s zaU@!8PV|!b1LW>}(KFp_5>3vDa(6!7QOqYA)ddobYC=s^fn`_4Jtz9f)7+N5n-kUV z&aWHtbussx=&wP|BH4G|O|M2kiMoAGPD?pH*5kyZ z77~@$xEJ;i|D32g-90u&EP3ZR|Jy!!PSn$`V}IveZl-^oMxtk&-+4Jv-mzrHYspa{ zQAjk|9d)eHN%Y(wKg0e@>Cl#y>kn-?w8ia>UpiA8Ib6J_&m_#WSUe(IR-r)h-Fav4 z%^*>kyYu7BY+r?eJ7ynY5%Wp_G>KEGC;L{qxcajQ2%&aHFuVB*_8oz=}CQJGnsPRc-{>9aUp zlk&FDS4IzvyfVrxPWAr<6DCpS6Ahk|g-aGLsXr$=oXX>RubEF&SHmwei<7T~USbv} zT@AMkiAFV{CaOR+B>LMw65VsXHS+U`ZeML;KG8H1of~34(R!Wa?L7;L@{T1>t@vM_ z6OGp;d#%ZwDDPMb>drfsf_h|If<&|F)bv)(yF0&tcPzC`&&>8_ul*>Aj@tRR(ew4Y z^JBR(az*>+-9P6!(V_}^+mRFXlnDNk6AkL&Es+!Tl<tIXomeHTcH9z&wMW2uCFa%>8TI$}YhIV@9SQ%JN%@jG_c|Ld}F*O*UKYCcg& zH0-tBUWP=|NwoeEOZhy=-T8RExH})O3wP(Ex*j58vdrWbC}B81spG zO7zaJ=W;Vg6eiJ$`Da4)yYua5aXQ=3Q>5|FiB6_QXBMZh6ClyBBJMII8m|i^8r207 zjcTITobEl&uU9s(T+P_|&J$L@J1;Yf(*qgq&X=FXX`yvsWTC|@PW3x1Orp%<6g(%+ zEKVP>-*(#W!`S(D>SS4Ga_qeR|4_kwL!v=Fyd_A~Q^Nm+M13tNB`ffjo|{i}=ceSN z_1EYmdg_Q@KW!;BW6fB*EVtyX$)6LwW~DQW(+2{*xzw)lA}V!*wdNwFrmb0fpF6dB zXU|IAxmKx11_n~*6P+8H9Gx3FY{$_*+gcIynrK z-c@BHLZW5VYtFV;_Z*1^&)tD5gUjBMJc<5#D<}Gm!2a`+=wV3IJ7FFF3yG$aC}ZbM z*q9MZj*5&}GT|lp7?7yE#@)AvUt{e2{7KVERAv?@Ml5yT^--qBkSHWt#y{D&g+v{# zAkplOsk0>{TBrJ*y6=B?MYv~-ooDQP*b^)lQ2-K!M2q+)|2B}QqZuTc-#K+`0g2Y3 zdZ+L6?;z3nQ$$Xb=S0n3t&k`rYSvLn(I8Pr8AvqAADvYXiFVfc=#1X1xHQ}ka-!r! z!=7Ndhyqa(UEP{DNgsjS^mi;VpJ)+h<=KW2ON>~`;}`k1kf^-Iy|4#naoRp6GmF!2 zoa2n04|*g#VyXNrPIE&CM&^c?#VM$B9ZOLXb$bDcx;i+sI6g@6+j>enW{x8SfXzq*EUYhSu z@*bX>Z=c-4S>r{&QTgASl=Dr$JO6S@AKtmT{l2SS+kG?Je>ZXtla4|6WxTG*ExtGY z{qgG0)seydgGcPI+uIk$e=z=H=xCj_E{VQ0{_^;%^J`xle|`Lo@#C$fz6s~MVB(aC z;4v>y3+#%8cJ0!>MWJBxkn&w*hty-<@Y>`)p^c8(M{PqL66ttU;ndJ!F<3QAkwASw*8lqD7T!)^?ES z_AyBk{jhyE!v8>`z81Y!f<)8r&NH*UwCf>JNL1Qm`Qk&O`SfaP>+7%b?#};BWY&A7 zZkc~;vy5v z14vX?gL0ArK8b!0617D#_uhF(G|6+lS>KH$dVXL8)wP*UOqmf&jGfOUafwEdC?s0K zJ_4IUq5`7!U`WQ!OO2iX@~ZMV(Zl3KyXKnfMiLE*3yB8xP|6#p9j@=(Wk?hf?JRdf zqVnhC4=%!&mT&LmnEay`o3yFSyIA6?St-Y+J_lUAPi_^Z;ean+5 z&xsa0quIBDMDvsAh4!5RcNV96>}zCc-?F}Vy+59M1uZ&x(aG`KHn$cMZSJ|xbL9Tr z`M9l`L83CxiLNp*vpvs=#<{XH>#~q2?^tSo?)J1_UHMvaqVba7F?`o>_2()ypQxG{ zelgTNe?HNd)vM~Y`L(aBH`H;}*W$|sea`okzJ(#$ghWG98e4=!jY*jp==0=66Se8| z75a!Ja-yAnwz{EzSxIzF;Mq)xBO@njN>xZSUP(waUKetrQC%R>s3z1z6(A=n^_=M8 z40q?#-u6jOH0sz+t;tHF^8N2z5@p1a^x5a`eEz%h&N(3`D&CwqE2v-RPCN_xCs>md1qc&S!YXR9Ay?k^-H4cmA6(Gn^(JN8WlpCn_^y>3L?h z&wEn3x;-QciPmpmNE8yS--UV)AW>Zn%1H`zGKqd45@kNoB;$5mJtPW=)^AEk6cVl9 zg?bMlQC$tnNeVRK?)(*-qDQaiL}l*If0n!RQQ3RA1`>rt>$f)~3W?V5LcIr&sICU( zBn6s4qVI)7V@^LKmSRLHQ3Z)Yq9yEOXj4cO5;bHcLt!9MLqhg=m?n_uFF~R)E`~&7 zL@7}Pi9(_!>|;heofiBlb;inJO}#Sd6^MQJ2KpzXFgHM zb6jogD2a}?=CI#C==Wnxd{%pBU(6@!D_*X|%=Yp6F|&QVF3fBn)ddobYC=s^fd{YT zz4J08dVztN?X$dh{($}7`A6;d*Xy5EmcA5UCMO!NOVQdWiMo+=5^eh1K6&qaQFmqC zj+`ht(X3vnrX3_&jm}EF^3zrANn$_bM5W%b^fLxXG|POVkf_9Ukv}FR%H8?=t}(p@ zBnpX|_0(P5oi{5e(P9;VM5RcSyYsPz>)A?36cVl9+>j_FTE7eR9*`5&)sQK_eS=Kg zDx)@G#8RA|`g5W(vp7AO;W<&>u@rZ1y0b1TiN0Ch^445kZ4pBYN87GBznOW z(Y3eCk9?W7PP*7xd-HkGHr-jH=R{>jEIrNJKD*Nz1$&)^L_a@VFnF%bI+sM>G2Z?_ z_OxGJ`C3RcUh>`|(F^Un6btOHQuo-`=hD7qeep;A@zkpq5{)VciAFV{CaS<=TNyhq zb9esp8Avqk?tGT9^Y__f=Z{?!JhR&vJ0BFJf~7Et{?qxp@cP*K9~Hkd?;L16iT*_D zzOT)sk{A6(<$rHd&NuxzQAjkC#3dSWcb>cRCF~=xDJ0rn)c0?0zrHDJnZ-%!?)+b6 zcuq8JKGAd%{oBz4BY!)}EKc=buVE4$9&!7mlW3>S;xrYYQ%E%IB66Z(Mcn1y%85G1 zL{2pROqZ{PM9XW~gb0wR6p0RI$cdIG(YYaJaq5igv>Qn@sGK~BGGZyHxcMb=qU1!) zyQ)k?NVJT4&Dqv}PBiYA>wQl2SKk)bCo^^O&xt;7fJB*3)XdqgA_^p$es>-cm3AT| z3W-X4EMI&`G@o8gZQaQv`Wukwz%`Rf&03qS-Tm(O?x|VJ`R?uC+wXXmoM@+9xmihc zec+C`MDM*PIWL(Hep%~xU+Q=Za-!k0!QJ_=BJMJG=i_x@#8OljNHnSmHBkjRnM9+# zHCH2_6FrAnoXnlBE{K$sMCA{qb4ipDOVVeboG3X_X^-WL4~gc}t61xQ_EW{S>zu6^ zJHLHQX6*c1GLR@^=R4<0DBBZAl)Lj~Jyd>sNE8w+?;?{CAW@TQMq_R6dIoimiJYj^ zh^3#%K%!|QmUvDydgXO$4I~PQ*6&S76cVl9g?bMlQC$u5<+nki=0&YAqWs-?NVLM! z*#WzPL?O}oZ3u}%qV>B_?*SyLt07aq+Zz%f6TXtDymwye?mX|Euf)I|vlB=Z60P5i zkSHWtzYFyqK%%-D=F9IQCu&~Q3L}ye-7r?6+zr?jB$`g5j98Ms5Fk-VRN7R^UQ4DDVK4SMBSc2qOJ}Lmn>YuJC>x~3W-9Z(jLnf9}>-{ zS5sU2InmdzjB3z~yYuUY{3ADacm8Q|qQ0yRD1}LM^ZZ?SokV|B{LZ{1w3oH?9S!rl3(E|6$c6TRkLoAssUmdS}q%vRXCtJfUSk9wBm_&!?pFY+}^h2p{+|0Abq_*)S+6iy_WW-X^ zIWtvHPL!OeDKD9c1BqtS@sEExTf1Iuwd|_!h$a0<$%%Sub%8{qnotu} zfSjmQPISZwiC&X3cD~QfiT05bjT*c1nlOoy6AhjM=Q+`jq~wGdJ0H|6{}MS-a-#WN zBe?}6DyeSo#Qx~z_GgQn zXnTFq*FvI@Xu3}NrAJFF1uCj;hs}mG>TV!T?y;se6PW0%gd(8jb9&BuG?EGJy zoj!}x{q{&BcV_!x?JD$Vw*T5d+THoNq5JITM2|7Ey>8oD%3%`y)VY6hZkCSxhXqRY z+5g!ys^ivDYTj^Cl zIKPk2E!eKES3A_B_VWAHE_?MZ`wcY04);GCL@ipJe+2i7S z>gFw9uvJ=Mf0bI&r__rzYPNH*y^d+?+i$JZdj@yf-?Uc6*Y6yBZIQFJvk#~A+M;X5 zm3m^$*0oQpaq7RbZdYq;?eYtL{`_~(kFtI11xnrA8b9vUI4#S5w%Adf&o}J*Qe}>K z=irwXyI-Z8UpH!0#ccb?*2>+7|7WqS{O!XfFP?W4I|o0w_=72bPlaQ6%U&!;<(-4O zPw|(%7S;TE$D-8Z^GEXdV&_{|f2uj^PT9+y{Yu?oUuk!o|K9aw`sBnh`SJc1Fd4J^ zV)2}4@SHK9XiyKCrDKt>Nu#dxTzzDtRz-3PMl8iE){7&Se)a9~$C|Y^drtIBZ8pWM z(P`H!3i$Jh#vM^Ja-uTNiSEeow$HSg?H|sN6XiM4IOkSh7tV=7qQP?ji3atMS%O5l zJ8#xmUvQ@*E*umREi7H5HiSf_o)d*c8+9QmNc7j0^G*8joM@6VChH+lNYtdC%E!u1 zqC6*BUhVFUz;mM8$Gqo6|F?aQo99Hk*UR~X};C)x=!+w->1vgbB! zdq@-#P4h^#>$8(6cjv1;Go7_Ja-vc>(f`KVK0C|m!o7)-=vB<(q-pNtM481&6GWs4 zi9(_x#wr{X5-luUqc&s~Cn*yBm*=F9olkpCH2rO#%;MB3mur+n-Ja>=KH9%y$<&c_ zZcdb$?Mw3dUWr$y)v`C6p6Ys+ppWIJA#?*bv1gc42h;cC(7M< zY0pEVkf^lB^2LWl^Xb*p*8bi3cL$is)q}C~o-gvhcm8Sa&U@lD;ujKyMC&&?BnpYv z??Sx?kf^Q(k?{w5?EW5x|9o==EbNmXtIAklOZWfrI0w#vByBnpY< zw2W|bNK{zh9trK!%V?)>j?cRt3W zkZ6o3C8{9NbQ0z6d&BpM@1i7H4mokY1iU&3ISHibkX(M(3E ztPvzynbcjqqbA&)zk|E;F&>3PV?-%Y6(!ND&v(M@AM}HMXxJ~yl@=~>V|)Jtc3Eq2 zU+TWE&D13?`i;u}-lUu_B$`P;(MFIcBr0mK+`%Ey+>$kNg9oqd{h96KPOLtQ)4CzQ zg}IsS|H8oAKC{f?bYNs|=+O)PBXCNqtl)Co5+oX@O7XfViMp{MQCEkBOBOC6CtBQJ z*|vm4A<=A3sj3wuT7}a8Meu!;RrFt}Cgeopl+;O7<{e9KVLs6~;d{0Y5>3yEGGa;E z{*WjnD($g+@gdQCdgX0>%iHp9(V6W#`MvX!is>XOlN0@k3?%xBoy(lIX6+2-4lRr6 z(E8T~$vNrG7c97`y zF-Wvy?b$^ggG3?G`t1sdLZbD%Q11aGs;gnX{68-@AG3~#kSHWthwplCpO9!eiGCzy z)YP61v&E6Y4(m{AcOX$nG}R=PHh@GcmAh+q_7+Agjh#B;pFVRVmabXpym$VK-T>y- zE-tle{C(YEt+~j%JHJz__wUX>GB7Zy)U37H+THJd@1B~q@8-{1d;9nHJCWvwCP(Ln z4%>0`&o=E|zh1AG^`7YUl#3|8J9sAkp#~HX#Bex?Pk+|7^4F zB1lwMqqoYCC?s0Hqajg9w0;-rJ%B`YH7F-3@X^be#YyHl(R(MIoT$1~S3XRlX(N`h ztoH8I4BkSHW7X0AekA<;szHEttFREk758kofi678M~GD@QV z91_(|A0(=YAy$M$AyF}N6$%WA7Lu)T8$qH{B>MZjW2sSBQ{;-qS7AA7atPMr&m*3AK%*h&x!uQrs&z#XSSDl$I@pr+?~Jw#LV`?v18}6%xr(3 z{kG3zjGd33;)-h^(e&p;nZ-%kl#nPSD($g+@gdQCdNs8*BbKCcqV9;L&t0iIEAMln zj9Aju>+CWlnogpOSd#WIBnpX2dn{jkNHm{bO>NzT_s*}lB6@b^bE2W8ZlxxU6&M1lg zUyNANEWn5*O$@OjBnpX&nX6D>NVJe_joSzkl_Jq~8FHd&^ND83i87yPXI!*V68$+y zR68}0s3wM35fX(&#mrSGFeF+?w#ID)iAs^^<&bEjuBIr7z6%o78~}-GVu%$XQAkwG zT!jKdqJ?B@+(wY76p2nlqK&$mq9pomNK|tGB&vxaR)j<$Q89BB3Ji%BlC5zYL84M5 z`fHGAqpqeXiT+DSRC53%s)-?1ghU}xF>@6P42c$!t#KPcqEaOK+mL9ZuBIr7{y&hY z<^V`k6GN;Bi9(`c<|-5z5-lWK<2HgsrATxyB-*H}DN3UM8WPnU0Eud1h!r7GNL0*R zg#tsOg=A~oMv$l!iQWl`HtK4MlIYJvqM8FBQB4f7A|wilikYiWU`Vu(Y>nFp5|tv+ z8A!BIS5uTk-NWa-^R5mKiSpig=}Q6=)8-S+^4@vo6Ls~j z`%g$T{T)k?sI*HVQApIR$4(EtuR4EhNHo7@P22(!mCA`iqRqOVvXba~TlefGwOP2t zjeg1ePA+Tx?i)_q=e21KTI;>&H!A;olXAY0XeI$g8$qIwsHnkm2Zuy+OV-E@AWJtz8(@%E>GPy5xCuZ2Y8CBI|%uHov>)seydgGcPI+ou=Q%4Q>tu2m|_d*|;PnHxHGk$(hEX2)6B_|4r$~dcN zR7kX_a@n{0?~rJAu{x}!K4J+H?XZ*6mED0vA<_Dc3yDIa^}A5-0VJxcAya+`5|t6Q zf~b%vIZ?AVgGAFw^dl*wrmDZ=+uj4-o#6JZI%zE=3W;`-AC-bcJL`OOYHvPzId|t} zW^uZ=HH*_rf&W{{J7VdPfq_Y-X06TE?tb@s_tdO?H-FaJ+rPKp@zmT9vp99ewFQZ$ zlPI$|NqZF%g+!%2mM=aenoqAHt>3e;$X1=T&2gR+9TU1cpJ6`HwC6;#%qPloqMdO? zL86do{Z52LA<_C>sP_O8)zy$G|F`urajT39iEf8Pt2A8C?h6u4CsD@EOWPk3g+$GI z?6OPB#e+o4>DQF4ufCGI^QVsZXWQJ^`H!wlpHFm+J?7mVJHInw?0ov&`N`3_p~H-w z_fKI>B}g=#M7cXJZB9rO5;g0wy;qfs2Z@%`uPIwIpD6Q*HpT0*#~CHjUuwNgiTBRC zx;yWkCnqZFL8Ty3NL1Qm`Qk&O`SfaP>j%k+j>(Kzy3W8mma@zz%7~@TxOSr?`pb~0 zc4{C|O$@OjBnpX&nX6D>NVJe_joSzkmCA`;4~aJFYKoHR4Unkj07z65L#zmiLZV{k zDijzJEhJmxHiAT@Nc09sv{6@6ltkUb58s{tH!VJul!o`tn^KqgMB|m@ZJ+VFEIN77 z$?a-I{FBGKP7K%!Y@apLZL9>2@Ajgsj5$cbullM~g%5G#@sB_}Fo zu0nw!(L%B{ZX)x;1hLZXnUn7IlChC~a=*0_xzQ7IC=84_*O)f6Ss z4?v=t10YdN46!043WqNAMM-oT64e|4iE3hq6(Lbb zRLoq30z;yOWNX|;kf;=i-U^8}>S~IT=&wPdngbwFO$@OjBnpX&nX6D>NVJe_joSzk zl_JsKfF!g(MDZOQ4;+P zNK|tGB&vxaR)j<$Q89BB3Ji%BlC5zYL84M5`T``{sH-VTqPrnc%>j_8CWcrM5`{#? z%vC5bBw9$e#%%N zMWQc4qK&$mq9l4NB&s<864k^ID?*}>sF=A51%^Zm$=0}yAWqNAMM?B_NK|tGB&vxaR)j<$Q89BB3Ji%BlC5zYL84M5 z`Z6TisH-VTqWd6G%>j_8CWcrM5`{#?%vC5bBw9$e#%%rYMPi1QOL8 z0Eud1h!r7GNL0*Rg#tsOg=A~oMv$l!iM|SnHtK4MlBj$5`v-j)J~Zr?`B_Vrurk=xvQxQId=<*LZUe> zBitMk6&AQh!e4*Y!HowuCLPQzmb+%!I_YAkbn|&hEhXw#zf~ft8*}@Z7h8%%pEp3F z4-Z^3sno2s+1lOje(#=|wVdzX{=NOq5zGx87?~S-^g{1w+}~C6=Pg(pT-tC#fnYsL z#T0-mG~5{+s?O;iEy&P(M)KQ_5xESz_|G*EMc^@^R#oVGKZO6}0H znA5HDookgk42ec9+o3g468$L8iE8JH=R`Fz#EOt8Br0aELV+RCLb5e(BS=(=ME{q8 zyYrA}_gs)s5_S6?eopj`7N1HUm-i$m&xw{*ndd~~6})5kuHowQ*GC5T4<502y63EgL_?y~ya;_nmxqUQ$B&=R~hwRX!)mbE1+SFdI8cqIZ!K)g&e- zs)-?1Bqs`qikYiWU`Vu(Y>nH9oTyYz^vrY0lPEdS?zteNBsv3$YNrnp)x;1hLZXnU zn7IlChC~a=*0_xzQ7IA~fJ7U0HAP9(J^b+9d3jN|J8w#3?@q9(c=B-|QAkwYWqI}h ziRMwOOxtyrm)W}RZMi!yMWR2$-TAuBUFrU#Bzg}yQSA(n6V=2JD?*}>sF=A51%^Zm z$=0}y$cajk=qNeSMqN!&5}k!aH3vYVniyh5NE8wkGgqO&kZ2*<8n+Q7Dn+7WkZ7Z> zrYMQJhtJ)4R|khgdB>9UB>{;-qS7AA7atPMr&m*3`*-JWe_K?8df%}W?T@({`LXj) z8<@q3vGeB6xO5~)G<{}!NL1Q|kSHW7?Xi6EA<=w#HMO-*qK`wOwh5eBYkZAobg+w7yvo3rE5;ZF*(P9;VM5Ue+g+yZw*Rz$7 zC?s0Hxgk+V)T|3HxU^h6a-!w*Ys%J;C?whxuge}MBnpYjIxI_cNE8yy;*;!cHbSD= z#iC_l1t3vKw6J;DP*WgEq911#Cruw_ani&PD?*}>sF=A51tuq2NVdjp#4JuyB>FA` zW9NC>XZKu?Q4)3g&MZ!@4v=USUWP;=QL{e#*FRk@9wb^$zou*riAs^^#|(^Ef<(LL zI)p^IJ72$BAyG)Qei!OJfJAjQC?_f4-<|(z%v(ztJMZb1f9yQ7ICRom zdr3`r@4P8>dGCC@l6MT>HM}Q&m0<0W!Tp0r?613v7u3w~i=n+aYa!8)C^auaqBWm@ zF4?_LqH!IDL_JmVlju?dcjuYK$J*q9%Og$2jAs{Bn^JBw9qZ=56DX zXxy=r6ZKTdpA%(1QBS*O{6eCTX#GxyL?KbLE*ybG%?e7iSOp+asS!(%XsqFSwh|JB zMC&&oXh6J^Abr(H9CAyG)Qey2mCkZAob z)O!Gl>S|CYyIfeT63P7TeXnTiLu@(}AM9unaa|{>c*#jh+N3G_z z^+_~N19GCCD*1Dw+@1HdYsN1m3W?V5bVw8uHS5B+L!xE{C0eWkkSNcI#u|gloC-jq zkZ4ZJ2sDR8AyKooI(tjGc;rOO>DQF4AyG)QDPEU7PDm6Im33H_=#VHRn#CvC+e|{D z*~Ow|VFe&jNVKqd*icgd5`{!HJJeK!L?KbL)_Xf7YF1F9#VP=aLZY$8pfaZdkSHXY z(=r0hAyG)wtgWtuM9m6Hv{(foQAjk_7*ys|01|~nb6Q5AIV1{+nzhyYAW^e|5-nB% zNE8x{H3pSA6@Ww`(VUhMXby=&qGoNi6B0EmDA8gSfJ7nDSYuF`Qvpa663uBDf##4X zBx=@HcR`|N1tnUn0+1*q8fy$Hb1DFdLZUe>BhVZYg+$HTY6cQDD=5)o6@Ww`(O6?p znNtBs6cWv88G+`IC?smuR-b`H%?e7iSOp+aNHo?MROVCw5`{!_T1KEbBnpX|wbetA zs98aY7OMax3W>%VgUXx=K%$UnPRj^1heRP!v$pz6NYt#LM2l4b5`{!#jX`Bj1t3vK zG^b?*nnR+Hs99V66(nj_P@=^u0Et4PvBsb>rvi{DB%0GQ0?i>&NYt#YUV}u<3QDwC z1t3vKG}ahY=2QR@g+y~&MxZ$)3W=Jv)ej+2vw{*WRsl#95{)$ml{poFL?O|fmJw(U zi9(`gZFTC~%f)-qOr!HGN%HNC?uNGG6KyZ zQApIRt=2%IW(6f$tOAfIBpPcBDsw6Ti9(_|EhEqz5`{#~+Umz4QL};)Emi?Y6cUX! z29-G#fJ7nDoR$%24v9jdW^MIWNYt#LM2l4b5`{!#jX`Bj1t3vKG^b?*nnR+Hs99UR z4H7jgDA8gSfJ7nDSYuF`Qvpa663uBDf##4XBx=@H{~QuED=5)o6@Ww`(O6?pnNtBs z6cWv88G+`IC?smuRzC}gniZ62u?j$Q(y&n=aD=5)o6@Ww` z(O6?pnNtBs6cWv88G+`IC?qOis}dofx!m9Q`L$|a%hWN@0ZRT@>^1B zngTwF?vMF@pIa0^>Vmx`Z~(_6^N4PADr(**+1yV`p~dnmMbk>;>NcB(rG*{w{QRB zMZZz`-4O()TJjJJ=yr~T^6*B;T%UFAD3v_nV~5-nsLv5g>6F==}$@Pk(#+<0(f z(jh^jo-#8nwwv1IEeC(2%&F7|&xzLNCDFr>Xi(@5UW$^a+gV7|)nVb1g-ae!p*Nk6CG(9H@ ziArA!kSHW7?Xi6EA<=w#HMO-*qQ|yIH6SPIX#$CQO7I)603-^D#yg|RT1XTUtUsJaBbE0uaOit8OC4WwI$7K1j^UUJp>EHRkQ4;+G zvp8v|%^5q-EKZsrB1K3P5*0C4;h>OcVd)yRA+tD1%_sUE1M`V8i&OVpj8PJG`_3#* zt`3lB6<&r!A<-&)mVF$2(+8!T zneDTX=zaFg_Qx*rkH9HyYefjwg_oGwKCDQ&Wk{5}^W_|5Vrxhg5;fr?b1@)Mb6WOt zB<{{j1-u4^^hne zTEDR&QAo6Y7wSELM0GVNCn>-zPExZt{bK_&+h-ZEbikfZ^ig|WQvI`v`9yU&Dk(#v z=_JZKmZYr+i9({%9?KUW63wSqQ(N(Z13|79&k~@S%A<>c+GQ2q?YFN-74M$E?ibVg70TLxA+C7&YBnpYv?^Z|@60P5b zdJiB`T@A`f3cRq9neEpN`RbT^+b1*I`>Hmf1c^eT_4^zWg+%Ljq22>XR9Ay?k^8(fVDe_W%;r)u5cD03<3! zqNhTlNv7+`dPo!!t>4&?C?s0H3-umAqPiNClN5kNrAYLjK%z;e>&bdZ6cVl9*pMhB zTE7eR9zdeH8kCb1fJCK8be0iINv7+`dPo!!t>4&?C?s0H3-umAqPiNClN5kNrAYK9 za-vD5>&bdZG@V3w$C9-5AyG(F+GF|RL!$ZgYHDlVu_Q&JUowyrdv)FWg*e~?Dx(eyU0HR zr?idt&IbjlUXgZMwYPt7 zzvJ1tAxN|{u3bnJ60P5fkSHWtzYFyqK%%-Dl#>+r^GlXbEuTtS+l=Q#*A4l{Z|*tK z^#*dHkf?uVI=uvmLZbD16cU9*>vy5v14vX?gL0Ari%`@J@KmA1xg+vQW*QgB{u_Q&J z6RXl^aeC#%EKWPLF-Cc2aq71YjPzTKSgQY`4U_2bh})-5A<=!Q6by-mU35hIzliX< z&Rm8>A<@oqCM4Qf=c7}51BptJ=-UkBL>W8Zsn<=kUyx||oalY2dE2P&k~NTMyt;P` z-!;4^ewASDk-`0gN9?b=ix>kblyMC*4mBnpYv??Sx?kf^Q(8(fVDe_W%;r)u5cD0MCg^-JSm>19#^cv6ST7&Z~z+(@B)) zM5TQTi9({%9?KUW63wSqQ(N<#s1%8AH$b91C)z#NB_s-o*6&tG6cVl9g?bMlQC$tn zNeV!sQY8AzkZ6+Wda@o8O(#)CEJ<4*5`{#iJ(e#%B$`jJrncreQK{!dzt3}`jk>5H zQAo6Y!$YEwX#FnKdjN^*YEVv601}lV(Vtt%*!d*a^1-u4Y zkZAobg+w9I`dz5^020;Jpq!)tW9Owvbnoi)oM`#?&d&`U7?~U5z4J-_uC5*uO(#*t z&P)3d5`{#iJ(e#%B$`jJrnY9pk`#%4z(7uvvGd(?T|%OeX#H-5L?O}oU8wf}64lk9 zoTLCGDn+8xkZ6+Wda@o8g+%K&HY5s(*6%{S2au?)2IV9LAWXR9Ay?k^+#Z6p7vpi6)t@C+i{6bP`=Y(f-sQJiq<=s@EPFta^`S z_XmkWqGdf~cKhrk`oM`%#AbUyv~Ez~-B%vmcyMD@x8G?sH*~%=H?;L4r|f@LY0>=JU}*!_eNd2+OOR+fi88Z&Nt2~+ z4v9jdsV1qkL3R>7bEwjev9pd+fU)yZInjU5*!hlfx^!nCQAkwUW9jiBQAjl1B~`Y7 zM5|Q0d-ui6_EIz3f0dc-yZ5pv&~r#MokW?%serL^Z32lxqPYws-WU=Um$)Z(z;mKf zIng@|r}+BwD`<^&UW?x*C*|6o5pfNc3(LZbD%Q11aGs;facNdZVyibQXP zM3YR{ll71&BwD|*AyG)Qei!OJfJAjQC?_cZiAs^^Z$Y9-rt8UiNE8yS-`J2SBwD`< z^&UW?x*C*|6o5pfNc2OHXp-rAvK|tJMC&&;BnpYv??Sx?kf^Q(sP_O8)zzS!qyQu;MWVmSEKW(L>&bdZ6cVl9*pMhB zTE7eR9zdeH8kCb1fJCK8^nP-pNv7+`dPo!!t>4&?C?s0H3-umAqPiNClN5kNrAYLX zkZ6+Wda@o8g+%K&HY5s(*6%{S2au?)2IV9LAWOFu&bu}m_DR6x2!HowuCat~2a@R~-Ctd86Zay!mWw+ID zAM<*=eeCF{S5|7;KH?c`#@c1MC2!44ONpsX-g59aI$x7gr)40~`!96%IBUlqKG7ey z4@%v+R;etrINdigH+1ZxV1Kr?dK;_@FKy8F7+%M6egz;=NHo7|Om6{+LZYTURW2SR zT28;FY)wv7Dku6o%;MCPi>P&+kSHWtzu_TKNVI+z>OFu&bu}m_DFBH|k?31^$5N8% zda@o8g+%K&HY5s(*6%{S2au?)2IV9LAW4&?C?s0H3-umA zqPiNClN5kNrATy5hUY|IIq{t64(-WK=Lyy9&xszepA&u5j-!88Y0>n0z07l>x*Fxn zkSHWt-bH02K%$UnSr3`r9uhUHXRk(sM5RddHzCnpy=Y>O3lfDyV~tU1B_s-oR%*D^ zok60h64Ag`01}lV(cO?}qpmPW6cVl9@Q^4ZTE7eR9zdeH8kCb1fJCK8^uv&7lIeP~ z9ukE_>o+ze3W?V5LcIr&sICU(Bn6mHRBAraH)SAE<`YfwW%t#GN%ZKs?lJ5i^p9oR zIeuBLv~Yzft+$o0RiSC(#E|_V7r`diS`h`}2r) z?yB2snLT|bqF~Z7=)R2KV{(g!tcR`Y&()E^{ewsBuiM+**5|D+hK|-*>yqe~t*=;L zonQO7^)>73);C&9-?E(V6V{WVEf=T-cG$nLYnS#t9a`t9^Grg$w_d4dt!Go)_^q2! z`tnx)IGx(!aLcV@Of zYt%h5rOp~Xb^a)wnk($`Z6mjhtQm1jUaQ+$ZJycWEeC%GM+ZlPHA)?~qP4?;c6W{Z zsy!q96(cL`*dH7Aw|Dle)Km7%_Fo?upHyna$g+`754+z_tXpBXUompJ{dHP>_^c&A z_TjUZuW`!$=YkB^bhO9*_LTA~@H=k~ZUc!1^;o!M;SxwRsEPR{NE8w^@2WBpA<;7G zHD_B$REk8^7$n-9>qx0Ei4M2^PeCa?v-BbD|2O2c@v@e7`l0o4bE5lF_kC@qE_u=Y zjOdMaJ~UfS^c~~vcd@7a>dM!8`M1hSrmATw|xq|?ej+r+?_u>aE+Z4owYVwyZhbm-BYvn+d*fo zz5RRpo%1_4#M?fz_*}kC`0hL;8r0m$i9(`5P0TMrqC6*R-c@BHLZW5VYtFWisMK?! z{{#|k&ShjDDI}Wyoao~zS*7apZ0#+YluvBGRh?@gQAo5-|3&u=iAFV{CaS>TrsY%1 zr=s<4%`KMuJ8hkGu~X`u=R~)Uxksjy)Y$p;yzSGIxDmgQC?s0H(IHVtw0;-rJ%B`Y zH7F-3z${KuB>D~B_L*e5o~(yNA<_Dc4T(ac^}A5-0VJxcK{-hQNK}eMzmnnZJa79< z@@4ncL!#*zIB}n{%Kovh&QRd&E8ETD)Qr3H zM@Rj0;k@&G#+tEqS#HT&Gt+ubVQQ1N9Q@rd7JZBRt!GDTFAcQ2!AhG?^lKSLEFBu1 z8#-ps2Bm+t%|BJ4*M-Z`9*0}7oJRpj6cWwj7n!z@C?qQ5tfEmN(W1&VYdc6(YQ)l; zA<;%%N?{WHLCnnd=bm4MB;Gtre>v{%&7H;RrTP9O_u#qt_Q@@rHD2^0vp9V_We@LM z-G1LyukF4OOW%zsoOBGyb2ND>C%5?C`1i-FKUbkyoW_4J{$l88{aKt|8h?5G)%mrr zjlVwr#`y8pQs0F0T`+MabBiK{m{rQR8_wC%*-7~3X3pj`pC+V!_j+&=O56K=^p zey7eUeP^?`9Q@sV_U^NTHA=m6GFrPQ(C&99*4w$vTPOC}u@{H>pwxNx%=VuiSg}&6 zeG~7RcxK%FUbk+a-G1N1X)8`^otq~|ud$vSJvB75{qq^_b3}U_J_45WDDZQkneCay zDX5+^ixXq#gPNFMA}2~t)V!<8M9iKO$sDkNG|xn^zmAkT@8t<&C(Y3@1EB?d?|%gpu%M&^bdy)fw7 zRXise6r_SBNHqO9QF5ZvMubEmQE89miw}wB)2pei$%#tkL?2`9e4{QZNHm>9dB>9U zB>{;-qS7AA7atPMr&m*3^NuB{5lgQa7_pQkC(7GCJLB37lPDvWg6GA#JI{!vpeE** z7_sD%C?l54d#hMPMl2Q6t!Y~^Vo7Sm((@}BvDBoii4jZbIZ^J;OJ5P>M9GOtdn{jk za-#Y4YHI7_TicDDXFgHS7y0KCeRi_^e4-C$m`{|PsCSO){SD_t8L<>RAB>$3>LIfP zi9(_>&MF!e5-qA+v$lgorS8uE0VLX}O9>JsCtAPZAyG)Qei!OJfJAjQC?_c}@Ydy1 z%cqjoHX|o0Gj@LcIq5l3-u9W~yzZ-qMAJ!>5lhm(hD0GzX^-WL4~gc}tEsISu_Tof zeb7Kolo3nab6rBBkZApGg+w9I`dz5^020;Jpq!+@Z@r!8L}lJPe^Nzb=XvjZlDDg^ zheXp!^drOV&&i(lt1Dld^rpakSHXY*({YbghVTmx$AfG7G|~|J9WfAjpk;y zw&abiG_Bn0M+Vjxw)ZWkO^g*dR?YDhCGB7Zy)U37H+THJd@1B~q+s|5i`}g)c zt>%U%N9TqP+i~>IHfFZh<*1|#i9({47_IG2AW=xPtwAbZ35ixNc~|Zb65TFDqT`Tg zS6&fCI}M4ZlPI$|6?IqE?I2M|G^rqJtsOG`K>Iha${w<>PEg=&j940z89P6{GJV8S8i{_5cPw?nMUtrxkSHXY z$ta?YAW=wE)L^-TL!!AQYvcxys8mk$*CEkHT~Ux|I*Ia}sPrWPi9({%9?KU$JBgk- zlrJ)^dr1NA&P$Q#(*{VCyYt<1twEycB+A%%X+J}vkf^lB^2LWl^Xb*p*1UIKibTI= z;2ld3b9cULE=))?okYorO4}I{g+!%2mM=aenoqB$wk9VkMWP1`kSICP?zt`@(R30e zCo1h{NE8y4_E^67kZ3-=n%esMt9aX|%zUDUGK`&n<;2+e9ok!w{C6y6$%!(HQ)gVe zkSHWtzY`%*NVI+z>OFu&bu}m_De(5q%xo`1qU#OJCklxs`L^@wA<=XaWfmuC-$J60 zsI3n#Jie8AdF9CnYDEWfrINt+}DCq4&9$%#sP6%vI+r9GA}es&TiCz?;$ z-fB%wRBFW1gXBbe>rzQM8b~yqM9GP!n5gt>NE8w+Z6c!qvXdw|QKQ0lSun=VOOfb6 zh7n6??^t5&eD_>VkZ3xIGIn0t&yXl2D($g+@gdQCdNsB6k6yxvC7HYPj96;cH3f-6 zqV+o-5`{$TccI<`NK{vYa*_hf;q9rY4c=PNe`qLAJcTKo1Qs5VvPju|} zwSOO-_Z!VvGuAH4EqSMMrZq$7)Fy8^_`6{&Iy>io%rJKTi}pOA)ApQ9O2xlp=}Q@A zar#YrKGD~hPc(Q!YFL6q(@B&OOVY-KL?KaWkL8P>okSTspHJD|YJGewZ~Htt>Yr0{ zB>Hz5NHlHie3s`#?;DvLIu;_)Z7pv0k1DPdW#_n7)MZrw5=|#ja-vz?RJ0u=3W*l= zj?8x1NtB$Z%o*s8sN_Vq3*|)b&p@K&M7!fE$yy3~5`{$5T~cL>>?F!N zma052owl!?JSQsj-uY8Aj95y0@BBjp*QCDfllRVd#x(_rLZbCM5fX(&>vy5v14vX? zgL0Arkf_wy`DKu3lIeP~9uiF_QSQ!5TOSgIM5R5JFMf6s|AHT95Pey+WdpsP2dQ%aCaO=b#&Ua3#-)@|XR9Ay?k^+0li9(`D=Ab@@0+1*qn!_$aO(9W8RLEKd!$P73g=^SmpCcyxO&XW^OG6(fJ6o5n_(HwRWY6^)$qC(ax7#0#OC|tuf`+ahvkZ8j^ zFLSt%C?qQ5tUOU6QAjk8U*y|DqVgK|!XAdmi9({iVC3450TP8oYd0Zx=LaFt`dz5^ z020;Jpq!+@TgZt*qDkhUK8FI3C?uN0E<#Poi9(`6)+!hl5-liP!!|p<_29;X8vD7=3{`Bk(V;fHF#ogPbftnkv`!7^#+M2ah9@bh; zw^YA#tx^wXc-!ZFBXdK?F7l4X{oOWy-h#EkrEuSZYgx*xK$t|2&c9=Q|DYdf+c|z& zuC#E88~c6pF1W0<_{XW9_+)AeCy*EYM&*BRQqDJ>L?1}m!y_r{-Q%k6&m-Eot8TAl z_Vk&Ef=S1q`!ary$t@nT9=57KS4Rf-4<50j9jSO1xu#fn*k=sVrjJPGQ)om>$p4sFr2Y&}g2S9 zt^(vlaY7aauD_}si8doAs*|XbkDRe)tX-B{@-&>W>y?_?n0y-ZG2SEGD6oD+pagPJZ}vTz9`8q~!6 z5+usqdGoF+6A=60P6ZkSHWtzYFyqK%%-Dl#>*IM5Rddy^v^<>3Xsr5`{$TH#Q^+ ziPrBzy$6t}t_I~K1+Kqp_tfsGq_xcA8q3JvpDgNr6gZ=Up*w6PNMG^Z+~8^pDn$8f0AZ}Z@*QYYavlc zv`+s;_YH|gHK8V|z=KyZv%SpB_CH}DCwe%;+di4uKI-Z^Y9P^c5@kM7X=g&Bkf^lB z^2LWl^Xb*p)^nFEpIXk{`4gw#+&h-IJAXpdMid}XNVI;VL!yvq{Vvpd0Ey~qP)<^S z5ld1dmev`_i9SqDG|9LfR}YCoqV<~+5`{$TccI<`NK{vYa*_g&s1%7#L83{f>&bdZ z6cVl9*pMhBTE7eR9zdeH8kCb1fJCK8^d}+FB-8a|JtUe=qKsIQwmu{ZiAsAcUwlY3 zpI%LE&4?u_65U{cL>aNvJ=Y~93W?V5R!9^Qt>1-u4*2)PFYCwzLB}1V;A{H;FPvm!R5H64P$Y&)D=|#5`{#IddJ*$kSHW-&P^sFL82y9 z?EM&!sMLI-=R%^rfB9%f2#KbXD6=?eh7l=3qL8SFu?h!;L<>vTs112eRO;^hCIffp z89U!S7b7GJiPrB{NE8yS--UV)AW>Zn%1H|Rlg-R0Dl@Y^^NA*Tt~cw$Bzp8*_c-?t z`p3KN9KS4ATDZiG{l58UG%jl`{&DIP8=p*V;RN!c->CfWP0IPEljs8}dw3*ey?b2M z{n>r*So%yv!K7o*eHpK4a*Kzohpp<*)seydgGcPI+uPmN=dCY>j@DW0lIWMMuUKE5 zU;DWAHS6ovH(E>IvYhV|){~(v7pMhx*uSuAm-am!TIZ?rOhUc4Ua4oTXH(nwt(#H$ z@>c&ipI>{%B}yIIvU2^QEr+(a^?vEhA-^T1rYUgrigwS5UOnRKamC1W8=TV3=kufp&L|oM%7Z zdBw;IJNCzh{q3DSEA`Y`rM^BeKB?4-k!2&F9(KQJ*?RlPR9_I34!IujbC*Q#v9FP(eak}YyjCAiy@D2#M7cXJ z?R-cS5|#E?zW9)6KE0aSn!EE-B>GP?%;JY{=~%aiD#^E=BjNwdOtRxkD5K%$VS?uYuzkZAqqpc{Gs zi9({?;M30UBP5zmqTHRA_Aw+1iAsAcUwlY3pI%LE&E0t^68#c)=NolVL86do{f37` zA<_C>sP_O8)zzS!q`)PcmQO98N?Lo%{0!;S)=3vTZF=Xu^V`R~W0oS(^~~brN!*BE zNE8yS-{_DiBwD`<^&UW?x*C*|6d)%mMWUx0cutfNOG&=%yn09!60P5rkSHWtzYFyq zK%%-Dl#>*IM5Rddc1SeIbUj%Qi9(|F8ygaZMC*5<-UCQfSA%kr0-xdT{Mfo7UmfS2 z?=#knwaao#-kO=#a|%!%N;}BTIzoY+S03DWaAQ(en(>_I(NX{S&5`IYPe%Fl(yN^tEt+2&Ea^Q7u3@Q&0+47ri87yP5ohJu1`>rt^Y}%+ZFUkpQ_Bd+_lrGr zmI9A$g+ygYbWMi4^Y@=1(P52HeG)yKfkf{cnHxG5BGGM-Xyum~B$`g5%;F?%OGp$F zmG)S^_>gEmy_(wkI3zkIL!w_eJ3S|wMxt3pEJ323aqU8)kZAo*ghV0H`dz5^020;J zpq!)tB)VOQM861$CYi1$>mku}66Nl^wDloTNL1Qm`Qk&O`SfaP>#KQAbnMg-|LmK4 zPV|%v&xx+F@2b1ciSA6eJ3o;6oap4}+|Xg}&ikjZrV=CyiPmI2ZMTppB&yk=1B#Gn z2b_d1=mI3VU5G^A1c`Qm|IKv~5=|#jo)b0axA;hqC?p#1jJj$e(YloHuKhBfsMLI- z_huNe^va15OYvjpvpgqyz#g&ms2xZDFm_&7qna`#3W-+Zw03)eL?O|3{-}N(BwD@Z z-MB|cREk9Z2PE2!7ewJcL!yvqVe=T<5E6w%jhV?vAV}1Rj6EL&5|tv+*C5fJzk2io zghU}x-4FGYAyG)Q9_Jvu3D3W?V5 zLcIr&sICU(Bn2Q*DH2`13KC6nT`$%{qUj{cEKbtSheRP!X^-WL4~gc}tEsJd$CA{1 zqQ_RIlW5w^_Pk@Md#+1J6cVl9t&k`rTE7eR9zdeH8kCb1c#!!-$JS}@yEQkT=v@YK zqFG3kvGYmZuC^W$O(#)iagz2VBnpX2dn{jkNHm{bO>NEHd8xbe_ZT2iW^wAC>k<-$ zMC*4eBnpYv??Sx?kf^Q(mku}5@p1awDloTNL1Qm`Qk&O`SfaPYn~I8BGLb1fJAvtw0o{g zNHm>9c}`T?&yXl2D($g+@gdQCdNs8*IZ-JRJ!*hNc}}!@u1iQXokYorO8XfSg+!%2 zmM=aenoqB$wq_P5sac$Ul3AP@bx}d0kZApeheRRK`dz5^020;Jpq!)tBq~Lsn<3F8 z)AeLMB$`g5+?|)UJ|qf>N_#9{d`L8(UQKPy-Fd0I^TWJ%zEKwyBnpYvZ+J))60P5b zdJiB`T@A`f3S78(`PA~Mq_wwL?wV=qq>G)>&F3Yx?6&&tV_uJ?NOV2#o%bYe#4jWY ziPmp)NE8yS--UV)AW>Zn%1H{46O|&-A#$Qgrt8UiNE8yS-`J2SBwD`<^&UW?x*C*| z6o5pfNc4w{oli1dPu4@C=_Jb7d1>oIqL8Sx$MVI8MDyv@)Yi+cI=J!R#-yX??!2eW zOzSy?sZHK;@OQ)5h7))Dy*2ktMr$t(w7bE29$%#t)84`s= zr9GA}J|vn?uco%vMqN~pC?s0H;UQ5-w0;-rJ%B`YH7F-3z}1-u4)7 zCn}W_eIGf|B-8a|JtPW=)^BV`6cVl9g?bMlQC$tnNeV!sQY3mCB${Npo~(yNA<_Dc z4T(ac^}A5-0VJxcK{-i*f5YARG49SMxr6%b3P7TeXm+S|C3Xsr5`{$TH#Q^+iPrBzy$6t}t_I~K1t3u= z5}jehQj+O%1ouyNHVK<#VR!ix zHESZtMu^e?qF79M_&tw`Pknw{peQsF9aHA0R{# z!JtteOsygoDJoD!$TR1jdv?yuz30x%y>srlcjkTP<<6P!Ip=%Me9m{s+jHg*B$~6J z1$D=F=WUVb_i|XB=ezUWbJ;Zn(k2BUQClSX14z^qbcM7-qL8Tjz=lL2QTI`( z_W%;r)gWzB01~xDqCbR0O+i;kJ0zM+qTDBHJM!shnFzYOSY4%3a{!J|SA1349M~^+n5`cf(50OLL#-t&0u}>_1MmD)*Zz9-_AR zQEiXoB{lG4hR=IN3gG6nS=-)u1rMi?L(PR?ki6z^Y z1SATH+K#bo{vpw9dX=>_tMj&2=Rd*fe5o!fNE8xvAMlVUB&p*G_`PHMztMgCKuFhYmt*3{p^E^8rj!dVgAW=xveT+h)kf{48 z)O!Gl>S~ZSDZreltvS&T^JaTf&=t}Si6)aMPb}FEeMl4%wH;&G{6nJI^eSuVBVWrC zOLpc&-;u-W{GJ61mU-TcKjm-jmD^2|Gr<#1Gyb;TZM`C94-DKEJh60FFt@7zmTNPt zx?NB6#FDN?>uE?dnMAoywDmY^>;V#mL>os)yK^DYb}QbU?J*~6Yfki4tj>4mCDCNB zAyG)Q$T+`lcM_M7dA2doDpp6cTkGt&k`r>OKnf z9zdeH8l+7MK%%xtbTcGs3c5ntAyG)wePBbPkf{48)O!Gl>S~ZSDe&)Wd3N5;eWE-& zZ;H8M+96R$)O}<_qL8TjDAaoZiRx;QHYvcIsI58CKW0wU6m*5OL!ywV`@n`oAyM~H zsP_O8)zu(vQUDUQMWR*oT#li(Z6C&v{V-pBnpYT4|qrv5_KPi zdJiB`T@BJE1t3vdBzg-ZY6`kS+96R$)O}z>qL8TjDAaoZiRx;QHYos!+9J{a1&Nx1 zu8?*}6cTkG*pMhB>OKnf9zdeH8l+7MK%%xt^sgaNQ_vOC4v9jd?gJYVg+$#)q22>X zR9AzvNdZXI7K#21Bx(w}LfRqGWD-4dapR%CvT=6XbNBYOy~!3EghV0H7DFiK>X2y8 zf)>=>?lX3--MQ9ua##5>XN!NxNg{Rmv8IyUW}hBbJ+?)nU&w((_bfPTndi;;Q~uUo zx!p85UpR!9^QbsvR#4T+`b9|86m*5OL!ywV`@n`oAyM~HsP_O8)zu(vQUDUQMWX)*iJF40kakEE z5_KQgkSHYTJ__|7K%%-Dq)iGOJe~VQ_YH;WYzgkL-0pApH~TWBa<*6QyqsL8j-&fE z!?kx^{>8Fd>nV|P7x=da_jhgy?)vn+LG7+h(X!{=u+sC=tj^yW+$XyKxM+ViRXjv( z@uS)v$4hXWMFB`OnM8SFDN95(Qx+11M4O2ldvzdDd)gMs^F5I0upJWp_oG`U(KJsi zL86^;Jwl?%B+3&@wqq3%g+y(~ST_HVXg0mdTAI~)TdVU2S)DJ{MFojMqV5A85`{$F zN1@&WNK{vYv`K;gI(5|KQIn=z-r}T`$-X+jdNg@X^y%5v`3tr6^lYp1yv0e4k=s2a znoOds&fAVrNE8ya9b?)2L!#OADr;%pCu(a>^w|}ylW3aNc}TP~u3bnpnM7Hgw;ijH zC?sk-#Bt*3zub+al5b!|HsgE-FYA5_KQ&kSHYTJ__|7K%%-Dq)iGyqP9qM zFC=OTxUp zLcIr&sICTSlLC;aEfW1IBx(w}LfRowNYs5`L!ywV`zX|V0Ey~qkTxlBfM@52R}F;f zEkgT8Y)BLmbsvR#4T+`ZGw>6m*5OL!ywV`@n`oAyM~H zsP_O8)zu(vQUDUQMWR24L`^|gNIN8&OrmElZanl?HqLH)?%uw(H`!u?kSHYDVhH72 z9TLr1(1N<#ea6nUJJ*^{?kZpAZ1E2{Nu(}6)>N|F?9;=l$F@lH*&Il8&w{g-dESga zOKnf z9zdeH8l+7MK%%xt^f^e>6m*5OL!ywV`@n`oAyM~HsP_O8)zu(vQUDUQMWW9`qNboL zq#Y7XCQBt*3$Q!&V8c$hQiU`65L_A-QVtS_GL=tY_HsT zIk`?9NB3)nYwx-o8mYCO5-E3qe|vC$=a%5EPtP0F?%EVBd)^HzJul6DqPGV3iS9ox z+Mi7o4^dnEsJ6%P5*%ky01|~nv&4&?vXCewYA3Rq^$LkLt6aJ2L88;cc1ZMSNVHU! z5+s^TqCBx=`;ve}AyL~gmd!sTnoX~=mS%O{*6RG1Se-A`MFojMqV5A85`{$FN1@&W zNK{vYv`K;gw(h9Oqb5zcyv0c=lYMo5^=R_y{L{0m^A~FC>EY@;&(16TJAV&}LZa@Y z6cU9*-AAF`14vX?gS1Hj=0t7HiOyL8iJGFWh;~R65_KQfkSHYTJ__|7K%%-Dq)iGy zqP9r%1(2vI=n83vL?Kc4fend5qVA(m?*SyLt3leN03>RQL=S~TO+i;kJ0uE;x({qf z6cTkGg?bMlQC$tvCIui-TO>LU5;X-~A?=VTB&T1Ekgudv&8AmbOS3v}YjwVt)%j9gRFEhn>OSBhQApH% z6zV;IM0GVtn-qXVZIS33TcN#AyM~%4T(ac?xRre0VJxcLE5CiZQLiyeWIq| zz@9+?NHm#5xlc4hKs8kq5`{#Y3LI;dAW>`57RvGNGj^`sxz=<_d}B!|ll>b@N98al zx@W;z%RFz!pYpf%%I&7f8DDJMdbjn8z8x62ZP9^&yMk{u>A&UL7n^juo?bJoACYcV z0Z0@QZ8e5kuMderqOC_!o*p34Jk>0&FP>Pk^~BO4Jh4>V%cjnmL86doov>)L2@-`w z+Z=KU%|W6G0+C%&01~xDqK84ErMku-(PR?k*?HTS1SATH+K#bo{vpw9dX=^GwyC2g zkD4@{J*)Fdne40cyiZhVSB^a-noOeHCu;jzfJ7lt+cB2SKO~w>ud=Od3lkEBMBN7~ zBnpYTk3zi%kf^Q(X_Eqws4Ws*42hb8u8?*}6cTkG*pMhB>OKnf9zdeH8l+7MK%%xt zbSWfi3c5ntAyG)wePBbPkf{48)O!Gl>S~ZSDFBJuBGIEEQB%+r(hiA2qV5A55`{$F zN1@&WNK{vYv`K-xcy^v|ESZ7>dji9ukE_-AAF`14vX?gS1HjNYoaIE`vl(L03pSBnpYT4{S&j5_KPi zdJiB`T@BJE1@2~bp4E9%aA41%03@1BqP*EYLqIiE6cU9*n+hCjl^{`T(iY0`?lX3- z-MQ9uN_=BUDUkSHYTJ__|7K%%-Dq)iI&jU`*( zSbF2gn&CCWQQc38ST68ypYXgb{*3Q=gIdWg!LjGvu+sC=km#+84h-x+F51qfiifBz zeiZLpJfGui3P7TeXts#4Q5q73L~X=X^FATb=CvzRO-R%hiEe^K%XA@mkZ3ZA^0iOf zmjomViQ0~_Z2lq9YS~ZSDZsPyww|5;qa5xNg+xtp+j(|KG?_$sV##*g zLZXnU?HJ4E9}>-`S6NH*#F8x%U62Ebrnyh_w%|U|yMnn@{kL43Vb$$=n)^g`HCj(Y zqRAx6>U`^Q*4P6i3W+w3kap)nqU~0^JKJMU)E0?emIH}0C)zz%6(pKWqRfffj%P>| z615#;+5AJI+4L%FX`WcJ^~BQ4cw(tk7ZoI$Orp$*+P)+pQApHwjAio=iDuKQtfiR~ zwKXUDF6Kl_bx}d0kf{5BheRP!_fe?#020;JAZ=0r617F5?}kK8L03pSBnpYT4{S&j z5_KPidJiB`T@BJE1^$k=IPtYlQ*dCjoa|rwJa1X@*FJBb{o3c?uxiQkvVHCI*5J+d z`;QB2i_|9GY#$Y*4M&hDB-(~BOK1WTg+voVq|MooXqyG^(&ivhTkjKnD;IYmLI3*7(T%>?w);27YR>WI1a7|-Sm*bAES9I#`L4mP z@;&e4{>Kx`gr&=oI`NF~JRe*6qV=A)Yvai3T^o08l=d+7;(@Rvsj?|>*v3Y4qJJt@ zAN|TtlIXRGZJ(2>6UuwYp_c{}nvO*I#!@PYTPU=@rmiBlc!nOA@jQ8KE^+;fW=_JD(?ELD{cE)uIi9(|8BM}mXMBPWB-UCQfSA(=k0Z7yq ziT*VtY6`kS+96R$)O}z>qL8TjDAaoZiRx;QHYos!+9J`vfkaI~S4cY~3W>T8Y)BLm zbsvR#4T+`nQm%Dd-AmheRP!_kj(GLZa@YQ11aGs;fcTq`-nHo>=0E zB~x@@Pp<$Z3W=tV7F#7DQApHQY&GW>5^YYmvejZv)YhEnt;~s*>SBUKAyM}M4~ase z?xRre0VJxcLE5AMBx;L9Z-YclL03pSBnpYT4{S&j5_KPidJiB`T@BJE1*TY?A7*vl z6dl;pD*%ZmlPKRma@h2%XjB(&57>HVNNv7*FJflXlGoJ zkSHYTJ`y2ONYs54>OFu&bu~zv6yR&0w!ZfH%cGOOv2^?FHxds4WtG7832I3!&w{LZZne%6I2m4zmOY zkSHXY5F%~PhD6&ec$YT!0QZSpsy>=Ww4W-<>zbZRgn`QApH%R6?SVsQW0?djN^*YLGT50EyZn(a%7lrl2dN9TJ5^ z-3K-#3W>UpLcIr&sICTSlLC;aEfW1KBx(w}LfRowNYs5`L!ywV`zX|V0Ey~qkTxj* ziP|F3&q1Q5pev*u5`{$F2R0-MiMo$My$6t}t_Eq70$*LncjtMty(v1dr&j;E7C?sktwwm(`i8iNO*=jK-YHLpP@0k-V)x`vfLZa>i9ukE_-AAF`14vX?gS1Hj zNYoaIejXAv1zjQSkSHYTKCmHCNYs54>OFu&bu~zv6gZCeiSj;CQ*dCa$DkW}@O?;>`$W4TP&>YlkZ3ZAa-XQ} zFor}SQQI+=%|9fXO|P<+<~~td_lbU)`$S81Q9+`~B+7lFwl4`t6cV)^W7+&eqS^E+ zYv~7gvpsX7WexsZ&l?hjL~{+Orkp{dkZ4nZW33V-YE9ZgIbO(HoFLIcMYOAvfkcx@ zl+}6L(Fut{qPAl!n}0|&n_gut&FZ|Z)%m+woiEiz1&Jn;D68|fF9}E#615#;+5AJI z+4L%F>ET!L>^#rTmo@tHJa0%863sK7n)3yTLZZz@j;&gds4ZoS<@Z(GC(7!4u|nF> z*+8PnB+BZ%?cjt&AyL~gmd!sTnoX~=mS%O{*6RE{tj?F}qJl(|NtD%j+m{3+3W?f| zv26Y!(QJB^we(|rV~IJ@vIc*y=M9NMqPYfCQ_dh!NVKWIu~rEZwI*$$9Q)iS3W*jf zqFtQ~B$`a3tj^nxPDm6IwH;&G{6nJI^eSsNvVzGrVTjpUV0DWwq8*BIPdd zZ=Vn?&IG;(wfdrE&%0rz=j~Z=)-unV@u&Q)y>h#0awaH0<8SNT)+=xyO(s$96SaLwK%$VS?HJ4E9}>-`S6NGM<1J3C&X+a#b3JcJ6cWufpqg?9i9(`H z1&*~!kf=3j3+4C*NE8w+R7ATv8AvplM7dAYc636bkf`k#%jO>v&8AmbOS3v}Yjyr# zS)DJ{MFoi_lPIh6wl4`t6cV)^W7+&eqS^E+Yw0t2cAh!WvIc*y=M9NMqPYfCQ_dh! zNVKWIu~rEZwI*$$9REHf3W*jfqFtR#oJ9Zm7}=8@ePNG2Jr<_zrRE(jeV;!n_Zup^ zd#e30w|h~wyt#zPQQj~0!tF9oY{?|LC!r7TNY#VJ{mV0VuQqmh`nBh4Z;isHbI{|m zet*m*HjiF9+WxWH+qa`{Z?MVUUN-vGW8NK$7m+JT^or3dN3W{pUOjrv==(;uRgOL| zDz@uJKNPDu$D0$l{aT>j{GJcT@{~GXuhCZJsQp97Jd{{Ql`YGD@fqQnKDP2j>pgGR z#*x*#HtyOe?P2N-OTv<*%BH}kjg8*o^wy{onKV4o1t^IZ~_`{71j?lO%d=V%z7W>W=ara_FT2g{C7>?h{QV zaSMg^*VI+y7SGV*GM*=o%_XiMym9c#`jsqNqa^ycw|(%*SZg7PKIJ{*{i2%ttoNLE z(Cg_DhjV(w_JW>ym7}n_B+;9LYh-@Uk+D2g>SKvl&|z~Ao2yE*mkKZ^N+hIFfcr#k z-6#5E?h{QDfQ2a&pA&^dqeDCI@Og)GpJ-H*{Er|}R_F7Ns#ZKgqOGV`p1OZKb=2fh zlcw`6$D8d}4TR^P-<$1Mk0!s_{^{8_+h6EM`yk(Je@BWp+us(v+5WD;kN#V(dDHEB znm60)YP6n)M3YzNA<@?3tg#136cTM5A??nEMBA-+ceeLMNR<0TyEAkU>#) zKiBhyL?O{!1F9)!kSHYDRNz>v1c_Rcwos1Ge{G|;IPt`i8tmQpQ z1%A@A^Q_Ky&vgljLZa@Y6%vI+-AAF`14vX?gS1J3BbgJmv^sx&4sUVVvtYq8&zte5 z{H?umyJ>R97u&YpZM|Yl4-9ahs42GFYmbvC-&l(3FWx80HW=S2C&QgrOZoGAB+Mm5R*2oi-v^N*@lJVK(as8^o4_ngiX zOZ$ex@y_oXOFte-zEAY_*>5ZjYF~;MeURT+N^_s+t-&{z_Q$?Ezlm=wg+tn=6eP-= zXq!TOFu&bu~zv6!`5|@x&5O zESaJMdwK=pBzpF!th=Kx^s%XG3oSNM^A49@pI9OH8!EeV6WjhwiZ?EJp7MUF7jBn% zVoN5`HzoAp&Qv|Hp;>*Od$qBvU!v2j|4^f#=^XU9tbZ2f5}*A@B+-BI@AmJl=HBOj#lPQwpmOw}FSc*^565cG@#X|>-x|c{{GM;e z@{~HipAfyC_lW<9p|0{#zWu+P9-i}KD_^wU^LA|_I8{34lBrLL(c@wzE> z9NqT~^$kTWo_FujwbsE%xf>UKK6s1Msf(5dzMs^tLeaA4eRHMf?Ot%li03U`bmXEh z49e}VRxJ(6FJ1J)U=yWw53TZd4}CWF7N>_bZ=zJaUu}=;mBN-*fgc|qEeVN6^$_n9 zg+!y8lG4hR=IN3+kHl()%mNccfD-!4>?KbQk>QK>Dl#bTO|6oIgn_YZ!Fywd}HaZV3lA0 zEl+W`(wbQX^qQobRUl5HzhAveQ@`8py@Snq&r(m_$$44z4itHx=>Mqp$L#4GbC#B) zyoYy*UK-pZn(jW)D`xMB(Hv^YE46edB-K5MozRzbeP|DfUb*@hZiMY zK_B-&9`jq@Q<2w!1p^eE)*@xuYKON;Gcr~L}&ad z|A&j@wtv-3P=3ZgbLh+=QR<6}UOV)~Mc<9xC%QrNCQ8-&={>2Jk1d-5&&BQ&g+!zJ zi8)b7G^$DdN04akoG2ukf1IWF2#KcGs>~%JQClSXLP)e!7gn4^S)Gp#Klh17^{{i) z9umEN@Ww&cbE1!X+XvIli9YK+=N8#G{&(1fV6P;XFU(?#zPtUt3#rs5W4_4LXoamr7iy6*| zruoLwt-Dbj#RZ8bzfY8B=WSmSkSHW-JI1p4heWgKRo2pws4Ws*0g0CC zqJl&rQTG84i9(|8qfqYwB&w@H+N1y^YKufiAyHG%719ogCX?u&CERJ({(BD_ha%6; z*Vl*pMCBMBPWB-UCQfSA(=k0Z7yqiH<>{rl2dN9TJ5^-3K-#3W>UpLcIr&sICTSlLC;a zEfO7vL`^|gNIN77iMkJLNE8xvABB1kAW>Zn(k2BUQClQB0g0M|u8?*}6cTkG*pMhB z>OKnf9zdeH8l+7M@QtPEVLRVgdOP1(G6h{B?T{!W>OQa`QApH%6zV;IM0GVtn-pM9 z)YhEnBy*yspev*u5`{$F2R0-MiMo$My$6t}t_Eq70+6UJ5`6_EY6`kS+96R$)O}z> zqL8TjDAaoZiRx;QHYos!+9J`_kf3TcN#AyM~%4T(ac?xRre0VJxcLE5AMBx;L9 z*Fd7Cpev*u5`{$F2R0-MiMo$My$6t}t_Eq70+6UJ5`85kY6`kS+96R$)O}z>qL8Tj zDAaoZiRx;QHYos!+9J`DAW>7$719ogLZa>i8xn;?-AAF`14vX?gS1HjNYoaIu7yNR zL03pSBnpYT4{S&j5_KPidJiB`T@BJE1t3vdB)Sd~H3eNE?T{!W>OQa`QApH%6zV;I zM0GVtn-t*9_O{+^|83rEZwk6X+96R$)O}z>qL8TjDAaoZiRx;QHYvcIsI58C<;&L$ zuNjW&eoDl0f&cV`=WX$4e9yZu_@DZ1sibdM>3Mf7IBS{b&G=LP)?T^YG&vKLpYgZ# zZtE504-DM4=)k~Tfgk<1T=S;e^>n;%dLHTQ3P7TeX!fYdy9Oi*iRK+st@(pQThp&B zwINYkB)Xo}`LbL@mGgu|AyM}M4~ase?xRre0VJxcLE5AMBx;L9Uj>Ppg07HuNE8xv zAJ~v6BS~ZSDZrel ztvS(GGbd^axEy1ezL#=~f5=Iq%;m?LN_LxldiG79w&p~CGLrm0(c5R=CptLWAMu7!p{97B z=$;hs6TLNfpXmPMqWW**eWFo8+HeGkCX?uWgN+9Q5^bzcaxNqai6%!$J4-;K?Nqya z+hR`C)|}{Tm=o>Z%c6;%L!yvq6Je8c6-X2k%{io6bO(vHC}2sdL!!1w^mic9l3YXb zG$Bz))P2B1qL8TjDAaoZiRx;QHYos!+9J`7kf3TcN#AyM~%4T(ac?xRre0VJxc zLE5AMBx;L9PlH5FL03pSBnpYT4{S&j5_KPidJiB`T@BJE1t3vdBzig|Y6`kS+96R$ z)O}z>qL8TjDAaoZiRx;QHYos!+9J_2AW>7$719ogLZa>i8xn;?-AAF`14vX?gS1Hj zNYoaIz7`TS1zjQSkSHYTKCmHCNYs54>OFu&bu~zv6o5o+k?5I_s43_QX@^81QTKrj zi9(|8qfqYwB&w@H+N1y^YKuf)2Z@@3u8{UPiT?fyd73-=!qa_k!kgX0lC7lX9WHBM zR{f&UhRWgpsP@O~`5beWmZQ91>V?~7p4gH}bUL9AyxCq8x~XJ)NOa$_Z!T;9SnciG z(YH6)q%c=6K7YlNF^xoSEs5Uef5pGwf1vWUk2yVJ`-cB;?Asr6yg7ld3xoKa-*aS7 z%x(4XqJ-%6yhr>;Vt(s;Dw7owEz@W>f3A;iEax|t)>i+O_Pn)=_YH;miSHY2_qY3- zeVI}@+bjQt`Nfnvj_zx}rsR3=T2gC0Wq6JDEu{RzmzSv&4=!J_!AHKNgvqN88^#0g4mNsbKqCE|d^qz!PQq3yx-0{(xgO%~| zJa;6zzS<#4qSq!;uzeEc8%xm`$^WQ5Bzpbejf1X9^l@+dU^)_g)_cx7==D_iQj+Kk zdgfJ*Lj5I)-W*&bW)l5a;uUn*+{5OEK1m4$AW`BVjRMSx+L{wRi#gFW0a%za@i|dQ zG&;2N4xe{8BpTHu|077Wc1{!$%|Fi4dxS*OYgOiwkf<#ZeFG#~stXGeOlG4hR=IN3gG6nS=o=x? zQe8@rD08Cj10E8EMBPWB-UCQfSA(=k0Z7yqiEe^KO+i;kJ0uE;x({qf6cTkGg?bMl zQC$tvCIui-TO|5>kf3TcN#AyM~%4T(ac?xRre0VJxcLE5AMBx;L9&w)fuL03pS zBnpYT4{S&j5_KPidJiB`T@BJE1^#30QIkhansTqId|Alzw)lsfB+6WVtf^$T*{5f} zLS&0XSC1xtW9jMHZ!BF{Ra)p6eq-s51!paj-&oq(E4P~_wiaF6+gE`UtvG2}r zVoo$NKJ7SwM3YIBZ!Fo4L`W18wH;&G{6nJI^eSsiMo$My$6t}t_Eq70+6UJ5`B&*mP|ocNIN77iMkJLNE8xvABB1kAW>Zn(k2BU zQClSX-yl&_&=t}Si9(|80~->BMBPWB-UCQfSA(=k0Z7yqiQWN;nu4y7c1RQwbsyM} zC?x7W3iTd9qPiNSO$tDwwn+4UL!zdjE2JF~g+$#4HY5s(x{pG=2au?)25FN5kf<#Z zy%Q2O1zjQSkSHYTKCmHCNYs54>OFu&bu~zv6o5o+k?38Js43_QX@^81QTKrji9(|8 zqfqYwB&w@H+N1y^YKuhggG5b1S4cY~3W>T8Y)BLmbsvR#4T+x)%~P z1zjQSkSHYTKCmHCNYs54>OFu&bu~zv6o5o+k?2<-QB%+r(hiA2qV5A55`{$FN1@&W zNK{vYv`GO-)E0?;6%sWCT_Np|C?x7Wupv=M)O{4{J%B`YHAtHjfJAMP=>3qWDd-Am zheRP!_kj(GLZa@YQ11aGs;fcTqyQvpi$uQ$iJF40kakEE5_KQgkSHYTJ__|7K%%-D zq)iGyqP9r%K}ggTbcM7-qL8Tjz=lL2QTI`(_W%;r)gWzB01~xDq7Ol$rl2dN9TJ5^ z-3K-#3W>UpLcIr&sICTSlLC;aEfW0(Bx(w}LfRowNYs5`L!ywV`zX|V0Ey~qkTxj* ziP|F3eUPXr=n83vL?Kc4fend5qVA(m?*SyLt3leN03>RQL?4DkO+i;kJ0uE;x({qf z6cTkGg?bMlQC$tvCIui-TO|5TNYoT`g|tJWkf{5>hD0Gz_fe?#020;JAZ=0r617F5 z-+@F;L03pSBnpYT4{S&j5_KPidJiB`T@BJE1t3vdB>G)Q)D(1uv_qnhsQbW%L?Kc4 zQKP(xUpLcIr&sICTSlLC;aEfW1VNYoT`g|tJWkf{5>hD0Gz_fe?#020;J zAZ=0r617F5KY&C{L03pSBnpYT4{S&j5_KPidJiB`T@BJE1t3vdB>F>0)D(1uv_qnh zsQbW%L?Kc4QKsXwHHb)ZOkg zcCOvI)^u`L`7&pVf5=H9b@{QTlHF#X9#%cJMWPQMy=HjLY%8+0QzDiN{HG^8Z;L+@ zsC;2nX;E%VC4Iw6&)c)$tYw}z<4^fpd*yc1Op)Q9;^p1c@e- z=zW8Y2ZA}##`+}ZLZXmpa+I{Q1SHx{wY#@1R_ATaiN0%jGKnV5iQd7SXxCg?kSHYT zK3E}9NYs54>OFu&bu~zv6o5o+k?3Kgkf}&C;Ds5iI(c3fZn(k2BUQClSX>yW4^=n83vL?Kc4fend5qVA(m?*SyLt3leN z03>RQMCU`Irl2dN9TJ5^-3K-#3W>UpLcIr&sICTSlLC;aEfPHv5;X-~A?=VTBT8Y)BLm zbsvR#4T+dcq36v1E$6BHAHQNYs5?L!ywV`zX|V0Ey~qkTxj*iP|F3 z-(pVG6m*5OL!ywV`@n`oAyM~HsP_O8)zu(vQUDUQMWQc)L`^|gNIN8&OrmElZanl? zHqLH)?%uw(H`!u?kSHYDVhH729TLr1(1Nf|3@RqtMj){c-|I& z#`nCz;bSbDkr!3$^uhafg6holirew*{;7cLjd*-*U~HZr9VS&g*Klo`yt|NtF9UTaUBG z9w1Rjv~h&AI~Njdx8mK|9;@@VR_7n$KGE*HB%16sBnpW(89F&ugG3?G9K$IGSCD89 zB9_1fBx;L9{}d7}!SxfKA|wilhSA_E1&KnUu41o#yO3yoU9d(KfJAMPXg^OZMMJIN zN02Ba>ORCFQApH%6zV;IM0GVtn-qXVZIS4I9^LvAOT5L&6t|scheRP!_fZLnLZa@Y zQ11aGs;fcTqyQvpi$uK?Pb~31QBz!YpFK{ZKR!mD!;Zf2Ts|`vrtPKX9WH(UUA5&6 zmBU}}PipaYt*7R)%KN2WxLxLnEty0=o6y2H6Y|ZyvXj$&Z?-?8W|U3mpvPr>^~@z6 z>f6`X{;}HIx1(=wu*u%;@B2>Q|Bc0q$dx4ey}p0#`?qTD5Bq-9_v60DD@RZCiS5b0 zpT%m<@#X|>p9!qedR`1%l zYooM>sa0qfN>#d)e{!QY+yAf{8(;5x-5Mdy<;NC9pz~&<{=B~3FA2};>w*2zzDN6R z?UN~$^Jt~~Z%(P>=zgYursiLO^8;Jl`j&|0!M^3e8|lB^cSYd)nxjIGqGiwPeW~aD z(}E4bo9(aY`@Oz*R=3rwt_aFs(RY2YiBcyneEq@`7v39tc79UxCQ8-&#rsyT47T(N zjGY)Q`_FYq^wVu6(ep=Tk0goSQ|(W*m-^8~)$+QnHr)z|?n&sw=h~uA?Kzn&ih4}> zooC-$qp;~5%$%vt%3Nae=%u6YNEI#0S04K)iC#AP)nncr>qAJQSBzdcdQ~;|>d|XP z-#5Cga`b^wv0XR%p;%2xqF)Qto8R-{Sf1+p*K4#@IcopVF%Kn{QDw`rUwlS*rj1GT z4NJn3q{^nirj3nA^sP&!9=9z0>Eo5Q+z)u-nV%FInJiQqsK?f4=$3&`oHJz zO?b0=)I+mJiWP(DhssZq=(UM$pOdOV~aE;9G zIWm@~N_{Nx3Oa1=VRKb!_EG^>=ZS$@no9&}x;pzwyO}Qn`-Z~N-xAypy4~OIZ}w$MUG=kY$# zT|);3_Q#%`-&B3lO!dCrUhhf0d~DeifJBo?l-2ocF_pbEBnpXUj~bgbAW@s@7RNVp zqPFHlU&EYeaW0b-X99^rqA9|}auG-r615y+8Qnvo83ik8aY)n_iJl6Hmg<^RQL|+eynu4y7c1RQwbsyM}C?x7W3iTd9qPiNSO$tDw zwn+3WNYoT`g|tJWkf{5>hD0Gz_fe?#020;JAZ=0r617F5Z-7KiL03pSBnpYT4{S&j z5_KPidJiB`T@BJE1t3vdB>KCMs43_QX@^81QTKrji9(|8qfqYwB&w@H+N1y^YKuhA zhD1$4S4cY~3W>T8Y)BLmbsvR#4T+`bJ396m*5OL!ywV`@n`oAyM~H zsP_O8)zu(vQUDUQMWUM^QB%+r(hiA2qV5A55`{$FN1@&WNK{vYv`GO-)E0^U9wcfC zxUpLcIr& zsICTSlLC;aEfRe*Bx(w}LfRowNYs5`L!ywV`zX|V0Ey~qkTxj*iP|F3w?Lw%pev*u z5`{$F2R0-MiMo$My$6t}t_Eq70+6UJ5OQa`QApH%6zV;IM0GVt zn-qXVZIS3(AyHG%719ogLZa>i8xn;?-AAF`14vX?gS1HjNYoaI{&z^!6m*5OL!ywV z`@n`oAyM~HsP_O8)zu(vQsCg}JJ;@9Ys$UKmpNPfLrxN@%a1jc>^A%Kuy^TmR)IK){`eSKb4Oq3;WJ}l+Fokj;nMftRa@RrIsEnhq!w@2dTK7KykF{t+hv~E zl1cQl2`zjxA>Z69J2`thtUt+Tc|^@9o6bRx%ldxJB_8VA*Vq2B+S|9IZ*Q>4-tO=F zPT&8HjgQEcB>KI+f9?CXYVHsFe$@BlzQ-#^PxOiH$-bY(YR>WI1a6-Rtn+(*5zABR zJZG@0e9t@BcQCO`Sh^gkt*3?O`Pj-At@pfL8%I{}+PG_@w1=rxXctOVx|Dx%BNF{# zH8#H9_qsJgn&Ob?d9zV}Uf=GQgv0*z!2W38qkXsb$&|`@v{L>zr_^zDKhr-`^Dn?n zfh}%*OT_YE-|~PUzutF6;QN}RLXV(f50O@2qaCS6va5zoPH@ zU=yWIT=@EhCoa4}wdOF@WJ&$yD1;$Q{))`zRkM)1g-#ZvBW9LY*V(=gR z%1@H$wTW$?ld3z)d&r@e1{9i(M9*B@xQQzpXSY39QBT_&Zo0w!H8oA=pvPrRrHa8^ z;`+fG2ireZQ4)RJ+dlYYtm7exKIJ{*{i2%ttoNLE(Cg_DhjV(w_JW>ym7}n_B+;9L zYh-@Uk+D2g>SKvl&|z~Ao2yE*mkKZ^N+hIF;2!2gEzOC3Cx zM5Dtp@9=qt-^g`{< z&TRLI-WJ>^dRJ_9e!1q&6ouR;YEq^-dz?i7xz2r}pKj}YqUVpwGm)$F_f-31KD&#m z<;^8TPAjYPdlLHa`L^iO`26(T?wb?cTcfb)9L#I)N&$0;&7+r&z9Ut%C|`N(qpS0m zjehl*cgOk=uFhXEdgbU<)!eH`uNi&c=(fty2S&wq-ROs6HRbC3*8=tC_k1{(r~3Z& z8f{gM+COy6Ly2Wn*|O{xpAnvErcg= zSURXZ{}k_+I*#{E+1WRzz@x`U>#;f?)q~afs2+BXm=k4A)J|kI>yfJ?2Dh z&56EkIdh_Ax|ZT|qL65G^aY9X#8Om~{Er|}NHqVbYQ-ZY+KPJRsk{4(MsuR&c#G4j zfpEO@dyCU0Ign_YCze>94@b{s3KC7ePc(@{|AE!{7DE^kg+yBnp`5EjqB#p%PQ2t@RPXqZ_lf>2@ea1{X?KViPBJhn@6Ei$ z>8XT1ykUj8T^Bi~dn{e_C0(08tQkYoIp}d&-?zEMj~4%Uar?(AdY|ayi=SBhWbACi z`$T`X_^HLuRC9l^_}RtJEk0N|>RBSTIZIwJdv}&RcX^-ayudoY=df6wQs;1kUF8RL zm&{Kr6P7MV>Q|?S=h^r^(SMAMW>}9@@fG-Z!}~;+RqjRfy!R}5-CChVaqbh{H2YtS zO-tUXT>`ieS@PY*a(nBlYlHIFF8Ph6zfl>RhlhUCe|YGK z*gcAmrMOQt-Z#~6_RT5qd$IS4LZVR}#p*mH8r3BKBS=)vi9(|J$5wM5A<^b^D_bo{ z)E0?e0Ew3BVv3U}&(24OUyx|hv-4kU%banvUyY7T^NEe>xXt6)c}b!?JMT6Q!`69r zKGcGgSplA%xAp9NFVD`K!>)iiJUgF!pD6DWwH^4}C(3=Iwqq=tf9?~_rdL@@^X$B> z`$Uf!<=Oc%T~+b>M0s{TI{LiDDXNE^BS;hywG&y*dWA%rRjyq1AW>T+dMqSbs!ItH zWlq$6z(b;tsQW0?djN^*YLGT50EyZn(J@HW6m*5OL!ywV`@n`oAyM~HsP_O8)zu(v zQUDUQMWPdss43_QX@^81QTKrji9(|8qfqYwB&w@H+N1y^YKugVgG5b1S4cY~3W>T8 zY)BLmbsvR#4T+dORd*3c5ntAyG)wePBbPkf{48)O!Gl>S~ZSDRA&~ zzV^9qC{!oEuYDdENq%kafUi889ZV29Nf5(EemU-TcKjm-jmD^2| zGeP+oe_QXiUQz16z^#i84D1iykgxwXRXpgH+VmQ&#oAmfSrvdpAVv>y>}_wTbynS-r{su;79*0*SzU=J-*2x*!G_A=v(^5X+x?>yQR8{a`=wsEUFL}` znMB{2(89{a=H9u;*{hA6i}tg(`9EtEHl2eWm-X8*m$=;jW54}lwYP6a-`-%8z1`|R zcg%ZYXDf0giN4qWQ~&+d+-vbG&Hrf+5fQ@nGmtwCs7`3En4q?}9^v_laIGboS5>7s+k^ zstbbh7Yv;lY@*bPz7O=R=-V87pXhjsYdYRH;f-JO3S4($wC-Rvs`P))->Z#sv~-?F ziWP(Z=vRJ{M6XS3`ZEbR>FTLLaV7)r0mGQqkJwm$-iL#=-WFRg^>@_qGo{8S8jRqEC6xc)zITKI=W_9rSv7#NnJCvAv*YUgapP zE=ly}AU@~!92v_~r9PGry`Fd2+{5Oo((I)I%!v{SX%ygzC0kD{{db;NN)v#EDHER) zy`wt+sguB+hB?umIeE&USTRbXUox~Ew)|ydiD~bA@4{-qOM?C8U~7g%!?x9jX z`sHm~^|7O70J9gjLS87@cYuZW0N%a1)dL$~_UOVu>*n`y` zeq-$6v2TriyK?m1F|j=|b|BV!Nuu8mtn+(*5X)0%GrU-(*r!+E?34e$$}EHe$xKN93lSI=LiPF4T7*Ez92S^lOq`&ZY=h?zE2bbNF0 z_tf?G2XmR{^-l(^91&ch>bJ#LT7P(fuub+q(RXOS+zxs9WKe#xe?zc|yzdR|UiiJC zFUD5qFX_5fMR6|O{W~!>Ckly1$8+A{ijbpr{Rk4()o3OSiAvQV(PpB@Mjc4hhN@-r z35lu^mrR;OqHme~e}Af8?H&@X)uafPIEg+w_E^o_%A+-wMrR%^{pgt7RE=n^vWmUR ziSEPR2tTTnDx=raebuH_4b`9czP5(6$W~3cs!Tjz_Ehh2y%KSo`8ZUewv0Nn+MMPs zNj{VEMaxQI*$WX@%A(SGDVe9vGmU@gH_KnyMwS}+mlb_@Z0z5)O}6n^<+_s^g%)Y` zJh2yfN*_@|q~)BbNa@Zps$sDvR2yoajF6iSXokKN)**@MM!J zBkJmD<*RnDN~!+D_q8>oMYd|nRb}G&vZt!Y@mz7N`cp5j))uNzo0rW~ZT)(dB%ew7 z!lzPL`WJDfEGn&+l6mSp)A*Nuv;389WT}yVSU)qI5TE+D!wrEY^ zMUtpU$#YZQWef7Jv`G)@ukt94Ra)Orjy3kskB3UsOhb6?x3J)>Xs6!>=aZl~J3 z@6SIlKW_bgjU`?}KaQ6E{(QNq646{`6?>Hv-G{vqepD${Mz5#)s!gjJsz334Z4GIW zt(tOGnRveJsovvyCE_;oai~IV8Fgm0In7&=d?w|KmX*S?7b32dMWyvpGEbdn8voL7 zmcO!%EH&~kEBbI?e(jv-fy#9!HIl6gi?n*4OhvCvp_L?2k9zn&$@XHvfKsT7v}MO-P1O6#R$o;uGo{-xh6e`On4YUE#5^g*4a z?)~ZNbtm$rU09@5T#sUl))ZbOiHejwH|1TnApc66^q~GKkK$OR_1>r+)Y`D101BW$ zrz*glXs3=${eGF}ME`T_m%+bH;(y`qKWi*uUTsR0mcO3{zW%eiDO;GUENZWEqWiEX z!jtFyXN5#n8BteHD_^yHRZ8_IzOStzEwWWpt|}AHmpxTIj^~PF)t`EKwYE@&+PrL@ zYU|gtB>7Cr7e1B3(!Yo+Wl?Fpl+07-na02Lo8_-;BTJ3^%Zfgzv(&x+vU=T#d}$XJ zX%*L_*rGLs7fGTbCC^QHmo3P@(k4BqzsjRHR%yLAst2_;EGU2iDA1`2K%$*GGWGjq zCei;GmNoRZ<@|K`=T&PxZ@;Sk%UPTEbc0&8rPVX)>O~LoeWK4By(Wt#QQ{>8>`TJ_Eh{WPKPWuzs0G! z_leF8)HAgqHl3}e%Yr+w+G+g*zETNx!bGfuTqoi%;)`7N_{?4DfhYH z@8ml17N_Tz%>=DP-{PdSzPa)irx}0B-`Xp;n@7|Y z@n$yjKm|F`IB!@qb>>srd$>fUL#zL8>Hp&Qw&mZl`Xu^miEW$TC#s8}yxVx6=vNYH zS?`Jc^tu|Zv)^WGE!a8$zhwHZ1|0(J9+nDC>5!Q0!4p|)4s8NV^I3_&F%so{qLDCe%R&4tPRxl$ zWv{$XG;$?G^Tknf^K5IF6Ah)Tp+^&On(Uz~=0rm+M2b1ls2=H#m=jH>6Qy(oqH{&e zi83duM@Mne(KyfNyyA1Bzh0%TBQ^SZ;rMTBNAY$S8uR*$IdLE2c(7X9ukM#r_9KZt zRwS0ty&pRsZWH5TJE5}G>yfNCIR4Uv7FH$X*Y~};sao}YMXmbSMRPj!=#@2En9jju z56^5}jW3n=s__lu&5f1v(9HhG@pa=z2AiyV>iB8nuZ{IE%zgd%?~ZS(=Kh!Q|2qEW z@wZlv-Zn0_>G2C?)sqJp~}qda7V+tU&Z%Xh;+iZ5%J% znj4Mte9j_HqRfd#b+tDq`mf8PE#-HVJa3p^TRC}RPP8H<_lf2dPc6HFL|c}ygbt$r zLPMgEXfZE>Xq@MBj*#fPJh7R6_DJ;WOH6IHYKKJYE65W|^>x8os{kZgs|l7Q1)~2# zL!yvqQp9v;el*VWIfpojzH9uCYgY5#6qSAUPnWxS(jeqGk%U?AjS?c6nR`fxgrSAKWD^{tI zv@5`{#&Gmevb9gXv((&_RcQCB3I zZhV?4#hhq;)tD2luM5^%1t8H{O|T>>a6Mo9Xy}cEv5=YqS{$iMsG*oj=sIYCWrEI?~uh$#zr;F zwLzkX)@U1Rp2Io{K%#X-!IVjXV^&_}%L)gV?OOM#(M**)yzun!{mbvKJn1k!yrp`U zqRY=WO`=~*sn2IB94{;nxk_Ga=I9?;&eX6Nhb(iYkznM5DFzqhA?Wu_z?!1#kau^n*kjsgo+N zhL#k$#cP}FVYwYu<_j$<#eJem3HC_}K%z+skzcF8wake&O`=ahqO}3lp_XWz=hI0@ zl-2osBB>=WkZ46d8*`#_6aIfxOXF79%8+Pbht}eWy&n>VL@mZwr?`&Bc|N^@L?O|9 zBB>=WkZ46dNVKIW%CRyenxmMdadjOe3W=5=+M{uv&j~}KkZ3-U)RGrSv?3oQ+ENtd zSQ!${QOwe~`Vb@viIyPRqj8?k3CBtFs>)j4^TYc6cncT*d^r9bMw-@NQo|RGYN=<6 z)>jM3Czif6melf>jrXbQtts#7X(h2w`^3^a=AjU%gfZQQj{+QZbH#`}^( z52VVdz%eVQ`sI1Qr~gA!=MEG}gX!Tt{d+2B7ky&sy#8|sru(P+ukQaykUL#Hf0a5l zxQlcRs3zz3jg%^Y|%K+=j7sZqSsVsr}TgE-&ZqZ zl~3DIFKX6O{of`zC%Uap+aHM7u8SOfC~_3Ga6{GJ%$#WGrGDzehBoV$wr|zP&VFlo zv~W|6f~IpY*~4C#N%SM*A07YmnwG+vc2e;<(Z3uw&x!6Bzh(Tdt3CYN@!Q7#Zu}FK zqfd>C?e_7{#(FR3ME^dp&hPm`EKi-yZi8Lrv#+PX-KU4vqpEYFD^|YwxY{|<>#A>j z8P#fpbxD<3fpbUX*J_VtTa6iJEc;RDMKEE8uGofG}Tkwq)sHuAQSOGY*a=l-_p z`K#1v>L2$yQrtKD_3MwGyk^5kwKa)o;fpFdUKRX3tuiP2ha=NLE73VorS+|qInn8n zmmRHs*Q}Zj%1@81Ubb5H-rqhv?eB}ti9Wd`+9pT#6}TjEPW1WVpAP>#;fg!_LnoMi9dyvk*cHc#T=R{qpoj}+(HSe{nDeOBjPMxowzz18{p zPb{g`dA&Ai6c7rqIK3meH zlq<_VJ}1iRe01b1Z*hv6YK~Z)uaP990TPvhL82K0$69en)S9#SowK{+I z2Dz!4@ja{aaYc%842h=r#!|viL!t=+C1yjSQX)t+F;v=A01|DJ(1mUW5>>;SoZXUI*}jPD`QxFW?kj+1D; zXXkmJXydVN?tP+n@jlU6S$UtRl!9mHXG6kqf@kL)4?xQ1Kf(J%Q!15jvHZU~&-+C4 z9idjdxwxw0&(1@l(Gg7Z#8Pu4`cIJPtkjUGlmZf+4GG5yNYwEFq-@^BznLk!78K(x zPD-ofw>UwfN-Ot!7gtrBM0s{T8V6}elqZ&=nq@y?bzW-5>U{Rtu~UQ9c{{q6%PXt% zYP{30&iDO}+*Hl@p4IudBE>k4ug*iF(Q$=Dqk7mmf<&dRkf@#b%I*~s&8`_W;tD{b zN|E#=`ospgshaUUBpO$w7{_rE{paeM@!i_m@g6N*d)8lRm|I)kWcgav&x6(dzRLbv ziQd1HSVFX@ygxD?ZvQ$iwjWeBbFWlQQwh)eQK}xq>;HRGwc=jt9qVIPFTe9_KdI5e zbPgtacur5&_)>X4AAe@Nxv^3nn%Uny{^a=G!6xhea{Re*ZzAd^%$+lF=)_^w++UwK za^i&(zg;<6I3c#aiNRRSIo_PWl^|I<{tj_c7y!&f|IZ-(V%!#^>McD)9L_1|9y15_BiK@{{KPP(htL3I@ z#`nyL#uX{XaePjcCzhh)nr3yrxhIy6wKi9^w=a4Qoqxm=OLB~OVyRPNl{wK)8HvXI zxQ%D$8w+G9muKfK3EL5FU0hZ1InjC~I&O`bblKIH;n!D<8!G!Rjp=3TrN5k5Lex^; zFZIIhGEZ!+&xtliqV>)t9~&fEU&njL?i*|WSnciG(YH6)WS<`Q?jL(H*1a$n5{*gY z><|)lCVhb#?xfZEU!8pTDW6`Gm$>x^VH&hnqRemn_awOR-|-k?3H;d9@faU z1QHEZBGp&{NVKs&V z|HB%$ktH{o*0OkOM_E?qrOM2Swjrl=cQ&mJD)vv?9|}dc{{q6%PY^$tMN|%?EDj_ z%1zab?|F7Uu1GPC(>y!R6HAT9y1CW)#y(rgWlprddd!K|*9B{>0`=xZM^=Y3pfmSrznZ}eBS9iF@NuUf9H zt7@oyZHY#fEVZ(f6>W<0Np(W?8uhZ-yrkBf^;@iZ;yRFTwil`JstAvyO^lVg3e`Tm zE@kQP3e`0Ved<=yD1ZVefC4CBQ-M_zuc$+bqQzAe`>F}CkN#EtkvTF~mhik+1pdS( z%Sa!}m#P=$#q-s1SVDLV>xoumtExTaTjuEbVZZdeH0iKCQ!4Cd)Sqm#UM*Ea?dz2> z+p^TkQdYDm$|uzc&(hq-=5vx-Z{Bl}YKrSXlBh_9S4DUvZDOp{RjBsibty}SSE#N~ z=u@|nMgbH+0Te(1n+mL%I7uTty`?o3`z@OM;8Rwdws;wk&(udZWLp?eN^Cf7NnrT~$NvYfCh;WT};< ztY}k|PpT8D*Ql4x<|Vb>tlwhQ6W4(xQIQI-ittF<#8|1TQ0>F(QkD*{P+ga*zVW-UR6TN=$#=-WFRs7BNhb%U~+5Rc-8SfX>Q+d{V z&O7M!^oYYbJz{%7&%DY}c&?H}=LYJ{?>RD-r%D}KqpiweZ&u)W?Me6}UizZ-p0{gb z{rf~Gk2ZTDr_2hRane=3JpY5scCGtV%J*eO zzun*L_XN4yXLDp~a-Aqs|M#_&`h2ER?sLK4$#vq*_RlYy30jH1*-Q0>Jq4c9zD*!nSvRphHY%#^brt)% z39*m<)k~;cS;F(y2mZt+%Sa!hzN!=MWz9zAWG&@OloYMVda6C;TjuEbsQS~?ua>Hz_Vvn`ZCPq%DJxnO<&)}!XKC(Z^EpYaH}APfHN|xxNmQi5t0Fv- zHZfM}DpdRMx|F5ED^yn~^r>4(qW}t^01BXhO$F+G?X&Tl?epr5nzan3A1Xid*FJfl zXk*Qj=M5XzZ+|XtwwIdoX8ZQXUi}v9Jv-0)MC)sX)ucctJv(peV{`WW-)yhHPxP(Y zibTAByiYW)NHLD%&(5Dbv7ydCyD!eMfBWV+3rLID?53fsEI=n)4g+iaYl{5;V z01BW03fNSDH`_$`G3smd7bpD^HJraU;B*ag-6PJGfymqUh1csd$av(w7K2- zew($jI$vKo-fUlA7p%1k)LWge|HKk+wy#yMeU?w~-TC&3t+kZ@>O9|_*W`7aba7S1 zSLf^9C%SNPbI;DdB-2y7iWQUZ6O9g&eG(l^IFIH?G=~w6PJWXz@W_-`;d|Z)Y9LHDZA02zF<_(^Y z)>s;yyC@yjcyvr|sz#WjENZWEqWiEn!jJN-%80sp`pTNQwOa40N72117vIZPF zJz;ir{+ic_P1TI=nG=mGQjFvHoM=4~{T*x1*6146zfW|Vah6lny)LnYD5<>Lcw*_# zQ}sag*Zw~FUP}9Y$kqZRD)q`jqNmNi#p&;Z_?zGJ1w$0>HrTU`P}xdDqGcO#8|Mp& zDpiw7^qI;Rn^bx8K0gxutAXGPQU3PfX@6ggaGqRZZof81_~F;80+8stJh7R6%!!(m z$QPrJ0EwzdNG4Hlg(};44~aI`r(1I&QApH%>_Vb)3?NbW zu_${0iFV3JbaOu-Q8jwWB>EeWs1mD``!po_zP7CIsrB>dTbx*(&mNYn&ezxMBjX<( zZ~vVXd;50u?F}~Br^mg&9Dg#_y)ZWmi3%t3i6vI&V}j;z2#Mw(V(DE#qACQEN%Rx5 z_laI~hS*fi_&&cmQQqK%bpKixF$kD{K&r8+5>IZ-(pSxA)o zL~TYeBx+OLviOEX)kr6k=u4OrRbrKL4~eom?>_J$Q8@;XsQXxyJ%B_zWhA<}ACRaT zy<`&gAyFk(Dff^lB^(arsUMAhgeljurFREbr}eHs$wiKWJ&!F{5Q^-0c!M5RVq zNL19|iKXP&YOVw%+MI6G(iMP2l^V$;8a}bKoa0sA;@2>`fqXiQsoQUjavJ1VhK@OdAIS6rLUywL8EiXH%}kCd_CLpc6W_}rgJda z!=CM^zAq`XsMNh<_l>oGtm1ERx_`|47N@lX4~#un)#4jt508Co?Aw*2?~aM>k+B0Y zo#dS8_XF$vo*%^W)L9QNRw?%B6*ya)llkPz7X`1D+qH3I^{$P(HcB61>P}<4rEiUr z#Z+LbU!K={`ad*vZkK(DXW+Gs#$sb|Ge=FpRoIepQn4&^qM`nC)Y5v%i%s9F5>ulSn#B69SxYh1EZav@PU5|C)8 zL?k5IDI?L%{pd~-ybwnA%jT2Sc{Sq6tMlJnuF7tEmDto#e9!89T#;fN$5-be z(df8BqES8U96_Q|S4h-Od}a3viDuV~8gT_6QKd*SiGF^TM34I&v8kHzJtP`eq!`DL zC~vlRAIXrY90N$yeJsizK%$*865ZSnNK}npGKq$BqP$O3saB>vBnpYTk9SB^jsYa< zJ{DyUAkj`4iEi!(B&tR)nMA{9=YQ}!VpBEad*(#riWK8GPNHv^IJ@R4`8U*98l8Kz z^cyDRrfNiUl~wFjjwl}^1b}d7%orRi?9fs;ytolH@ZfU-(oCOaCISltrcWQZi4SXBz*~Z z01BXhT?M#LG^#K6iAMFXbHtpe)Rj3=JMop>D|4dRHKRsc0p>)NB3b4{-+7wYRL%IF zInlTx#W;@7i9({$afL*qde}LFM5V5fsGa!A?iCWvt{FAr3P7Stkt`(ofz!mMYR31F zXk3wE9LGs?Q?Obme)>Bp&#BsEj;+7yZArY@zEy?wv1`>=d+PH(QK@s5_lbtzo#$(x z`9~@56U|@K@_Fpe_lc$%r~Kb1`hP~#w43dHqBl1D+UIdE_PhuD-3uS^{~<;=*}nEE z{P1g4f%yAG&#gnE|1~yFt+rXeeti;sQ)1h1Nh~4SQ{HWScmA!ZdQktYZCJaHM1Q|V zLDM;y?4ge4@6P{^iRp>m!`F^pTREfXcjq5l{>#zpmS4C0ocndNZ)TFIV;j6Pe=Oyj?blSw zy*l`N>^kw?`Nx)jFlZ(E-Fc<;whD=UaQPoD`$Tp7=T#pJ%71YA#liOIZ+qVBho2sP z{qSXhAN}|CqxGYtwD7~PRRtbCKI#Dyjp~tRb-w*{6YXRCD4EvcHC!JVN=L{Diu ziT-;|Br5#yYgGYA6cTMUhFY%=iAoJ2(bi)r9}kddK021$3nZ$>Kbb^VwVgyC&xu5Z zAAYSW0Et4Pt;SI6^&wHIAtc&*Eal??63s`)a(jV9)%Yiq==`>m=udJYQQ?PQs|rA( zkZ7wh)OvkLRB8x`wjN9Qcz{In(XrfKAW=2`$t3#KlyAAp?=4PG=l)OHemGA9xhe)zSj03-^Dwi-jN*M~%Zc(Hy& zI-LS%pB$F^WW(>y-`N+IB!vRH0#p6+=so=(nmTtt&*}E`^zfekJ(aVIes})7{&NSW z`=|S_?*B-TJ6%10l{!`Z<6h_V_oSQ?-B8i-&B5PO*NgAYpVvPbv=aU9ywdu{%6I1{ z`=97Lv|nzAynHe!KiR(_*p7d(=RM%>Uig6j4>7{IB-1r5{P1g4ffG-Rdf>bBQ9bzX zd{hrRN6d*zU6~WL6JOcAGAEi{Git;YU`|vik~}9mukCZ9e-+T|>xZ8ne*N%e0nzHe zw;!z^C8dQQeyu7HpA&^dql!YJQ9bM&L84MuNYqYzW%mk+X4i}waRnezrARV~9tMdj zu}ZmzM7dAYec(f)att6*_pvB@0Eu?WNOW^QAW=1X$t3z4kf;)?lzT`N5_KQ=kfOK}_4(arsUMAhgelju@NREbr}JtPW=x(|FvRE_~8>OK}_4heYKVK%(wrQT6~5?Ua$|=6*n;YV?vxbOaJrVwG|ai9(|810NEV zV*rV|k44!7NVHQ%qMQ2xiK@{{Ceam;s1mD`dq@-#bszYUs2l@G)O{?<9zddOv4rrT zykF{t+hv~ES|`!3r0PM^dE}R`k6nIVZF;)9MnTg#nCxNic4(0sT1D#KvHQl_KURDD zcJ%EHHrbcQz5B_u-%~le>ESJYIJ)QcpF1$!Kiz+I|3`w{>FW8b)T!zp_prij z>c-L8WW&UUijHp%{+_!2{@{D@=k-qptsHSeSZRx|w7zkHuuk?r(RXOS+zxs9WKe#x ze?zdH@M6z*Qx?1o*4CT&A2>P|8k0>_f>7tl6fB~R#d?% zNpxFc+t($Q5It4iLk_*P!l8MP=%1(RLEd_q{pn+8F4ajnH`OR;ItP*u6V!M6(voW0{iT-_Ho!|3?Se{a3 zx52LR+1FFx?$bl-Q4LA-x}{-BQYfG+aPEjax_IR6>ldxibGkh}J$zuq9po< zBa2qNZRBkumyB!<&i!rG^H-_U)IaWZPXF5F%DDbyv8ki@{-TPGR|S7htB~j)j!Xxw zL`hU>eQSk8r$=6PwEA7MYC0%CJ+gY)YT0{#`|z~CFGiwIE{V6wv26t|fkZ2_q9&c^ z9j+MGRKoMxPdDbih@50vYh1tmxsa&T91?AR?A31(60NTb)+`D@qDn2vq>V`Q^Rp!S zwT)s^HRF3oG_FW7j^iZC>U?xu(~xNUSA3&=j30F$iLyE`$B@>inO#eRclCoL1+BAAYSW!0LSK_lYtm+G-RsCn^Rn~}yxN_?vk=$B?xe{7?A0o`x|L)@ zr3s!`%C59NcG+vYsKK15R6Wa_sHnjcOSYnwIZ<26mdS57&xtuXf3XXnK^LZbCYx^-*2Nc4^C-=zMpck7+TLx(BQ%_Q1bN*g4a?n;0}8;?x4=Eg~s z`$VH7$$g?xJ?tDYCn|N#GAGJgob1G+^x7^GwRsNscC7#;szxCBKGECTexK;dobD49 ze)zSjK%7MD&580p(Z(wC#8P8@l5-(ZsSzZa94qZ90g1Lp=VG@4iK_8UCec3_RAn3Q z^P3aBE+EJ}R_BEueyu7HCsF1^qlz*o8r8$j5hN;gg+%SdS9Y(EXm-u05mx{bRf;5& z=K}fXKNXn}|B$}6!W%dJ!s?kp-(L35s zqOZt_M1>!ItttSCLZYq4Q0w&}QK=y$+IlSI;{g)QN5^t|fkf5#CzI%x+D@XYb0SgU zhhM7-K%$Unt1;AieMnSl2#K~HOZj+!MDx+H++HA2HU7yY`cG{q(KR`dsPMzDRR!WC z%6I3Zil(_wlsDT)HOqd)o9(4$yxBf`?AWQno9*rBS}w1=*#e z(PaawY~y{FXXkHh_-6Z8<}@cN{P1g4f%u##BpOu|5{>F%=Liy&x5riT=s*_e`nMjrLhc zl&^g@QnIu1>XWGF=`_Qe?Hi97tMiTZNzR2trAApuly590$5rzsAkpTvqoz^-5>-kh zljtRFf3y8Zg1O8*-fS=Y@M~3pIEk`4A61mq`KTUtjv!H~Dij7=tpQ@I{<#BaBPL=wXnUE;1&Zqks zB$}>|z7`}(8f76-T%Fg)RsStOqWx=!o~%HfNtDkaK6Ou`|CYnE^Xd1AUhU}Wys(4K zRsoenKQOf=vikXfNJ-kLa_bLF(at^OS}qkS*NFB(K9~)ahwG>}_oH0WPj1EYQPbpp z+%u^~F!P{==tCpK)rxj{tARDo3seY~(s4FR(f)BII-9zBVUram`y#Hmgpb3msE*Im z#6H>0@{>K1rH|{jVh((kVcT1}rKAy+ixMgo{ujI4Q&^!jQE?R3mg9xSp%KXf|743I z&&T1}@C>45D1ib{017|>D3GrLaaZTDCYr7})Ezl$W<3M@r;+IVV~N zJ$^hvJGTjHxP()#k<(x{!VX*JHllC%m~BNEXVum;;|>*!oYq zrKAy+ixMjJJUWtl3M+JgL)C@Z2T(RUroZPQbC?-RYr5s3;r*lZO5iN4bl zd(s9HO;W~XIY^Y$1c|zgDjQoMQ5*HpmlObrawOSp&v?jTfWa<*C!n`i4Aydp6#8=bKWn#=e?mJkv(8Y><10a z?&hdL@QtMd7kb{jp%;YedM3Kb!G0~atP1QqJ?L@BOAqt^Qkq#azHDaA%o-{Wj;4((4t*lZPeI^;oN3nVHlYI1eHc)F42sOI#v zruHa14-zF0fJDoVL>?a`%1R*ZUjdLPYe!6)Mxy^(IEl`8M54kDHd_TiqF58PjUoH~ zAW_l~Bx)Z^ZY+RA-RRhCD)QyhKwgM7m|LaNg@xn=Tfg=(XcCgthppq!w;v_3-a&^A=cT~!ARCD#aI*%uo z$cK1hNsZ;Q@_1sYEaeAjTs*PF-qb&_^!mb|o&UK1jMTc}9mDH}cPjUZZb*D5HJ?v7 z6?U-MDxf~G6i1?WYM&aiorUPn&lJf|EZwCY`)+NEu=U`1rH$R^m0Ucr1QNCNKS-1m z%tE4~2YqAdasM}9-p~^XzXxM@VyTbtEQUnCev0Qk;QzrkmEqj;_uNJJ@U$P_NE|L}f)mqOucZvqhqtJfJE8Beb)#dmt$;+?|9TRAu5c0+&%C?%#uA>LXD{2NAW@L0 zP5ij&3lb$AL85Nr$=(V`)Luha0Eu!8=t=ayL82^HBU6wlNVNRG2Z@poK%(WxBFz9K zS`|;!c^)89_MV|2e&U_fpT> zw|HCI^A0(lNAkQ)?OS?O`;o&%>9+QY_C<4OzixV4TkMGvhNQPB@IEM_Oax~ z0!Y-2j?K0L5@rAEN%R$kU!6b75s3;r*lZO5iGoCJW5~WgNR%`LiQ31K8w(&&H##=k z3P_awuP4#_3ttl*cSNGX4mMi_R1*F0)U{Kp%@0RP)E42qXdU$U@D%ObBBY?<4LzTsoG6-~Jn&qqz8J*b36O{(QKYCX*~Jma_)YFTnVP$Ale&n#Nge~Hef zu3n7H3ezk^TyY5>hg(q{pQnj^vYX{6jgh5?`?g{Ze3oJB*LF)uBPtgqRO)$jB=;0n z4)AwT8>mffXaxF6BeFHN8RXe|cs4wPXcrVYIBDlG$^q*UDb!Ro(Qi)UidAyR|JuE4IGT3-${=vD>eS-fuJmF^gihu@Z|Di7jt3cY^!v&7nvuTll;Au+^OD2- zzm#6MVtm;PSG;fqmCvlaU)9S?hx<*3Ta#4LW1@w(j-M z&ht8Bo7%ydozq%BztifpE^l4$*LJ!sx~;lLtN9=Ipu_&7|6_P{epOe;H~T+VuiU-V z^Ui5a`?e1`e!n4aQ=7HE_Ha=;-Fj-|;1=z(PMr4JPq$Y2yQq7hy<_-+_7{58BTB@! z0l(8EM1em~I6)rlx~c0GuXx^deo3@c?ib`l>tMTXigqrMYq?aUTqCE!xWW#%;x^%a zVO!B-?!og>(`XMWp;41+xs6&+GY!u;u7z5boDWopw&632*7RSZv#F~WBeTLZ3lUdb z!pGrORLAFOVxR10`AK7B>EXVum;;|>*!uO|QqqXZMG2LP-#)R+J%tq_QE?R3mVaAm z92$`<@K3fV@_Zbg4bLE2h7u?M1)u;FfCBj{aOou3=T#b!JKO))D*ugFE&0DqSQG76 z^RVywwNY$8tcjA|S=L0??k7>KiMo&0=$h!vn(<{bYi8EaSiuq2MBS@DC>F({vYS$ns2d%dZ3QIC{@0V}j|}f#a7UsabVQ=U4mMi_ zR1!U__rHTM&0tM5U1gAHx<2|^tcj9FSQFL9N--@!qQ&Su*rR|%*}r-cz0UC2`79)Q zP3nE3ANSeU#eJf}4mMi_K%#hJ$u@@U`-4PDLy)L_EV;1&5_O|vv#o$c+5dVH{Rl{u z#cE^<5(SBtANU|q@&QP+{8*$JfJCd}i8{{%B+A~?ljt^(D2vs|6eJ1~EkE!mf<#%YMy4Q9kZAdV4-zFGfJDoWMVbLfv?`vc^E^PJ z>^(h+ehehaVl^^VNfgh{%VB_L=Vd+e$$>;kSCD8v@s-^wNHn`<=%FeA5@kj7B>K9- z-)w)fqi5%Z9c;D=s3dwt%=<*&*DJFfE4@FzElGZ#=w|KMTeL02xNJT6!qUd>7nWRn zW9bH?8Kj@R%i8dJ4_w;K&(?Jj1(VJpsXUll@;8>QpZw@#@xD^OvGlRYE{zG3_V z|J={*oj)I~<$v5`PXFfpYohHl#2(Y6TlBWBj+gpB*LJ_Lbl!N!A4UGg5^Md*?z8iq z@s}ON+Z88u{PvykWs8^5?Au$%I_-y)_lfRZlr%cZ^HN}g@{J{ssI0WfnrQKKBhOLI z>1j>vQFb0AN*(}-mK}*aK1h_6K-#|oAW_zim^6(4B^B`RLj#tGGJP{?=ce|LgrE%6;NfyiYV< zm%5kY>b(6EOIQ=N{Vl+nC@F|FQQJsz)gNo3u9R%D9juA6_w{R{cQ4_#xH`{DG%3ZJ zs6B~dP1N=`25X|EAl5`}Bgs{Ntcki(vdMO^Cd%H|uZeyfYoaVxBU5!v6j$fvFu>J$ zS&w{jAW_m4B$`irWw#0v&8``Gs0x5YSrI*n-Ut$9u^O3zM6o7Xe&B;d$p;|O@?()^ z01~Z=C+a*8kSKdkPojSV5@oR(nSw+?qU8rZNR)g45-mR#X$BzCs(7N#^8ksm_w*#X zWIne|Pw~W3x;}NS1&M-0%a2`OSy2-b#ao=$}sw|`;@SLby;($(YYJSmjr>ik;&xAFjg_q^Nv-+*~TcO?8C>_{lr z`J~zPxH{i#|GPPRT%Bhf^;hSAw*MPT+$TPDcXeKnXs5k(tkZr-A)LL7;>V6J#eJgj zx@0R=ug=Gj==%!!w~Sd4B$~~G(bl^%-EST3UwjEjlr+ymqM`>#G_P0%iRPtjlk9>- z+1q*&4ek@Y;#9G7Pc?N%qQbHZ5>;o2d_M}PB#Lh=$tvRNysSq)Ib5A5U2%0jpZLmd z6<6o8Yla@G0=PQQis-M-e-dwTVzC;Ts#oW6pQs!LAW>P5d~zUB(iJ3{Pkd#!3KGq( z8G5J+fJ9jlJ&8VU_%5U@Z??boa54UL>#320TeQzQak?e;RsN3qMAT?6H$i4_uwkN7rUq#npNCcb2R3drlQQ_f%6{omUkZjJ$ev zK5k9)&I!-^sB%xQ`?HU~PxLN-?DXw!Z41$#tq0F5ZR|d;1Xyu~TqL;6~*iIPTH z)v^uTJTi5%wv=Z8F)or_)9|8$F>_56>$>$U4bAKcMz}=dtu zJEf|k+1ZQLi6xywQhCsSd*bt2A3EZiBZ~Lcu958{yZoJIxW}8daBnc#?om+twD*kn zY_Ik?@0Z^5-q4W99xx>KgN9~zbJQSscK$%0HRlbzAXL{g(M=AlSagQxR^8)$rw4O8 zUsMXZ}Uev0up8a>q&H^a1wokBN7#Mu-PgA z5(SCc#*lq~kSJ*g619&dHx@vmZggz66_6cZvqhqtJfJE8< zdJ_F<;UxOIj!0D4!Dg#~N}_S!SUOvI@2l;Y@%{PT^YWYR@r|W;wbDxK_dZd4V~PBk zD=HJfg?$zp=E=@IFy@-&p!TK0&(p#*(mu z%~kESwo!;RQBn|VqPCIbsz265T`AdQJ6IEC@6#9P)4n_ZCxx$xetf>0HBn&) zo2>#^6SXH%d}GNr3b7_i3Sv#vHj-TR$C{`sC7WyqYohFZ{hH{W!q-H9&(WHwu!GH3 z0d-9j-<_8g#dqgrJ@UzcL`heWXg=|k-6}{lyJqO2DgY8?Mf4>4ABB_XIgUtF*uiG2 z07w*TqP8()-ybAO8iGXaW66yLkf<9Sn{5Ro%Kq1r=u?H0sJNRMNEpiGoCRF_M2hNR%`NiRK?`W+Q+^&2&PmGzCDStd5>Ue+Cj|u^O3z zL_wnE2R=xYd;k(HKNe{QAknILqR#UGiL&?fB>G<P41PaB*bBxmza1{@KY} z6`c<74)AT=?w8IRx?=#Y-Y{O8Y&Ntwq&}J z7g)v7;483xoX+w5@wcyBaP%OZZ)fbW#g8o(XVe+n)DF(-Fgz!OWd9{J?3 zCQ78^=x zYp-ZuG>7)IYRChnUk-dE~3mUd4he`D$7`43Edv!}(kCcZuKor#CLxko0%{^-PGA)VIxzm@cj zrN{l!c|%Wx>H;-9Z){;WhhsAZUKjet%V$!*v2xOqKgtH;j@3gRk z%~pXEly5A7L}f)y-fUky-Ns|*rN*GFFq5+#j5qWV}VrUgi}7@Y@u z6p$$US5KlZHhf|!%bMtwscWL=`)ipGw|5Lb-2RIHt)}pnZB10z!Dg!fNYws5QIM!@ z6oN!aL6E3zB)RGj5_P3ylkI>++537D{msHj^a4jDD(qmhRRAOk619yX`~DzN(hwwS zA4_g5fJEKs*la5xQTD%{L`MoI(T$EsRM^30s{lw8Bx)N&_WePkq#;PuK9<~A0ExQM zvDsEYqU?V?iM9$S(M^s>RM^30s{lw8Bx)N&_WePkq#;PuK9<~A0ExQMvDsEYqU?V? ziOw&aME~3oi3&T|Y!v{Bf<$d&$i6>Flr#j1+Q*U`3m{Q9IyT!1NR<7rC(#9klju7g zk*KhP%~k=BC`i;chV1);L`g%CsC_KCu>cZvqhqtJfJE8Beb)#dmt$;+?|9TQVvTzdp3r8d>>|nE103-?$wT&VB{vc7(5F~0J zOKvQHMBV7vY%3s9_P?G)7aM-5$laUm-{Xixg&l0R3V=jGqP8()-ybAO8iGXaW66yL zkf<9Sn{5Ro%Kq1r=uw5QiC*N0M1>t}whDkmL87)XWZxeoN*aPh?PJM}1(2v49h+?h zB+CBRljwNiBzmzU5*2o^*(#ut=%tgw;>V`K-<`j6!t=KGzDI96UUL80bE$4+ugR)z zdY3Ip7*%_8!&I^iG<&Sv4vzC zKeH$R63wC(+QutTPZIswiukh$mv+YPZQa`vC7rQN?V#qI*82IKR;P7&>w3SI__N!p z+jceo;~sR_fAs6e?mtXD$Z~c5+SKpPi(%Fc?-*V;yi=i@Y~P(voh~X36;Mg^hMrHt zBzm^uCqvU2n=vbLu!2N03b?;{*mwI2D}4YGCHG_@(Y5|>B}g={um*|drEHVz){{g{ zJmj84*A~7e`f>lx)Q8(Uh97Q!WvP75*+^8_!Dg#~N}{wT>Um+B0g0xoe1F1fRC=%c zYQw(EZxol7L87E4NYrIi+1LV!+Ng)VqyR{iBSC+4{w;;CiC*qsRd=x_D(qmhRX`=t zE4o+bWfFZ~ugrF=^#1W{qMNm2Z_&08E1O2v-1jq8x^^+f+EZ$eUMz)Xa@^_lc9`9q5d*x~Q|Lf!0?UOf7-qh3L6O*5s z{Pg6_-P|pcV*l*qt%^>xCVIPHI&bI>rH%*LkxrZyC&UeONb`)<{oYe8#cgB}3UPiNTZyoEjA5yOR?p+jE!%;B`Y&bz42Uq81J!a2k zhLy|1Ijo6>)#&FKYoeqY)o;>?~n&|1cI?rM?GF8_^>FWHA zktddJQvTQAUMwa){%;fgrwC6hWmlS4*s}L5s|QGwl+Qw3?_le?(r4+dvP^FS6)_`TSQ9l7eqh^xMDZ4<@`D>BNc!_o(I-M*?amm z(bw!JQSK9;W_h#ym8oyG$NNO%6)vY#T@%H9qOu=M)~B4Zo(U3Vu^O3zM6o7Xe&B;d$p;|O@?()^01~Z=C+a*8kSKdkPoigo zL|LpxrXW#}X!(H;5+xsiM9YswngK|(DxRqGJV2uCJw1uO0VK*|H8KT>f<(&?e2^&l z03=#|EYb`>qE+!ko#z1(W$)=pbUjFv#cE^<5(SBtANU|q@&QP+{8*$JfJCd}i8{{% zB+A~?ljxH9+%`SM6HDp()U_5Q3KA_pc0r=#1CVI>u}CujiB`oEb)E-El)a}X(KljE zl*MXf3K9j0mLK>aQSt#uwES448GuBq;)y!X10>4c)060%K%y*GBU6<`KQZ;G$QR~6 z;g>{9ljIVugY6Sjv~!7E%cUaa8aWNd6?V84w+Z(P+ln4@51x;jMte{Rjha-;ZPa?2 zX?VtQE!48)e4s+K4WC)GrvDP1Ol}&^Yd}E0e%JPk+;Jfp;`@aG6hVDrCJ=l>@uJcK=>+y}HX8YgG+2b2atfT%LORqhe z+oq@PzOnSF7kOT%y>+b9en=sly^GT4AlC{z*lZP0zp(@ol@&F4vpq;u)+~DtBubir zM6<_EK0QF9`RLj#s~}PKx1L1bSU8FPog)$zcCgthppxjNy%m)3x698~{>NZDW_*8M zwUpOH@0y5j9hBa!Z6VsS^R!|4 zS;T#!>~sBnqQ8GEw@pv8JUf4__G_Q(hIb6F8{Vl9&W4fnImor*tD)Fz6;SUJ#hR$B zDAq(}J@Uz6O_X%SnrJ@pmE9`VM6+v#9;yOZ6JKKW?lj|7OLy=&=X6zPt<+Pf<)bG+B}OOQTDl> zL~q{z?ELOi#Lhj{)ZKle!m^9|MAaE0-;V+&B#I}N(v`)1qUrkRYeAxc0g@w14f;lNA7ovJ!d{eRJV!qOWkYCMxV;vsC~jif89-W5~WgNR%`LiQ31K8w(&& zH##=k3P_awuP4!S3MbJo|Aw12QDFz0tpXrXkf?18+4l#Dl7=8r`&e>g0VL{1$7Wjr ziL(FoB>D%1ljv6*k*KhP%~k=BC`i;chV1);L`g%CsC_KCu>cZvqhqtJfJE8!Ys)iIPTHNL2K|Tb%T<)n5ycXn(q)S6Bg%D663-(Yu#$+Z#?7JLl9C zZ*fu;8H~J2qWH#=>{pXF+v6KcvS!(H_{I`xhHorokDYva;2TT%=-Mo+_{I|ZTmOxv zorYg3!Z(&!)4@vBZ!CdCW&eUiWj*rAfka7HkZ3;fmE9^xG`nW#p(+3pWkvKP`W#4< z#cE^<61Bfi6lroqTi`y?{jvJ(3HM9(k$iKTlTJ+UP0 zV6#;~y-zfbMDfH@y2>EYbba)-AW_mN3yF#zcw$K(Tm7{FiT0-(dW97LiLx4c5)HmP z|Dn}l=bmbcCze!21|ts=wZA$K61DwZ0Ev=$a@8Ls>PpEb+X0EP_p^}bS5Fl? z_f%7msH(_dM?N{+CrY~FKGA&QE4x+PCz@R|^iUPReWI+0{yx#m zkKnfHDW08A*Qc(vxK9*oqUFaf)R39tFv;c_~qw`>o0up8a>Pd7{ z;Us#$BN7#Mu-Pi0k|?gu%ZlRaysSq)Ib5A5U2%0jpZLmd6<6o8Yla@G0=PQQis-M- z{~g}q#9}ovRjHU>y^ z&^%hk`P7+2Z%=%qr%a;FzUGLWte|B4S+pgw++=CAL zk1kpA`P31)p}V&@35)B7cMPu^-l@>dh7leOX;BKOBpUbZJif7%?hQOUpRSL-7SGO; zMp>Sn7d`NeC4Fr5*82Se|G-n zsa>J}6<|#?-PgEJG+iHkE!IRyBdm$)W2KlDSQ9Nq=fNJOo@=5%NLjgLf4N^1{qR0%TF33OAq&L#T@u7!`46BEhUYpT$E6$`0W$B+*4SgHBoUC)|P); zX&f4nEbvdZDDr$9o(<0+T80uR00p1`6o3NxDuA~*$@=0gPO={PlE$WCaB>OPPs--gV_i>Y?<4LzTsoG6-~Jn&qqz8J*b36O{(QKYCX*~ zJma_)YFTnVP$Ale&n#Nge~Hefu3n7H3ezk^TyY5>hg(q{pQnj^vYX{6jgh5?`?g{Z ze3oJBw|7fPBPtgqRO)$jB=;0ndQU8Me=k^FQBEV!Pa2V}vCSaQ*2A;m8AQua0tKJ| z6o3LyAYTRUnA+k0OD1o3L`vj(IVV~NJ?@yIo!bO8T*4{W$Z0SeVTUbq8__p>%(kK_ zx8nJzX|xBG(5OkZ+(xaZnTBT^*Fr5z&Ic+)+whr1Yx*zI+0@mGky&Ayg@`LI;p1>C zs^jxCu}^lh{G>6m^l;x+%z@7`Y<)+!lr*ApQ9`AjM@Mo`VTDLk9EG(N?S&2cNh7i~ zwi)EvdU!TGgJ>B_pa2wr0#E=7b$H+J~>>SCtY!MKA-r?ZWUMOvulPP zssgw=&x+`;&cCwotMeambf2iOgUwa}_3AuGR8|xuD(jI?4kSvtf<*I)uk2PqqS-Y= z4^;t>C@Z2T(f?ieTbyv8D0`<0DM%FGSSmjbL89aXkZAd_NHYM5R>c!_o(D*jy{9M9 zC5F%axO<-{NR+)(g%l(T5-mRtL89aXkZAd_NHYM5R>c!_o(D*jy{9M9T_8~wtC6Wn zqWIdU90n#==kc{qS+ndpeC?Ao!`D8u$4)*y@U_o;bZwSZeC?C{t^eBRzb@gncdZdS z=hPHm`&1PfjJ*1_&o~l2t@|Wy-sd}eE{(vS8e7%PZl2VQyG7eVSYYcLyEp9 zQ5LI_sY;@Fi<2A%CijWnKOy%iJGX13>=|SoA5SciVt8UHYvknB9#1UgrEHVz;)x~p zw*HBwlL~*I=qg9=6BTx_*(#tuu@pz5cNRigd?%-TpXgoMvG3Nl5E`-d;4aaP-Md6x z+$RbWwT(iMC@GkQL`4t!#?s^dZ@|2vClY=S#unOor-}VRqD}O=>vOIeiN5|-uFkMC zc5mz6max_t+td!Mp3_=CztifpE^l4$*AjnrTXoy6=6~FS4*QQTS@PMJ@6V(hxO79?7l^aC_-)kxHxwC+iCGW3n5FQ1k?Q>=+5Yg6Z%s*~tHD(_c_Y7G)qHDT&e z%d4Bmnke}OBwCdijgsiS%g2}9yZqkeG{c!Sd~|2+?#ix;#)ChP=8)*B zu}CujiB`oEb)H9aNc8(BANES&DUfKLZuM0|}3PeeC zX3hArnKd)LZ@&abgS;ks@fjDN5!D7IrV2ENL|KvkN%W;TtchNWHBoj< zQml!R53nX$ek{@qK%zp2ub=UCkf=pSf<#$7{ac(sqO4UjQn2?b$p&C_Q`IRpEO369`4(UIq+GAt^aek zlr*ApQ9`AjM@Mo`VTIn}B#y$`iuS?={iG4u8rux=Y&|?1oB~SngKmjNK1@ct@ z?-P~v#hdMAJ@Uz6O_X%SnrJ@pmE9`VM1^J#p79{oM6(Ca{vKEpWht;G%1R)OS3q48 z1&PW!fkb6J^2vcjNmr0)KJk^^Do8ZDX6T_RP&E>L%l}em*l*tbTb%G_`+j{f82#)? z^dF_Sd-ksie+7v@!$2?L#S=@}6~z-v@tWa@rFdOX8dU%!8r7tVCAa)W6=%hBsv3#% zyzEo=BzpHTX0yuj7AHKhWTt5qTG^ARtFr)!x>6D(8m}ZsG+q~!Mil^wMm0f6Rt2g? zqNig`6z>zw8pH*)2Z`d@`GP_%Wf)wYCvk9fJ|##BtpbS_D))d6Ry7j6`4m?|yI&K< z)p=LGsi&Q)lPJEils&GnCK|69)MBDJ0MQi#m(b?41i;-Dj znuUlfF5%;FE2`u3G_g;1v;3qnvh;A@R?LCVGHm_J-BQws%0&s4dLA9gJ%tr|i<3AC zYb)9d8}yS#WNU0Q$g}nEYXWwUX_4VyP6DsB5A;iT>9_@x&5q*vwR26U|Pdu5^okVhLC0 zv+D~Ijn@n$8m|jVqY6Yx6j$e?DxoA@f#zJD|Fh-Coi4QKpG0wWK0THOy;ddBuTI_5 zy|NcR@2^Hm!nNwL-1@6iv~w%DmPxWl_&D5(>i9fO?33LrKWU6C zJ>0hybKtWKTfe7UN*YnQD4|l%qa(SeutHbo#Zg#W(O%e~pEM#{W1B&qt%qmBGl-U< z1PVX_C;$bZK)woKO;pwwZ?>29$R~$q=Sf#QJD*Q{Ww(ko(d?R`hpIqx)LiM9EM;(JuPN>mjn@qKiN@=K(x?Ja62%isQI$}Vu0YjD^kekl!t_ZS)w+LT z3GWj%5`JJCRh>lf#8URq1Bu3K1`>_e1*K61q9lqZmZB=5Bwc~3k!bpCv(&02de`#1 zPZj-fbv}!VXd5U162&)`f@mn~2v_Gxd0d?@D+1MVL87W6$Y)oeIVAd@C;!fALLZQ5 z_9#IQp#Vq}BwGG&0!Wm601_=f7HI|`(W-c&&huyviB7Kk_^X7cK%#Yy*D~i`H4?pd zYGqFjx}^p8iDr)uT%C{C3|HslbwO!VfiQ_4c*0@+UrPDjCwf(PMJYNDl+;;)=8!0R zseck(e=OTbPgl(s^>6lnu3ou&sbJsfmggOEe9&uCdwsW!=UscaD4lLSHF9u^_E{%R z`|YP&tNdNmtsCAkyl!}B_pNs#PuqqOK0;cQ0`??|Z!F;(OSaL9HBnL!YofN1(`XMWp;41+xs6&+GY!u;u7z5boDWop zw&632*7RSZv#F~WBeTLZ3lUdb!pGrORLAFOVxR10`AK7B>EXVum;;|>*!sV8OGzUt z7bR5cd2}TA6jtcX_Tnh4t!OW7&`%nXt+CA@&(_1U;Tc5BPyz*@02F`%P#|9gs`ft7 zxU2IYm<(%hx6xPM`CFnJyIIONmrmbB>K(eb59Xk^nZ08-u~SLel1SXDcZS}T+5{*bwjQ1h&mdZc z5-0!#pa2wr0{JSCbann;yZ^T3IX2(P$+wc=El&NajjQwV%HisKye=q>DiFOopYL0o zqBB5A{S|1=)p_<+|5xWPS+f3>Y$YwleWGdV)VEH(I-f+M`JW+3)Ro2{(Rd|6qVc+* zG^zkdG^z^7imHT?bOowLqUp2EQmc~a_m^LWCzi4Zh_;FXAW^)20NmRglWuUdZp8KQsxB#QTmX3>A}+E$%J zu_l^5=0KwHnt?>)bwO!VfhdV$O*Eh$@V*QzASJ^Lq7Jh8+YHZ!d{ ziDFGOdt8D<<23_`#_NL8r~*+E#hPeTC6uHqP&E=wpKX>}l|*0sipx(G{re|TtchmP zfAHE?okX!Fnmy(~qVbx6MB{ZqX;gtIiDFGOsuD`l6{s4C-p4QNPM@|xtxBTYrGFB| znkZ}7%(QAGdhZnfvf$13{YE56G+sH7XuK{cjVcf((F0F7%>PR%UlKjl*>%(CxuB#h z1*%4(?sRZZqOU&IY<75J$xNrZwW=D4dY(+8xH_LbqCleYnt?>)bwO!VfiQ`F<|Tqe zadkeb5=zn)Xby=!dGgOs7h3ecCW@=`>9I8EwJM2zcj|kQ?|ObWQj(^M-1@syv~v%+ zmPxWl_&D5(>i9fO?33LrKWU6CJ>0hybKtWKTmN3Slr*ApQ9`Aj zM@Mo`VTHasFOI_6iuS?={iG4u8rux=Y&|?1oB~SngKmjNK1@cv(YG3>O$L_zW zY3GdhiK^;gO;lBc@>mm%*9E0f1+XR>)dVG36==?y=rPOhTqD%MnrPM-L3>g_T@$Su ziN-y#^nuB+_dudyHN-JUR8@rXAklbTP#RSrN}~DRCmNjrO6spbb4ZkZ)jx@jh3*r5 zOZQ4Y+mut>Co1bPD7iY4sH{CmRMrC|s_MackSHsGRHpz)RHqQ?^$JvtL~rVTkyAf! zeGB(bEaBOCz3PM9qUt1ytMl2T4{M_Fnt?>)bwO!VfhdXMiKVDYC`nhKY9yLI+bp#z ziN0a^zO|x%|7)UnVkwLMgV(m|BpP>hUiJdkL}fj&CaUVed5|b8fmEkJlti0(b^h4y zHym|pp*~)L=8!0#fBz)<&d}9)wicJ->U^9k^)Ca7zS9$X(l&eU?72yGTz>xqA5|m8 znrOTqK%()wpfsugNHnSmO0p^d5@p3YEpfD(U(v|Lq4ddPLYdgZS>3xwL87tZ)V>fT z3KA_ph<8R+0Es4RgBnu>K%%Ua3lhEe)xsJ`lrZHCF&6N?JXAin(TJsVV>xWkvKPimUUiRWnnNC`h#Y$Onm%4?v>j$0E%DBw7_u z)Oj8tQTCpmMD_K z5u}CujiB`oEb)E-El)a}X(My($t>D&a zDM&O;o%+^+L_wnEM=wZ}d;k(HKNe{QAknILqR#UGiL&?fB&xqU|6KQ;WsoRqI#?-4 z6eL=HM1w@h2O!b%W07V660M3S>O2pSD0|NZiT>nO!Wu}FH65%JBnlEOKcYdR^&D(=YN5#^DO58rXW#}X!&6c5+xsiM9YswngK|Zba)HCJ8uz^AW;@i zPoj9UJ!{p>R3*{xPepZzD~q<`61nyFr)ZC_qkGTiW zM@^$WsDwsMs^vCnJ<*oI?r)pa2wr0#Kj`1umVWQNrK%zBA!Ff^O$CdoJ1I8>Cltvv+C7 zzFXTu7-H)iyjm;u}CujiB`oEb)E-El)a}X z(Xr6iKELov?iWq5CK}ab5K2IzAkp&U7$izQ0Ew0#i!=j}XjME>=Xroc*?W2ty=2L& z@U>5ttAQy<6eL=H*n>pL2O!b%W07V660M3S>O2pSD0@#&qWY`zr{d~7%Q=84NE9Sm zeprJ<$p;|O@?()^01~Z=C+a*8kSKdkPofuwuFi9>xD;3C<5a1C8Auc)T7DFRM9Bvr z(eh)FW&jeciYMwk50EH(PfwzM1QKPj8kvGbL89dcK1h^&01_=f7HI|`(W-c&&hr3? zviI~Pdh-Hqo1S7#G+m#%)`CPqqUFafNR)g45-mR#X$BzCs(7N#^8ksm_w*#XXFj)0 zPeG#T`qZ@+BnlEOKXyT)kNR+*&C(*a#>O70p$W$fK8+zXp z48I*6-&jfy4ZPVtT_1fdNR%`JiRxpem=++>VsswtQ9z>XUjq_7hTEp6S=L0aJY3kC zZap<}aEta?Cr-D-zRKT4-NWr2!w=&tf$)1&M-0%MW~zDER;+T7E3j z3_zk)@kE{H0TN~J=}B}WNR-8DWU7+r50!OlA!G579c6$=N*k}gDHTsEGv*PArHqz|HYPaiM`6n2DOuO_fGx1*YaBv-=6r+#KRM!@c~0(KWJ$7P|)>h|6Zm8{N3{&_uI@H zdZODhsOO`98090R<_bLWs-W#pUvilLm(t9d@nth>X4X)7aP%U>XMO{FIBJRlm$vCl zH??P$57s$%#>DwNH1W_xXKYjNEJcYp?zB3s%Udt^|2`uA6y-N2gFDrku zy?^35zvO!pUs}1_zrS-+dz(MzA;$-H!}IaHTMs{BB7C3d2@~7=9-HTEp7X2zwfp;y z{o%3q9lJ;QH{;@$2G;aP!VWfD1wf)8QQH`@?++3s4MC#zvE;@ANYssv&9(v(W&hid z=+|>1(Rq$YRM^30s{lw8Bx)N&_WePkq#;PuK9<~A0ExQMvDsEYqU?Vg68&yYBzlM= z5*2o^*(v}M1&P|mkbQrUC}{{1wT~q?7C@qIbZoX2kSP1#hD2v_BGDH(B2i%no2>#W ziC!^D7Q^ooeP6H4cC7UNd?zR0N<#OEZq|;yMcYD*%hrRtL^pQt5_NH(=nY0QNI!d* zwPD}6w40x;>mmv!okLQ2Ft_cA?}EF2@}rZ*`)b$7_K{uwPBYx&eQZ*_Pc*3AK6&Hh zO+76>G5M*hrd4yG#9_YrFS}o;Tj{N0ILnWvxHiWyH?-%Z}phijz8i`_A~X z#mi{+?X6>-_Cv~jqI(y`Ob|u6DzM=M**uF zi5iDY&JD39nzO)-Fpo7+cC*cz==sY3rCmL-^g>5#qQVX~TLsiLQIM#tC`eS+BcB{d zlyn7&<`ZApt%5|eYla@G0w7UV#D+w#%IWI-uR9`9VF#P70xF5(>b$I|35gbe#aEuA zn&T_MYI$|@xH?b1!PWVy#3-)LSH%-`o(HbZv-jvaecILe_b%bK=_#(xr|VPKTJ`EY zzV<15(u73u-FaEF>^Z#Io;1Uo?X$;DK0WYe`+Rh5mQ}pjp8ZX0qN`Kx6TJX$wr8;# znW}4|AW=CCK%%l9`Q$*Nq$@}?pZLmd6(pKnGxSgu0Ex09dJ^3L5@oR(nSw;^-{OQd zQQKb~kSHk#619yaSN%bvu9R%D9grw{Ur(a%JBHh)r>nZ(G<&oEb9MLG`Ey#+E%n*? z^}X+&UE95bbGjA&#?rLke!8{F-^DoVhIb6F8{VlrJHH|E{VVBnLv8;GfJ8x}{YQ_h zo*+?D5+v#>qHOJeL~RvBf6oJnaun!E^m7ZiZF&k4P1mQcwIETDX!)@V5+xsiM9Ysw zngK|(DxRqGJV2uCJw1u8!qs^etC1;46eL=H;DbcT2O!b%W07V660M3S>O2pSD0@#& zqW=$9=UJ>qrYeczeWG$0m^`tBH`~jaWzXS#qNEw#Cz?HW^67#1iRPngv#jEMqU>)X z(J!SuJI^iE^m`NAa(bWW;f~%XD(qmhRX`iLzLYOhKX`(eeWyBuYL2iIyLWGy{-mRXkDWd4NROdwLRG3KC_p8kwpjiu*+6 zFfh3~kNZSr&9dikpD1aD`$V(HPCh+wpJ+b1Hp?pR6J>wf+$VZtPWOo}b9A4mu!GH3 z0g$NunkY!rHVQ$aq##JtHj-TR2Z_2;vdMNpqU?Pe68#KFlw};?6eJ1~EkC?LqT~aR zX!)^7GXRNJ#S?X&2S}8?XG5ZY4-#b=2RH?Zf<(&?Z;&YY03=#|EYb`>qE+!ko#z1( zW$)RL=$AmEEaL#DDv9DPPO`I2?i0mZoMg?i=kUZ5X@)13vd2z7J@CX*KDsu`DxO$k ze-nwWPI;f`&+%q^7ORmdNYs8!6eMc=k>sjBNYs^*O|}CPW$)`r^fUPG zJd4%HR3%Y7J1>WU$(kshSdul%p2O97(hOJUv&T+8J#ckCA6=Ve6<6ok-!@n0Z<}N* zl)iuBI{$k8_a?rya`#ft+tl9H_Pj%m587<<^TBrO;U`QyHF9u^_E{&MFtN?=v3bts zIe2zHP^tVQkf{BdC`i;cjzOZNAV}0Ul3eu%iMmp<$#y`Z?0p*&{Y%^@$}$dcs*)(~ z6P2B9vL=eF^Ri~ybGSNBn&Ikv_Sng%2d>WNqieIQ;_5v6TYq)_9eA@ni`B>!Bx=7V z3KF&b)d7i;f*?`bNOIL5Bkv0lr+PAqS<37pB}hR zG#_1?Wfk{{vcGNa6a5zM6J;3(I8{j$_le5RHX%`5otHJsp2M0bX@)h??6H$i53Gsi zqieIQVoj9&tzQ#;H`YX1tVX6FQCyubKkz}KkNR+*&C(+*p ziLzLYOhKX`(eeWyBuYL2iIyLWGy{-mRXkDWd4NROdwLT6KEAQUVl^^VN%Uu9B*U(e zK#r%Ug5&&-X3r(t{6Vl)-RwT)9+BwyXGe=-O4#~FFW4{i#BNWbvy?aQ#tdI*QP_8d z4&3)((fdS`&LOEh7hK5A;fFZFTG&H-L3%VcR9pGmUT7M(n=YNz{759W8s zOAqt^Qkq#azHDaA%o-{Wj;4q_mbU9#QZvA z;Wx?eTYSqgTiaXP7qo}`+O7NFF;7R+%ahOOHx1WBKiAdqHvi}Ja`9&SeT$=Swr8zB za<~|8TYE+OqB*o*H!a?4Pj9vtb!Uz~I(FvhJqqDGc%-PqR-^(?hrUf9#s!JW>YLmr zT0Gszb5wIoJ!*M%^B__34M?;qF$xl`iYMwk50EH(PfwyPkSL4Q$W$d!Jh3E)feDG? zi6vRH>^WSWC(UqmK6~us(*sxM^U<|gR&jNn{jI+`{||<1#;fKFn{W1iuI_&A^PJXn zOa0pC`feM~ySBR~I^7C??Q`01Kiyj8@50Wy;T^;4hIcA!q8k#gtBF3?@=!p%Iu8<+ zRR)R5dgPM>iIT1$(R|`7yH${AcFoX3RRAQ)is(u74Tfu?AW_zIuu_#o&+7f}Abf@Q zPVK##E;QjgIpzCA@6wKax3-0t9a|6X65ZInOVq`EqF58P^*>0I6aIJ zHrWnHl)bMf(f8-DCVGu_P4t2Gj^PK|U%;9uJF2u)B~h%2%C5kgsH{gmIglvn3KGpH zzOq{diDuUfJyZoiqO6FXL_1g$Ww9EWswBETW=-@N<$nzM2*sSMrarM|1^?EIfh zy>04Gds=Lmx?pPK)P>#LJEz3{?y2`EI?=Q97yG62hAvg=Sdq&U%DEnCoC2>oBPd%|9(7Zi6bZwR^ZC+)8(Fb>yp>4{Dt9~U$}pDk2_;m9dlLpjO1tMf4bxs$81@$ zWyxPJdD1`kExq&SqvKMZoj=8pL|@)*_bUJAaouO# zIdAdJz5UB4UG2BOddd0zF4TSP*nf?^cI-m`8T|0}cDxTGEJq>7-~KIm7_5oPdSFdd z)+3)B)^Z!}i8RaOElvmfZyUvyRRO%kDXU^=A5{QvabivMZ*lsch9rvjiL$1HmEtW< z_HVYw6HB(g6Ic@^1+gY-8%eJEV@=eRl1;XQHBt7yeogc|LlVWBC~G=csk$bLtMjsd zP1Zy~qOxY$b0AUD3?!O8cJk=~63s`~W?2P^vcL5t`VGVTXhEW^>0qTGQLKrUAJHID z@&QP+{8*$JfJCd}i8{{%B+A~?ljtu&qAXS;Q;;Y~wEVyaiINXMqUFaT%>X1?6;IT8 z9w1Tno}NTc!_|2ftC1;46eL=H;DbcT2O!b%W07V660M3S>O2pSD0@#&qK{xrl*MXf z3KF#^(Pu06#zy@+H>(!vAW`xNNVF=E2@WU$@@f$|CYHtM>SW!`$X~GdGaB?JFmuaS$TYSzAWVjX4tJUf5o;bQ#h)>9(~ zw`iYr;&e;wtNdNmJ>1?g{BZj#OT}@pZ5RoTaa4=~>Y6CNu_WtmvL=crmSoMc=Rl&Q z8AvpH?Bvq}B$|(|&9Vv-Wq<2Q^t(Bb=(SoBT{paAc-`<$F5!l*MXf3K9j0mLK>aQSt#uwES448GuBq z;)y!X10>4c)05~mM{wKp6yKds*Qc(vDvADVjLsx{pXk%d+I2qX%6D?g_lfS)-UWKL z(RA2)aF^)D?p>lT?h~CgX*7kx8ijpV*q~Me&0ef_PdbOB@}U3r#Cv=`bi_4B6z{8D zBil!I`8&;Uk2h=K-e9ubqoDR_?-}peUhQ+; zcy>M?U7KYU&(5>I_0P^9gJOA{fe|7$RLlVW+dDe8WQuXRQNL2PONL1D%pBzY(bOnj#6JOb_f<&`x zh90T{AW>FCPojST5@oR(nSw;|#8UZz4-zFGfJDoWMVbLfv?`vc^E^PJ>^(h+{sBmo z#cE^<5(SBtANU|q@&QP+{8*$JfJCd}i8{{%B+A~?ljxs=L|LpxrXW#}X!(H;5+xsi zM9YswngK|(DxRqGJV2uCJw1tj-tgIZ+$YMK4ps^h1&Nj)(I8Rs0Z6p`Sfm+%M62S7 zI?n?n%HGqH=q9X*vRI8wL82hh@&g|vNp4EHDE5C_bh;pa)?eZ?9<9E;dFOlwUtGYk$(vE$%wuLan*7JC?J>KHfb(O^r zkSK`<614~-r(Hp!PUUQZ&OH~q` zIh4lcRODt3{YrQ`$F|k- zARo0ta|-67wq=`?3J=7eThK2!GH)65$^R&AR(!U>ETXMhtDsH%QPdW0kSN+;1~)=!t}D1OG7Uz(I{O@yM%!Q~v2o(!TcjqWM8f96^Dw z0{pelP3@VK?_7p^)aAI-{VMoF6Aw+uU;7ka{_M0mt;<_4_y0bkl~8d`bo3?u$34So zes5xd@-^-EPh98Q{@%owR*J8EZt}m~sebJ&0; zJ+D1?q5qS%wqGK4&Znh8FVRZQaliP|pf%T18jQ>{pc!(jpdZ-}%6U9$!Q~76GmG1U z*76axmCMu|+g8ifys)K~CFez3`Xl-Y9q4DENL*i`61C4VR-7ffGWJ%Ql_1KZbB&ge zCB0of`=BN3F482sY4glhC;US@&m{1hIAe<6u+6}uRL^HhRz!~N1?NO<=!qp!ntWzz zAL@ypPyh-*0Vn_ks;L0(6P5jf`$T0u^2uRMlyt?KXg=|k-73~ZvulPPssdOOWkqb( zL~p^GD9bp&sk$Z#5|y0|5|#DHCkGNGT|uJx#8-B!Akplap@*sfNR$<^A<^4$pD4>X zz$r)+_lcGt-XKx(0Z6p`Sfm+%M62S7I?n?n%HFdf(RYAES;hfQRT8DU*n&Iw=pHrk z(?kUMF1+|Ya+|;^m&<8jLmY`Zs^?amXFEYTmr%;(;(ofgU2YxZlJCC@w+W8pj>2Qp z9e=@Dar^+N|#tp!|MIE=}l-hT5`)yG>o=tDO{e5W$^i$X)>)}%K zV;Vi}XE0BBBpx~1H|Py`Nt$-jl1iuSzoarD#!o6$OyKmjNK1)u;F$VY(#mmaL)fCHBv=(nIhd_;5MoM=I< zJnvxNp4fvHN%Q93qFx+_({PS$Q9aLw$K$><1Nte-$a=Wc{Fp{h`^ocFN8)_6Z_p!J zr!UFUJ4;(JvS_dCqpR1SL0XG^t*4D#r#kU_KqM-Tg5QcDM`a?;`L~eM;P;YR2fv|V z1p=GlQXE48C;$bZ02IhmfkzG{>zs<*BZofPE6p}?*oM9*x0ciJ$Xp}a3YUgk2dzX4 zZuQ8a@q5r(KBCrgnVMtUYI%^4TA?`wb5Yx}O-h9a;?FJU7aW~CjKaDi`zxLz%_ZMkNOc8cu&khJvUKHEks+Me^BaqbS(E2R)|E!QMjLIFV2X5 z(ui!0Qnn~^d>qw)`bW!A0tKJ|6o3LyAU_4>Ed7<_LlUyJS_=3rpcNoMT&5&$Hq2xG&9seu^@lZ@Ap_m_|?g$@5i5;(WAk&?8!> zFUit7OItCrXs_#|tJj}FT8n(Gr;S{vI`MlzBr1-A--;kdWg^P?w~*7|_mWx%zoB6T z0-NDd976#p00p1`6v$J7XS%B?p2w*e>zPBJ?UiO5Ic!7UlUvJacx0}TZG}t2t%Fvg z1-E+U(D*%QEgw;9xlGNmZM8heN3GDDg1M+|*(RmJ1M%k;^b3y6TLyjdKT4YwpKUOU zXlvFgXcK=FwZ-kCUf`NM(`WsN3%n=hpq`tkr52(s&p#;jJUW(p3M)jS;waotv=?VY zKWRj^Mk!kqIX;eRK>efTD1ib{017|>D3G55zuH@k43BWYV$VAyraaun{&;rpx!{#O zQ>(h^Xp0Y<;5_>=$}sAH26X83|IUM&B)DHb3#6^e!%Bq~t;Ncu#qIW2%4d z{oF5o+Iz-(wpaU{_e<}2Z)iwl4;T{rK|`~+nCDFq` zqKUy$_BvbQ#A;Ik5(SA?D_B9I)$&LFv&n-ElSuS)SQC{T+Mo7V6O}})dB&7PUj!0O z^fX8`Q5wSvkSIvhFjNX^1`;hu=*kS!9}T5XKZ!(d2Z>6;^`|{ZR1&e~8B-D+28kwm z8YG%1jbQ~y6eMaGDg`wIi54VuWrpdGhSH~>M56zStMig@{b>&pl|-z0#*{>V6C|4G zX^?25G=>!*QIM!%s1(!;BwCQrl^Lc#8cLsj5{cf2HBm{p{EpL86ACQcyFHXhA|(W|;nHD1G`#B>F9^iAuutr#(ni60znPQxZJ_B%0`H zkZ7Vbh7}-Dkf>p(6x0kPT9D9{8KyrPN}qlbi9UceQAxP|v!*QIM!%s1(!;BwCQrl^G@vHcTSX*RIZEv?8Shi597L6UH(n(M2H9#BczK zCQ4&i0TKm?8iqEpL86ACQcyFHXhA|(W|%zKFo{He8*8GH-}}=Z_lZg();wcMqKiSIiJk_DCQ4&i z0TKm?8iqJXdNfEh(bFK&L}?5w zK%yW~!%!)x8A!Asp(`^?e>9Xn{Uj3oE=W`ou0QQTqLPR;&zO?vu^`bzPlH4gr7^4k ziGoB8L#3c*Akl(^uFNp~(NOyIlSuSQyv0cpu0QQTqLPR;&zO?v1V}W|(;(4AX$&hs zq99SjP${SxNVFiKD>F=gG?YI5Bock|EAkjEeJ*Zm@x+o_Jz>q1M5jQaiNOLAO_av4 z0wf9&H4K%4nt?&K%$A^01{1<#;^h; z3KBI8m4cdqL<aCBOHlJ?;~gM67wnltf<&5>50pNHkFz!wQfnNYpS? z3Tg%tElB9f4AUPCrB6SJM1Kepm4xe0dyuFkV$CzABzhu9G||%_(L`wsD?p+kQNvIv zs2NDKAfYQWOn)?#KK&#T{r5BS7%hD+ZfkLM-mRXnW=f*dAkoBN0f{C`V^{$a1&JDl zNH%fD^g03Xpw3+VJuS;T?P_O3CqBMpTAW@L0VWn99(G{!m7_CStL83*f-Gs4BN%Vh$L=(dSB$_CVVFgGOBx)Ec1vLYS z79@0KhRK5slSuT&Q}P(CNGU<0MXKF|u}n$yWRPfLIDkYGr7^4kiGoB8L#3c*Akl(^ zuFNobuwfF3KE5W8(TbE3BwD1}O&H6RL|1@B6T<-{nkbE71xOSmY8Wa7H3NwjBy?ql z$%74(Nc6Ap?7Zan{q1L|+LKO$-*0XreTR6(CWNs9~rS)C?qAkkFMG zCJ#1DBGEs`nyBRW{M54PuqLOg^X%7;WM67wnltkBnL=!y?5>1rGumU6s5;Y8!f|`Lu3lh3A!}Lc( z>C;al(OIkW7%hD+ZfkL$s9QZ@&6Gq>2Z<&I3rI9k8p8^ZC`i;WR0?Va5-mvR$_$eS z8zzzH4_=+eXhlj15-n2gCX8iDqOS&tCWZq@G*KGE3XmvB)G$;EY6cQ5Na)H8lLs3n zk?28K6P5hlpZ2&qFNs+5j46qp2@*~8G)Od28p8^ZC`i;WR0?Va5-mvR$_&#V4W&;% zi9~P0cjqPH`qLgHDv4P0j46r!Z;)uBr$M5L(im2NL_wm4p;AyYkZ3_dS7w<0XefR9 zNhCT4Yod~H{b>&pl|-z0#*{>V8zh?OX^?25G=>!*QIM!%s1(!;BwCQrl^Lc#8cLsj z5{b4zqLOg^X%7;WM67wnltkBoL=!y?5>1rGumU6s5;Y8!f|`Lu3lh3A!}Lc(>C;al z(Iu<$7%hD+Zfo(xl3P7t&6Gr64-!ob7LaJ7G=>!*QIM!%s1(!;BwCQrl^G@vHcTSX z<3OU4-}}=ZYod~fHP4um=o>(yiJk_DCQ4&i0TKm?8iqk;Pa@F; zxKC6Pu0QQTqLPR;&zO?v?|?)TJq;2~l*X_EBnlEW43&bKfkX=ux-!G`M?>k;Pa@Hu zy&{j%(&yr~7Wav|)f3iCN%YMi(ZpZ@i6%;8SOF3Ri5iAVLCrv-1qof5Ve(+ZBobW% z5|#YkpY~W2l|-z0#*{?Q0f{Dh8YG%1jbQ~y6eMaGDg`wIi54VuWrpdGhSH~>M51H3 zIxh*=pY|Y8NyM6GOiA?jL86JC28kw0V^{$a1&JDlNp(6x0kPT9D9{8KyrPN}qlbiM|w9 z=Oy9#(;g%$iCFWDDT)3ONHo#YAkjo=3@bpQAW_3mDX1Apv>>4?GfaOpls^3=61@;> zqLOg^X%7;WM67wnltkYO5>50pNHkFz!wQfnNYpS?3Tg%tElB9f4AUPCrB6SJL_Z7? zm4xe0dyuFkV$CzABzhi5G||%_(L`wsD?p+kQNvIvs2NDKAfYQWOn)?#KK&#TJqcIm zCE@zh9waJ>So4f2iM|~qn&@eeXreTR6(CWNs9~rS)C?qAkkFMGrau}=pMDaFZpE6Y zBwT;mgG40}Yo0MB(epu~iJk_DCQ4&i0TKm?8iqqBMpTAW@L0VWk;Pa@IJVNFyL zu0QQTqLPR;&zO?vpMyjbJq;2~l*X_EBnlEW43&bKfkX=ux-!G`M?>k;Pa@IVL86jy z{b>&pl|-z0#*{?g1rkm4G)Od28p8^ZC`i;WR0?Va5-mvR$_&#V4W&;%iA28u5|xDO zPkWH4Bx21orX>0oAkjomgG3XhF{}WIfmIds=*J;@cD7nRvLHdt^fFk4`)m(&_0D&pW{1 zJ@0Y9bl%Vtp}Oz@|1cWP;n+-p*PRly`^-xY^Z!zsSu?(DX3fkRDi4nC^!FjP5Yx9a(rNFQ(M-0y7kn^!7bWnojC2cpKh)4_hpBB-n!u(!|R53 zDui?KO9N~ABVh-dtpX>UAX~U1hD1+O{3Q2qm1E-LU?mdW95Wwz#4XwuqCHy=ICNu| zLtT*Q4MsDNXN_D~f$IuU@cPM*PL}PfJ>JJAlSy>@9^Trn(eeU?V;~T~=@X!6+-ud&n~`t)!1)m+;p(euVT z{wOku%362EUv?C4SDe)G+jqv7E%tYxAUo}?W1aRx3gLi6tsRuvzy^gxf3|er@-v)-)VWv@u4HGIihS| z?eS(UOeWE%y=S~zLotMkjpW|rS_Ok9h)mUYH5Xr$ejSV#JFSpNO(DugHS}(JwCOYXEd=fC5aSVog-0qq?8`$qV^D z(UYaWQ;!*C5N6VNclPK0iX?4`ynkbQ|xH{keny4U17i*#*Q5U~k>YC^c zG53TPyC%A_cUrV2if89tc)98}@a#N!2+z(}B~r~v6wl6A#b?!<2cDg0pU_kE?w*|& zSLbb?oxi~+(TCeRh97Q!#cEAd*uiG2fcotGdljDu`&Y)4*^V3S&(9RSy>|tYNc8>M zvHvV|#WHG@OW1lIPb`&v#h1^qzUj-fcLTdPw|BMwqFuJHE^42&@Up~+eQ*29_WOIa z;j8o4w8frub^e9Edh>?*(u7gRApz_1nMIzcx=-=YMnL!>!*Od0bh4!`1n)e#IO=rd*xJeWJ4N zCRgXnrW<+2b<7oWbsqPL)-g89nX~ztC`hy%57l8*zB-TlMCt0hyZc1xi6y)HMBnS^ zK2c!@o2>%seWL4?{~ZYXZ;C0i9XHyaS1skM^S`Sd`}edh#8_-Sk2TS^7|kGh#wcM0 z{-6*A|8S}^RkpA8cz-;#mrpyA{>jwarv9|2#fGU1rZ!Gp*v-9jO6>2RdQV8F;EAP+ z{nB|umxk)XhOs6ZR>So8HK8@pg{kio{rhoKn`qZG1+MJA=g9MJUGln>zZkH$I9+wj zRoyd^-{SPsCBHak%aSci{(8xi{<&}Ioj)HPx7<|(oP4b39k*P(+5V?XuJ%Wf-zO?- zef5&_7T?_4zkJfwe*3GJobT^f`vm#gvHu!-?bwCNmDg-*qQVX~TLr$Ytcl`%qOzhU zYocYpqf(x69dpI3iQ;{tb&QR2=8X4=mZSS%jT&APmEUn$_wy|KeWKU;6ijb%>i>PB zm-z(g;(emR4mMi_)F+m%QvP=!?3ek(QXSqWimUUsQCJ*_mhCG%J8v5+#q`J3`C@b) z>`}rbD&M3yPq=@aB-3;uS&WeavF*ORiX zi3&T|Y!v{B+JASxY`U?Hf%5xgOJ&9-NVH7#2W4!KD0?!$w>b4rqT=mK zE=Uw_abhpqq$-L2Wz3rB)iGr@W5)O8J2}7Cdybl(o&S(_>>n6Ccg@!GxKH%ojAjsj z)+iMUysnUMGXG@ZlMBoC)t-fC9lbX(UVgst>4neqYM)*B+`?Zje7>6-S|s)Z79AA& zo=y2>Br#i8HA%ltWnmAz`w8x}pXkoLEnbd}%!szrw$dFYWJ_DS@%(O(<8ZS+xv zGP13S3Om?r6?j;=PZUoq$%>lXCtCJXF!GG+n8OoGCzjZI z^z4$mCzf91;E5%%mg(Y&C9H|Emu*t@i6y*GR94f3L~(Uq)+~Dt?-M1>@IKM(v6D{^ zyiYVAU7KYU?-ONzyMCXjxKH%+mhTgNpHHGL-X|*TV6#;~eV-_vSdtYrA*L*lZQReWLbHER}ulp=}J5 z-yiphk`Hj7X!)^7Gr)bKRq;ff=Yjh~*?X?<6TR8L6ZGgK?d}s5SJhqICyJ}{>}8u& zy-)Nk<$njlcA0N+!guFwyjz#P`0hM;3g4ZtO2nG4iQ>ESRqM$tZCpviFolm+?bjL!zPxNp6--{yd6Wy_}-}^+j z`vghv6a9hJTbzU)Y_8dGLFZnQtY@$=IoR7dX<{fKt#&-U6!Erv_j zdLHi+ojD>r5{|PgaNB71KG}ObIP%a)*}nSj$md7DpBS+}82RDIzx8T=H1d;?Cr9>l zb5D(keecN6Lp_7{iGIOXZ{EUcXZQ?oZv%`J9n^TlcoaS)4QSjnHqv?XC6me?0Qzkx!1?;n)6ne+?b|nzQ$b ziYJz?8ky_AgYx#)d;C$hzc^6z8zZvT?-_ah$UA!bvXkC3BK8mY`$v6(e8ceX55Hk} zi$WRMuFeZP*lZQJ=LFe8)xJBwPkZJ2Z21Hda(R;Ite86*5~hLTSOtn(6D`|USQCv6 zfXWq`e|LWRsLD+q6RL;;ye9hm;+f^m`0o6^#kU-@wY{}{L3?OPo@=7wyYth_cl!jn zZ?RYtJ>>Yn<(t~F)=6Lc{FG0SXO2EPcIN0kR#)eR9c;D=sB5AZDgQeV_RG9av<}~$ z|0u4{S%zV8BwDtwK%$nRQc!pEtMgyRZ+}5PsoyY6qRn}W(?9Khi_;eidW+LP_5Bv7 zzwrrj)#%}4t48m)B2i%no2>#WiEfJ_(f=D$W;<@QKd)NKU;F$k?bzji?eiU26^Xht zQ%P}eaVpza_}XWtz$mTpWov_>)345d3M3jxg(FFU@LQbZE5=f@8fMN~#8>C#uYG>S zCsF#^=U06a&F^cU;_5to?ei-!U;C7`PWsyC$9#hPn*X)WuZ^CfP)4?^^TG}`TLsj& zIN?4~Sy7WGmdd{OP@ZuebGMBaF>Bl>T7=4jF$V4v9SlE~dltA)l=XLgpXi_ZBzm>w zeWKz$pf2tc#rs6r%QmTcpXiHX{)dmN^XUqg{XBO1?CMZk+|~KAeTA#@b%;mLGru~I zXXoqT(K2SqSLgBUyz6f)2@?H4`^WxO_5Poo7X*3G=-)0lXw>f6d61}!-!1j({0+(- z6Jm@qNfd9kcj4u#+raxo$wPRbXjLNBoJ8?v`>Ob?dh@{hMA;{<-zO?aboEN{#L_vf zY5ysG`H3a@>il%;sgZ+Qw9h(m+HXJITIKJ8ARqSMZ2xfkD^^$ML89zsn^b+DD88{I zt7&p|9&fgnHOrm@iIQd@(d@C4PY;l2KDsu`DoB+5T~!iw@r@;rD0|r^RY??2EXit` zkZ9RY!N@bNV-8O&k=O9u`Km-Oo>;1iC+a*8Jh8;ybN$_Uu_j92o$vpNB|(rbo>&5j zvX^aA^@*jw?yXbb7+SBsDRdkj>k|p(;Wp}V*sfg1HF6prn``8Lf9KEQ=GdA1{nA^P ze!f?;!%ufC-LdqaLi;~275m-YUA7tIZd@w%ARl+6tM|O9714)E)jBSvk;wLqOK=ys9~ocU-%mXYwx^Z{c^W&&<47p*?U%3)Pn>i?_nxH}PyYVI8$)+5y{r44 z?r;hB7^L*C{eQ2qL4m!g~8=T)(eC<(HU zJ?%Z?J==5ObKd{Y-n+m_Ru%W-cUg$wxH3aFIJ>hjJ3Bk>!piJ!PcMW=6af|Aq9OSc z41a(AjQ=Dn5)A$j3Gz@Ns37==5;5^bf~X*WdH9S;KoS!a0f870m4~8+m%Ic-ey6&+ zx=x+P?bF@&cHf?^dp_OgRMofY)cKyhnbT?EI}=KTi}^kpEzwC;AVok8@T%ojp%fSE5Dy&fK%}x)PPFrW_L;^y)@t zJdBdAL~+*iI?<}^y}A;u%1jJ%9=Z~x*(>@wQGT+0_bbs)7qk+EIJ))9fV&daw|z=R zQ&ysbeuJdUco?Prot+=_TD!E75<`^K+84j-~#sL%<*?z!Cjqjb^B*6nxE%Px8u>bdoez`vO6tF2LHfL5aLj-^XBEG8zl zuKDh6-`x#Hv~|tfXLw}aTYJfdkIZ~z=Gd7VOI?Y6*syt8;~h)i3#>#X*XPX~FmuZG zSkB$&ycsBGZhz+X7nzml+L;Tc*Ur4Dr|U!^j&8j&;I2gVn5bklWhJ^={}xHoI+psk z5*_qh=}NTYons&l>BmHm*I)lYW@s2XwO69@y+6Z{eO``R*Zk+I|1|G5a#x}UwT_9t zpwyKpTqlYv(SrgjQOR{|CHncsG0_XAPn&+iIo8(MF;R%4TdxebE73E|^R?XVrOrIL z_F`l@YH1EXG&VdYdS)OW+21*B5rC)Yd_?rP#u3pXj*0$#QU)?>m23vi?F)k+-T1MM zgPyBAF8%_ttgCnz8?BbNtkLIsI|(nTl-;n=fy??ej0zZ8g2fw|z>kx31gk z*|eRp_f~`7x^BPq`>j9KtRT0}d}PhmnVX#zPG>7oh@)Gt47{~2BitW2(>%zt^S_yw z`T5e|&(3cXSp)dFswT`p|Bi_cdam@CXm}5(nl}CH{65dFTJD-pRT!XSqED?Km9z7| zSx;x@mzZ<+c%Kr?M$vaHeaf7j-{<-8-ud6GKhInpAXlPkXXoKM(O0kj(VADU{#H*b zQN3fSh~JxgOmyeKxu(ONc`Bk`KL#DOr2jU(r~z3O$Vd7PekH0;wwE)~xzxXv=%D9H zSE8No9fR;lKRd5awjad&3`d`|5{2tTc<+4g*NN&e(IS2^?n+ee zotLbptV9QWKeo(x7^VKLLjv2dcH&I*C$rGp zyFGJ`K7+mny<>WgO{3=wZfNcmDRaqjx^3NPxW@wh;$C~5`3<2Ca)5o>-oOe4e|I!O z)`A|2?}_i7$KMF~*^!|g(=!hHW?5UxfHI&ACdTpV{Vlkkvc(=q|VFd2Mao*}Qelr>#-Jvqj-L(f9l=wkUJFV)XC> zNS1YX+#i0x#pd6(x0|PfX4#1g91)*ydUhkLyUqQCvFk*^;}4#5{&W7|Ie+i`8~IXe zL>yOJWis%%HG|NPu0$onLYOL?^uehM7v`{SEBu#@v{4JSE6th9L{pv=k(mOiSeBHoH=0l{3v_a zaajv3vd9|GO6u8p$yL5Y=cn^g-TgylWk4BF29$wOWZ-7! zI5lwa{eZ4`Zo+5hZ}Iy6fus4MBZo7i=w&?F-hBo{I0Mzj8Mq^94&(l5mb*6pbn~F+ z>YnUpn;(d#`-{!@Y`(9_#RHok-2Cw7M;p>(o1r|h`ALT-JUjoC(JouEq!tdVPqq*9 zlCRzKm27`;?%DZsRxnaq%7D$le>V4x-&y(X=PyjzmSJyiUGw#oUtbBMkWaQ>zH(ve znibcq_|A%*jrE$=Zv$Juh@748oQ)NR&0ib<&l6p~^4q2t`8-j{^|x2NXT=_qST5cB z+bf{#HM!R$^!nSAFPStS=ik-No^0QF_Uhp?aJlnj`#S>94!tX&^CR`Dp|#?H%|Q4( z(Vw>M`|zZWDS8qPk-OLrQ~vL!!>yaPg4qEWhY40?7xha5E}GQel&FDl{Oe_|4)!0_z+ z&GR?U%atfxqq%j})>Wsk`aSdS(bmTMKp_EaT}gl33&`o?^H(bF*5+2(ia^Yq?%xaa+v=iKp}Yo2qDv&!gfC93z%OTN34>bermPB105>2;zpW{TA7 zN)*}Dm1vQBRWGr0CE5#n>Wd8MN|g45;#Z=l^}G_jw4jwJ#L=x+2HchC?AXj$md%XK zns3}@8*R|K8)L`<8b)%9?48#$jeNk5qOk^}*;&|mXBlKpR;W=9f5$T82ra|@HtkqWS58zqe@+MR@$CFW zARpQyJ1az zBm;~6m?(_aKRb_a`wTtBX`e!`QNSnL_Y$(_HuMv1mG!p8P|#aWl{z*Yn5yU z-r5%ikKJ(GhC$EO@f%LqaAI_{CvSM?hEto?(>I*4;XND9Y)J3h0OgzwAFw=mCHf(w zUAE-Imd)l?SE4o>sqIuxxfAEGMVTJmz^pBlh2P9=GAqdQ=Z-P4UuXU|PMe(%=#H7YeC@}Y<>z}J zWAMk!9c9YZW+i&bOl{32GduUR5`{Rr^~%7#&MNbjyZaHhb1*)l2o0?jf6&~ga3%Vh zKt8g!A6xsNwAd0wFJmQoXxkj^OtkGY@P~b2@Mp8Xm>u+7-7|aG?hi!w*av4Ho_(}w zeQfrL*(Yb8YDi1gLRq?YyVk$|<|+8*?om8Df4E_9*^(VBo6WGUL~S-w+rNGVBlB0H zUysfvN6^-2GO)h6MmufoV}-842G8bUt$%F}TYFloon_E|@7njSeW;;*Z_9$MpA>fQ zJTUOhwfCAkjZRy8mg!}M^((aV0o++@U%U3USuB6D_gMyi*4pv8@wsoA73B2H#G2`u z_xH3Cg*dwP%D}D8DpSwSOGfpMCCNuQlAfJMUiIvJIr~@VQPa=PU*3A#Oy|9*$Kqx{ z&(72Q;yaeAdUk%#o>roIcAjRrm)bo$e^21()YF{RYA^l8ed(y>ea#H;nCJt6d}NGE zXQUjKD0&&kME^M{gK%D|1qPmJ{g1XhMjqV#;oS#4SC8)g*zQ+F_m`_@{(a^@n$~M( zzBBXPnd=+U_hz8nH1l7UCm$1iqH#?0R?B8{sK-QYHd5PHCm$2lm1rubqlbI-G>-Wt z(+?GTG;r`t-rD*X`_|c)G)DFPWY*vA1vK zgE>&YP|r>8IQ`{av3z>(IfI{@-pQ1!%(2WhGh=Jk%zVG6r#L|z-Fjufth=$3%&dGLDI!HgmUGL3V$~(pSt167N{* z?U*RU(XCeo++(6k0{5!-_ul#AoBzAPW1`yy@{wcKd*>w|!zlG1o&+>?)qj+x)cvL!n%35V5VqG4Y0wdpI- zop;HPq}I`8VDYX*_ir78+i=2&n$_p)*?F3%fz^-eF;RW8{lNA< z>bO5EQGJRN@vU_`26QFbjv=+TXJGNJMDZO_N0_NmVkEq<@mm1yytj$TAviPD^xady7A z=ZSv1r|U%ZjwPDqUTR&5!n;0Ch*GF4(I_(^z@4h6P`VQBi9U61FrX_@ z+7ZfFiS~L-^c$^XqP?v|A&zdnGT^R6^*T|>sIEjMALU5>S&8a(qUFrqVvMRQ(Zx8c z{T|ceU5QrVI?>a5yiWA%W(8Tqb)pbQw_X|0>qPaKXs`QF@BaN+iRyKtz0cIBM9`J! zsLXVk<6OKe(JEXgTHM+B-tL{(v-3s#hTLPKpIhxm-NCu5$ww5Sp(lQR-n=^oHoSNK z($x(i=j)42d=A8zD0&&s6a9Wt2Ko7ow)OJW{TTm^Q#VfydaiDn`qJtjM)#K=Pu($f zSJV2_sh>^#V(OlTbl((|2c{mhJo(=FuNd~0EqTnc*=*{)^EMl)?NeUP$ozLK?H%Er z{k1i!4E(gYZ`?5TM+Yu04&Kn(>)$YSL#v%-(7t=>?x_nK+Phm8Y)uq;@BCR)V`gP? z!_>*9mrt!=e(iifd-BvDO}(vI_S^epgFkudgQk4X9Lqdp@{N;+O#Zs3>qH@rZoM+_ zt-6e$PqvqQq@0}}^wZL1#=|J-lkIWV^vU*B*?aZL_EnjQVa`LJY)`XS#*^*$@A1j@ za4fTkC)?{WQJUpmYJIZ3o}KSy|0%{-&(0%{ddE^R`%~{x($CJnwDoT7-h0&ui;Dq0 zJ5Tdj#XFY%&8$T6$@ab7u>^5+>y-ib?EIf?@FOnm>)H7un;GEQ`J)2)$PABeivWC? zXXpPiDFd0cN;U&;?F)m)Za8kkpy%rN4JT|kF*@3lH@tJhsZHzY8_wA9o(*R87zz@N;ac>dhk&liTF z7jACt^*66Qzd1@66ts_?J9_TKIc(8Dk8WVr7RtiM=Qf!q(w{$fjEVia)|2)z2kIB< zW9BYj`>|&E`QFDE{4sM!nF7Z$FPW*WxnyQ%eX_kx*g)F%I;%{5o~WFLl(X}Les7P= zco-!;CW^DB$3&~L_v$gxs?5YN=b^_$Y4*xECR*GbOT8Tv)wA<7%e~a@F;RVrlVnp@ zqLPntr2ec#Z(jfX^@ILjL;Bl3ubKJI%y(z5Z@ftlpKO2A%zrf`oC7{4s&D%&ey>bl ziR#-vi)VkaL|nWp(e9q&^jM*HEOqh}r!Vh{<=Uz3&OX(UmaK)cbnSMnb7EP>E78LZ zd&`#WVA*Vj_3XUOMr!-luV7^U+4-+WXOkmnYcv^H-#l-9+S^*y0bdUY(nRm~;w`o0V z=IojG&wQ{U{ml%NkIek7<;g42oeX=+mi(P%vl-TvsLe)dyPkZVs2&qd<#hCLZ(5CG z{@m(+KX7r4eq(cFS+;St{p3ezAG!L-)kih7N48Mdy13Al=$BUifmuO*ZuOf@FSqTQ zwKh8+P`-KfAFlrCG?rWTezU>9dG#TteA^t$ykqJ^tL~WkYELUsh@)Gt4BYOlGW9x9 z$*7*4mwc2X_2=xoKH0vU*;|ZJ_3Zp&oYj7hY4M(&ufmhkwlIzZ;{=9eoYcu~eGw8WGWoCT#s^}iu-FxTp z-uYW2QT5*W&iBVGOMmaY-aFq7zoX%^c;7p}ay8B1%GEEKrgoM=`;6%`rfbvKA`8BE z{qP-sz)$2rQmV2q)W1{*LC&^~YO7xx5MWv1z(Cb8zGJV@;$Gc8R4tkwvNyLs+ zSiMe^rn}m2`|Ry0PP!7MS?;BFuM^d?^ODV!mFS?)_{xljQPQ*XIBR-#zAAgKo}I7C zObl}#dUl>>uZ*+v`}cTu9#)V=oSoN|D9v&&wR?8neLn%j-l4D8iGF?x$Aj-!x^y*4 z@$WA-@o@xL%DhhW`$-w(=QrBc%UAbf{5MYBJT>UKx@GE1tA7~XUw%Aw$JAX->rbbC zHua0Cdm7SxQ&1k5deHLZcPxFyu(xcp!_*C}c9uc=?y0+{E^KJ;ZdtH3QRq9C-aiFzf4pJpWYf#1 zR`5P%=L6c4r~YW_ZOyXZ-X|OU$x|OR1y+!UOuljQkjY=0w}#r=JNLAuc5PjWwqq#8 z{;j%1T{QlM@htno_(kR$w~HEW(7GFA$Raf%A3~qIi9$T~bH{-3D4OgWvDAy}sj@Pl3@8K2fHKg325uYwkvXRFqw(9! zH*U8z+Msne#*js7LOz5{t$)NZ2OsUOy8y&Wk4BF29yD1pd1Fq1J{HuU0+ULGAdokNf*@Mb)q{3@{xXrOEDr* z^fI0&s`t)ENKaPx=id3BWxvP9{JGAL_q9In= z>C*3=*XN10<8pNEqkQlD+xE*cykj2bA6thPdY$Ou2YlB&2lVYT=b0xdKXZZivbP)A z-p-pjVCIzVv7Eclc?N&p%$eJtxjkTBHNV5gSIzI;)AK~_zO>yf1CLuX2r+aeDw#~V zcYe^T8=3JiO1cuoS<{thRrX$8iB@GMhB=Q>UWsmf9<4uN26ZJm%=>Xaa@UopzIVPK z`&oV;x)McxbS0XX<(24WU5PH<9lL~)xhv5}#~(9Sojo@GsQJe2 z(MB7z?#39hNKMFxkg4@!jeG!2(O82q>^|+hvkWo^D}PWE`i|v;5n|Rs>g~*I4xsIF z)c-tbwz}=v9+4d*B`)m4xF4gZ&6FLhoHlTe1^R_d;G0TueF77Bb{<;H3rnbz{bL@u zhsd^{8OQW(s!;}%0cAiLPzK6jK+n!gUiIv}a4QuT_U=Rr?DVgRFqf6;ar8*BYt!xm`WjWJ}Anvf46Q|lcX`2d=tu?AztnZ<_;XyBra&e>Kfkw>{b;vSXygg?$+JWAyCr90K=PpkK%Y zzNy$_>8%Y+;7Sx)%nM7Xll@~JxQEELpAEu!u8i`0aC2$@>%(#QwU6pb|)!|v10JIkicD98#m%Hi)=J{%#27>piAL4DIG zL58-=5#jn*(`xY~TJ93h4nj2=fpebXpGhPKNQ;rdt8Y<1hCJt8|sN?h27aX&`S{>~wAj|KXL zOyHY}J(k|uzyz*Dp~bwgggV(j=7D>NZ2Q@8Oy8y&Wk4BF29yD1pd1G7Tz31iEW3T# zo#q=i(vX~2lNZ(y$=?X$TTnxGia}AJCLOiFgYeL{^9C6=8*!%@85OektG4s#rcY$z z_Qnjw{1F3l)@yIE9@6wQYk6qSk>{51vFuag;^-L(^G$KfuVH?$K)*0X_@)Bw;&Q;1 zC`9C_ETK;Jk9h!|3bp;LIHqq?jWVDNCl=h`fneRM{;SR>&ch3WQmj#c=1Z~)xni$`*oCzNz$Rs z4Dwc@hgo@(Uv+9)v4vJ0>kL*%6IAnG3e$w_tvCC7REXT8EK= z=Z?hR;9;DZ>gT-Is+a7Nn&sTeRAfG`s5r8h`bhi=;w#bDHUEB74eY$W^*3E|Wn-iz zF2#MwB5S*EvdHM5jagn-BMYKH4i_1dB}B6vYEd5{8|wThZa(Zw`H?5oudBV@6vpJY z(vkUbinZot44Rvy6SStSx0g8Bhk4 z0cBut4D4v0O$Zy+Zo6R=Up7)0vWctdhRWbNSRBHQ&bCjU1kd9 z50Z=x)|IAY*|NsIiB`~(AGV|?{I+l<3h|&98I>f|Q#7}4Kv6H`p|vug3@8J`$iTL* z8pf`{1aj zkA(^&Wec%V=SmdY)#uCIdF97MYn+7?@6Ir%nmG=aPU84n_!^8C({pceM9N%poT6IL zD=8BCbTC#eQzy7>}Y+9ySVWwybSsKp9X5lmTU6a17A9 zZK#G!?Dy69nb}Bb&G(a7d^Zs2C?3}GJuje>8peaKYXco_92MR<;}^oYH6mTDlqt5< zwv)Q^Y8MskaTZd%JHybsgZ#RaI6fD?2IIx_+*=%xGM5~us221J>`?yxuY$OPnFBN; zSqpk7(i0-$N)%e`=jM&^C>rHqqrhg%+ExaX0cAiLPzDCaz-;qx64j8&?AT1sUn(0Z z^Un8^Sm*^cvX(uAO={Q=yj>gj!BJ<&LWPmCg;=R`C5r9p^X2Zm@?)Yk&O(ZJXP6nY zZ-h%HaeOX(4aSS?Tf%Pxu;9(5843#^=JWzS%f8ukNk*T#Kt)Un{kNZCTL)VUJH zcJ=vkcV781(HdtV#k(`i4rbp7mrmmNT=*J{7t?cZaYV{oa-5=C&?_)R`TM^L;t%#; z*bvED&_j`)5D|}wLW}*}yfGd{qdaUB*lbzb%78MU3@8K2z~C6TWGC#KYLG5&>cUys zNQubzlh`byII_NYCp!w*Y#Cw@-i;?^LS3>`xJWchh-Nv|qSzr@T-TjfD4rY1WhmrR zEgg(Njv_V&i3*J(j!2oyP{iJJ7n?nf_hQJw9UE8?0a(hPwXn}a@jY=R3h`_|`i)>e z*ds;5nj(TkZGV(*o<2e~%78MU3@8K2K+z05Yh5hjRMYaUrx9Y8bst_z?OyAdb+hZ{ z)_t}aZ{51xOqp4?A&|{$oURTx@?}f+@Q~kFx-~m8J1YAZ6Z0>#V-4z9Q;xIB@fnm8 z8pR3P60cl(Wx^Q0nSg19ETHlIKKEBZ${M0z2JSKY0Io#GmSouj1KlGYo_u(+;NbuTXmOt>N_dF&&S<8DI$>kD$Xr-LG|QnD#SYm}=SKk_I}`RLEqOwH z!p4(KVN8B29ho1eSZiKZK7%o|k94z)Bm7x#eanzfGJ71)9^~MT4XlU&EalHy_yt1o zJ#i%p@z~ED1I2UoEMwm+YfBkW29$weWI(SI9j;l6Unfd;gisCRvfKVR^#-NW$arY<~28yQBVX(^7Z=d3(1E2)v0#(UzZyN!iP%oDLOE9xnBKFYOr=jBEL z`7fOLaTyBvR7>Y`5gUV#bVm|Lq|Buot#^6O>~C|XU?j+a+7uhCi1@|kx73bl&gKJ~ zAKd)#=0`UJ3hhs9ezGBvADx~5KgI*%vfgf?p89b61|;@v`)FGkPzIEN#lgT`lXp$- z(JYtleV4hu=dQ`UOo7p%)X6x%GWnCqPg&Opb>geobO!Eio>8Y7Jns*jWlxD1Iy-O2 zl`+U7YrAi>xM$}HFQd5`d5~w5Y+@_s-vM3S;tH z>B#&z#ai>S@)?YweWaUZ9O2J`>sy9=zuDt>_8et?}=yUAs+j= zW1x7ho@MNtWo;<~%78L3j11^8(czl4_%YF=r;eJ+AIs6ke)JT76Pk1+cUoga^nx~Q zRHKC7c7D(&Wg@X?vF(_(txs*+y@%VfZ@`d->abt8+D@W&g6%dR_3J+a@H@bjD75%j z!4m3VFF(pDfTu!je*_%Ux2Z-MPzIC%Wk4Ayhk;M6{KU%q$e%LyPp#x{LX(c=dWAQID_RCiCH{nP} za;G&$L@#K=Mm0+KZRZDlQYI3M7Tb(C`Zm=l1ImChpbRJj|Nv$plAZM*kyTlNhY(oh}t>sH%I)K0M7 z=A(Z7X8?W&xDtgH|0-BQ9qi>-I0f)jsO^t{WBNALCd?p$_))w>t&!RH*HbfMfbL)hGkXfHI&ACJY&&Lc>r>ly@8P!W8!)7y zI_%f2wv(uxV7tvn{rb-U{0?v>3N8Lsu!K6;%MWx4;HgmC9|6boZK_cQlmTTx8Bhkw zVc?xVU(d5lvFKrr2RC zX#FVQV`sv?q(u$JerWy?Qy7!qN=N3$Db|{omCs-d?IYbR;|PBiT;DR}N6a3_vj;i2 zV*@K9089C^7Jh+Hd{117LOk|!$3XF1JEzSG9LE z&y2@L^jF6IS2g}79O+2zw8n_&1#Q@C6HUGFNjLC1MBlF`FYt75bXE28Lk#3f8gg*09gB;wk zffW&erTke7zd$IyC$2;x9{agtpm?sHW$c?}Z7BoFfHE+Q4Cpb@;hMGhF;N`HNwrg& zMRd0$yp6{9efKJ&l+oNt~Uxv{XSlsm8_4=M=*@T5SuA z60~R|M0o7BA0ll{S?%RxT+XO*yM2y0vRGbnPhwO|&j{FKkulN%x704brrClTGr`$F z$?yNnMsC2IZ_CpF9#^7yD77gA%78Mk_!-!D@_-KC!8zA_LQk*U6cwk}JciAG*U7EV zkLUcp=HG1l{nY2wY{~VFz3)2pjqntY;>cR|Og8d?I;6Ah*d`Rdd))u_J;*QqMsM<= z*d(Xb-Fby#f52I1NzOtZRnz%g#KsWQ^N9RdWW!k}sb6*4d*?Bm57jJQ0gS3zg@B4%8#z-#6z*&FfiLZGDCHi&5X??AFW|8=sVpH(Bvy?jzKLq zAHqWnj)D?@6KZxWTo@@^fR-9xYLD=J%GJ!8IU8(NG+TM&Fs`S^qc|A zA?!6c^ER@KHuQuA`=#D(U94Zs5v>#jB=Y4kAqH2XpoLyg=YG3Bu3cqiKp9X5lmTU+ zN(|87Gpeh&5|w;$rl6M+BT0{|5&xT!vK9Xe&p3+BnnAZ{B?>E;!Q_(CZ$DR}zyi*C z*?iCn5?7VBSUXDCUMI6H4?se(lJpoH!a!8=)83yczUc+U%dyO_|(5E-%*t%Gc+aDFK{ z;>cq8g!UZ3#`Ja^$OAs4i{H&dh$3s6EvPXQ@l%Pc$A;M#~{Sawu%4&b9#^rLW-9ASgSu8KPCow9fXGE64=;1>;;Fj9u z*ECyDV2*7Gt)s9`L#n4RfPfWk4AiEe7_TJh;OWw!4j-}6R!i=c~ z>9b8;5o59A%6MdvwcR&a!hTZgO62>QP2u9=Nk%kD;hJKHt)TUzfRCLC`;rzl82dAu zK5GhN@>}W1{5Zv0^Rn_8jG=v`n`Io~&w}e)hWuHx$MNhz4(`~%iU`0`{;Y*xAQayd zSE3M){oFB7JXg;$_RX@klmTTx8Bhk4fx$8GmB^8queJ35)M_nR8qRZRbNlBOGK}j^ z`x?jXa3lY#*V9!-vo$+1JF1C3*3`$Ea-3C;&!C*pC?{s&a^=!1BcpWEP*EA^D+BkK z{SsHAV@tB^fi`>T6HA{ozljQ66|La{2*zYy_9kAb(`}e2EqI)^(zy}Vzsqyd1 zPxd~x@xQ0RW2nD+4t(CaPdN4mCb!u$Y_YWvr^t=|6(}<1@Wr~M`R^*#FoG`@_;0NpSF%GE zS=)V+CG01)u0+0=o>Ik;m3D-;FE1$s_+DE!s#u5H3xV~k` zA2oX%&mQF9jt#7c04(LtTKEM*@jY=R3h~&_9RtO4^({PzIC%Wk4AiGz0g~ z-`hGrbZ?`5e@o8GjlBSMbxq3XnHI_Kh5WwNIAcbV#MyaEOBJO1=efA~0Ly5#Eig*Z zqKy#YvDYY1;P)$QUZL=KwaQx8uO*;X^vygGnm8W*%@(X=btZd&fNU zxbS^I1Ae#?4ck?#3@8K2z-Td`_s$R3e7C!Io}ctc&&-ZL1JNEiJXw>Uu4zYMR9Ym) zQ;YmCK1pQ7I^3hg3{IkFN`{{DiO-pIEig*Z(UaLJLc1{_z8$IvJ7vUKlBRuhKq882 z_TjyVb#EJ@S8M?l6bn91IoZ? zG4Oj+FkW4W4$rLbVP>q|O0-@(xb=7O;Kq9Lww9bXQt+B>AzvL_iFW!Im-;)j8FzD| z4o5l6%A5SEQ+K!8054qQ@k+1Vm=3NT+VRS!UCgkZ*P*gSvlaG2E%Wi();>dc-v3C0 zbxd!gVD#`I-NAj`E3ofF8#!Pm@C{l!C(6w{1*o|{hxcg4xh-9Zx{Rp2I2d?t^I2Al zV>CL7eloDvs+a7N+TXLLQ<3?&qTLc+h*m2c)&zIwt((>A5>+kqv?GDqvt0haM zl)#HuqI1EO=<=jUGA>B-O~1UA=$=;IeuP15me)ERJK*caYk%{hZ(hH}$1_=*AMi?) zW-Fc}j0{#&upQ*>6TJT+g1%#VvO^7{hY#r{`?^f&@7>Qp&yOk)MStMSt zm2$R~&g7Hl&#fq=gLAUn?xaP2_cZ)Tk`e5@rKJiIpPToyAJ((;_L%T2G-=v14#*ga z_dkh<>21_7o}JI*!X6v9fjeD^G9TJf29$x(WnfFe&zB!vCi^w=U2|vbzUbP3^3!)L z5ffS~1A}9r+V5D(GJ40-t_Kc|qh5N}cP#b7p86^SRcGKWW+n82J>V02$I{VB?^uF3 zMQ-|zC1CSe>(V)mz3nqS0wZSv{i5!HHfv*e+h=&|@}=Tl3UY-^6DZu@ZU;o5fFKFzdu*mj3)$4u>R5UKjx z&jSB)6p{5M&!Z^vZJ(rtw|(w3dF_@W-}cF|wWSOw1LZPs#%z|o+nfV`_eNNW?lcJn zd&C-KeA_2l*e=l!r`V11C^qVFMSHaQ*N1Az{_&3fBJp*izv;-2dUWaqm%pWshVX#f zGuk7e9<7Co+Y8BvCMjG~?69>rEygzA3#O!Q>B!WGMc{I>`Yqq)YZ^JU=Q@r^nad&u z>cm*EXAg3aGik09g}KG~HP}}Etj*9aJs&oA9yZU;8?G!rr~6hsM{kMPx24dgGB7v> z^g7YOaX;)muUb)S+(Vx-j{hj=SY}aiWX_{;o#?fbj~^(+7=ik_@Ipt;j!C( z&sf;ec-fk=+RMkdoKfR8%~oE&FtV6EHjgpA9S24aAJRR;+M7vNUX6Y4*vJ7hfp5^- zIl27ud7lo-&bI1Sfqw|k1y&I^;RzvI~2xh3a~l)V78(u%@f zX^|LDE%Mu?kqJp;#oEqWTB;!JyuiiHXVP$mR@(xj1TESK5gxnkhe%sfR+~peS(2uG zkARG!2F6_Cmw^jCA zfbzUXu_OBJ1EPKSSk)*4{b1k)W}n2B=)tD-($*gO3e!5IA^m>i`wtiXXyFwLf4uNI zQ~ubL|Gn@=qyICbd&R<=7LGFQw=BG6;jIm<%o`$Af79zkt3OAYp)ycC2J|}7>dgsf zL{AQ<8Z363k+BwEC;GOI{*qBIvgYTLQ-AJtqJ#(gVS%dw(2r2?eDP4B=x&WzS1VB4sX%XMmn`kC7n#<4P1fA#OPLn4Zzp3v0Bc3=EC|eX{-FxF7bOSFM;!zE1S2f{vmV z6-RPE8c(*5Ung3Nhf1TtfZjWg^Q^~2M`M52Q7Qw)GN8vqi{-P} zXw_SZo}w$!Vy9T6EeZy7C5qFiE73)!E73j^-bHutrgL(`7Mu%gzp)o! z-?boR^iPZA_eFlEH&&)3Nt~Uxv{XTYH#$;r^I6w?x4aw|NZ`@wd*>1F_ECmR2e2`{9S24aAJPH0)GoiK*@7A~!P!75)_)!sVILTu-mw(sMzzX-GBAn^ z=)Lp9HS6(v=c{*2^xb+)bhvgd&9*NL=rK{GS&xbKWp~p~lz~OYfF2XA@`P4zCHh`n ziB@@s(cA{afUZQ5cwLDOXb048m4TsVKv$wwp1$g>M9lc*Olmi zc0lb`85n8?bR}Bl>03Sl+3hreHDFgHjFc@zN}VfFY*(Kzr+Fc2`NU49a}h)PNH_C1B4sY!XuZqu zTjJS+9OT&0iU`0`{-7a0Y`LCvohZa(KR08HN6}>8h^1a!PnDGcWk4BF29$yRGjK>_ zz4OWmtg-)B=B|Nkq|7(pPh!o}xSPGmTE+mI)UY4Kb8XxQM?J)h%`c3UEksJ4D^YA$ zpD(9*A?lEcSDKO^kFDuQ_9?%WmzB>&4DBP`%;SiZxpbrTF2iq$XAg3aV?!$<089CU zhWxPQdeTZ1;<2BbF~*~4vTwvvFRrJ`%78MU3@8K2K>r!2-r4zf9O&~z+cBi}#mGSH z?EKm0YL*9=!iXPkd_TJMv887(JhAjiQ=Ty8sijM{HEY;y&t5otVY_XgX4*S!yTi6) zrgk@oRQ+v`XXl?adF_@XHdUV^%}^Oo23!W@+4*NpLO~4HAaAoLXwbrT)DRlt6uVL6 zVxtaMw8_Six1A@j#@u(#JsM{tG zp%oE;rTjrde%Nw7>6j?QV?Q@zj7QOA--xANTu+si0cAiLPzIENK{4?Dg%7rlhhXdd zEjceI_5ze0g}u@uF`ioF_cx79NFpoN;T|PsaMJr1xVTw-&@hfx+XABmE!qeX9=q*_ zNLy1@n@2=hlBRu+fQ+H!p2Vn_o)K9FqlXXafLm&pUo#Ilr!=!z$NJCXBJ2a>)8~nX zxlye$pbRJj%0QJFn8|(Hs-B$>&E122d@_2df7K}iE(5W%^XHlss(W_++`!rSa~IBS zb9NpgReu}g+4&WEcE0*Mh-Rn^1R0QL=T}TZK_J#3R-#%FD{{jwT_2i>!U3>FDLc_ zlpTe=(jqaQTIBcljZ8=)E7sv2C1!BaM;ExbS$xbej#k?OqXaG52oWB;?T1KPQ&yWt zL|KxieUE^Qq2!*#sF+eZvslOa&*LKO1LM=P^I>jOs|+Xu z%78LZWd`!k&VON;_icF^z~f5vg5d8g&sS~LWZ>Y9nAi35)y%Iy zSv|MOLVtSGUKSGroxFE`Ze=keFDedYgZ~QDN8(oyfA9SI#yQ|;PhgGQJUjQiu#F@x zQ~V@0%P5YlW#3?v8uo*Du8sTPsO!zx{K81tLZsBW62*4)`Er^UqSjA5+m!rxY)wb9 zPx-C9tb8tFXdmfj9!I3ir5mkx8GcJVdys=18(I+oSjrzXht9^FGM|O zVs}&Wc#a`Ss73UlmTTx8R$O)FK?`OUOIs__W#n{HIR*z`R4mcY?e_R zS<4t;lN$Dec&?56;HWP*WAh6mWebr~=SmdY)#uA;UWj`6#7j-dkH^+@B>R-#%FD{< zB8K*nZsu`B%3Qk9dY9q1#IpxE$g!an5rC!qK|_Anay@A!3h~&_%^2fRG}$*|sTbE% zWo1AaPzIC%WuX5I=<`HFoa^&ML#(K7kPO70C;EAFEsgs;(a#5-C;It?&$oG=C`79M zHpu6RF4yOYR(}W443&W(1M+#I%O{~A5NnX}d7@}xdzL|)(8WJblp+Vy9ueiL#*w#` z6IkP*SLPm#vyqadd_RfJGKwQ>83Sxm!+sFYwQ(ODb(I;LUl=J{h?F{4qS&rJUrzHv z)T)V_^;u4K`-`c*l<;~)v!G^`Q>~FYQSKHqd@Wbzv=lu-Z zQ=AU+_6d9cvl)r$B?g|IMEeUcnBrwe=%r21Yog~j;j^4b>qmZJW9%ujDt-AWPXGT< z9J`d+s}y43Fnx-Xp=HxZJijJ1|ElYifli*{bm@v-dqe-C;!rmDufP!_@hgZw#c6fp z$lIWN)V$&bg@bR_$f-^$C%=OTvok#6R3M9N&c(R!ERx5TptImof06%l}?{6Ry0 z*m6DTm?*?!KR08HN6}>8h^1a!PnDGcWk4BF29$yRGoaUrhB(*jL_@5oZjcPbt`og1 zaGmI7f$KysTez&vb)pcd`r9C{6a5{%PPF|8HlY!uL!I}uL!I}uUNRE%}Nv^Reu}gN_0|J zqSfC)G(%+|$bejlPBu0KPBvDgpum+Vw6YAp3BgkFD^ct}nDodf*EY@pubIFahrK5E zys(XwH0AqAY?e_RS<4t;lN$Dec&?56;HYcO*!;ps*+Qh$xe~>8_4#s|7oyfqtT81& z9$V9q>{EU#FDsvm7}`g=na2?+bLmFwU54Kh&mQC;$A(r!0G9Fx4f$cq^`x`&5Rd)b zj4>WXlYJwWdT~8fRtA&-Wk4BF2Kvvyrp9__egbRke?E5&WFuw1`F;{>u2XOJB5N4~ zY*NF15YM%79~^a)8Jk}iDO-q?I#;6Du0CH*^Fq|7iFs4<c#a`Ss73U zlmTTx8R$O)dUigfvtU<=J^JrmvmO-1)#h;z0$icKnO8M1=uebgRVe6|cIgbeT z0+bzvz0x8vo?7IWmruAyiZJNdKLLM3g0I z+V=;@7)tI*jEdc~`rFQu>^MG?oGmCYs|2!_jJ}^Fg?|hgW)hYwZfHI&A z3^N1poI-dOB8_2P?HlHA9zUIt^r0HO+C5J+Es`G{^UAW*8>@WxO=U}Q!^40+Pjq{8nC8J{K{xk90GSBU0wljn=yi zza^eM$iW>OSP=nO%Ad8cUqkUdaU}}z*w4)v<54uXZ$N|1^-@_GPzIC%Wk4Ai3T?qpnvx%nt?5YiDZiDMmCr>C?IYdHmhxvU z?AK6yPh5#YJoa-l#&{IX?HkZwbG=kn29yD1Kp9X52E_oL5w_3HLp$YcE1VU!&(6Oq zcy(S{B!BdnSN_@g!>p?c{0M{6(1_s-EEPAG(LOu>TC?BCjrYGay^X?mof7L+f7|B~ zjj`+5d3y%6J<1F`cO>3(ILb3z-q<@iJ3qIwm^_M#BeSWG#IGR!wohbZ=Y`4EDiT{e zw`9qel-LXO|6)a9Tv{Z?Q;YnrYGgtZS+TbBmX<0=J1=l?^O-bUq1Cp)C_#%hLWIX| z`ytZSl-1@DQI@1>-y-~hG139I)Gohf9&k=+X0eX-pT|Ym2e{Mg zM8n*uRvAzRlmTU6*crHb;on<-yRmh3OU@e`djaY{tSIc27K!oHBEN4pG9ihqSlf9^ zOBJN67r40j{JY@_t+oY530kxfB0P5650SQ}tTvB`vLsFW9swCc$vuftF+C%)3`P$h z(gC;BF280Ta87Avv5xhh$3@r&#-}UMFgL1I29yD1Kp7Zb299oAF?Q4h);Nx%a<3w@ zk#gMmeiEBy6i3!F2H2#A{UDxe<32d*(PnIZVWey!QtDiZV!Qf$In4`EM^7AON`5@H zrX$&>{8nC8J{K{xk90GSBU0wljn=yiza^eM$iW>OSP=nO%Ad8cUqkUdaU}}z*w4)v z<54uXZ$N|1^-@_GPzIC%Wk4Ai3DqaJU@<`+iF z79yq2l_<8W&zIA@5Ow^-ai-+QV{1B+eadg;W#w}bL;FZK^Ee`9F5PIo%kW#`*@GP1 zv4Is4fTjFd3;Q(`-xF7&5Rd)bj4>WXbNdD~*jz7_l>ucy8Bhk4fk85`!`Rpu^^dI` zS~BTFHG6^8j>71)NQ|cz`Q_yk?vWx4y53=oi<^rfylJ&9FlO*U8zG1Z8!6j}l)7>x z9uZ|pn)dwxGKP|S5~E^zMr0X`9zLW4ZmC^<%{)NAAmMCa9qT`ji?9!jPp=aVbE8^i zKp9X5l!0Mq;M#@jTK9Nh>)Mu_H#YVHlpTe=(jqaQTI6>_BNLLyigmb0i5Z-9?E)7! zi|Y*IXtgacO35aF@geu%U+Wwm)klqG4}_Xx-sO72OFis>1VWiWd9kPf(|cKJ2) zfOASSi*>C3JTAgMFg{(0hPhF#GN2471Ioa#GqB6pbn7S*wsvXBd1GTQK-p2)D=iY^ zsYQNy`Gk9<2!pP78RO#SGHn<~t8IZXgBERsASP_2Y$H1VWiWd9kPf(|cKJ2)fOASSi*>C3JTAgMFg{(0hPhF#GN2471IobgGH~ZI$o=+Z zSmQWuZ|GuUvXK&#?7e>k!BBjoiD7LH5m(#ou zb?36%P05eP)^sHMl;6tB%I6}6_K|MpaYV{oy3u-<;kU%I2RXQ711ll`OZl@F_G>7< zC$2;x9{af&V?2uH_6=yTxn3$O1ImChpbRJjgJJ;RWn{nOM&Gg2+g#Awe(3#5q4(+N zJC-EJ_WoyEVtR?Gn|Eyy>-vr*n;UH_165~0-?3En8LDo6`i`aQ&P^z@cJElaapC6H zm37#!9l!7r3~&+-w*}t8IZ%f);Ir2#?+N zL!_-KtIZ>#EJ@S8M?l6biggO%deRSoKu=vtYiJ>aS`@`@#)$5 zFgL1I29yD1Kp7Zj29}%mU@sT%Z~wmen+MwV8yvBkZ6SX-AM!|x@%jf$1z;*oqu6t?97EdlDsxBtSiwxhSWBk3~U;SH*OE-+*Cd5PL7FQx}uoT6ctBi zbHqse3i6JL!e2NzyUDyjJ7r}7DbWJ0M)dm$e zCp|ka8L{_2+Y-}DjGmph`Ovm9FiZ^S+4*6bt!m}k$x3u?Wih!I6-Q=MANiFi@NseN zlGaKTTNk%v$(NMa3!_{f@Jfp$<6<;h7mi}*ZKJEvzPQH4&FB)tI9hEBj1shHBSd)Y zwjUyGO2Ba7uF_asKe^o+y?rJ&7K!oHl73QRjLd-a)u``S z;NoUOwgpBBTC@=&Ja*d;k+!C+Hjjw1Bu)Ds0U1NZ<}s$X(+s`h{^WZr{K%T5SuC8Ab&*LSQ`5FqR^t29a#-f6LA- z*1H^mM8)PTB`%B}J`@r6V3NwNX(k{C%milx^~Lr6Q(cJ`N2W$n29$vjW8g)T#SFNp zIK^bMxT5@g;eT33k+AjimYg?I_5#$;7w!#srA6|4k$zGlw4FEUs#E`bfs32f{}{&6 zYFl8GphX)Y!eh7n5NT`5YTv)W)cU)KtzWj}ys@ztpzJ8@l@^Kd z)RKNuVvNjy^wp?;xxmHE=pn;6T5SuA60~R|M0o7BA0ll{S#2H>Wl5U$JpwX@ip^t8 zZ^wbr!-sUhEw#(9nFpLxnpv!4{pWEJ_JQ%~N;J%kYLx+HKp9X5hL?dynt!vYhLQZL z%fI7~cjQMs%KAw!##4@l@Q^9rr2>+@5$chJaIvv=8_~ALZ&PgF(z^y@KeF(oDXG!Y zk*N`jz~yD-GZ;hrNH@1QB4sY!XuZo%nmvwZ4|0%WTT%xrA^=PIvo_1HEj=HeqLnDb zV?Q@zis$NC#=cqBmNK9WCg6`+f;? zN^NO9Z;eMdsM!mo?doORJHNfjCYFz#H=wGu!Cmm3Wd!))xp$uLoL@ecGSWOgucy8Bhj>n1O{1u18#Wv~?c&(b`V%cRcATMethQ z`l~DwQU|)+Txnm#R#Y6B%Ml~-E7)<>dAVokr|b6hcx%kxyp-$y z-0MWww$`LJ$7zvl4{Vd)x<*uzB(D0`iNdv!q3a`u^&Lx+f0n}Y!**zecp!wm|B(*r zm|kLFKi~}d{f;G?WBHDy@VsZ4UMFhLowk($Wk4C|oPm`qpIVt^f3Vm8vsbF`oWU2d z6&0t5T!tye*(+8au;Z$Kj@-3$Ve@(5RKv(FXgwpmvvGFjM?K2AeGJ0qXG*9G$HOHy zGDOF$sHfQZsP3#7`@-=HOi7K9j!cbM1THTtpTQW~N4mMi5h-)&M(bU^!0d56dyvBg zkXk9h=;1?J+=EFf zyXHB@Ipvw<@!B~Y(aO`-wr|7u^g7Y@JSk$>7L*uUY0-{JL)?UiN2wi5NP6OGMdOmB~WxK^TgooLFe z+GE7ugRVp+Cn_xl2J|}7#W0J58N*(y4oN;ce`$wLeTt2!s5mnIs9Yx+J3Eh8gxc3z zo>JRlR+N0zo#abO@+!W)f-BLqNHQ)+;0K?58d1Yh?7aO5gVIp0bp2rH`bfP_RL+jv zlh_v1Gh*=16Qz09>qPBY(Y7+63@8I-F@V>Jb`rg)W0^(8=_L2XfQ9Qs^Tq*JoxwF} zguzzqx;;W+&0ZjfeZpE9CnRBBWC=&H^CslrYswX`_QP*CE4+Ttyud7R2cZ1g6@JJ6~2aNocoKj^KeEqd^X%25g_?G(H91fiKazzBXb6M zXXmSVohXfkuORd};HwD<4K?7v3(vOWcglI(VLLmYex2yzJ3EipiKfh|y=UOQp(|0z ziAsxs0liLiG0fs%#<16_#d7cbXj~^6zjvNiKl~SeUF{p@9wC426x!3|O7xfWAxv5% z-xF75`FAW;^Ey!)v93hrtn%tB{W?+NQbv-}FkUArN01`D*!(|FSE4CQDQ37B(Cb8p zYrd+KZ6|ju6?J`QQE?=Xqj8;R-W^ML&kV0bvuw&7nUiNk}nnipidT8xX^B3;W+QH@fwhv7q>2lsWa0Pe9szmN%hQ=y!=?)@oFJW_}X z5^C^U_K$f0f(o@cBWlUGq}5s(D3<{}J6|rpi#hsUt6s88>iBjm=<3p<;>f&5oHN{P>+cc6Iw4W2K1Qd z;+oHXjz*7(_LJ@2`-&eE#n|=QWb261WaB!~`Iem5J9zOOOX2sBsI>}UfsWU(7QP%Ba5I#RsLfyG6TwfHI&A3x@s-&m}s@H z6Q$#!d@PXXrr2YmaAjh*JabOHv}m^SVlWSSooF6UVVj(+s`q(%Zw{Kt>t+oZn45I=YAut|j7)y~+gGjdazh&nZ>s^jOqGEHF5*J1fABu>3 zFiB+r@#($u#qp_;lmTTx8BhkQ!oZKrU$`HQ-`4s&ep{mr+V&fJ z0XFOt*0#rEUX(*Pik&whvrJ~i`hK-2*B^~@ar*|A(P~?8%rGjj5d!0ZhOrbGHHc(u z|66u$vEJnfBq}y%DRE)+@S%vf2a{BGO)~*GU?w;ls4uQ}7@w|0i{n!xDFe!YGN24p zg#moOyZwIecbR)X=-ui0S=wG%rth6cwun1=AGyAFo_HZ<{Jl!Uj29$xt&w#E(hi#7YSEAn>zp`~!GjC+y9ESo3{ElI-H1VLIJ&wg_ zWT#q2{pR?q&6=2Ekqxkv3+TufGo-kLVy$dZG`B{7R~whPKW>H4oMp(`PDkGDaA5BQ zOZav^U`PH^GUyc3uJ=ykElxcA4)E+ewA^2XJLV^rK55DmrnnZBl>ucy8Bhj%25w!s z&7Qt?lr^`k?APco9KXQ)UAtiXLi3Fqwm{o{V=us_`Q%5vpplP^7LRM^oga5`TbZ>% zjWa$+X&K2qiG5Py!aj`qG5TF-?adsitQK&O1^R_d;F}8edT5|S)!=i`42osoy76n1)|}UkLxH~WJC?<@ zCLR>D$FUfV>{QFB*Ny+7IVMW6$Oc%-1$5+#8B$zAu~xPynp>m4tBuRtAGbni&N5_e zrz7unIIwquC44&{up@sd8FY$i*L$b&7AGEl2e=Z2miw!4$E?RhT}D(^29yD1Adi7- z^q8na&$s(_Otji(=MU4f^Nl^Dlk?Y|U?Di3d3Sa|M?_4gS1vd~qGG2RM*}TtgPxsV z)YGejQwEfQ0W)x|u0)*~_)gzeqIZwqWsb14-|ilV0yzARdE8~MsifPw-r|}ji9)1USOcYw~ufiR(9usvLQCS&K29$w3241HtQHP%X9TUa7p?R4|5K{SfSXKfMx?{Vev+8MmCkz3eilk508nu z7L}EOVP;^{#$nE0a~~uF+rBEj_e)o#WAl(j#gTm+F%rLmTerwjvot$4GnQpDW3%QP zx7kJ;wCy+WV$ZM-+uO&p5fF{zhojhe+rEQsQ?9_|OtZKdfenjo!SRw`+}rknHXx~2 z*VZ37JomD1&e2E5vXANQ$T)hA3H;gia@#b+FgnbH=Z$mX956TVVqHoL@VFA~)H5Zz zVw3@8Kp9X5l!3u8Q0;r?|F=0a@7^U$_i+osPWQ;lSPrmhkO-z>XZIWY8(5UGJU7Tby{kcYblstBy(;PzI{O!1wh!QD-9l zTklvhjNCo`Mza!i@6DjQXNWSo-v#fevF{sVjo%_~w?=Q;0@uD7O?MHAmgoo^08)r0>3Wta=Vj$H7(@F=H|IDaWiH)lz02@h;@N{7+Q>N z_2cU&w91L~6YD3pN}2h)v2i83)2ypkSs73Ul!3uB@V3>*H4El)*RIE{{?n%B*`{7+ zKD(_RT%OOK&NBGuRy79hYx}&Le`+C?EDdMBw7LCr3mL|Br+tm%cDRxM)$8dhquH7r znH|+cA8YDkO*zgg$7fJZXp|GPaJh2nm61_8X{e|S^p$~o%zlY0(Xl02_CV$K(!bv2 zfc;*x-vRsm<^Fx8rLfM)yunj8I?I}znIN3n1#G@M!kJ`PyNjL` k`Z@Ivv`U%z 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

  • O8xbN--2FwtJY`y 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 Q&*r_g_Fc#GddA5A0c~)E5dZ)H literal 0 HcmV?d00001 diff --git a/src/graph/named-symbol-flow.ts b/src/graph/named-symbol-flow.ts index a83edf2d8..02f6563b7 100644 --- a/src/graph/named-symbol-flow.ts +++ b/src/graph/named-symbol-flow.ts @@ -139,6 +139,15 @@ export const FLOW_CALLABLE_KINDS: ReadonlySet = new Set([ */ export const FLOW_EDGE_KINDS: ReadonlySet = new Set(['calls', 'navigates']); +function canSitOnFlow(n: { kind: string; language?: string }): boolean { + return FLOW_CALLABLE_KINDS.has(n.kind) || (n.kind === 'class' && n.language === 'verilog'); +} + +function carriesFlow(edge: { kind: string }, target: { language?: string }): boolean { + return FLOW_EDGE_KINDS.has(edge.kind) || (edge.kind === 'instantiates' && target.language === 'verilog'); +} + + /** * Node kinds that can be an endpoint of a SYNTHESIZED edge without being * callable. An RTK thunk is `const X = createAsyncThunk(...)`, so a thunk → @@ -309,7 +318,7 @@ export function resolveNamedTokens( for (const t of tokens) { const hits = findAllSymbols(cg, t).nodes; - const cands = hits.filter((n) => FLOW_CALLABLE_KINDS.has(n.kind)); + const cands = hits.filter((n) => canSitOnFlow(n)); out.tokenFamily.set(t, cands); // A qualified or otherwise-specific name (<=3 hits) keeps all of them. const specific = cands.length <= 3; @@ -343,7 +352,7 @@ export function resolveNamedTokens( if (out.dynNamed.size < 12) { let tokenDyn = 0; for (const n of hits) { - if (FLOW_CALLABLE_KINDS.has(n.kind) || !DYN_KINDS.has(n.kind) || out.dynNamed.has(n.id)) { + if (canSitOnFlow(n) || !DYN_KINDS.has(n.kind) || out.dynNamed.has(n.id)) { continue; } if (hasHeuristicEdge(n.id)) { @@ -410,7 +419,7 @@ function walkCalls( if (id !== seed.id && named.has(id)) reached.push(id); if (depth >= maxHops - 1) continue; for (const c of cg.getCallees(id)) { - if (!FLOW_EDGE_KINDS.has(c.edge.kind) || parent.has(c.node.id)) continue; + if (!carriesFlow(c.edge, c.node) || parent.has(c.node.id)) continue; // A route node is a connector, not a symbol the reader would have named: // crossing one costs no bridge budget. const newStreak = named.has(c.node.id) ? 0 : c.node.kind === 'route' ? streak : streak + 1; @@ -484,7 +493,7 @@ function walkBidirectional( const next: Node[] = []; for (const node of frontF) { for (const c of cg.getCallees(node.id)) { - if (!FLOW_EDGE_KINDS.has(c.edge.kind) || forward.has(c.node.id)) continue; + if (!carriesFlow(c.edge, c.node) || forward.has(c.node.id)) continue; forward.set(c.node.id, { prev: node.id, edge: c.edge, node: c.node }); next.push(c.node); } @@ -496,7 +505,7 @@ function walkBidirectional( const next: Node[] = []; for (const node of frontB) { for (const c of cg.getCallers(node.id)) { - if (!FLOW_EDGE_KINDS.has(c.edge.kind) || backward.has(c.node.id)) continue; + if (!carriesFlow(c.edge, c.node) || backward.has(c.node.id)) continue; backward.set(c.node.id, { next: node.id, edge: c.edge }); backNodes.set(c.node.id, c.node); next.push(c.node); diff --git a/src/mcp/daemon.ts b/src/mcp/daemon.ts index 6248d970b..04ca7e6c1 100644 --- a/src/mcp/daemon.ts +++ b/src/mcp/daemon.ts @@ -378,6 +378,9 @@ export class Daemon { // timeout, a non-hello first line, an early close — yields null pids and we // fall back to the socket-close lifecycle exactly as before (#692). void readClientHello(socket).then((peers) => { + // The peer may close while hello is being read; close is not replayed + // for the transport listeners we would install afterwards (#1356). + if (socket.destroyed) return; const transport = new SocketTransport(socket); const session = new MCPSession(transport, this.engine, { explicitProjectPath: this.projectRoot, diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index f240eed4a..e2347e6de 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -3083,10 +3083,36 @@ export function dumpNameMatcherProfile(label: string): void { } } +function isVerilogSimPath(filePath: string): boolean { + return ( + /(^|\/)(sim|tb|tests?|testbench|dv)\//i.test(filePath) || + /_(stub|tb|sim)\.s?vh?$/i.test(filePath) + ); +} + export function matchReference( ref: UnresolvedRef, context: ResolutionContext ): ResolvedRef | null { + if (ref.language === 'verilog' && ref.referenceKind === 'instantiates' && !isVerilogSimPath(ref.filePath)) { + const modules = context + .getNodesByName(ref.referenceName) + .filter((n) => n.language === 'verilog' && (n.kind === 'class' || n.kind === 'interface')); + const synth = modules.filter((n) => !isVerilogSimPath(n.filePath)); + if (synth.length > 0 && synth.length < modules.length) { + const best = synth.length === 1 ? synth[0]! : findBestMatch(ref, synth, context); + if (best) { + const proximity = computePathProximity(ref.filePath, best.filePath); + return { + original: ref, + targetNodeId: best.id, + confidence: synth.length === 1 || proximity >= 30 ? 0.7 : 0.4, + resolvedBy: 'exact-match', + }; + } + } + } + // Function-as-value refs (#756) resolve ONLY through the dedicated matcher — // never the fuzzy/qualified fallthrough below (a wrong callback edge is // worse than none). diff --git a/src/types.ts b/src/types.ts index 44ffaf4e4..f1365ac48 100644 --- a/src/types.ts +++ b/src/types.ts @@ -102,6 +102,7 @@ export const LANGUAGES = [ 'pascal', 'scala', 'lua', + 'verilog', 'luau', 'objc', 'r', From 1a11de263aa026b4a99b9c7d09599b811dec6f8b Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 11:23:56 +0300 Subject: [PATCH 10/23] =?UTF-8?q?fix:=20=D1=83=D1=81=D1=82=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=82=D1=8C=20=D0=BA=D0=BE=D0=BB=D0=BB=D0=B8=D0=B7?= =?UTF-8?q?=D0=B8=D0=B8=20=D0=B3=D1=80=D0=B0=D1=84=D0=B0=20=D0=B8=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=B2=D0=B5=D1=80=D1=88=D0=B8=D1=82=D1=8C=20lifecycle=20?= =?UTF-8?q?MCP=20=D0=BF=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 + __tests__/callback-cross-family.test.ts | 35 ++++ __tests__/callback-owner-regression.test.ts | 42 ++++ __tests__/cpp-macro-visibility.test.ts | 37 ++++ __tests__/cpp-remaining-regressions.test.ts | 103 ++++++++++ __tests__/extraction.test.ts | 5 +- __tests__/kernel-dart-parity.test.ts | 22 +++ __tests__/kernel-deep-nesting.test.ts | 3 +- __tests__/kernel-retry-materialize.test.ts | 3 +- __tests__/kernel-scaffold.test.ts | 2 +- __tests__/kernel-tsjs-parity.test.ts | 11 ++ __tests__/mcp-project-lifecycle.test.ts | 185 ++++++++++++++++++ __tests__/mcp-writer-lock.test.ts | 19 +- __tests__/resolution.test.ts | 6 +- __tests__/same-line-ids.test.ts | 26 +++ codegraph-kernel/src/ccpp/mod.rs | 44 ++++- codegraph-kernel/src/dart.rs | 4 +- codegraph-kernel/src/ids.rs | 11 ++ codegraph-kernel/src/tsjs/mod.rs | 2 +- ...validation-remaining-defects-2026-09-12.md | 127 ++++++++++++ src/extraction/extraction-version.ts | 2 +- src/extraction/languages/c-cpp.ts | 21 +- src/extraction/languages/dart.ts | 4 +- src/extraction/tree-sitter-helpers.ts | 9 +- src/extraction/tree-sitter.ts | 45 ++++- src/index.ts | 6 + src/mcp/daemon.ts | 2 +- src/mcp/engine.ts | 83 ++++---- src/mcp/index.ts | 16 +- src/mcp/proxy.ts | 4 +- src/mcp/server-instructions.ts | 2 +- src/mcp/tools.ts | 39 +++- src/resolution/callback-synthesizer.ts | 59 +++++- src/resolution/cpp-macro-visibility.ts | 121 ++++++++++++ src/resolution/index.ts | 11 +- src/resolution/name-matcher.ts | 8 +- 36 files changed, 1029 insertions(+), 95 deletions(-) create mode 100644 __tests__/callback-cross-family.test.ts create mode 100644 __tests__/callback-owner-regression.test.ts create mode 100644 __tests__/cpp-macro-visibility.test.ts create mode 100644 __tests__/cpp-remaining-regressions.test.ts create mode 100644 __tests__/mcp-project-lifecycle.test.ts create mode 100644 __tests__/same-line-ids.test.ts create mode 100644 docs/validation-remaining-defects-2026-09-12.md create mode 100644 src/resolution/cpp-macro-visibility.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index c81c964f7..32c7819cf 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -157,6 +157,11 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). #### MCP / indexing +- Callback связывается с обработчиком регистрирующего класса, включая TSX→TS и наследование, а не с одноимённым методом другого класса. +- Исправлены C/C++ macro calls и local constructors; одноаргументные function macros получают подтверждённое имя. +- TS/JS getter и setter одной строки больше не перезаписывают друг друга; Dart extension types сохраняют правильные границы и членов. +- Явно выбранные MCP-проекты получают catch-up и watcher; shutdown дожидается записи, а тесты удаляют свой daemon. + - Восстановлена поддержка Verilog/SystemVerilog и поиска пути от верхнего FPGA-модуля до вложенного; спасибо @FHYQ-Dong за исходный extractor. - Обрыв подключения во время MCP-handshake больше не оставляет фантомного клиента. - Prompt-hook пропускает служебные уведомления о завершении задач; тесты resolution удаляют временные каталоги после закрытия графа. diff --git a/__tests__/callback-cross-family.test.ts b/__tests__/callback-cross-family.test.ts new file mode 100644 index 000000000..62b806ec7 --- /dev/null +++ b/__tests__/callback-cross-family.test.ts @@ -0,0 +1,35 @@ +import { it, expect } from 'vitest'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { CodeGraph } from '../src'; + +// Reduced from Excalidraw App.tsx -> element/src/Scene.ts: the field receiver +// crosses TSX/TS, then the observer edge must return to the registering class. +it.each(['tsx', 'jsx'])('resolves %s -> TS field calls before synthesizing the callback', async (ext) => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-callback-family-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'scene.ts'), `export class Scene { + private callbacks = new Set(); + onUpdate(cb: Function) { this.callbacks.add(cb); } + triggerUpdate() { for (const callback of Array.from(this.callbacks)) { callback(); } } + }`); + fs.writeFileSync(path.join(root, 'a_decoy.ts'), 'export class Decoy { triggerRender() {} }'); + fs.writeFileSync(path.join(root, `app.${ext}`), `import { Scene } from './scene'; + export class App { + ${ext === 'tsx' ? 'public scene: Scene;' : 'scene = new Scene();'} + componentDidMount() { this.scene.onUpdate(this.triggerRender); } + triggerRender = () => {}; + }`); + cg = CodeGraph.initSync(root); + await cg.indexAll(); + const registrar = cg.getNodesByName('onUpdate')[0]; + expect(cg.getCallers(registrar.id).some(x => x.node.qualifiedName === 'App::componentDidMount')).toBe(true); + const dispatcher = cg.getNodesByName('triggerUpdate')[0]; + const callbacks = cg.getCallees(dispatcher.id).filter(x => x.edge.metadata?.synthesizedBy === 'callback'); + expect(callbacks.map(x => x.node.qualifiedName)).toEqual(['App::triggerRender']); + } finally { + cg?.close(); fs.rmSync(root, { recursive: true, force: true }); + } +}); diff --git a/__tests__/callback-owner-regression.test.ts b/__tests__/callback-owner-regression.test.ts new file mode 100644 index 000000000..eb9f30854 --- /dev/null +++ b/__tests__/callback-owner-regression.test.ts @@ -0,0 +1,42 @@ +import { it, expect } from 'vitest'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { CodeGraph } from '../src'; + +it.each([[false, false, false], [true, false, false], [false, true, false], [false, false, true]])('callback belongs to registering class, inherited=%s bound=%s oneLine=%s', async (inherited, bound, oneLine) => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-callback-owner-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'a_decoy.ts'), 'export class Decoy { triggerRender() {} }'); + fs.writeFileSync(path.join(root, 'store.ts'), `class OtherStore { + private handlers = new Set(); + subscribe(cb: Function) { this.handlers.add(cb); } + emit() { this.handlers.forEach(h => h()); } + } + export class Store { + private handlers = new Set(); + subscribe(cb: Function) { this.handlers.add(cb); } + emit() { this.handlers.forEach(h => h()); } + }`); + fs.writeFileSync(path.join(root, 'base.ts'), 'export class Base { triggerRender() {} }'); + fs.writeFileSync(path.join(root, 'real.ts'), `import { Store } from './store'; + import { Base } from './base'; + class SameFileDecoy { triggerRender() {} } + export class Real ${inherited ? 'extends Base' : ''} { + store = new Store(); + init() { this.store.subscribe(this.triggerRender${bound ? ".bind(this)" : ""}); } + ${inherited ? '' : 'triggerRender() {}'} + }`); + if (oneLine) { + const file = path.join(root, 'real.ts'); + fs.writeFileSync(file, fs.readFileSync(file, 'utf8').replace(/\n/g, ' ')); + } + cg = CodeGraph.initSync(root); await cg.indexAll(); + const emit = cg.getNodesByName('emit').find(n => n.qualifiedName === 'Store::emit')!; + const other = cg.getNodesByName('emit').find(n => n.qualifiedName === 'OtherStore::emit')!; + expect(cg.getCallees(other.id).filter(x => x.edge.metadata?.synthesizedBy === 'callback')).toEqual([]); + const targets = cg.getCallees(emit.id).filter(x => x.edge.metadata?.synthesizedBy === 'callback').map(x => x.node.qualifiedName); + expect(targets).toEqual([inherited ? 'Base::triggerRender' : 'Real::triggerRender']); + } finally { cg?.close(); fs.rmSync(root, {recursive:true,force:true}); } +}); diff --git a/__tests__/cpp-macro-visibility.test.ts b/__tests__/cpp-macro-visibility.test.ts new file mode 100644 index 000000000..c74e44907 --- /dev/null +++ b/__tests__/cpp-macro-visibility.test.ts @@ -0,0 +1,37 @@ +import { it, expect } from 'vitest'; +import { isVisibleCppMacro } from '../src/resolution/cpp-macro-visibility'; +import type { ResolutionContext } from '../src/resolution/types'; +function context(files: Record): ResolutionContext { + return { + getNodesByName: () => [{ kind: 'constant', signature: '#define TRACE(x) (x)' }], + readFile: (file: string) => files[file], fileExists: (file: string) => file in files, + getAllFiles: () => Object.keys(files), + } as unknown as ResolutionContext; +} +function visible(ctx: ResolutionContext, filePath: string, line: number): boolean { + return isVisibleCppMacro({fromNodeId:'test',referenceName:'TRACE',referenceKind:'calls',language:'c',filePath,line,column:0},ctx); +} +it('keeps a possible macro when an unknown conditional include undefines it', () => { + const ctx=context({'main.c':'#define TRACE(x) (x)\n#if UNKNOWN_FLAG\n#include "undef.h"\n#endif\nvoid run(){TRACE(1);}', 'undef.h':'#undef TRACE'}); + expect(visible(ctx,'main.c',5)).toBe(true); +}); +it.each([['a.c','b.c'],['b.c','a.c']])('include cycle does not depend on query order: %s first', (first,second) => { + const ctx=context({'a.h':'#ifndef A_H\n#define A_H\n#include "b.h"\n#define TRACE(x) (x)\n#endif','b.h':'#ifndef B_H\n#define B_H\n#include "a.h"\n#endif','a.c':'#include "a.h"\nvoid run(){TRACE(1);}','b.c':'#include "b.h"\nvoid run(){TRACE(1);}'}); + expect(visible(ctx,first,2)).toBe(true); + expect(visible(ctx,second,2)).toBe(true); +}); +it('passes a known parent flag into the included header', () => { + const ctx=context({'main.c':'#define ENABLE_TRACE 0\n#include "trace.h"\nvoid run(){TRACE(1);}','trace.h':'#if ENABLE_TRACE\n#define TRACE(x) (x)\n#endif'}); + expect(visible(ctx,'main.c',3)).toBe(false); +}); +it('does not let a later definition affect a preceding call', () => { + const ctx=context({'main.c':'void first(){TRACE(1);}\n#define TRACE(x) (x)\nvoid last(){TRACE(1);}'}); + expect(visible(ctx,'main.c',1)).toBe(false); + expect(visible(ctx,'main.c',3)).toBe(true); +}); + +it('keeps local header facts within a hypothetical include path', () => { + const ctx=context({'main.c':'#ifdef OPTIONAL\n#include "maths.h"\n#endif\n#include "maths.h"\nvoid run(){TRACE(1);}', + 'maths.h':'#pragma once\n#define FAST_MATH\n#if defined(FAST_MATH)\nvoid TRACE(int);\n#else\n#define TRACE(x) (x)\n#endif'}); + expect(visible(ctx,'main.c',5)).toBe(false); +}); diff --git a/__tests__/cpp-remaining-regressions.test.ts b/__tests__/cpp-remaining-regressions.test.ts new file mode 100644 index 000000000..071ef0338 --- /dev/null +++ b/__tests__/cpp-remaining-regressions.test.ts @@ -0,0 +1,103 @@ +import { afterEach, beforeAll, describe, expect, it } from 'vitest'; +import { mkdtempSync, mkdirSync, writeFileSync, rmSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { join } from 'node:path'; +import { CodeGraph } from '../src'; +import { extractFromSource } from '../src/extraction'; +import { initGrammars, loadGrammarsForLanguages } from '../src/extraction/grammars'; + +const roots: string[] = []; +beforeAll(async () => { await initGrammars(); await loadGrammarsForLanguages(['c', 'cpp']); }); +afterEach(() => { for (const root of roots.splice(0)) rmSync(root, { recursive: true, force: true }); }); + +describe('remaining C/C++ regressions', () => { + it.each(['c', 'cpp'])('keeps function-like macros as non-callable constants without indexing numeric defines (%s)', (language) => { + const result = extractFromSource(`marker.${language}`, '#define TRACE_POINT(value) ((void)(value))\n#define VERSION 1\n'); + expect(result.nodes.filter(n => n.kind === 'constant').map(n => [n.name, n.signature])).toEqual([ + ['TRACE_POINT', '#define TRACE_POINT(value) ((void)(value))'], + ]); + }); + it.each(['c', 'cpp'])('recovers a single-argument declared function macro (%s)', (language) => { + const result = extractFromSource(`case.${language}`, '#define NATIVE_FN(name) int name(void)\nNATIVE_FN(get_version) { return 1; }\nint use_it(void) { return get_version(); }\n'); + expect(result.nodes.filter(n => n.kind === 'function').map(n => n.name)).toEqual(['get_version', 'use_it']); + }); + it.each(['c', 'cpp'])('resolves a real call to the macro-declared function (%s)', async (language) => { + const root = mkdtempSync(join(tmpdir(), 'codegraph-cpp-macro-name-')); roots.push(root); + writeFileSync(join(root, `case.${language}`), '#define NATIVE_FN(name) int name(void)\nNATIVE_FN(get_version) { return 1; }\nint use_it(void) { return get_version(); }\n'); + const cg = CodeGraph.initSync(root); + try { + await cg.indexAll(); + const caller = cg.searchNodes('use_it').map(r => r.node).find(n => n.name === 'use_it')!; + expect(cg.getCallees(caller.id).some(r => r.node.name === 'get_version' && r.edge.kind === 'calls')).toBe(true); + } finally { cg.close(); } + }); + it('does not guess a one-argument macro name without a matching definition', () => { + const result = extractFromSource('case.cpp', '#define NATIVE_FN(name) int generated(void)\nNATIVE_FN(get_version) { return 1; }'); + expect(result.nodes.filter(n => n.kind === 'function').map(n => n.name)).not.toContain('get_version'); + }); + it.each(['c', 'cpp'])('suppresses only macros visible through nested includes and honors undef (%s)', async (language) => { + const root = mkdtempSync(join(tmpdir(), 'codegraph-cpp-macros-')); roots.push(root); + mkdirSync(join(root, 'src/main/common'), { recursive: true }); + mkdirSync(join(root, 'src/main/pg'), { recursive: true }); + mkdirSync(join(root, 'src/main/drivers'), { recursive: true }); + writeFileSync(join(root, 'src/main/pg/pinio.h'), '#define HEADER_TRACE(v) ((void)(v))\n'); + writeFileSync(join(root, 'src/main/drivers/pinio.h'), '// unrelated header with the same basename\n'); + writeFileSync(join(root, `src/main/pg/pinio.${language}`), '#include "pinio.h"\nvoid sibling_header_use() { HEADER_TRACE(1); }\n'); + writeFileSync(join(root, 'src/main/common/marker.h'), '#define ROOT_TRACE(v) ((void)(v))\n'); + writeFileSync(join(root, 'inner.h'), '#define TRACE_POINT(value) ((void)(value))\n'); + writeFileSync(join(root, 'outer.h'), '#include "inner.h"\n'); + writeFileSync(join(root, `exercise.${language}`), '#include "outer.h"\n#include "common/marker.h"\nvoid root_macro_use() { ROOT_TRACE(1); }\nvoid macro_use() { TRACE_POINT(1); }\nvoid local_macro() {\n#define INNER_TRACE(v) ((void)(v))\nINNER_TRACE(1);\n}\n#undef TRACE_POINT\nvoid real_use() { TRACE_POINT(1); }\n'); + writeFileSync(join(root, `decoy.${language}`), 'void HEADER_TRACE(int value) {}\nvoid ROOT_TRACE(int value) {}\nvoid INNER_TRACE(int value) {}\nvoid TRACE_POINT(int value) {}\nvoid unrelated_use() { TRACE_POINT(1); }'); + const cg = CodeGraph.initSync(root); + try { + await cg.indexAll(); + const callees = (name: string) => { + const node = cg.searchNodes(name).map(r => r.node).find(n => n.name === name)!; + return cg.getCallees(node.id).map(r => r.node.name); + }; + expect(callees('macro_use')).not.toContain('TRACE_POINT'); + expect(callees('root_macro_use')).not.toContain('ROOT_TRACE'); + expect(callees('sibling_header_use')).not.toContain('HEADER_TRACE'); + expect(callees('local_macro')).not.toContain('INNER_TRACE'); + expect(callees('real_use')).toContain('TRACE_POINT'); + expect(callees('unrelated_use')).toContain('TRACE_POINT'); + } finally { cg.close(); } + }); + it.each(['c', 'cpp'])('preserves real functions when an inactive fallback branch defines a macro (%s)', async (language) => { + const root = mkdtempSync(join(tmpdir(), 'codegraph-cpp-conditional-')); roots.push(root); + writeFileSync(join(root, 'maths.h'), '#define FAST_MATH\n#if defined(FAST_MATH)\nfloat sin_approx(float x);\n#else\n#define sin_approx(x) external_sin(x)\n#endif\n#if 0\n#define real_fn(x) ((void)(x))\n#endif\n'); + writeFileSync(join(root, `maths.${language}`), '#include "maths.h"\nfloat sin_approx(float x) { return x; }\nvoid real_fn(int value) {}\nfloat invoke_real(float value) { real_fn(1); return sin_approx(value); }\n'); + const cg = CodeGraph.initSync(root); + try { + await cg.indexAll(); + const caller = cg.searchNodes('invoke_real').map(r => r.node).find(n => n.name === 'invoke_real')!; + expect(cg.getCallees(caller.id).map(r => r.node.name)).toEqual(expect.arrayContaining(['sin_approx', 'real_fn'])); + } finally { cg.close(); } + }); + it('records local constructor methods and keeps aggregate/pointer/prototype controls non-callable', async () => { + const root = mkdtempSync(join(tmpdir(), 'codegraph-cpp-remaining-')); roots.push(root); + writeFileSync(join(root, 'case.cpp'), ` +struct Aggregate { int value; }; +namespace unrelated { void Aggregate() {} } +class WithConstructor { public: WithConstructor(); explicit WithConstructor(int value); }; +WithConstructor::WithConstructor() {} +WithConstructor::WithConstructor(int value) {} +void default_ctor() { WithConstructor item; } +void braced_ctor() { WithConstructor item{}; } +void value_ctor() { WithConstructor item(1); } +void temporary_ctor() { WithConstructor(); } +void controls() { Aggregate item{}; WithConstructor *pointer; WithConstructor &reference = *pointer; WithConstructor prototype(); extern WithConstructor external; } +`); + const cg = CodeGraph.initSync(root); + try { + await cg.indexAll(); + for (const caller of ['default_ctor', 'braced_ctor', 'value_ctor', 'temporary_ctor']) { + const node = cg.searchNodes(caller, { limit: 10 }).map(r => r.node).find(n => n.name === caller)!; + const callees = cg.getCallees(node.id).map(r => r.node); + expect(callees.some(n => n.kind === 'method' && n.qualifiedName === 'WithConstructor::WithConstructor'), caller).toBe(true); + } + const control = cg.searchNodes('controls', { limit: 10 }).map(r => r.node).find(n => n.name === 'controls')!; + expect(cg.getCallees(control.id).filter(r => r.edge.kind === 'calls')).toEqual([]); + } finally { cg.close(); } + }); +}); diff --git a/__tests__/extraction.test.ts b/__tests__/extraction.test.ts index c4cc74341..5f5c542a8 100644 --- a/__tests__/extraction.test.ts +++ b/__tests__/extraction.test.ts @@ -4856,6 +4856,7 @@ CPPType* ApiHelper { expect(instNames('Calculator calc(0);')).toEqual(['Calculator']); expect(instNames('Widget w{1, 2};')).toEqual(['Widget']); + expect(instNames('Calculator deferred;')).toEqual(['Calculator']); // default construction }); it('strips template args and namespace to the bare class name', () => { @@ -4864,11 +4865,11 @@ CPPType* ApiHelper { + it('does not emit for primitives, extern declarations, or the most-vexing parse', () => { expect(instNames('int x(5);')).toEqual([]); // primitive direct-init expect(instNames('int y{6};')).toEqual([]); // primitive brace-init expect(instNames('auto z = make();')).toEqual([]); // auto + call (handled elsewhere) - expect(instNames('Calculator deferred;')).toEqual([]); // default construction, no args + expect(instNames('extern Calculator deferred;')).toEqual([]); // declaration, no construction expect(instNames('Calculator calc();')).toEqual([]); // function declaration (most-vexing parse) }); diff --git a/__tests__/kernel-dart-parity.test.ts b/__tests__/kernel-dart-parity.test.ts index 812f9f8c6..a68906cea 100644 --- a/__tests__/kernel-dart-parity.test.ts +++ b/__tests__/kernel-dart-parity.test.ts @@ -125,6 +125,28 @@ describe.skipIf(!kernelBuilt)('kernel Dart extraction parity', () => { }); } + it('extension types contain their getter and method with complete bodies', () => { + const result = assertParity('extension.dart', `extension type Meters(double value) { + double get km => value / 1000; + void report() { + print(km); + } +} +`, 4); + const owner = result.nodes.find(n => n.name === 'Meters')!; + expect(owner.kind).toBe('class'); + const getter = result.nodes.find(n => n.name === 'km')!; + const method = result.nodes.find(n => n.name === 'report')!; + expect(getter.qualifiedName).toBe('Meters::km'); + expect(method.qualifiedName).toBe('Meters::report'); + expect(method.endLine).toBe(5); + for (const member of [getter, method]) { + expect(member.kind).toBe('method'); + expect(result.edges.some(e => e.kind === 'contains' && e.source === owner.id && e.target === member.id)).toBe(true); + } + expect(result.unresolvedReferences.some(r => r.referenceName === 'print' && r.fromNodeId === method.id)).toBe(true); + }); + it('double-walk pins: duplicate local-fn nodes share an id; refs interleave', () => { const src = fs.readFileSync(path.join(FIXTURE_DIR, 'TortureDoubleWalk.dart'), 'utf8'); const result = assertParity('fixtures/TortureDoubleWalk.dart', src, 5); diff --git a/__tests__/kernel-deep-nesting.test.ts b/__tests__/kernel-deep-nesting.test.ts index 7529ff3b3..6743abe0f 100644 --- a/__tests__/kernel-deep-nesting.test.ts +++ b/__tests__/kernel-deep-nesting.test.ts @@ -113,7 +113,8 @@ function deepBraces(depth: number): string { const ENV_KEYS = ['CODEGRAPH_KERNEL', 'CODEGRAPH_KERNEL_LANGS', 'CODEGRAPH_KERNEL_PATH'] as const; let savedEnv: Record; -describe.skipIf(!kernelBuilt)('kernel deep-nesting guard (#1581)', () => { +// This suite requires native routing; the WASM-only matrix disables it explicitly. +describe.skipIf(!kernelBuilt || process.env.CODEGRAPH_KERNEL === '0')('kernel deep-nesting guard (#1581)', () => { let routed: Language[] = []; beforeAll(async () => { diff --git a/__tests__/kernel-retry-materialize.test.ts b/__tests__/kernel-retry-materialize.test.ts index 23965bd2d..d9545664a 100644 --- a/__tests__/kernel-retry-materialize.test.ts +++ b/__tests__/kernel-retry-materialize.test.ts @@ -37,7 +37,8 @@ const KERNEL_PATH = path.join( ); const kernelBuilt = fs.existsSync(KERNEL_PATH); -describe.skipIf(!kernelBuilt)('kernel buffer-transport storage (#1541)', () => { +// This suite requires native routing; the WASM-only matrix disables it explicitly. +describe.skipIf(!kernelBuilt || process.env.CODEGRAPH_KERNEL === '0')('kernel buffer-transport storage (#1541)', () => { let dir: string; let cg: CodeGraph; diff --git a/__tests__/kernel-scaffold.test.ts b/__tests__/kernel-scaffold.test.ts index f74bb897a..5254258c3 100644 --- a/__tests__/kernel-scaffold.test.ts +++ b/__tests__/kernel-scaffold.test.ts @@ -144,7 +144,7 @@ describe.skipIf(!kernelBuilt)('kernel scaffold', () => { const result = tryKernelExtract('src/utils.ts', FIXTURE, 'typescript')!; for (const n of result.nodes) { if (n.kind === 'file') continue; - expect(n.id).toBe(generateNodeId('src/utils.ts', n.kind, n.name, n.startLine)); + expect(n.id).toBe(generateNodeId('src/utils.ts', n.kind, n.name, n.startLine, n.startColumn)); } }); diff --git a/__tests__/kernel-tsjs-parity.test.ts b/__tests__/kernel-tsjs-parity.test.ts index 46ef15f89..dbaeb0ae6 100644 --- a/__tests__/kernel-tsjs-parity.test.ts +++ b/__tests__/kernel-tsjs-parity.test.ts @@ -96,6 +96,17 @@ describe.skipIf(!kernelBuilt)('kernel TS/JS extraction parity', () => { return viaWasm; } + it.each([ + ['ts', 'typescript'], ['tsx', 'tsx'], ['js', 'javascript'], ['jsx', 'jsx'], + ] as const)('keeps same-line accessor IDs distinct: %s (#1349)', (ext, language) => { + const result = assertParity(`accessors.${ext}`, `const emoji = '😀'; class Box { get value() { return read(); } set value(v) { write(v); } }`, language); + const accessors = result.nodes.filter(n => n.kind === 'method' && n.name === 'value'); + expect(accessors).toHaveLength(2); + expect(new Set(accessors.map(n => n.id)).size).toBe(2); + expect(result.unresolvedReferences.find(r => r.referenceName === 'read')?.fromNodeId).toBe(accessors[0].id); + expect(result.unresolvedReferences.find(r => r.referenceName === 'write')?.fromNodeId).toBe(accessors[1].id); + }); + it.each([ ['ts', 'typescript'], ['tsx', 'tsx'], ['js', 'javascript'], ['jsx', 'jsx'], ] as const)('preserves nested receivers and argument calls: %s (#1794)', (ext, language) => { diff --git a/__tests__/mcp-project-lifecycle.test.ts b/__tests__/mcp-project-lifecycle.test.ts new file mode 100644 index 000000000..bdd2c7221 --- /dev/null +++ b/__tests__/mcp-project-lifecycle.test.ts @@ -0,0 +1,185 @@ +import { afterEach, describe, expect, it, vi } from 'vitest'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { spawn } from 'child_process'; +import { once } from 'events'; +// Exercise the shipped CommonJS path, including lazy project opens. +const { CodeGraph } = require('../dist') as typeof import('../src'); +const { MCPEngine } = require('../dist/mcp/engine') as typeof import('../src/mcp/engine'); +type MCPEngine = import('../src/mcp/engine').MCPEngine; +import { getWriterPidPath } from '../src/mcp/writer-lock'; + +const roots: string[] = []; +const engines: MCPEngine[] = []; +async function project(): Promise { + const root = fs.realpathSync(fs.mkdtempSync(path.join(os.tmpdir(), 'cg-project-lifecycle-'))); + roots.push(root); + fs.writeFileSync(path.join(root, 'before.ts'), 'export function before() { return 1; }'); + const cg = await CodeGraph.init(root); + await cg.indexAll(); + cg.close(); + return root; +} +function engine(options = {}): MCPEngine { + const result = new MCPEngine(options); + engines.push(result); + return result; +} +async function files(e: MCPEngine, root: string): Promise { + return JSON.stringify(await e.getToolHandler().execute('codegraph_files', { projectPath: root })); +} +afterEach(async () => { + for (const e of engines.splice(0)) await e.stop(); + for (const root of roots.splice(0)) fs.rmSync(root, { recursive: true, force: true }); + vi.unstubAllEnvs(); + vi.restoreAllMocks(); +}); + +describe('explicit project MCP lifecycle (#1835)', () => { + it('catches up each existing project once and shares concurrent opens', async () => { + const a = await project(); + const b = await project(); + fs.unlinkSync(path.join(a, 'before.ts')); + fs.unlinkSync(path.join(b, 'before.ts')); + fs.writeFileSync(path.join(a, 'after.ts'), 'export function after() {}'); + fs.writeFileSync(path.join(b, 'after.ts'), 'export function after() {}'); + const sync = vi.spyOn(CodeGraph.prototype, 'sync'); + const e = engine(); + const results = await Promise.all([files(e, a), files(e, a), files(e, b)]); + for (const result of results) { + expect(result).toContain('after.ts'); + expect(result).not.toContain('before.ts'); + } + expect(sync).toHaveBeenCalledTimes(2); + expect(fs.existsSync(getWriterPidPath(a))).toBe(true); + expect(fs.existsSync(getWriterPidPath(b))).toBe(true); + await e.stop(); + expect(fs.existsSync(getWriterPidPath(a))).toBe(false); + expect(fs.existsSync(getWriterPidPath(b))).toBe(false); + }); + + it('auto-syncs subsequent edits in explicit projects', async () => { + vi.stubEnv('CODEGRAPH_WATCH_DEBOUNCE_MS', '100'); + const root = await project(); + const e = engine(); + await files(e, root); + fs.writeFileSync(path.join(root, 'live.ts'), 'export function live() {}'); + await vi.waitFor(async () => expect(await files(e, root)).toContain('live.ts'), { timeout: 10000, interval: 100 }); + }, 15000); + + it('reuses default project lifecycle for explicit requests', async () => { + const root = await project(); + const sync = vi.spyOn(CodeGraph.prototype, 'sync'); + const e = engine(); + await e.ensureInitialized(root); + await files(e, root); + expect(sync).toHaveBeenCalledTimes(1); + }); + + it.each(['option', 'environment'])('respects no-watch %s without catch-up writes', async (mode) => { + const root = await project(); + fs.unlinkSync(path.join(root, 'before.ts')); + if (mode === 'environment') vi.stubEnv('CODEGRAPH_NO_WATCH', '1'); + const sync = vi.spyOn(CodeGraph.prototype, 'sync'); + const e = engine(mode === 'option' ? { watch: false } : {}); + expect(await files(e, root)).toContain('before.ts'); + expect(sync).not.toHaveBeenCalled(); + expect(fs.existsSync(getWriterPidPath(root))).toBe(false); + }); + + it('does not catch up, steal or remove another live writer lock', async () => { + const root = await project(); + const lock = JSON.stringify({ pid: process.ppid, mode: 'test', startedAt: Date.now() }); + fs.writeFileSync(getWriterPidPath(root), lock); + const sync = vi.spyOn(CodeGraph.prototype, 'sync'); + const e = engine(); + await files(e, root); + expect(sync).not.toHaveBeenCalled(); + await e.stop(); + expect(fs.readFileSync(getWriterPidPath(root), 'utf8')).toBe(lock); + }); + + it('takes over an explicit project on the next request after another engine exits', async () => { + vi.stubEnv('CODEGRAPH_WATCH_DEBOUNCE_MS', '100'); + const root = await project(); + const script = ` + const { MCPEngine } = require(process.argv[1]); + const e = new MCPEngine(); + process.on('SIGTERM', async () => { await e.stop(); process.exit(0); }); + e.getToolHandler().execute('codegraph_status', { projectPath: process.argv[2] }) + .then(() => process.send('ready')); + `; + const child = spawn(process.execPath, ['--liftoff-only', '-e', script, + path.resolve(__dirname, '../dist/mcp/engine.js'), root], { + stdio: ['ignore', 'ignore', 'pipe', 'ipc'], env: process.env, + }); + child.stderr!.on('data', () => {}); + const closed = once(child, 'close'); + try { + await once(child, 'message'); + const e = engine(); + const sync = vi.spyOn(CodeGraph.prototype, 'sync'); + await files(e, root); + expect(sync).not.toHaveBeenCalled(); + child.kill('SIGTERM'); + await closed; + fs.writeFileSync(path.join(root, 'takeover.ts'), 'export function takeover() {}'); + expect(await files(e, root)).toContain('takeover.ts'); + expect(sync).toHaveBeenCalledTimes(1); + const lock = JSON.parse(fs.readFileSync(getWriterPidPath(root), 'utf8')); + expect(lock.pid).toBe(process.pid); + fs.writeFileSync(path.join(root, 'after-takeover.ts'), 'export function afterTakeover() {}'); + await vi.waitFor(async () => expect(await files(e, root)).toContain('after-takeover.ts'), { timeout: 10000, interval: 100 }); + } finally { + if (child.exitCode === null && child.signalCode === null) child.kill('SIGKILL'); + await closed; + } + }, 20000); + + it('drains an in-flight reconcile before closing its database or releasing ownership', async () => { + const root = await project(); + fs.writeFileSync(path.join(root, 'added.ts'), 'export function added() {}'); + const { DatabaseConnection } = require('../dist/db') as typeof import('../src/db'); + let release!: () => void; + const paused = new Promise(resolve => { release = resolve; }); + let entered!: () => void; + const started = new Promise(resolve => { entered = resolve; }); + const maintenance = DatabaseConnection.prototype.runMaintenance; + vi.spyOn(DatabaseConnection.prototype, 'runMaintenance').mockImplementation(async function () { + entered(); + await paused; + return maintenance.call(this); + }); + const close = vi.spyOn(DatabaseConnection.prototype, 'close'); + const open = vi.spyOn(CodeGraph, 'openSync'); + const e = engine(); + const query = files(e, root); + await started; + const stopped = e.stop(); + try { + expect(e.stop()).toBe(stopped); + await Promise.resolve(); + expect(close).not.toHaveBeenCalled(); + expect(fs.existsSync(getWriterPidPath(root))).toBe(true); + } finally { + release(); + } + await stopped; + await query; + expect(close).toHaveBeenCalledTimes(1); + expect(open).toHaveBeenCalledTimes(1); + expect(fs.existsSync(getWriterPidPath(root))).toBe(false); + const cg = CodeGraph.openSync(root); + expect(cg.getChangedFiles()).toEqual({ added: [], modified: [], removed: [] }); + cg.close(); + }); + + it('never creates an index for an unindexed project', async () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-unindexed-lifecycle-')); + roots.push(root); + const e = engine(); + expect(await files(e, root)).toContain("isn't indexed"); + expect(fs.existsSync(path.join(root, '.codegraph'))).toBe(false); + }); +}); diff --git a/__tests__/mcp-writer-lock.test.ts b/__tests__/mcp-writer-lock.test.ts index be68f944c..e53cffed5 100644 --- a/__tests__/mcp-writer-lock.test.ts +++ b/__tests__/mcp-writer-lock.test.ts @@ -9,6 +9,7 @@ import * as fs from 'fs'; import * as os from 'os'; import * as path from 'path'; import { CodeGraph } from '../src'; +import { stopDaemonAt } from '../src/mcp/daemon-registry'; import { getWriterPidPath } from '../src/mcp/writer-lock'; const BIN = path.resolve(__dirname, '../dist/bin/codegraph.js'); @@ -50,12 +51,20 @@ describe('issue #1740 — direct-mode writer lock', () => { }); afterEach(async () => { - for (const c of children) { - try { c.kill('SIGTERM'); } catch { /* ignore */ } - } + const exits = children.map((c) => new Promise((resolve, reject) => { + if (c.exitCode !== null || c.signalCode !== null) { resolve(); return; } + const timer = setTimeout(() => reject(new Error(`MCP child ${c.pid} did not exit`)), 5000); + c.once('close', () => { clearTimeout(timer); resolve(); }); + c.kill('SIGTERM'); + })); + // The proxies are not the detached writer. Verify its identity and stop + // only the daemon belonging to this uniquely-created test root. + await stopDaemonAt(realRoot); + await Promise.all(exits); children.length = 0; - await sleep(300); - try { fs.rmSync(tempDir, { recursive: true, force: true }); } catch { /* ignore */ } + if (process.platform !== 'win32') expect(fs.existsSync(getWriterPidPath(realRoot))).toBe(false); + fs.rmSync(tempDir, { recursive: true, force: true, maxRetries: 10, retryDelay: 50 }); + expect(fs.existsSync(tempDir)).toBe(false); }); it('second CODEGRAPH_NO_DAEMON serve --mcp exits with writer-lock error', async () => { diff --git a/__tests__/resolution.test.ts b/__tests__/resolution.test.ts index cada60bee..aaffebef8 100644 --- a/__tests__/resolution.test.ts +++ b/__tests__/resolution.test.ts @@ -1295,7 +1295,7 @@ class Widget { public: Widget(int a, int b) {} }; int runStack(int a, int b) { Calculator calc(0); return calc.add(a, b); } int runBrace() { Widget w{1, 2}; return 0; } int runHeap(int a, int b) { Calculator* c = new Calculator(0); return c->add(a, b); } -void noise() { int x(5); int y{6}; Calculator deferred; } +void noise() { int x(5); int y{6}; extern Calculator deferred; } ` ); cg = await CodeGraph.init(tempDir, { index: true }); @@ -1314,8 +1314,8 @@ void noise() { int x(5); int y{6}; Calculator deferred; } expect(instTargets('runBrace').map((n) => `${n.kind}:${n.name}`)).toContain('class:Widget'); // Heap still works (regression guard). expect(instTargets('runHeap').map((n) => `${n.kind}:${n.name}`)).toContain('class:Calculator'); - // Primitives (`int x(0)`/`int y{6}`) and bare default construction - // (`Calculator deferred;`) must NOT mint an instantiates edge. + // Primitives and extern declarations do not construct an object. + // Actual default construction is covered by cpp-remaining-regressions. expect(instTargets('noise')).toHaveLength(0); }); diff --git a/__tests__/same-line-ids.test.ts b/__tests__/same-line-ids.test.ts new file mode 100644 index 000000000..e31a84cfe --- /dev/null +++ b/__tests__/same-line-ids.test.ts @@ -0,0 +1,26 @@ +import { it, expect } from 'vitest'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { CodeGraph } from '../src'; + +it('persists both same-line accessors and keeps their calls separate (#1349)', async () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-accessor-ids-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'box.ts'), `function read() {} function write(v) {}\nexport class Box { get value() { return read(); } set value(v) { write(v); } }`); + cg = CodeGraph.initSync(root); + await cg.indexAll(); + const members = cg.getNodesByName('value').sort((a, b) => a.startColumn - b.startColumn); + expect(members).toHaveLength(2); + expect(new Set(members.map(n => n.id)).size).toBe(2); + const callees = (id: string) => cg!.getCallees(id).filter(x => x.edge.kind === 'calls').map(x => x.node.name); + expect(callees(members[0].id)).toEqual(['read']); + expect(callees(members[1].id)).toEqual(['write']); + await cg.indexAll(); + expect(cg.getNodesByName('value').map(n => n.id).sort()).toEqual(members.map(n => n.id).sort()); + } finally { + cg?.close(); + fs.rmSync(root, { recursive: true, force: true }); + } +}); diff --git a/codegraph-kernel/src/ccpp/mod.rs b/codegraph-kernel/src/ccpp/mod.rs index e82715d76..6ee5bb285 100644 --- a/codegraph-kernel/src/ccpp/mod.rs +++ b/codegraph-kernel/src/ccpp/mod.rs @@ -599,6 +599,13 @@ impl<'t> Walker<'t> { } } if let Some(name_node) = node.child_by_field_name("declarator") { + if self.variant == Variant::C && node.kind() == "function_definition" + && name_node.kind() == "parenthesized_declarator" && name_node.named_child_count() == 1 + { + if let Some(name) = name_node.named_child(0).filter(|n| n.kind() == "identifier") { + return self.text(name).to_string(); + } + } let mut resolved = name_node; // Unwrap pointer/reference declarators (`int* f()`, `T& f()`). while matches!(resolved.kind(), "pointer_declarator" | "reference_declarator") { @@ -668,7 +675,7 @@ impl<'t> Walker<'t> { return None; } let params = declarator.child_by_field_name("parameters")?; - if params.named_child_count() < 2 { + if params.named_child_count() < 1 { return None; } let lone_ident_text = |p: Node| -> Option<&'t str> { @@ -685,6 +692,15 @@ impl<'t> Walker<'t> { if !has_lower_re().is_match(name) { return None; } + if params.named_child_count() == 1 { + let pattern = format!(r"(?m)^\s*#\s*define[ \t]+{}\(([A-Za-z_]\w*)\)[ \t]+([^\n]+)", regex::escape(macro_name)); + let definition = regex::Regex::new(&pattern).ok()?; + let captures = definition.captures(self.src)?; + let function_pattern = format!(r"\b{}[ \t]*\(", regex::escape(&captures[1])); + if !regex::Regex::new(&function_pattern).ok()?.is_match(&captures[2]) { + return None; + } + } for i in 1..params.named_child_count() { if let Some(p) = params.named_child(i) { if lone_ident_text(p).is_some() { @@ -818,6 +834,15 @@ impl<'t> Walker<'t> { let kind = node.kind(); let mut skip_children = false; + if kind == "preproc_function_def" { + if let Some(name_node) = node.child_by_field_name("name") { + let name = self.text(name_node).to_string(); + let signature = Some(self.text(node).trim().to_string()); + self.create_node("constant", &name, node, Extra { signature, ..Extra::default() }); + } + return; + } + // C++ namespace blocks: prefix-only, no node (#1291/#1093). Anonymous // namespaces fall through to the generic walk. if self.variant == Variant::Cpp && kind == "namespace_definition" { @@ -1456,6 +1481,11 @@ impl<'t> Walker<'t> { /// isCppStackConstruction (#1035). fn is_cpp_stack_construction(&self, node: Node) -> bool { + for i in 0..node.named_child_count() { + if let Some(child) = node.named_child(i) { + if child.kind() == "storage_class_specifier" && self.text(child) == "extern" { return false; } + } + } let Some(type_node) = node.child_by_field_name("type") else { return false }; if !matches!( type_node.kind(), @@ -1465,6 +1495,7 @@ impl<'t> Walker<'t> { } for i in 0..node.named_child_count() { let Some(child) = node.named_child(i) else { continue }; + if child.kind() == "identifier" { return true; } if child.kind() != "init_declarator" { continue; } @@ -1570,6 +1601,11 @@ impl<'t> Walker<'t> { fn visit_for_calls_and_structure(&mut self, node: Node<'t>) { stack_guard!(); let kind = node.kind(); + if kind == "preproc_function_def" { + self.visit_node(node); + return; + } + self.maybe_capture_fn_refs(node); if kind == "call_expression" { @@ -1584,6 +1620,12 @@ impl<'t> Walker<'t> { && self.is_cpp_stack_construction(node) { self.extract_instantiation(node); + if let (Some(type_node), Some(from)) = (node.child_by_field_name("type"), self.stack.last().map(|s| s.row)) { + let class_name = strip_cpp_template_args(self.text(type_node)); + if let Some(name) = class_name.split("::").filter(|s| !s.is_empty()).last() { + self.push_ref_at(from, &format!("{class_name}::{name}"), edge_kind_index("calls").unwrap(), node); + } + } } // C++ local fn-pointer bindings: declarations and branch reassignments. diff --git a/codegraph-kernel/src/dart.rs b/codegraph-kernel/src/dart.rs index 748410b10..7753e5858 100644 --- a/codegraph-kernel/src/dart.rs +++ b/codegraph-kernel/src/dart.rs @@ -398,7 +398,7 @@ impl<'t> Walker<'t> { while let Some(parent) = p { if matches!( parent.kind(), - "class_definition" | "mixin_declaration" | "extension_declaration" | "enum_declaration" + "class_definition" | "mixin_declaration" | "extension_declaration" | "extension_type_declaration" | "enum_declaration" ) { return parent.child_by_field_name("name").map(|n| self.text(n)); } @@ -630,7 +630,7 @@ impl<'t> Walker<'t> { self.extract_function(node); return; } - "class_definition" | "mixin_declaration" | "extension_declaration" => { + "class_definition" | "mixin_declaration" | "extension_declaration" | "extension_type_declaration" => { self.extract_class(node); return; } diff --git a/codegraph-kernel/src/ids.rs b/codegraph-kernel/src/ids.rs index 23b3aeb1c..6f9a3250b 100644 --- a/codegraph-kernel/src/ids.rs +++ b/codegraph-kernel/src/ids.rs @@ -3,6 +3,9 @@ //! //! `${kind}:${sha256(`${filePath}:${kind}:${name}:${line}`).hex[0..32]}` //! +//! TS/JS uses `node_id_at_column`, appending `:${utf16Column}` before hashing +//! so same-line declarations have distinct identities. +//! //! and the file-node special case in `TreeSitterExtractor.extract()`: //! //! `file:${filePath}` @@ -14,6 +17,10 @@ use sha2::{Digest, Sha256}; pub fn node_id(file_path: &str, kind: &str, name: &str, line: u32) -> String { + node_id_at_column(file_path, kind, name, line, None) +} + +pub fn node_id_at_column(file_path: &str, kind: &str, name: &str, line: u32, column: Option) -> String { let mut hasher = Sha256::new(); hasher.update(file_path.as_bytes()); hasher.update(b":"); @@ -22,6 +29,10 @@ pub fn node_id(file_path: &str, kind: &str, name: &str, line: u32) -> String { hasher.update(name.as_bytes()); hasher.update(b":"); hasher.update(line.to_string().as_bytes()); + if let Some(column) = column { + hasher.update(b":"); + hasher.update(column.to_string().as_bytes()); + } let digest = hasher.finalize(); // 32 hex chars = first 16 bytes. let mut hex = String::with_capacity(kind.len() + 1 + 32); diff --git a/codegraph-kernel/src/tsjs/mod.rs b/codegraph-kernel/src/tsjs/mod.rs index d9932ad6f..3118be3fc 100644 --- a/codegraph-kernel/src/tsjs/mod.rs +++ b/codegraph-kernel/src/tsjs/mod.rs @@ -348,7 +348,7 @@ impl<'t> Walker<'t> { return None; } let start_line = self.line_of(node); - let id = ids::node_id(self.file_path, kind, name, start_line); + let id = ids::node_id_at_column(self.file_path, kind, name, start_line, Some(self.col_of(node))); // endLine body extension: resolveBody only (TS/JS: function-valued // class fields whose body nests in the arrow / HOF-wrapped arrow). diff --git a/docs/validation-remaining-defects-2026-09-12.md b/docs/validation-remaining-defects-2026-09-12.md new file mode 100644 index 000000000..ff8de7c49 --- /dev/null +++ b/docs/validation-remaining-defects-2026-09-12.md @@ -0,0 +1,127 @@ +# Оставшиеся дефекты: исправления и реальная проверка — 12 сентября 2026 + +База работы: bc4a057d, Linux x64 / Node 24.15.0. Extraction stamp 31. +Работа разделена на C/C++, IDs/Dart и MCP lifecycle; callback и интеграция +проверялись отдельно. Новые дефекты, найденные в ходе реальных проверок, +закреплены регрессиями до окончательной проверки. + +## Callback и совместимость TS/TSX (#1355) + +- this.handler разрешается по лексическому owner через contains, затем по + extends для наследуемого метода. Одноимённый метод соседнего файла или + другого класса, в том числе на одной строке, не является кандидатом. +- Registrar/dispatcher с одноимённым полем связываются только внутри своего + класса. Сохранена регистрация this.handler.bind(this). +- Типизированный method lookup использует семейство языка: TSX/JSX вызов + метода TS-класса не отбрасывается из-за разных extension tags. + +Реальный Excalidraw afa3a653fc5d2b742adcbd5a6063187b056d2419: неизменённые +App.tsx, Scene.ts, barrel index.ts и tsconfig.json скопированы в storage. +App::componentDidMount → Scene::onUpdate (строка3818), Scene::triggerUpdate → +единственный App::triggerRender (строка5392). Добавление отдельного +искусственного Decoy.triggerRender не меняет target. Native/WASM результаты +совпадают; SHA исходников сохранены в real-excalidraw-callback-native.json. +Это настоящий observer path на выбранных файлах, не весь браузерный runtime. + +## C/C++ (#1838, #1839, #1373) + +- Function-like #define представлены невызываемыми constant nodes. Numeric/ + object-like defines не добавлены: они увеличивали ADRC-граф на ~57k узлов + без пользы для исправления вызовов. +- Макросы проверяются до name/import resolution. Учитываются порядок + define/undef, quoted sibling headers, include-root и однозначный suffix + fallback. Macro constant никогда не становится target обычного calls. +- Видимость вычисляется по завершённому обходу translation unit, а не по + зависимому от порядка обхода child-cache. Cache ограничен 128 root timelines. +- Локально решаемые if/ifdef/ifndef/elif/else и defined/числовые флаги + исключают неактивные ветки. Неизвестные build guards остаются возможными; + факты внутри одной hypothetical ветки сохраняют корреляцию. Внешние flags, + произвольные арифметические выражения и полный preprocessing не реализованы. +- Default/direct/brace construction дают calls к constructor method отдельно + от instantiates. Extern, pointer/reference, prototype и aggregate controls + не создают вызов произвольного конструктора. +- Одноаргументные объявления функций через макрос получают реальное имя + при подтверждённой форме определения, а не угадываются по любому аргументу. + +ADRC extraction native/WASM: 717 совпадений на 881 исходном файле src/main, +164 штатных parse-error deferrals в WASM, 0 diff. Это не означает, что каждый +из 881 файлов разобран native. Полная пересборка изолированной копии проверяет +отдельно ложные macro calls и 15 сохранённых настоящих вызовов, включая sin_approx. + +## IDs и Dart (#1349 и прежние parity failures) + +TS/JS/TSX/JSX IDs учитывают UTF-16 колонку: getter/setter одной строки сохраняют +разные строки SQLite и правильные исходящие вызовы. Формат IDs остальных +языков не менялся; это исправление подтверждённого TS/JS-сценария, не заявление +об отсутствии любых возможных коллизий в остальных языках. + +Dart extension_type_declaration распознаётся контейнером в native и WASM; +getter и method имеют корректного владельца и границы тела. Четыре старых +Dart parity failures устранены без удаления их assertions. + +Реальные проверки: 83 CodeGraph extraction/MCP/UI-файла — byte parity 83/83, +без deferral; dart-lang/shelf f36dd68654814e0498c30b9f7ccc4bb0aa2bc118 — +89/99 byte parity, 10 штатных deferrals, 0 diff. В shelf нет extension types: +они проверены отдельными fixtures, включая прежние LF/CRLF failures. + +## MCP projectPath и cleanup (#1835, #1782) + +- Explicit projectPath получает один catch-up gate, watcher и writer ownership. + Несколько запросов разделяют первоначальную синхронизацию; no-watch сохранён. + Новые индексы автоматически не создаются. +- Если root обслуживает другой writer, текущий engine остаётся читателем. + После ухода владельца следующий explicit-запрос берёт ownership и запускает + catch-up/watch. Фоновый takeover без следующего запроса не реализован. +- closeAsync прекращает watch и дожидается текущих записей. Daemon/direct/proxy + ожидают engine.stop. Поздний запрос не открывает повторно закрываемый cache. +- mcp-writer-lock test ждёт proxies, останавливает подтверждённый daemon своего + temp-проекта и проверяет удаление каталога без подавления ошибок cleanup. + +Один реальный stdio JSON-RPC MCP обслужил копии CSQTT desktop (51файл) и bot +(30файлов): catch-up до ответа, последующие правки обоих проектов дают +SHA256(source)==stored hash. Завершение exit0, writer locks удалены, shutdown +sync errors отсутствуют. Проверены также два engine в разных OS-процессах +с передачей writer ownership после следующего запроса. + +## Артефакты + +Локальные .scratch/cpp-real-adrc-results.json, cpp-real-adrc-validation.txt, +cpp-remaining-validation-20260912.md, cpp-adrc-parity-20260912.txt, +ids-real-ts-parity.log, dart-shelf-parity.log, real-excalidraw-callback*.json, +real-project-lifecycle-mcp-results.json и их воспроизводимые scripts. +Регрессионные tests включены в исходники. Windows/macOS не проверялись. + +Verilog остаётся структурным графом; полный elaboration/timing — отдельная +интеграция toolchain и не добавлен в этот пакет исправлений. + +## Финальная проверка + +Полный native-suite на замороженных исходниках: **4715 passed, 9 skipped**, +**278 test files passed**, 0 failed. Прежние четыре Dart parity failures +устранены. Команда: `CODEGRAPH_KERNEL_EXPECT=1 npm test -- --maxWorkers 2 --minWorkers 1`. + +Финальная ADRC-копия после recreate: 2021файл; 0 проверенных ложных macro calls; +15/15 настоящих контрольных calls сохранены; 32811nodes,70930edges,22663calls. +Полная длительность9.217с, resolver6.311с. 0filesErrored; 7 прежних parse warnings +в config headers. Это не обещание полного разбора всех условных C-конфигураций. + +Ошибочные промежуточные варианты (все numeric defines; child-cache при cyclic +includes; потеря локального FAST_MATH в unknown arm) не опубликованы. Они +выявлены реальными controls/review и закреплены дополнительными тестами. + +Native-only deep-nesting и raw-kernel transport tests теперь учитывают +CODEGRAPH_KERNEL=0. В WASM-arm они не могут требовать выключенный kernel; +в native-arm отдельно повторены: 10/10 passed. Это исправление условий +тестовой матрицы, а не удаление native-проверок. + +Полный WASM-suite: **4705 passed, 19 skipped, 0 failed**; 277 test files passed, +1 native-only suite skipped. Команда: `CODEGRAPH_KERNEL=0 npm test -- --maxWorkers 2 --minWorkers 1`. +Native-only suites дополнительно проверены 10/10 в native-режиме. +TypeScript, build viewer/30 грамматик и diff whitespace прошли. +Все 10 активных индексов пересозданы с extraction31; появившиеся во время +работы три изменения CSQTT desktop дополнительно поглощены sync. + +SHA256 собранного native kernel: +`a8acf04245b805c136a777ab8f8bd065c100bb2a7dd7b9bfd2915a45e241ca1b`. +Существующие чужие MCP-процессы не перезапускались; новый runtime загружается +после перезапуска соответствующей сессии. diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index d121d3d0b..c8672a16a 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 30; +export const EXTRACTION_VERSION = 31; diff --git a/src/extraction/languages/c-cpp.ts b/src/extraction/languages/c-cpp.ts index afce3a014..72af80743 100644 --- a/src/extraction/languages/c-cpp.ts +++ b/src/extraction/languages/c-cpp.ts @@ -41,8 +41,9 @@ function findDeclaratorQualifiedId(declarator: SyntaxNode): SyntaxNode | undefin * (`TEST` never matches; K&R C definitions have lowercase names); * - the first "parameter" is a LONE identifier (no type, no declarator) * containing a lowercase letter — the name being defined; - * - at least one more parameter follows and NONE of them is another lone - * identifier — a second bare arg means the first isn't the name (gtest's + * - additional parameters, if present, must not be lone identifiers; with + * only one argument, a same-file #define must declare that parameter as + * the function name. A second bare arg means the first isn't the name (gtest's * `TEST_F(Fixture, Name)`, `PYBIND11_MODULE(ext, m)`, * google-benchmark's `BENCHMARK_DEFINE_F(Fix, name)` all bail here). */ @@ -55,7 +56,7 @@ function recoverCppMacroDefinedName(node: SyntaxNode, source: string): string | const macroName = getNodeText(inner, source); if (!/^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+$/.test(macroName)) return undefined; const params = getChildByField(declarator, 'parameters'); - if (!params || params.namedChildCount < 2) return undefined; + if (!params || params.namedChildCount < 1) return undefined; const loneIdentText = (p: SyntaxNode): string | null => p.type === 'parameter_declaration' && p.namedChildCount === 1 && @@ -65,6 +66,12 @@ function recoverCppMacroDefinedName(node: SyntaxNode, source: string): string | const first = params.namedChild(0); const name = first ? loneIdentText(first) : null; if (!name || !/[a-z]/.test(name)) return undefined; + if (params.namedChildCount === 1) { + // A single bare argument is ambiguous unless this file defines the macro + // as a function declaration using its parameter as the function name. + const definition = source.match(new RegExp(`^\\s*#\\s*define[ \\t]+${macroName}\\(([A-Za-z_]\\w*)\\)[ \\t]+([^\\n]+)`, 'm')); + if (!definition || !new RegExp(`\\b${definition[1]}[ \\t]*\\(`).test(definition[2]!)) return undefined; + } for (let i = 1; i < params.namedChildCount; i++) { const p = params.namedChild(i); if (p && loneIdentText(p) !== null) return undefined; @@ -211,6 +218,14 @@ export const cExtractor: LanguageExtractor = { preParse: preParseCSource, // Universal net: recover a real name from any macro-mangled function name. recoverMangledName: recoverMangledCppName, + resolveName: (node, source) => { + const declarator = getChildByField(node, 'declarator'); + const name = declarator?.namedChild(0); + // C parses FN(name) { ... } as type FN + (name) declarator. + if (node.type === 'function_definition' && declarator?.type === 'parenthesized_declarator' && + declarator.namedChildCount === 1 && name?.type === 'identifier') return getNodeText(name, source); + return undefined; + }, functionTypes: ['function_definition'], classTypes: [], methodTypes: [], diff --git a/src/extraction/languages/dart.ts b/src/extraction/languages/dart.ts index 8fc7bdc9f..db520e287 100644 --- a/src/extraction/languages/dart.ts +++ b/src/extraction/languages/dart.ts @@ -40,7 +40,7 @@ function dartEnclosingTypeName(node: SyntaxNode): string | undefined { while (p) { if ( p.type === 'class_definition' || p.type === 'mixin_declaration' || - p.type === 'extension_declaration' || p.type === 'enum_declaration' + p.type === 'extension_declaration' || p.type === 'extension_type_declaration' || p.type === 'enum_declaration' ) { return p.childForFieldName('name')?.text; } @@ -132,7 +132,7 @@ export const dartExtractor: LanguageExtractor = { importTypes: ['import_or_export'], callTypes: [], // Dart calls use identifier+selector, handled via extractBareCall variableTypes: [], - extraClassNodeTypes: ['mixin_declaration', 'extension_declaration'], + extraClassNodeTypes: ['mixin_declaration', 'extension_declaration', 'extension_type_declaration'], // A Dart `static_final_declaration` is exactly a top-level or class-`static` // `const`/`final` — the shared-constant idiom — so extract it as `constant` // for value-reference edges. Instance fields, `var`, and typed declarations diff --git a/src/extraction/tree-sitter-helpers.ts b/src/extraction/tree-sitter-helpers.ts index a6438e1b4..e2276ca7a 100644 --- a/src/extraction/tree-sitter-helpers.ts +++ b/src/extraction/tree-sitter-helpers.ts @@ -13,17 +13,20 @@ import { NodeKind } from '../types'; * Generate a unique node ID * * Uses a 32-character (128-bit) hash to avoid collisions when indexing - * large codebases with many files containing similar symbols. + * large codebases with many files containing similar symbols. The optional + * UTF-16 column distinguishes same-line declarations (TS/JS); omitted columns + * preserve the existing identity format for other extraction paths. */ export function generateNodeId( filePath: string, kind: NodeKind, name: string, - line: number + line: number, + column?: number ): string { const hash = crypto .createHash('sha256') - .update(`${filePath}:${kind}:${name}:${line}`) + .update(`${filePath}:${kind}:${name}:${line}${column === undefined ? '' : `:${column}`}`) .digest('hex') .substring(0, 32); return `${kind}:${hash}`; diff --git a/src/extraction/tree-sitter.ts b/src/extraction/tree-sitter.ts index b96ab74b4..d88f712a0 100644 --- a/src/extraction/tree-sitter.ts +++ b/src/extraction/tree-sitter.ts @@ -1020,6 +1020,17 @@ export class TreeSitterExtractor { if (skipChildren) return; } + // Preprocessor definitions are values, never executable callees. Keeping + // the directive lets resolution recognize visible macros through includes. + if ((this.language === 'c' || this.language === 'cpp') && + nodeType === 'preproc_function_def') { + const name = getChildByField(node, 'name'); + if (name) this.createNode('constant', getNodeText(name, this.source), node, { + signature: getNodeText(node, this.source).trim(), + }); + return; + } + // C++ namespace blocks: carry the namespace name as a qualifiedName prefix // while walking the body, so `namespace flash { void compute_attn(); }` // indexes compute_attn with qualifiedName `flash::compute_attn` and a @@ -1388,7 +1399,11 @@ export class TreeSitterExtractor { return null; } - const id = generateNodeId(this.filePath, kind, name, node.startPosition.row + 1); + // TS/JS permits same-name declarations on one line (notably get/set). + // Include the UTF-16 column for these languages so their edges cannot alias. + const column = ['typescript', 'tsx', 'javascript', 'jsx'].includes(this.language) + ? node.startPosition.column : undefined; + const id = generateNodeId(this.filePath, kind, name, node.startPosition.row + 1, column); // Some grammars (e.g. Dart) model a function/method body as a *sibling* of // the signature node, so the declaration node's own range is just the @@ -5090,13 +5105,13 @@ export class TreeSitterExtractor { * `auto` (`placeholder_type_specifier` — that form always carries a real * `call_expression`, already handled), and sized specifiers are excluded — * they construct no class; and - * - a declarator carries constructor arguments: an `init_declarator` whose - * `value` is an `argument_list` (`(args)`) or `initializer_list` (`{args}`). - * This skips default construction `Calculator c;` (no value) and the - * most-vexing-parse `Calculator c();` (a bodyless `function_declarator`, - * a function decl — not a construction). + * - a bare identifier (default construction), or an `init_declarator` + * whose value is an `argument_list` / `initializer_list`. Pointer, + * reference, and function declarators are excluded, including the + * most-vexing-parse `Calculator c();` (a function declaration). */ private isCppStackConstruction(node: SyntaxNode): boolean { + if (node.namedChildren.some(c => c.type === 'storage_class_specifier' && c.text === 'extern')) return false; const typeNode = getChildByField(node, 'type'); if ( !typeNode || @@ -5108,6 +5123,7 @@ export class TreeSitterExtractor { } for (let i = 0; i < node.namedChildCount; i++) { const child = node.namedChild(i); + if (child?.type === 'identifier') return true; // T object; default construction if (child?.type !== 'init_declarator') continue; const value = getChildByField(child, 'value'); if (value && (value.type === 'argument_list' || value.type === 'initializer_list')) { @@ -5590,6 +5606,12 @@ export class TreeSitterExtractor { const visitForCallsAndStructure = (node: SyntaxNode): void => { const nodeType = node.type; + if ((this.language === 'c' || this.language === 'cpp') && + nodeType === 'preproc_function_def') { + this.visitNode(node); + return; + } + // Function-as-value capture (#756) — function bodies are walked here, // not in visitNode, so the capture hook must fire in both walkers. @@ -5642,6 +5664,17 @@ export class TreeSitterExtractor { // (`Calculator calc(make())`) keeps its own `calls` ref. if (nodeType === 'declaration' && this.language === 'cpp' && this.isCppStackConstruction(node)) { this.extractInstantiation(node); + const type = getChildByField(node, 'type'); + const className = type ? stripCppTemplateArgs(getNodeText(type, this.source)) : ''; + const name = className.split('::').filter(Boolean).pop(); + const callerId = this.nodeStack[this.nodeStack.length - 1]; + if (name && callerId) this.unresolvedReferences.push({ + fromNodeId: callerId, + referenceName: `${className}::${name}`, + referenceKind: 'calls', + line: node.startPosition.row + 1, + column: node.startPosition.column, + }); } // C++ local function-pointer bindings (see cppLocalFnPtrs): record diff --git a/src/index.ts b/src/index.ts index 3a05a1f95..89997b667 100644 --- a/src/index.ts +++ b/src/index.ts @@ -455,6 +455,12 @@ export class CodeGraph { this.db.close(); } + /** Stop watching and drain in-flight index writes before closing SQLite. */ + async closeAsync(): Promise { + this.unwatch(); + await this.indexMutex.withLock(() => this.close()); + } + /** * Get the project root directory */ diff --git a/src/mcp/daemon.ts b/src/mcp/daemon.ts index 04ca7e6c1..0342ee44a 100644 --- a/src/mcp/daemon.ts +++ b/src/mcp/daemon.ts @@ -350,7 +350,7 @@ export class Daemon { await new Promise((resolve) => this.server!.close(() => resolve())); this.server = null; } - this.engine.stop(); + await this.engine.stop(); this.cleanupLockfile(); deregisterDaemon(this.projectRoot); if (process.platform !== 'win32') { diff --git a/src/mcp/engine.ts b/src/mcp/engine.ts index 734fafa4f..07b7f6bee 100644 --- a/src/mcp/engine.ts +++ b/src/mcp/engine.ts @@ -67,11 +67,12 @@ export class MCPEngine { // Throttle for the retry path's sub-project down-scan (#1606) — the scan is // bounded but shouldn't run on every tool call in the no-default state. private lastRetrySubScanAt = 0; - private watcherStarted = false; + private watchedProjects = new Set(); /** Set when this engine holds writer.pid (#1740). */ - private writerLockRoot: string | null = null; + private writerLockRoots = new Set(); private opts: Required; private closed = false; + private stopPromise: Promise | null = null; // Off-loop read-tool pool (daemon mode only). Created lazily once the default // project is open — workers each hold their own WAL read connection. private queryPool: QueryPool | null = null; @@ -79,6 +80,7 @@ export class MCPEngine { constructor(opts: MCPEngineOptions = {}) { this.opts = { watch: opts.watch ?? true, queryPool: opts.queryPool ?? false }; this.toolHandler = new ToolHandler(null); + this.toolHandler.setProjectLifecycle((cg) => this.activateProject(cg)); } /** @@ -191,8 +193,7 @@ export class MCPEngine { this.cg = loadCodeGraph().openSync(resolvedRoot); this.projectPath = resolvedRoot; this.toolHandler.setDefaultCodeGraph(this.cg); - this.startWatching(); - this.catchUpSync(); + this.toolHandler.setCatchUpGate(this.activateProject(this.cg)); this.maybeStartPool(resolvedRoot); } catch { // Still failing — caller will try again on the next tool call. @@ -203,25 +204,28 @@ export class MCPEngine { * Close everything. Used on graceful daemon shutdown (SIGTERM/idle timeout) * and on direct-mode stop. Idempotent. */ - stop(): void { - if (this.closed) return; + stop(): Promise { + return this.stopPromise ??= this.doStop(); + } + + private async doStop(): Promise { this.closed = true; - if (this.writerLockRoot) { - releaseWriterLock(this.writerLockRoot); - this.writerLockRoot = null; - } + if (this.initPromise) await this.initPromise; // Detach + terminate the worker pool first so no tool call routes to a // worker mid-teardown; outstanding pool calls resolve with graceful guidance. this.toolHandler.setQueryPool(null); if (this.queryPool) { - void this.queryPool.destroy(); + await this.queryPool.destroy(); this.queryPool = null; } - this.toolHandler.closeAll(); + await this.toolHandler.closeAllAsync(); if (this.cg) { - try { this.cg.close(); } catch { /* ignore */ } + await this.cg.closeAsync(); this.cg = null; } + for (const root of this.writerLockRoots) releaseWriterLock(root); + this.writerLockRoots.clear(); + this.watchedProjects.clear(); } private async doInitialize(searchFrom: string): Promise { @@ -258,8 +262,7 @@ export class MCPEngine { try { this.cg = await loadCodeGraph().open(resolvedRoot); this.toolHandler.setDefaultCodeGraph(this.cg); - this.startWatching(); - this.catchUpSync(); + this.toolHandler.setCatchUpGate(this.activateProject(this.cg)); this.maybeStartPool(resolvedRoot); } catch (err) { const msg = err instanceof Error ? err.message : String(err); @@ -277,19 +280,29 @@ export class MCPEngine { /** * Start file watching on the active CodeGraph instance. Idempotent — the - * watcher is per-engine, not per-session, which is why the daemon path - * collapses N inotify sets to one. The wording of the disabled-reason log - * exactly matches the prior in-tree implementation so log-driven dashboards - * keep working. + * watcher is per-project in the engine, not per-session. Explicit projectPath + * opens get the same writer ownership and catch-up lifecycle as the default. */ - private startWatching(): void { - if (!this.cg || this.watcherStarted || !this.opts.watch) return; + private activateProject(cg: CodeGraph): Promise { + const root = cg.getProjectRoot(); + if (this.closed || this.watchedProjects.has(root)) return Promise.resolve(); + const disabledReason = !this.opts.watch ? 'watch disabled for this engine' : watchDisabledReason(root); + if (disabledReason) { + this.watchedProjects.add(root); + process.stderr.write(`[CodeGraph MCP] Auto-sync disabled for ${root} — ${disabledReason}. Run \`codegraph sync\` to refresh.\n`); + return Promise.resolve(); + } + if (!this.startWatching(cg)) return Promise.resolve(); + this.watchedProjects.add(root); + return this.catchUpSync(cg); + } + private startWatching(cg: CodeGraph): boolean { // #1740: only one live watcher/writer per project. Daemon and startDirect // usually already hold writer.pid (re-entrant for this pid). Proxy // in-process fallback acquires here; if another writer holds it, skip the // watcher so we never contend on codegraph.lock until auto-sync degrades. - const lockRoot = this.projectPath; + const lockRoot = cg.getProjectRoot(); if (lockRoot) { const writer = tryAcquireWriterLock(lockRoot, 'fallback'); if (writer.kind === 'taken') { @@ -297,20 +310,9 @@ export class MCPEngine { process.stderr.write( `[CodeGraph MCP] File watcher not started — ${msg}\n` ); - this.watcherStarted = true; - return; + return false; } - this.writerLockRoot = lockRoot; - } - - const disabledReason = watchDisabledReason(this.projectPath ?? process.cwd()); - if (disabledReason) { - process.stderr.write( - `[CodeGraph MCP] File watcher disabled — ${disabledReason}. ` + - `The graph will not auto-update; run \`codegraph sync\` (or install the git sync hooks via \`codegraph init\`) to refresh.\n` - ); - this.watcherStarted = true; - return; + this.writerLockRoots.add(lockRoot); } // Optional override for the debounce window via env var (issue #403). @@ -323,7 +325,7 @@ export class MCPEngine { process.stderr.write(`[CodeGraph MCP] File watcher debounce: ${debounceMs}ms (CODEGRAPH_WATCH_DEBOUNCE_MS)\n`); } - const started = this.cg.watch({ + const started = cg.watch({ debounceMs, onSyncComplete: (result) => { if (result.filesChanged > 0) { @@ -345,7 +347,6 @@ export class MCPEngine { }, }); - this.watcherStarted = true; if (started) { process.stderr.write('[CodeGraph MCP] File watcher active — graph will auto-sync on changes\n'); } else { @@ -353,6 +354,7 @@ export class MCPEngine { '[CodeGraph MCP] File watcher unavailable on this platform — run `codegraph sync` to refresh the graph after changes.\n' ); } + return true; } /** @@ -365,10 +367,8 @@ export class MCPEngine { * and the per-file staleness banner can't help because `getPendingFiles()` * is populated by the watcher, not by catch-up). */ - private catchUpSync(): void { - const cg = this.cg; - if (!cg) return; - const p = cg + private catchUpSync(cg: CodeGraph): Promise { + return cg .sync() .then((result) => { const changed = result.filesAdded + result.filesModified + result.filesRemoved; @@ -380,7 +380,6 @@ export class MCPEngine { const msg = err instanceof Error ? err.message : String(err); process.stderr.write(`[CodeGraph MCP] Catch-up sync failed: ${msg}\n`); }); - this.toolHandler.setCatchUpGate(p); } } diff --git a/src/mcp/index.ts b/src/mcp/index.ts index e4a14a4fb..0e90a0a2a 100644 --- a/src/mcp/index.ts +++ b/src/mcp/index.ts @@ -329,13 +329,9 @@ export class MCPServer { * connected session; in direct mode it mirrors the pre-#411 behavior (close * cg, exit). Proxy mode never routes through here — the proxy exits itself. */ - stop(): void { + async stop(): Promise { if (this.stopped) return; this.stopped = true; - if (this.writerLockRoot) { - releaseWriterLock(this.writerLockRoot); - this.writerLockRoot = null; - } if (this.ppidWatchdog) { clearInterval(this.ppidWatchdog); this.ppidWatchdog = null; @@ -345,7 +341,7 @@ export class MCPServer { this.livenessWatchdog = null; } if (this.daemon) { - void this.daemon.stop('stop()'); + await this.daemon.stop('stop()'); // Daemon.stop calls process.exit; nothing else to do. return; } @@ -354,9 +350,13 @@ export class MCPServer { this.session = null; } if (this.engine) { - this.engine.stop(); + await this.engine.stop(); this.engine = null; } + if (this.writerLockRoot) { + releaseWriterLock(this.writerLockRoot); + this.writerLockRoot = null; + } process.exit(0); } @@ -380,7 +380,7 @@ export class MCPServer { } this.engine = new MCPEngine(); - const transport = new StdioTransport(); + const transport = new StdioTransport({ exitOnClose: false, onClose: () => { void this.stop(); } }); this.session = new MCPSession(transport, this.engine, { explicitProjectPath: this.projectPath, }); diff --git a/src/mcp/proxy.ts b/src/mcp/proxy.ts index 27e684e51..293f9dc43 100644 --- a/src/mcp/proxy.ts +++ b/src/mcp/proxy.ts @@ -247,10 +247,10 @@ export async function runLocalHandshakeProxy(deps: LocalHandshakeDeps): Promise< const writeClient = (obj: JsonRpc | string): void => { try { process.stdout.write((typeof obj === 'string' ? obj : JSON.stringify(obj)) + '\n'); } catch { /* host gone */ } }; - const shutdown = (): void => { + const shutdown = async (): Promise => { if (shuttingDown) return; shuttingDown = true; try { daemonSocket?.destroy(); } catch { /* ignore */ } - try { engine?.stop(); } catch { /* ignore */ } + await engine?.stop(); process.exit(0); }; const ensureEngine = (): Promise => { diff --git a/src/mcp/server-instructions.ts b/src/mcp/server-instructions.ts index 4cb22150d..b43b1835a 100644 --- a/src/mcp/server-instructions.ts +++ b/src/mcp/server-instructions.ts @@ -64,7 +64,7 @@ calls; a grep/read exploration is dozens. - **Don't grep or Read first** to find or understand indexed code — ONE \`codegraph_explore\` returns the relevant symbols' source together in a single round-trip. Reach for raw \`Read\`/\`Grep\` only to confirm a specific detail codegraph didn't cover, or for what codegraph doesn't index (configs, docs). - **Don't reconstruct a flow by hand** — name the endpoints in one \`codegraph_explore\` and it surfaces the path between them, dynamic-dispatch hops included. - **After editing, check the staleness banner.** When a tool response starts with "⚠️ Some files referenced below were edited since the last index sync…", the listed files are pending re-index — Read those specific files for accurate content. Every file NOT in that banner is fresh, so still trust codegraph. A different, rarer banner — "⚠️ CodeGraph auto-sync is DISABLED…" — means live watching stopped entirely (the whole index is frozen, not just a few files); until it's resolved, Read files directly to confirm anything that may have changed. -- **A file flagged "⚠ changed on disk after the last index sync" drifted from its index** (most common on projects queried via \`projectPath\`, which have no live watcher). Codegraph never serves a possibly-mis-sliced body from such a file — it either shows the file's full CURRENT source (trust it as a Read) or omits the source with this flag. When the source was omitted, Read that specific file; line numbers referencing it elsewhere in the response may be shifted until that project's next sync. All unflagged files remain trustworthy. +- **A file flagged "⚠ changed on disk after the last index sync" drifted from its index** (for example when watching is disabled or another process owns live sync). Codegraph never serves a possibly-mis-sliced body from such a file — it either shows the file's full CURRENT source (trust it as a Read) or omits the source with this flag. When the source was omitted, Read that specific file; line numbers referencing it elsewhere in the response may be shifted until that project's next sync. All unflagged files remain trustworthy. - **Source is re-served on every call by default**, including for fresh subagents and after context compaction. Cross-call dedup requires \`CODEGRAPH_EXPLORE_DEDUP=1\` and is only suitable for hosts that guarantee one durable context per connection. With that opt-in, **"Already sent earlier in this conversation"** points to exact, unchanged source returned by an earlier \`codegraph_explore\` in that context. Use that copy; don't re-fetch it and don't Read the file. The bytes it freed went into source you have not seen yet, elsewhere in the same response. diff --git a/src/mcp/tools.ts b/src/mcp/tools.ts index 42fdd2288..6f5f44ac5 100644 --- a/src/mcp/tools.ts +++ b/src/mcp/tools.ts @@ -1496,6 +1496,14 @@ export class ToolHandler { // main loop stays free for the MCP transport under concurrent load. Null in // direct/in-process mode (one client, no concurrency to parallelize). private queryPool: QueryPool | null = null; + private projectLifecycle: ((cg: CodeGraph) => Promise) | null = null; + private projectGates = new Map>(); + private closing = false; + + /** Engine owns watching and writer locks; read-only handlers never activate projects. */ + setProjectLifecycle(activate: (cg: CodeGraph) => Promise): void { + this.projectLifecycle = activate; + } constructor(private cg: CodeGraph | null) {} @@ -1709,6 +1717,7 @@ export class ToolHandler { * similar to how git finds .git/ directories. */ private getCodeGraph(projectPath?: string): CodeGraph { + if (this.closing) throw new Error('MCP engine is shutting down'); if (!projectPath) { if (!this.cg) { const searched = this.defaultProjectHint ?? process.cwd(); @@ -1819,7 +1828,18 @@ export class ToolHandler { cg.close(); } this.projectCache.clear(); + this.projectGates.clear(); + this.worktreeMismatchCache.clear(); + } + + /** Engine shutdown must drain active writers before closing cached projects. */ + async closeAllAsync(): Promise { + this.closing = true; + const projects = [...this.projectCache.values()]; + this.projectCache.clear(); + this.projectGates.clear(); this.worktreeMismatchCache.clear(); + await Promise.all(projects.map((cg) => cg.closeAsync())); } /** @@ -2143,6 +2163,21 @@ export class ToolHandler { if (typeof check === 'object' && check !== undefined) return check; } + // Resolve on the engine thread even when dispatch uses a read worker: + // explicit projects need the same watcher and initial reconcile as default. + if (this.projectLifecycle && pathCheck) { + const cg = this.getCodeGraph(pathCheck); + let gate = this.projectGates.get(cg); + if (!gate) { + // Retry writer ownership on later calls: another engine may have + // closed since we opened this connection in read-only fallback. + gate = this.projectLifecycle(cg); + this.projectGates.set(cg, gate); + void gate.finally(() => this.projectGates.delete(cg)); + } + await this.awaitCatchUpGate(gate); + } + // codegraph_status reports watcher state (pending files, degraded mode, // worktree warning) and embeds its own sections — it must run on the MAIN // thread against the watched default instance, so it is NEVER off-loaded to @@ -6520,8 +6555,8 @@ export class ToolHandler { let cg = this.getCodeGraph(args.projectPath as string | undefined); // Same trick as withStalenessNotice — when an explicit projectPath // resolves to the same project as the default session cg, prefer the - // default so getPendingFiles() (only populated by the default's watcher) - // is non-empty when there are pending edits. + // default so getPendingFiles() reads the same watcher as the default + // session when there are pending edits. if (this.cg && cg !== this.cg) { try { if (resolvePath(this.cg.getProjectRoot()) === resolvePath(cg.getProjectRoot())) { diff --git a/src/resolution/callback-synthesizer.ts b/src/resolution/callback-synthesizer.ts index dd2e735fb..7bf4f23a9 100644 --- a/src/resolution/callback-synthesizer.ts +++ b/src/resolution/callback-synthesizer.ts @@ -38,6 +38,7 @@ import { createYielder, type MaybeYield } from './cooperative-yield'; import { crossTierEdges } from './tier-synthesizer'; import { enclosingFn, makeLineAt } from './synth-utils'; import { resolveImportPath } from './import-resolver'; +import { matchFunctionRef } from './name-matcher'; const REGISTRAR_NAME = /^(on[A-Z]\w*|subscribe|addListener|addEventListener|register|watch|listen|addCallback)$/; const DISPATCHER_NAME = /(emit|trigger|notify|dispatch|fire|publish|flush)/i; @@ -143,6 +144,50 @@ function* methodAndFunctionNodes(queries: QueryBuilder): IterableIterator yield* queries.iterateNodesByKind('function'); } +function fieldCallbackOwner(queries: QueryBuilder, caller: Node): Node | undefined { + let level = [caller.id]; + const seen = new Set(); + while (level.length) { + const parents: Node[] = []; + for (const id of level) { + if (seen.has(id)) continue; + seen.add(id); + for (const edge of queries.getIncomingEdges(id, ['contains'])) { + const node = queries.getNodeById(edge.source); + if (node) parents.push(node); + } + } + const owners = [...new Map(parents.filter(n => n.kind === 'class' || n.kind === 'component').map(n => [n.id, n])).values()]; + if (owners.length) return owners.length === 1 ? owners[0] : undefined; + level = parents.map(n => n.id); + } + return undefined; +} + +/** Resolve this.handler on the registering class, including inherited methods. */ +function fieldCallbackMethod(queries: QueryBuilder, ctx: ResolutionContext, caller: Node, name: string): Node | null { + const owner = fieldCallbackOwner(queries, caller); + if (!owner) return null; + let level = [owner.id]; + const seen = new Set(); + const candidates = ctx.getNodesByName(name).filter(n => n.kind === 'method' || n.kind === 'function'); + while (level.length) { + const found: Node[] = []; + const next: string[] = []; + for (const id of level) { + if (seen.has(id)) continue; + seen.add(id); + const children = new Set(queries.getOutgoingEdges(id, ['contains']).map(e => e.target)); + found.push(...candidates.filter(n => children.has(n.id))); + next.push(...queries.getOutgoingEdges(id, ['extends']).map(e => e.target)); + } + const unique = [...new Map(found.map(n => [n.id, n])).values()]; + if (unique.length) return unique.length === 1 ? unique[0]! : null; + level = next; + } + return null; +} + /** Phase 1: field-backed observer channels (registrar/dispatcher share a store). */ async function fieldChannelEdges(queries: QueryBuilder, ctx: ResolutionContext, onYield: MaybeYield): Promise { const registrars: Array<{ node: Node; field: string }> = []; @@ -165,10 +210,11 @@ async function fieldChannelEdges(queries: QueryBuilder, ctx: ResolutionContext, const seen = new Set(); for (const reg of registrars) { const chDispatchers = dispatchers.filter( - (d) => d.node.filePath === reg.node.filePath && d.field === reg.field + (d) => d.node.filePath === reg.node.filePath && d.field === reg.field && + fieldCallbackOwner(queries, d.node)?.id === fieldCallbackOwner(queries, reg.node)?.id ); if (chDispatchers.length === 0) continue; - const argRe = new RegExp(`${reg.node.name}\\s*\\(\\s*(?:this\\.)?(\\w+)`); + const argRe = new RegExp(`${reg.node.name}\\s*\\(\\s*(this\\.)?(\\w+)\\s*(?=[,)]|\\.bind\\s*\\()`); let added = 0; for (const e of queries.getIncomingEdges(reg.node.id, ['calls'])) { if (added >= MAX_CALLBACKS_PER_CHANNEL) break; @@ -178,7 +224,14 @@ async function fieldChannelEdges(queries: QueryBuilder, ctx: ResolutionContext, const line = ctx.readFile(caller.filePath)?.split('\n')[e.line - 1]; const am = line?.match(argRe); if (!am) continue; - const fn = ctx.getNodesByName(am[1]!).find((n) => n.kind === 'method' || n.kind === 'function'); + const fn = am[1] + ? fieldCallbackMethod(queries, ctx, caller, am[2]!) + : (() => { + const target = matchFunctionRef({ fromNodeId: caller.id, referenceName: am[2]!, + referenceKind: 'function_ref', filePath: caller.filePath, language: caller.language, + line: e.line!, column: am.index! }, ctx); + return target ? queries.getNodeById(target.targetNodeId) ?? null : null; + })(); if (!fn) continue; for (const disp of chDispatchers) { if (disp.node.id === fn.id) continue; diff --git a/src/resolution/cpp-macro-visibility.ts b/src/resolution/cpp-macro-visibility.ts new file mode 100644 index 000000000..7fab969bc --- /dev/null +++ b/src/resolution/cpp-macro-visibility.ts @@ -0,0 +1,121 @@ +import * as path from 'path'; +import type { ResolutionContext, UnresolvedRef } from './types'; +import { resolveImportPath } from './import-resolver'; +import { stripCommentsForRegex } from './strip-comments'; + +type Truth = boolean | undefined; +type Event = { line: number; defined: Truth }; +type Definition = { defined: Truth; value: Truth; assumedDefined: boolean; assumedValue: Truth; scope: string[] }; +type Cache = { roots: Map>; lines: Map; includes: Map }; +const memo = new WeakMap(); +const and = (a: Truth, b: Truth): Truth => a === false || b === false ? false : a === true && b === true ? true : undefined; +const or = (a: Truth, b: Truth): Truth => a === true || b === true ? true : a === false && b === false ? false : undefined; +const not = (a: Truth): Truth => a === undefined ? undefined : !a; + +export function clearCppMacroVisibility(context: ResolutionContext): void { memo.delete(context); } + +/** Textual include order and locally decidable branches, not a full C preprocessor. */ +export function isVisibleCppMacro(ref: UnresolvedRef, context: ResolutionContext): boolean { + if (!['c', 'cpp'].includes(ref.language) || ref.referenceKind !== 'calls' || !/^\w+$/.test(ref.referenceName)) return false; + if (!context.getNodesByName(ref.referenceName).some(n => + n.kind === 'constant' && /^\s*#\s*define\b/.test(n.signature ?? ''))) return false; + let cache = memo.get(context); + if (!cache) { cache = { roots: new Map(), lines: new Map(), includes: new Map() }; memo.set(context, cache); } + const rootKey = `${ref.language}\0${ref.filePath}`; + let timeline = cache.roots.get(rootKey); + if (!timeline) { + timeline = new Map(); + const definitions = new Map(); + const visiting = new Set(); + const once = new Set(); + const lookup = (name: string, scope: string[], field: 'defined' | 'value'): Truth => { + const def = definitions.get(name); + if (!def) return undefined; + // A definition under an unknown guard is certain while we remain on + // that same hypothetical path, but uncertain after leaving it. + if (def[field] === undefined && def.scope.every((part, i) => scope[i] === part)) { + return field === 'defined' ? def.assumedDefined : def.assumedValue; + } + return def[field]; + }; + const condition = (expression: string, scope: string[]): Truth => { + const text = expression.trim(); + if (/^(?:0x[\da-f]+|\d+)[uUlL]*$/i.test(text)) return Number(text.replace(/[uUlL]+$/, '')) !== 0; + const def = text.match(/^(!)?\s*defined\s*(?:\(\s*(\w+)\s*\)|(\w+))$/); + if (def) { const known = lookup(def[2] ?? def[3]!, scope, 'defined'); return def[1] ? not(known) : known; } + return /^\w+$/.test(text) ? lookup(text, scope, 'value') : undefined; + }; + const scan = (file: string, inherited: Truth, inheritedScope: string[], includeLine?: number): void => { + if (visiting.has(file) || once.has(file)) return; + visiting.add(file); + let lines = cache!.lines.get(file); + if (!lines) { lines = stripCommentsForRegex(context.readFile(file) ?? '', 'cpp').split(/\r?\n/); cache!.lines.set(file, lines); } + const frames: Array<{ parent: Truth; taken: Truth; scope: string[] }> = []; + let active = inherited; + let scope = inheritedScope; + for (let i = 0; i < lines.length; i++) { + const text = lines[i]!; + const branch = text.match(/^\s*#\s*(ifdef|ifndef|if|elif|else|endif)\b(.*)$/); + if (branch) { + const op = branch[1]; + if (op === 'if' || op === 'ifdef' || op === 'ifndef') { + const test = op === 'if' ? condition(branch[2]!, scope) : lookup(branch[2]!.trim(), scope, 'defined'); + const selected = op === 'ifndef' ? not(test) : test; + frames.push({ parent: active, taken: selected, scope }); active = and(active, selected); + if (selected === undefined) scope = [...scope, `${file}:${i}`]; + } else if (op === 'endif') { const frame = frames.pop(); active = frame?.parent ?? inherited; scope = frame?.scope ?? inheritedScope; } + else { + const frame = frames[frames.length - 1]; + if (frame) { + const test = op === 'else' ? true : condition(branch[2]!, frame.scope); + const selected = and(not(frame.taken), test); + active = and(frame.parent, selected); frame.taken = or(frame.taken, test); + scope = selected === undefined ? [...frame.scope, `${file}:${i}`] : frame.scope; + } + } + continue; + } + if (active === false) continue; + if (/^\s*#\s*pragma\s+once\b/.test(text) && active === true) once.add(file); + const directive = text.match(/^\s*#\s*(define|undef)\s+(\w+)\b/); + if (directive) { + const name = directive[2]!; + const defining = directive[1] === 'define'; + const previous = definitions.get(name); + const defined = defining ? or(previous?.defined ?? false, active) : and(previous?.defined ?? false, not(active)); + const assumedValue = defining ? condition(text.slice(directive[0].length), scope) : false; + const value = active === true ? assumedValue : undefined; + definitions.set(name, { defined, value, assumedDefined: defining, assumedValue, scope: [...scope] }); + const events = timeline!.get(name) ?? []; + events.push({ line: includeLine ?? i + 1, defined }); timeline!.set(name, events); + } + const include = text.match(/^\s*#\s*include\s*([<"])([^>"]+)[>"]/); + if (include) { + const spec = include[2]!; + const key = `${ref.language}\0${file}\0${include[1]}${spec}`; + let target = cache!.includes.get(key); + if (target === undefined) { + const local = path.posix.normalize(path.posix.join(path.posix.dirname(file), spec.replace(/\\/g, '/'))); + target = include[1] === '"' && !local.startsWith('../') && !path.posix.isAbsolute(local) && context.fileExists(local) + ? local : resolveImportPath(spec, file, ref.language, context); + if (!target) { + const matches = context.getAllFiles().filter(f => f === spec || f.endsWith('/' + spec)); + if (matches.length === 1) target = matches[0]!; + } + cache!.includes.set(key, target); + } + if (target) scan(target, active, scope, includeLine ?? i + 1); + } + } + visiting.delete(file); + }; + scan(ref.filePath, true, []); + // Bound root timelines; cache only COMPLETE translation-unit walks, never + // a child truncated by an include cycle or evaluated with different flags. + if (cache.roots.size >= 128) cache.roots.delete(cache.roots.keys().next().value!); + cache.roots.set(rootKey, timeline); + } + const before = (timeline.get(ref.referenceName) ?? []).filter(e => e.line <= ref.line); + // An unknown build-flag arm remains possible, so it cannot justify an ordinary call. + return before.length > 0 && before[before.length - 1]!.defined !== false; +} diff --git a/src/resolution/index.ts b/src/resolution/index.ts index ee95cd5a8..2e3b94699 100644 --- a/src/resolution/index.ts +++ b/src/resolution/index.ts @@ -20,6 +20,7 @@ import { isImportableKind, } from './types'; import { isVisibleAcrossFiles, matchReference, matchFunctionRef, matchDottedCallChain, matchScopedCallChain, matchMethodCall, sameLanguageFamily, crossesKnownFamily, dumpNameMatcherProfile, clearNameMatcherMemos } from './name-matcher'; +import { isVisibleCppMacro } from './cpp-macro-visibility'; import { resolveViaImport, resolvePhpImportedStaticCall, resolveJvmImport, extractImportMappings, extractReExports, loadCppIncludeDirs, isPhpIncludePathRef, isCobolCopybookRef, isNixPathImportRef, isBoundToOutOfRepoImport, clearImportResolverMemos, resolveImportPath } from './import-resolver'; import { ResolverPool, minRefsForPool } from './resolver-pool'; import { resolveAliasBinding } from './alias-binding'; @@ -472,7 +473,7 @@ export class ReferenceResolver { matches = []; for (const m of candidates) { if (m.kind !== 'method') continue; - if (m.language !== language) continue; + if (!sameLanguageFamily(m.language, language)) continue; const qn = m.qualifiedName; if (qn === want || qn.endsWith(`::${want}`)) matches.push(m); } @@ -495,7 +496,7 @@ export class ReferenceResolver { ownerIndex = new Map(); for (const m of candidates) { if (m.kind !== 'method') continue; - if (m.language !== language) continue; + if (!sameLanguageFamily(m.language, language)) continue; const qn = m.qualifiedName; const i2 = qn.lastIndexOf('::'); if (i2 < 0) continue; // single-segment qn can never match `T::m` @@ -876,6 +877,7 @@ export class ReferenceResolver { * the alias names (see ./alias-binding), regardless of the strategy. */ resolveOne(ref: UnresolvedRef): ResolvedRef | null { + if (isVisibleCppMacro(ref, this.context)) return null; const resolved = this.gateTargetKind(this.resolveOneInner(ref), ref); if (!resolved || ref.referenceKind !== 'calls') return resolved; @@ -2650,6 +2652,11 @@ export class ReferenceResolver { private gateTargetKind(result: ResolvedRef | null, ref: UnresolvedRef): ResolvedRef | null { if (!result) return result; + if (ref.referenceKind === 'calls') { + const target = this.queries.getNodeById(result.targetNodeId); + if (target?.kind === 'constant' && /^\s*#\s*define\b/.test(target.signature ?? '')) return null; + } + // An `imports` reference names something importable — never a member that // only exists inside a type. if (ref.referenceKind === 'imports') { diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index e2347e6de..616452b49 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -9,6 +9,7 @@ import { Language, Node } from '../types'; import { UnresolvedRef, ResolvedRef, ResolutionContext, SUPERTYPE_TARGET_KINDS, isInheritanceRef, isImportableKind } from './types'; import { blankStringContents, stripCommentsForRegex } from './strip-comments'; import { JS_BUILT_INS, isTsJsNestedCall } from './js-builtins'; +import { isVisibleCppMacro, clearCppMacroVisibility } from './cpp-macro-visibility'; /** * Ceiling on how many same-named definitions a FUZZY name-match strategy will @@ -194,7 +195,8 @@ function applyLanguageGate(candidates: Node[], ref: UnresolvedRef): Node[] { // Cross-language calls need a bridge resolver, never a coincidental name. // C/C++ enum values cannot be invoked (unlike Rust enum constructors). return candidates.filter(c => sameLanguageFamily(c.language, ref.language) && - !((ref.language === 'c' || ref.language === 'cpp') && c.kind === 'enum_member')); + !((ref.language === 'c' || ref.language === 'cpp') && + (c.kind === 'enum_member' || (c.kind === 'constant' && /^\s*#\s*define\b/.test(c.signature ?? ''))))); } if (ref.referenceKind === 'references' || ref.referenceKind === 'function_ref') { return candidates.filter((c) => sameLanguageFamily(c.language, ref.language)); @@ -1093,7 +1095,7 @@ export function resolveMethodOnType( matches = []; for (const m of methodCandidates) { if (m.kind !== 'method') continue; - if (m.language !== ref.language) continue; + if (!sameLanguageFamily(m.language, ref.language)) continue; const qn = m.qualifiedName; if (qn === want || qn.endsWith(`::${want}`)) { matches.push(m); @@ -1692,6 +1694,7 @@ function getInferScanStates(context: ResolutionContext): Map Date: Sat, 12 Sep 2026 12:43:22 +0300 Subject: [PATCH 11/23] =?UTF-8?q?fix:=20=D0=B8=D1=81=D0=BF=D1=80=D0=B0?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D1=8C=20=D0=B2=D1=8B=D0=B1=D0=BE=D1=80=20?= =?UTF-8?q?=D0=BA=D0=BE=D0=BD=D1=81=D1=82=D1=80=D1=83=D0=BA=D1=82=D0=BE?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=20=D0=B8=20canonical=20lifecycle=20=D0=BF?= =?UTF-8?q?=D1=80=D0=BE=D0=B5=D0=BA=D1=82=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 4 + __tests__/cpp-macro-visibility.test.ts | 9 ++ __tests__/cpp-remaining-regressions.test.ts | 1 + __tests__/cpp-review-regressions.test.ts | 91 +++++++++++++++++++++ __tests__/cpp-same-line-ids.test.ts | 30 +++++++ __tests__/kernel-ccpp-parity.test.ts | 14 ++++ __tests__/mcp-project-lifecycle.test.ts | 50 +++++++++++ codegraph-kernel/src/ccpp/mod.rs | 87 +++++++++++++++----- codegraph-kernel/src/ids.rs | 2 +- docs/validation-review-fixes-2026-09-12.md | 65 +++++++++++++++ src/extraction/extraction-version.ts | 2 +- src/extraction/languages/c-cpp.ts | 56 ++++++++++++- src/extraction/tree-sitter-helpers.ts | 2 +- src/extraction/tree-sitter.ts | 30 ++++--- src/mcp/engine.ts | 11 +-- src/mcp/tools.ts | 40 +++++++-- src/resolution/cpp-constructor.ts | 58 +++++++++++++ src/resolution/cpp-macro-visibility.ts | 4 +- src/resolution/index.ts | 2 + src/resolution/name-matcher.ts | 2 + 20 files changed, 506 insertions(+), 54 deletions(-) create mode 100644 __tests__/cpp-review-regressions.test.ts create mode 100644 __tests__/cpp-same-line-ids.test.ts create mode 100644 docs/validation-review-fixes-2026-09-12.md create mode 100644 src/resolution/cpp-constructor.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 32c7819cf..72d4a9c41 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -157,6 +157,10 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). #### MCP / indexing +- Исправлены namespace и арность C++ local constructors, ложные вызовы от pointer/reference initializers и same-line C++ IDs. +- Macro recovery больше не принимает комментарии и noexcept-expression за объявление функции; условный undef сохраняет неопределённость. +- Symlink-псевдонимы проекта используют один MCP watcher и общий catch-up вместо параллельных экземпляров одного индекса. + - Callback связывается с обработчиком регистрирующего класса, включая TSX→TS и наследование, а не с одноимённым методом другого класса. - Исправлены C/C++ macro calls и local constructors; одноаргументные function macros получают подтверждённое имя. - TS/JS getter и setter одной строки больше не перезаписывают друг друга; Dart extension types сохраняют правильные границы и членов. diff --git a/__tests__/cpp-macro-visibility.test.ts b/__tests__/cpp-macro-visibility.test.ts index c74e44907..77a395f7a 100644 --- a/__tests__/cpp-macro-visibility.test.ts +++ b/__tests__/cpp-macro-visibility.test.ts @@ -35,3 +35,12 @@ it('keeps local header facts within a hypothetical include path', () => { 'maths.h':'#pragma once\n#define FAST_MATH\n#if defined(FAST_MATH)\nvoid TRACE(int);\n#else\n#define TRACE(x) (x)\n#endif'}); expect(visible(ctx,'main.c',5)).toBe(false); }); + +it('does not turn an unknown definition into absence after an unknown undef', () => { + const ctx=context({'main.c':'#if ENABLE_TRACE\n#define TRACE(x) ((void)(x))\n#endif\n#if CLEAR_TRACE\n#undef TRACE\n#endif\nvoid run(){TRACE(1);}'}); + expect(visible(ctx,'main.c',7)).toBe(true); +}); +it('a definite undef still removes a possible definition', () => { + const ctx=context({'main.c':'#if ENABLE_TRACE\n#define TRACE(x) ((void)(x))\n#endif\n#undef TRACE\nvoid run(){TRACE(1);}'}); + expect(visible(ctx,'main.c',5)).toBe(false); +}); diff --git a/__tests__/cpp-remaining-regressions.test.ts b/__tests__/cpp-remaining-regressions.test.ts index 071ef0338..0b0b48566 100644 --- a/__tests__/cpp-remaining-regressions.test.ts +++ b/__tests__/cpp-remaining-regressions.test.ts @@ -20,6 +20,7 @@ describe('remaining C/C++ regressions', () => { it.each(['c', 'cpp'])('recovers a single-argument declared function macro (%s)', (language) => { const result = extractFromSource(`case.${language}`, '#define NATIVE_FN(name) int name(void)\nNATIVE_FN(get_version) { return 1; }\nint use_it(void) { return get_version(); }\n'); expect(result.nodes.filter(n => n.kind === 'function').map(n => n.name)).toEqual(['get_version', 'use_it']); + expect(result.nodes.find(n => n.name === 'get_version')?.signature).toBeUndefined(); }); it.each(['c', 'cpp'])('resolves a real call to the macro-declared function (%s)', async (language) => { const root = mkdtempSync(join(tmpdir(), 'codegraph-cpp-macro-name-')); roots.push(root); diff --git a/__tests__/cpp-review-regressions.test.ts b/__tests__/cpp-review-regressions.test.ts new file mode 100644 index 000000000..82f214f73 --- /dev/null +++ b/__tests__/cpp-review-regressions.test.ts @@ -0,0 +1,91 @@ +import { afterEach, beforeAll, describe, expect, it } from 'vitest'; +import { mkdtempSync, writeFileSync, rmSync } from 'node:fs'; +import { tmpdir } from 'node:os'; +import { join } from 'node:path'; +import { CodeGraph } from '../src'; +import { extractFromSource } from '../src/extraction'; +import { initGrammars, loadGrammarsForLanguages } from '../src/extraction/grammars'; + +const roots: string[] = []; +beforeAll(async () => { await initGrammars(); await loadGrammarsForLanguages(['cpp', 'c']); }); +afterEach(() => { for (const root of roots.splice(0)) rmSync(root, { recursive: true, force: true }); }); +async function indexed(source: string, check: (cg: CodeGraph) => void): Promise { + const root = mkdtempSync(join(tmpdir(), 'codegraph-cpp-review-')); roots.push(root); + writeFileSync(join(root, 'case.cpp'), source); + const cg = CodeGraph.initSync(root); + try { await cg.indexAll(); check(cg); } finally { cg.close(); } +} +function calls(cg: CodeGraph, caller: string) { + const node = cg.getNodesByKind('function').find(n => n.name === caller)!; + return cg.getOutgoingEdges(node.id).filter(e => e.kind === 'calls').map(e => cg.getNode(e.target)!); +} + +describe('C++ constructor and macro recovery review regressions', () => { + it('does not construct objects for zero-initialized pointers, references or function pointers', async () => { + await indexed(`struct Widget { Widget() {} }; +void pointers() { Widget *p{}; Widget *arr[2]{}; Widget (*fn)(){}; } +void reference_bind(Widget &other) { Widget &r{other}; } +void actual() { Widget object{}; } +`, cg => { + expect(calls(cg, 'pointers')).toEqual([]); + expect(calls(cg, 'reference_bind')).toEqual([]); + expect(calls(cg, 'actual').map(n => n.qualifiedName)).toEqual(['Widget::Widget']); + }); + }); + it('keeps per-declarator arity and records constructor parameter signatures', () => { + const result = extractFromSource('case.cpp', `struct Widget { Widget() {} Widget(int value) {} }; +void run() { Widget a, b(1), c{}; }`); + expect(result.nodes.filter(n => n.kind === 'method').map(n => n.signature)).toEqual(['()', '(int value)']); + expect(result.unresolvedReferences.filter(r => r.referenceKind === 'calls').map(r => r.referenceName)) + .toEqual(['Widget::Widget/0', 'Widget::Widget/1', 'Widget::Widget/0']); + }); + it('selects the appropriate zero/one-argument constructor without guessing equal-arity types', async () => { + await indexed(`struct Widget { Widget(); Widget(int); }; +Widget::Widget() {} +Widget::Widget(int value) {} +struct Ambiguous { Ambiguous(int) {} Ambiguous(double) {} }; +void default_use() { Widget w; } +void int_use() { Widget w(1); } +void ambiguous_use(int value) { Ambiguous w(value); } +`, cg => { + expect(calls(cg, 'default_use').map(n => n.signature)).toEqual(['()']); + expect(calls(cg, 'int_use').map(n => n.signature)).toEqual(['(int value)']); + expect(calls(cg, 'ambiguous_use')).toEqual([]); + }); + }); + it('resolves lexical namespace constructors and falls back to an enclosing/global type', async () => { + await indexed(`struct Global { Global() {} }; +namespace first { struct Widget { Widget() {} }; } +namespace second { struct Widget { Widget() {} }; +void local_use() { Widget w; } +void global_use() { Global g; } +} +void explicit_use() { first::Widget w; } +`, cg => { + expect(calls(cg, 'local_use').map(n => n.qualifiedName)).toEqual(['second::Widget::Widget']); + expect(calls(cg, 'global_use').map(n => n.qualifiedName)).toEqual(['Global::Global']); + expect(calls(cg, 'explicit_use').map(n => n.qualifiedName)).toEqual(['first::Widget::Widget']); + }); + }); + it('preserves an ordinary constructor after an earlier function macro was undefined', () => { + const result = extractFromSource('case.cpp', `#define NATIVE_FN(name) int name(void) +#undef NATIVE_FN +using value_t = int; +struct NATIVE_FN { NATIVE_FN(value_t) {} };`); + expect(result.nodes.filter(n => n.kind === 'method').map(n => n.name)).toEqual(['NATIVE_FN']); + }); + it('does not treat a documented define in a comment as a live name-generating macro', () => { + const result = extractFromSource('case.cpp', `/* +#define NATIVE_FN(name) int name(void) +*/ +using value_t = int; +int NATIVE_FN(value_t) { return 1; }`); + expect(result.nodes.filter(n => n.kind === 'function').map(n => n.name)).toEqual(['NATIVE_FN']); + }); + it('does not mistake a parameter use inside noexcept for the generated function name', () => { + const result = extractFromSource('case.cpp', `#define NATIVE_FN(name) int generated(void) noexcept(noexcept(name())) +int callback() { return 1; } +NATIVE_FN(callback) { return 1; }`); + expect(result.nodes.filter(n => n.kind === 'function' && n.name === 'callback')).toHaveLength(1); + }); +}); diff --git a/__tests__/cpp-same-line-ids.test.ts b/__tests__/cpp-same-line-ids.test.ts new file mode 100644 index 000000000..3c768bee0 --- /dev/null +++ b/__tests__/cpp-same-line-ids.test.ts @@ -0,0 +1,30 @@ +import { it, expect } from 'vitest'; +import * as fs from 'fs'; +import * as os from 'os'; +import * as path from 'path'; +import { CodeGraph } from '../src'; + +it('persists same-line C++ constructors with separate body calls and stable reindex IDs', async () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-cpp-constructor-ids-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'widget.cpp'), `void zero() {} void one() {}\n/* 😀 */ struct Widget { Widget() { zero(); } Widget(int) { one(); } };\nvoid useDefault() { Widget w; }\nvoid useInt() { Widget w(1); }\n`); + cg = CodeGraph.initSync(root); + await cg.indexAll(); + const constructors = cg.getNodesByName('Widget').filter(n => n.kind === 'method').sort((a, b) => a.startColumn - b.startColumn); + expect(constructors).toHaveLength(2); + expect(new Set(constructors.map(n => n.id)).size).toBe(2); + const callees = (id: string) => cg!.getCallees(id).filter(x => x.edge.kind === 'calls').map(x => x.node.name); + expect(callees(constructors[0].id)).toEqual(['zero']); + expect(callees(constructors[1].id)).toEqual(['one']); + for (const [name, constructor] of [['useDefault', constructors[0]], ['useInt', constructors[1]]] as const) { + const caller = cg.getNodesByName(name)[0]; + expect(cg.getCallees(caller.id).filter(x => x.edge.kind === 'calls').map(x => x.node.id)).toEqual([constructor.id]); + } + await cg.indexAll(); + expect(cg.getNodesByName('Widget').filter(n => n.kind === 'method').map(n => n.id).sort()).toEqual(constructors.map(n => n.id).sort()); + } finally { + cg?.close(); + fs.rmSync(root, { recursive: true, force: true }); + } +}); diff --git a/__tests__/kernel-ccpp-parity.test.ts b/__tests__/kernel-ccpp-parity.test.ts index fce31f357..0a0c4a3d9 100644 --- a/__tests__/kernel-ccpp-parity.test.ts +++ b/__tests__/kernel-ccpp-parity.test.ts @@ -95,6 +95,20 @@ describe.skipIf(!kernelBuilt)('kernel C/C++ extraction parity', () => { expect(viaWasm.nodes.length).toBeGreaterThanOrEqual(minNodes); } + it('same-line C++ overloads retain distinct IDs and body references, including UTF-16 columns', () => { + const source = `void zero() {} void one() {} +/* 😀 */ struct Widget { Widget() { zero(); } Widget(int) { one(); } }; +`; + assertParity('same-line.cpp', source, 'cpp', 6); + assertParity('same-line-crlf.cpp', source.replace(/\n/g, '\r\n'), 'cpp', 6); + const result = extractFromSource('same-line.cpp', source, 'cpp'); + const constructors = result.nodes.filter(n => n.kind === 'method' && n.name === 'Widget'); + expect(constructors).toHaveLength(2); + expect(new Set(constructors.map(n => n.id)).size).toBe(2); + expect(result.unresolvedReferences.find(r => r.referenceName === 'zero')?.fromNodeId).toBe(constructors[0].id); + expect(result.unresolvedReferences.find(r => r.referenceName === 'one')?.fromNodeId).toBe(constructors[1].id); + }); + it('torture fixture (c): fn-ptr tables, typedefs, file-scope consts, value-refs', () => { const file = path.join(FIXTURE_DIR, 'torture.c'); assertParity('fixtures/torture.c', fs.readFileSync(file, 'utf8'), 'c'); diff --git a/__tests__/mcp-project-lifecycle.test.ts b/__tests__/mcp-project-lifecycle.test.ts index bdd2c7221..0e1fb7c30 100644 --- a/__tests__/mcp-project-lifecycle.test.ts +++ b/__tests__/mcp-project-lifecycle.test.ts @@ -59,6 +59,56 @@ describe('explicit project MCP lifecycle (#1835)', () => { expect(fs.existsSync(getWriterPidPath(b))).toBe(false); }); + it.skipIf(process.platform === 'win32').each(['explicit', 'default', 'promoted'])( + 'shares the watcher and pending catch-up across a symlink alias (%s)', async (mode) => { + const root = await project(); + const aliasDir = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-project-alias-')); + roots.push(aliasDir); + const alias = path.join(aliasDir, 'link'); + fs.symlinkSync(root, alias, 'dir'); + fs.writeFileSync(path.join(root, 'added.ts'), 'export function added() {}'); + const { ExtractionOrchestrator } = require('../dist/extraction') as typeof import('../src/extraction'); + let release!: () => void; + const paused = new Promise(resolve => { release = resolve; }); + let entered!: () => void; + const started = new Promise(resolve => { entered = resolve; }); + const original = ExtractionOrchestrator.prototype.sync; + vi.spyOn(ExtractionOrchestrator.prototype, 'sync').mockImplementation(async function (...args) { + entered(); + await paused; + return original.apply(this, args); + }); + const watch = vi.spyOn(CodeGraph.prototype, 'watch'); + const sync = vi.spyOn(CodeGraph.prototype, 'sync'); + const e = engine(); + const handler = e.getToolHandler(); + if (mode === 'default') await e.ensureInitialized(alias); + const first = mode === 'default' + ? handler.execute('codegraph_files', {}).then(result => JSON.stringify(result)) + : files(e, root); + await started; + let secondSettled = false; + let second: Promise | undefined; + try { + if (mode === 'promoted') await e.ensureInitialized(alias); + second = (mode === 'promoted' + ? handler.execute('codegraph_files', {}).then(result => JSON.stringify(result)) + : files(e, alias)).then(result => { secondSettled = true; return result; }); + await new Promise(resolve => setTimeout(resolve, 80)); + expect(secondSettled).toBe(false); + expect(watch).toHaveBeenCalledTimes(1); + expect(sync).toHaveBeenCalledTimes(1); + if (mode !== 'explicit') expect(e.getProjectPath()).toBe(root); + } finally { + release(); + await first; + await second; + } + expect(await first).toContain('added.ts'); + expect(await second).toContain('added.ts'); + }, + ); + it('auto-syncs subsequent edits in explicit projects', async () => { vi.stubEnv('CODEGRAPH_WATCH_DEBOUNCE_MS', '100'); const root = await project(); diff --git a/codegraph-kernel/src/ccpp/mod.rs b/codegraph-kernel/src/ccpp/mod.rs index 6ee5bb285..8be43e143 100644 --- a/codegraph-kernel/src/ccpp/mod.rs +++ b/codegraph-kernel/src/ccpp/mod.rs @@ -489,7 +489,11 @@ impl<'t> Walker<'t> { return None; } let start_line = self.line_of(node); - let id = ids::node_id(self.file_path, kind, name, start_line); + let id = if self.variant == Variant::Cpp { + ids::node_id_at_column(self.file_path, kind, name, start_line, Some(self.col_of(node))) + } else { + ids::node_id(self.file_path, kind, name, start_line) + }; // (c/cpp define no resolveBody hook, so createNode's endLine extension // for sibling-body grammars never fires — endLine is the node's own.) let end_line = node.end_position().row as u32 + 1; @@ -601,6 +605,7 @@ impl<'t> Walker<'t> { if let Some(name_node) = node.child_by_field_name("declarator") { if self.variant == Variant::C && node.kind() == "function_definition" && name_node.kind() == "parenthesized_declarator" && name_node.named_child_count() == 1 + && self.single_parameter_macro_names_function(node, node.child_by_field_name("type").map(|n| self.text(n)).unwrap_or("")) { if let Some(name) = name_node.named_child(0).filter(|n| n.kind() == "identifier") { return self.text(name).to_string(); @@ -658,8 +663,33 @@ impl<'t> Walker<'t> { } /// recoverCppMacroDefinedName (languages/c-cpp.ts:49). + fn single_parameter_macro_names_function(&self, node: Node, macro_name: &str) -> bool { + let mut root = node; + while let Some(parent) = root.parent() { root = parent; } + let mut definition: Option = None; + let mut pending = vec![root]; + while let Some(candidate) = pending.pop() { + if candidate.start_byte() >= node.start_byte() { continue; } + if candidate.kind() == "preproc_function_def" + && candidate.child_by_field_name("name").map(|n| self.text(n)) == Some(macro_name) + && definition.map(|d| candidate.start_byte() > d.start_byte()).unwrap_or(true) + { definition = Some(candidate); } + for i in 0..candidate.named_child_count() { + if let Some(child) = candidate.named_child(i) { pending.push(child); } + } + } + let Some(definition) = definition else { return false }; + let Some(params) = definition.child_by_field_name("parameters") else { return false }; + let Some(value) = definition.child_by_field_name("value") else { return false }; + let Some(parameter) = params.named_child(0) else { return false }; + if params.named_child_count() != 1 || parameter.kind() != "identifier" { return false; } + let head = self.text(value).split('(').next().unwrap_or("").trim(); + let pattern = regex::Regex::new(r"^(?:[A-Za-z_]\w*(?:::\w+)*(?:[ \t]+|[*&][ \t]*))+([A-Za-z_]\w*)$").unwrap(); + pattern.captures(head).and_then(|c| c.get(1)).map(|m| m.as_str()) == Some(self.text(parameter)) + } + fn recover_cpp_macro_defined_name(&self, node: Node) -> Option { - if node.kind() != "function_definition" { + if node.kind() != "function_definition" || node.child_by_field_name("type").is_some() { return None; } let declarator = node.child_by_field_name("declarator")?; @@ -671,6 +701,16 @@ impl<'t> Walker<'t> { return None; } let macro_name = self.text(inner); + let mut owner = node.parent(); + while let Some(parent) = owner { + if matches!(parent.kind(), "class_specifier" | "struct_specifier") { + if parent.child_by_field_name("name").map(|n| strip_cpp_template_args(self.text(n))) == Some(macro_name.to_string()) { + return None; + } + break; + } + owner = parent.parent(); + } if !macro_shaped_re().is_match(macro_name) { return None; } @@ -693,13 +733,7 @@ impl<'t> Walker<'t> { return None; } if params.named_child_count() == 1 { - let pattern = format!(r"(?m)^\s*#\s*define[ \t]+{}\(([A-Za-z_]\w*)\)[ \t]+([^\n]+)", regex::escape(macro_name)); - let definition = regex::Regex::new(&pattern).ok()?; - let captures = definition.captures(self.src)?; - let function_pattern = format!(r"\b{}[ \t]*\(", regex::escape(&captures[1])); - if !regex::Regex::new(&function_pattern).ok()?.is_match(&captures[2]) { - return None; - } + if !self.single_parameter_macro_names_function(node, macro_name) { return None; } } for i in 1..params.named_child_count() { if let Some(p) = params.named_child(i) { @@ -987,6 +1021,10 @@ impl<'t> Walker<'t> { let extra = Extra { docstring: preceding_docstring(node, self.src), + signature: if self.variant == Variant::Cpp && node.child_by_field_name("type").is_none() + && self.recover_cpp_macro_defined_name(node).is_none() { + node.child_by_field_name("declarator").and_then(|d| d.child_by_field_name("parameters")).map(|p| self.text(p).to_string()) + } else { None }, visibility: if self.variant == Variant::Cpp { self.visibility_of(node) } else { None }, is_abstract: if self.variant == Variant::Cpp && self.is_cpp_pure_virtual_method_decl(node) { Some(true) @@ -1480,32 +1518,37 @@ impl<'t> Walker<'t> { } /// isCppStackConstruction (#1035). - fn is_cpp_stack_construction(&self, node: Node) -> bool { + fn cpp_stack_constructions(&self, node: Node<'t>) -> Vec<(Node<'t>, usize)> { for i in 0..node.named_child_count() { if let Some(child) = node.named_child(i) { - if child.kind() == "storage_class_specifier" && self.text(child) == "extern" { return false; } + if child.kind() == "storage_class_specifier" && self.text(child) == "extern" { return Vec::new(); } } } - let Some(type_node) = node.child_by_field_name("type") else { return false }; + let Some(type_node) = node.child_by_field_name("type") else { return Vec::new() }; if !matches!( type_node.kind(), "type_identifier" | "template_type" | "qualified_identifier" ) { - return false; + return Vec::new(); } + let mut constructions = Vec::new(); for i in 0..node.named_child_count() { let Some(child) = node.named_child(i) else { continue }; - if child.kind() == "identifier" { return true; } + if child.kind() == "identifier" { constructions.push((child, 0)); continue; } if child.kind() != "init_declarator" { continue; } + let Some(declarator) = child.child_by_field_name("declarator") else { continue }; + if !matches!(declarator.kind(), "identifier" | "array_declarator") { continue; } if let Some(value) = child.child_by_field_name("value") { if matches!(value.kind(), "argument_list" | "initializer_list") { - return true; + if declarator.kind() == "array_declarator" && value.named_child_count() != 0 { continue; } + let count = (0..value.named_child_count()).filter(|&i| value.named_child(i).map(|n| n.kind() != "comment").unwrap_or(false)).count(); + constructions.push((child, count)); } } } - false + constructions } /// recordCppFnPtrBinding (tree-sitter.ts:5089). @@ -1615,15 +1658,15 @@ impl<'t> Walker<'t> { } // C++ stack construction `Calculator calc(0)` / `Widget w{1,2}` (#1035). - if kind == "declaration" - && self.variant == Variant::Cpp - && self.is_cpp_stack_construction(node) - { - self.extract_instantiation(node); + if kind == "declaration" && self.variant == Variant::Cpp { + let constructions = self.cpp_stack_constructions(node); + if !constructions.is_empty() { self.extract_instantiation(node); } if let (Some(type_node), Some(from)) = (node.child_by_field_name("type"), self.stack.last().map(|s| s.row)) { let class_name = strip_cpp_template_args(self.text(type_node)); if let Some(name) = class_name.split("::").filter(|s| !s.is_empty()).last() { - self.push_ref_at(from, &format!("{class_name}::{name}"), edge_kind_index("calls").unwrap(), node); + for (_, arity) in constructions { + self.push_ref_at(from, &format!("{class_name}::{name}/{arity}"), edge_kind_index("calls").unwrap(), node); + } } } } diff --git a/codegraph-kernel/src/ids.rs b/codegraph-kernel/src/ids.rs index 6f9a3250b..062605ff8 100644 --- a/codegraph-kernel/src/ids.rs +++ b/codegraph-kernel/src/ids.rs @@ -3,7 +3,7 @@ //! //! `${kind}:${sha256(`${filePath}:${kind}:${name}:${line}`).hex[0..32]}` //! -//! TS/JS uses `node_id_at_column`, appending `:${utf16Column}` before hashing +//! TS/JS and C++ use `node_id_at_column`, appending `:${utf16Column}` before hashing //! so same-line declarations have distinct identities. //! //! and the file-node special case in `TreeSitterExtractor.extract()`: diff --git a/docs/validation-review-fixes-2026-09-12.md b/docs/validation-review-fixes-2026-09-12.md new file mode 100644 index 000000000..b025248c9 --- /dev/null +++ b/docs/validation-review-fixes-2026-09-12.md @@ -0,0 +1,65 @@ +# Исправления findings ревью 1a11de26 — 12 сентября 2026 + +База: 1a11de26, Linux x64 / Node 24.15.0. Extraction stamp 32. + +## Закрытые случаи + +1. C++ pointer/reference/function-pointer initialization не считается созданием + объекта. Проверяется вложенный declarator, а не только initializer list. +2. Constructor refs локальных объектов имеют формат Type::Type/N. Resolver + сначала ищет тип в лексическом namespace, затем выбирает единственный + constructor с совместимой арностью. Global/explicit namespace сохранены. + Same-arity overloads и initializer_list не угадываются; полного overload + resolution по типам аргументов нет. +3. C++ IDs учитывают UTF-16 колонку: constructors одной строки не перезаписывают + друг друга; тела и useDefault/useInt ссылаются на разные правильные IDs. + C и остальные ранее неизменённые языки сохраняют прежний формат IDs. +4. Macro recovery использует AST настоящего предшествующего #define; текст + комментария и noexcept(name()) не становятся доказательством имени функции. + Constructor не переименовывается как macro-generated function, включая + сценарий define/undef. Аргументы макроса не выдаются за параметры функции: + неподтверждённая signature у get_version отсутствует. +5. Macro visibility различает отсутствующий entry и existing unknown: + условный undef больше не превращает possible macro в definite absence. +6. Default/cache/lifecycle/catch-up используют canonical root. Symlink и real + path разделяют экземпляр, watcher и gate; позднее назначение default не + закрывает ранее открытый explicit-проект и его pending catch-up. + +## Подтверждение результатов + +Исходные review-примеры сохранены отдельно от результатов исправления. + +- 7 C++ fixtures компилируются как C++17; fixed native/WASM JSON совпадают. + Pointer/reference дают 0 ctor calls; default/int выбирают правильные defs; + namespace second не связывается с first; same-line constructors имеют разные + IDs; macro-comment сохраняет NATIVE_FN и настоящий invoke → NATIVE_FN. +- ADRC recreate: 2021файл, 0 проверенных ложных macro calls, 15/15 настоящих + контрольных calls сохранены. 32811nodes,70888edges,22663calls; 9.185с. + 0filesErrored, 7 прежних parse warnings. Это проверка графа, не firmware runtime. +- Alias probe: ровно1watcher; второй запрос не выходит до снятия barrier первого + catch-up; оба ответа содержат added.ts. Сохраняется общий timeout gate, + настройка бесконечного ожидания — CODEGRAPH_CATCHUP_GATE_TIMEOUT_MS=0. +- Реальный stdio MCP на копиях CSQTT (54файла) и bot (30файлов): source hashes + совпадают с SQLite после catch-up и live updates; exit0 и cleanup PASS. +- Repro unknown define/undef: possible macro=true, persisted calls=[]; + cc -E с ENABLE_TRACE=1,CLEAR_TRACE=0 подтверждает отсутствие вызова TRACE. + +## Финальная матрица + +- Native: 280 test files passed; 4729 passed, 9 skipped, 0 failed. +- WASM: 279 test files passed, 1 skipped; 4719 passed, 19 skipped, 0 failed. +- TypeScript и полная сборка с viewer и 30 grammar assets прошли. +- Прогоны выполнены последовательно с двумя workers и --liftoff-only. + +## Границы + +Полный C/C++ preprocessor и произвольные macro replacements не реализованы. +Выбор local constructors намеренно консервативен при неоднозначности. Полный +HDL elaboration/timing не добавлен. Windows/macOS не проверялись. + +## Артефакты + +.scratch/cpp-review-fixed-native.json, cpp-review-fixed-wasm.json, +cpp-real-adrc-results.json, fixed-lifecycle-alias-gate.cjs, +fixed-lifecycle-alias.cjs, real-project-lifecycle-mcp-results.json, +review-uncertain-undef.cjs, review-final-matrix.json и review-final-*.log. diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index c8672a16a..8201e9ef6 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 31; +export const EXTRACTION_VERSION = 32; diff --git a/src/extraction/languages/c-cpp.ts b/src/extraction/languages/c-cpp.ts index 72af80743..462537ab1 100644 --- a/src/extraction/languages/c-cpp.ts +++ b/src/extraction/languages/c-cpp.ts @@ -47,13 +47,47 @@ function findDeclaratorQualifiedId(declarator: SyntaxNode): SyntaxNode | undefin * `TEST_F(Fixture, Name)`, `PYBIND11_MODULE(ext, m)`, * google-benchmark's `BENCHMARK_DEFINE_F(Fix, name)` all bail here). */ +function singleParameterMacroNamesFunction(node: SyntaxNode, macroName: string, source: string): boolean { + let root = node; + while (root.parent) root = root.parent; + let definition: SyntaxNode | undefined; + const pending = [root]; + while (pending.length) { + const candidate = pending.pop()!; + if (candidate.startIndex >= node.startIndex) continue; + if (candidate.type === 'preproc_function_def' && + getChildByField(candidate, 'name')?.text === macroName && + (!definition || candidate.startIndex > definition.startIndex)) definition = candidate; + pending.push(...candidate.namedChildren); + } + if (!definition) return false; + const params = getChildByField(definition, 'parameters'); + const value = getChildByField(definition, 'value'); + const parameter = params?.namedChild(0); + if (params?.namedChildCount !== 1 || parameter?.type !== 'identifier' || !value) return false; + // The first declarator's name must be the parameter. A later use inside + // noexcept(name()), an attribute or another expression is not a definition. + const head = getNodeText(value, source).split('(')[0]?.trim() ?? ''; + const match = head.match(/^(?:[A-Za-z_]\w*(?:::\w+)*(?:[ \t]+|[*&][ \t]*))+([A-Za-z_]\w*)$/); + return match?.[1] === getNodeText(parameter, source); +} + function recoverCppMacroDefinedName(node: SyntaxNode, source: string): string | undefined { - if (node.type !== 'function_definition') return undefined; + if (node.type !== 'function_definition' || getChildByField(node, 'type')) return undefined; const declarator = getChildByField(node, 'declarator'); if (declarator?.type !== 'function_declarator') return undefined; const inner = getChildByField(declarator, 'declarator'); if (inner?.type !== 'identifier') return undefined; const macroName = getNodeText(inner, source); + // A real constructor has no return type too. Its owner is authoritative, + // including when a same-named macro appeared earlier and was undefined. + for (let owner = node.parent; owner; owner = owner.parent) { + if (owner.type === 'class_specifier' || owner.type === 'struct_specifier') { + const ownerName = getChildByField(owner, 'name'); + if (ownerName && stripCppTemplateArgs(getNodeText(ownerName, source)) === macroName) return undefined; + break; + } + } if (!/^[A-Z][A-Z0-9]*(?:_[A-Z0-9]+)+$/.test(macroName)) return undefined; const params = getChildByField(declarator, 'parameters'); if (!params || params.namedChildCount < 1) return undefined; @@ -69,8 +103,7 @@ function recoverCppMacroDefinedName(node: SyntaxNode, source: string): string | if (params.namedChildCount === 1) { // A single bare argument is ambiguous unless this file defines the macro // as a function declaration using its parameter as the function name. - const definition = source.match(new RegExp(`^\\s*#\\s*define[ \\t]+${macroName}\\(([A-Za-z_]\\w*)\\)[ \\t]+([^\\n]+)`, 'm')); - if (!definition || !new RegExp(`\\b${definition[1]}[ \\t]*\\(`).test(definition[2]!)) return undefined; + if (!singleParameterMacroNamesFunction(node, macroName, source)) return undefined; } for (let i = 1; i < params.namedChildCount; i++) { const p = params.namedChild(i); @@ -223,7 +256,8 @@ export const cExtractor: LanguageExtractor = { const name = declarator?.namedChild(0); // C parses FN(name) { ... } as type FN + (name) declarator. if (node.type === 'function_definition' && declarator?.type === 'parenthesized_declarator' && - declarator.namedChildCount === 1 && name?.type === 'identifier') return getNodeText(name, source); + declarator.namedChildCount === 1 && name?.type === 'identifier' && + singleParameterMacroNamesFunction(node, getChildByField(node, 'type')?.text ?? '', source)) return getNodeText(name, source); return undefined; }, functionTypes: ['function_definition'], @@ -1743,6 +1777,20 @@ export const cppExtractor: LanguageExtractor = { resolveName: extractCppQualifiedMethodName, getReceiverType: extractCppReceiverType, getReturnType: extractCppReturnType, + getSignature: (node, source) => { + if (getChildByField(node, 'type') || recoverCppMacroDefinedName(node, source)) return undefined; + // Macro invocation parameters are not the generated function signature. + // Only method/constructor syntax contributes this parameter-only signature. + let isMethod = !!extractCppReceiverType(node, source); + for (let owner = node.parent; !isMethod && owner; owner = owner.parent) { + if (owner.type === 'field_declaration_list') { isMethod = true; break; } + if (owner.type === 'function_definition' || owner.type === 'compound_statement') break; + } + if (!isMethod) return undefined; + const declarator = getChildByField(node, 'declarator'); + const parameters = declarator && getChildByField(declarator, 'parameters'); + return parameters ? getNodeText(parameters, source) : undefined; + }, getVisibility: (node) => { // Check for access specifier in parent const parent = node.parent; diff --git a/src/extraction/tree-sitter-helpers.ts b/src/extraction/tree-sitter-helpers.ts index e2276ca7a..80254fd52 100644 --- a/src/extraction/tree-sitter-helpers.ts +++ b/src/extraction/tree-sitter-helpers.ts @@ -14,7 +14,7 @@ import { NodeKind } from '../types'; * * Uses a 32-character (128-bit) hash to avoid collisions when indexing * large codebases with many files containing similar symbols. The optional - * UTF-16 column distinguishes same-line declarations (TS/JS); omitted columns + * UTF-16 column distinguishes same-line declarations (TS/JS and C++); omitted columns * preserve the existing identity format for other extraction paths. */ export function generateNodeId( diff --git a/src/extraction/tree-sitter.ts b/src/extraction/tree-sitter.ts index d88f712a0..499ba2605 100644 --- a/src/extraction/tree-sitter.ts +++ b/src/extraction/tree-sitter.ts @@ -1399,9 +1399,9 @@ export class TreeSitterExtractor { return null; } - // TS/JS permits same-name declarations on one line (notably get/set). + // TS/JS accessors and C++ overloads can share a name and source line. // Include the UTF-16 column for these languages so their edges cannot alias. - const column = ['typescript', 'tsx', 'javascript', 'jsx'].includes(this.language) + const column = ['typescript', 'tsx', 'javascript', 'jsx', 'cpp'].includes(this.language) ? node.startPosition.column : undefined; const id = generateNodeId(this.filePath, kind, name, node.startPosition.row + 1, column); @@ -5110,8 +5110,8 @@ export class TreeSitterExtractor { * reference, and function declarators are excluded, including the * most-vexing-parse `Calculator c();` (a function declaration). */ - private isCppStackConstruction(node: SyntaxNode): boolean { - if (node.namedChildren.some(c => c.type === 'storage_class_specifier' && c.text === 'extern')) return false; + private cppStackConstructions(node: SyntaxNode): Array<{ node: SyntaxNode; arity: number }> { + if (node.namedChildren.some(c => c.type === 'storage_class_specifier' && c.text === 'extern')) return []; const typeNode = getChildByField(node, 'type'); if ( !typeNode || @@ -5119,18 +5119,23 @@ export class TreeSitterExtractor { typeNode.type !== 'template_type' && typeNode.type !== 'qualified_identifier') ) { - return false; + return []; } + const constructions: Array<{ node: SyntaxNode; arity: number }> = []; for (let i = 0; i < node.namedChildCount; i++) { const child = node.namedChild(i); - if (child?.type === 'identifier') return true; // T object; default construction + if (child?.type === 'identifier') { constructions.push({ node: child, arity: 0 }); continue; } if (child?.type !== 'init_declarator') continue; + const declarator = getChildByField(child, 'declarator'); + if (declarator?.type !== 'identifier' && declarator?.type !== 'array_declarator') continue; const value = getChildByField(child, 'value'); if (value && (value.type === 'argument_list' || value.type === 'initializer_list')) { - return true; + // Array initializer elements are objects, not constructor arguments. + if (declarator.type === 'array_declarator' && value.namedChildCount !== 0) continue; + constructions.push({ node: child, arity: value.namedChildren.filter(c => c.type !== 'comment').length }); } } - return false; + return constructions; } /** @@ -5662,15 +5667,16 @@ export class TreeSitterExtractor { // (which strips template args / namespace and emits the `instantiates` // ref). Children still recurse below, so a nested ctor-arg call // (`Calculator calc(make())`) keeps its own `calls` ref. - if (nodeType === 'declaration' && this.language === 'cpp' && this.isCppStackConstruction(node)) { - this.extractInstantiation(node); + if (nodeType === 'declaration' && this.language === 'cpp') { + const constructions = this.cppStackConstructions(node); + if (constructions.length) this.extractInstantiation(node); const type = getChildByField(node, 'type'); const className = type ? stripCppTemplateArgs(getNodeText(type, this.source)) : ''; const name = className.split('::').filter(Boolean).pop(); const callerId = this.nodeStack[this.nodeStack.length - 1]; - if (name && callerId) this.unresolvedReferences.push({ + if (name && callerId) for (const construction of constructions) this.unresolvedReferences.push({ fromNodeId: callerId, - referenceName: `${className}::${name}`, + referenceName: `${className}::${name}/${construction.arity}`, referenceKind: 'calls', line: node.startPosition.row + 1, column: node.startPosition.column, diff --git a/src/mcp/engine.ts b/src/mcp/engine.ts index 07b7f6bee..b581e522f 100644 --- a/src/mcp/engine.ts +++ b/src/mcp/engine.ts @@ -12,6 +12,7 @@ import * as os from 'os'; import * as path from 'path'; +import { realpathSync } from 'fs'; import type CodeGraph from '../index'; import { resolveServerRoot } from '../directory'; import { watchDisabledReason } from '../sync'; @@ -181,7 +182,7 @@ export class MCPEngine { this.lastRetrySubScanAt = Date.now(); if (!res.root) this.toolHandler.setKnownSubprojects(res.candidates, searchFrom); } - const resolvedRoot = res.root; + const resolvedRoot = res.root ? realpathSync(res.root) : null; if (!resolvedRoot) return; if (res.viaSubScan) this.logSubprojectAdoption(searchFrom, resolvedRoot); try { @@ -192,7 +193,7 @@ export class MCPEngine { } this.cg = loadCodeGraph().openSync(resolvedRoot); this.projectPath = resolvedRoot; - this.toolHandler.setDefaultCodeGraph(this.cg); + this.cg = this.toolHandler.setDefaultCodeGraph(this.cg); this.toolHandler.setCatchUpGate(this.activateProject(this.cg)); this.maybeStartPool(resolvedRoot); } catch { @@ -238,7 +239,7 @@ export class MCPEngine { // variant of this state read as "CodeGraph is broken" and was diagnosable // only by knowing to look for a missing ~/.codegraph/daemons/ entry. const res = resolveServerRoot(searchFrom); - const resolvedRoot = res.root; + const resolvedRoot = res.root ? realpathSync(res.root) : null; if (!resolvedRoot) { // Sessions may still discover a project later via roots/list, and the // per-call retry re-resolves — this state is recoverable, hence stderr @@ -261,7 +262,7 @@ export class MCPEngine { this.projectPath = resolvedRoot; try { this.cg = await loadCodeGraph().open(resolvedRoot); - this.toolHandler.setDefaultCodeGraph(this.cg); + this.cg = this.toolHandler.setDefaultCodeGraph(this.cg); this.toolHandler.setCatchUpGate(this.activateProject(this.cg)); this.maybeStartPool(resolvedRoot); } catch (err) { @@ -284,7 +285,7 @@ export class MCPEngine { * opens get the same writer ownership and catch-up lifecycle as the default. */ private activateProject(cg: CodeGraph): Promise { - const root = cg.getProjectRoot(); + const root = realpathSync(cg.getProjectRoot()); if (this.closed || this.watchedProjects.has(root)) return Promise.resolve(); const disabledReason = !this.opts.watch ? 'watch disabled for this engine' : watchDisabledReason(root); if (disabledReason) { diff --git a/src/mcp/tools.ts b/src/mcp/tools.ts index 6f5f44ac5..6288a0173 100644 --- a/src/mcp/tools.ts +++ b/src/mcp/tools.ts @@ -36,6 +36,7 @@ import { groupDefinitions, lastQualifierPart, matchesSymbol } from '../graph/sym import { extractQueryPaths, queryMightContainPaths } from '../search/query-paths'; import { existsSync, + realpathSync, readFileSync, statSync, } from 'fs'; @@ -1520,8 +1521,18 @@ export class ToolHandler { /** * Update the default CodeGraph instance (e.g. after lazy initialization) */ - setDefaultCodeGraph(cg: CodeGraph): void { + setDefaultCodeGraph(cg: CodeGraph): CodeGraph { + const root = realpathSync(cg.getProjectRoot()); + const cached = this.projectCache.get(root); + if (cached && cached !== cg) { + // An explicit request may have opened this project before default-root + // discovery completed. Preserve its watcher and in-flight catch-up. + cg.close(); + cg = cached; + } + this.projectCache.delete(root); // default ownership moves to the engine this.cg = cg; + return cg; } /** @@ -1532,9 +1543,24 @@ export class ToolHandler { * stale data, which is what would have happened without the gate. */ setCatchUpGate(p: Promise | null): void { + if (this.projectLifecycle && this.cg) { + // Engine defaults and explicit aliases share the same pending gate. + // Do not overwrite a catch-up already running on a promoted cache entry. + if (p && !this.projectGates.has(this.cg)) this.rememberProjectGate(this.cg, p); + if (!p) this.projectGates.delete(this.cg); + return; + } this.catchUpGate = p; } + private rememberProjectGate(cg: CodeGraph, gate: Promise): void { + this.projectGates.set(cg, gate); + const clear = (): void => { + if (this.projectGates.get(cg) === gate) this.projectGates.delete(cg); + }; + void gate.then(clear, clear); + } + /** * Await the catch-up gate, but no longer than the configured timeout (#905). * If the reconcile settles first, we got the fully-reconciled answer. If the @@ -1762,7 +1788,8 @@ export class ToolHandler { // worktree kept being served the parent checkout's index until restart // (#926). The DB connection itself is still cached (by resolved root, // below), so re-resolving costs only the stat walk, never a reopen. - const resolvedRoot = findNearestCodeGraphRoot(projectPath); + const nearestRoot = findNearestCodeGraphRoot(projectPath); + const resolvedRoot = nearestRoot ? realpathSync(nearestRoot) : null; if (!resolvedRoot) { throw new NotIndexedError( @@ -1780,11 +1807,11 @@ export class ToolHandler { // support) that surfaces as intermittent // "database is locked" on concurrent tool calls. See issue #238. The // default instance is owned/closed by the server, so it's never cached. - if (this.cg && this.cg.getProjectRoot() === resolvedRoot) { + if (this.cg && realpathSync(this.cg.getProjectRoot()) === resolvedRoot) { return this.freshen(this.cg); } - // Cache the open DB connection by RESOLVED ROOT only — never by the input + // Cache the open DB connection by CANONICAL ROOT only — never by the input // path. One key per instance means closeAll() closes each exactly once, and // a changed resolution maps to a different entry instead of a stale hit. const cached = this.projectCache.get(resolvedRoot); @@ -2165,15 +2192,14 @@ export class ToolHandler { // Resolve on the engine thread even when dispatch uses a read worker: // explicit projects need the same watcher and initial reconcile as default. - if (this.projectLifecycle && pathCheck) { + if (this.projectLifecycle && (pathCheck || this.cg)) { const cg = this.getCodeGraph(pathCheck); let gate = this.projectGates.get(cg); if (!gate) { // Retry writer ownership on later calls: another engine may have // closed since we opened this connection in read-only fallback. gate = this.projectLifecycle(cg); - this.projectGates.set(cg, gate); - void gate.finally(() => this.projectGates.delete(cg)); + this.rememberProjectGate(cg, gate); } await this.awaitCatchUpGate(gate); } diff --git a/src/resolution/cpp-constructor.ts b/src/resolution/cpp-constructor.ts new file mode 100644 index 000000000..67b55a14b --- /dev/null +++ b/src/resolution/cpp-constructor.ts @@ -0,0 +1,58 @@ +import type { ResolvedRef, ResolutionContext, UnresolvedRef } from './types'; + +/** The constructor-only reference emitted for a local C++ object declaration. */ +export function isCppConstructorRef(ref: UnresolvedRef): boolean { + return ref.language === 'cpp' && ref.referenceKind === 'calls' && /::[^:]+\/\d+$/.test(ref.referenceName); +} + +/** Count top-level parameters; nested template/function/default commas are not separators. */ +function arity(signature: string | undefined): { min: number; max: number } | null { + if (!signature?.startsWith('(') || !signature.endsWith(')')) return null; + const text = signature.slice(1, -1).trim(); + if (!text || text === 'void') return { min: 0, max: 0 }; + const parts: string[] = []; + let start = 0, depth = 0, quote = ''; + for (let i = 0; i < text.length; i++) { + const c = text[i]!; + if (quote) { if (c === '\\') i++; else if (c === quote) quote = ''; continue; } + if (c === '"' || c === "'") { quote = c; continue; } + if ('(<[{'.includes(c)) depth++; + if (')>]}'.includes(c)) depth--; + if (c === ',' && depth === 0) { parts.push(text.slice(start, i)); start = i + 1; } + } + if (depth !== 0 || quote) return null; + parts.push(text.slice(start)); + // Complex declarator/default expressions need a compiler; don't infer their arity. + if (parts.some(p => /[<>]=|==|!=/.test(p))) return null; + const variadic = parts.some(p => p.includes('...')); + return { min: parts.filter(p => !p.includes('=') && !p.includes('...')).length, + max: variadic ? Infinity : parts.length }; +} + +/** Lexical type identity first, then a unique arity-compatible constructor. */ +export function matchCppConstructor(ref: UnresolvedRef, context: ResolutionContext): ResolvedRef | null { + const match = ref.referenceName.match(/^(.*)::([^:]+)\/(\d+)$/); + if (!match) return null; + const [, rawType, name, count] = match; + const type = rawType!.replace(/^::/, ''); + if (type.split('::').pop() !== name) return null; + const caller = context.getNodeById?.(ref.fromNodeId); + const scopes = rawType!.startsWith('::') ? [] : (caller?.qualifiedName.split('::') ?? []); + const typeNames: string[] = []; + for (let i = scopes.length; i > 0; i--) typeNames.push(`${scopes.slice(0, i).join('::')}::${type}`); + typeNames.push(type); + for (const qualified of typeNames) { + const owners = context.getNodesByQualifiedName(qualified).filter(n => + n.language === 'cpp' && (n.kind === 'class' || n.kind === 'struct')); + if (!owners.length) continue; + const methods = context.getNodesByName(name!).filter(n => n.language === 'cpp' && + n.kind === 'method' && n.qualifiedName === `${qualified}::${name}`); + // Braced initialization prioritizes initializer_list overloads; arity alone + // cannot safely choose among them and ordinary constructors. + if (methods.some(n => /\binitializer_list\b/.test(n.signature ?? ''))) return null; + const matches = methods.filter(n => { const a = arity(n.signature); return a && a.min <= Number(count) && Number(count) <= a.max; }); + if (matches.length !== 1) return null; + return { original: ref, targetNodeId: matches[0]!.id, confidence: 0.9, resolvedBy: 'qualified-name' }; + } + return null; +} diff --git a/src/resolution/cpp-macro-visibility.ts b/src/resolution/cpp-macro-visibility.ts index 7fab969bc..413b51e62 100644 --- a/src/resolution/cpp-macro-visibility.ts +++ b/src/resolution/cpp-macro-visibility.ts @@ -82,7 +82,9 @@ export function isVisibleCppMacro(ref: UnresolvedRef, context: ResolutionContext const name = directive[2]!; const defining = directive[1] === 'define'; const previous = definitions.get(name); - const defined = defining ? or(previous?.defined ?? false, active) : and(previous?.defined ?? false, not(active)); + // An absent entry is false; an existing unknown must stay unknown. + const prior = previous ? previous.defined : false; + const defined = defining ? or(prior, active) : and(prior, not(active)); const assumedValue = defining ? condition(text.slice(directive[0].length), scope) : false; const value = active === true ? assumedValue : undefined; definitions.set(name, { defined, value, assumedDefined: defining, assumedValue, scope: [...scope] }); diff --git a/src/resolution/index.ts b/src/resolution/index.ts index 2e3b94699..cdb7fbb1b 100644 --- a/src/resolution/index.ts +++ b/src/resolution/index.ts @@ -21,6 +21,7 @@ import { } from './types'; import { isVisibleAcrossFiles, matchReference, matchFunctionRef, matchDottedCallChain, matchScopedCallChain, matchMethodCall, sameLanguageFamily, crossesKnownFamily, dumpNameMatcherProfile, clearNameMatcherMemos } from './name-matcher'; import { isVisibleCppMacro } from './cpp-macro-visibility'; +import { isCppConstructorRef, matchCppConstructor } from './cpp-constructor'; import { resolveViaImport, resolvePhpImportedStaticCall, resolveJvmImport, extractImportMappings, extractReExports, loadCppIncludeDirs, isPhpIncludePathRef, isCobolCopybookRef, isNixPathImportRef, isBoundToOutOfRepoImport, clearImportResolverMemos, resolveImportPath } from './import-resolver'; import { ResolverPool, minRefsForPool } from './resolver-pool'; import { resolveAliasBinding } from './alias-binding'; @@ -897,6 +898,7 @@ export class ReferenceResolver { } private resolveOneInner(ref: UnresolvedRef): ResolvedRef | null { + if (isCppConstructorRef(ref)) return matchCppConstructor(ref, this.context); // Skip built-in/external references if (this.isBuiltInOrExternal(ref)) { return null; diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index 616452b49..c9a836d28 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -10,6 +10,7 @@ import { UnresolvedRef, ResolvedRef, ResolutionContext, SUPERTYPE_TARGET_KINDS, import { blankStringContents, stripCommentsForRegex } from './strip-comments'; import { JS_BUILT_INS, isTsJsNestedCall } from './js-builtins'; import { isVisibleCppMacro, clearCppMacroVisibility } from './cpp-macro-visibility'; +import { isCppConstructorRef, matchCppConstructor } from './cpp-constructor'; /** * Ceiling on how many same-named definitions a FUZZY name-match strategy will @@ -3098,6 +3099,7 @@ export function matchReference( context: ResolutionContext ): ResolvedRef | null { if (isVisibleCppMacro(ref, context)) return null; + if (isCppConstructorRef(ref)) return matchCppConstructor(ref, context); if (ref.language === 'verilog' && ref.referenceKind === 'instantiates' && !isVerilogSimPath(ref.filePath)) { const modules = context .getNodesByName(ref.referenceName) From ce13487bcda1821d9fddbc4122c9390ec58266ca Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 13:14:35 +0300 Subject: [PATCH 12/23] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=BD=D0=B0=D0=B2=D0=B8=D0=B3=D0=B0=D1=86?= =?UTF-8?q?=D0=B8=D1=8E=20=D0=BF=D0=BE=20HDL=20=D1=8D=D0=BA=D0=B7=D0=B5?= =?UTF-8?q?=D0=BC=D0=BF=D0=BB=D1=8F=D1=80=D0=B0=D0=BC=20=D0=BF=D0=BE=D1=80?= =?UTF-8?q?=D1=82=D0=B0=D0=BC=20=D0=B8=20=D1=81=D0=B8=D0=B3=D0=BD=D0=B0?= =?UTF-8?q?=D0=BB=D0=B0=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + README.md | 2 +- __tests__/hdl-instances.test.ts | 46 +++++ __tests__/verilog-packages.test.ts | 61 +++++++ __tests__/verilog-resolution.test.ts | 6 +- __tests__/verilog-signals.test.ts | 80 +++++++++ docs/validation-hdl-navigation-2026-09-12.md | 71 ++++++++ src/extraction/extraction-version.ts | 2 +- src/extraction/languages/verilog-packages.ts | 41 +++++ src/extraction/languages/verilog-signals.ts | 166 +++++++++++++++++++ src/extraction/languages/verilog.ts | 114 ++++++++++--- src/extraction/tree-sitter-helpers.ts | 2 +- src/extraction/tree-sitter.ts | 4 +- src/mcp/server-instructions.ts | 4 + src/resolution/index.ts | 2 + src/resolution/name-matcher.ts | 2 + src/resolution/verilog-members.ts | 54 ++++++ 17 files changed, 624 insertions(+), 35 deletions(-) create mode 100644 __tests__/hdl-instances.test.ts create mode 100644 __tests__/verilog-packages.test.ts create mode 100644 __tests__/verilog-signals.test.ts create mode 100644 docs/validation-hdl-navigation-2026-09-12.md create mode 100644 src/extraction/languages/verilog-packages.ts create mode 100644 src/extraction/languages/verilog-signals.ts create mode 100644 src/resolution/verilog-members.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 72d4a9c41..d0c1f4b67 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -145,6 +145,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- Verilog/SystemVerilog: именованные экземпляры и generate scopes, порты/сигналы и always/assign доступны для навигации; связи локальных сигналов и package calls сохраняют scope, interfaces показывают modports. Полные elaboration и timing не моделируются. + - Вызовы действий store больше не теряются из-за одноимённой сигнатуры в TypeScript-интерфейсе. - Вложенные вызовы JavaScript и TypeScript снова доступны Steps и распознаванию фреймворков без привязки встроенных коллекций к посторонним методам; существующие индексы нужно пересобрать. (#1794, #1566) diff --git a/README.md b/README.md index 6f0f247a8..d5315e3e2 100644 --- a/README.md +++ b/README.md @@ -892,7 +892,7 @@ is written): | Astro | `.astro` | Full support (frontmatter + script extraction, template component/call references, `src/pages/` routes) | | Liquid | `.liquid` | Full support | | Pascal / Delphi | `.pas`, `.dpr`, `.dpk`, `.lpr` | Full support (classes, records, interfaces, enums, DFM/FMX form files) | -| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули, interfaces/packages, functions/tasks, parameters, typedefs, imports/includes и иерархия instantiates; без анализа сигналов и timing | +| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, generate scopes, порты/сигналы, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | | Lua | `.lua` | Full support (functions, methods with receivers, local variables, `require` imports, call edges) | | R | `.R` `.r` | Full support (functions in every assignment form, S4/R5/R6 classes with methods, `library`/`require` imports, `source()` file references, call edges) | | Luau | `.luau` | Full support (everything in Lua, plus `type`/`export type` aliases, typed signatures, and Roblox instance-path `require`) | diff --git a/__tests__/hdl-instances.test.ts b/__tests__/hdl-instances.test.ts new file mode 100644 index 000000000..70e74656f --- /dev/null +++ b/__tests__/hdl-instances.test.ts @@ -0,0 +1,46 @@ +import { it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; + +it('keeps named HDL instances, source connections and generate scopes without elaborating arrays', async () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'cg-hdl-instances-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'top.sv'), `module leaf #(parameter W=8) (input a); endmodule +module top(input a); + leaf #(.W(4)) first(.a(a)), bank[3:0](a); + if (1) begin : yes leaf u(.a(a)); end else begin : no leaf u(.*); end + for(genvar i=0;i<4;i++) begin : lanes leaf repeated(.a); end + if (1) begin leaf anonymous(.a(a)); end +endmodule +`); + cg = CodeGraph.initSync(root); + expect((await cg.indexAll()).success).toBe(true); + const instances = ['first', 'bank', 'u', 'repeated', 'anonymous'].flatMap(name => + cg!.getNodesByName(name).filter(n => n.kind === 'variable')); + expect(instances).toHaveLength(6); + expect(new Set(instances.map(n => n.id)).size).toBe(6); + expect(instances.find(n => n.name === 'first')?.signature).toBe('leaf #(.W(4)) first(.a(a))'); + expect(instances.find(n => n.name === 'bank')?.signature).toBe('leaf #(.W(4)) bank[3:0](a)'); + expect(instances.filter(n => n.name === 'u').map(n => n.qualifiedName).sort()).toEqual(['top::no::u', 'top::yes::u']); + expect(instances.find(n => n.name === 'repeated')?.qualifiedName).toBe('top::lanes::repeated'); + expect(instances.find(n => n.name === 'anonymous')?.qualifiedName).toMatch(/^top::generate@6:\d+::anonymous$/); + const targets = (id: string) => cg!.getCallees(id).filter(e => e.edge.kind === 'instantiates').map(e => e.node.name); + for (const instance of instances) expect(targets(instance.id)).toEqual(['leaf']); + expect(targets(cg.getNodesByName('top')[0].id)).toEqual(['leaf']); + for (const instance of instances.filter(n => n.signature?.includes('.a(') || n.name === 'bank' || n.name === 'repeated')) { + expect(cg.getCallees(instance.id).filter(e => e.edge.kind === 'references').map(e => e.node.qualifiedName)).toEqual(['top::a']); + } + const wildcard = instances.find(n => n.signature === 'leaf u(.*)')!; + expect(cg.getCallees(wildcard.id).filter(e => e.edge.kind === 'references')).toEqual([]); + const before = instances.map(n => n.id).sort(); + await cg.indexAll(); + expect(['first', 'bank', 'u', 'repeated', 'anonymous'].flatMap(name => + cg!.getNodesByName(name).filter(n => n.kind === 'variable').map(n => n.id)).sort()).toEqual(before); + } finally { + cg?.close(); + fs.rmSync(root, { recursive: true, force: true }); + } +}); diff --git a/__tests__/verilog-packages.test.ts b/__tests__/verilog-packages.test.ts new file mode 100644 index 000000000..c62c6a693 --- /dev/null +++ b/__tests__/verilog-packages.test.ts @@ -0,0 +1,61 @@ +import { describe, it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; + +async function graph(sources: Record, check: (db: any) => void) { + const dir = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-packages-')); + let cg: CodeGraph | undefined; + try { + for (const [name, source] of Object.entries(sources)) fs.writeFileSync(path.join(dir, name), source); + cg = await CodeGraph.init(dir, { silent: true }); + await cg.indexAll(); + check((cg as any).db.db); + } finally { cg?.destroy(); fs.rmSync(dir, { recursive: true, force: true }); } +} +const functions = 'package a; function int convert(); return 1; endfunction endpackage\npackage b; function int convert(); return 2; endfunction endpackage'; +function calls(db: any) { return db.prepare("SELECT t.qualified_name target FROM edges e JOIN nodes t ON t.id=e.target WHERE e.kind='calls'").all().map((r: any) => r.target); } + +describe('SystemVerilog package and interface identity', () => { + it('keeps the package qualifier and does not match a same-named foreign function', async () => { + await graph({ 'pkg.sv': functions, 'top.sv': 'module top; initial begin b::convert(); missing::convert(); end endmodule' }, db => { + expect(calls(db)).toEqual(['b::convert']); + }); + }); + it('resolves a visible package import but never an unrelated global package member', async () => { + await graph({ 'pkg.sv': functions, 'top.sv': 'module top; import b::*; initial convert(); endmodule\nmodule other; initial convert(); endmodule' }, db => { + expect(calls(db)).toEqual(['b::convert']); + }); + }); + it('does not choose between conflicting package imports', async () => { + await graph({ 'pkg.sv': functions, 'top.sv': 'module top; import a::*, b::*; initial convert(); endmodule' }, db => { + expect(calls(db)).toEqual([]); + }); + }); + it('does not flatten hierarchical calls to an unrelated package function', async () => { + await graph({ 'pkg.sv': functions, 'top.sv': 'module top; initial obj.convert(); endmodule' }, db => { + expect(calls(db)).toEqual([]); + }); + }); + it('does not import compilation-unit functions from an unrelated file', async () => { + await graph({ 'foreign.sv': 'function int convert(); return 1; endfunction', + 'top.sv': 'module top; initial convert(); endmodule' }, db => expect(calls(db)).toEqual([])); + }); + it('keeps nested package calls inside argument expressions', async () => { + await graph({ 'pkg.sv': functions, 'top.sv': 'module top; initial b::convert(a::convert()); endmodule' }, db => { + expect(calls(db).sort()).toEqual(['a::convert', 'b::convert']); + }); + }); + it('exposes modport directions and resolves an interface port to its exact view', async () => { + await graph({ 'bus.sv': 'interface bus; logic valid, ready; modport Master(output valid, input ready), Slave(input valid, output ready); endinterface', + 'top.sv': 'module top(bus.Master axi); endmodule' }, db => { + const views = db.prepare("SELECT qualified_name name, signature FROM nodes WHERE signature LIKE 'modport %' ORDER BY name").all(); + expect(views).toEqual([{ name: 'bus::Master', signature: 'modport Master(output valid, input ready)' }, { name: 'bus::Slave', signature: 'modport Slave(input valid, output ready)' }]); + const types = db.prepare("SELECT s.name source, t.qualified_name target FROM edges e JOIN nodes s ON s.id=e.source JOIN nodes t ON t.id=e.target WHERE e.kind='type_of'").all(); + const signals = db.prepare("SELECT t.qualified_name target FROM edges e JOIN nodes s ON s.id=e.source JOIN nodes t ON t.id=e.target WHERE e.kind='references' AND s.qualified_name='bus::Master' ORDER BY target").all(); + expect(signals).toEqual([{ target: 'bus::ready' }, { target: 'bus::valid' }]); + expect(types).toContainEqual({ source: 'axi', target: 'bus::Master' }); + }); + }); +}); diff --git a/__tests__/verilog-resolution.test.ts b/__tests__/verilog-resolution.test.ts index 65ee32263..d9a5d9f0c 100644 --- a/__tests__/verilog-resolution.test.ts +++ b/__tests__/verilog-resolution.test.ts @@ -51,7 +51,7 @@ describe('verilog module resolution', () => { write(dir, 'rtl/pll.v', PLL); write(dir, 'sim/pll_stub.v', PLL); const inst = (await edges(dir)).filter((e) => e.kind === 'instantiates'); - expect(inst).toEqual([{ kind: 'instantiates', sn: 'top', sf: 'top.v', tn: 'pll', tf: 'rtl/pll.v' }]); + expect(inst.map(e => [e.sn, e.tn, e.tf]).sort()).toEqual([['top', 'pll', 'rtl/pll.v'], ['u_pll', 'pll', 'rtl/pll.v']]); }); it('a stub named by file suffix is skipped too', async () => { @@ -59,7 +59,7 @@ describe('verilog module resolution', () => { write(dir, 'rtl/pll.v', PLL); write(dir, 'models/pll_stub.v', PLL); const inst = (await edges(dir)).filter((e) => e.kind === 'instantiates'); - expect(inst.map((e) => e.tf)).toEqual(['rtl/pll.v']); + expect(inst.map((e) => e.tf)).toEqual(['rtl/pll.v', 'rtl/pll.v']); }); it('a testbench keeps every candidate and lands on the stub beside it', async () => { @@ -67,7 +67,7 @@ describe('verilog module resolution', () => { write(dir, 'sim/pll_stub.v', PLL); write(dir, 'sim/tb_top.v', 'module tb_top;\n reg clk; wire lock;\n pll dut (.clk(clk), .lock(lock));\nendmodule\n'); const inst = (await edges(dir)).filter((e) => e.kind === 'instantiates'); - expect(inst.map((e) => e.tf)).toEqual(['sim/pll_stub.v']); + expect(inst.map((e) => e.tf)).toEqual(['sim/pll_stub.v', 'sim/pll_stub.v']); }); it('`include resolves to the header file, by suffix and closest to the includer', async () => { diff --git a/__tests__/verilog-signals.test.ts b/__tests__/verilog-signals.test.ts new file mode 100644 index 000000000..4829c9a0f --- /dev/null +++ b/__tests__/verilog-signals.test.ts @@ -0,0 +1,80 @@ +import { beforeAll, describe, expect, it } from 'vitest'; +import { extractFromSource } from '../src/extraction'; +import { initGrammars, loadAllGrammars } from '../src/extraction/grammars'; + +beforeAll(async () => { await initGrammars(); await loadAllGrammars(); }); + +describe('HDL signals and procedural source navigation', () => { + it('keeps ANSI direction, non-ANSI declarations and exact source signatures', () => { + const code = `module top(input logic clk, rst, output reg [3:0] q); +wire a,b=1; logic [7:0] x,y; +endmodule +module old(a,b); input [3:0] a; output reg b; endmodule`; + const result = extractFromSource('ports.sv', code); + const fields = result.nodes.filter(n => n.kind === 'field'); + expect(fields.map(n => n.qualifiedName)).toEqual(['top::clk', 'top::rst', 'top::q', 'top::a', 'top::b', 'top::x', 'top::y', 'old::a', 'old::b']); + expect(fields.find(n => n.name === 'rst')?.decorators).toContain('hdl:input'); + expect(fields.find(n => n.name === 'q')?.signature).toBe('output reg [3:0] q'); + expect(fields.find(n => n.name === 'x')?.signature).toBe('logic [7:0] x,y;'); + expect(fields.find(n => n.qualifiedName === 'old::a')?.signature).toBe('input [3:0] a'); + }); + + it('indexes separate same-line processes and records only local signal candidates', () => { + const code = `module top(input logic clk, output logic q); +logic x; +always_ff @(posedge clk) q <= helper(x); always_comb x = q; +initial x=0; assign q = x; +endmodule`; + const result = extractFromSource('logic.sv', code); + const processes = result.nodes.filter(n => n.decorators?.includes('hdl:process')); + expect(processes.map(n => n.name.split('@')[0])).toEqual(['always_ff', 'always_comb', 'initial', 'assign']); + expect(new Set(processes.map(n => n.id)).size).toBe(4); + expect(processes[0].signature).toBe('always_ff @(posedge clk) q <= helper(x);'); + const signals = result.unresolvedReferences.filter(r => r.referenceName.startsWith('hdl:signal:')); + expect(signals.some(r => r.referenceName === 'hdl:signal:helper')).toBe(false); + expect(signals.filter(r => r.fromNodeId === processes[0].id).map(r => r.referenceName)).toEqual(['hdl:signal:clk', 'hdl:signal:q', 'hdl:signal:x']); + }); + + it('does not inherit a scalar output direction onto an interface port', () => { + const result = extractFromSource('interface.sv', 'module top(output q, bus.master link); endmodule'); + const link = result.nodes.find(n => n.name === 'link')!; + expect(link.decorators).toContain('hdl:interface:bus'); + expect(link.decorators).not.toContain('hdl:output'); + expect(result.unresolvedReferences.find(r => r.fromNodeId === link.id)?.referenceName).toBe('bus.master'); + }); + + it('does not bind a block-local shadow to a module signal', () => { + const result = extractFromSource('shadow.sv', 'module top; logic x,y; initial begin logic x; x = y; end endmodule'); + expect(result.unresolvedReferences.filter(r => r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName)).toEqual(['hdl:signal:y']); + }); + + it('merges non-ANSI reg redeclarations and indexes initializer dependencies', () => { + const result = extractFromSource('legacy.sv', 'module top(a); output a; reg a; wire x = a; endmodule'); + expect(result.nodes.filter(n => n.qualifiedName === 'top::a')).toHaveLength(1); + const x = result.nodes.find(n => n.name === 'x')!; + expect(result.unresolvedReferences.filter(r => r.fromNodeId === x.id).map(r => r.referenceName)).toContain('hdl:signal:a'); + }); + + it('does not confuse generate iteration bindings with outer ports', () => { + const result = extractFromSource('generate.sv', `module top(input i, input x); +for(genvar i=0;i<2;i++) begin : lanes leaf u(.a(i), .b(x)); leaf short(.i); end +leaf outside(.a(i)); endmodule`); + const inside = result.nodes.find(n => n.name === 'u')!; + const outside = result.nodes.find(n => n.name === 'outside')!; + const shorthand = result.nodes.find(n => n.name === 'short')!; + expect(result.unresolvedReferences.filter(r => r.fromNodeId === shorthand.id).map(r => r.referenceName)).not.toContain('hdl:signal:i'); + expect(result.unresolvedReferences.filter(r => r.fromNodeId === inside.id && r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName)).toEqual(['hdl:signal:x']); + expect(result.unresolvedReferences.filter(r => r.fromNodeId === outside.id).map(r => r.referenceName)).toContain('hdl:signal:i'); + }); + + it('skips package qualifiers while preserving method-call argument signals', () => { + const result = extractFromSource('package-call.sv', `module top(input p, input x, output integer q); +initial q=p::value(x); endmodule`); + expect(result.unresolvedReferences.filter(r => r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName)).toEqual(['hdl:signal:q', 'hdl:signal:x']); + }); + + it('does not flatten hierarchical members into local signal references', () => { + const result = extractFromSource('scope.sv', 'module top; wire x,y; assign x = remote.y; endmodule'); + expect(result.unresolvedReferences.filter(r => r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName)).toEqual(['hdl:signal:x']); + }); +}); diff --git a/docs/validation-hdl-navigation-2026-09-12.md b/docs/validation-hdl-navigation-2026-09-12.md new file mode 100644 index 000000000..e5bdfa4bf --- /dev/null +++ b/docs/validation-hdl-navigation-2026-09-12.md @@ -0,0 +1,71 @@ +# Практическая навигация по HDL — 12 сентября 2026 + +База e174e684; Linux x64, Node 24.15.0. Extraction stamp 33. +Verilog/SystemVerilog использует WASM grammar и при включённом native kernel. + +## Что теперь можно спросить у графа + +- `top.u_rx1 top.u_rx2`: разные экземпляры одного модуля, тип, параметры, + исходные named/positional/shorthand подключения и локальные сигналы. +- `emmc_crc16.crc emmc_crc16.crc_out`: объявления, исходные always/assign + и синтаксические references; initializer feedback связан с bit_in. +- `AXI_BUS.Master AXI_BUS.Slave`: отдельные modports, направления в source + signature, ссылки на сигналы интерфейса. Interface-порт связан через type_of + с конкретным modport. +- Package calls сохраняют pkg::func. Bare calls требуют lexical/import + evidence; одинаковые функции разных packages не выбираются произвольно. + +Именованные generate blocks образуют scope. Для безымянных используется +позиция исходника. Массив instances представлен одной декларацией с исходным +диапазоном; одинаковые имена на одной строке различаются колонкой ID. +Module→module instantiates сохранён для прежних flow queries; дополнительно +есть instance→type. Новых schema kinds и Rust wire indexes не добавлено. + +## Реальные проекты + +Неизменённые копии исходников находятся вне Git в +`~/storage/codegraph-real-issues-20260912/`. AXI — pulp-platform/axi, +ревизия da8793b0e3f14c9186c94fac9ed6ec06375c254e. + +| Корпус | Файлы индекса | Поля/сигналы | Instances | Always/assign/initial blocks | Время index + query | +|---|---:|---:|---:|---:|---:| +| Dual UART | 11 | 226 | 11 | 36 | 0.620 с | +| eMMC card reader | 33 | 1266 | 35 | 180 | 1.069 с | +| AXI | 104 | 3333 | 494 | 905 | 1.755 с | + +До изменения первые два корпуса вообще не имели port/signal/instance nodes; +AXI также не имел этих nodes. Все три запроса выше выполнены через настоящий +ToolHandler codegraph_explore; ответы содержат соответствующие исходники. +SQLite readback подтвердил u_rx1→rx1, u_rx2→rx2, feedback→bit_in. +В отдельном probe трёх AXI файлов: 18 modports, 534 references от modports, +точные mst/slv→AXI_BUS::Master/Slave. Дубликатов ID в трёх RTL-корпусах нет. + +## Проверки и границы + +Полный native: 283 test files, 4745 passed, 9 skipped, 0 failed. +Полный WASM: 282 test files passed, 1 skipped; 4735 passed, 19 skipped, 0 failed. +TypeScript и build с viewer/30 grammar assets прошли. + + +22 focused HDL tests и 8 extraction tests прошли. Проверяются generate scopes, +повторная индексация, массивы, wildcard без придуманных connections, named/ +positional/shorthand references, non-ANSI redeclaration, port direction, +shadowing (включая genvar), package qualifiers не становятся сигналами, конфликтующие imports и explicit package calls. + +Первый полный запуск не засчитан: агент удалил временный probe из __tests__ +после обнаружения его Vitest, получился ENOENT при загрузке suite. Все проверки +повторены после фиксации набора файлов; временные probes не входят в commit. + +References означают синтаксическое использование, без классификации read/write. +Procedural locals подавляются консервативно при shadowing; hierarchical signal +access и LHS part-select не дают предполагаемую локальную связь. `.*`, generate +iterations, preprocessing/filelists, widths/types expressions не elaborated. +Нет timing, synthesis, CDC, UVM class-method dispatch или аппаратной проверки. +Windows/macOS и новый agent A/B не запускались. + +Все 10 активных индексов пересобраны до stamp 33; readback: complete и 0 pending changes. +Другим ранее созданным HDL-индексам нужен rebuild до stamp 33. Уже запущенный MCP-процесс +загружает новый extractor после перезапуска. + +Артефакты: `.scratch/hdl-usefulness-results.json`, `hdl-explore-*.txt`, +`hdl-instances-corpus-results.json`, `hdl-package-real.log`, `hdl-final-*.log`. diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index 8201e9ef6..4b26be45e 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 32; +export const EXTRACTION_VERSION = 33; diff --git a/src/extraction/languages/verilog-packages.ts b/src/extraction/languages/verilog-packages.ts new file mode 100644 index 000000000..1d4607bef --- /dev/null +++ b/src/extraction/languages/verilog-packages.ts @@ -0,0 +1,41 @@ +import type { Node as SyntaxNode } from 'web-tree-sitter'; +import type { ExtractorContext } from '../tree-sitter-types'; + +/** Keep qualification: a package or hierarchical call must never become a bare global call. */ +export function getVerilogCallName(node: SyntaxNode, _source: string): string | undefined { + const callee = node.namedChildren.find(c => c.type === 'hierarchical_identifier' || c.type === 'simple_identifier'); + return callee?.text.trim(); +} + +/** Package calls use method_call in this grammar; modports are named interface views. */ +export function handleVerilogPackageNode(node: SyntaxNode, ctx: ExtractorContext): boolean { + if (node.type === 'modport_item') { + const name = node.namedChildren.find(c => c.type === 'simple_identifier'); + const view = name ? ctx.createNode('interface', name.text, node, { signature: `modport ${node.text.trim()}` }) : null; + if (view) { + const visit = (part: SyntaxNode): void => { + if (part.type === 'modport_simple_port' && part.namedChildCount === 1 && part.firstNamedChild?.type === 'simple_identifier') { + ctx.addUnresolvedReference({ fromNodeId: view.id, + referenceName: `hdl:signal:${part.firstNamedChild.text}`, referenceKind: 'references', + line: part.startPosition.row + 1, column: part.startPosition.column }); + } else for (const child of part.namedChildren) visit(child); + }; + visit(node); + } + return true; + } + if (node.type !== 'method_call') return false; + const primary = node.namedChildren.find(c => c.type === 'primary'); + const body = node.namedChildren.find(c => c.type === 'method_call_body'); + const name = body?.childForFieldName('name'); + // Require the literal package separator between AST nodes, excluding object methods. + if (primary && name && /^\s*::\s*$/.test(ctx.source.slice(primary.endIndex, name.startIndex))) { + const fromNodeId = ctx.nodeStack[ctx.nodeStack.length - 1]; + if (fromNodeId) ctx.addUnresolvedReference({ fromNodeId, + referenceName: `${primary.text.trim()}::${name.text}`, referenceKind: 'calls', + line: node.startPosition.row + 1, column: node.startPosition.column }); + for (const child of body!.namedChildren) if (child.id !== name.id) ctx.visitNode(child); + return true; + } + return false; +} diff --git a/src/extraction/languages/verilog-signals.ts b/src/extraction/languages/verilog-signals.ts new file mode 100644 index 000000000..989924e61 --- /dev/null +++ b/src/extraction/languages/verilog-signals.ts @@ -0,0 +1,166 @@ +import type { Node as SyntaxNode } from 'web-tree-sitter'; +import type { ExtractorContext } from '../tree-sitter-types'; +import { getNodeText } from '../tree-sitter-helpers'; + +function children(node: SyntaxNode): SyntaxNode[] { + return node.namedChildren; +} +function identifier(node: SyntaxNode): SyntaxNode | undefined { + return children(node).find(n => n.type === 'simple_identifier' || n.type === 'escaped_identifier'); +} +function walkChildren(node: SyntaxNode, ctx: ExtractorContext): void { + for (const child of children(node)) ctx.visitNode(child); +} +function direction(node: SyntaxNode, ctx: ExtractorContext): string | undefined { + for (const child of children(node)) { + if (child.type === 'port_direction') return getNodeText(child, ctx.source); + const nested = direction(child, ctx); + if (nested) return nested; + } + return undefined; +} + +/** Generate iteration variables are implicit local parameters in their body. + * Do not let an identically named outer signal stand in for that binding. */ +export function isVerilogGenerateBinding(node: SyntaxNode, ctx: ExtractorContext, name: string): boolean { + for (let ancestor = node.parent; ancestor; ancestor = ancestor.parent) { + if (ancestor.type === 'loop_generate_construct') { + const init = children(ancestor).find(n => n.type === 'genvar_initialization'); + const id = init && identifier(init); + if (id && getNodeText(id, ctx.source) === name) return true; + } + if (['module_declaration', 'interface_declaration', 'program_declaration'].includes(ancestor.type)) break; + } + return false; +} + +/** Emit exact syntactic occurrences, without claiming drive/read semantics. + * A dedicated resolver must bind these only in the lexical scope of the owner. + * Dotted hierarchical accesses are deliberately excluded: their root is not + * sufficient evidence that the terminal signal belongs to this module. + */ +export function addVerilogSignalReferences(node: SyntaxNode, ctx: ExtractorContext, ownerId: string): void { + const shadowed = new Set(); + const findLocals = (current: SyntaxNode): void => { + if (current.type === 'variable_decl_assignment' || current.type === 'net_decl_assignment') { + const id = current.childForFieldName('name') ?? identifier(current); + if (id) shadowed.add(getNodeText(id, ctx.source)); + } + for (const child of children(current)) findLocals(child); + }; + findLocals(node); + const skip = new Set(['data_declaration', 'net_declaration', 'tf_call', 'ps_or_hierarchical_function_identifier']); + const visit = (current: SyntaxNode): void => { + // A package-qualified call is also parsed as method_call. Its receiver + // may name a package, never evidence for an identically named local port. + if (current.type === 'method_call') { + const body = children(current).find(n => n.type === 'method_call_body'); + const args = body?.namedChildren.find(n => n.type === 'list_of_arguments'); + if (args) visit(args); + return; + } + if (skip.has(current.type)) { + // Function arguments still contain ordinary signal expressions. + if (current.type === 'tf_call') { + for (const child of children(current)) if (child.type === 'list_of_arguments') visit(child); + } + return; + } + if (current.type === 'hierarchical_identifier' || current.type === 'net_lvalue') { + const ids = children(current).filter(n => ['simple_identifier', 'escaped_identifier'].includes(n.type)); + const text = getNodeText(current, ctx.source).trim(); + if (ids.length === 1 && ids[0] && getNodeText(ids[0], ctx.source).trim() === text) { + if (shadowed.has(text) || isVerilogGenerateBinding(current, ctx, text)) return; + ctx.addUnresolvedReference({ fromNodeId: ownerId, referenceName: `hdl:signal:${text}`, + referenceKind: 'references', line: current.startPosition.row + 1, column: current.startPosition.column }); + return; + } + if (current.type === 'hierarchical_identifier') return; + } + for (const child of children(current)) visit(child); + }; + visit(node); +} + +/** HDL declarations and executable blocks; called before generic recursion. */ +export function visitVerilogSignals(node: SyntaxNode, ctx: ExtractorContext): boolean { + if (node.type === 'ansi_port_declaration') { + const name = node.childForFieldName('port_name'); + if (name) { + let dir = direction(node, ctx); + // ANSI comma continuations inherit direction from the preceding port. + let previous = node.previousNamedSibling; + const hasHeader = children(node).some(n => n.type.endsWith('_port_header')); + while (!dir && !hasHeader && previous?.type === 'ansi_port_declaration') { + dir = direction(previous, ctx); + if (children(previous).some(n => n.type.endsWith('_port_header'))) break; + previous = previous.previousNamedSibling; + } + const decorators = ['hdl:port', ...(dir ? [`hdl:${dir}`] : [])]; + const iface = children(node).find(n => n.type === 'interface_port_header'); + for (const [field, tag] of [['interface_name', 'interface'], ['modport_name', 'modport']] as const) { + const value = iface?.childForFieldName(field); + if (value) decorators.push(`hdl:${tag}:${getNodeText(value, ctx.source)}`); + } + const created = ctx.createNode('field', getNodeText(name, ctx.source), node, + { signature: getNodeText(node, ctx.source), decorators }); + const typeName = iface?.childForFieldName('interface_name'); + const modport = iface?.childForFieldName('modport_name'); + if (created && typeName) ctx.addUnresolvedReference({ + fromNodeId: created.id, referenceName: getNodeText(typeName, ctx.source) + (modport ? `.${getNodeText(modport, ctx.source)}` : ''), + referenceKind: 'type_of', line: node.startPosition.row + 1, column: node.startPosition.column, + }); + } + return true; + } + if (node.type === 'port_declaration') { + for (const decl of children(node)) { + const dir = decl.type.replace(/_declaration$/, ''); + for (const list of children(decl).filter(n => /list_of_.*port_identifiers/.test(n.type))) { + for (const id of children(list).filter(n => ['simple_identifier', 'escaped_identifier'].includes(n.type))) { + ctx.createNode('field', getNodeText(id, ctx.source), id, + { signature: getNodeText(node, ctx.source), decorators: ['hdl:port', `hdl:${dir}`] }); + } + } + } + return true; + } + if (node.type === 'net_declaration' || node.type === 'data_declaration') { + const lists = children(node).filter(n => ['list_of_net_decl_assignments', 'list_of_variable_decl_assignments'].includes(n.type)); + if (!lists.length) return false; // e.g. typedef: let its structural handler run. + for (const list of lists) for (const decl of children(list)) { + const name = decl.childForFieldName('name') ?? identifier(decl); + if (name) { + const text = getNodeText(name, ctx.source); + const parent = ctx.nodes.find(n => n.id === ctx.nodeStack[ctx.nodeStack.length - 1]); + const qualified = parent ? `${parent.qualifiedName}::${text}` : text; + // A non-ANSI output may legally be redeclared as reg in the body. + const port = ctx.nodes.find(n => n.qualifiedName === qualified && n.decorators?.includes('hdl:port')); + const created = port ?? ctx.createNode('field', text, decl, + { signature: getNodeText(node, ctx.source), decorators: ['hdl:signal'] }); + if (created) for (const child of children(decl)) { + if (child.id !== name.id) addVerilogSignalReferences(child, ctx, created.id); + } + } + } + walkChildren(node, ctx); + return true; + } + if (['always_construct', 'initial_construct', 'final_construct', 'continuous_assign'].includes(node.type)) { + const keyword = children(node).find(n => n.type === 'always_keyword'); + const kind = node.type === 'always_construct' + ? (keyword ? getNodeText(keyword, ctx.source) : 'always') + : node.type === 'continuous_assign' ? 'assign' : node.type.replace(/_construct$/, ''); + const name = `${kind}@${node.startPosition.row + 1}:${node.startPosition.column}`; + const created = ctx.createNode('function', name, node, + { signature: getNodeText(node, ctx.source), decorators: ['hdl:process', `hdl:${kind}`] }); + if (created) { + addVerilogSignalReferences(node, ctx, created.id); + ctx.pushScope(created.id); + } + walkChildren(node, ctx); + if (created) ctx.popScope(); + return true; + } + return false; +} diff --git a/src/extraction/languages/verilog.ts b/src/extraction/languages/verilog.ts index 79a7e000a..cde5d8c50 100644 --- a/src/extraction/languages/verilog.ts +++ b/src/extraction/languages/verilog.ts @@ -1,3 +1,5 @@ +import { visitVerilogSignals, addVerilogSignalReferences, isVerilogGenerateBinding } from './verilog-signals'; +import { handleVerilogPackageNode, getVerilogCallName } from './verilog-packages'; import type { Node as SyntaxNode } from 'web-tree-sitter'; import { getNodeText, getChildByField } from '../tree-sitter-helpers'; import type { LanguageExtractor, ExtractorContext } from '../tree-sitter-types'; @@ -16,9 +18,9 @@ import type { LanguageExtractor, ExtractorContext } from '../tree-sitter-types'; * - module / interface / program / package / class → container nodes (kind * `class`/`interface`) that scope their members. * - function / task → `function` nodes (their bodies are walked for calls). - * - module instantiation → an `instantiates` reference (parent module → child - * module type). This is the highest-value HDL edge: it powers cross-module - * `trace`/`impact` ("what instantiates this module", "what does top use"). + * - module instances → named `variable` nodes with original connections and + * `instantiates` edges (parent module and instance → module type). + * - generate blocks → source scopes; arrays and loops are not elaborated. * - parameter / localparam → `constant` nodes. * - `define macro → `constant` node (a `.vh` header is mostly macros, and a * `WIDTH` written as `` `DATA_W `` has to land somewhere). @@ -31,8 +33,8 @@ import type { LanguageExtractor, ExtractorContext } from '../tree-sitter-types'; * `include_compiler_directive` with the quoted path as its module name — the * file-path matcher resolves `"defs.vh"` / `"axi/typedef.svh"` to the indexed * header closest to the including file, the same way a C `#include` lands. - * Ports and internal signals are intentionally NOT extracted — they would - * explode the node count without aiding structural queries. + * Ports, signals and executable blocks are handled by verilog-signals; source + * occurrences are distinct from elaborated connectivity or drive direction. */ // Header wrappers that carry a module/interface/program name. @@ -63,9 +65,8 @@ function firstSimpleIdentifier(node: SyntaxNode): SyntaxNode | null { } /** - * Keep the trailing segment of a qualified name (`pkg::mod` → `mod`, - * `obj.method` → `method`) so cross-file name matching behaves the same for - * calls and instantiations (declarations are stored unqualified). + * Module type names are resolved against module declarations. Function calls + * retain their package or hierarchy qualification in verilog-packages. */ function trailingSegment(name: string): string { const sep = Math.max(name.lastIndexOf('::'), name.lastIndexOf('.')); @@ -142,28 +143,84 @@ function handleSubroutine(node: SyntaxNode, ctx: ExtractorContext): boolean { return true; } +function handleGenerateBlock(node: SyntaxNode, ctx: ExtractorContext): boolean { + const nameNode = getChildByField(node, 'name'); + // Anonymous labels identify source scopes, not elaborated genblk numbers. + const name = nameNode ? getNodeText(nameNode, ctx.source) + : `generate@${node.startPosition.row + 1}:${node.startPosition.column}`; + const created = ctx.createNode('namespace', name, node); + if (created) ctx.pushScope(created.id); + visitNamedChildren(node, ctx); + if (created) ctx.popScope(); + return true; +} + function handleInstantiation(node: SyntaxNode, ctx: ExtractorContext): boolean { const typeNode = getChildByField(node, 'instance_type') ?? firstSimpleIdentifier(node); - if (typeNode && ctx.nodeStack.length > 0) { - const fromId = ctx.nodeStack[ctx.nodeStack.length - 1]; - // Normalize qualified types (`pkg::mod`) to the trailing segment, matching - // handleCall, so a `pkg::mod` instance still resolves to a `mod` declaration. - const moduleName = trailingSegment(getNodeText(typeNode, ctx.source).trim()); - if (fromId && moduleName) { - ctx.addUnresolvedReference({ - fromNodeId: fromId, - referenceName: moduleName, - referenceKind: 'instantiates', - line: node.startPosition.row + 1, - column: node.startPosition.column, - }); + if (!typeNode) { + visitNamedChildren(node, ctx); + return true; + } + const typeName = getNodeText(typeNode, ctx.source).trim(); + const moduleName = trailingSegment(typeName); + const addReference = (fromId: string, position: SyntaxNode): void => { + ctx.addUnresolvedReference({ + fromNodeId: fromId, + referenceName: moduleName, + referenceKind: 'instantiates', + line: position.startPosition.row + 1, + column: position.startPosition.column, + }); + }; + // Keep the module-to-module flow even when a generate scope contains this + // declaration. Individual instances additionally provide navigable evidence. + for (let i = ctx.nodeStack.length - 1; i >= 0; i--) { + const parent = ctx.nodes.find(n => n.id === ctx.nodeStack[i]); + if (parent && (parent.kind === 'class' || parent.kind === 'interface')) { + addReference(parent.id, node); + break; } } - // Walk children so function calls inside parameter overrides (`.WIDTH(f(x))`) - // and port connections (`.a(helper(sig))`) still emit `calls` references. An - // instantiation's subtree is bounded (just its own connections), so this can't - // explode the walk the way a god-function fan-out would. - visitNamedChildren(node, ctx); + const parameters = firstChildOfType(node, ['parameter_value_assignment']); + const prefix = `${typeName}${parameters ? ' ' + getNodeText(parameters, ctx.source) : ''}`; + for (let i = 0; i < node.namedChildCount; i++) { + const child = node.namedChild(i); + if (!child) continue; + if (child.type !== 'hierarchical_instance') { + ctx.visitNode(child); + continue; + } + const nameOfInstance = firstChildOfType(child, ['name_of_instance']); + const nameNode = nameOfInstance && (getChildByField(nameOfInstance, 'instance_name') + ?? firstSimpleIdentifier(nameOfInstance)); + const name = nameNode ? getNodeText(nameNode, ctx.source) : undefined; + const created = name ? ctx.createNode('variable', name, child, { + // Preserve arrays, named/ordered/shorthand connections and parameter + // overrides as source evidence; do not infer elaborated wire endpoints. + signature: `${prefix} ${getNodeText(child, ctx.source)}`, + }) : null; + if (created) { + addReference(created.id, child); + addVerilogSignalReferences(child, ctx, created.id); + const connections = firstChildOfType(child, ['list_of_port_connections']); + for (const connection of connections?.namedChildren ?? []) { + // Shorthand .port connects the same local name. Empty .port() and .* + // provide no explicit local expression and are kept only in signature. + if (connection.type !== 'named_port_connection') continue; + const port = getChildByField(connection, 'port_name'); + if (port && !isVerilogGenerateBinding(connection, ctx, getNodeText(port, ctx.source)) + && /^\s*\.\s*[^()\s]+\s*$/.test(getNodeText(connection, ctx.source))) { + ctx.addUnresolvedReference({ fromNodeId: created.id, + referenceName: `hdl:signal:${getNodeText(port, ctx.source)}`, + referenceKind: 'references', line: port.startPosition.row + 1, + column: port.startPosition.column }); + } + } + ctx.pushScope(created.id); + } + visitNamedChildren(child, ctx); + if (created) ctx.popScope(); + } return true; } @@ -202,7 +259,7 @@ function handleCall(node: SyntaxNode, ctx: ExtractorContext): boolean { const fromId = ctx.nodeStack[ctx.nodeStack.length - 1]; const callee = firstChildOfType(node, ['hierarchical_identifier']) ?? firstSimpleIdentifier(node); if (fromId && callee) { - const name = trailingSegment(getNodeText(callee, ctx.source).trim()); + const name = getVerilogCallName(node, ctx.source); if (name) { ctx.addUnresolvedReference({ fromNodeId: fromId, @@ -239,6 +296,7 @@ export const verilogExtractor: LanguageExtractor = { paramsField: 'tf_port_list', visitNode: (node, ctx) => { + if (visitVerilogSignals(node, ctx) || handleVerilogPackageNode(node, ctx)) return true; switch (node.type) { case 'module_declaration': case 'program_declaration': @@ -250,6 +308,8 @@ export const verilogExtractor: LanguageExtractor = { case 'function_declaration': case 'task_declaration': return handleSubroutine(node, ctx); + case 'generate_block': + return handleGenerateBlock(node, ctx); case 'module_instantiation': return handleInstantiation(node, ctx); case 'parameter_declaration': diff --git a/src/extraction/tree-sitter-helpers.ts b/src/extraction/tree-sitter-helpers.ts index 80254fd52..aabcd192e 100644 --- a/src/extraction/tree-sitter-helpers.ts +++ b/src/extraction/tree-sitter-helpers.ts @@ -14,7 +14,7 @@ import { NodeKind } from '../types'; * * Uses a 32-character (128-bit) hash to avoid collisions when indexing * large codebases with many files containing similar symbols. The optional - * UTF-16 column distinguishes same-line declarations (TS/JS and C++); omitted columns + * UTF-16 column distinguishes same-line declarations (TS/JS, C++ and HDL); omitted columns * preserve the existing identity format for other extraction paths. */ export function generateNodeId( diff --git a/src/extraction/tree-sitter.ts b/src/extraction/tree-sitter.ts index 499ba2605..003a854ff 100644 --- a/src/extraction/tree-sitter.ts +++ b/src/extraction/tree-sitter.ts @@ -1399,9 +1399,9 @@ export class TreeSitterExtractor { return null; } - // TS/JS accessors and C++ overloads can share a name and source line. + // TS/JS accessors, C++ overloads and HDL declarations can share a name and source line. // Include the UTF-16 column for these languages so their edges cannot alias. - const column = ['typescript', 'tsx', 'javascript', 'jsx', 'cpp'].includes(this.language) + const column = ['typescript', 'tsx', 'javascript', 'jsx', 'cpp', 'verilog'].includes(this.language) ? node.startPosition.column : undefined; const id = generateNodeId(this.filePath, kind, name, node.startPosition.row + 1, column); diff --git a/src/mcp/server-instructions.ts b/src/mcp/server-instructions.ts index b43b1835a..18cf7ec02 100644 --- a/src/mcp/server-instructions.ts +++ b/src/mcp/server-instructions.ts @@ -58,6 +58,10 @@ calls; a grep/read exploration is dozens. - Qualified symbol names accept dots, \`::\`, or slashes, including containers whose names contain dots (for example, \`AppWeb.Format.group\`). - Named-symbol call paths require exact matches; partial or mistyped names are never silently substituted as flow endpoints. If a graph query reports a missing symbol with did-you-mean suggestions, query the suggested name explicitly. +## Verilog / SystemVerilog + +Query module and instance names to inspect hierarchy and the exact port-connection source. Ports/signals, generate scopes, modports and always/assign blocks are searchable. HDL references record syntactic signal use, not drive direction, timing or elaborated connectivity; wildcard connections and generate iterations are not expanded. Qualified package calls retain package identity. + ## Anti-patterns - **Trust codegraph's results — don't re-verify them with grep.** They come from a full AST parse; re-checking with grep is slower, less accurate, and wastes context. diff --git a/src/resolution/index.ts b/src/resolution/index.ts index cdb7fbb1b..6940fbe48 100644 --- a/src/resolution/index.ts +++ b/src/resolution/index.ts @@ -22,6 +22,7 @@ import { import { isVisibleAcrossFiles, matchReference, matchFunctionRef, matchDottedCallChain, matchScopedCallChain, matchMethodCall, sameLanguageFamily, crossesKnownFamily, dumpNameMatcherProfile, clearNameMatcherMemos } from './name-matcher'; import { isVisibleCppMacro } from './cpp-macro-visibility'; import { isCppConstructorRef, matchCppConstructor } from './cpp-constructor'; +import { isVerilogMemberRef, matchVerilogMember } from './verilog-members'; import { resolveViaImport, resolvePhpImportedStaticCall, resolveJvmImport, extractImportMappings, extractReExports, loadCppIncludeDirs, isPhpIncludePathRef, isCobolCopybookRef, isNixPathImportRef, isBoundToOutOfRepoImport, clearImportResolverMemos, resolveImportPath } from './import-resolver'; import { ResolverPool, minRefsForPool } from './resolver-pool'; import { resolveAliasBinding } from './alias-binding'; @@ -899,6 +900,7 @@ export class ReferenceResolver { private resolveOneInner(ref: UnresolvedRef): ResolvedRef | null { if (isCppConstructorRef(ref)) return matchCppConstructor(ref, this.context); + if (isVerilogMemberRef(ref)) return matchVerilogMember(ref, this.context); // Skip built-in/external references if (this.isBuiltInOrExternal(ref)) { return null; diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index c9a836d28..7f3381922 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -11,6 +11,7 @@ import { blankStringContents, stripCommentsForRegex } from './strip-comments'; import { JS_BUILT_INS, isTsJsNestedCall } from './js-builtins'; import { isVisibleCppMacro, clearCppMacroVisibility } from './cpp-macro-visibility'; import { isCppConstructorRef, matchCppConstructor } from './cpp-constructor'; +import { isVerilogMemberRef, matchVerilogMember } from './verilog-members'; /** * Ceiling on how many same-named definitions a FUZZY name-match strategy will @@ -3100,6 +3101,7 @@ export function matchReference( ): ResolvedRef | null { if (isVisibleCppMacro(ref, context)) return null; if (isCppConstructorRef(ref)) return matchCppConstructor(ref, context); + if (isVerilogMemberRef(ref)) return matchVerilogMember(ref, context); if (ref.language === 'verilog' && ref.referenceKind === 'instantiates' && !isVerilogSimPath(ref.filePath)) { const modules = context .getNodesByName(ref.referenceName) diff --git a/src/resolution/verilog-members.ts b/src/resolution/verilog-members.ts new file mode 100644 index 000000000..bb73c1785 --- /dev/null +++ b/src/resolution/verilog-members.ts @@ -0,0 +1,54 @@ +import type { Node } from '../types'; +import type { ResolvedRef, ResolutionContext, UnresolvedRef } from './types'; + +export function isVerilogMemberRef(ref: UnresolvedRef): boolean { + return ref.language === 'verilog' && (ref.referenceKind === 'calls' || ref.referenceKind === 'type_of' || + (ref.referenceKind === 'references' && (ref.referenceName.includes('::') || ref.referenceName.startsWith('hdl:signal:')))); +} + +/** Resolve only explicit HDL identity or visible lexical/import scope, never a trailing-name guess. */ +export function matchVerilogMember(ref: UnresolvedRef, context: ResolutionContext): ResolvedRef | null { + const exact = (name: string, kinds: Node['kind'][]) => context.getNodesByQualifiedName(name) + .filter(n => n.language === 'verilog' && kinds.includes(n.kind)); + const result = (nodes: Node[]): ResolvedRef | null => { + const unique = [...new Map(nodes.map(n => [n.id, n])).values()]; + return unique.length === 1 ? { original: ref, targetNodeId: unique[0]!.id, + confidence: 0.95, resolvedBy: 'qualified-name' } : null; + }; + if (ref.referenceKind === 'references' && ref.referenceName.startsWith('hdl:signal:')) { + const name = ref.referenceName.slice('hdl:signal:'.length); + const caller = context.getNodeById?.(ref.fromNodeId); + const scopes = caller?.qualifiedName.split('::') ?? []; + for (let i = scopes.length; i > 0; i--) { + const matches = exact(`${scopes.slice(0, i).join('::')}::${name}`, ['field', 'variable', 'constant']) + .filter(n => n.filePath === ref.filePath); + if (matches.length) return result(matches); + } + return null; + } + if (ref.referenceKind === 'references') return result(exact(ref.referenceName, ['field', 'variable', 'constant']) + .filter(n => n.filePath === ref.filePath)); + if (ref.referenceKind === 'type_of') return result(exact(ref.referenceName.replace(/\./g, '::'), ['interface', 'class', 'type_alias'])); + if (ref.referenceName.includes('::')) return result(exact(ref.referenceName, ['function', 'method'])); + // Hierarchical instance calls require elaborated receiver identity, which this pass does not infer. + if (ref.referenceName.includes('.')) return null; + const caller = context.getNodeById?.(ref.fromNodeId); + const scopes = caller?.qualifiedName.split('::') ?? []; + for (let i = scopes.length; i > 0; i--) { + const matches = exact(`${scopes.slice(0, i).join('::')}::${ref.referenceName}`, ['function', 'method']) + .filter(n => n.filePath === ref.filePath); + if (matches.length) return result(matches); + } + const imported: Node[] = []; + for (const item of context.getNodesInFile(ref.filePath)) { + if (item.kind !== 'import' || item.startLine > ref.line) continue; + const prefix = item.qualifiedName.split('::').slice(0, -1).join('::'); + if (prefix && !caller?.qualifiedName.startsWith(`${prefix}::`)) continue; + const match = item.signature?.trim().match(/^([\w$]+)::([\w$]+|\*)$/); + if (match && (match[2] === '*' || match[2] === ref.referenceName)) { + imported.push(...exact(`${match[1]}::${ref.referenceName}`, ['function', 'method'])); + } + } + if (imported.length) return result(imported); + return result(exact(ref.referenceName, ['function', 'method']).filter(n => n.filePath === ref.filePath)); +} From 7d0321aed62bfcfb764612c5e5409e798eacbd9e Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 13:57:50 +0300 Subject: [PATCH 13/23] =?UTF-8?q?feat:=20=D1=81=D0=B2=D1=8F=D0=B7=D0=B0?= =?UTF-8?q?=D1=82=D1=8C=20HDL=20=D0=BF=D0=BE=D0=B4=D0=BA=D0=BB=D1=8E=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D1=8F=20=D1=81=20=D0=BF=D0=BE=D1=80=D1=82?= =?UTF-8?q?=D0=B0=D0=BC=D0=B8=20=D0=B8=20=D0=B2=D0=BE=D1=81=D1=81=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=D0=BE=D0=B2=D0=B8=D1=82=D1=8C=20selected=20signal?= =?UTF-8?q?=20refs?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + README.md | 2 +- __tests__/hdl-port-bindings.test.ts | 112 ++++++++++++++++++ __tests__/verilog-signals.test.ts | 62 ++++++++++ docs/hdl-roadmap.md | 29 +++++ ...validation-hdl-port-bindings-2026-09-12.md | 58 +++++++++ src/db/queries.ts | 8 ++ src/extraction/extraction-version.ts | 2 +- src/extraction/languages/verilog-signals.ts | 52 ++++++-- src/extraction/languages/verilog.ts | 28 +++-- src/mcp/server-instructions.ts | 2 +- src/resolution/index.ts | 2 + src/resolution/name-matcher.ts | 2 + src/resolution/verilog-ports.ts | 55 +++++++++ 14 files changed, 397 insertions(+), 19 deletions(-) create mode 100644 __tests__/hdl-port-bindings.test.ts create mode 100644 docs/hdl-roadmap.md create mode 100644 docs/validation-hdl-port-bindings-2026-09-12.md create mode 100644 src/resolution/verilog-ports.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index d0c1f4b67..4d453b709 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -145,6 +145,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- HDL: именованные подключения имеют отдельные переходы к формальным портам выбранного модуля и локальным сигналам; LHS bit/part selects и concatenations больше не теряют основания и индексы. Неоднозначные module declarations не дают предполагаемую formal binding. + - Verilog/SystemVerilog: именованные экземпляры и generate scopes, порты/сигналы и always/assign доступны для навигации; связи локальных сигналов и package calls сохраняют scope, interfaces показывают modports. Полные elaboration и timing не моделируются. - Вызовы действий store больше не теряются из-за одноимённой сигнатуры в TypeScript-интерфейсе. diff --git a/README.md b/README.md index d5315e3e2..434dd7bf6 100644 --- a/README.md +++ b/README.md @@ -892,7 +892,7 @@ is written): | Astro | `.astro` | Full support (frontmatter + script extraction, template component/call references, `src/pages/` routes) | | Liquid | `.liquid` | Full support | | Pascal / Delphi | `.pas`, `.dpr`, `.dpk`, `.lpr` | Full support (classes, records, interfaces, enums, DFM/FMX form files) | -| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, generate scopes, порты/сигналы, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | +| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, generate scopes, порты/сигналы и named port bindings, bit/part selects, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | | Lua | `.lua` | Full support (functions, methods with receivers, local variables, `require` imports, call edges) | | R | `.R` `.r` | Full support (functions in every assignment form, S4/R5/R6 classes with methods, `library`/`require` imports, `source()` file references, call edges) | | Luau | `.luau` | Full support (everything in Lua, plus `type`/`export type` aliases, typed signatures, and Roblox instance-path `require`) | diff --git a/__tests__/hdl-port-bindings.test.ts b/__tests__/hdl-port-bindings.test.ts new file mode 100644 index 000000000..7b3a5b5f3 --- /dev/null +++ b/__tests__/hdl-port-bindings.test.ts @@ -0,0 +1,112 @@ +import { it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; + +async function graph(files: Record, check: (cg: CodeGraph, root: string) => Promise | void): Promise { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-ports-')); + let cg: CodeGraph | undefined; + try { + for (const [file, source] of Object.entries(files)) { + fs.mkdirSync(path.dirname(path.join(root, file)), { recursive: true }); + fs.writeFileSync(path.join(root, file), source); + } + cg = CodeGraph.initSync(root); + expect((await cg.indexAll()).success).toBe(true); + await check(cg, root); + } finally { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); } +} +function bindings(cg: CodeGraph) { + return (cg as any).db.db.prepare("select id, name, qualified_name qualifiedName, signature from nodes where kind='property' and language='verilog'").all() as Array<{ id: string; name: string; qualifiedName: string; signature: string }>; +} +const leaf = 'module leaf(input rx, output tx); endmodule'; + +it('maps named and shorthand ports to formal declarations and local expressions, including explicit open ports', async () => { + await graph({ 'leaf.sv': leaf, 'top.sv': `module top(input wire rx, output wire tx); +leaf u(.rx(rx), .tx()); leaf bank[3:0](.rx, .tx(tx)); +leaf positional(rx,tx); leaf wildcard(.*); +endmodule` }, cg => { + const ports = bindings(cg); + expect(ports).toHaveLength(4); + const endpoints = (q: string) => cg.getCallees(ports.find(n => n.qualifiedName === q)!.id) + .filter(e => e.edge.kind === 'references').map(e => e.node.qualifiedName).sort(); + expect(endpoints('top::u::rx')).toEqual(['leaf::rx', 'top::rx']); + expect(endpoints('top::u::tx')).toEqual(['leaf::tx']); + expect(endpoints('top::bank::rx')).toEqual(['leaf::rx', 'top::rx']); + expect(endpoints('top::bank::tx')).toEqual(['leaf::tx', 'top::tx']); + expect(ports.find(n => n.qualifiedName === 'top::u::tx')!.signature).toBe('.tx()'); + expect(cg.getNodesByName('bank').filter(n => n.kind === 'variable')).toHaveLength(1); + }); +}); + +it('does not borrow missing formal ports from another module and drops removed targets after reindex', async () => { + await graph({ 'leaf.sv': leaf, 'foreign.sv': 'module foreign(input missing); endmodule', + 'top.sv': 'module top(input sig); leaf u(.rx(sig), .missing(sig)); endmodule' }, async (cg, root) => { + const formalTargets = (name: string) => cg.getCallees(bindings(cg).find(n => n.name === name)!.id) + .filter(e => e.edge.metadata?.binding === 'hdl-named-port').map(e => e.node.qualifiedName); + expect(formalTargets('rx')).toEqual(['leaf::rx']); + expect(formalTargets('missing')).toEqual([]); + const before = bindings(cg).map(n => n.id).sort(); + fs.writeFileSync(path.join(root, 'leaf.sv'), 'module leaf(output tx); endmodule'); + expect((await cg.indexAll()).success).toBe(true); + expect(formalTargets('rx')).toEqual([]); + expect(bindings(cg).map(n => n.id).sort()).toEqual(before); + }); +}); + +it('uses the same synthesis versus simulation target as the instance', async () => { + await graph({ 'rtl/leaf.sv': leaf, 'sim/leaf_stub.sv': leaf, + 'top.sv': 'module top(input sig); leaf u(.rx(sig)); endmodule', + 'sim/tb_top.sv': 'module tb_top(input sig); leaf dut(.rx(sig)); endmodule' }, cg => { + for (const binding of bindings(cg)) { + const instanceName = binding.qualifiedName.startsWith('top::') ? 'u' : 'dut'; + const instance = cg.getNodesByName(instanceName).find(n => n.kind === 'variable')!; + const target = cg.getCallees(instance.id).find(e => e.edge.kind === 'instantiates')!.node; + const formal = cg.getCallees(binding.id).find(e => e.edge.metadata?.binding === 'hdl-named-port')!.node; + expect(formal.filePath).toBe(target.filePath); + } + }); +}); + +it.each([ + { 'a.sv': leaf, 'b.sv': leaf }, + { 'a.sv': `${leaf} ${leaf}` }, +])('leaves formal endpoints unresolved for duplicate module definitions: %j', async definitions => { + await graph({ ...definitions, 'top.sv': 'module top(input sig); leaf u(.rx(sig)); endmodule' } as Record, cg => { + expect(cg.getCallees(bindings(cg)[0]!.id).filter(e => e.edge.metadata?.binding === 'hdl-named-port')).toEqual([]); + }); +}); + +it('does not use fuzzy module-name guesses for a formal endpoint', async () => { + await graph({ 'leaf.sv': leaf, 'top.sv': 'module top(input sig); leaff u(.rx(sig)); endmodule' }, cg => { + expect(cg.getCallees(bindings(cg)[0]!.id).filter(e => e.edge.metadata?.binding === 'hdl-named-port')).toEqual([]); + }); +}); + +it('rehydrates named-port tokens when only the target changes during incremental sync', async () => { + const top = 'module top(input sig); leaf u(.rx(sig)); endmodule'; + await graph({ 'leaf.sv': leaf, 'top.sv': top }, async (cg, root) => { + const binding = bindings(cg)[0]!; + const formal = () => cg.getCallees(binding.id).filter(e => e.edge.metadata?.binding === 'hdl-named-port'); + const originalTarget = formal()[0]!.node; + expect(originalTarget.qualifiedName).toBe('leaf::rx'); + fs.writeFileSync(path.join(root, 'leaf.sv'), 'module leaf(output tx); endmodule'); + const removed = await cg.sync(); + expect(removed.filesModified).toBe(1); + expect(formal()).toEqual([]); + expect(bindings(cg)[0]!.id).toBe(binding.id); + // Restore at a different source position: a stale retained edge cannot pass. + fs.writeFileSync(path.join(root, 'leaf.sv'), `// moved port declaration\n${leaf}`); + const restored = await cg.sync(); + expect(restored.filesModified).toBe(1); + const restoredFormal = formal(); + expect(restoredFormal).toHaveLength(1); + expect(restoredFormal[0]!.node.qualifiedName).toBe('leaf::rx'); + expect(restoredFormal[0]!.node.filePath).toBe('leaf.sv'); + expect(restoredFormal[0]!.node.id).not.toBe(originalTarget.id); + expect(bindings(cg)[0]!.id).toBe(binding.id); + expect(fs.readFileSync(path.join(root, 'top.sv'), 'utf8')).toBe(top); + expect(cg.getCallees(binding.id).some(e => e.node.qualifiedName === 'top::sig')).toBe(true); + }); +}); diff --git a/__tests__/verilog-signals.test.ts b/__tests__/verilog-signals.test.ts index 4829c9a0f..cb42aba57 100644 --- a/__tests__/verilog-signals.test.ts +++ b/__tests__/verilog-signals.test.ts @@ -73,6 +73,68 @@ initial q=p::value(x); endmodule`); expect(result.unresolvedReferences.filter(r => r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName)).toEqual(['hdl:signal:q', 'hdl:signal:x']); }); + it('records bit/part-select bases, bounds and concatenated assignment targets', () => { + const result = extractFromSource('selects.sv', `module top; +assign x[3] = y; +assign x[i+:W] = y; +assign x[msb:lsb] = y; +assign {a, b[j]} = v; +endmodule`); + const refs = (line: number) => result.unresolvedReferences.filter(r => r.line === line && r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName); + expect(refs(2)).toEqual(['hdl:signal:x', 'hdl:signal:y']); + expect(refs(3)).toEqual(['hdl:signal:x', 'hdl:signal:i', 'hdl:signal:W', 'hdl:signal:y']); + expect(refs(4)).toEqual(['hdl:signal:x', 'hdl:signal:msb', 'hdl:signal:lsb', 'hdl:signal:y']); + expect(refs(5)).toEqual(['hdl:signal:a', 'hdl:signal:b', 'hdl:signal:j', 'hdl:signal:v']); + }); + + it('keeps index expressions but never flattens hierarchical LHS members', () => { + const result = extractFromSource('member-select.sv', `module top; +assign remote.x[i] = y; +assign {a, remote.x[j]} = v; +assign x[bound(i)+:pkg::W] = y; +assign pkg::x[i] = y; +assign x[i].field[j] = y; +assign $root.top.x[i] = y; +endmodule`); + const refs = (line: number) => result.unresolvedReferences.filter(r => r.line === line && r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName); + expect(refs(2)).toEqual(['hdl:signal:i', 'hdl:signal:y']); + expect(refs(3)).toEqual(['hdl:signal:a', 'hdl:signal:j', 'hdl:signal:v']); + expect(refs(4)).toEqual(['hdl:signal:x', 'hdl:signal:i', 'hdl:signal:y']); + expect(refs(5)).toEqual(['hdl:signal:i', 'hdl:signal:y']); + expect(refs(6)).toEqual(['hdl:signal:i', 'hdl:signal:j', 'hdl:signal:y']); + expect(refs(7)).toEqual(['hdl:signal:i', 'hdl:signal:y']); + }); + + it('does not bind procedural for/foreach variables to matching module ports', () => { + const result = extractFromSource('procedural-loop.sv', `module top(input i, input j, input y); +logic [7:0] x; +initial for (int i=0;i<4;i++) x[i]=y; +initial foreach (x[j]) x[j]=y; +endmodule`); + const refs = result.unresolvedReferences.filter(r => r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName); + expect(refs).not.toContain('hdl:signal:i'); + expect(refs).not.toContain('hdl:signal:j'); + expect(refs).toContain('hdl:signal:x'); + expect(refs).toContain('hdl:signal:y'); + }); + + it('does not bind qualified procedural targets to same-named local ports', () => { + const result = extractFromSource('procedural-package.sv', `package p; logic x; endpackage +module top(input a, input x, input i, input j, output [7:0] y); +always_comb p::x = a; +always_comb p::x[i] = helper(a); +always_comb {p::x[i], y[j]} = a; +always_comb remote.x[i] = a; +assign y = p::x[i]; +endmodule`); + const refs = (line: number) => result.unresolvedReferences.filter(r => r.line === line && r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName); + expect(refs(3)).toEqual(['hdl:signal:a']); + expect(refs(4)).toEqual(['hdl:signal:i', 'hdl:signal:a']); + expect(refs(5)).toEqual(['hdl:signal:i', 'hdl:signal:y', 'hdl:signal:j', 'hdl:signal:a']); + expect(refs(6)).toEqual(['hdl:signal:i', 'hdl:signal:a']); + expect(refs(7)).toEqual(['hdl:signal:y', 'hdl:signal:i']); + }); + it('does not flatten hierarchical members into local signal references', () => { const result = extractFromSource('scope.sv', 'module top; wire x,y; assign x = remote.y; endmodule'); expect(result.unresolvedReferences.filter(r => r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName)).toEqual(['hdl:signal:x']); diff --git a/docs/hdl-roadmap.md b/docs/hdl-roadmap.md new file mode 100644 index 000000000..ea77e7b2d --- /dev/null +++ b/docs/hdl-roadmap.md @@ -0,0 +1,29 @@ +# План развития Verilog/SystemVerilog + +## Реализованный пакет после ce13487b + +1. Ссылки на основания и индексы LHS bit/part selects и concatenations. + Приёмка: crc[15], bus[i +: W], {a,b} сохраняют сигналы; hierarchical access, + package qualifiers и shadowing не создают ложных локальных целей. +2. Именованные подключения instance → formal port целевого модуля. + Приёмка: .rx(rx1) даёт проверяемый переход к rx нужного uart_rx; + отсутствующий/чужой порт и неоднозначный module не угадываются. + Source signature и прежние instance→local references сохраняются. +3. Regression tests, реальные Dual UART/eMMC/AXI, повторная индексация, + build, проверки backend, push трёх remote и обновление draft PR #1845. + +## Последующие пакеты + +- Позиционные подключения: source-order ports, включая non-ANSI headers, + пустые позиции и проверку числа формальных портов. +- Wildcard .*: раскрытие только при известном module и доступном локальном + сигнале; explicit connections имеют приоритет, unknown остаётся unknown. +- Procedural block scope и generate bindings как отдельные объявления; + затем классификация syntactic read/write с отрицательными controls. +- Filelists/include paths/defines как явная конфигурация проекта, чтобы + различать synthesis/testbench варианты по доказательству сборки. +- Полная elaboration/width evaluation и интеграция с HDL-компилятором — + отдельный дизайн; не смешивать синтаксический граф с timing/CDC анализом. + +Для каждого пакета: сначала воспроизводимый пропуск/ложная связь, затем fix, +проверка на реальном RTL, обновление extraction stamp при изменении графа. diff --git a/docs/validation-hdl-port-bindings-2026-09-12.md b/docs/validation-hdl-port-bindings-2026-09-12.md new file mode 100644 index 000000000..955ec6399 --- /dev/null +++ b/docs/validation-hdl-port-bindings-2026-09-12.md @@ -0,0 +1,58 @@ +# HDL: именованные порты и выбранные биты + +База ce13487b; extraction stamp 34. Linux x64 / Node 24.15.0. + +## Изменения + +- Отдельный property node для каждого named connection: top::u_rx1::rx. + Его signature сохраняет .rx(rx1), а references показывают локальный rx1 и + formal uart_rx::rx. Formal edge имеет metadata binding=hdl-named-port. +- Shorthand .rx поддерживается, explicit empty .rx() имеет только formal + endpoint. Массив экземпляров остаётся одной source declaration. +- Module selection согласован с прежним instantiates (synthesis/testbench), + но formal port binding строже: равнозначные definitions, duplicate module + в одном файле и отсутствующий порт остаются unresolved. Чужой одноимённый + порт не подставляется. Повторная индексация удаляет исчезнувшую цель. Обычный sync также + удаляет и восстанавливает formal endpoint при неизменном top; failed refs + повторно ищутся по имени порта из структурированного reference token. +- LHS bit/part selects и concatenations дают references на основания, + индексы и границы AST. Package/hierarchical members не превращаются в + одноимённые local signals. For/foreach locals подавляются при shadowing. + +Это source correspondence. Нет bit-level netlist, drive direction, evaluation +диапазонов или выбора generate branch. Wildcard/positional connections пока +сохраняются исходным текстом. Дальнейшие этапы описаны в hdl-roadmap.md. + +## Проверки + +Постоянные regressions: 7 port binding tests и 12 signal tests прошли. +Независимое ревью воспроизвело и затем подтвердило исправление p::x слева +от procedural assignment и справа с индексом; корректные a/n/y сохранены. +Два исходных квалифицированных примера проходят Verilator lint-only. + +На неизменённых копиях Dual UART/eMMC reader/AXI выполнены настоящие +codegraph_explore queries: top.u_rx1.rx top.u_rx2.rx, emmc_crc16.crc, +axi_atop_filter_intf.mst. SQLite показывает две стороны подключений UART: +top::u_rx1::rx → uart_rx::rx и top::rx1; аналогично u_rx2/rx2. +Для реального emmc_crc16 AST подтверждает crc на LHS выбранного бита +(позиция строки/колонки), а SQLite — сохранённую ссылку на crc на этой строке. + +| Корпус | Файлы | Named connections | Связи от connections | Index + query | +|---|---:|---:|---:|---:| +| Dual UART | 11 | 86 | 172 | 0.683 с | +| eMMC reader | 33 | 560 | 1070 | 1.261 с | +| AXI | 104 | 3411 | 4023 | 1.958 с | + +Количество связей не обязано равняться удвоенному числу подключений: +пустые порты, сложные выражения и отсутствующие внешние модули различаются. + +Выполнено source review с отрицательными controls swap .a(b)/.b(a), +package constants/casts, missing/fuzzy/duplicate module, scope shadows. +Полный native: 284 test files passed, 4756 passed, 9 skipped, 0 failed. +Полный WASM: 283 test files passed, 1 skipped; 4746 passed, 19 skipped, 0 failed. +TypeScript и сборка с viewer/30 grammar assets прошли. +Все 10 активных индексов пересобраны до stamp 34; readback complete, 0 pending. + +Артефакты: .scratch/hdl-ports-real-results.json, hdl-ports-explore-*.txt, +hdl-port-binding-sync-final-tests.log, hdl-review-fixed.log, +hdl-ports-final-*.log. Копии реальных RTL вне Git в ~/storage. diff --git a/src/db/queries.ts b/src/db/queries.ts index 1bce611a1..ae27bbec8 100644 --- a/src/db/queries.ts +++ b/src/db/queries.ts @@ -163,6 +163,14 @@ interface UnresolvedRefRow { * refs against newly-added node names. */ function referenceNameTail(referenceName: string): string { + // Named HDL connections carry structured module/port/instance identity. + // Retry on the formal port name when a previously removed port reappears. + if (referenceName.startsWith('hdl:port:')) { + try { + const parts: unknown = JSON.parse(referenceName.slice('hdl:port:'.length)); + if (Array.isArray(parts) && parts.length === 3 && typeof parts[1] === 'string') return parts[1]; + } catch { /* Malformed refs retain the generic tail behavior below. */ } + } // Erlang refs carry a written arity (`f/1`, `mod::fn/2` — #1610); the tail a // new symbol's plain name could match is the arity-less function name. const base = referenceName.replace(/\/\d{1,3}$/, '') || referenceName; diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index 4b26be45e..fb1964e90 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 33; +export const EXTRACTION_VERSION = 34; diff --git a/src/extraction/languages/verilog-signals.ts b/src/extraction/languages/verilog-signals.ts index 989924e61..8267837a9 100644 --- a/src/extraction/languages/verilog-signals.ts +++ b/src/extraction/languages/verilog-signals.ts @@ -46,10 +46,21 @@ export function addVerilogSignalReferences(node: SyntaxNode, ctx: ExtractorConte const id = current.childForFieldName('name') ?? identifier(current); if (id) shadowed.add(getNodeText(id, ctx.source)); } + if (current.type === 'for_variable_declaration' || current.type === 'loop_variables') { + for (const id of children(current).filter(n => ['simple_identifier', 'escaped_identifier'].includes(n.type))) { + shadowed.add(getNodeText(id, ctx.source)); + } + } for (const child of children(current)) findLocals(child); }; findLocals(node); const skip = new Set(['data_declaration', 'net_declaration', 'tf_call', 'ps_or_hierarchical_function_identifier']); + const emit = (id: SyntaxNode): void => { + const name = getNodeText(id, ctx.source).trim(); + if (shadowed.has(name) || isVerilogGenerateBinding(id, ctx, name)) return; + ctx.addUnresolvedReference({ fromNodeId: ownerId, referenceName: `hdl:signal:${name}`, + referenceKind: 'references', line: id.startPosition.row + 1, column: id.startPosition.column }); + }; const visit = (current: SyntaxNode): void => { // A package-qualified call is also parsed as method_call. Its receiver // may name a package, never evidence for an identically named local port. @@ -66,16 +77,41 @@ export function addVerilogSignalReferences(node: SyntaxNode, ctx: ExtractorConte } return; } - if (current.type === 'hierarchical_identifier' || current.type === 'net_lvalue') { - const ids = children(current).filter(n => ['simple_identifier', 'escaped_identifier'].includes(n.type)); - const text = getNodeText(current, ctx.source).trim(); - if (ids.length === 1 && ids[0] && getNodeText(ids[0], ctx.source).trim() === text) { - if (shadowed.has(text) || isVerilogGenerateBinding(current, ctx, text)) return; - ctx.addUnresolvedReference({ fromNodeId: ownerId, referenceName: `hdl:signal:${text}`, - referenceKind: 'references', line: current.startPosition.row + 1, column: current.startPosition.column }); + if (['variable_lvalue', 'primary', 'constant_primary'].includes(current.type) && children(current).some(n => n.type.endsWith('_scope') || n.type === 'implicit_class_handle')) { + // p::x (on either side) is a package variable, even though the grammar wraps x in a + // single hierarchical_identifier. Keep index expressions, not its name. + for (const child of children(current)) { + if (['select', 'constant_select', 'variable_lvalue'].includes(child.type)) visit(child); + } + return; + } + if (current.type === 'net_lvalue') { + const id = identifier(current); + const select = children(current).find(n => n.type === 'constant_select'); + // The grammar puts `.member` identifiers directly inside constant_select, + // whereas bit/part-select expressions have their own nested AST nodes. + const hasMember = select && children(select).some(n => ['simple_identifier', 'escaped_identifier'].includes(n.type)); + const hasQualifier = children(current).some(n => n.id !== id?.id && !['constant_select', 'net_lvalue'].includes(n.type)); + if (id && !hasMember && !hasQualifier) emit(id); + // Concatenations recurse through nested net_lvalue; bounds recurse through + // constant_select. Bare member identifiers are never emitted by this walk. + for (const child of children(current)) if (child.id !== id?.id) visit(child); + return; + } + if (current.type === 'hierarchical_identifier' || current.type === 'constant_primary') { + const id = identifier(current); + // A single AST identifier is local evidence; qualified/member expressions + // must not collapse to a terminal name merely because that signal exists. + if (id && children(current).length === 1 && getNodeText(id, ctx.source).trim() === getNodeText(current, ctx.source).trim()) { + emit(id); + return; + } + if (current.type === 'hierarchical_identifier') { + for (const child of children(current)) { + if (['constant_bit_select', 'bit_select', 'select'].includes(child.type)) visit(child); + } return; } - if (current.type === 'hierarchical_identifier') return; } for (const child of children(current)) visit(child); }; diff --git a/src/extraction/languages/verilog.ts b/src/extraction/languages/verilog.ts index cde5d8c50..9cdc76065 100644 --- a/src/extraction/languages/verilog.ts +++ b/src/extraction/languages/verilog.ts @@ -202,21 +202,33 @@ function handleInstantiation(node: SyntaxNode, ctx: ExtractorContext): boolean { if (created) { addReference(created.id, child); addVerilogSignalReferences(child, ctx, created.id); + ctx.pushScope(created.id); const connections = firstChildOfType(child, ['list_of_port_connections']); for (const connection of connections?.namedChildren ?? []) { - // Shorthand .port connects the same local name. Empty .port() and .* - // provide no explicit local expression and are kept only in signature. if (connection.type !== 'named_port_connection') continue; const port = getChildByField(connection, 'port_name'); - if (port && !isVerilogGenerateBinding(connection, ctx, getNodeText(port, ctx.source)) + if (!port) continue; // Wildcard .* has no explicit formal endpoint. + const portName = getNodeText(port, ctx.source); + const binding = ctx.createNode('property', portName, connection, { + signature: getNodeText(connection, ctx.source), decorators: ['hdl:connection'], + }); + if (binding) { + ctx.addUnresolvedReference({ fromNodeId: binding.id, + referenceName: `hdl:port:${JSON.stringify([moduleName, portName, created.id])}`, + referenceKind: 'references', line: port.startPosition.row + 1, column: port.startPosition.column }); + addVerilogSignalReferences(connection, ctx, binding.id); + } + // Shorthand .port connects the same local name. Empty .port() has a + // formal endpoint but no local expression; no drive direction inferred. + if (!isVerilogGenerateBinding(connection, ctx, portName) && /^\s*\.\s*[^()\s]+\s*$/.test(getNodeText(connection, ctx.source))) { - ctx.addUnresolvedReference({ fromNodeId: created.id, - referenceName: `hdl:signal:${getNodeText(port, ctx.source)}`, - referenceKind: 'references', line: port.startPosition.row + 1, - column: port.startPosition.column }); + for (const owner of [created, ...(binding ? [binding] : [])]) { + ctx.addUnresolvedReference({ fromNodeId: owner.id, + referenceName: `hdl:signal:${portName}`, referenceKind: 'references', + line: port.startPosition.row + 1, column: port.startPosition.column }); + } } } - ctx.pushScope(created.id); } visitNamedChildren(child, ctx); if (created) ctx.popScope(); diff --git a/src/mcp/server-instructions.ts b/src/mcp/server-instructions.ts index 18cf7ec02..ddfd315b7 100644 --- a/src/mcp/server-instructions.ts +++ b/src/mcp/server-instructions.ts @@ -60,7 +60,7 @@ calls; a grep/read exploration is dozens. ## Verilog / SystemVerilog -Query module and instance names to inspect hierarchy and the exact port-connection source. Ports/signals, generate scopes, modports and always/assign blocks are searchable. HDL references record syntactic signal use, not drive direction, timing or elaborated connectivity; wildcard connections and generate iterations are not expanded. Qualified package calls retain package identity. +Query module and instance names to inspect hierarchy and the exact port-connection source. Ports/signals, generate scopes, modports and always/assign blocks are searchable. Query an instance-qualified connection such as top.u_rx1.rx to inspect its local expression and declared target port; an explicit empty connection still names a formal port but has no local endpoint. Bit/part-select references identify the base signal and indexed expressions, not evaluated widths. HDL references record syntactic signal use, not drive direction, timing or elaborated connectivity; wildcard connections and generate iterations are not expanded. Qualified package calls retain package identity. ## Anti-patterns diff --git a/src/resolution/index.ts b/src/resolution/index.ts index 6940fbe48..16e988fa0 100644 --- a/src/resolution/index.ts +++ b/src/resolution/index.ts @@ -23,6 +23,7 @@ import { isVisibleAcrossFiles, matchReference, matchFunctionRef, matchDottedCall import { isVisibleCppMacro } from './cpp-macro-visibility'; import { isCppConstructorRef, matchCppConstructor } from './cpp-constructor'; import { isVerilogMemberRef, matchVerilogMember } from './verilog-members'; +import { isVerilogPortRef, matchVerilogPort } from './verilog-ports'; import { resolveViaImport, resolvePhpImportedStaticCall, resolveJvmImport, extractImportMappings, extractReExports, loadCppIncludeDirs, isPhpIncludePathRef, isCobolCopybookRef, isNixPathImportRef, isBoundToOutOfRepoImport, clearImportResolverMemos, resolveImportPath } from './import-resolver'; import { ResolverPool, minRefsForPool } from './resolver-pool'; import { resolveAliasBinding } from './alias-binding'; @@ -900,6 +901,7 @@ export class ReferenceResolver { private resolveOneInner(ref: UnresolvedRef): ResolvedRef | null { if (isCppConstructorRef(ref)) return matchCppConstructor(ref, this.context); + if (isVerilogPortRef(ref)) return matchVerilogPort(ref, this.context, matchReference); if (isVerilogMemberRef(ref)) return matchVerilogMember(ref, this.context); // Skip built-in/external references if (this.isBuiltInOrExternal(ref)) { diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index 7f3381922..6e97f0707 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -12,6 +12,7 @@ import { JS_BUILT_INS, isTsJsNestedCall } from './js-builtins'; import { isVisibleCppMacro, clearCppMacroVisibility } from './cpp-macro-visibility'; import { isCppConstructorRef, matchCppConstructor } from './cpp-constructor'; import { isVerilogMemberRef, matchVerilogMember } from './verilog-members'; +import { isVerilogPortRef, matchVerilogPort } from './verilog-ports'; /** * Ceiling on how many same-named definitions a FUZZY name-match strategy will @@ -3101,6 +3102,7 @@ export function matchReference( ): ResolvedRef | null { if (isVisibleCppMacro(ref, context)) return null; if (isCppConstructorRef(ref)) return matchCppConstructor(ref, context); + if (isVerilogPortRef(ref)) return matchVerilogPort(ref, context, matchReference); if (isVerilogMemberRef(ref)) return matchVerilogMember(ref, context); if (ref.language === 'verilog' && ref.referenceKind === 'instantiates' && !isVerilogSimPath(ref.filePath)) { const modules = context diff --git a/src/resolution/verilog-ports.ts b/src/resolution/verilog-ports.ts new file mode 100644 index 000000000..0de5614b7 --- /dev/null +++ b/src/resolution/verilog-ports.ts @@ -0,0 +1,55 @@ +import type { ResolutionContext, ResolvedRef, UnresolvedRef } from './types'; + +const PREFIX = 'hdl:port:'; + +export function isVerilogPortRef(ref: UnresolvedRef): boolean { + return ref.language === 'verilog' && ref.referenceKind === 'references' && ref.referenceName.startsWith(PREFIX); +} + +/** Bind a named source connection to the selected module's own declared port. + * Reuse the instantiation matcher so simulation-file selection cannot diverge. + * This is source correspondence, not an elaborated net or drive-direction edge. + */ +export function matchVerilogPort( + ref: UnresolvedRef, + context: ResolutionContext, + resolveModule: (ref: UnresolvedRef, context: ResolutionContext) => ResolvedRef | null, +): ResolvedRef | null { + let parts: unknown; + try { parts = JSON.parse(ref.referenceName.slice(PREFIX.length)); } catch { return null; } + if (!Array.isArray(parts) || parts.length !== 3 || !parts.every(p => typeof p === 'string' && p.length > 0)) return null; + const [moduleName, portName, instanceId] = parts as [string, string, string]; + const instance = context.getNodeById?.(instanceId); + if (!instance || instance.language !== 'verilog' || instance.kind !== 'variable' || instance.filePath !== ref.filePath) return null; + const selected = resolveModule({ ...ref, fromNodeId: instance.id, referenceName: moduleName, + referenceKind: 'instantiates', line: instance.startLine, column: instance.startColumn }, context); + const module = selected && context.getNodeById?.(selected.targetNodeId); + if (!module || module.name !== moduleName || module.language !== 'verilog' + || !['class', 'interface'].includes(module.kind)) return null; + let candidates = context.getNodesByName(moduleName) + .filter(n => n.language === 'verilog' && ['class', 'interface'].includes(n.kind)); + const simulation = (file: string) => /(^|\/)(sim|tb|tests?|testbench|dv)\//i.test(file) + || /_(stub|tb|sim)\.s?vh?$/i.test(file); + if (!simulation(ref.filePath)) { + const synthesis = candidates.filter(n => !simulation(n.filePath)); + if (synthesis.length) candidates = synthesis; + } + // The module matcher may choose the first equal candidate. Port correspondence + // is stricter: a tie in source-file/directory proximity stays unresolved. + const dirs = ref.filePath.split('/').slice(0, -1); + const score = (file: string): number => { + const other = file.split('/').slice(0, -1); + let shared = 0; + while (shared < Math.min(dirs.length, other.length) && dirs[shared] === other[shared]) shared++; + return (file === ref.filePath ? 100 : 0) + Math.min(shared * 15, 80); + }; + if (candidates.some(n => n.id !== module.id && score(n.filePath) >= score(module.filePath))) return null; + if (context.getNodesByQualifiedName(module.qualifiedName).filter(n => n.filePath === module.filePath + && n.language === 'verilog' && ['class', 'interface'].includes(n.kind)).length !== 1) return null; + const ports = context.getNodesByQualifiedName(`${module.qualifiedName}::${portName}`) + .filter(n => n.language === 'verilog' && n.filePath === module.filePath && n.kind === 'field' + && n.decorators?.includes('hdl:port') && n.startLine >= module.startLine && n.endLine <= module.endLine); + if (ports.length !== 1) return null; + return { original: ref, targetNodeId: ports[0]!.id, confidence: selected!.confidence, + resolvedBy: 'qualified-name', metadata: { binding: 'hdl-named-port', moduleId: module.id, instanceId } }; +} From 4d97bb29a0ff7b9c814d8b7680537b4179101203 Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 14:17:34 +0300 Subject: [PATCH 14/23] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20positional=20=D0=B8=20wildcard=20HDL=20bin?= =?UTF-8?q?dings=20=D0=B8=20=D0=BE=D0=B1=D0=BD=D0=BE=D0=B2=D0=B8=D1=82?= =?UTF-8?q?=D1=8C=20grammar?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + README.md | 2 +- __tests__/hdl-port-bindings.test.ts | 2 +- __tests__/hdl-positional-ports.test.ts | 106 ++++++++++++++ __tests__/hdl-wildcard-ports.test.ts | 131 ++++++++++++++++++ __tests__/verilog-grammar-version.test.ts | 43 ++++++ __tests__/verilog-port-order.test.ts | 47 +++++++ docs/hdl-roadmap.md | 6 +- docs/validation-hdl-wildcard-2026-09-12.md | 47 +++++++ src/db/queries.ts | 29 +++- src/extraction/extraction-version.ts | 2 +- src/extraction/index.ts | 10 +- src/extraction/languages/verilog-signals.ts | 41 ++++++ src/extraction/languages/verilog.ts | 73 +++++++++- .../wasm/tree-sitter-systemverilog.wasm | Bin 21515233 -> 21802386 bytes src/index.ts | 5 + src/mcp/server-instructions.ts | 2 +- src/resolution/index.ts | 2 + src/resolution/name-matcher.ts | 2 + src/resolution/verilog-ports.ts | 58 ++++++-- src/resolution/verilog-wildcard.ts | 70 ++++++++++ 21 files changed, 656 insertions(+), 24 deletions(-) create mode 100644 __tests__/hdl-positional-ports.test.ts create mode 100644 __tests__/hdl-wildcard-ports.test.ts create mode 100644 __tests__/verilog-grammar-version.test.ts create mode 100644 __tests__/verilog-port-order.test.ts create mode 100644 docs/validation-hdl-wildcard-2026-09-12.md create mode 100644 src/resolution/verilog-wildcard.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d453b709..faa5c2191 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -145,6 +145,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- HDL: позиционные подключения следуют порядку ANSI/non-ANSI заголовка; `.*` учитывает явные подключения и локальную область видимости. Sync пересчитывает весь набор связей при изменении заголовка или удалении дубликата модуля. Grammar обновлена до tree-sitter-systemverilog 0.4.0 после сравнения 137 реальных HDL-файлов. + - HDL: именованные подключения имеют отдельные переходы к формальным портам выбранного модуля и локальным сигналам; LHS bit/part selects и concatenations больше не теряют основания и индексы. Неоднозначные module declarations не дают предполагаемую formal binding. - Verilog/SystemVerilog: именованные экземпляры и generate scopes, порты/сигналы и always/assign доступны для навигации; связи локальных сигналов и package calls сохраняют scope, interfaces показывают modports. Полные elaboration и timing не моделируются. diff --git a/README.md b/README.md index 434dd7bf6..a1d2077f3 100644 --- a/README.md +++ b/README.md @@ -892,7 +892,7 @@ is written): | Astro | `.astro` | Full support (frontmatter + script extraction, template component/call references, `src/pages/` routes) | | Liquid | `.liquid` | Full support | | Pascal / Delphi | `.pas`, `.dpr`, `.dpk`, `.lpr` | Full support (classes, records, interfaces, enums, DFM/FMX form files) | -| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, generate scopes, порты/сигналы и named port bindings, bit/part selects, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | +| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, generate scopes, порты/сигналы и named/positional/wildcard port bindings, bit/part selects, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | | Lua | `.lua` | Full support (functions, methods with receivers, local variables, `require` imports, call edges) | | R | `.R` `.r` | Full support (functions in every assignment form, S4/R5/R6 classes with methods, `library`/`require` imports, `source()` file references, call edges) | | Luau | `.luau` | Full support (everything in Lua, plus `type`/`export type` aliases, typed signatures, and Roblox instance-path `require`) | diff --git a/__tests__/hdl-port-bindings.test.ts b/__tests__/hdl-port-bindings.test.ts index 7b3a5b5f3..e906b39d8 100644 --- a/__tests__/hdl-port-bindings.test.ts +++ b/__tests__/hdl-port-bindings.test.ts @@ -18,7 +18,7 @@ async function graph(files: Record, check: (cg: CodeGraph, root: } finally { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); } } function bindings(cg: CodeGraph) { - return (cg as any).db.db.prepare("select id, name, qualified_name qualifiedName, signature from nodes where kind='property' and language='verilog'").all() as Array<{ id: string; name: string; qualifiedName: string; signature: string }>; + return (cg as any).db.db.prepare("select id, name, qualified_name qualifiedName, signature from nodes where kind='property' and language='verilog' and decorators LIKE '%hdl:named%'").all() as Array<{ id: string; name: string; qualifiedName: string; signature: string }>; } const leaf = 'module leaf(input rx, output tx); endmodule'; diff --git a/__tests__/hdl-positional-ports.test.ts b/__tests__/hdl-positional-ports.test.ts new file mode 100644 index 000000000..6df3bad25 --- /dev/null +++ b/__tests__/hdl-positional-ports.test.ts @@ -0,0 +1,106 @@ +import { it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; + +async function graph(leaf: string, top: string, check: (cg: CodeGraph, root: string) => void | Promise) { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-positional-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'leaf.sv'), leaf); + fs.writeFileSync(path.join(root, 'top.sv'), top); + cg = CodeGraph.initSync(root); expect((await cg.indexAll()).success).toBe(true); + await check(cg, root); + } finally { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); } +} +function slots(cg: CodeGraph) { + return (cg as any).db.db.prepare("select id,name,signature from nodes where kind='property' and decorators like '%hdl:position:%' order by name").all() as Array<{id:string;name:string;signature:string}>; +} +function formal(cg: CodeGraph, id: string) { + return cg.getCallees(id).filter(e => e.edge.metadata?.binding === 'hdl-positional-port').map(e => e.node.name); +} +const ansi = 'module leaf(input rx, output tx, input enable); endmodule'; + +it('maps ANSI positions, preserving empty slots and local expressions without expanding instance arrays', async () => { + await graph(ansi, 'module top(input sig); leaf bank[3:0](sig,,sig); endmodule', cg => { + const connections = slots(cg); + expect(connections).toHaveLength(3); + expect(connections.map(n => formal(cg,n.id))).toEqual([['rx'], ['tx'], ['enable']]); + expect(connections[1]!.signature).toBe(''); + expect(cg.getCallees(connections[1]!.id).filter(e => e.node.qualifiedName === 'top::sig')).toEqual([]); + expect(cg.getCallees(connections[2]!.id).some(e => e.node.qualifiedName === 'top::sig')).toBe(true); + expect(cg.getNodesByName('bank').filter(n => n.kind === 'variable')).toHaveLength(1); + }); +}); + +it('uses the non-ANSI header order rather than declaration body order', async () => { + await graph('module leaf(enable, rx, tx); output tx; input rx; input enable; endmodule', + 'module top(input sig); leaf u(sig,sig,sig); endmodule', cg => { + expect(slots(cg).map(n => formal(cg,n.id))).toEqual([['enable'], ['rx'], ['tx']]); + }); +}); + +it.each([ + ['extra arguments', ansi, 'leaf u(sig,sig,sig,sig);'], + ['mixed named and positional', ansi, 'leaf u(sig,.tx(sig));'], + ['complex non-ANSI header', 'module leaf(.rx({rx0,rx1})); input rx0,rx1; endmodule', 'leaf u(sig);'], +])('does not guess formal endpoints for %s', async (_label, declaration, instance) => { + await graph(declaration, `module top(input sig); ${instance} endmodule`, cg => { + expect(slots(cg).flatMap(n => formal(cg,n.id))).toEqual([]); + }); +}); + +it('rebinds unchanged positional callers after target order changes, removal and restoration through sync', async () => { + const top = 'module top(input sig); leaf u(sig,sig); endmodule'; + await graph('module leaf(rx,tx); input rx; output tx; endmodule', top, async (cg, root) => { + const ids = slots(cg).map(n => n.id); + const targets = () => slots(cg).map(n => formal(cg,n.id)); + expect(targets()).toEqual([['rx'], ['tx']]); + // Keep names and body declaration positions identical; only the header order changes. + fs.writeFileSync(path.join(root,'leaf.sv'), 'module leaf(tx,rx); input rx; output tx; endmodule'); + expect((await cg.sync()).filesModified).toBe(1); + expect(targets()).toEqual([['tx'], ['rx']]); + fs.writeFileSync(path.join(root,'leaf.sv'), 'module leaf(rx); input rx; endmodule'); + expect((await cg.sync()).filesModified).toBe(1); + expect(targets()).toEqual([[], []]); + fs.writeFileSync(path.join(root,'leaf.sv'), 'module leaf(rx,tx); input rx; output tx; endmodule'); + expect((await cg.sync()).filesModified).toBe(1); + expect(targets()).toEqual([['rx'], ['tx']]); + expect(slots(cg).map(n => n.id)).toEqual(ids); + expect(fs.readFileSync(path.join(root,'top.sv'),'utf8')).toBe(top); + }); +}); + +it('keeps leading and trailing empty slots while allowing an omitted trailing port list', async () => { + await graph(ansi, 'module top(input sig); leaf u(,sig,); leaf short_list(sig); endmodule', cg => { + const nodes = (cg as any).db.db.prepare("select id,qualified_name q from nodes where kind='property' and decorators like '%hdl:position:%' order by qualified_name").all(); + expect(nodes.map((n: any) => [n.q, formal(cg,n.id)])).toEqual([ + ['top::short_list::port[0]', ['rx']], ['top::u::port[0]', ['rx']], + ['top::u::port[1]', ['tx']], ['top::u::port[2]', ['enable']], + ]); + }); +}); + +it('invalidates formal mappings when an equally near empty duplicate module is added and recovers when removed', async () => { + await graph(ansi, 'module top(input sig); leaf u(sig); endmodule', async (cg, root) => { + const slot = slots(cg)[0]!; + expect(formal(cg,slot.id)).toEqual(['rx']); + fs.writeFileSync(path.join(root,'duplicate.sv'),'module leaf; endmodule'); + await cg.sync(); + expect(formal(cg,slot.id)).toEqual([]); + fs.rmSync(path.join(root,'duplicate.sv')); + await cg.sync(); + expect(formal(cg,slot.id)).toEqual(['rx']); + }); +}); + +it.each(['/* second slot */', '// second slot\n'])('keeps positional slot order across comments: %s', async comment => { + await graph(ansi, `module top(input sig); leaf u(sig, ${comment} sig,); endmodule`, cg => { + const connections = slots(cg); + expect(connections.map(n => formal(cg,n.id))).toEqual([['rx'], ['tx'], ['enable']]); + expect(connections[1]!.signature).toContain(comment); + expect(cg.getCallees(connections[1]!.id).some(e => e.node.qualifiedName === 'top::sig')).toBe(true); + expect(cg.getCallees(connections[2]!.id).some(e => e.node.qualifiedName === 'top::sig')).toBe(false); + }); +}); diff --git a/__tests__/hdl-wildcard-ports.test.ts b/__tests__/hdl-wildcard-ports.test.ts new file mode 100644 index 000000000..5a783e5c1 --- /dev/null +++ b/__tests__/hdl-wildcard-ports.test.ts @@ -0,0 +1,131 @@ +import { it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; + +async function graph(files: Record, check: (cg: CodeGraph, root: string) => Promise | void): Promise { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-wildcard-')); + let cg: CodeGraph | undefined; + try { + for (const [file, source] of Object.entries(files)) { + fs.mkdirSync(path.dirname(path.join(root, file)), { recursive: true }); + fs.writeFileSync(path.join(root, file), source); + } + cg = CodeGraph.initSync(root); + expect((await cg.indexAll()).success).toBe(true); + await check(cg, root); + } finally { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); } +} +function wildcard(cg: CodeGraph, qname = 'top::u::*') { + const node = cg.getNodesByName('*').find(n => n.qualifiedName === qname)!; + expect(node).toBeDefined(); + return cg.getCallees(node.id).filter(e => e.edge.metadata?.binding === 'hdl-wildcard-port') + .map(e => ({ target: e.node.qualifiedName, endpoint: e.edge.metadata!.endpoint, + port: e.edge.metadata!.portName })).sort((a, b) => a.target.localeCompare(b.target)); +} +const pair = (name: string) => [ + { target: `leaf::${name}`, endpoint: 'formal', port: name }, + { target: `top::${name}`, endpoint: 'actual', port: name }, +]; + +it('pairs wildcard ports only with the exact local signal and keeps endpoint identity', async () => { + await graph({ 'leaf.sv': 'module leaf(input rx,output tx,input missing); endmodule', + 'top.sv': 'module top(input rx,output tx,input extra); leaf u(.*); endmodule', + 'other.sv': 'module other(input missing); endmodule' }, cg => { + expect(wildcard(cg)).toEqual([...pair('rx'), ...pair('tx')].sort((a, b) => a.target.localeCompare(b.target))); + }); +}); + +it('explicit named and open connections override .* independently of source order', async () => { + await graph({ 'leaf.sv': 'module leaf(input a,b,c); endmodule', + 'top.sv': 'module top(input a,b,c,x); leaf u(.a(x),.*, .b()); endmodule' }, cg => { + expect(wildcard(cg)).toEqual(pair('c')); + }); +}); + +it('does not bind an outer signal through an enclosing genvar or parameter', async () => { + await graph({ 'leaf.sv': 'module leaf(input i,input a); endmodule', + 'top.sv': 'module top(input i,input a); for(genvar i=0;i<2;i++) begin: lanes localparam a=1; leaf u(.*); end endmodule' }, cg => { + expect(wildcard(cg, 'top::lanes::u::*')).toEqual([]); + }); +}); + +it.each([ + { 'a.sv': 'module leaf(input a); endmodule', 'b.sv': 'module leaf(input a); endmodule' }, + { 'a.sv': 'module leaf(input a); endmodule module leaf(input a); endmodule' }, +])('rejects ambiguous module definitions %j', async definitions => { + await graph({ ...definitions, 'top.sv': 'module top(input a); leaf u(.*); endmodule' } as Record, cg => { + expect(wildcard(cg)).toEqual([]); + }); +}); + +it('refreshes added and removed formal endpoints when the wildcard source is unchanged', async () => { + await graph({ 'leaf.sv': 'module leaf(input a); endmodule', + 'top.sv': 'module top(input a,b); leaf u(.*); endmodule' }, async (cg, root) => { + expect(wildcard(cg)).toEqual(pair('a')); + fs.writeFileSync(path.join(root, 'leaf.sv'), 'module leaf(input a,b); endmodule'); + await cg.sync(); + expect(wildcard(cg)).toEqual([...pair('a'), ...pair('b')].sort((a,b)=>a.target.localeCompare(b.target))); + fs.writeFileSync(path.join(root, 'leaf.sv'), 'module leaf(input b); endmodule'); + await cg.sync(); + expect(wildcard(cg)).toEqual(pair('b')); + }); +}); + +it('retries a known module with no matches and updates added or removed local signals', async () => { + await graph({ 'leaf.sv': 'module leaf(input absent); endmodule', + 'top.sv': 'module top(input b); leaf u(.*); endmodule' }, async (cg, root) => { + expect(wildcard(cg)).toEqual([]); + fs.writeFileSync(path.join(root, 'leaf.sv'), 'module leaf(input b); endmodule'); + await cg.sync(); + expect(wildcard(cg)).toEqual(pair('b')); + fs.writeFileSync(path.join(root, 'top.sv'), 'module top; leaf u(.*); endmodule'); + await cg.sync(); + expect(wildcard(cg)).toEqual([]); + fs.writeFileSync(path.join(root, 'top.sv'), 'module top(input b); leaf u(.*); endmodule'); + await cg.sync(); + expect(wildcard(cg)).toEqual(pair('b')); + }); +}); + +it('discovers a previously unknown module and removes bindings when a duplicate appears', async () => { + await graph({ 'top.sv': 'module top(input a); leaf u(.*); endmodule' }, async (cg, root) => { + expect(wildcard(cg)).toEqual([]); + fs.writeFileSync(path.join(root, 'leaf.sv'), 'module leaf(input a); endmodule'); + await cg.sync(); + expect(wildcard(cg)).toEqual(pair('a')); + fs.writeFileSync(path.join(root, 'duplicate.sv'), 'module leaf(input a); endmodule'); + await cg.sync(); + expect(wildcard(cg)).toEqual([]); + fs.unlinkSync(path.join(root, 'duplicate.sv')); + await cg.sync(); + expect(wildcard(cg)).toEqual(pair('a')); + fs.unlinkSync(path.join(root, 'leaf.sv')); + await cg.sync(); + expect(wildcard(cg)).toEqual([]); + }); +}); + +it('normalizes escaped source identifiers for matching and explicit exclusions', async () => { + await graph({ 'leaf.sv': 'module leaf(input \\a , input b); endmodule', + 'top.sv': 'module top(input a, input \\b ); leaf u(.*, .\\a ()); endmodule' }, cg => { + expect(wildcard(cg)).toEqual([ + { target: 'leaf::b', endpoint: 'formal', port: 'b' }, + { target: 'top::\\b', endpoint: 'actual', port: 'b' }, + ]); + }); +}); + +it.each([ + 'module leaf(.p(a)); input a; endmodule', + 'module leaf(.p({a,b})); input a,b; endmodule', + '`define PORTS input a\nmodule leaf(`PORTS); endmodule', +])('keeps only the module dependency for unknown or complex non-ANSI headers: %s', async leaf => { + await graph({ 'leaf.sv': leaf, 'top.sv': 'module top(input a,b,p); leaf u(.*); endmodule' }, cg => { + expect(wildcard(cg)).toEqual([]); + const node = cg.getNodesByName('*').find(n => n.qualifiedName === 'top::u::*')!; + expect(cg.getCallees(node.id).filter(e => e.edge.metadata?.binding === 'hdl-wildcard-dependency') + .map(e => e.node.qualifiedName)).toEqual(['leaf']); + }); +}); diff --git a/__tests__/verilog-grammar-version.test.ts b/__tests__/verilog-grammar-version.test.ts new file mode 100644 index 000000000..861c8397f --- /dev/null +++ b/__tests__/verilog-grammar-version.test.ts @@ -0,0 +1,43 @@ +import { afterAll, beforeAll, describe, expect, it } from 'vitest'; +import { Parser, Language } from 'web-tree-sitter'; +import path from 'node:path'; + +let parser: Parser; +let grammar: Language; +beforeAll(async () => { + await Parser.init(); + grammar = await Language.load(path.join(__dirname, '../src/extraction/wasm/tree-sitter-systemverilog.wasm')); + parser = new Parser(); + parser.setLanguage(grammar); +}); +afterAll(() => parser?.delete()); + +describe('SystemVerilog grammar capabilities', () => { + it('loads the shipped grammar with the supported ABI', () => { + expect(grammar.abiVersion).toBe(15); + }); + it.each([ + ['class timeunits', 'class C; timeunit 1ns; timeprecision 1ps; endclass', 'timeunits_declaration'], + ['generate inside expression', 'module m; parameter N=1; if (N inside {1,2}) begin: g wire x; end endmodule', 'inside_expression'], + ['keywords in macro arguments', 'module m; `M(input, output, always_ff) endmodule', 'text_macro_usage'], + ])('parses %s without recovery', (_name, source, expectedType) => { + const tree = parser.parse(source)!; + try { + expect(tree.rootNode.hasError).toBe(false); + expect(tree.rootNode.descendantsOfType(expectedType).length).toBeGreaterThan(0); + } finally { tree.delete(); } + }); + it('rejects whitespace between the backtick and a macro name', () => { + const tree = parser.parse('module m; ` M(x) endmodule')!; + try { expect(tree.rootNode.hasError).toBe(true); } + finally { tree.delete(); } + }); + it('represents replication multipliers as constant expressions', () => { + const tree = parser.parse('module m(input a, output [3:0] q); parameter N=4; assign q={N{a}}; endmodule')!; + try { + expect(tree.rootNode.hasError).toBe(false); + const replication = tree.rootNode.descendantsOfType('multiple_concatenation')[0]!; + expect(replication.namedChildren[0]?.type).toBe('constant_expression'); + } finally { tree.delete(); } + }); +}); diff --git a/__tests__/verilog-port-order.test.ts b/__tests__/verilog-port-order.test.ts new file mode 100644 index 000000000..da2ca372a --- /dev/null +++ b/__tests__/verilog-port-order.test.ts @@ -0,0 +1,47 @@ +import { afterAll, beforeAll, describe, expect, it } from 'vitest'; +import { Parser, Language } from 'web-tree-sitter'; +import path from 'node:path'; +import { getVerilogPortOrder } from '../src/extraction/languages/verilog-signals'; + +let parser: Parser; +beforeAll(async () => { + await Parser.init(); + parser = new Parser(); + parser.setLanguage(await Language.load(path.join(__dirname, '../src/extraction/wasm/tree-sitter-systemverilog.wasm'))); +}); +afterAll(() => parser?.delete()); +function order(source: string): string[] | null { + const tree = parser.parse(source)!; + try { return getVerilogPortOrder(tree.rootNode.namedChildren[0]!, source); } + finally { tree.delete(); } +} + +describe('authoritative HDL positional port order', () => { + it('takes ANSI comma continuation ports in header source order, ignoring comments', () => { + expect(order('module m(input a, /* comment `ifdef FALSE */ b, output [3:0] c); endmodule')).toEqual(['a', 'b', 'c']); + }); + it('uses non-ANSI header order even when body declarations are reversed', () => { + expect(order('module m(a,b,c); input c; output b; input a; endmodule')).toEqual(['a', 'b', 'c']); + }); + it('preserves escaped identifiers and supports empty headers', () => { + expect(order('module m(input \\x.y , output z); endmodule')).toEqual(['\\x.y', 'z']); + expect(order('module m(\\x.y ,z); input z; output \\x.y ; endmodule')).toEqual(['\\x.y', 'z']); + expect(order('module m(); endmodule')).toEqual([]); + expect(order('module m; endmodule')).toEqual([]); + }); + it.each([ + 'module m(a,,b); input a,b; endmodule', + 'module m({a,b},c); input a,b,c; endmodule', + 'module m(.a(x),b); input x,b; endmodule', + 'module m(input a, a); endmodule', + 'module m(input a, \\a ); endmodule', + 'module m(input a, `ifdef TEST input b, `endif output c); endmodule', + 'module m(`PORTS); endmodule', + 'module m(input a); assign = ; endmodule', + ])('does not infer order from ambiguous or incomplete syntax: %s', source => { + expect(order(source)).toBeNull(); + }); + it('accepts interfaces and ignores parameter declarations in port numbering', () => { + expect(order('interface bus #(parameter W=8)(input clk, input [W-1:0] data); endinterface')).toEqual(['clk', 'data']); + }); +}); diff --git a/docs/hdl-roadmap.md b/docs/hdl-roadmap.md index ea77e7b2d..f8860be05 100644 --- a/docs/hdl-roadmap.md +++ b/docs/hdl-roadmap.md @@ -12,12 +12,16 @@ 3. Regression tests, реальные Dual UART/eMMC/AXI, повторная индексация, build, проверки backend, push трёх remote и обновление draft PR #1845. -## Последующие пакеты +## Реализованный пакет после 7d0321ae - Позиционные подключения: source-order ports, включая non-ANSI headers, пустые позиции и проверку числа формальных портов. - Wildcard .*: раскрытие только при известном module и доступном локальном сигнале; explicit connections имеют приоритет, unknown остаётся unknown. +- tree-sitter-systemverilog 0.4.0: проверка ABI, реальных корпусов и современных конструкций. + +## Последующие пакеты + - Procedural block scope и generate bindings как отдельные объявления; затем классификация syntactic read/write с отрицательными controls. - Filelists/include paths/defines как явная конфигурация проекта, чтобы diff --git a/docs/validation-hdl-wildcard-2026-09-12.md b/docs/validation-hdl-wildcard-2026-09-12.md new file mode 100644 index 000000000..a8ede086a --- /dev/null +++ b/docs/validation-hdl-wildcard-2026-09-12.md @@ -0,0 +1,47 @@ +# HDL: positional, wildcard и актуальная grammar + +База 7d0321ae, extraction stamp 35. Linux x64, Node 24.15.0. + +## Версии + +На 12 сентября 2026 активный стандарт — [IEEE 1800-2023 SystemVerilog](https://standards.ieee.org/ieee/1800/7743/), опубликованный 28 февраля 2024. Старый Verilog IEEE 1364 входит в объединённое семейство SystemVerilog. + +Grammar обновлена с 0.3.1 до [tree-sitter-systemverilog 0.4.0](https://github.com/gmlarumbe/tree-sitter-systemverilog/releases/tag/v0.4.0), релиз 17 июля 2026. Upstream commit aa09b9004478cea0f46d877608910dc153b277b6, ABI 15, web-tree-sitter 0.25.10. Официальный release WASM SHA256: 52e470eacf2a87af5056fe054c081d4495d1da72f5d0a9bb0d431e111ee8f235 (21,802,386 bytes). + +Изолированное сравнение 137 HDL-файлов (11 Dual UART, 33 eMMC reader, 93 AXI): одинаковые 7 ERROR/0 missing и их позиции. Хотя AST 19 файлов изменился, результаты nodes/refs/edges совпали полностью после исключения timestamps. Дополнительные method_call wrappers вокруг field accesses не создали calls. Отдельно подтверждены улучшения class timeunits, generate inside, keywords в аргументах макросов. Это не сертификация полной поддержки IEEE 1800-2023. + +## Связи + +- Порядок портов берётся из заголовка, включая non-ANSI с другим порядком body declarations. Unknown/complex headers не угадываются. +- Позиционные подключения представлены port[0], port[1] и т.д. Пустые позиции сохраняются; extra/mixed/error inputs не получают formal bindings. +- Wildcard clause имеет узел *. Только однозначные formal/local пары получают endpoints. Explicit .a и .a() имеют приоритет; genvar, параметры и другие shadow declarations не подменяются внешним сигналом. +- Каждое вычисляемое подключение сохраняет зависимость от целевого модуля. Это позволяет обновить результат после изменения заголовка, даже когда прежние ID портов не изменились. +- Sync заменяет всю группу производных endpoints; surviving actual edges не остаются после удаления formal. Failed bindings восстанавливаются после удаления дублирующего модуля, включая deletion-only sync. + +Это синтаксическое соответствие имён. Width compatibility, elaboration, generate expansion, timing/CDC не вычисляются. + +## Проверки + +Постоянные focused tests: порядок заголовков, пустые позиции/комментарии, +unknown headers, explicit precedence, escaped names, genvar/parameter shadows, +восстановление после удаления duplicate, удаление последнего модуля и старых +actual endpoints. Добавлены 6 parser regression cases для grammar 0.4.0. + +Реальные копии: Dual UART 11 файлов/86 named; eMMC reader 33/560 named; +AXI 104 файла, 3411 named, 32 positional, 14 wildcard clauses. +В AXI получены 28 formal/actual wildcard pairs: например +axi_synth_bench::generate@28:33::s::* связывает synth_slice::clk_i с +axi_synth_bench::clk_i и аналогично rst_ni. Для дополнительного positive control +создана отдельная копия Dual UART: u_rx1 переписан из named в 6 positional +аргументов с комментариями. Port[2] сохранил uart_rx::rx и top::rx1. +Исходные RTL-проекты не изменялись. + +Полный native: 288 test files, 4796 passed, 9 skipped, 0 failed. +Полный WASM: 287 test files passed, 1 skipped; 4786 passed, 19 skipped, 0 failed. +Все 10 активных индексов пересобраны до stamp 35: complete, 0 pending changes. + +Build копирует точный проверенный WASM: source/dist SHA256 совпадают. + +Артефакты: .scratch/grammar-v040/manifest.json, compare.json, +extraction-deltas.json, .scratch/hdl-expanded-real-results.json и +hdl-expanded-final-*.log. Полные RTL/scratch snapshots вне Git. diff --git a/src/db/queries.ts b/src/db/queries.ts index ae27bbec8..72037a9b4 100644 --- a/src/db/queries.ts +++ b/src/db/queries.ts @@ -165,6 +165,14 @@ interface UnresolvedRefRow { function referenceNameTail(referenceName: string): string { // Named HDL connections carry structured module/port/instance identity. // Retry on the formal port name when a previously removed port reappears. + for (const prefix of ['hdl:port-position:', 'hdl:wildcard:']) { + if (referenceName.startsWith(prefix)) { + try { + const parts: unknown = JSON.parse(referenceName.slice(prefix.length)); + if (Array.isArray(parts) && typeof parts[0] === 'string') return parts[0]; + } catch { /* Fall back for malformed internal references. */ } + } + } if (referenceName.startsWith('hdl:port:')) { try { const parts: unknown = JSON.parse(referenceName.slice('hdl:port:'.length)); @@ -3543,8 +3551,25 @@ export class QueryBuilder { refs: UnresolvedReference[] ): number { return this.db.transaction(() => { - const changed = this.deleteEdgesByIds(edgeIds); - this.insertUnresolvedRefsBatch(refs); + let changed = this.deleteEdgesByIds(edgeIds); + const seenHdl = new Set(); + const pending = refs.filter(ref => { + if (!ref.referenceName.startsWith('hdl:wildcard:') && !ref.referenceName.startsWith('hdl:port-position:')) return true; + const key = JSON.stringify([ref.fromNodeId, ref.referenceName, ref.line, ref.column]); + if (seenHdl.has(key)) return false; + seenHdl.add(key); + return true; + }); + // A wildcard/positional binding depends on the entire module header. + // Invalidate its complete fan-out, including actual signals in untouched + // files, before rebuilding it from one original reference. + for (const ref of pending) { + if (ref.referenceName.startsWith('hdl:wildcard:') || ref.referenceName.startsWith('hdl:port-position:')) { + changed += this.db.prepare("DELETE FROM edges WHERE source = ? AND json_extract(metadata, '$.refName') = ?") + .run(ref.fromNodeId, ref.referenceName).changes; + } + } + this.insertUnresolvedRefsBatch(pending); return changed; })(); } diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index fb1964e90..0aa3b942f 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 34; +export const EXTRACTION_VERSION = 35; diff --git a/src/extraction/index.ts b/src/extraction/index.ts index f05c9a8cb..ee751792e 100644 --- a/src/extraction/index.ts +++ b/src/extraction/index.ts @@ -2938,6 +2938,12 @@ export class ExtractionOrchestrator { const reinserted: Edge[] = []; const resurrected: UnresolvedReference[] = []; for (const e of crossFileIncomingEdges) { + const name = e.metadata?.refName; + if (typeof name === 'string' && (name.startsWith('hdl:wildcard:') || name.startsWith('hdl:port-position:'))) { + const ref = resurrectRefFromDroppedEdge(e); + if (ref) resurrected.push(ref); + continue; + } const newTargetId = newNodesByKindName.get(`${e.targetKind}\0${e.targetName}`); if (newTargetId) { reinserted.push({ source: e.source, target: newTargetId, kind: e.kind, metadata: e.metadata, line: e.line, column: e.column, provenance: e.provenance }); @@ -2950,7 +2956,7 @@ export class ExtractionOrchestrator { this.queries.insertEdges(reinserted); } if (resurrected.length > 0) { - this.queries.insertUnresolvedRefsBatch(resurrected); + this.queries.replaceResolutionEdgesWithUnresolvedRefs([], resurrected); } } @@ -3148,7 +3154,7 @@ export class ExtractionOrchestrator { .map((e) => resurrectRefFromDroppedEdge(e)) .filter((r): r is UnresolvedReference => r !== null); if (resurrected.length > 0) { - this.queries.insertUnresolvedRefsBatch(resurrected); + this.queries.replaceResolutionEdgesWithUnresolvedRefs([], resurrected); } } this.queries.deleteFile(tracked.path); diff --git a/src/extraction/languages/verilog-signals.ts b/src/extraction/languages/verilog-signals.ts index 8267837a9..73d40d4f4 100644 --- a/src/extraction/languages/verilog-signals.ts +++ b/src/extraction/languages/verilog-signals.ts @@ -20,6 +20,47 @@ function direction(node: SyntaxNode, ctx: ExtractorContext): string | undefined return undefined; } +/** Authoritative source header order for positional instance connections. + * null means the syntax is incomplete or needs preprocessing/elaboration. + * [] explicitly describes a module with no ports. Body declaration order is + * never used: legacy non-ANSI declarations can legally be reordered. + */ +export function getVerilogPortOrder(node: SyntaxNode, source: string): string[] | null { + const headers = new Set(['module_ansi_header', 'module_nonansi_header', 'module_header', + 'interface_ansi_header', 'interface_nonansi_header', 'program_ansi_header', 'program_nonansi_header']); + const header = children(node).find(n => headers.has(n.type)); + if (!header || node.hasError) return null; + const uncertain = (current: SyntaxNode): boolean => { + if (current.type.endsWith('_comment') || current.type === 'comment') return false; + return current.isMissing || current.type.includes('directive') || current.type.includes('macro') + || children(current).some(uncertain); + }; + if (uncertain(header)) return null; + const list = children(header).find(n => ['list_of_ports', 'list_of_port_declarations'].includes(n.type)); + if (!list) return []; + const names: string[] = []; + const seen = new Set(); + for (const port of children(list)) { + if (port.type.endsWith('_comment') || port.type === 'comment') continue; + let id: SyntaxNode | null | undefined; + if (port.type === 'ansi_port_declaration') { + if (getNodeText(port, source).trimStart().startsWith('.')) return null; + id = port.childForFieldName('port_name'); + } else if (port.type === 'port') { + id = identifier(port); + if (!id || children(port).length !== 1 || getNodeText(port, source).trim() !== getNodeText(id, source).trim()) return null; + } else return null; + if (!id || !['simple_identifier', 'escaped_identifier'].includes(id.type)) return null; + const name = getNodeText(id, source).trim(); + // Escaping an otherwise simple name does not create a distinct HDL port. + const canonical = name.replace(/^\\/, ''); + if (!canonical || seen.has(canonical)) return null; + seen.add(canonical); + names.push(name); + } + return names; +} + /** Generate iteration variables are implicit local parameters in their body. * Do not let an identically named outer signal stand in for that binding. */ export function isVerilogGenerateBinding(node: SyntaxNode, ctx: ExtractorContext, name: string): boolean { diff --git a/src/extraction/languages/verilog.ts b/src/extraction/languages/verilog.ts index 9cdc76065..093136604 100644 --- a/src/extraction/languages/verilog.ts +++ b/src/extraction/languages/verilog.ts @@ -1,4 +1,4 @@ -import { visitVerilogSignals, addVerilogSignalReferences, isVerilogGenerateBinding } from './verilog-signals'; +import { getVerilogPortOrder, visitVerilogSignals, addVerilogSignalReferences, isVerilogGenerateBinding } from './verilog-signals'; import { handleVerilogPackageNode, getVerilogCallName } from './verilog-packages'; import type { Node as SyntaxNode } from 'web-tree-sitter'; import { getNodeText, getChildByField } from '../tree-sitter-helpers'; @@ -106,7 +106,9 @@ function handleContainer( visitNamedChildren(node, ctx); return true; } - const created = ctx.createNode(kind, name, node); + const order = getVerilogPortOrder(node, ctx.source); + const created = ctx.createNode(kind, name, node, order === null ? undefined + : { decorators: [`hdl:port-order:${JSON.stringify(order)}`] }); if (created) ctx.pushScope(created.id); visitNamedChildren(node, ctx); if (created) ctx.popScope(); @@ -155,6 +157,23 @@ function handleGenerateBlock(node: SyntaxNode, ctx: ExtractorContext): boolean { return true; } +/** Direct AST commas delimit slots; nested expression commas stay inside their node. */ +function positionalConnections(node: SyntaxNode, ctx: ExtractorContext, leading: SyntaxNode[] = []): Array<{ position: SyntaxNode; text: string }> | null { + if (node.hasError || node.namedChildren.some(n => !['ordered_port_connection', 'comment', 'block_comment', 'one_line_comment'].includes(n.type))) return null; + const slots: Array<{ position: SyntaxNode; text: string }> = []; + let start = leading[0]?.startIndex ?? node.startIndex; + let position: SyntaxNode = leading[0] ?? node; + for (const child of [...leading.flatMap(n => n.children), ...node.children]) { + if (child.type === ',') { + slots.push({ position, text: ctx.source.slice(start, child.startIndex).trim() }); + start = child.endIndex; + position = child; + } else if (child.type === 'ordered_port_connection') position = child; + } + slots.push({ position, text: ctx.source.slice(start, node.endIndex).trim() }); + return slots; +} + function handleInstantiation(node: SyntaxNode, ctx: ExtractorContext): boolean { const typeNode = getChildByField(node, 'instance_type') ?? firstSimpleIdentifier(node); if (!typeNode) { @@ -204,13 +223,57 @@ function handleInstantiation(node: SyntaxNode, ctx: ExtractorContext): boolean { addVerilogSignalReferences(child, ctx, created.id); ctx.pushScope(created.id); const connections = firstChildOfType(child, ['list_of_port_connections']); - for (const connection of connections?.namedChildren ?? []) { + // This grammar wraps leading empty-slot commas in ERROR. Accept only + // those literal separators; all other parse errors/mixed lists stay opaque. + const leadingCommas = child.namedChildren.filter(n => n.type === 'ERROR' + && connections && n.endIndex <= connections.startIndex && /^\s*,+\s*$/.test(getNodeText(n, ctx.source))); + const allowedErrors = new Set(leadingCommas.map(n => n.id)); + const soundTree = (part: SyntaxNode): boolean => !part.isMissing && (part.type === 'ERROR' + ? allowedErrors.has(part.id) : part.namedChildren.every(soundTree)); + const validConnections = soundTree(node) + && child.namedChildren.filter(n => n.type === 'list_of_port_connections').length === 1; + const slots = validConnections && connections ? positionalConnections(connections, ctx, leadingCommas) : null; + if (slots) slots.forEach((slot, index) => { + const binding = ctx.createNode('property', `port[${index}]`, slot.position, { + signature: slot.text, decorators: ['hdl:connection', `hdl:position:${index}`], + }); + if (binding) { + ctx.addUnresolvedReference({ fromNodeId: binding.id, + referenceName: `hdl:port-position:${JSON.stringify([moduleName, index, slots.length, created.id])}`, + referenceKind: 'references', line: slot.position.startPosition.row + 1, + column: slot.position.startPosition.column }); + if (slot.position.type === 'ordered_port_connection') addVerilogSignalReferences(slot.position, ctx, binding.id); + } + }); + for (const connection of validConnections ? connections?.namedChildren ?? [] : []) { if (connection.type !== 'named_port_connection') continue; const port = getChildByField(connection, 'port_name'); - if (!port) continue; // Wildcard .* has no explicit formal endpoint. + if (!port) { + if (!getNodeText(connection, ctx.source).includes('.*')) continue; + const excluded = (connections?.namedChildren ?? []).flatMap(n => { + const formal = getChildByField(n, 'port_name'); + return formal ? [getNodeText(formal, ctx.source)] : []; + }); + // An implicit generate parameter shadows an outer same-name signal. + for (let ancestor = connection.parent; ancestor; ancestor = ancestor.parent) { + if (ancestor.type === 'loop_generate_construct') { + const init = firstChildOfType(ancestor, ['genvar_initialization']); + const id = init && firstSimpleIdentifier(init); + if (id) excluded.push(getNodeText(id, ctx.source)); + } + if (['module_declaration', 'interface_declaration', 'program_declaration'].includes(ancestor.type)) break; + } + const wildcard = ctx.createNode('property', '*', connection, { + signature: getNodeText(connection, ctx.source), decorators: ['hdl:connection', 'hdl:wildcard'], + }); + if (wildcard) ctx.addUnresolvedReference({ fromNodeId: wildcard.id, + referenceName: `hdl:wildcard:${JSON.stringify([moduleName, created.id, excluded])}`, + referenceKind: 'references', line: connection.startPosition.row + 1, column: connection.startPosition.column }); + continue; + } const portName = getNodeText(port, ctx.source); const binding = ctx.createNode('property', portName, connection, { - signature: getNodeText(connection, ctx.source), decorators: ['hdl:connection'], + signature: getNodeText(connection, ctx.source), decorators: ['hdl:connection', 'hdl:named'], }); if (binding) { ctx.addUnresolvedReference({ fromNodeId: binding.id, diff --git a/src/extraction/wasm/tree-sitter-systemverilog.wasm b/src/extraction/wasm/tree-sitter-systemverilog.wasm index be5ac600c33820406227a8b3f4d1212b266fdc80..ad8201395e4d93dbe4a6508ef43a8d6a5e03bed6 100644 GIT binary patch literal 21802386 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

    epEf- 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

    7I!>;EfcT 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

    Cv7 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

    ({cEI;R97GA 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 Y3`mJjpEN3EY}Nc@hYT7KpE5E1|CfPoOaK4? literal 21515233 zcmeFa4SZGES?`~{&&y2brMBK)t=@VscRK1+r|q;>JGQlLwAQLst5&UAFEe&V`!a3E z>8Pz%=Kui$1UQ5M0RkK#KnMW>1PBn|Kmr5^a0mec1PBlyK!8IC5Fo&RuV?-CdiL7u z9A@VXp8x&aPwnSp>39F0XFcn;UiM4Q*{9&;AAHv;aQ^S7AAjXXuYK!#-}%T3)?;-$ zr#un13#<=BU$WjRc*%b2E$gk93JRS6;rzGrzY1O|u->xYh=gAK-oO0R(4jwg^W|@R zXXxwS|JL{3eD#gcTb9624;}j5SHJuHH-0qq?_d7GtD(0F1bk}f&^KTH``2FevZ$2V z1>0>Q`MIG(zxBOWzV*hd-*|KAKm7CezVYU_zW+TLWW8QshaQXCcEqx*$G#kT@6e(D z>J&fp8!x~1+R$&j`TaM3P*CuGu$Nzd{k0zredXmhUmp6#tFL|k8$T$pe(udTUVU}w z55D!LQ{&Jd{OAX7zWUvNdG(ENz4rZoEU@48xK;2$`$;<#d7`A{$!Ms+dh*&H%d+44 zpjB8uYswSfcK$m(t*PMKzhM_R|7?&*{*NS%*OvY|4mY_Gy?5UQ)C`oI?Ie4qKt{Fz zb~ZauqLiDg?nRI`m#lF~yGz!&qyr>=#3h{|i7PJY0!g<_a2x9eN-0qf5nI-hmj9#B zLM3IQcBl8X>yoY!J-p49*H)fDU8~IdgrKI9Y9;oE7S>8by=YULFJR}WCFXz>{fRsmLW8GS&@ z81)0yFH#K*09A9Fu{qM_nT(2nHeFPK#Xwsal>qhZRH``8uw4q30adg6E@cHP!-VaNea~fm2+S%&~ip~K=nLE^+2l`H2{q+Rq2yJ#cXsF(4nnL z)eLlyRV_e^hAUMHD8Z-=Xepz1pbdvqUoY4YY)(}gDQO* zXb#VuKA@4@Vn5K_scNSh09xFya>WvIel>FXBB0wm<%)rpavw{8%6Kxxf!f9TmP?@w z=rpG<2Rg~90;s=H1tx%2^Ng+pYTd0=RY3cAIBJ0Ib|_UX&>T)*2Xu~0tq0o4xf)#6 zag{3xv|@=uO+XWeDbx%!o!3wc&@v880p0FVfo(vQjM{-3_bF8e(01OgI)V0#R;n(b zQTNoI*$s4WK%pL>5rc0!G?x2V3Dm=VtO8oW zYr6($6Qf$7T5hopsG2wTdZ3lOxijR4OO6v!@ z%GD3Jh*w&yQqHgIycCLnj_{eU80a9Q5}*_hM;xeyQ5jGjFTQf11fvR|MQmXLXaS>2 zpbKna70?a7Evo@K&#GFWTdb-BO7XRCJL&rE7@d=j6r>wxC-f~p7FTcIjy09wx|3ABSz6VM^9s2ON6->bF& zU0~N!Kn;xAfQIuv(hgM06So7XoG->Yfl4@67tmxz-9U|#RUdnRsun4f20G5e)d#e4 zrc(6-tza|&be7L~v4wJGjbu~=bdXUo&<#H4l>pUn`Z&-+MrA-t7?lGpU{nEgiAOsD z)Ww@@CD2JWx(etFt7?GC*!x<5~}XaJ~}bHx_P`L&UA6#>QhYN;4#Hlq@tC5+-g*LWW(16sp#q8zA&uh}br#`7MY z09wJ*q!Os)s&b+VXbhtopoxrXfkrW^1De999;lR215h`clLWfNs0ru+qh_F9MlC@1 z8Kr=(F=_*faS`o6Np`gZ=nS7MJAulND|5PlM)Cz`H_&{})dSSSmknv4QD;=HKA=uM z@%95Xa`gj1D|j!ARmu4^g|8%vfM)XphGL-ed}~(%6rZn(hy(5C7R!Koc#@X`_3Hb`fzI+c_5nTMM?n2RWnBFLPz9sdVmZI&Fe(C?!G0A3ZRIm^2~Y{w6$cu|s0?Tx zua0t{4!(k}0P5nu0wjR8@=aSM&@4t(K$98O0M+riwic+D*H9hMSnhT`&@5gG4M6u9 zC4q+Vy=oKCm0N0Pn}Kfg6U-K%yF6$qpqq@^fXY4l7tkG6bpYMqx;lZzGwN~!8Fd4d zGU@?p<@9Nw3NE4#Xc41+ph`vqK)d;Ic&u8^uiJbcDgxTWXTD;f13YLYKqq+Xhy!in z`;s!CT2_?<9T};HqXK9Ps}ev}ypvY~U13!f(0)cWKo9sjrxvJ}TdV`R#;6`>muLS1 z8pBssNuZOwDKr7y=Ec_x^nj~x0lLbIF9p=cs10aNLYdPJbepfzI$XqibSF?hqb{I^ zSt?gI&>UWAJwS`u!Zgr%?qeU&I_^+E(1v{~{Q%H#o~yAXa(`xYb~0)QTEu}JK<8N1 z2{eoMlP;j^tm+2Z$hmre7P2Z0)X)2GAJ76;^#ko;GypV{i-^_88Fq?QML_2()Zi8a zUEskj0lLdY#DUiHk|_h~;#}oGX}(yj07|hc0W^>AGb@35SXBkIhW)Ams%KOS^ngpP z1DejNdZ0L?2B4LEI!ppJGim~wzd-rb3^c%~1!&kYrAh(qWz+^VhfzDw5#F0RfYveU zbaOH40@}u?8)ySxN%sJ)Vw46N#!mDBCHU0Z4>XPMxCemFb6{*Kb}&XoKx;U#7-%H_ zX`lpX{|@C>9B3D#GN9UpN>vV2%`H{{EoGDd+B{ALRsyYHR0T9^u2R(i)$xL<1uEw` zQ3o`GU9AT?z$d2$pf0XH33QwH%qE~=oU0kAhMy|509Eise+nqcmw|0SBY1mk2Z}T5 z0GfJ6b-NSj827PDpdt9YO*f8DWLtWGHuJ?%8mO7;?gN^`s(zr+JaGqr7P2a~OwO#6 zjEaD^Gb#oec20Gr#6|oE(m2pK?r<4U5#NWF16^rXxhjAzF-ic9W+y6v;+(z;=+GXO zs|IK$2i5{jVpIn-W0nf62deE=r~&9A@AOHaxxB`jfT~&5474e&aJKTZ3=Y*tzV*0 z571RsrGZB9oah5u#4Yv%9pS(MpcFs3i>;9JYdh~uMLJlaX1>)h=opgMlO*9=sICZL z%fBw5Qtoy)P#^o%1JuAyq=9O9-uD6RbcPNLG>?mD1{%#fc?-}SR;7T}@g~{^lscuVZwJ~ba=9Oj z?*QCWs&t(|Np78r%K-kw2)ChP%EPWpdxNDwo1;h4Xi2x z+Q+CE=>AF7VhPZ3Msc7^jLLx4@)c`2P!AVT0o1isrB48rEL5lxsFWW@Rsjv?6L1aC z6!xnYXda_FpwZmNdV$pc#C?oB0%+7sWnluS za-Kq!Ko=QR0kw0fH9)KQL|6;d#%H}cpgUYwJvK|04gt5fw8r6er@NwoFbr#(MnYebdq<>5}>ub z=fr_du=iy^b9qjb1Ff5^(pLbDf)JG3AB$VKo!t@K5y3m9jH+0Yk?X$R~^t^ z{$xu%&_Z5A4M64WY7(e|*JBgVHMX!BXdTaq7N8NER9z{csod>0pbqY1JJ3bmYCC`y z@D9)k)W_9#0WINW)eSUlgDRp2X!r$%(yoffu@7hjtNMYiFd6_l%qUhb=hx+KmA(jQ z8mo$dinzrRpe+YfU>s-#qcWh${N%12sB^ChtN_~2C;>E#11o{Hu&N5^Dx(^p(R_PR z3$%w(9Z)f&dY}eI4M5e5l0efKH38k?6MnNB$m7@o)H_ynI|a0fuYKEq>c=QmJJ3N! z9YBY9&^m!u@t}19b@L9;4RnRCV0wT?@q$SMZRYCxfQB*Z2RgD|l{x^lgIkQPlk=;V zTPy-fF)9YS##f>xKzDc>iUV!pQpXdiF2wLtBxsslQ~yGcDzCGQgrKzC-VB9cJIIIsz51P3+)&EkvZ z7NCv16jDH|7_|W{X4DRJi96H*l-#ZA>I6E;SMFUvb$nUS4OBi+1@-`~i?23GX} zHSSV@{XnZ34FH{I6x$%@*BBnhBA^z&o+t*o!GR?}cgL$1<3Q6Hl>yzEr&Q%YQ`m_L zSH&Gl0A1!KS_!nA=Y17WE8ip60G(n~3slVuxeloRqN=MNsDv+v8(g$gsgghgJZMco z>si$dG-&f{XqL!H2}2es8YomL+WG(Ok%0WIR8?FU-unO{KbcL*f&i7Vz zKs$ML)B|1Qd-n#QN}d2opjnKXfZ~f)sm(xlsuXGgy2n?1DWH8E*alS1s2!+-13Q3b zZ&B$xf$k&}>H<2#XZLQP;;Bm219Y8@P6I9Cz&@ZNM*Tn&j;UM&Kr?ykh;5Sd>sW(Q z6#*UCuTU}2W=17I7h9Do4%Eu14Cp+Mb~(@h=c;g3j1oXKj4FYqFscH&&*^J`HgXZQ zK&6c8fEF^U2U^5e3JpM886|<*FRN}h0Zr;ws2OMmU-7j7jX0!KDWH`+C)!-ZEw%%t z530ZppcB;!bpq{T)CE+`MRWt*;^p20lqglX(m*#yE7S*ciBUh$QNCsx06Ndt(Xq{P zejVToq#~f5JXec>Zgce|K)sCOKo=&dy2^ld^Nm3{Q2jckssNhGssvCMt15xku&N4Z zE2A2q`y5ycG=Xnx>VU5BXx9VnBwt1)fhv-!`X-<$9M}wWoG+SNfF`%7z!Xpk zqc)&bjM{;!8Fc`~_^zoFXzL!8z6@mKA@Sb>IbUfbJ_sV zYDTf7oL`4Wsk(}QmUk&s43yyNOMqHg6$hHgsxqM6Tvs_z1FI^4u5hjd&?;6{0-a@5 z6;LCmuK}9Ls#>6Zd^)KEI>9ri9_TpV)-(WJ*@y@U^DF=paw=|Ks)&9N;yzFqY9udMhT!zbCrdaKzDi2 zs(|kCEUW>l*sB6-f#Q4$r~^96*O>J{Tlqqy0q78;B+wp4O+f1yH3KbX)B@DQcZMmT zGmP4R)*n^Xw*y^c)B)7Zs1xWCpLDu_*3D75x`Adh>H#WRs8ng7#sv!X0Ucn}4>Xq1 z0MHsnv8{4`l`|>=y3Xg0VxZHkDgj!|;}{1T&!`OOKK~)E9OxFK3ZSM7szV8&*_Rcn z1RBdzt_o-aU%}M4fvl^%|MNO z9o+)d#aC7-pvv$09PN~{}7BXrFn#6$}KozX&1lq}UbpegJqgw2C zRSy*E0U9|<6_ExiAFEIw&~^5!A87x8$~6Gg%iWGO$@z7et1kkYcTWWt1D)idEdh!# ziUUn!R0gzw`&bUNzF(!U0NT>4Py*=qWYxz?pd`Cm1+;{#uK~JwSLLb&YKf~{bwJbE zoO+9}07N9+BP70`lCuSSaY<8j@XgvpZ0F54| zTI>W`P^3^7(3Fu1bp!QrU=L6$qcqUb5h}0`=-PGVL_g4KRt*5vaIV-kIlr2@t|FkT z!&UlXpy`ZCfYKZo2Wse3MU(;ET9p{k#M80WIRX`hlu>Jr1}k?qh7b zoL}cTR}s)EUfab$*V(TUppFS@IO0HCcs-T@jo|fI4%D1hBUAx2kx>Gu@2XN&0_|f| z1yskV252*He6>IcMs+~9xcYjaMqWb=KwZ28B!R~A&^7^WU{y2FDPBV@KxI7dQ$P(o zLTy0jSk(?RmnT36&}Lp~oj?Z}bphSsq3s5m!sFNjw3JaAXe*o32XvmNZ$D6+w~hgz zqn`P-L(Z>pd@?Ko+Q6t7=)xp5nM#0;vnmdBohMTn&_$j(%3r6K)qZ<8&G1W+P2$)mNM!By2Q7X-9W|DRA3L#spATzfiCc^ZXZyL@8?Wh`n0v(`R~GlPZey#e>dU38*TgZ{GX8XZ>bZ#ng;bhpD7qp z@SOer_lBHgdN8N?$-jQ$z)u|bi32}z;3p3JzwE#e`=ic@_1(iBE3oWPI1+vA@pnD( z@WV(FF*I8U-{MNKm3u8 zzVNY+|Jo;h{Wm`O;%|QH)1UdR&wlRng}?nfU-;cG{@#~<{}2A~%YXF8fAW<-{j)#+ z>RT`)_7}zHPMP&ldMu}vQ=hHv8Gzn zta59*HN%=|RampE+14B@Va>JXS@W$*Yk{@UT4YsOi>+#FiB)4QwU$}Sty*h^wbEK; z)mf{pHP%|I-dbm^w>DS})<$cSwb@EqTdb{Cqt#?>v$k71tY&McwaeOVwOD(sz1BV} zW$m|Gtpiq@b(by;VvbJlsQ+qz&~v@Tga z)@AF8b=68+*Q{Ray47dhux?tntbXgZb;r7E4OsWA`_=<1W)HK6+av5Ed!#+e9&H!f zW9+f^IJ?9iZ%?o%+Hrf5U20FZ%j_xkRC}6TZcn#o*fZ@4dzL-ho?|EMx%NDJzFlcA zuov2k>?(V)U2QM1YwV@=GJCmQYp<|Z+N+JRR2IsP9qrJ)AY$xq4 z_Ex*mZnC%8+wC3BRnty;m%ZC=vG>?}?R|F2-fy?s2kbWcpnb?bY`5D-?4$NEyTd+i zpRiBbo%SjFw0*|zvd`M*?DKZFeZjtHU$T4b%k~xfs-3p4*}e94yU)I1-?VSp{q}A9 zj(yi2uITtq*MoHH0>XHib5alA$f3t)a$HQ)pXgduT_fIkYph zE3`Y*6512m8`>92h4zP9LkB`_p@X4Ap~Io}(2>y5(6LZQ=y>Qv=wzrfbSiW@bSBgl zIvY9{Iv?r|T?kzaT?+MtE{Cp!u7=W~YoXrI^-y2vM(AefR;WL8J9H;>H#88s7rGyM z5Q>F|g@=bngp0x>!=u8Z!^Pn-;j!Uy;gaz9@PzQha6CLITpFGnE(=cyPYq8Cmxrf^ zXM|^lE5ftFv%_=3iSXR;yzu;RWq3h&VR%uvD!e#c9bOWy2`>#V3oj4XhF64FhF68_ z!mGn;!fV6z;dSBl;SJ%2@W$|_@aAwbyd}If+!$^OZwqe^?+7=CcZPR`cZXZTd%}Ce z`@*U4{%~vfK)5Y@FnlO{INTmS5Mk!g|g$n?mJ$jnGZWL9K$ zWKJXznH!lGnIEZ)EQl<$G$garlNK0f-WN&0&Bo)~oX^k9+ zv_%d^4n+<}+9O9IMByN#SLAHuT;zPDJ8~g%F>)!=6S*9@ z61f^lN3KPBBiAE+ksFblkz0}e$nD6T$lb_5xj*O0qj*b>b z$3(|Q$3;t`a;XmxZ+v?jVVx-7apS{q#vT^U^!t&6UXu8FRV)<@Sx*GD%*8=@Pd zo1&Ye$>^5o)@Wn2DY`AXJ-Q>>9Nih+72O?eiSCK+jqZ!4qWhz*(F4)8=)vfr=;3I4 z^hoq*^jNebdOUg}dNSG>JrzA2JrnJUo{gT1o{x4%FGMd!FGYKzm!nsrSEK3ZwPE7~8u9laC18y$$=iw=8i_+uj;D|+n7A@+xzJF-ISpTeJa?%~#l#7*B* z_oEIkbnf8l?GWAEJ?H$Z@KC{@kSOvS&X)F+?famQrt#9=Nv2yf9KuysK*MNGQ@>| zOj!7?KNcxP?!u?P{IqP|`S+0Dqkk7#pDK{Ir*03Nni5@3%QEIYVYiQ~!>&T5-csC&Q4zuY-I*z7O92nc(E`t?oOB$u zV8b29Q88SF36(+~q1klM19hKAh}oIR=bbc_o*M8Qyz~5IvQ%|PRi!uY z@XXCWY$c+3%Bhi?0b)U_B{u?`<~ciGVgohNalUd2^afbt-0?-9z^AT3U1}%`D3)zP$<^U z3%s@crrg=8iti_&0NfSoXn!ow=>HtdWcz$%x@O$M#8KrWmc74n1osH_L${h zm=!;t&8$*!B(qsgxG<~AH0#NG&KckTpMo2?SoSWmj6&beGChAzX9_2U-%i>fg`Jhk z&Pu!RGxEyhy&g9m>blvT)lG3Evzt!1aI?~M^W6i^6;$T`6!hid=@aBBg}$Aqdj6a| zbyD~}r5##$noyo5?7~k;Pv7V9)S<4Y7qWUPj%4=K2^XFwOi$l?*SRiz*nbMH=i=;> z_RAE|7 znHIAPx8l0ud5>!jhHJ5OHrIxWBbi-u!i8%wziStBaP7a5YnOt!MxuA-nv=rs8l6#v zYXepY&lLwObv5=;k82Kg=i0Swu9b=-nO$?jg=+&AJ=Wx_u?so4_C9j$Vi4E7qK90K zIWoU9blMco^ebojE%&bK;~rxi3S$zz*^HSdj$}5*2^Yrn`;F<&!I=L}##{(uj92s! zV;q^^7&W4aA8cJ-SBe z!XG6I_{W8xC2J`Z`5!W!9GTx4I{yi0dXzIgR^cw}+n@G0<6t;bdn21OE5(t_&N$)1 znI6A0XLFcO@25_m^USA*blQ>mJ5A>=(dlm0>29m=6Y{d?vz|UX6n#$J%+}{taU^q} zop90TZhxPFhb0nv`I46bQ4>~gmKf073U23!4;&AoXH3!3xpVbg?B(ot-xG<#C zZ^-E!4EY~q$QjS7Fs}it<&$<2sjVibY2>8vyGCa#;aZ1st-~t(h+I}XyskOeb?tUm z*Tj*`t~uetwGO{)r*d%Z1LWH2pwsA!>d&&L9`Xl8C!OCMIx7it+Lbx&%A8$Za~uqF z5_hthGfy1JY>pEy%xU+V)0u-gzd+`kdbH*^>HOx5YYCtO(5;5hB>JR*=A0wIFfnh zIN`#aq~DyQIhgZ7GUwQ%HOEQkH-}DM!kh+WPJ_C2IO#RV!LB*6iCI37(JGE)HpdAU z<}~=tIg*1p&yqPuAFVk~I=?w|UJ~ZiD|71Ao^#r3j)P%Na#%KVwu&Q}&2hqoIrV;X z+H)}H7s;F>kJcO~o!=ZfGYNC*lsR>3=A8AK<6xMR7@p0XdE!WBbDVHtPMzPJ!#SAq zOJq*_qcz7#=QoE=V8WbQWlpV{Io)1!91L^fBeI!ODvo3}#|ana)cVail!H0HOy(SZ zwB|VJ{N~UJOqf%n%&Af4T=JUZV3?E6YEExg za{mn9=QYQ{?w&I$n>nT8NM>`KaA8iuZ%%6t=KLy|bKudMw zM>3n^gbQ=Z{O0V-!JLnfIjKi$j+4%B4xPY+IdNr9TwMglEYFj62g96nR&#o@o8yEF zbK-t;_U2&DN6DOhLCwkjJqss=-w--!2}4ShAtma`-w3ZE4tDpMG1+FzX>la;Y;nSc zAtio8_T*s53uMUNpoRo{sOO~fn?olpVNS6!r&w*mqrB!g80MtLW;3T%9La2s6E4gt z_M6j^gE=1~bM`!1bDVU3bLgZc%qddl6sgA)W4z`#80OTD%Vy3>aU`=jPPj0q$ZyW> z9L)JRnbQ)~oa{@m@*`$_LdT_Ar5v8DamSxIFi{ACtMg3^Bb}&2Sa|1 z4A~vjkYG#6N#{3*PE^92AG;s4`LX*4--%vpe(XAv7@y6VdE!WBXMRk^{Mh#)o1HoM z@(J=~*Q52tN$2;4&QZdbAG*H$P<<|<)N9NSU1Q=CvKdnek`?<aUsqm~W%WWF$?V0~$&0W1yx5Y1 z7oQ<7wg&Yg*xGT@`F){Nk?`eft}kCx-)gP)8uK;RnA$1Xj9Dp;WH#n&WX#um#w2qv z=C{b0Ey9?$|LmqC^LLoeF`~m?bvyi3_wnUYZ-2k4`a3mif5nl^{rxKS_p84CZqA{< zpQZjLAMHeN()oR%^NsN3E3PkJaeb-v`tlXmm)Nvyz6=*fGW+rs^5rW&UpD37%jd|K z&5za>C!OCHI^PIizU=z)W!INgUSGcK`jX1(OKWytzD&M++2_l~9DGU2w?%Avw8l8; z{Kn7;M;P-Z*O)K4A6s1GHRemMF^TeQ6K0+`l6k^>iH!M@&zOcBjM*ZM+4yLUankvX zp|g)L<_oSdUvOv4I^yV*wKdE?BlWeiI_ADNBJqK9cvaGD z`E3zCa1RHr%XbGk2L}H&l4e!5C-xx^2eMzVQeC>ww0<&}w_2H}o5bArS|sOyr@VmQ zkiol|D5+i-Emm(`yQK?t{<^ly#mU@PmvbO^T|0frX!-B*K)pz{O%&qgT}`scRc?_K zze&au)Z=OCP$xeqXIz<_*4#>UTIS_nza9)*Mg`(~YVfixnz{Rdnt z+tq==JJv28bIS0<=I+=fRf>P=(Pl)B>2If8pd8cRPRaZua*7?1Q;fO3@R?&=#^AuRf`06ZTq^l5SQii?9l($sLM0x?C?8K5;!Y zZ`yDlspqTIdJ5*BmF~C7)Wr4FyqV)&iTh;L^F(T0%6l!Or=*>8RTUW1gE9qiJq7O< zdWuAr6wJ}Vb+RMG_0+r+k-A(;=cv@bD!te&?Prc#mL-0UCTDu`=uPsZMU$PlxQYWRsGgN8}$QBRRQ}FOZI#(Jw-RuYtr!Fm5t)bvGvV+9+*3|I0eV!*< zo90ikR;FN%Rdz$#Ok7W`M$VUdYL?W@k-AT&Ca$NZL8TGIJVw=1RBF9C;(7`mRHUeu zBT^<(=u#d$T{>B{hFk0zG6i$k-zdE!uBWC!^>$=|l$M%R@SviKN-3RWN_mhV9U}{i zn^HC%((zI{(Uh{ekZzRYGeJnH5BllN;hwWq<||6?rK7rBtd$+p;{%@U(sDPVnslpa zU^A3CUX|~=oZ$n$s}|>gr(*#NyCw_MV;^!Few*t&T(wY*dOvyg>BCWyt)I?;!FQ)u zc1MqW$K9bC_3qG0$S`cg2vmI;Hg7kRA2hc-?VtyjEul3OHf=q$S?MvcBcP5&1Vw+G{d&bWAS8b3@jm z$7bG9JeGJj7q312nXFnOt#X?1_k^~>3_U5%r6)IKPxROq_)YSk^t{tN*RIsat~hP@ zyOM3I9-T{9Zpp4ttaD$Vn&~`glCze6aNu{<`zuaLzYCYjx|{%iUA)!md)BC2>cYF% zomhV}yal3}JMs)RQb=ipakp~M&v7EZ>*4yk=IuyNU8GX$DTwPSXc2km*>>652w?*1 zdxCcc{~Pb`%Hi;;-^H&pd|JK$YNwHshw0OF$|>BfB!2s7ZHUK`FS?H0MJg%r7mK(mVdHl=%6_rO^{TT(5#B0t)VyeY+j;UamNf zsBQCYPgxgK27i}%2B5LgvaWu!%RJDKUX}aEEmO+l1L+8v^`Hb0>q}b7vqiBhj_nvaVjmKPl_& z_i(*l8XoF0QVf^wTr*pv;UVd-$*hy5G_6{DQSwn9uD3?R=1p-+7IxKajfd?MGV2vN zNv@buV|X6Otd~tGnMeg-B=1UTkLts3%GU09xZVdg_cx?8F1vflY>iB$){u3QlwLHY zY$Bv(QhLFZl3A2hzjWv}rDT>@dRm%z-jtGAB*l}3emQZ^nNl`Oe+Y3_NGXN>5Q4aF zBAMlFZNBVomp{d3Sp{)D1)1n=?W&ZXF$*RWz0&nkdfJqdiC!t57N0VuWTID!OSMi@ zN+x=xJ+gq4rqnPI(i1{TDe#cg8SrlawAeTO+f)g(ao5!{1t^93SF(YhTPC+Y-UfkW}E|W*9^t#&Cp;_GtQs0=|cH|+>%>VJI>#;>A*1A9Xg;V zp<&XJ+?Ppq8%bg^2_4Xr&;U}BMl`rXCfOyD=vo><(l$Z6N#@;YYH0{byA9fAsckm3 zJch1zr_}B+wLB2pk$0WcZWmf=umuO!dk*LwVV8G8+aR^u%m&#^SG!San@lZvMm4zF z?b6IfQ%jy{^{$b5x0+h=jI?`E?^>zdVrt1V(x#x@Ahk(T%bp#Fc7|Mln@ufQLwQ~8 z6sg^0YRMW+J5_2onp(1kv?ox*B)PXWm|C(%+@+Qp`ptkJYPq_)b`k~Nxkx702&wPcN^t&n|NXlltCO}j_tU0`a- z8q&I_?^da;G__<6Y2B57Rchx8Egk5>%#3>u=o64U(~>Ng+IeP!Oo?~jsOikM=SI2BqOJ-`?>#~Mfrq(obo6K8bYRNOo z>l)u7Pg^rhEqmr_yQFr8sU>T)yvL<>x~U~=G;K_JR&Hv^8cjP^YNwf6vPRRENYADU zEgiUm!M`jGq67NilV@6zak9ZFW`pFJrd=%?EHky_nWo((YnW_m$umt`CTl1)wd9$m zog{0RWNOJXO9XDlrk1SHwX%lsrk1QBt@|O}rBYjB zYRMW++bp%?Of6ZXX=h9ASW`>ZXxeUh`Wqv(bih4_&XGyzfIg|nGc8H4Oj2w%NSM`}lyTK3Ex(5q5A+|-ga zTHdtO4l}i6ji$XUwJ}pm)@a%*Qu`q645&VCWR0dhE*HUlQ%lxp+H-OTyk~038cn-U zY6na$S)*wu$Z@-CYRMW+yFhC1m|C(%)83Wy_qM4eYcy?%%-e5j$r??2QhIjF)RHxt z_K>XMrl}=sH0?rJ!wpkQ)@a%ysqGV5I^cdDsa+Pw2i(?L1lU6;sP2>25yrrS`I^WzSsgBB|{$wPcM}!zfwr zB~we*Xxgb#dr@fVz$HwYBH17v&QReMd4Z8EF!gD}xkj&JQ z9FZe^-fWP})UAByevJ`{W2 zeJGaB`r(+~>>rMKo*s%l?|UfL9`;`qkoj6Kdt~M9X60nQrrjX5hfOV+uW1{k_K>M1 z^GSOi`^A0f^g&Zg=4;y1a_O|0S~6eL9+ov6FttYn(zL^*w$;>L_Ju$r??2P_CwZrk1QBt-Iy5%Nq8YTCzsd&Xb<)F|}lkrtOq@TTCrkqiK&x z?QT;`)@a(rQoGC4k~NwZk5YGsXxiJ--=wJ} zYc%Z`S;J;iOV()GiBh}C)RHxtc81h$G__<6X?w8V#>g>l5L!Cmp4Lvwj?e-9v__s~ zO0vO7a#1Fs19}oNQ%kZw`EdroTCnOZVa)1Ht$tT(k}rlvh9M|!QPB{Mbc z0qOD@Q_E($E+=FSt4%F?=4#8Ow$9X&HChc#vW8WrmaNgV6J_3&rk1SHwA*Cf6{eP~ z(X?me7}uIwvPRRk$h^xSP?SQOdnyDpgH0=bLcdDr+Yc%aWnRkk*C2KToz06x? zYRMW+dsb>En_9Alv{!Ma?UMU%si`GvH0>~{on&gs8cka%wQ*BR)@a&GvfhcNmaNgV zr=({SOf6ZXX*;BLys0H?G;N=(p~TdZHJbL6)Q&T?WR0esBz+ibYRMW+`#|O$V`|A7 zP1_~=R%~j?8cjQ2)-YOV>45tru~;@p2lNXe@=QyzS87L@4U%V?HYK$qO)Yt*X^UlX zMW&WKBdz;958ns$Zs?7pcbYc%b7S;IY3OV()GrLu+rQ%lxpT0B|4E3|aL_av7N=p7-?v?L>C zgLljZ$umuRLw5SMsU^=e?K-LLH?`!MroAY&w@fX0rfDxoGjEz&@{F|Cv0L7d+8d^p zJ#)3O$LM`NeWsSI(emDucMjK0Em@;!J7o>Mrk1SHv>T-l*Gw&0qiJu+ylGQQ)@a(z zGVfJWOV()Gq|{z9wPX!x-Ea9$lOIdFY--6GP1`HAJ*Jkd(X=&kPF^y#WR0d>ChNUu zYRMW+dsupQ!PJs9ns%0~q1)7wHJWy^)SfrBWR0fXEo(SuYRMW+yH9G*np(0((~g%u zbeUSRM$?Xz+B2q>tkJY>vWC;9maHMIyYCFhyr)bpS)*xpNo}X8C2KS-{!(_*)RHxt z_NuJ+gsCNKH0?fF!*Nqf){yol_L2uOZ-=QRYc%Z?nfI8fC2KV8A({86sU>Sj>;56` zlsriuF|}lkradFI?WUHj(X^+f_OPiXYc%a;*|$TcmaNgVcck{9sU>Sj>wdj(tz1KG zA@$+$LeE#+KPkU5y9b}~7YRi)eZ+LP2kK`#GL>4njZv(UtsF2bB2zW(Jz0ILsU=f2 z?Fs4Nep5@PYTCuJhLou#Q%QRl^)}1A`%EpFD*ndtoclM9=iCqe?)CnS<2m&=j;vp~ z?als`+vn(S9MAdw#<3^lzd-U1+pqHXqCbq6&aIYR-jjK7@%t^6avU9zKRXSV=wkaMXxlKDf<&r)BX_4ReP(N~%fqM9LYHA4#DC;z(C=B;Lk zTTNnawrb{yBbloiLe&iMRkO>e#+h>Nw=KL22A(dEp6)U|b*A4#;xHCF%{XT&J|u3T zY_Hjj+biNYlHaoMo1V8Uc;E7|y})z8`+mK11%L3g<;;=7y|S?#W@9vmK3vdf7h3;B zd&GJ<0k;dO7`hL*L-zsoR^`LqvHO5KcC}e&(#q^J=>s%&AMlOcwvfkwfG_^2S9P;> z{2~GUhmV}jc^dFqdDLs=$%nkEko?j2&=z4?1}nF@R=(f0^8M;3q>g&6e7|dDa(1?5 zuvHw%ybRt?R=(e7Wm67Tu9H?eb-%rpUeQBdP)#1_cI_rxocDQdb8aD@vzwjS_G!!c zld$-w{Qu9{PrbLGz`w=O3N7@;IcJ{$akN6UIOmKJAdXh37UwLc0CBX~0>#mJ3~#5x zE5VY&9NjOuBE9|2R!4?>n?*k2_`>giJY6!!mlpBDH0JnrA6}S7T(3(`?;Pvel%+1_ zXdiD?Bd)jKWXz*M__9&8ulJw0-cI8?X{RAeJIwWd64%?``cB&4pxW2lA+EQxWpM52 z^J#sSc8Kfk&=e28KJ>cRiFWjSG&Qw+k7rq@v<~p5!)CeH)vLPkBAi`{yL+Jji=dQc z2*3D3e-RBO)C;7!JLm#;$U@fo3&aa=9PT-l$*-symEqbFud!6A=zI?Y2iW*M$MaYl&8SPHOMs%kL-o{jttFhv=FKFCFp(@C?XyO_FUk zI7$4|l~!JWUbxe*a0plXX$&ad-de|f;u7&~Wz1to;xB-f2I`HVb(!YJ=c7-A|JJb69(ScKwPhzrmoh`lY#n6lO<3b z)q#x+F9Tj?_Ls(9%lA~EI%o*BxTgcftrR6_aYM4idF#jKv_$!fb&EMpT=$oTHrIBl zv$Vq;9h`J zj>~TcXPO=%?{G6)jIg$KpmWIbTC^S?FIOyhdR0UP2=mw z!fl?n_?~rN$h*R$Q`e(e7Vb$ms7gL_bdvi|STu9BPJSdyC#l$9mhZ<{DgXR4)y!96 zbbb)|rifr_M}H+9bN!Wc#PyAnChDO3vr6`-Otr5Mio=!F4;vKHDP_Pxp+@yi%ov=B zda;uO7E8Lp7V8B0XArF%&GC;*esrb3Q09`CKX6mkB zfi#h{7WW1Vj2kUx4Wz|^>&fl%LGl>0?=<3CCE^#?0`z@?QAyT7sswky_!XJaBAU4V zD>BS+r-R=~VU8Iu*y4Vc!Vc%~2_kc^R_C{{WkAB{{i<) zmo@$a?#Fdk`46}s=tiT3=nw1Xi@yqbAZ5ZBT&2! zCqUqNBT#&uEqG+twgnHQ^{rpg@5#$moYRVb-X1W@7OzAN(BIbJff@R{ zJ1_lpTJiUHzftz&VEs)656sZtoq6f6(~7^p`;4-u2kY-%BT&3RC&0v@Nv5q?@wWQ_ zfh|Uh;*ER(0%@4F7H0(u+-0;V-h&&UMKW4zQM~&$Kwz`cV%9*KMR?wYUt-xJqV@C6 z4kMv>?^S?Gwi|)sO_u=zw;6%rm6HJin~Xs5{>cD=jYgn&Gf05Itw!L2V1Z<`HooFp zxdB>C8ZBlGr14GSZfcgip;#xv^#R^&WE8In3{c7@BT&54B|zXtBT&4CFF;^J@IdPP zJ#>D$d=kG}gzKH(U}O~E<_=KGdLwX4us|9CZREvUp8~X4Z?u>-kUEb)F4Z_!(9Ui2 z3K2~lcOV<(gkbLb5iB~Oo3-{GRZ#1%V5zK(xvv5`pjWVFkQJb>_`$E`B3e&KQzF=C zc+Eq?WvWZQ(&>QSQr#d+_hnpa*1pQfDBklGU?#0J0>uw_1PG)#p}Cbcklgx3`B1q> zKFO&T%@W5SWar9d$s8Z`z3kEJCeoD1xq!u43Sh1mz#N|?zbn@abIh+b9iR5ID;SJQ*yo!Uz=a8w=3lOe0YIgh0kXT5ov5IY*vm z%0x7A-*3e60r#An@I>fKeuh!PnQSHKfzyKrQjOTnF3U4ZsjB^R@{}5r6%yAQDmNPH z3RdAXBk*jnz^TClyitP zh2DgvGT~?uttT9BBMyXi?y`z91;(j2$w5yv&1EW$6~xG_gLb(C&S)R zLwEcQ-I5Iv*Bgo%4T(2OW$zIlTU5)31GiN}ScA7^L(FlaZ1ixw0GbfmAP%O0et!XX zWJApL0*LDc+!rad0>t~QGCH6K-ZKKLg9Q!*52V?G3#ECoYd1u+UI|SgtqWNz$&j#5 zB=k<#4YDEPdP6jU2H%kQ^s{qEb=|C-Cd%Lw&XpDRnh9xu2ayod16{smCcGt(mQeg` zT*m3)^>CA{FfF2q-^atwxZDfqfNt*1LAK<}c-5?(rixa(coAjB+VxUs=(Rxc8rJ}U zG{jn<_?4mnfi#rC0=+hGl{Q~8`%XitC0rh?5*nFcf!<2C$Vx7lmC(Rw32TE@a>bYs zD}x1I4jP!Jk4@mi!RJhGdW=d}1?wV>xMr$&BU;9ZCSH&BKKGqo?<;&pzS-`$_my7n zb6@F|nv?C7UajIt=2v>Xk6!8ZzNhRbpQP1ZXBURP`1BdezfE5>I{VO?-{aQ&9=GOB zZ_V#UEbxpGxG7j5O)ssFo3jPd>~w!Je!e^j9~15Boj+xi zlFXdZe%p6Hs;^k%-IGVn);f*Wwq$D!mk|&9j`0!8`;CY!UkgxG;Z2%Okl%xo!K(`V z{aL(6v)yd%gwfj8%pSl2{VUCfMKq1A`(>G#PPB8e=^RkSJ2}*$WUz1E~dy_u2&rOo?7;f#Usi0Rs0052Vr2KXuz2 zWFLFS-=lL{@o#)IU9|qT1nVyizZSSBSYV4`)ZSo$yN$qo!2)*$52T@aMlPI2`K+kX zG;L>Y33thFGj25#(!gkDrh;{Chf#@mJz0S1y4?tD4Hme~2t1H2kj%t4zqiT_c9V!E zjt{CdDehiNWPEMpGko6akms;Mj`Yvzrrb*0B1_qrr9_7hwnTKAGU_`bO)71`1G$J2 z8*(niiS)Zg({T``VBnI{tqt17^)4Q!C;2+yY0q`Q5WI=B(GxCb1dn@`m!)Q(15OeC zUTq0F2L?N)n0D*UCX+^!Z4X@;PsnX%mvmxXrZLUX4B%1{@&L22~4PHSG9U=Q~Nb?uOKt@YQ1h8!NKE_9F5=ylPu%(<>LgKOWB`^Ssc z;vm|`!rLx=SuNUk9VpDQWZc!Z(-Y%gZP~}tX~JJKt+XIDyOr^(&fZR)*$yo)t(}9} z){;J`&NA{{zhwz@3-tc72Yw0%zk0LMEQ@A$kg^_CHV!m*w7|o`0%X}5Y>?xL;I)uowMCEje! z6924TWlWlfx9MDh&@0FH%SLP7zEMZwZe%ol01}oFQ(_tQBAzkR%fRBYCW2*R!VpZbGA!nTqp*@t)?)`!^S{2oToGW z=*=b7ihulQC1@T$yzVoo`>f2k;E~ns-3isZfKj*8iob4JF@vbveJj%yXH=Yrz?FHa z+iAsLH!YzY>b@xbo}ZVxomTvH)AAfd-R?WBPRqLI<)vOPJrI<ULW3*X?X%gYw(0`-rT2PG0JETJhISTTBjqr{#V! zJ1=!Rt@!JvEoKmPyFagfLi#-`FLgVu`0J)ECWpE^W!)8dsoQDAUpH+rgQ(kmY28s- z_sqQ1?X=>ro3@xi)b0M!^th~hMqcW6TJhISTg)Kpc7L$BL)JY#FLgVu`0J)ECWpF9 z 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

    +dJ2K=d}nu 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

    +dJ2K=d}nu)}rUZHADYvs`J|pXy^h0 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�(De-r2 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%0Dx9A$$<9SL3VW*|{Di9UZVKGA}kw}tMTlIU_s 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 z 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 k`Z@Ivv`U%z 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

  • O8xbN--2FwtJY`y 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 Q&*r_g_Fc#GddA5A0c~)E5dZ)H diff --git a/src/index.ts b/src/index.ts index 89997b667..ed277bf8c 100644 --- a/src/index.ts +++ b/src/index.ts @@ -966,6 +966,11 @@ export class CodeGraph { result.definitionDelta, result.changedFilePaths ?? [] ); + // A deleted duplicate module can make an HDL binding unique again. + // Deletion-only syncs skip the changed-file failed-ref retry above. + const hdlRetry = this.queries.getRetryableFailedReferences(result.definitionDelta) + .filter(ref => ref.referenceName.startsWith('hdl:wildcard:') || ref.referenceName.startsWith('hdl:port-position:')); + if (hdlRetry.length > 0) await this.resolver.resolveAndPersistListYielding(hdlRetry); if (process.env.CODEGRAPH_SYNTH_TIMINGS) { console.error( `[phase-timing] sync-rebind: ${Date.now() - tRebind}ms (${result.definitionDelta.length} changed names, ${rebound} edges re-opened)` diff --git a/src/mcp/server-instructions.ts b/src/mcp/server-instructions.ts index ddfd315b7..2de480cbf 100644 --- a/src/mcp/server-instructions.ts +++ b/src/mcp/server-instructions.ts @@ -60,7 +60,7 @@ calls; a grep/read exploration is dozens. ## Verilog / SystemVerilog -Query module and instance names to inspect hierarchy and the exact port-connection source. Ports/signals, generate scopes, modports and always/assign blocks are searchable. Query an instance-qualified connection such as top.u_rx1.rx to inspect its local expression and declared target port; an explicit empty connection still names a formal port but has no local endpoint. Bit/part-select references identify the base signal and indexed expressions, not evaluated widths. HDL references record syntactic signal use, not drive direction, timing or elaborated connectivity; wildcard connections and generate iterations are not expanded. Qualified package calls retain package identity. +Query module and instance names to inspect hierarchy and the exact port-connection source. Ports/signals, generate scopes, modports and always/assign blocks are searchable. Query an instance-qualified connection such as top.u_rx1.rx to inspect its local expression and declared target port; an explicit empty connection still names a formal port but has no local endpoint. Bit/part-select references identify the base signal and indexed expressions, not evaluated widths. HDL references record syntactic signal use, not drive direction, timing or elaborated connectivity; positional bindings require authoritative header order, and wildcard matches require known formal ports and unambiguous local signals (explicit connections take priority). Generate iterations are not expanded. Qualified package calls retain package identity. ## Anti-patterns diff --git a/src/resolution/index.ts b/src/resolution/index.ts index 16e988fa0..5c2ebc5a2 100644 --- a/src/resolution/index.ts +++ b/src/resolution/index.ts @@ -24,6 +24,7 @@ import { isVisibleCppMacro } from './cpp-macro-visibility'; import { isCppConstructorRef, matchCppConstructor } from './cpp-constructor'; import { isVerilogMemberRef, matchVerilogMember } from './verilog-members'; import { isVerilogPortRef, matchVerilogPort } from './verilog-ports'; +import { isVerilogWildcardRef, matchVerilogWildcard } from './verilog-wildcard'; import { resolveViaImport, resolvePhpImportedStaticCall, resolveJvmImport, extractImportMappings, extractReExports, loadCppIncludeDirs, isPhpIncludePathRef, isCobolCopybookRef, isNixPathImportRef, isBoundToOutOfRepoImport, clearImportResolverMemos, resolveImportPath } from './import-resolver'; import { ResolverPool, minRefsForPool } from './resolver-pool'; import { resolveAliasBinding } from './alias-binding'; @@ -901,6 +902,7 @@ export class ReferenceResolver { private resolveOneInner(ref: UnresolvedRef): ResolvedRef | null { if (isCppConstructorRef(ref)) return matchCppConstructor(ref, this.context); + if (isVerilogWildcardRef(ref)) return matchVerilogWildcard(ref, this.context, matchReference); if (isVerilogPortRef(ref)) return matchVerilogPort(ref, this.context, matchReference); if (isVerilogMemberRef(ref)) return matchVerilogMember(ref, this.context); // Skip built-in/external references diff --git a/src/resolution/name-matcher.ts b/src/resolution/name-matcher.ts index 6e97f0707..800bd456c 100644 --- a/src/resolution/name-matcher.ts +++ b/src/resolution/name-matcher.ts @@ -13,6 +13,7 @@ import { isVisibleCppMacro, clearCppMacroVisibility } from './cpp-macro-visibili import { isCppConstructorRef, matchCppConstructor } from './cpp-constructor'; import { isVerilogMemberRef, matchVerilogMember } from './verilog-members'; import { isVerilogPortRef, matchVerilogPort } from './verilog-ports'; +import { isVerilogWildcardRef, matchVerilogWildcard } from './verilog-wildcard'; /** * Ceiling on how many same-named definitions a FUZZY name-match strategy will @@ -3102,6 +3103,7 @@ export function matchReference( ): ResolvedRef | null { if (isVisibleCppMacro(ref, context)) return null; if (isCppConstructorRef(ref)) return matchCppConstructor(ref, context); + if (isVerilogWildcardRef(ref)) return matchVerilogWildcard(ref, context, matchReference); if (isVerilogPortRef(ref)) return matchVerilogPort(ref, context, matchReference); if (isVerilogMemberRef(ref)) return matchVerilogMember(ref, context); if (ref.language === 'verilog' && ref.referenceKind === 'instantiates' && !isVerilogSimPath(ref.filePath)) { diff --git a/src/resolution/verilog-ports.ts b/src/resolution/verilog-ports.ts index 0de5614b7..d6dbf5fe9 100644 --- a/src/resolution/verilog-ports.ts +++ b/src/resolution/verilog-ports.ts @@ -1,9 +1,11 @@ +import type { Node } from '../types'; import type { ResolutionContext, ResolvedRef, UnresolvedRef } from './types'; const PREFIX = 'hdl:port:'; +const POSITION_PREFIX = 'hdl:port-position:'; export function isVerilogPortRef(ref: UnresolvedRef): boolean { - return ref.language === 'verilog' && ref.referenceKind === 'references' && ref.referenceName.startsWith(PREFIX); + return ref.language === 'verilog' && ref.referenceKind === 'references' && (ref.referenceName.startsWith(PREFIX) || ref.referenceName.startsWith(POSITION_PREFIX)); } /** Bind a named source connection to the selected module's own declared port. @@ -15,10 +17,51 @@ export function matchVerilogPort( context: ResolutionContext, resolveModule: (ref: UnresolvedRef, context: ResolutionContext) => ResolvedRef | null, ): ResolvedRef | null { + const positional = ref.referenceName.startsWith(POSITION_PREFIX); let parts: unknown; - try { parts = JSON.parse(ref.referenceName.slice(PREFIX.length)); } catch { return null; } - if (!Array.isArray(parts) || parts.length !== 3 || !parts.every(p => typeof p === 'string' && p.length > 0)) return null; - const [moduleName, portName, instanceId] = parts as [string, string, string]; + try { parts = JSON.parse(ref.referenceName.slice(positional ? POSITION_PREFIX.length : PREFIX.length)); } catch { return null; } + if (!Array.isArray(parts)) return null; + let moduleName: string, instanceId: string, portName: string; + let position = -1, count = -1; + if (positional) { + if (parts.length !== 4 || typeof parts[0] !== 'string' || !parts[0] || typeof parts[3] !== 'string' || !parts[3] + || !Number.isSafeInteger(parts[1]) || !Number.isSafeInteger(parts[2]) || parts[1] < 0 || parts[2] <= parts[1]) return null; + [moduleName, position, count, instanceId] = parts as [string, number, number, string]; + portName = ''; + } else { + if (parts.length !== 3 || !parts.every(p => typeof p === 'string' && p.length > 0)) return null; + [moduleName, portName, instanceId] = parts as [string, string, string]; + } + const selected = selectVerilogModule(ref, context, resolveModule, moduleName, instanceId); + if (!selected) return null; + const module = selected.module; + if (positional) { + const tag = module.decorators?.find(d => d.startsWith('hdl:port-order:')); + let order: unknown; + try { order = tag && JSON.parse(tag.slice('hdl:port-order:'.length)); } catch { return null; } + if (!Array.isArray(order) || !order.every(n => typeof n === 'string') || count > order.length + || new Set(order.map(n => n.replace(/^\\/, ''))).size !== order.length) return null; + portName = order[position]!; + } + const canonicalPort = portName.replace(/^\\/, ''); + const names = [canonicalPort, `\\${canonicalPort}`]; + const ports = names.flatMap(name => context.getNodesByQualifiedName(`${module.qualifiedName}::${name}`)) + .filter(n => n.language === 'verilog' && n.filePath === module.filePath && n.kind === 'field' + && n.decorators?.includes('hdl:port') && n.startLine >= module.startLine && n.endLine <= module.endLine); + if (ports.length !== 1) return null; + return { original: ref, targetNodeId: ports[0]!.id, confidence: selected!.confidence, + resolvedBy: 'qualified-name', ...(positional ? { alsoTargets: [{ targetNodeId: module.id, metadata: { binding: 'hdl-positional-dependency', endpoint: 'module' } }] } : {}), + metadata: { binding: positional ? 'hdl-positional-port' : 'hdl-named-port', moduleId: module.id, instanceId, ...(positional ? { position, moduleName } : {}) } }; +} + +/** Shared selection for named, positional and wildcard source bindings. */ +export function selectVerilogModule( + ref: UnresolvedRef, + context: ResolutionContext, + resolveModule: (ref: UnresolvedRef, context: ResolutionContext) => ResolvedRef | null, + moduleName: string, + instanceId: string, +): { module: Node; confidence: number } | null { const instance = context.getNodeById?.(instanceId); if (!instance || instance.language !== 'verilog' || instance.kind !== 'variable' || instance.filePath !== ref.filePath) return null; const selected = resolveModule({ ...ref, fromNodeId: instance.id, referenceName: moduleName, @@ -46,10 +89,5 @@ export function matchVerilogPort( if (candidates.some(n => n.id !== module.id && score(n.filePath) >= score(module.filePath))) return null; if (context.getNodesByQualifiedName(module.qualifiedName).filter(n => n.filePath === module.filePath && n.language === 'verilog' && ['class', 'interface'].includes(n.kind)).length !== 1) return null; - const ports = context.getNodesByQualifiedName(`${module.qualifiedName}::${portName}`) - .filter(n => n.language === 'verilog' && n.filePath === module.filePath && n.kind === 'field' - && n.decorators?.includes('hdl:port') && n.startLine >= module.startLine && n.endLine <= module.endLine); - if (ports.length !== 1) return null; - return { original: ref, targetNodeId: ports[0]!.id, confidence: selected!.confidence, - resolvedBy: 'qualified-name', metadata: { binding: 'hdl-named-port', moduleId: module.id, instanceId } }; + return { module, confidence: selected!.confidence }; } diff --git a/src/resolution/verilog-wildcard.ts b/src/resolution/verilog-wildcard.ts new file mode 100644 index 000000000..fcce42c33 --- /dev/null +++ b/src/resolution/verilog-wildcard.ts @@ -0,0 +1,70 @@ +import type { Node } from '../types'; +import type { ResolutionContext, ResolvedRef, UnresolvedRef } from './types'; +import { selectVerilogModule } from './verilog-ports'; + +const PREFIX = 'hdl:wildcard:'; +export function isVerilogWildcardRef(ref: UnresolvedRef): boolean { + return ref.language === 'verilog' && ref.referenceKind === 'references' && ref.referenceName.startsWith(PREFIX); +} + +/** One source .* clause, with paired endpoints for only unambiguous source names. + * This records source correspondence, not elaborated nets or signal direction. */ +export function matchVerilogWildcard( + ref: UnresolvedRef, + context: ResolutionContext, + resolveModule: (ref: UnresolvedRef, context: ResolutionContext) => ResolvedRef | null, +): ResolvedRef | null { + let parts: unknown; + try { parts = JSON.parse(ref.referenceName.slice(PREFIX.length)); } catch { return null; } + if (!Array.isArray(parts) || parts.length !== 3 || typeof parts[0] !== 'string' || !parts[0] + || typeof parts[1] !== 'string' || !parts[1] || !Array.isArray(parts[2]) || !parts[2].every(n => typeof n === 'string')) return null; + const [moduleName, instanceId, exclusions] = parts as [string, string, string[]]; + const selected = selectVerilogModule(ref, context, resolveModule, moduleName, instanceId); + const instance = context.getNodeById?.(instanceId); + if (!selected || !instance) return null; + const module = selected.module; + const canonical = (name: string) => name.replace(/^\\/, ''); + const excluded = new Set(exclusions.map(canonical)); + const tag = module.decorators?.find(d => d.startsWith('hdl:port-order:')); + let order: unknown; + try { order = tag && JSON.parse(tag.slice('hdl:port-order:'.length)); } catch { order = null; } + // Non-ANSI alias/concatenation headers and unknown macro headers do not prove + // that an internal input declaration is an externally named formal port. + const names: string[] = Array.isArray(order) && order.every(n => typeof n === 'string' && canonical(n)) + && new Set(order.map(canonical)).size === order.length ? order.map(canonical) : []; + const declared = context.getNodesInFile(module.filePath).filter(n => n.language === 'verilog' + && n.kind === 'field' && n.decorators?.includes('hdl:port') + && n.qualifiedName === `${module.qualifiedName}::${n.name}` + && n.startLine >= module.startLine && n.endLine <= module.endLine); + const formals = names.flatMap(name => { + const matches = declared.filter(n => canonical(n.name) === name); + return matches.length === 1 ? matches : []; + }); + const scopes = instance.qualifiedName.split('::').slice(0, -1); + const localSignal = (name: string): Node | null => { + for (let i = scopes.length; i > 0; i--) { + const matches = [name, `\\${name}`].flatMap(n => context.getNodesByQualifiedName(`${scopes.slice(0, i).join('::')}::${n}`)) + .filter(n => n.language === 'verilog' && n.filePath === ref.filePath); + if (!matches.length) continue; + // Any nearer declaration shadows the outer scope; unsupported declarations + // and duplicates must not silently become the outer signal. + return matches.length === 1 && matches[0]!.kind === 'field' + && matches[0]!.decorators?.some(d => d === 'hdl:port' || d === 'hdl:signal') ? matches[0]! : null; + } + return null; + }; + const targets: { targetNodeId: string; metadata: Record }[] = []; + for (const formal of formals) { + const name = canonical(formal.name); + if (excluded.has(name) || formals.filter(n => canonical(n.name) === name).length !== 1) continue; + const local = localSignal(name); + if (!local) continue; + const metadata = { binding: 'hdl-wildcard-port', moduleId: module.id, instanceId, + formalNodeId: formal.id, portName: formal.name }; + targets.push({ targetNodeId: formal.id, metadata: { ...metadata, endpoint: 'formal' } }, + { targetNodeId: local.id, metadata: { ...metadata, endpoint: 'actual' } }); + } + return { original: ref, targetNodeId: module.id, confidence: selected.confidence, + resolvedBy: 'qualified-name', metadata: { binding: 'hdl-wildcard-dependency', endpoint: 'module', moduleId: module.id, instanceId }, + alsoTargets: targets }; +} From 545b083fc61118cd680099504a036658545b260d Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 14:47:19 +0300 Subject: [PATCH 15/23] =?UTF-8?q?fix:=20=D1=83=D1=82=D0=BE=D1=87=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20HDL=20scopes=20=D0=B8=20=D1=81=D0=BE=D1=85?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D0=B8=D1=82=D1=8C=20=D0=BA=D0=BE=D0=BD=D1=82?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D1=82=20=D0=BF=D1=80=D0=B8=20=D0=BF=D0=BE?= =?UTF-8?q?=D0=B2=D1=82=D0=BE=D1=80=D0=BD=D0=BE=D0=B9=20=D0=B8=D0=BD=D0=B4?= =?UTF-8?q?=D0=B5=D0=BA=D1=81=D0=B0=D1=86=D0=B8=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + README.md | 2 +- __tests__/verilog-call-scope.test.ts | 53 ++++++++ __tests__/verilog-generate-scopes.test.ts | 88 +++++++++++++ __tests__/verilog-scopes.test.ts | 84 ++++++++++++ __tests__/verilog-signals.test.ts | 16 ++- docs/hdl-roadmap.md | 124 +++++++++++++++-- docs/validation-hdl-parse-gaps-2026-09-12.md | 132 +++++++++++++++++++ docs/validation-hdl-scopes-2026-09-12.md | 59 +++++++++ src/extraction/extraction-version.ts | 2 +- src/extraction/index.ts | 7 +- src/extraction/languages/verilog-generate.ts | 33 +++++ src/extraction/languages/verilog-packages.ts | 7 +- src/extraction/languages/verilog-signals.ts | 75 ++++++++--- src/extraction/languages/verilog.ts | 22 +++- src/mcp/server-instructions.ts | 2 +- src/resolution/index.ts | 5 + src/resolution/verilog-members.ts | 35 +++-- 18 files changed, 692 insertions(+), 56 deletions(-) create mode 100644 __tests__/verilog-call-scope.test.ts create mode 100644 __tests__/verilog-generate-scopes.test.ts create mode 100644 __tests__/verilog-scopes.test.ts create mode 100644 docs/validation-hdl-parse-gaps-2026-09-12.md create mode 100644 docs/validation-hdl-scopes-2026-09-12.md create mode 100644 src/extraction/languages/verilog-generate.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index faa5c2191..4d0d592b4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -145,6 +145,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- HDL: точные procedural scopes, formal parameters и generate template declarations сохраняют локальные связи; исправлены defaults/for initializer calls, приоритет block imports и qualified cross-file replay после sync. + - HDL: позиционные подключения следуют порядку ANSI/non-ANSI заголовка; `.*` учитывает явные подключения и локальную область видимости. Sync пересчитывает весь набор связей при изменении заголовка или удалении дубликата модуля. Grammar обновлена до tree-sitter-systemverilog 0.4.0 после сравнения 137 реальных HDL-файлов. - HDL: именованные подключения имеют отдельные переходы к формальным портам выбранного модуля и локальным сигналам; LHS bit/part selects и concatenations больше не теряют основания и индексы. Неоднозначные module declarations не дают предполагаемую formal binding. diff --git a/README.md b/README.md index a1d2077f3..bc4acf501 100644 --- a/README.md +++ b/README.md @@ -892,7 +892,7 @@ is written): | Astro | `.astro` | Full support (frontmatter + script extraction, template component/call references, `src/pages/` routes) | | Liquid | `.liquid` | Full support | | Pascal / Delphi | `.pas`, `.dpr`, `.dpk`, `.lpr` | Full support (classes, records, interfaces, enums, DFM/FMX form files) | -| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, generate scopes, порты/сигналы и named/positional/wildcard port bindings, bit/part selects, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | +| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, lexical/generate scopes и formal parameters, порты/сигналы и named/positional/wildcard port bindings, bit/part selects, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | | Lua | `.lua` | Full support (functions, methods with receivers, local variables, `require` imports, call edges) | | R | `.R` `.r` | Full support (functions in every assignment form, S4/R5/R6 classes with methods, `library`/`require` imports, `source()` file references, call edges) | | Luau | `.luau` | Full support (everything in Lua, plus `type`/`export type` aliases, typed signatures, and Roblox instance-path `require`) | diff --git a/__tests__/verilog-call-scope.test.ts b/__tests__/verilog-call-scope.test.ts new file mode 100644 index 000000000..3e4f1247e --- /dev/null +++ b/__tests__/verilog-call-scope.test.ts @@ -0,0 +1,53 @@ +import { it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; + +it('retains callable owners and block imports when package definitions change through sync', async () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-call-scope-')); + let cg: CodeGraph | undefined; + const pkg = 'package p; function int run(); return 1; endfunction endpackage\npackage q; function int run(); return 2; endfunction endpackage'; + try { + fs.writeFileSync(path.join(root, 'pkg.sv'), pkg); + fs.writeFileSync(path.join(root, 'top.sv'), `module top; +function int f(); begin : chosen import p::*; f = run(); end endfunction +function int g(); begin : other import q::*; g = run(); end endfunction +initial begin : direct p::run(); end +endmodule`); + cg = CodeGraph.initSync(root); + expect((await cg.indexAll()).success).toBe(true); + const calls = () => (cg as any).db.db.prepare("SELECT s.qualified_name source,t.qualified_name target FROM edges e JOIN nodes s ON s.id=e.source JOIN nodes t ON t.id=e.target WHERE e.kind='calls' ORDER BY source,target").all(); + const before = calls(); + expect(before).toEqual([ + { source: 'top::f', target: 'p::run' }, + { source: 'top::g', target: 'q::run' }, + { source: 'top::initial@4:0', target: 'p::run' }, + ]); + fs.writeFileSync(path.join(root, 'pkg.sv'), '// move declarations\n' + pkg); + await cg.sync(); + expect(calls()).toEqual(before); + fs.writeFileSync(path.join(root, 'pkg.sv'), pkg.replace('int run()', 'int renamed()')); + await cg.sync(); + expect(calls()).toEqual([{ source: 'top::g', target: 'q::run' }]); + fs.writeFileSync(path.join(root, 'pkg.sv'), pkg); + await cg.sync(); + expect(calls()).toEqual(before); + await cg.indexAll(); + expect(calls()).toEqual(before); + } finally { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); } +}); + +it.each(['import p::*;', 'function int run(); return 1; endfunction'])( + 'prefers an inner package import over outer declarations: %s', async outer => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-import-shadow-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'pkg.sv'), 'package p; function int run(); return 1; endfunction endpackage\npackage q; function int run(); return 2; endfunction endpackage'); + fs.writeFileSync(path.join(root, 'top.sv'), `module top; ${outer} initial begin : local_scope import q::*; $display(run()); end endmodule`); + cg = CodeGraph.initSync(root); + await cg.indexAll(); + const calls = (cg as any).db.db.prepare("SELECT t.qualified_name target FROM edges e JOIN nodes t ON t.id=e.target WHERE e.kind='calls'").all(); + expect(calls).toEqual([{ target: 'q::run' }]); + } finally { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); } + }); diff --git a/__tests__/verilog-generate-scopes.test.ts b/__tests__/verilog-generate-scopes.test.ts new file mode 100644 index 000000000..0a934e949 --- /dev/null +++ b/__tests__/verilog-generate-scopes.test.ts @@ -0,0 +1,88 @@ +import { it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; + +async function graph(source: string, check: (cg: CodeGraph, root: string) => void | Promise) { + const root = fs.mkdtempSync(path.join(os.tmpdir(),'hdl-generate-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root,'top.sv'),source); + cg = CodeGraph.initSync(root); expect((await cg.indexAll()).success).toBe(true); + await check(cg,root); + } finally { cg?.close(); fs.rmSync(root,{recursive:true,force:true}); } +} +function targets(cg: CodeGraph, name: string) { + const source = cg.getNodesByName(name).find(n => n.kind === 'variable')!; + return cg.getCallees(source.id).filter(e => e.edge.kind === 'references').map(e => e.node.qualifiedName).sort(); +} + +it('binds inline iteration templates in nested and sibling generate scopes instead of outer ports', async () => { + await graph(`module leaf(input i); endmodule +module top(input i); +for(genvar i=0;i<2;i++) begin: outer + leaf a(.i(i)); + for(genvar i=0;i<3;i++) begin: inner leaf b(.i); end +end +for(genvar i=0;i<4;i++) begin: sibling leaf c(i); end +leaf outside(i); +endmodule`, cg => { + expect(targets(cg,'a')).toEqual(['top::outer::i']); + expect(targets(cg,'b')).toEqual(['top::outer::inner::i']); + expect(targets(cg,'c')).toEqual(['top::sibling::i']); + expect(targets(cg,'outside')).toEqual(['top::i']); + const iterations = cg.getNodesByName('i').filter(n => n.decorators?.includes('hdl:generate-parameter')); + expect(iterations).toHaveLength(3); + expect(new Set(iterations.map(n => n.id)).size).toBe(3); + expect(iterations.every(n => n.kind === 'constant' && n.decorators?.includes('hdl:template'))).toBe(true); + }); +}); + +it('separates predeclared genvars from their per-loop templates and retains anonymous scope identities', async () => { + await graph(`module leaf(input p); endmodule +module top; +genvar i,j; +for(i=0;i<2;i++) leaf a(i); +for(i=0;i<3;i++) leaf b(i); +endmodule`, async cg => { + const declared = cg.getNodesByName('i').filter(n => n.decorators?.includes('hdl:genvar')); + expect(declared.map(n => n.qualifiedName)).toEqual(['top::i']); + const a = targets(cg,'a'), b = targets(cg,'b'); + expect(a[0]).toMatch(/^top::generate@4:\d+::i$/); + expect(b[0]).toMatch(/^top::generate@5:\d+::i$/); + expect(a).not.toEqual(b); + const before = cg.getNodesByName('i').map(n => n.id).sort(); + await cg.indexAll(); + expect(cg.getNodesByName('i').map(n => n.id).sort()).toEqual(before); + }); +}); + +it('keeps references on declarations and assignment expressions in the nearest generated template scope', async () => { + await graph(`module top(input i, output wire[3:0] out); +for(genvar i=0;i<4;i++) begin: lanes +wire local_sig = i; +assign out[i] = local_sig; +end +endmodule`, cg => { + const local = cg.getNodesByName('local_sig')[0]!; + expect(cg.getCallees(local.id).filter(e => e.edge.kind === 'references').map(e => e.node.qualifiedName)).toEqual(['top::lanes::i']); + const db=(cg as any).db.db; + const wrong = db.prepare("select count(*) n from edges e join nodes s on s.id=e.source join nodes t on t.id=e.target where e.kind='references' and s.qualified_name like 'top::lanes::%' and t.qualified_name='top::i'").get(); + expect(wrong.n).toBe(0); + }); +}); + +it('converges sync and clean indexing after a generate variable and scope rename', async () => { + const initial = 'module leaf(input p); endmodule module top; for(genvar i=0;i<2;i++) begin: lanes leaf u(i); end endmodule'; + await graph(initial, async (cg,root) => { + const changed = initial.replace(/genvar i=0;i<2;i\+\+/, 'genvar j=0;j<3;j++').replace('lanes leaf u(i)', 'channels leaf u(j)'); + fs.writeFileSync(path.join(root,'top.sv'),changed); + expect((await cg.sync()).filesModified).toBe(1); + expect(targets(cg,'u')).toEqual(['top::channels::j']); + const snapshot = () => (cg as any).db.db.prepare("select s.qualified_name source,t.qualified_name target,e.kind kind from edges e join nodes s on s.id=e.source join nodes t on t.id=e.target order by source,target,kind").all(); + const synced = snapshot(); + await cg.indexAll(); + expect(snapshot()).toEqual(synced); + }); +}); diff --git a/__tests__/verilog-scopes.test.ts b/__tests__/verilog-scopes.test.ts new file mode 100644 index 000000000..67e882ffb --- /dev/null +++ b/__tests__/verilog-scopes.test.ts @@ -0,0 +1,84 @@ +import { afterEach, beforeEach, expect, it } from 'vitest'; +import fs from 'node:fs'; import os from 'node:os'; import path from 'node:path'; +import { CodeGraph } from '../src'; +let root:string; let cg:CodeGraph|undefined; +beforeEach(()=>{root=fs.mkdtempSync(path.join(os.tmpdir(),'hdl-scopes-'));}); +afterEach(()=>{cg?.close();cg=undefined;fs.rmSync(root,{recursive:true,force:true});}); +const rows=()=> (cg as any).db.db.prepare(`SELECT s.qualified_name source,t.qualified_name target,e.line line FROM edges e JOIN nodes s ON s.id=e.source JOIN nodes t ON t.id=e.target WHERE e.kind='references' AND json_extract(e.metadata,'$.refName') LIKE 'hdl:signal:%' ORDER BY source,target,line`).all() as {source:string,target:string,line:number}[]; +const code=`module crc(input clk, input feedback, output logic [15:0] crc); +always @(posedge clk) begin : update + crc[0] <= feedback; + begin : inner + logic feedback; + feedback = crc[15]; + crc[1] <= feedback; + end + begin : sibling + crc[2] <= feedback; + end +end +endmodule`; +it('binds nested shadows in their own scope and keeps outer/sibling uses',async()=>{ + fs.writeFileSync(path.join(root,'crc.sv'),code);cg=CodeGraph.initSync(root);await cg.indexAll(); + const refs=rows().filter(r=>r.target.endsWith('::feedback')); + expect(refs.filter(r=>r.line===3).map(r=>r.target)).toEqual(['crc::feedback']); + expect(refs.filter(r=>r.line===7).map(r=>r.target)).toEqual(['crc::always@2:0::update::inner::feedback']); + expect(refs.filter(r=>r.line===10).map(r=>r.target)).toEqual(['crc::feedback']); +}); +it('keeps anonymous siblings and for/foreach bindings distinct',async()=>{ + fs.writeFileSync(path.join(root,'uart.sv'),`module uart(input i, input j, input data); logic [7:0] bits; +initial begin + begin integer count; count=1; end + begin integer count; count=2; end + for(int i=0;i<8;i++) bits[i]=data; + foreach(bits[j]) bits[j]=data; + bits[i]=data; +end endmodule`);cg=CodeGraph.initSync(root);await cg.indexAll(); + const counts=cg.getNodesByName('count');expect(counts).toHaveLength(2);expect(new Set(counts.map(n=>n.qualifiedName)).size).toBe(2); + const refs=rows();expect(refs.filter(r=>r.line===5&&r.target.endsWith('::i')).every(r=>r.target.includes('::for@'))).toBe(true); + expect(refs.filter(r=>r.line===5&&r.target.endsWith('::i')).length).toBeGreaterThan(0); + expect(refs.filter(r=>r.line===6&&r.target.endsWith('::j')).every(r=>r.target.includes('::foreach@'))).toBe(true); + expect(refs.filter(r=>r.line===7&&r.target.endsWith('::i')).map(r=>r.target)).toEqual(['uart::i']); +}); +it('rebinds a removed local shadow identically on sync and full rebuild',async()=>{ + const file=path.join(root,'crc.sv');fs.writeFileSync(file,code);cg=CodeGraph.initSync(root);await cg.indexAll(); + fs.writeFileSync(file,code.replace(' logic feedback;',' // feedback now belongs to module')); + await cg.sync();const synced=rows();await cg.indexAll();expect(rows()).toEqual(synced); + expect(synced.filter(r=>r.line===7&&r.target.endsWith('::feedback')).map(r=>r.target)).toEqual(['crc::feedback']); +}); +it('models function/task formal ports and preserves function call owners inside blocks',async()=>{ + fs.writeFileSync(path.join(root,'functions.sv'),`module m(input x); +function int g(input int x); return x; endfunction +function int f(input int x); + begin : work + f = g(x); + end +endfunction +task t; input x; begin x=x; end endtask +endmodule`);cg=CodeGraph.initSync(root);await cg.indexAll(); + const refs=rows();expect(refs.filter(r=>r.line===5&&r.target.endsWith('::x')).map(r=>r.target)).toEqual(['m::f::x']); + expect(refs.filter(r=>r.line===8&&r.target.endsWith('::x')).every(r=>r.target==='m::t::x')).toBe(true); + expect(refs.filter(r=>r.line===8&&r.target.endsWith('::x')).length).toBeGreaterThan(0); + const f=cg.getNodesByName('f').find(n=>n.kind==='function')!; + expect(cg.getCallees(f.id).filter(e=>e.edge.kind==='calls').map(e=>e.node.qualifiedName)).toContain('m::g'); +}); +it('keeps calls and signal dependencies in formal defaults and loop initializers',async()=>{ + fs.writeFileSync(path.join(root,'defaults.sv'),`module m(input seed); +function int g(); return 1; endfunction +function int f(input int x=g(), input int y=seed); return x+y; endfunction +initial for(int i=g();i<3;i++) $display(i); +endmodule`);cg=CodeGraph.initSync(root);await cg.indexAll(); + const f=cg.getNodesByName('f').find(n=>n.kind==='function')!; + const initial=cg.getNodesByName('initial@4:0')[0]!; + const callees=(id:string)=>cg!.getCallees(id).filter(e=>e.edge.kind==='calls').map(e=>e.node.qualifiedName); + expect(callees(f.id)).toEqual(['m::g']);expect(callees(initial.id)).toEqual(['m::g']); + expect(rows().filter(r=>r.source==='m::f::y').map(r=>r.target)).toEqual(['m::seed']); +}); +it('does not invent outer bindings from a loop with recovered declaration syntax',async()=>{ + fs.writeFileSync(path.join(root,'recovery.sv'),`module m(input j); +initial for(int i=0,j=0;i<3;i++) $display(j); +initial $display(j); +endmodule`);cg=CodeGraph.initSync(root);await cg.indexAll(); + expect(rows().filter(r=>r.line===2&&r.target==='m::j')).toEqual([]); + expect(rows().filter(r=>r.line===3&&r.target==='m::j').length).toBeGreaterThan(0); +}); diff --git a/__tests__/verilog-signals.test.ts b/__tests__/verilog-signals.test.ts index cb42aba57..58076e3fe 100644 --- a/__tests__/verilog-signals.test.ts +++ b/__tests__/verilog-signals.test.ts @@ -45,7 +45,10 @@ endmodule`; it('does not bind a block-local shadow to a module signal', () => { const result = extractFromSource('shadow.sv', 'module top; logic x,y; initial begin logic x; x = y; end endmodule'); - expect(result.unresolvedReferences.filter(r => r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName)).toEqual(['hdl:signal:y']); + const local = result.nodes.find(n => n.name === 'x' && n.qualifiedName.includes('::block@'))!; + const refs = result.unresolvedReferences.filter(r => r.referenceName.startsWith('hdl:signal:')); + expect(refs.map(r => r.referenceName)).toEqual(['hdl:signal:x', 'hdl:signal:y']); + expect(result.nodes.find(n => n.id === refs[0].fromNodeId)?.qualifiedName).toBe(local.qualifiedName.split('::').slice(0, -1).join('::')); }); it('merges non-ANSI reg redeclarations and indexes initializer dependencies', () => { @@ -62,8 +65,9 @@ leaf outside(.a(i)); endmodule`); const inside = result.nodes.find(n => n.name === 'u')!; const outside = result.nodes.find(n => n.name === 'outside')!; const shorthand = result.nodes.find(n => n.name === 'short')!; - expect(result.unresolvedReferences.filter(r => r.fromNodeId === shorthand.id).map(r => r.referenceName)).not.toContain('hdl:signal:i'); - expect(result.unresolvedReferences.filter(r => r.fromNodeId === inside.id && r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName)).toEqual(['hdl:signal:x']); + expect(result.nodes.find(n => n.qualifiedName === 'top::lanes::i')?.decorators).toContain('hdl:generate-parameter'); + expect(result.unresolvedReferences.filter(r => r.fromNodeId === shorthand.id).map(r => r.referenceName)).toContain('hdl:signal:i'); + expect(result.unresolvedReferences.filter(r => r.fromNodeId === inside.id && r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName)).toEqual(['hdl:signal:i', 'hdl:signal:x']); expect(result.unresolvedReferences.filter(r => r.fromNodeId === outside.id).map(r => r.referenceName)).toContain('hdl:signal:i'); }); @@ -112,8 +116,10 @@ initial for (int i=0;i<4;i++) x[i]=y; initial foreach (x[j]) x[j]=y; endmodule`); const refs = result.unresolvedReferences.filter(r => r.referenceName.startsWith('hdl:signal:')).map(r => r.referenceName); - expect(refs).not.toContain('hdl:signal:i'); - expect(refs).not.toContain('hdl:signal:j'); + expect(result.nodes.some(n => n.name === 'i' && n.qualifiedName.includes('::for@'))).toBe(true); + expect(result.nodes.some(n => n.name === 'j' && n.qualifiedName.includes('::foreach@'))).toBe(true); + expect(refs).toContain('hdl:signal:i'); + expect(refs).toContain('hdl:signal:j'); expect(refs).toContain('hdl:signal:x'); expect(refs).toContain('hdl:signal:y'); }); diff --git a/docs/hdl-roadmap.md b/docs/hdl-roadmap.md index f8860be05..d294ac8ea 100644 --- a/docs/hdl-roadmap.md +++ b/docs/hdl-roadmap.md @@ -20,14 +20,120 @@ сигнале; explicit connections имеют приоритет, unknown остаётся unknown. - tree-sitter-systemverilog 0.4.0: проверка ABI, реальных корпусов и современных конструкций. -## Последующие пакеты +## План после 4d97bb29 -- Procedural block scope и generate bindings как отдельные объявления; - затем классификация syntactic read/write с отрицательными controls. -- Filelists/include paths/defines как явная конфигурация проекта, чтобы - различать synthesis/testbench варианты по доказательству сборки. -- Полная elaboration/width evaluation и интеграция с HDL-компилятором — - отдельный дизайн; не смешивать синтаксический граф с timing/CDC анализом. +База: grammar 0.4.0, extraction stamp 35, named/positional/wildcard bindings. +Статус этапов отмечен ниже. Очерёдность учитывает +зависимости: scopes нужны до read/write, build context — до elaboration. -Для каждого пакета: сначала воспроизводимый пропуск/ложная связь, затем fix, -проверка на реальном RTL, обновление extraction stamp при изменении графа. +### 1. Уточнить текущие ограничения и закрыть локальные scopes — реализовано + +Польза: имя i/x ведёт к правильному объявлению; локальная переменная во +вложенном блоке не скрывает одноимённый сигнал во всём always. + +- Разобрать 7 оставшихся ERROR на 137 HDL-файлах: синтаксическая ошибка, + отсутствие preprocessing context или пробел grammar/extractor. Сохранить + минимальные воспроизведения; исправлять только подтверждённые дефекты. +- Отдельные scopes для begin/end, fork/join, for/foreach и function/task; + различать объявления в соседних блоках и время их видимости. +- Genvar и соответствующее имя внутри generate-body представить как + декларации шаблона, без подстановки выдуманных iteration values. +- Убрать подавление имени на весь process там, где доступна точная область. + +Приёмка: nested/sibling scopes, shadow внутри/снаружи цикла, escaped names, +same-line declarations и stable IDs; sync после перемещения объявления даёт +те же связи, что clean rebuild. Реальные UART/CRC/AXI-control examples. + +### 2. Разделить синтаксические reads, writes и control dependencies + +Польза: ответить, какой блок читает сигнал и где код присваивает ему значение. + +- LHS/RHS blocking и nonblocking assignments; assign, compound assignments, + increment/decrement, concatenations и bit/part selects. +- В x[i] = y запись относится к x; чтения — к i и y. Условия if/case/loops, + RHS и event controls сохраняются раздельно. +- Function/task аргументы классифицировать по известным направлениям; + при неизвестной сигнатуре сохранять обычную reference. +- Добавить фильтры/объяснения в существующий query/MCP путь и синхронизировать + server instructions. Форма хранения (edge metadata или новые kinds) + выбирается после проверки API/wire/schema совместимости. + +Приёмка: ручная таблица ожидаемых доступов для небольших настоящих блоков +UART и eMMC CRC; отрицательные controls для package/member/индексов; запросы +по сигналам показывают исходные строки и тип использования. Не называть это +доказательством электрического драйвера, latch или race. + +### 3. Явный контекст HDL-сборки + +Польза: различать synthesis/testbench и условные варианты без выбора по имени +директории там, где проект предоставляет точный состав сборки. + +- Именованные profiles: source files/filelists, include directories, defines, + top modules и language mode. Определить минимальный поддерживаемый формат. +- Отразить происхождение профиля и активный профиль в status/query. +- Учитывать include dependencies и условную компиляцию с mapping к исходным + файлам; unsupported directives возвращают явную неизвестность. +- Изменение define/include/filelist инвалидирует зависимую часть графа. + Зафиксировать профиль в fingerprint индекса, чтобы состояния не смешивались. + +Приёмка: один RTL-корпус под двумя profiles с разными ветками и одинаковыми +именами модулей; смена профиля и изменение включаемого header сходятся с +clean rebuild. Измерить время/объём повторной индексации. + +### 4. Семантический слой через HDL-компилятор + +Польза: точные parameter overrides, widths/types и elaborated instances. + +- Сначала сравнительный прототип доступных HDL frontends на наших корпусах: + AST/semantic export, source mapping, охват конструкций, стоимость запуска. +- Выбрать адаптер по результатам; source graph сохраняется независимо от + доступности и успешности компилятора. +- Начальный объём: parameters/localparams, packed/unpacked dimensions, + typedef/struct/enum и generate conditions/iterations. +- Различать instance-specific значения и исходную декларацию. Результат + должен содержать provenance: frontend/version/profile/source revision. + +Приёмка: сверка типов, ширин и instance paths с выводом frontend на UART, +CRC и параметризованном AXI; отдельные случаи unknown/external definitions. +Изменение параметра через sync не оставляет старый elaborated result. +Не строить собственный полный HDL-компилятор внутри extractor. + +### 5. Сквозные пути сигналов и полезные инженерные запросы + +Зависит от этапов 2–4. + +- Путь signal → expression/port → instance → formal signal с направлениями, + подтверждёнными декларациями и профилем. +- Учитывать slices/concatenations, interface/modport и instance-specific + параметры в пределах подтверждённой семантики. +- Показывать неизвестный участок пути и доказательства каждого перехода. +- Примеры приёмки: UART RX до FIFO, вход CRC до crc_out, AXI valid/ready + через wrapper. Сравнить ответы с ручной трассировкой реальных исходников. + +Timing, CDC/RDC, гонки и аппаратную корректность не выводить из такого графа: +для них нужен отдельный анализ и отдельные проверяемые требования. + +### 6. Verification-конструкции SystemVerilog + +После RTL-навигации: property/sequence/assert/cover, clocking blocks, +bind и связи DUT↔testbench. Затем оценить необходимость class/UVM dispatch +по реальным проектам, а не по общему списку возможностей стандарта. + +Приёмка: находить assertion/coverage, относящиеся к выбранному RTL-сигналу, +со ссылками на исходные конструкции. Не заявлять formal proof по AST. + +## Проверки и порядок поставки + +- Этап 1 реализован; отчёты validation-hdl-scopes-2026-09-12.md и + validation-hdl-parse-gaps-2026-09-12.md. Следующий пакет реализации — этап 2. +- Для каждого пакета: failing regression → исправление → независимое review + → focused tests → реальные corpus queries и sync/rebuild comparison. +- Полные native/WASM suites при изменениях общих extraction/resolution/storage + путей; build и проверка доставки assets. Не повторять широкий прогон после + успешного результата без новой причины. +- Обновлять extraction stamp и используемые индексы, когда меняется граф; + фиксировать проверки и ограничения в отдельном validation report. +- Поставлять логическими коммитами; push/PR update — в рамках согласованной + реализации. Проверять одинаковый SHA во всех запрошенных remote. +- Для новых возможностей стандарта вести таблицу: parse / extract / resolve / + query / проверенный пример. Версия grammar не равна полному охвату стандарта. diff --git a/docs/validation-hdl-parse-gaps-2026-09-12.md b/docs/validation-hdl-parse-gaps-2026-09-12.md new file mode 100644 index 000000000..5749246c4 --- /dev/null +++ b/docs/validation-hdl-parse-gaps-2026-09-12.md @@ -0,0 +1,132 @@ +# Остаточные ошибки разбора HDL: 2026-09-12 + +Все **7 `ERROR` в 2 файлах** из корпуса 137 HDL-файлов связаны с обработкой +исходного текста до препроцессора. Невалидность RTL этими ошибками не доказана. +Шесть ошибок исчезают после настоящего препроцессора на полном исходном файле; +седьмая воспроизведена и устранена препроцессором на минимальном валидном примере. +Полная сборка AXI и аппаратная проверка в этот аудит не входят. + +## Объект проверки + +- Корпус: `dual-uart` — 11 файлов, `card-reader` — 33, `axi` — 93. + В первых двух проектах `ERROR` и `MISSING` отсутствуют по сохранённому сравнению + `.scratch/grammar-v040/compare.json` от 2026-09-12. +- AXI revision: `da8793b0e3f14c9186c94fac9ed6ec06375c254e`. +- Грамматика: `tree-sitter-systemverilog` v0.4.0, release commit + `aa09b9004478cea0f46d877608910dc153b277b6`, ABI 15. +- SHA-256 WASM: `52e470eacf2a87af5056fe054c081d4495d1da72f5d0a9bb0d431e111ee8f235`. +- Node `v24.15.0`, `web-tree-sitter` `0.25.10`, запуск с `--liftoff-only`. +- Компилятор контрольных примеров: `Verilator 5.051 devel rev v5.050-260-g1c9a9e0cc (mod)` + из OSS CAD Suite 20260825. + +Старая и новая грамматики дают одинаковые 7 `ERROR`, `MISSING` — 0. +В этом аудите повторно разобраны оба проблемных исходника новой грамматикой; +их SHA-256 совпадают с исходным сравнением: + +| Файл AXI | SHA-256 | +| --- | --- | +| `src/axi_demux_simple.sv` | `f0beea644e9b4721046e27fb1179e9a1f481a1767a52092fe5ee7a1b3d287d08` | +| `src/axi_interleaved_xbar.sv` | `c3673eab4a89a5c9395d75630e959c5fda383653a21d0970d2347a25f80c8959` | + +## Классификация всех семи ERROR + +Номера строк — 1-based, в исходном AXI checkout. + +| Файл и строки | Ошибочный фрагмент AST | Причина и проверка | +| --- | --- | --- | +| `axi_demux_simple.sv:510` | `>` в `ASSUME(... |-> ...)` | Макроаргумент содержит property expression. Грамматика пытается разобрать его до раскрытия макроса. Минимальный пример ниже точно повторяет `ERROR >`; после `-E` AST чистый, Verilator lint проходит. | +| `axi_interleaved_xbar.sv:54–55` | директива `else` перед `input logic` | Альтернативные ANSI-порты внутри `ifdef VCS`. Обе отдельные конфигурации полного файла успешно препроцессируются и разбираются. | +| `axi_interleaved_xbar.sv:55–56` | `default_mst_port_i` и `endif` | Продолжение той же условной декларации порта; отдельного дефекта RTL не установлено. | +| `axi_interleaved_xbar.sv:323` | `ifdef VCS` | Условное добавление `localparam` в parameter port list. Обе конфигурации после препроцессора дают чистый AST. | +| `axi_interleaved_xbar.sv:325–326` | тернарное выражение и `endif` | Продолжение условного параметра, а не отдельная ошибка `$clog2` или cast. Минимальный пример отдельно принят компилятором. | +| `axi_interleaved_xbar.sv:337–338` | директива `else` перед `input logic` | Повтор условного ANSI-порта в interface wrapper. Обе конфигурации полного файла проверены. | +| `axi_interleaved_xbar.sv:338–339` | `default_mst_port_i` и `endif` | Продолжение той же условной декларации interface wrapper. | + +Это ограничения грамматики на непрепроцессированном SystemVerilog и отсутствие +выбранного preprocessing profile в текущем индексаторе. Отсутствующий файл include +не создаёт эти шесть ошибок xbar: для полного `axi_interleaved_xbar.sv` достаточно +существующего `axi/include`, и `Verilator -E` завершился с кодом 0 как без `VCS`, +так и с `+define+VCS`. Полученные два полных текста имеют **0 ERROR / 0 MISSING**. +Это проверка preprocessing + parsing, не полная elaboration зависимого проекта. + +Для полного `axi_demux_simple.sv` препроцессор остановился на отсутствующих в данном +корпусе `common_cells/assertions.svh` и `common_cells/registers.svh` (exit 1). +Нельзя считать этот полный файл проверенным компилятором или подставлять заглушки +и выдавать результат за проверку настоящей конфигурации. Класс ошибки на строке 510 +подтверждён отдельным самодостаточным примером. + +## Самодостаточные контрольные примеры + +Примеры ниже созданы для диагностики; это не скопированные AXI модули. + +Макроаргумент с property implication, до preprocessing — ровно `ERROR >`: + +```systemverilog +`define ASSUME(name, expression) name: assume property (@(posedge clk) expression); +module top(input clk, input Support, input valid, input [5:0] atop); + `ASSUME(no_error, !Support && valid |-> atop == '0) +endmodule +``` + +Альтернативные ANSI-порты, до preprocessing — два `ERROR`: + +```systemverilog +module top( +`ifdef VCS + input logic [3:0] port_i +`else + input logic [7:0] port_i +`endif +); +endmodule +``` + +Условный параметр с разделяющей запятой, до preprocessing — два `ERROR`: + +```systemverilog +module top #( + parameter int A = 2 +`ifdef VCS + , localparam int Width = (A == 1) ? 1 : unsigned'($clog2(A)) +`endif +)(input logic clk); +endmodule +``` + +Для каждого из трёх примеров выполнены обе конфигурации, без define и с +`+define+VCS`: `verilator -E -P` — exit 0; +`verilator --lint-only --assert -Wno-fatal` — exit 0, stderr пустой; +повторный tree-sitter parse раскрытого текста — 0 ERROR / 0 MISSING. +Итого шесть успешных compile/lint controls. Симуляция не выполнялась. + +Воспроизведение на сохранённых диагностических файлах из корня checkout: + +```bash +node --liftoff-only .scratch/hdl-parse-gaps/check.cjs +python3 .scratch/hdl-parse-gaps/full-preprocess.py +``` + +Основные локальные доказательства: `.scratch/hdl-parse-gaps/results.json`, +`full-preprocess.json`, `expanded-parse.json`, три `.sv` и раскрытые `.expanded.sv`. +Они исключены из Git; исходники минимальных примеров приведены в этом документе. + +## Безопасные следующие шаги + +1. Для макровызовов — исправление upstream grammar, которое воспринимает аргументы + как сбалансированный непрозрачный текст, включая property operators, строки, + комментарии и вложенные скобки. Нельзя интерпретировать макроаргумент как обычное + expression и терять часть `|->`. +2. Для условных header lists — поддержка conditional directive nodes в грамматике + либо явный preprocessing profile с include paths и defines. Пока ветка не выбрана, + порядок и состав портов неопределённы; named/positional/wildcard связывание не должно + превращать несовместимые ветки в один достоверный интерфейс. +3. Если добавлять внешний препроцессор, сохранить mapping раскрытого текста к исходным + файлам, fingerprint профиля и зависимостей include/define для incremental invalidation. + Без этого улучшенный parse будет показывать неверные строки и устаревшие связи. +4. Отдельно отображать parser recovery и отсутствие preprocessing context, не называть + `ERROR` доказательством дефекта RTL. Простое удаление строк `ifdef/else/endif` + объединит взаимоисключающие ветки; такой обход здесь не применялся. + +Правки грамматики, parser/extractor и постоянные regression tests в этом аудите +не выполнялись. Установлен воспроизводимый preprocessing/grammar gap, а не новый +дефект обработки уже корректного AST экстрактором. diff --git a/docs/validation-hdl-scopes-2026-09-12.md b/docs/validation-hdl-scopes-2026-09-12.md new file mode 100644 index 000000000..5ff47e8be --- /dev/null +++ b/docs/validation-hdl-scopes-2026-09-12.md @@ -0,0 +1,59 @@ +# HDL: лексические scopes и generate declarations + +База 4d97bb29; extraction stamp 36. Linux x64, Node 24.15.0, +tree-sitter-systemverilog 0.4.0. Реализован этап 1 из hdl-roadmap.md. + +## Изменения + +- Named/anonymous begin/end, fork/join, for/foreach получают отдельные scopes. + Локальный x во вложенном блоке больше не подавляет ссылки на внешний x + во всём process; соседние блоки сохраняют собственные объявления. +- Function/task formal ports — отдельные поля в scope подпрограммы. + Сохраняются зависимости defaults и вызовы в for initializers. +- Inline/predeclared genvar и generate-body parameters представлены + декларациями шаблона. Значения итераций и elaborated instances не придуманы. +- Signal references принадлежат точному lexical block. Calls сохраняют + function/process owner и дополнительный lexical context для imports. +- Внутренний package import перекрывает внешнюю функцию/импорт; конфликт + на одном уровне остаётся unresolved. Context сохраняется через SQLite, + повторное разрешение и удаление/восстановление package function. +- Cross-file HDL edges пересчитываются по исходной qualified reference, + а не переносятся на произвольный символ того же короткого имени. + +При parser recovery внутри procedural региона сигнал не привязывается к +предполагаемому внешнему объявлению. Исходные узлы и независимые корректные +процессы остаются доступны; неполный регион может иметь меньше references. + +## Проверки + +32 focused tests прошли: scopes/signals/generate/packages/call scope. Review +воспроизвело пропуски defaults/initializers и неверный приоритет imports; +после исправлений повторены 10 независимых scratch controls. Выбор внутреннего +q::f подтверждён также результатом HDL-компилятора на минимальном примере. + +Постоянный тест меняет package-файл с одноимёнными p::run/q::run, удаляет и +восстанавливает функцию, сохраняя top без изменений: calls совпадают с clean +rebuild. Отдельные tests проверяют удаление локального shadow и generate sync. + +Реальный axi_xbar.sv: 3 generate template declarations, 8 occurrence references; +sync совпадает с clean index. Реальный emmc_crc16.v также проверен через индекс. +Повторены полные Dual UART/eMMC/AXI индексы и настоящие queries по UART ports, +CRC и AXI modport. В AXI сохранились 32 positional и 14 wildcard clauses с +28 formal/actual pairs; контрольная positional-копия UART также прошла. +Все 10 активных индексов: stamp 36, complete, 0 pending changes. +Полный native: 291 test files, 4809 passed, 9 skipped, 0 failed. +Полный WASM: 290 test files passed, 1 skipped; 4799 passed, 19 skipped, 0 failed. +TypeScript и build с viewer/30 grammar assets прошли. + +## Остаточные parse errors + +Все 7 ERROR классифицированы в validation-hdl-parse-gaps-2026-09-12.md. +Шесть raw conditional-header ошибок исчезают после препроцессинга полного +axi_interleaved_xbar в двух конфигурациях. Assertion macro проверен минимальным +воспроизведением; полный demux требует отсутствующих common_cells includes. +Это подтверждённая граница preprocessing context, а не повод удалять директивы +из исходника. Конфигурации сборки остаются отдельным этапом плана. + +Артефакты: .scratch/hdl-scope-final-focused.log, +hdl-generate-real-axi-results.json, hdl-lexical-review-fixed.log, +hdl-lexical-corpus.log, hdl-lexical-real-bindings.log, hdl-lexical-final-*.log. diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index 0aa3b942f..30322a4cd 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 35; +export const EXTRACTION_VERSION = 36; diff --git a/src/extraction/index.ts b/src/extraction/index.ts index ee751792e..17daed9c8 100644 --- a/src/extraction/index.ts +++ b/src/extraction/index.ts @@ -1744,6 +1744,9 @@ function resurrectRefFromDroppedEdge( fromNodeId: e.source, referenceName: refName, referenceKind: refKind, + ...(e.sourceLanguage === 'verilog' && Array.isArray(e.metadata?.refCandidates) + && e.metadata.refCandidates.every((c: unknown) => typeof c === 'string') + ? { candidates: e.metadata.refCandidates as string[] } : {}), line: e.line ?? 0, column: e.column ?? 0, filePath: e.sourceFilePath, @@ -2939,7 +2942,9 @@ export class ExtractionOrchestrator { const resurrected: UnresolvedReference[] = []; for (const e of crossFileIncomingEdges) { const name = e.metadata?.refName; - if (typeof name === 'string' && (name.startsWith('hdl:wildcard:') || name.startsWith('hdl:port-position:'))) { + // HDL members and ports often share short names within one file. + // Replay their qualified reference instead of reattaching by kind/name. + if (e.sourceLanguage === 'verilog' && typeof name === 'string') { const ref = resurrectRefFromDroppedEdge(e); if (ref) resurrected.push(ref); continue; diff --git a/src/extraction/languages/verilog-generate.ts b/src/extraction/languages/verilog-generate.ts new file mode 100644 index 000000000..6a5c1f55c --- /dev/null +++ b/src/extraction/languages/verilog-generate.ts @@ -0,0 +1,33 @@ +import type { Node as SyntaxNode } from 'web-tree-sitter'; +import type { ExtractorContext } from '../tree-sitter-types'; +import { getNodeText } from '../tree-sitter-helpers'; +import { addVerilogSignalReferences } from './verilog-signals'; + +function identifier(node: SyntaxNode): SyntaxNode | undefined { + return node.namedChildren.find(n => ['simple_identifier', 'escaped_identifier'].includes(n.type)); +} + +/** A generate iteration is a declaration template, never a guessed elaborated value. */ +export function initializeVerilogGenerateScope(block: SyntaxNode, ctx: ExtractorContext): void { + const loop = block.parent; + if (loop?.type !== 'loop_generate_construct') return; + const init = loop.namedChildren.find(n => n.type === 'genvar_initialization'); + const name = init && identifier(init); + if (!init || !name) return; + const binding = ctx.createNode('constant', getNodeText(name, ctx.source), init, { + signature: getNodeText(init, ctx.source), decorators: ['hdl:generate-parameter', 'hdl:template'], + }); + if (binding) addVerilogSignalReferences(init, ctx, binding.id); +} + +export function visitVerilogGenvarDeclaration(node: SyntaxNode, ctx: ExtractorContext): boolean { + if (node.type !== 'genvar_declaration') return false; + const list = node.namedChildren.find(n => n.type === 'list_of_genvar_identifiers'); + for (const name of list?.namedChildren ?? []) { + if (!['simple_identifier', 'escaped_identifier'].includes(name.type)) continue; + ctx.createNode('constant', getNodeText(name, ctx.source), name, { + signature: getNodeText(node, ctx.source), decorators: ['hdl:genvar', 'hdl:template'], + }); + } + return true; +} diff --git a/src/extraction/languages/verilog-packages.ts b/src/extraction/languages/verilog-packages.ts index 1d4607bef..5440c479e 100644 --- a/src/extraction/languages/verilog-packages.ts +++ b/src/extraction/languages/verilog-packages.ts @@ -30,8 +30,13 @@ export function handleVerilogPackageNode(node: SyntaxNode, ctx: ExtractorContext const name = body?.childForFieldName('name'); // Require the literal package separator between AST nodes, excluding object methods. if (primary && name && /^\s*::\s*$/.test(ctx.source.slice(primary.endIndex, name.startIndex))) { - const fromNodeId = ctx.nodeStack[ctx.nodeStack.length - 1]; + const lexical = ctx.nodes.find(n => n.id === ctx.nodeStack[ctx.nodeStack.length - 1]); + const callable = [...ctx.nodeStack].reverse().map(id => ctx.nodes.find(n => n.id === id)) + .find(n => n && (n.kind === 'function' || n.kind === 'method')); + const fromNodeId = callable?.id ?? lexical?.id; if (fromNodeId) ctx.addUnresolvedReference({ fromNodeId, + ...(lexical?.kind === 'namespace' && lexical.id !== fromNodeId + ? { candidates: [`hdl:scope:${lexical.qualifiedName}`] } : {}), referenceName: `${primary.text.trim()}::${name.text}`, referenceKind: 'calls', line: node.startPosition.row + 1, column: node.startPosition.column }); for (const child of body!.namedChildren) if (child.id !== name.id) ctx.visitNode(child); diff --git a/src/extraction/languages/verilog-signals.ts b/src/extraction/languages/verilog-signals.ts index 73d40d4f4..1ff03c334 100644 --- a/src/extraction/languages/verilog-signals.ts +++ b/src/extraction/languages/verilog-signals.ts @@ -68,7 +68,13 @@ export function isVerilogGenerateBinding(node: SyntaxNode, ctx: ExtractorContext if (ancestor.type === 'loop_generate_construct') { const init = children(ancestor).find(n => n.type === 'genvar_initialization'); const id = init && identifier(init); - if (id && getNodeText(id, ctx.source) === name) return true; + if (id && getNodeText(id, ctx.source) === name) { + for (let i = ctx.nodeStack.length - 1; i >= 0; i--) { + const scope = ctx.nodes.find(n => n.id === ctx.nodeStack[i]); + if (scope && ctx.nodes.some(n => n.qualifiedName === `${scope.qualifiedName}::${name}` && n.decorators?.includes('hdl:generate-parameter'))) return false; + } + return true; + } } if (['module_declaration', 'interface_declaration', 'program_declaration'].includes(ancestor.type)) break; } @@ -80,29 +86,24 @@ export function isVerilogGenerateBinding(node: SyntaxNode, ctx: ExtractorContext * Dotted hierarchical accesses are deliberately excluded: their root is not * sufficient evidence that the terminal signal belongs to this module. */ -export function addVerilogSignalReferences(node: SyntaxNode, ctx: ExtractorContext, ownerId: string): void { - const shadowed = new Set(); - const findLocals = (current: SyntaxNode): void => { - if (current.type === 'variable_decl_assignment' || current.type === 'net_decl_assignment') { - const id = current.childForFieldName('name') ?? identifier(current); - if (id) shadowed.add(getNodeText(id, ctx.source)); - } - if (current.type === 'for_variable_declaration' || current.type === 'loop_variables') { - for (const id of children(current).filter(n => ['simple_identifier', 'escaped_identifier'].includes(n.type))) { - shadowed.add(getNodeText(id, ctx.source)); - } - } - for (const child of children(current)) findLocals(child); - }; - findLocals(node); - const skip = new Set(['data_declaration', 'net_declaration', 'tf_call', 'ps_or_hierarchical_function_identifier']); +export function addVerilogSignalReferences(node: SyntaxNode, ctx: ExtractorContext, ownerId: string, lexicalScope = false): void { + // Parser recovery can lose a declaration while retaining its later uses. + // Keep the source nodes, but do not bind names from an incomplete procedural + // region to outer declarations. An unrelated valid process remains usable. + for (let ancestor: SyntaxNode | null = node; ancestor; ancestor = ancestor.parent) { + if (['always_construct', 'initial_construct', 'final_construct', 'function_declaration', 'task_declaration', 'seq_block', 'par_block', 'loop_statement'].includes(ancestor.type) && ancestor.hasError) return; + if (['module_declaration', 'interface_declaration', 'program_declaration'].includes(ancestor.type)) break; + } + + const skip = new Set(['data_declaration', 'net_declaration', 'for_variable_declaration', 'tf_port_list', 'tf_port_declaration', 'tf_call', 'ps_or_hierarchical_function_identifier']); const emit = (id: SyntaxNode): void => { const name = getNodeText(id, ctx.source).trim(); - if (shadowed.has(name) || isVerilogGenerateBinding(id, ctx, name)) return; + if (isVerilogGenerateBinding(id, ctx, name)) return; ctx.addUnresolvedReference({ fromNodeId: ownerId, referenceName: `hdl:signal:${name}`, referenceKind: 'references', line: id.startPosition.row + 1, column: id.startPosition.column }); }; const visit = (current: SyntaxNode): void => { + if (lexicalScope && current.id !== node.id && ['seq_block', 'par_block', 'loop_statement'].includes(current.type)) return; // A package-qualified call is also parsed as method_call. Its receiver // may name a package, never evidence for an identically named local port. if (current.type === 'method_call') { @@ -161,6 +162,42 @@ export function addVerilogSignalReferences(node: SyntaxNode, ctx: ExtractorConte /** HDL declarations and executable blocks; called before generic recursion. */ export function visitVerilogSignals(node: SyntaxNode, ctx: ExtractorContext): boolean { + if (['seq_block', 'par_block', 'loop_statement'].includes(node.type)) { + // Generate blocks have their own handler; these nodes are procedural scopes. + const keyword = node.children[0]?.text ?? 'block'; + const label = node.type === 'loop_statement' ? undefined : identifier(node); + const kind = node.type === 'loop_statement' ? keyword : node.type === 'par_block' ? 'fork' : 'block'; + const name = label ? getNodeText(label, ctx.source) : `${kind}@${node.startPosition.row + 1}:${node.startPosition.column}`; + const created = ctx.createNode('namespace', name, node, { decorators: ['hdl:procedural-scope'] }); + if (created) { + ctx.pushScope(created.id); + addVerilogSignalReferences(node, ctx, created.id, true); + } + walkChildren(node, ctx); + if (created) ctx.popScope(); + return true; + } + if (['tf_port_item', 'tf_port_declaration', 'for_variable_declaration', 'loop_variables'].includes(node.type)) { + const list = node.type === 'tf_port_declaration' + ? children(node).find(n => n.type === 'list_of_tf_variable_identifiers') : node; + const ids = list ? children(list).filter(n => ['simple_identifier', 'escaped_identifier'].includes(n.type)) : []; + for (const id of ids) { + const created = ctx.createNode('field', getNodeText(id, ctx.source), id, + { signature: getNodeText(node, ctx.source), decorators: [node.type.startsWith('tf_') ? 'hdl:formal' : 'hdl:signal'] }); + // Declarator initializers belong to this declaration's lexical scope. + if (created) { + for (let next = id.nextNamedSibling; next && !ids.some(n => n.id === next!.id); next = next.nextNamedSibling) { + if (next.type === 'expression' || next.type === 'constant_expression') addVerilogSignalReferences(next, ctx, created.id, true); + } + } + } + // Visit each initializer once with the enclosing callable as call owner. + for (const child of list ? children(list) : []) { + if (child.type === 'expression' || child.type === 'constant_expression') ctx.visitNode(child); + } + return true; + } + if (node.type === 'ansi_port_declaration') { const name = node.childForFieldName('port_name'); if (name) { @@ -232,7 +269,7 @@ export function visitVerilogSignals(node: SyntaxNode, ctx: ExtractorContext): bo const created = ctx.createNode('function', name, node, { signature: getNodeText(node, ctx.source), decorators: ['hdl:process', `hdl:${kind}`] }); if (created) { - addVerilogSignalReferences(node, ctx, created.id); + addVerilogSignalReferences(node, ctx, created.id, true); ctx.pushScope(created.id); } walkChildren(node, ctx); diff --git a/src/extraction/languages/verilog.ts b/src/extraction/languages/verilog.ts index 093136604..4bb471a49 100644 --- a/src/extraction/languages/verilog.ts +++ b/src/extraction/languages/verilog.ts @@ -1,3 +1,4 @@ +import { initializeVerilogGenerateScope, visitVerilogGenvarDeclaration } from './verilog-generate'; import { getVerilogPortOrder, visitVerilogSignals, addVerilogSignalReferences, isVerilogGenerateBinding } from './verilog-signals'; import { handleVerilogPackageNode, getVerilogCallName } from './verilog-packages'; import type { Node as SyntaxNode } from 'web-tree-sitter'; @@ -140,6 +141,7 @@ function handleSubroutine(node: SyntaxNode, ctx: ExtractorContext): boolean { const created = ctx.createNode('function', name, node, { signature }); if (created) ctx.pushScope(created.id); + if (created && bodyDecl) addVerilogSignalReferences(bodyDecl, ctx, created.id, true); visitNamedChildren(node, ctx); if (created) ctx.popScope(); return true; @@ -150,8 +152,15 @@ function handleGenerateBlock(node: SyntaxNode, ctx: ExtractorContext): boolean { // Anonymous labels identify source scopes, not elaborated genblk numbers. const name = nameNode ? getNodeText(nameNode, ctx.source) : `generate@${node.startPosition.row + 1}:${node.startPosition.column}`; - const created = ctx.createNode('namespace', name, node); - if (created) ctx.pushScope(created.id); + const loop = node.parent?.type === 'loop_generate_construct' ? node.parent : null; + const created = ctx.createNode('namespace', name, node, { + decorators: ['hdl:generate-scope'], + ...(loop ? { signature: ctx.source.slice(loop.startIndex, node.startIndex).trim() } : {}), + }); + if (created) { + ctx.pushScope(created.id); + initializeVerilogGenerateScope(node, ctx); + } visitNamedChildren(node, ctx); if (created) ctx.popScope(); return true; @@ -331,7 +340,10 @@ function handleTypedef(node: SyntaxNode, ctx: ExtractorContext): boolean { function handleCall(node: SyntaxNode, ctx: ExtractorContext): boolean { if (ctx.nodeStack.length > 0) { - const fromId = ctx.nodeStack[ctx.nodeStack.length - 1]; + const lexical = ctx.nodes.find(n => n.id === ctx.nodeStack[ctx.nodeStack.length - 1]); + const callable = [...ctx.nodeStack].reverse().map(id => ctx.nodes.find(n => n.id === id)) + .find(n => n && (n.kind === 'function' || n.kind === 'method')); + const fromId = callable?.id ?? lexical?.id; const callee = firstChildOfType(node, ['hierarchical_identifier']) ?? firstSimpleIdentifier(node); if (fromId && callee) { const name = getVerilogCallName(node, ctx.source); @@ -340,6 +352,8 @@ function handleCall(node: SyntaxNode, ctx: ExtractorContext): boolean { fromNodeId: fromId, referenceName: name, referenceKind: 'calls', + ...(lexical?.kind === 'namespace' && lexical.id !== fromId + ? { candidates: [`hdl:scope:${lexical.qualifiedName}`] } : {}), line: node.startPosition.row + 1, column: node.startPosition.column, }); @@ -371,7 +385,7 @@ export const verilogExtractor: LanguageExtractor = { paramsField: 'tf_port_list', visitNode: (node, ctx) => { - if (visitVerilogSignals(node, ctx) || handleVerilogPackageNode(node, ctx)) return true; + if (visitVerilogGenvarDeclaration(node, ctx) || visitVerilogSignals(node, ctx) || handleVerilogPackageNode(node, ctx)) return true; switch (node.type) { case 'module_declaration': case 'program_declaration': diff --git a/src/mcp/server-instructions.ts b/src/mcp/server-instructions.ts index 2de480cbf..c05a5c826 100644 --- a/src/mcp/server-instructions.ts +++ b/src/mcp/server-instructions.ts @@ -60,7 +60,7 @@ calls; a grep/read exploration is dozens. ## Verilog / SystemVerilog -Query module and instance names to inspect hierarchy and the exact port-connection source. Ports/signals, generate scopes, modports and always/assign blocks are searchable. Query an instance-qualified connection such as top.u_rx1.rx to inspect its local expression and declared target port; an explicit empty connection still names a formal port but has no local endpoint. Bit/part-select references identify the base signal and indexed expressions, not evaluated widths. HDL references record syntactic signal use, not drive direction, timing or elaborated connectivity; positional bindings require authoritative header order, and wildcard matches require known formal ports and unambiguous local signals (explicit connections take priority). Generate iterations are not expanded. Qualified package calls retain package identity. +Query module and instance names to inspect hierarchy and the exact port-connection source. Ports/signals, lexical block scopes, generate template parameters, modports and always/assign blocks are searchable. Local signal references belong to their block; calls retain the enclosing function/process. Parser-recovered procedural regions may omit uncertain signal references. Query an instance-qualified connection such as top.u_rx1.rx to inspect its local expression and declared target port; an explicit empty connection still names a formal port but has no local endpoint. Bit/part-select references identify the base signal and indexed expressions, not evaluated widths. HDL references record syntactic signal use, not drive direction, timing or elaborated connectivity; positional bindings require authoritative header order, and wildcard matches require known formal ports and unambiguous local signals (explicit connections take priority). Generate iterations are not expanded. Qualified package calls retain package identity. ## Anti-patterns diff --git a/src/resolution/index.ts b/src/resolution/index.ts index 5c2ebc5a2..881c42978 100644 --- a/src/resolution/index.ts +++ b/src/resolution/index.ts @@ -736,6 +736,7 @@ export class ReferenceResolver { filePath: ref.filePath || this.getFilePathFromNodeId(ref.fromNodeId), language: ref.language || this.getLanguageFromNodeId(ref.fromNodeId), rowId: ref.rowId, + candidates: ref.candidates, })); const total = refs.length; @@ -1210,6 +1211,8 @@ export class ReferenceResolver { // wrong rebind; edges without refName (pre-#1240, synthesized) are // deliberately NOT resurrected for the same reason. refName: ref.original.referenceName, + ...(ref.original.language === 'verilog' && ref.original.candidates?.length + ? { refCandidates: ref.original.candidates } : {}), ...(ref.original.referenceKind !== kind ? { refKind: ref.original.referenceKind } : {}), // Uniform marker for function-as-value edges (#756), regardless of // which strategy resolved them (import vs matchFunctionRef) — lets @@ -1499,6 +1502,7 @@ export class ReferenceResolver { filePath: raw.filePath || this.getFilePathFromNodeId(raw.fromNodeId), language: raw.language || this.getLanguageFromNodeId(raw.fromNodeId), rowId: raw.rowId, + candidates: raw.candidates, }; const result = this.resolveOneTimed(ref); if (result) { @@ -1619,6 +1623,7 @@ export class ReferenceResolver { filePath: raw.filePath || this.getFilePathFromNodeId(raw.fromNodeId), language: raw.language || this.getLanguageFromNodeId(raw.fromNodeId), rowId: raw.rowId, + candidates: raw.candidates, }; const result = this.resolveOneTimed(ref); if (result) { diff --git a/src/resolution/verilog-members.ts b/src/resolution/verilog-members.ts index bb73c1785..6ba9eeebe 100644 --- a/src/resolution/verilog-members.ts +++ b/src/resolution/verilog-members.ts @@ -33,22 +33,29 @@ export function matchVerilogMember(ref: UnresolvedRef, context: ResolutionContex // Hierarchical instance calls require elaborated receiver identity, which this pass does not infer. if (ref.referenceName.includes('.')) return null; const caller = context.getNodeById?.(ref.fromNodeId); - const scopes = caller?.qualifiedName.split('::') ?? []; - for (let i = scopes.length; i > 0; i--) { - const matches = exact(`${scopes.slice(0, i).join('::')}::${ref.referenceName}`, ['function', 'method']) + const hint = ref.candidates?.find(c => c.startsWith('hdl:scope:'))?.slice('hdl:scope:'.length); + const lexical = hint && caller && context.getNodesByQualifiedName(hint).some(n => + n.language === 'verilog' && n.filePath === ref.filePath && n.kind === 'namespace' + && n.qualifiedName.startsWith(`${caller.qualifiedName}::`) && n.startLine <= ref.line && n.endLine >= ref.line) + ? hint : caller?.qualifiedName; + const scopes = lexical?.split('::') ?? []; + const imports = context.getNodesInFile(ref.filePath).filter(n => n.kind === 'import' && n.startLine <= ref.line); + // Resolve one lexical level at a time: an inner package import can shadow + // an outer module function, just like a nearer declaration can. + for (let i = scopes.length; i >= 0; i--) { + const scope = scopes.slice(0, i).join('::'); + const matches = exact(scope ? `${scope}::${ref.referenceName}` : ref.referenceName, ['function', 'method']) .filter(n => n.filePath === ref.filePath); if (matches.length) return result(matches); - } - const imported: Node[] = []; - for (const item of context.getNodesInFile(ref.filePath)) { - if (item.kind !== 'import' || item.startLine > ref.line) continue; - const prefix = item.qualifiedName.split('::').slice(0, -1).join('::'); - if (prefix && !caller?.qualifiedName.startsWith(`${prefix}::`)) continue; - const match = item.signature?.trim().match(/^([\w$]+)::([\w$]+|\*)$/); - if (match && (match[2] === '*' || match[2] === ref.referenceName)) { - imported.push(...exact(`${match[1]}::${ref.referenceName}`, ['function', 'method'])); + const imported: Node[] = []; + for (const item of imports) { + if (item.qualifiedName.split('::').slice(0, -1).join('::') !== scope) continue; + const match = item.signature?.trim().match(/^([\w$]+)::([\w$]+|\*)$/); + if (match && (match[2] === '*' || match[2] === ref.referenceName)) { + imported.push(...exact(`${match[1]}::${ref.referenceName}`, ['function', 'method'])); + } } + if (imported.length) return result(imported); } - if (imported.length) return result(imported); - return result(exact(ref.referenceName, ['function', 'method']).filter(n => n.filePath === ref.filePath)); + return null; } From 5f903355c6dee812bcba6bad9388eff6c773ff93 Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 16:13:53 +0300 Subject: [PATCH 16/23] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20HDL=20access=20roles=20=D0=B8=20=D0=B7?= =?UTF-8?q?=D0=B0=D0=BF=D1=80=D0=BE=D1=81=D1=8B=20=D1=87=D1=82=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D1=8F=20=D0=B7=D0=B0=D0=BF=D0=B8=D1=81=D0=B8=20=D1=81?= =?UTF-8?q?=D0=B8=D0=B3=D0=BD=D0=B0=D0=BB=D0=BE=D0=B2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + README.md | 2 +- __tests__/hdl-access-query.test.ts | 130 ++++++++++++++++++ __tests__/verilog-access-sync.test.ts | 47 +++++++ __tests__/verilog-access.test.ts | 111 +++++++++++++++ __tests__/verilog-call-access.test.ts | 101 ++++++++++++++ docs/hdl-roadmap.md | 5 +- docs/validation-hdl-access-2026-09-12.md | 77 +++++++++++ src/bin/codegraph.ts | 4 +- src/db/queries.ts | 13 ++ src/extraction/extraction-version.ts | 2 +- src/extraction/index.ts | 21 +++ .../languages/verilog-call-access.ts | 80 +++++++++++ src/extraction/languages/verilog-signals.ts | 129 +++++++++++++++-- src/index.ts | 4 + src/mcp/hdl-access.ts | 102 ++++++++++++++ src/mcp/server-instructions.ts | 2 + src/mcp/tools.ts | 13 ++ src/resolution/verilog-call-access.ts | 55 ++++++++ src/resolution/verilog-members.ts | 17 ++- 20 files changed, 899 insertions(+), 18 deletions(-) create mode 100644 __tests__/hdl-access-query.test.ts create mode 100644 __tests__/verilog-access-sync.test.ts create mode 100644 __tests__/verilog-access.test.ts create mode 100644 __tests__/verilog-call-access.test.ts create mode 100644 docs/validation-hdl-access-2026-09-12.md create mode 100644 src/extraction/languages/verilog-call-access.ts create mode 100644 src/mcp/hdl-access.ts create mode 100644 src/resolution/verilog-call-access.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 4d0d592b4..fa64067c1 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -145,6 +145,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- HDL: source access roles read/write/readwrite/control/event и направления аргументов известных functions/tasks доступны через explore `hdlAccess` / CLI `--hdl-access`. Сохраняются разные позиции одной строки, initializer writes и переклассификация после изменения/удаления сигнатуры через sync. + - HDL: точные procedural scopes, formal parameters и generate template declarations сохраняют локальные связи; исправлены defaults/for initializer calls, приоритет block imports и qualified cross-file replay после sync. - HDL: позиционные подключения следуют порядку ANSI/non-ANSI заголовка; `.*` учитывает явные подключения и локальную область видимости. Sync пересчитывает весь набор связей при изменении заголовка или удалении дубликата модуля. Grammar обновлена до tree-sitter-systemverilog 0.4.0 после сравнения 137 реальных HDL-файлов. diff --git a/README.md b/README.md index bc4acf501..b9094339d 100644 --- a/README.md +++ b/README.md @@ -892,7 +892,7 @@ is written): | Astro | `.astro` | Full support (frontmatter + script extraction, template component/call references, `src/pages/` routes) | | Liquid | `.liquid` | Full support | | Pascal / Delphi | `.pas`, `.dpr`, `.dpk`, `.lpr` | Full support (classes, records, interfaces, enums, DFM/FMX form files) | -| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, lexical/generate scopes и formal parameters, порты/сигналы и named/positional/wildcard port bindings, bit/part selects, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | +| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, lexical/generate scopes и formal parameters, порты/сигналы и named/positional/wildcard port bindings, bit/part selects, read/write/control/event queries, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | | Lua | `.lua` | Full support (functions, methods with receivers, local variables, `require` imports, call edges) | | R | `.R` `.r` | Full support (functions in every assignment form, S4/R5/R6 classes with methods, `library`/`require` imports, `source()` file references, call edges) | | Luau | `.luau` | Full support (everything in Lua, plus `type`/`export type` aliases, typed signatures, and Roblox instance-path `require`) | diff --git a/__tests__/hdl-access-query.test.ts b/__tests__/hdl-access-query.test.ts new file mode 100644 index 000000000..f2ffb0644 --- /dev/null +++ b/__tests__/hdl-access-query.test.ts @@ -0,0 +1,130 @@ +import { afterAll, beforeAll, describe, expect, it } from 'vitest'; +import { spawnSync } from 'node:child_process'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; +import { ToolHandler } from '../src/mcp/tools'; +import { formatHdlAccess } from '../src/mcp/hdl-access'; + +let root: string, cg: CodeGraph, handler: ToolHandler; +const rtl = `module top(input clk, input enable, input d, output logic q); + always @(posedge clk) begin + if (enable) q <= q + d; + end + leaf u(.d(d)); +endmodule +module leaf(input d); endmodule +module other(input d, output q); assign q=d; endmodule +module updates(output int q); initial q += 1; endmodule +`; +beforeAll(async () => { + root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-access-query-')); + fs.writeFileSync(path.join(root, 'top.sv'), rtl); + // Integral seconds survive Date/fs.utimes round trips on all supported filesystems. + const fixtureTime = new Date('2024-01-01T00:00:00.000Z'); + fs.utimesSync(path.join(root, 'top.sv'), fixtureTime, fixtureTime); + fs.writeFileSync(path.join(root, 'lib.sv'), 'package lib; task automatic fill(output int y); y=1; endtask endpackage'); + fs.writeFileSync(path.join(root, 'call.sv'), 'module call_top; int y; initial lib::fill(y); endmodule'); + fs.writeFileSync(path.join(root, 'plain.ts'), 'export function hello() { return 42; }\n'); + cg = CodeGraph.initSync(root); + expect((await cg.indexAll()).success).toBe(true); + handler = new ToolHandler(cg); +}); +afterAll(() => { cg?.close(); if (root) fs.rmSync(root, { recursive: true, force: true }); }); +async function query(signal: string, hdlAccess?: string) { + const result = await handler.execute('codegraph_explore', { query: signal, ...(hdlAccess ? { hdlAccess } : {}) }); + expect(result.isError).not.toBe(true); + return result.content.map(c => c.text).join('\n'); +} + +describe('HDL access MCP query', () => { + it('returns actual source sites and retains reads and writes on the same signal and line', async () => { + const readers = await query('top::q', 'read'); + const writers = await query('top::q', 'write'); + for (const result of [readers, writers]) { + expect(result).toContain('1 matching access site(s).'); + expect(result).toContain('3\t if (enable) q <= q + d;'); + expect(result).toContain('top.sv:3'); + } + expect(readers).toContain('[read]'); + expect(writers).toContain('[write]'); + expect(await query('top.q', 'write')).toContain('**top::q**'); + expect(await query('top::q', 'all')).toContain('2 matching access site(s).'); + expect(await query('updates::q', 'readwrite')).toContain('[readwrite]'); + }); + it('explains writes proven by a known task output formal', async () => { + const result = await query('call_top::y', 'write'); + expect(result).toContain('1 matching access site(s).'); + expect(result).toContain('[write]'); + expect(result).toContain('Formal direction: lib::fill(output y).'); + expect(result).toContain('initial lib::fill(y);'); + expect(result).toContain("known callable formal's argument direction"); + }); + it('includes control and event uses as readers and permits exact category filters', async () => { + expect(await query('top::clk', 'read')).toContain('[event]'); + expect(await query('top::clk', 'event')).toContain('[event]'); + expect(await query('top::enable', 'control')).toContain('[control]'); + expect(await query('top::enable', 'read')).toContain('[control]'); + expect(await query('top::d', 'write')).toContain('0 matching access site(s).'); + }); + it('keeps unclassified connections separate from access evidence and disambiguates exact targets', async () => { + expect(await query('top::d', 'all')).toContain('unclassified reference(s) excluded'); + const all = await query('q', 'write'); + expect(all).toContain('**top::q**'); + expect(all).toContain('**other::q**'); + expect(await query('top::q', 'write')).not.toContain('**other::q**'); + expect(await query('where is q written', 'write')).toContain('No exact HDL signal matches'); + }); + it('does not change normal non-HDL exploration and validates the filter', async () => { + const normal = await query('hello'); + expect(normal).toContain('hello'); + expect(normal).toContain('return 42'); + expect(normal).not.toContain('HDL access:'); + const bad = await handler.execute('codegraph_explore', { query: 'q', hdlAccess: 'driver' }); + expect(bad.isError).toBe(true); + expect(bad.content[0]!.text).toContain('hdlAccess must be one of'); + }); + it('rejects same-size edited source with restored mtime and labels the indexed definition', () => { + const file = path.join(root, 'top.sv'); + const stat = fs.statSync(file); + try { + fs.writeFileSync(file, rtl.replace('q <= q + d', 'q <= q - d')); + fs.utimesSync(file, stat.atime, stat.mtime); + const changed = fs.statSync(file); + expect(changed.size).toBe(stat.size); + expect(Math.floor(changed.mtimeMs)).toBe(Math.floor(stat.mtimeMs)); + const result = formatHdlAccess(cg, 'top::q', 'write'); + expect(result).toContain('1 matching access site(s).'); + expect(result).toContain('Definition location is from the index; current source is unverified'); + expect(result).toContain('Source omitted: changed/unavailable since indexing'); + expect(result).not.toContain('q <= q - d'); + expect(result).not.toContain('q <= q + d'); + } finally { fs.writeFileSync(file, rtl); fs.utimesSync(file, stat.atime, stat.mtime); } + }); + it('does not attach stale indexed access positions to modified source', () => { + const file = path.join(root, 'top.sv'); + const stat = fs.statSync(file); + try { + fs.writeFileSync(file, `// changed source\n${rtl}`); + const result = formatHdlAccess(cg, 'top::q', 'write'); + expect(result).toContain('Source omitted: changed/unavailable since indexing'); + expect(result).not.toContain('3\t if (enable)'); + } finally { fs.writeFileSync(file, rtl); fs.utimesSync(file, stat.atime, stat.mtime); } + }); +}); + +it('HDL access CLI forwards the existing explore filter and rejects invalid values', () => { + const bin = path.resolve(__dirname, '../dist/bin/codegraph.js'); + const run = (filter: string) => spawnSync(process.execPath, [bin, 'explore', '--path', root, '--hdl-access', filter, 'top::q'], { + encoding: 'utf8', timeout: 30000, + env: { ...process.env, CODEGRAPH_NO_DAEMON: '1', CODEGRAPH_WASM_RELAUNCHED: '1', NO_COLOR: '1' }, + }); + const result = run('write'); + expect(result.status, result.stderr).toBe(0); + expect(result.stdout).toContain('HDL access: top::q — write'); + expect(result.stdout).toContain('q <= q + d;'); + const invalid = run('driver'); + expect(invalid.status).toBe(1); + expect(invalid.stdout + invalid.stderr).toContain('hdlAccess must be one of'); +}); diff --git a/__tests__/verilog-access-sync.test.ts b/__tests__/verilog-access-sync.test.ts new file mode 100644 index 000000000..3913c8c9c --- /dev/null +++ b/__tests__/verilog-access-sync.test.ts @@ -0,0 +1,47 @@ +import { it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; + +it('reclassifies untouched caller arguments after signature changes, deletion and reappearance', async () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-access-sync-')); + let cg: CodeGraph | undefined; + const pkg = (dir: string) => `package lib; task move(${dir} int x); x=1; endtask endpackage`; + const top = 'module top; int value; initial lib::move(value); endmodule'; + try { + fs.writeFileSync(path.join(root, 'pkg.sv'), pkg('output')); + fs.writeFileSync(path.join(root, 'top.sv'), top); + cg = CodeGraph.initSync(root); + await cg.indexAll(); + const rows = () => (cg as any).db.db.prepare("SELECT e.metadata FROM edges e JOIN nodes t ON t.id=e.target JOIN nodes s ON s.id=e.source WHERE e.kind='references' AND t.qualified_name='top::value' AND s.file_path='top.sv'").all(); + const roles = () => rows().flatMap((r: any) => JSON.parse(r.metadata)?.hdlAccess ?? []).sort(); + expect(roles()).toEqual(['write']); + fs.writeFileSync(path.join(root, 'pkg.sv'), pkg('input')); + await cg.sync(); + expect(roles()).toEqual(['read']); + fs.unlinkSync(path.join(root, 'pkg.sv')); + await cg.sync(); + expect(rows()).toHaveLength(1); // Keep the ordinary reference without inferred direction. + expect(roles()).toEqual([]); + fs.writeFileSync(path.join(root, 'pkg.sv'), pkg('inout')); + await cg.sync(); + expect(roles()).toEqual(['readwrite']); + expect(fs.readFileSync(path.join(root, 'top.sv'), 'utf8')).toBe(top); + await cg.indexAll(); + expect(roles()).toEqual(['readwrite']); + } finally { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); } +}); + +it('preserves distinct same-line read/write occurrences and their columns', async () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-access-sites-')); + let cg: CodeGraph | undefined; + try { + fs.writeFileSync(path.join(root, 'top.sv'), 'module top; int x; initial x=x+1; endmodule'); + cg = CodeGraph.initSync(root); await cg.indexAll(); + const rows = (cg as any).db.db.prepare("SELECT e.col, e.metadata FROM edges e JOIN nodes t ON t.id=e.target WHERE e.kind='references' AND t.qualified_name='top::x' ORDER BY e.col").all(); + expect(rows).toHaveLength(2); + expect(rows[0].col).not.toBe(rows[1].col); + expect(rows.map((r: any) => JSON.parse(r.metadata).hdlAccess)).toEqual([['write'], ['read']]); + } finally { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); } +}); diff --git a/__tests__/verilog-access.test.ts b/__tests__/verilog-access.test.ts new file mode 100644 index 000000000..7a9c278ab --- /dev/null +++ b/__tests__/verilog-access.test.ts @@ -0,0 +1,111 @@ +import fs from 'node:fs'; +import os from 'node:os'; +import path from 'node:path'; +import { CodeGraph } from '../src'; +import { beforeAll, describe, expect, it } from 'vitest'; +import { extractFromSource } from '../src/extraction'; +import { initGrammars, loadGrammarsForLanguages } from '../src/extraction/grammars'; +beforeAll(async()=>{await initGrammars();await loadGrammarsForLanguages(['verilog']);}); +const access=(source:string)=>extractFromSource('access.sv',source).unresolvedReferences + .filter(r=>r.referenceName.startsWith('hdl:signal:')) + .map(r=>({name:r.referenceName.slice('hdl:signal:'.length),line:r.line,access:r.candidates?.find(c=>c.startsWith('hdl:access:'))?.slice('hdl:access:'.length),event:r.candidates?.find(c=>c.startsWith('hdl:event:'))?.slice('hdl:event:'.length)})); +const compact=(source:string)=>access(source).map(({name,access})=>[name,access]); +describe('syntactic HDL signal access',()=>{ + it('distinguishes assignment destinations from indexes and RHS expressions',()=>{ + expect(compact('module m; assign x[i+:W]=y; endmodule')).toEqual([['x','write'],['i','read'],['W','read'],['y','read']]); + expect(compact('module m; initial x[i] <= y; endmodule')).toEqual([['x','write'],['i','read'],['y','read']]); + expect(compact('module m; assign {a,b[j]}=v; endmodule')).toEqual([['a','write'],['b','write'],['j','read'],['v','read']]); + }); + it('labels compound and increment accesses without classifying their indexes as writes',()=>{ + expect(compact('module m; initial begin x[i]+=y; x[j]++; --x[k]; end endmodule')).toEqual([['x','readwrite'],['i','read'],['y','read'],['x','readwrite'],['j','read'],['x','readwrite'],['k','read']]); + }); + it('separates conditions and edge event expressions from data reads',()=>{ + const refs=access(`module m; +always @(posedge clk or negedge rst) begin + if(en) q=d; + case(sel) choice: q=d; endcase + while(run) q=d; +end endmodule`); + expect(refs.filter(r=>r.line===2).map(r=>[r.name,r.access,r.event])).toEqual([['clk','event','posedge'],['rst','event','negedge']]); + expect(refs.filter(r=>r.access==='control').map(r=>r.name)).toEqual(['en','sel','choice','run']); + expect(refs.filter(r=>r.name==='q').every(r=>r.access==='write')).toBe(true); + expect(refs.filter(r=>r.name==='d').every(r=>r.access==='read')).toBe(true); + }); + it('separates loop initialization, condition, increment, and indexed body assignment',()=>{ + expect(compact('module m; initial for(i=0;i{ + expect(access('module m; always @(posedge clk iff en) q=d; endmodule').map(r=>[r.name,r.access,r.event])).toEqual([ + ['clk','event','posedge'],['en','control',undefined],['q','write',undefined],['d','read',undefined], + ]); + }); + it('records formal order and directions for grouped ANSI and legacy task declarations',()=>{ + const result=extractFromSource('formals.sv','module m; task f(output int x, int y, const ref int z, input q=0); endtask task g; output a; input b,c; endtask endmodule'); + const formals=result.nodes.filter(n=>n.decorators?.includes('hdl:formal')); + expect(formals.map(n=>[n.qualifiedName,n.decorators?.find(d=>d.startsWith('hdl:formal-index:')),n.decorators?.find(d=>d.startsWith('hdl:direction:'))])).toEqual([ + ['m::f::x','hdl:formal-index:0','hdl:direction:output'],['m::f::y','hdl:formal-index:1','hdl:direction:output'], + ['m::f::z','hdl:formal-index:2','hdl:direction:const-ref'],['m::f::q','hdl:formal-index:3','hdl:direction:input'], + ['m::g::a','hdl:formal-index:0','hdl:direction:output'],['m::g::b','hdl:formal-index:1','hdl:direction:input'],['m::g::c','hdl:formal-index:2','hdl:direction:input'], + ]); + expect(formals.find(n=>n.name==='q')?.decorators).toContain('hdl:default'); + }); + it('preserves explicit increment side effects inside call arguments',()=>{ + const result=extractFromSource('effect.sv','module m; initial consume(i++); endmodule'); + const ref=result.unresolvedReferences.find(r=>r.referenceName==='hdl:signal:i')!; + expect(ref.candidates).toContain('hdl:access:readwrite'); + expect(ref.candidates?.some(c=>c.startsWith('hdl:call-arg:'))).toBe(false); + }); + it('does not certify a recovered callable signature for access inference',()=>{ + const result=extractFromSource('recovered.sv','module m; function int f(input int x); for(int i=0,j=0;i<3;i++) x=i; return x; endfunction endmodule'); + const formal=result.nodes.find(n=>n.qualifiedName==='m::f::x')!; + expect(formal.decorators).toContain('hdl:formal'); + expect(formal.decorators?.some(d=>d.startsWith('hdl:formal-index:')||d.startsWith('hdl:direction:'))).toBe(false); + }); + it('classifies returned values and delay operands as reads',()=>{ + const refs=access(`module m; +function int f(); return d; endfunction +initial #(d) q=d; +initial q = #(delay_value) d; +initial #wait_time q=d; +endmodule`); + expect(refs.filter(r=>r.line===2).map(r=>[r.name,r.access])).toEqual([['d','read']]); + expect(refs.filter(r=>r.line===3).map(r=>[r.name,r.access])).toEqual([['d','read'],['q','write'],['d','read']]); + expect(refs.filter(r=>r.line===4).map(r=>[r.name,r.access])).toEqual([['q','write'],['delay_value','read'],['d','read']]); + expect(refs.filter(r=>r.line===5).map(r=>[r.name,r.access])).toEqual([['wait_time','read'],['q','write'],['d','read']]); + }); + it('retains readwrite and control roles for increments inside conditions',()=>{ + const refs=extractFromSource('effect-control.sv','module m; initial while(i++) q=d; initial if(j++) q=d; endmodule').unresolvedReferences; + for(const name of ['i','j']) { + const ref=refs.find(r=>r.referenceName===`hdl:signal:${name}`)!; + expect(ref.candidates).toContain('hdl:access:readwrite'); + expect(ref.candidates).toContain('hdl:access:control'); + } + }); + it('records an explicit initializer write only on initialized net/data declarators',()=>{ + const source='module m; wire feedback = crc[15] ^ bit_in; logic q=0; reg idle, ready=1; localparam WIDTH=8; logic array[WIDTH]; endmodule'; + const result=extractFromSource('initializers.sv',source); + const writes=result.unresolvedReferences.filter(r=>r.candidates?.includes('hdl:access:write')); + expect(writes.map(r=>r.referenceName)).toEqual(['hdl:signal:feedback','hdl:signal:q','hdl:signal:ready']); + for(const ref of writes) expect(result.nodes.find(n=>n.id===ref.fromNodeId)?.name).toBe(ref.referenceName.slice('hdl:signal:'.length)); + expect(result.unresolvedReferences.filter(r=>r.candidates?.includes('hdl:access:read')).map(r=>r.referenceName)).toContain('hdl:signal:crc'); + }); + it('persists declarator self-writes alongside RHS reads in the graph',async()=>{ + const root=fs.mkdtempSync(path.join(os.tmpdir(),'hdl-initializer-write-')); + let cg:CodeGraph|undefined; + try { + fs.writeFileSync(path.join(root,'crc.sv'),'module crc(input [15:0] bits, input bit_in); wire feedback=bits[15]^bit_in; logic q=0; logic idle; endmodule'); + cg=CodeGraph.initSync(root);await cg.indexAll(); + const feedback=cg.getNodesByName('feedback')[0]!; + const refs=cg.getCallees(feedback.id).filter(e=>e.edge.kind==='references'); + const self=(cg as any).db.db.prepare('SELECT metadata FROM edges WHERE source=? AND target=? AND kind=?').get(feedback.id,feedback.id,'references'); + expect(JSON.parse(self.metadata).hdlAccess).toContain('write'); + expect(refs.filter(e=>e.node.id!==feedback.id).map(e=>e.node.name).sort()).toEqual(['bit_in','bits']); + const idle=cg.getNodesByName('idle')[0]!; + expect((cg as any).db.db.prepare('SELECT id FROM edges WHERE source=? AND target=?').get(idle.id,idle.id)).toBeUndefined(); + } finally {cg?.close();fs.rmSync(root,{recursive:true,force:true});} + }); + it('keeps qualified targets suppressed while classifying their local indexes and RHS',()=>{ + expect(compact('module m; initial p::x[i]=y; endmodule')).toEqual([['i','read'],['y','read']]); + expect(compact('module m; assign obj.x[i]=y; endmodule')).toEqual([['i','read'],['y','read']]); + }); +}); diff --git a/__tests__/verilog-call-access.test.ts b/__tests__/verilog-call-access.test.ts new file mode 100644 index 000000000..95b028868 --- /dev/null +++ b/__tests__/verilog-call-access.test.ts @@ -0,0 +1,101 @@ +import { beforeAll, it, expect } from 'vitest'; +import { extractFromSource } from '../src/extraction'; +import { initGrammars, loadGrammarsForLanguages } from '../src/extraction/grammars'; +import { resolveVerilogCallArgumentAccess } from '../src/resolution/verilog-call-access'; +import { matchVerilogMember } from '../src/resolution/verilog-members'; +import type { ResolutionContext, UnresolvedRef } from '../src/resolution/types'; +import { VERILOG_CALL_ARGUMENT_PREFIX } from '../src/extraction/languages/verilog-call-access'; +beforeAll(async()=>{await initGrammars();await loadGrammarsForLanguages(['verilog']);}); + +function accesses(files: Record) { + const results = Object.entries(files).map(([file,source]) => ({file,result:extractFromSource(file,source)})); + const nodes = results.flatMap(r=>r.result.nodes); + const context = { + getNodeById: (id:string)=>nodes.find(n=>n.id===id) ?? null, + getNodesInFile: (file:string)=>nodes.filter(n=>n.filePath===file), + getNodesByName: (name:string)=>nodes.filter(n=>n.name===name), + getNodesByQualifiedName: (q:string)=>nodes.filter(n=>n.qualifiedName===q), + } as ResolutionContext; + return results.flatMap(({file,result})=>result.unresolvedReferences + .filter(r=>r.candidates?.some(c=>c.startsWith(VERILOG_CALL_ARGUMENT_PREFIX))) + .map(r=>{ + const ref={...r,filePath:file,language:'verilog'} as UnresolvedRef; + const access=resolveVerilogCallArgumentAccess(ref,context,matchVerilogMember); + return {name:r.referenceName.replace('hdl:signal:',''),access:access?.access, + callable:nodes.find(n=>n.id===access?.callableId)?.qualifiedName}; + })); +} + +it('classifies input, output, inout, ref and const ref actuals using known formal directions',()=>{ + expect(accesses({'top.sv':`module top; +task t(input int a, output int b, inout int c, ref int d, const ref int e); endtask +int ai,ao,aio,ar,acr; +initial t(ai,ao,aio,ar,acr); +endmodule`}).map(({name,access})=>[name,access])).toEqual([ + ['ai','read'],['ao','write'],['aio','readwrite'],['ar','readwrite'],['acr','read'], + ]); +}); + +it('supports omitted defaults and named actuals with default input direction',()=>{ + expect(accesses({'top.sv':`module top; +task t(int a=0, output int b); endtask +int out; +initial begin t(,out); t(.b(out)); end +endmodule`}).map(({name,access})=>[name,access])).toEqual([['out','write'],['out','write']]); +}); + +it('keeps output indexes as reads and never marks a non-lvalue output expression as a write',()=>{ + expect(accesses({'top.sv':`module top; +task t(output int x); endtask +int data[8],idx,a,b; +initial begin t(data[idx]); t(a+b); end +endmodule`}).map(({name,access})=>[name,access])).toEqual([ + ['data','write'],['idx','read'],['a',undefined],['b',undefined], + ]); +}); + +it('uses the nearest nested call and retains unknown-call occurrences without access claims',()=>{ + expect(accesses({'top.sv':`module top; +function int inner(input int x); return x; endfunction +task outer(input int x); endtask +int a,b; +initial begin outer(inner(a)); external_call(b); end +endmodule`}).map(({name,access,callable})=>[name,access,callable])).toEqual([ + ['a','read','top::inner'],['b',undefined,undefined], + ]); +}); + +it('respects lexical package imports and does not borrow a direction from a same-name task elsewhere',()=>{ + expect(accesses({'pkg.sv':'package p; task t(output int x); endtask endpackage', + 'top.sv':`module top; +task t(input int x); endtask +int a,b; +initial begin + begin : imported import p::*; t(a); end + begin : local_scope t(b); end +end +endmodule`}).map(({name,access,callable})=>[name,access,callable])).toEqual([ + ['a','write','p::t'],['b','read','top::t'], + ]); +}); + +it('rejects too many actuals and missing required formals while retaining their references',()=>{ + expect(accesses({'top.sv':`module top; +task t(input int a, output int b); endtask +int x,y,z; +initial begin t(x); t(x,y,z); end +endmodule`}).map(({name,access})=>[name,access])).toEqual([ + ['x',undefined],['x',undefined],['y',undefined],['z',undefined], + ]); +}); + +it('permits output concatenations but does not invent a reference-variable binding for a concat actual',()=>{ + expect(accesses({'top.sv':`module top; +task output_task(output int x); endtask +task reference_task(ref int x); endtask +int a,b,c,d; +initial begin output_task({a,b}); reference_task({c,d}); end +endmodule`}).map(({name,access})=>[name,access])).toEqual([ + ['a','write'],['b','write'],['c',undefined],['d',undefined], + ]); +}); diff --git a/docs/hdl-roadmap.md b/docs/hdl-roadmap.md index d294ac8ea..85068c7db 100644 --- a/docs/hdl-roadmap.md +++ b/docs/hdl-roadmap.md @@ -44,7 +44,7 @@ same-line declarations и stable IDs; sync после перемещения объявления даёт те же связи, что clean rebuild. Реальные UART/CRC/AXI-control examples. -### 2. Разделить синтаксические reads, writes и control dependencies +### 2. Разделить синтаксические reads, writes и control dependencies — реализовано Польза: ответить, какой блок читает сигнал и где код присваивает ему значение. @@ -125,7 +125,8 @@ bind и связи DUT↔testbench. Затем оценить необходим ## Проверки и порядок поставки - Этап 1 реализован; отчёты validation-hdl-scopes-2026-09-12.md и - validation-hdl-parse-gaps-2026-09-12.md. Следующий пакет реализации — этап 2. + validation-hdl-parse-gaps-2026-09-12.md. Этап 2 реализован: validation-hdl-access-2026-09-12.md. + Следующий пакет реализации — этап 3, явный контекст HDL-сборки. - Для каждого пакета: failing regression → исправление → независимое review → focused tests → реальные corpus queries и sync/rebuild comparison. - Полные native/WASM suites при изменениях общих extraction/resolution/storage diff --git a/docs/validation-hdl-access-2026-09-12.md b/docs/validation-hdl-access-2026-09-12.md new file mode 100644 index 000000000..19d4854f8 --- /dev/null +++ b/docs/validation-hdl-access-2026-09-12.md @@ -0,0 +1,77 @@ +# HDL: чтение, запись и контекст использования сигналов + +База 545b083f; extraction stamp 37. Linux x64 / Node 24.15.0; +grammar tree-sitter-systemverilog 0.4.0. Реализован этап 2 roadmap. + +## Использование + +Из каталога проиндексированного проекта: + +```sh +codegraph explore 'top::q' --hdl-access write +codegraph explore 'top::q' --hdl-access read +codegraph explore 'top::clk' --hdl-access event +``` + +MCP: `codegraph_explore({query:"top::q", hdlAccess:"write"})`. +Доступны read/write/readwrite/control/event/all. Qualified names с :: или +точками поддерживаются; одинаковые bare names выводятся отдельно по scopes. +Обычный explore без hdlAccess сохраняет прежнее поведение. + +Read включает readwrite/control/event; write включает readwrite. Вывод содержит +точные file:line:column, source snippets и evidence formal direction для +аргументов известных подпрограмм. Перед показом исходника проверяется SHA256, +в том числе при сохранённых размере и mtime. Unknown references не выдаются за +доступ; пустой результат не доказывает отсутствия использования. + +## Классификация + +- Blocking/nonblocking/continuous assignments; compound и increment/decrement. + x[i]=y означает x:write, i/y:read. Позиции одной строки хранятся отдельно + существующим SQLite identity, поэтому x=x+1 сохраняет обе occurrences. +- Условия if/case/loops — control; события — event с posedge/negedge evidence. + if(i++) сохраняет readwrite и control одновременно. Return и delays — read. +- Net/data initializer даёт self-reference write и отдельные RHSreads; + bare declarations, dimensions и localparam не получают предполагаемых writes. +- Полная однозначная сигнатура function/task: input/const ref read, output + write, inout/ref readwrite. Индексы выходного actual читаются; явный i++ + сохраняет побочный эффект. Unsupported/unknown signatures и недопустимые + expression shapes оставляют обычные references. +- Formal direction определяется при resolution, не по глобальному имени. + При HDL-изменениях sync переклассифицирует argument sites в неизменённых + caller files; при удалении сигнатуры старая классификация снимается. + Поиск ограничен HDL sources и candidate argument edges, не всем графом. + +Это синтаксические и обусловленные декларацией роли доступа, а не доказательство +исполнения, электрического драйвера, latch/race, timing или CDC. + +## Проверки + +30 focused tests прошли, включая публичные MCP/CLI, negative controls, +неизменённый non-HDL explore и source-drift guard. Постоянный sync-тест меняет +output→input, удаляет и возвращает task как inout при неизменном top; результат +совпадает с clean rebuild и не оставляет прежних access tags. + +Реальные запросы через ToolHandler: + +| Корпус | Проверенные запросы | +|---|---| +| Dual UART (11 файлов) | top::hb_cnt/write, top::clk/event | +| eMMC reader (33 файла) | crc/write, bit_in/read, feedback/write, enable/control внутри emmc_crc16 | +| AXI (104 файла) | axi_atop_filter::clk_i/event | + +Отдельная копия AXI: изменение axi_pkg.sv, sync 366 мс; 6981 access/argument +edges полностью совпали с clean rebuild, включая source positions и metadata. +Исходные пользовательские RTL не изменялись. Это измерение одного локального +контроля, не общая гарантия производительности. + +Полный native: 295 test files, 4839 passed, 9 skipped, 0 failed. +Полный WASM: 294 test files passed, 1 skipped; 4829 passed, 19 skipped, 0 failed. +Build с viewer/30 grammar assets и TypeScript прошли. Все 10 активных индексов: +stamp 37, complete, 0 pending changes. + +Первый native-прогон выявил округление mtime в новой тестовой fixture на 1 мс; +фиксированное целое значение timestamp устранило нестабильность, затем прогон +повторён. Проверка SHA256 исходника не ослаблялась. +Артефакты: .scratch/hdl-access-complete-focused.log, hdl-access-real-results.json, +hdl-access-real-sync-results.json, hdl-access-*.txt и hdl-access-final-*.log. diff --git a/src/bin/codegraph.ts b/src/bin/codegraph.ts index 10f78b622..f953115dd 100644 --- a/src/bin/codegraph.ts +++ b/src/bin/codegraph.ts @@ -1307,7 +1307,8 @@ program .description('Explore an area: relevant symbols\' source + call paths in one shot (same output as the codegraph_explore MCP tool)') .option('-p, --path ', 'Project path') .option('--max-files ', 'Maximum number of files to include source from') - .action(async (queryParts: string[], options: { path?: string; maxFiles?: string }) => { + .option('--hdl-access ', 'HDL signal access: read, write, readwrite, control, event, all (query is one exact signal name)') + .action(async (queryParts: string[], options: { path?: string; maxFiles?: string; hdlAccess?: string }) => { const projectPath = resolveProjectPath(options.path); try { @@ -1323,6 +1324,7 @@ program const args: Record = { query: queryParts.join(' ') }; if (options.maxFiles) args.maxFiles = parseInt(options.maxFiles, 10); + if (options.hdlAccess) args.hdlAccess = options.hdlAccess; const result = await handler.execute('codegraph_explore', args); console.log(result.content[0]?.text ?? ''); diff --git a/src/db/queries.ts b/src/db/queries.ts index 72037a9b4..4bbb88d41 100644 --- a/src/db/queries.ts +++ b/src/db/queries.ts @@ -3574,6 +3574,19 @@ export class QueryBuilder { })(); } + /** HDL call arguments may change access when a remote formal changes direction. + * Seek HDL sources first, then their indexed outgoing edges; ordinary projects + * have no rows here. Include unclassified arguments so newly indexed callees + * can provide direction evidence on the next sync. */ + getHdlCallArgumentEdges(): Array { + const rows = this.db.prepare(`SELECT e.*, src.file_path AS source_file_path, src.language AS source_language + FROM nodes src JOIN edges e ON e.source = src.id + WHERE src.language = 'verilog' AND e.kind = 'references' AND e.metadata LIKE '%hdl:call-arg:%'`) + .all() as Array; + return rows.map(row => ({ ...rowToEdge(row), edgeId: row.id, + sourceFilePath: row.source_file_path, sourceLanguage: row.source_language })); + } + /** * Distinct node names present in the given files — the symbol names a sync * pass uses to look up retryable failed refs after those files changed. diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index 30322a4cd..6057efed2 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 36; +export const EXTRACTION_VERSION = 37; diff --git a/src/extraction/index.ts b/src/extraction/index.ts index 17daed9c8..e7d643c9b 100644 --- a/src/extraction/index.ts +++ b/src/extraction/index.ts @@ -3022,6 +3022,27 @@ export class ExtractionOrchestrator { return refs.length; } + /** Reclassify argument accesses against current function/task formals. + * Existing calls are dependencies; missing signatures also need retries when + * a callee appears, so retain and revisit their plain argument references. */ + resurrectHdlCallArgumentEdges(changedFilePaths: string[], removedFiles = false): number { + if (!changedFilePaths.length && !removedFiles) return 0; + const overrides = loadExtensionOverrides(this.rootDir); + // Removed files are absent from changedFilePaths and their language records + // have already cascaded; existing HDL argument sites still need declassification. + if (!removedFiles && !changedFilePaths.some(file => detectLanguage(file, undefined, overrides) === 'verilog')) return 0; + const fresh = new Set(changedFilePaths); + const candidates = this.queries.getHdlCallArgumentEdges().filter(e => !fresh.has(e.sourceFilePath)); + const ids: number[] = []; + const refs: UnresolvedReference[] = []; + for (const edge of candidates) { + const ref = resurrectRefFromDroppedEdge(edge); + if (ref) { ids.push(edge.edgeId); refs.push(ref); } + } + if (refs.length) this.queries.replaceResolutionEdgesWithUnresolvedRefs(ids, refs); + return refs.length; + } + /** * Sync the index with the current file state. * diff --git a/src/extraction/languages/verilog-call-access.ts b/src/extraction/languages/verilog-call-access.ts new file mode 100644 index 000000000..7c5b374d5 --- /dev/null +++ b/src/extraction/languages/verilog-call-access.ts @@ -0,0 +1,80 @@ +import type { Node as SyntaxNode } from 'web-tree-sitter'; +import type { ExtractorContext } from '../tree-sitter-types'; + +export const VERILOG_CALL_ARGUMENT_PREFIX = 'hdl:call-arg:'; +export interface VerilogCallArgument { + callee: string; + callableId: string; + scope: string; + argument: number | string; + slots: Array<{ key: number | string; omitted: boolean }>; + role: 'value' | 'index'; + writeTarget: boolean; + referenceTarget: boolean; +} + +function assignable(node: SyntaxNode, allowConcat = true): boolean { + if (node.type === 'expression') return node.namedChildCount === 1 && !!node.firstNamedChild && assignable(node.firstNamedChild, allowConcat); + if (node.type === 'primary') { + const first = node.firstNamedChild; + return !!first && assignable(first, allowConcat) && node.namedChildren.slice(1).every(n => n.type === 'select' + && !n.namedChildren.some(c => ['simple_identifier', 'escaped_identifier'].includes(c.type))); + } + if (node.type === 'hierarchical_identifier') return node.namedChildCount === 1 + && ['simple_identifier', 'escaped_identifier'].includes(node.firstNamedChild?.type ?? ''); + if (node.type === 'concatenation') return allowConcat && node.namedChildren.length > 0 && node.namedChildren.every(n => assignable(n, allowConcat)); + return false; +} + +/** Annotate an already discovered local signal occurrence; never emit a second edge. */ +export function getVerilogCallArgumentCandidates(id: SyntaxNode, ctx: ExtractorContext): string[] { + let argument: SyntaxNode = id; + let role: VerilogCallArgument['role'] = 'value'; + while (argument.parent && argument.parent.type !== 'list_of_arguments') { + argument = argument.parent; + if (['select', 'constant_select', 'bit_select', 'constant_bit_select', 'part_select_range'].includes(argument.type)) role = 'index'; + if (['function_declaration', 'task_declaration', 'module_declaration'].includes(argument.type)) return []; + } + const list = argument.parent; + if (!list || list.hasError || argument.type !== 'expression') return []; + const call = list.parent?.type === 'method_call_body' ? list.parent.parent : list.parent; + if (!call || call.hasError) return []; + let callee: string | undefined; + if (call.type === 'tf_call') callee = call.namedChildren.find(n => n.type === 'hierarchical_identifier')?.text.trim(); + if (call.type === 'method_call') { + const receiver = call.namedChildren.find(n => n.type === 'primary'); + const name = list.parent?.childForFieldName('name'); + if (receiver && name && /^\s*::\s*$/.test(ctx.source.slice(receiver.endIndex, name.startIndex))) callee = `${receiver.text.trim()}::${name.text.trim()}`; + } + if (!callee) return []; + const segments: SyntaxNode[][] = [[]]; + for (const child of list.children) { + if (child.type === ',') segments.push([]); + else if (!['comment', 'block_comment', 'one_line_comment'].includes(child.type)) segments[segments.length - 1]!.push(child); + } + const slots: VerilogCallArgument['slots'] = []; + let selected: number | string | undefined; + let namedSeen = false; + for (let index = 0; index < segments.length; index++) { + const segment = segments[index]!; + const named = segment[0]?.type === '.'; + const expression = segment.find(n => n.type === 'expression'); + let key: number | string = index; + if (named) { + namedSeen = true; + const name = segment.find(n => ['simple_identifier', 'escaped_identifier'].includes(n.type)); + if (!name) return []; + key = name.text.trim(); + } else if (namedSeen) return []; // A positional actual cannot follow named ones. + slots.push({ key, omitted: !expression }); + if (expression?.id === argument.id) selected = key; + } + if (selected === undefined) return []; + const lexical = ctx.nodes.find(n => n.id === ctx.nodeStack[ctx.nodeStack.length - 1]); + const owner = [...ctx.nodeStack].reverse().map(nodeId => ctx.nodes.find(n => n.id === nodeId)) + .find(n => n?.kind === 'function' || n?.kind === 'method') ?? lexical; + if (!owner || !lexical) return []; + const metadata: VerilogCallArgument = { callee, callableId: owner.id, scope: lexical.qualifiedName, + argument: selected, slots, role, writeTarget: assignable(argument), referenceTarget: assignable(argument, false) }; + return [`${VERILOG_CALL_ARGUMENT_PREFIX}${JSON.stringify(metadata)}`]; +} diff --git a/src/extraction/languages/verilog-signals.ts b/src/extraction/languages/verilog-signals.ts index 1ff03c334..fdfd40ff9 100644 --- a/src/extraction/languages/verilog-signals.ts +++ b/src/extraction/languages/verilog-signals.ts @@ -1,3 +1,4 @@ +import { getVerilogCallArgumentCandidates } from './verilog-call-access'; import type { Node as SyntaxNode } from 'web-tree-sitter'; import type { ExtractorContext } from '../tree-sitter-types'; import { getNodeText } from '../tree-sitter-helpers'; @@ -81,7 +82,61 @@ export function isVerilogGenerateBinding(node: SyntaxNode, ctx: ExtractorContext return false; } -/** Emit exact syntactic occurrences, without claiming drive/read semantics. +/** Describe the syntactic role of an occurrence, not simulated drive/race behavior. + * Calls and other unknown constructs remain ordinary references unless a + * separate argument resolver can prove their formal direction. + */ +function signalAccess(id: SyntaxNode, source: string): string[] { + let lhs = false; + const role = (kind: string): string[] => { + const roles = [`hdl:access:${kind}`]; + if (kind === 'write' || kind === 'readwrite') { + for (let context: SyntaxNode | null = id; context; context = context.parent) { + if (['statement_item', 'list_of_arguments'].includes(context.type)) break; + if (['cond_predicate', 'case_expression', 'case_item_expression'].includes(context.type) + || (context.type === 'expression' && ['loop_statement', 'wait_statement'].includes(context.parent?.type ?? ''))) { + roles.push('hdl:access:control'); + break; + } + } + } + return roles; + }; + for (let current: SyntaxNode | null = id; current; current = current.parent) { + if (['select', 'constant_select', 'bit_select', 'constant_bit_select', 'constant_indexed_range', 'constant_range'].includes(current.type)) return role('read'); + if (['variable_lvalue', 'net_lvalue'].includes(current.type)) lhs = true; + if (current.type === 'list_of_arguments') return []; + if (current.type === 'inc_or_dec_expression') return lhs ? role('readwrite') : []; + if (['operator_assignment', 'blocking_assignment', 'nonblocking_assignment', 'net_assignment', 'variable_assignment'].includes(current.type)) { + const op = children(current).find(n => n.type === 'assignment_operator'); + return role(lhs ? (op && getNodeText(op, source).trim() !== '=' ? 'readwrite' : 'write') : 'read'); + } + if (current.type === 'delay_control') return role('read'); + if (current.type === 'jump_statement' && current.children.some(n => n.type === 'return')) return role('read'); + if (current.type === 'event_expression') { + const iff = current.children.find(n => n.type === 'iff'); + if (iff && id.startIndex > iff.endIndex) return role('control'); + const edge = children(current).find(n => n.type === 'edge_identifier'); + const text = edge && getNodeText(edge, source).trim(); + return [...role('event'), ...(['posedge', 'negedge'].includes(text ?? '') ? [`hdl:event:${text}`] : [])]; + } + if (['cond_predicate', 'case_expression', 'case_item_expression'].includes(current.type) + || (current.type === 'expression' && ['loop_statement', 'wait_statement'].includes(current.parent?.type ?? ''))) return role('control'); + if (['variable_decl_assignment', 'net_decl_assignment', 'for_variable_declaration', 'tf_port_item'].includes(current.type)) return role('read'); + if (['statement_item', 'function_body_declaration', 'task_body_declaration', 'module_declaration'].includes(current.type)) return []; + } + return []; +} + +function hasIncompleteProceduralScope(node: SyntaxNode): boolean { + for (let ancestor: SyntaxNode | null = node; ancestor; ancestor = ancestor.parent) { + if (['always_construct', 'initial_construct', 'final_construct', 'function_declaration', 'task_declaration', 'seq_block', 'par_block', 'loop_statement'].includes(ancestor.type) && ancestor.hasError) return true; + if (['module_declaration', 'interface_declaration', 'program_declaration'].includes(ancestor.type)) break; + } + return false; +} + +/** Emit exact syntactic occurrences and bounded source access roles. * A dedicated resolver must bind these only in the lexical scope of the owner. * Dotted hierarchical accesses are deliberately excluded: their root is not * sufficient evidence that the terminal signal belongs to this module. @@ -90,17 +145,19 @@ export function addVerilogSignalReferences(node: SyntaxNode, ctx: ExtractorConte // Parser recovery can lose a declaration while retaining its later uses. // Keep the source nodes, but do not bind names from an incomplete procedural // region to outer declarations. An unrelated valid process remains usable. - for (let ancestor: SyntaxNode | null = node; ancestor; ancestor = ancestor.parent) { - if (['always_construct', 'initial_construct', 'final_construct', 'function_declaration', 'task_declaration', 'seq_block', 'par_block', 'loop_statement'].includes(ancestor.type) && ancestor.hasError) return; - if (['module_declaration', 'interface_declaration', 'program_declaration'].includes(ancestor.type)) break; - } + if (hasIncompleteProceduralScope(node)) return; const skip = new Set(['data_declaration', 'net_declaration', 'for_variable_declaration', 'tf_port_list', 'tf_port_declaration', 'tf_call', 'ps_or_hierarchical_function_identifier']); const emit = (id: SyntaxNode): void => { const name = getNodeText(id, ctx.source).trim(); if (isVerilogGenerateBinding(id, ctx, name)) return; + const syntax = signalAccess(id, ctx.source); + // i++ remains a read/write occurrence even when its resulting value is + // passed to an input formal. Formal direction cannot erase that side effect. + const explicitEffect = syntax.some(c => c === 'hdl:access:write' || c === 'hdl:access:readwrite'); ctx.addUnresolvedReference({ fromNodeId: ownerId, referenceName: `hdl:signal:${name}`, - referenceKind: 'references', line: id.startPosition.row + 1, column: id.startPosition.column }); + referenceKind: 'references', line: id.startPosition.row + 1, column: id.startPosition.column, + candidates: [...syntax, ...(explicitEffect ? [] : getVerilogCallArgumentCandidates(id, ctx))] }); }; const visit = (current: SyntaxNode): void => { if (lexicalScope && current.id !== node.id && ['seq_block', 'par_block', 'loop_statement'].includes(current.type)) return; @@ -140,7 +197,7 @@ export function addVerilogSignalReferences(node: SyntaxNode, ctx: ExtractorConte for (const child of children(current)) if (child.id !== id?.id) visit(child); return; } - if (current.type === 'hierarchical_identifier' || current.type === 'constant_primary') { + if (current.type === 'hierarchical_identifier' || current.type === 'constant_primary' || current.type === 'delay_value') { const id = identifier(current); // A single AST identifier is local evidence; qualified/member expressions // must not collapse to a terminal name merely because that signal exists. @@ -160,6 +217,47 @@ export function addVerilogSignalReferences(node: SyntaxNode, ctx: ExtractorConte visit(node); } +/** Source-order/direction evidence for function/task actual arguments. */ +function formalMetadata(node: SyntaxNode, id: SyntaxNode, source: string): string[] { + for (let ancestor: SyntaxNode | null = node; ancestor; ancestor = ancestor.parent) { + if (['function_declaration', 'task_declaration'].includes(ancestor.type)) { + if (ancestor.hasError) return []; + break; + } + } + const uncertain = (part: SyntaxNode): boolean => !part.type.endsWith('_comment') + && (part.type.includes('directive') || part.type.includes('macro') || children(part).some(uncertain)); + if (node.type === 'tf_port_item' && node.parent && uncertain(node.parent)) return []; + const declarations: SyntaxNode[] = []; + if (node.type === 'tf_port_item') { + declarations.push(...(node.parent?.namedChildren.filter(n => n.type === 'tf_port_item') ?? [])); + } else if (node.type === 'tf_port_declaration') { + const body = node.parent?.parent; + if (!body || !['task_body_declaration', 'function_body_declaration'].includes(body.type) || uncertain(body)) return []; + for (const item of children(body)) { + declarations.push(...children(item).filter(n => n.type === 'tf_port_declaration')); + } + } else return []; + let index = 0; + let inherited = 'input'; + for (const declaration of declarations) { + const directionNode = children(declaration).find(n => n.type === 'tf_port_direction'); + const direct = directionNode && getNodeText(directionNode, source).trim().replace(/\s+/g, '-'); + const direction = direct ?? (node.type === 'tf_port_item' ? inherited : 'input'); + inherited = direction; + const list = declaration.type === 'tf_port_declaration' + ? children(declaration).find(n => n.type === 'list_of_tf_variable_identifiers') : declaration; + for (const name of list ? children(list).filter(n => ['simple_identifier', 'escaped_identifier'].includes(n.type)) : []) { + if (name.id === id.id) { + const hasDefault = name.nextNamedSibling?.type === 'expression'; + return [`hdl:formal-index:${index}`, ...(['input', 'output', 'inout', 'ref', 'const-ref'].includes(direction) ? [`hdl:direction:${direction}`] : []), ...(hasDefault ? ['hdl:default'] : [])]; + } + index++; + } + } + return []; +} + /** HDL declarations and executable blocks; called before generic recursion. */ export function visitVerilogSignals(node: SyntaxNode, ctx: ExtractorContext): boolean { if (['seq_block', 'par_block', 'loop_statement'].includes(node.type)) { @@ -183,7 +281,7 @@ export function visitVerilogSignals(node: SyntaxNode, ctx: ExtractorContext): bo const ids = list ? children(list).filter(n => ['simple_identifier', 'escaped_identifier'].includes(n.type)) : []; for (const id of ids) { const created = ctx.createNode('field', getNodeText(id, ctx.source), id, - { signature: getNodeText(node, ctx.source), decorators: [node.type.startsWith('tf_') ? 'hdl:formal' : 'hdl:signal'] }); + { signature: getNodeText(node, ctx.source), decorators: [node.type.startsWith('tf_') ? 'hdl:formal' : 'hdl:signal', ...formalMetadata(node, id, ctx.source)] }); // Declarator initializers belong to this declaration's lexical scope. if (created) { for (let next = id.nextNamedSibling; next && !ids.some(n => n.id === next!.id); next = next.nextNamedSibling) { @@ -252,8 +350,17 @@ export function visitVerilogSignals(node: SyntaxNode, ctx: ExtractorContext): bo const port = ctx.nodes.find(n => n.qualifiedName === qualified && n.decorators?.includes('hdl:port')); const created = port ?? ctx.createNode('field', text, decl, { signature: getNodeText(node, ctx.source), decorators: ['hdl:signal'] }); - if (created) for (const child of children(decl)) { - if (child.id !== name.id) addVerilogSignalReferences(child, ctx, created.id); + if (created) { + // The '=' token proves a source initialization; dimensions and bare + // declarations are dependencies/declarations, not writes to the name. + if (!decl.hasError && !hasIncompleteProceduralScope(decl) && decl.children.some(n => n.type === '=')) { + ctx.addUnresolvedReference({ fromNodeId: created.id, referenceName: `hdl:signal:${text}`, + referenceKind: 'references', line: name.startPosition.row + 1, column: name.startPosition.column, + candidates: ['hdl:access:write'] }); + } + for (const child of children(decl)) { + if (child.id !== name.id) addVerilogSignalReferences(child, ctx, created.id); + } } } } @@ -269,8 +376,8 @@ export function visitVerilogSignals(node: SyntaxNode, ctx: ExtractorContext): bo const created = ctx.createNode('function', name, node, { signature: getNodeText(node, ctx.source), decorators: ['hdl:process', `hdl:${kind}`] }); if (created) { - addVerilogSignalReferences(node, ctx, created.id, true); ctx.pushScope(created.id); + addVerilogSignalReferences(node, ctx, created.id, true); } walkChildren(node, ctx); if (created) ctx.popScope(); diff --git a/src/index.ts b/src/index.ts index ed277bf8c..4bd3b9330 100644 --- a/src/index.ts +++ b/src/index.ts @@ -978,6 +978,10 @@ export class CodeGraph { } } + // Access direction is signature-dependent even if no node name changed. + // Re-open typed and still-unclassified HDL argument sites in untouched files. + this.orchestrator.resurrectHdlCallArgumentEdges(result.changedFilePaths ?? [], result.filesRemoved > 0); + // Orphan sweep (#1187). A resolution pass that dies mid-run — the #850 // daemon liveness watchdog's SIGKILL (#1122), Ctrl-C, a crash — leaves // the refs it never reached in unresolved_refs, and the git-scoped fast diff --git a/src/mcp/hdl-access.ts b/src/mcp/hdl-access.ts new file mode 100644 index 000000000..9e1713ed2 --- /dev/null +++ b/src/mcp/hdl-access.ts @@ -0,0 +1,102 @@ +import type CodeGraph from '../index'; +import type { Edge, Node } from '../types'; +import { readFileSync, statSync } from 'node:fs'; +import { createHash } from 'node:crypto'; +import { validatePathWithinRoot } from '../utils'; + +export const HDL_ACCESS_FILTERS = ['read', 'write', 'readwrite', 'control', 'event', 'all'] as const; +export type HdlAccessFilter = typeof HDL_ACCESS_FILTERS[number]; +const ACCESS_KINDS = new Set(['read', 'write', 'readwrite', 'control', 'event']); + +export function hdlAccessKinds(edge: Edge): string[] { + const value = edge.metadata?.hdlAccess; + return Array.isArray(value) ? [...new Set(value.filter((v): v is string => typeof v === 'string' && ACCESS_KINDS.has(v)))].sort() : []; +} +function matches(kinds: string[], filter: HdlAccessFilter): boolean { + if (filter === 'all') return kinds.length > 0; + if (filter === 'read') return kinds.some(k => ['read', 'readwrite', 'control', 'event'].includes(k)); + if (filter === 'write') return kinds.some(k => k === 'write' || k === 'readwrite'); + if (filter === 'readwrite') return kinds.includes('readwrite') || (kinds.includes('read') && kinds.includes('write')); + return kinds.includes(filter); +} + +/** Exact HDL signal access sites, using raw edges rather than neighbour-deduped callers. */ +export function formatHdlAccess(cg: CodeGraph, query: string, filter: HdlAccessFilter, maxFiles = 12): string { + const name = query.trim(); + const exact = name.includes('::') ? cg.getNodesByQualifiedName(name) : cg.getNodesByName(name); + const matchesByName = exact.length || !name.includes('.') || name.includes('\\') + ? exact : cg.getNodesByQualifiedName(name.replace(/\./g, '::')); + const targets = matchesByName + .filter(n => n.language === 'verilog' && ['field', 'variable', 'constant'].includes(n.kind)) + .sort((a, b) => a.filePath.localeCompare(b.filePath) || a.startLine - b.startLine || a.qualifiedName.localeCompare(b.qualifiedName)); + if (!targets.length) return `No exact HDL signal matches "${name}". Use one signal name or qualified name (for example top::data).`; + const lines = [`**HDL access: ${name} — ${filter}**`, + 'Source occurrences only: read includes control/event uses; write follows a syntactic assignment/update or a known callable formal\'s argument direction, not an elaborated driver or timing result.']; + const sourceCache = new Map(); + let snippetBudget = 12000, shownSites = 0, totalSites = 0, unclassified = 0; + const sourceLines = (file: string): string[] | null => { + if (sourceCache.has(file)) return sourceCache.get(file)!; + if (sourceCache.size >= maxFiles) return null; + let source: string[] | null = null; + try { + const record = cg.getFile(file); + const absolute = validatePathWithinRoot(cg.getProjectRoot(), file); + if (record && absolute) { + const before = statSync(absolute); + if (before.size === record.size && Math.floor(before.mtimeMs) === Math.floor(record.modifiedAt)) { + const text = readFileSync(absolute, 'utf8'); + const after = statSync(absolute); + // Same SHA-256 over UTF-8 text as extraction's hashContent. Avoid + // importing the heavy extraction module on the MCP tools/list path. + const hash = createHash('sha256').update(text).digest('hex'); + if (before.size === after.size && before.mtimeMs === after.mtimeMs && hash === record.contentHash) source = text.split(/\r?\n/); + } + } + } catch { /* A missing or changed file must never be presented as the indexed occurrence. */ } + sourceCache.set(file, source); + return source; + }; + for (const target of targets) { + const sites: { edge: Edge; owner: Node; kinds: string[] }[] = []; + for (const edge of cg.getIncomingEdges(target.id)) { + if (edge.kind !== 'references') continue; + const owner = cg.getNode(edge.source); + if (!owner || owner.language !== 'verilog') continue; + const kinds = hdlAccessKinds(edge); + if (!kinds.length) { unclassified++; continue; } + if (matches(kinds, filter)) sites.push({ edge, owner, kinds }); + } + sites.sort((a, b) => a.owner.filePath.localeCompare(b.owner.filePath) || (a.edge.line ?? 0) - (b.edge.line ?? 0) || (a.edge.column ?? 0) - (b.edge.column ?? 0) || a.owner.qualifiedName.localeCompare(b.owner.qualifiedName)); + totalSites += sites.length; + const definitionVerified = sourceLines(target.filePath) !== null; + lines.push('', `**${target.qualifiedName}** — ${target.filePath}:${target.startLine}`, `${sites.length} matching access site(s).`); + if (!definitionVerified) lines.push('Definition location is from the index; current source is unverified (changed/unavailable or maxFiles reached).'); + for (const { edge, owner, kinds } of sites) { + if (shownSites >= 60) continue; + shownSites++; + lines.push(`- [${kinds.join(', ')}] ${owner.qualifiedName} — ${owner.filePath}:${edge.line ?? owner.startLine}${typeof edge.column === 'number' ? `:${edge.column + 1}` : ''}`); + const callableId = edge.metadata?.hdlCallTargetId, formalId = edge.metadata?.hdlFormalId; + if (typeof callableId === 'string' && typeof formalId === 'string') { + const callable = cg.getNode(callableId), formal = cg.getNode(formalId); + const direction = formal?.decorators?.find(d => d.startsWith('hdl:direction:'))?.slice('hdl:direction:'.length); + if (callable?.language === 'verilog' && formal?.language === 'verilog' && direction) { + const status = sourceLines(callable.filePath) === null ? ' [indexed definition; source unverified]' : ''; + lines.push(` Formal direction: ${callable.qualifiedName}(${direction} ${formal.name}).${status}`); + } + } + const source = sourceLines(owner.filePath); + if (!source) { lines.push(' Source omitted: changed/unavailable since indexing, or maxFiles reached.'); continue; } + if (!edge.line || edge.line > source.length) { lines.push(' No verified source line for this occurrence.'); continue; } + const start = Math.max(1, edge.line - 1), end = Math.min(source.length, edge.line + 1); + const excerpt = source.slice(start - 1, end).map((s, i) => `${start + i}\t${s}`).join('\n'); + if (excerpt.length > snippetBudget || excerpt.length > 2000) { lines.push(' Source snippet omitted by output budget.'); continue; } + snippetBudget -= excerpt.length; + const fence = '`'.repeat(Math.max(3, ...(excerpt.match(/`+/g) ?? []).map(s => s.length + 1))); + lines.push(`${fence}systemverilog`, excerpt, fence); + } + } + if (shownSites < totalSites) lines.push('', `Showing ${shownSites} of ${totalSites} matching sites; narrow with a qualified signal name.`); + if (unclassified) lines.push('', `${unclassified} unclassified reference(s) excluded. Connections and unknown uses do not imply reads or writes.`); + lines.push('', 'An empty result is not proof of no access outside the supported source patterns.'); + return lines.join('\n'); +} diff --git a/src/mcp/server-instructions.ts b/src/mcp/server-instructions.ts index c05a5c826..6c29e5c29 100644 --- a/src/mcp/server-instructions.ts +++ b/src/mcp/server-instructions.ts @@ -60,6 +60,8 @@ calls; a grep/read exploration is dozens. ## Verilog / SystemVerilog +For signal readers/writers, pass one exact or qualified signal name as query and set hdlAccess to read, write, readwrite, control, event, or all. Read includes control/event and readwrite; write includes readwrite. Results show source positions and known formal-argument direction evidence. Unknown references remain unclassified; empty results do not prove absence of access. + Query module and instance names to inspect hierarchy and the exact port-connection source. Ports/signals, lexical block scopes, generate template parameters, modports and always/assign blocks are searchable. Local signal references belong to their block; calls retain the enclosing function/process. Parser-recovered procedural regions may omit uncertain signal references. Query an instance-qualified connection such as top.u_rx1.rx to inspect its local expression and declared target port; an explicit empty connection still names a formal port but has no local endpoint. Bit/part-select references identify the base signal and indexed expressions, not evaluated widths. HDL references record syntactic signal use, not drive direction, timing or elaborated connectivity; positional bindings require authoritative header order, and wildcard matches require known formal ports and unambiguous local signals (explicit connections take priority). Generate iterations are not expanded. Qualified package calls retain package identity. ## Anti-patterns diff --git a/src/mcp/tools.ts b/src/mcp/tools.ts index 6288a0173..f2a30ed6d 100644 --- a/src/mcp/tools.ts +++ b/src/mcp/tools.ts @@ -5,6 +5,7 @@ */ import type CodeGraph from '../index'; +import { formatHdlAccess, HDL_ACCESS_FILTERS, type HdlAccessFilter } from './hdl-access'; import type { QueryPool } from './query-pool'; import { findNearestCodeGraphRoot } from '../directory'; // Lazy-load the heavy CodeGraph chain off the MCP startup path — see the same @@ -1343,6 +1344,11 @@ export const tools: ToolDefinition[] = [ description: 'Maximum number of files to include source code from (default: 12)', default: 12, }, + hdlAccess: { + type: 'string', + description: 'HDL signal access filter. With this option query must be one exact signal name or qualified name; read includes control/event uses, write includes readwrite. Returns access sites and source, not elaborated drivers.', + enum: [...HDL_ACCESS_FILTERS], + }, projectPath: projectPathProperty, }, required: ['query'], @@ -3349,6 +3355,13 @@ export class ToolHandler { const cg = this.getCodeGraph(args.projectPath as string | undefined); const projectRoot = cg.getProjectRoot(); + if (args.hdlAccess !== undefined) { + if (typeof args.hdlAccess !== 'string' || !HDL_ACCESS_FILTERS.includes(args.hdlAccess as HdlAccessFilter)) { + return this.errorResult(`hdlAccess must be one of: ${HDL_ACCESS_FILTERS.join(', ')}`); + } + return this.textResult(this.truncateOutput(formatHdlAccess(cg, rawQuery, args.hdlAccess as HdlAccessFilter, + clamp((args.maxFiles as number) || 12, 1, 20)))); + } // Resolve adaptive output budget from project size. Falls back to the // largest-tier defaults if stats aren't available, which preserves diff --git a/src/resolution/verilog-call-access.ts b/src/resolution/verilog-call-access.ts new file mode 100644 index 000000000..4faedce82 --- /dev/null +++ b/src/resolution/verilog-call-access.ts @@ -0,0 +1,55 @@ +import { VERILOG_CALL_ARGUMENT_PREFIX, type VerilogCallArgument } from '../extraction/languages/verilog-call-access'; +import type { UnresolvedRef, ResolutionContext, ResolvedRef } from './types'; + +export interface VerilogCallAccess { + access: 'read' | 'write' | 'readwrite'; + callableId: string; + formalId: string; +} + +/** Classify a call actual only after a precise callable and complete formal list are known. */ +export function resolveVerilogCallArgumentAccess( + ref: UnresolvedRef, + context: ResolutionContext, + resolveCallable: (ref: UnresolvedRef, context: ResolutionContext) => ResolvedRef | null, +): VerilogCallAccess | undefined { + const token = ref.candidates?.find(c => c.startsWith(VERILOG_CALL_ARGUMENT_PREFIX)); + if (!token) return undefined; + let info: VerilogCallArgument; + try { info = JSON.parse(token.slice(VERILOG_CALL_ARGUMENT_PREFIX.length)); } catch { return undefined; } + if (!info || typeof info.callee !== 'string' || typeof info.scope !== 'string' || typeof info.callableId !== 'string' + || !Array.isArray(info.slots) || !['value', 'index'].includes(info.role) || typeof info.writeTarget !== 'boolean' + || typeof info.referenceTarget !== 'boolean') return undefined; + const caller = context.getNodeById?.(info.callableId); + if (!caller || caller.filePath !== ref.filePath || caller.language !== 'verilog') return undefined; + const target = resolveCallable({ ...ref, fromNodeId: caller.id, referenceName: info.callee, + referenceKind: 'calls', candidates: [`hdl:scope:${info.scope}`] }, context); + const callable = target && context.getNodeById?.(target.targetNodeId); + if (!callable || callable.language !== 'verilog' || !['function', 'method'].includes(callable.kind)) return undefined; + const formals = context.getNodesInFile(callable.filePath).filter(n => n.decorators?.includes('hdl:formal') + && n.qualifiedName === `${callable.qualifiedName}::${n.name}` && n.startLine >= callable.startLine && n.endLine <= callable.endLine); + const indexed = formals.map(node => ({node, index: Number(node.decorators?.find(d => d.startsWith('hdl:formal-index:'))?.slice('hdl:formal-index:'.length))})).sort((a,b) => a.index-b.index); + if (!indexed.length || indexed.some((f,i) => f.index !== i)) return undefined; + const canonical = (name: string) => name.replace(/^\\/, ''); + if (new Set(indexed.map(f => canonical(f.node.name))).size !== indexed.length) return undefined; + const assigned = new Set(); + let selected: typeof indexed[number] | undefined; + for (const slot of info.slots) { + if (!slot || typeof slot.omitted !== 'boolean') return undefined; + const formal = typeof slot.key === 'number' && Number.isSafeInteger(slot.key) ? indexed[slot.key] + : typeof slot.key === 'string' ? indexed.find(f => canonical(f.node.name) === canonical(slot.key as string)) : undefined; + if (!formal || assigned.has(formal.index)) return undefined; + assigned.add(formal.index); + if (slot.omitted && !formal.node.decorators?.includes('hdl:default')) return undefined; + if (slot.key === info.argument && !slot.omitted) selected = formal; + } + if (!selected || indexed.some(f => !assigned.has(f.index) && !f.node.decorators?.includes('hdl:default'))) return undefined; + const direction = selected.node.decorators?.find(d => d.startsWith('hdl:direction:'))?.slice('hdl:direction:'.length); + let access: VerilogCallAccess['access']; + if (info.role === 'index' || direction === 'input' || direction === 'const-ref') access = 'read'; + else if (!info.writeTarget) return undefined; + else if (direction === 'output') access = 'write'; + else if (direction === 'inout' || (direction === 'ref' && info.referenceTarget)) access = 'readwrite'; + else return undefined; + return {access, callableId: callable.id, formalId: selected.node.id}; +} diff --git a/src/resolution/verilog-members.ts b/src/resolution/verilog-members.ts index 6ba9eeebe..9ba8ae93c 100644 --- a/src/resolution/verilog-members.ts +++ b/src/resolution/verilog-members.ts @@ -1,4 +1,5 @@ import type { Node } from '../types'; +import { resolveVerilogCallArgumentAccess } from './verilog-call-access'; import type { ResolvedRef, ResolutionContext, UnresolvedRef } from './types'; export function isVerilogMemberRef(ref: UnresolvedRef): boolean { @@ -12,8 +13,20 @@ export function matchVerilogMember(ref: UnresolvedRef, context: ResolutionContex .filter(n => n.language === 'verilog' && kinds.includes(n.kind)); const result = (nodes: Node[]): ResolvedRef | null => { const unique = [...new Map(nodes.map(n => [n.id, n])).values()]; - return unique.length === 1 ? { original: ref, targetNodeId: unique[0]!.id, - confidence: 0.95, resolvedBy: 'qualified-name' } : null; + if (unique.length !== 1) return null; + let metadata: Record | undefined; + if (ref.referenceKind === 'references' && ref.referenceName.startsWith('hdl:signal:')) { + const access = [...new Set((ref.candidates ?? []).filter(c => c.startsWith('hdl:access:')) + .map(c => c.slice('hdl:access:'.length)).filter(c => ['read', 'write', 'readwrite', 'control', 'event'].includes(c)))]; + const argument = access.length ? undefined : resolveVerilogCallArgumentAccess(ref, context, matchVerilogMember); + if (argument) access.push(argument.access); + const events = [...new Set((ref.candidates ?? []).filter(c => c.startsWith('hdl:event:')) + .map(c => c.slice('hdl:event:'.length)).filter(c => ['posedge', 'negedge'].includes(c)))]; + if (access.length) metadata = { hdlAccess: access, ...(events.length ? { hdlEvent: events } : {}), + ...(argument ? { hdlCallTargetId: argument.callableId, hdlFormalId: argument.formalId } : {}) }; + } + return { original: ref, targetNodeId: unique[0]!.id, confidence: 0.95, + resolvedBy: 'qualified-name', ...(metadata ? { metadata } : {}) }; }; if (ref.referenceKind === 'references' && ref.referenceName.startsWith('hdl:signal:')) { const name = ref.referenceName.slice('hdl:signal:'.length); From b050fb8910e80116e327d9dc9a8af40bccee67bc Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 17:27:55 +0300 Subject: [PATCH 17/23] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20HDL=20build=20profiles=20=D0=B8=20=D1=81?= =?UTF-8?q?=D0=BE=D0=B3=D0=BB=D0=B0=D1=81=D0=BE=D0=B2=D0=B0=D0=BD=D0=BD?= =?UTF-8?q?=D1=8B=D0=B9=20=D0=BA=D0=BE=D0=BD=D1=82=D0=B5=D0=BA=D1=81=D1=82?= =?UTF-8?q?=20=D0=B8=D0=BD=D0=B4=D0=B5=D0=BA=D1=81=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + README.md | 4 +- __tests__/hdl-preprocess.test.ts | 80 +++++++ __tests__/hdl-profile-cli.test.ts | 35 +++ __tests__/hdl-profile-index.test.ts | 87 ++++++++ __tests__/hdl-profile-status.test.ts | 126 +++++++++++ __tests__/hdl-profile-watch.test.ts | 90 ++++++++ __tests__/hdl-profile.test.ts | 119 +++++++++++ __tests__/mcp-unindexed.test.ts | 4 +- docs/hdl-profiles.md | 91 ++++++++ docs/hdl-roadmap.md | 5 +- docs/validation-hdl-profiles-2026-09-12.md | 71 ++++++ src/bin/codegraph.ts | 17 +- src/db/queries.ts | 4 + src/extraction/extraction-version.ts | 2 +- src/extraction/index.ts | 119 ++++++++++- src/hdl/index-context.ts | 132 ++++++++++++ src/hdl/preprocess.ts | 237 +++++++++++++++++++++ src/hdl/profile.ts | 213 ++++++++++++++++++ src/hdl/status.ts | 129 +++++++++++ src/index.ts | 34 ++- src/mcp/server-instructions.ts | 2 + src/mcp/tools.ts | 13 +- src/sync/hdl-watch-scope.ts | 47 ++++ src/sync/watcher.ts | 40 +++- 25 files changed, 1677 insertions(+), 26 deletions(-) create mode 100644 __tests__/hdl-preprocess.test.ts create mode 100644 __tests__/hdl-profile-cli.test.ts create mode 100644 __tests__/hdl-profile-index.test.ts create mode 100644 __tests__/hdl-profile-status.test.ts create mode 100644 __tests__/hdl-profile-watch.test.ts create mode 100644 __tests__/hdl-profile.test.ts create mode 100644 docs/hdl-profiles.md create mode 100644 docs/validation-hdl-profiles-2026-09-12.md create mode 100644 src/hdl/index-context.ts create mode 100644 src/hdl/preprocess.ts create mode 100644 src/hdl/profile.ts create mode 100644 src/hdl/status.ts create mode 100644 src/sync/hdl-watch-scope.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index fa64067c1..38dc6f80f 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -145,6 +145,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### Fixes +- HDL: именованные profiles в codegraph.json, filelists/include/define context, сохранение offsets при conditional selection, fingerprint/sync invalidation и диагностика configured/indexed profile. Watcher учитывает profile dependencies; полноценный macro expansion пока не выполняется. + - HDL: source access roles read/write/readwrite/control/event и направления аргументов известных functions/tasks доступны через explore `hdlAccess` / CLI `--hdl-access`. Сохраняются разные позиции одной строки, initializer writes и переклассификация после изменения/удаления сигнатуры через sync. - HDL: точные procedural scopes, formal parameters и generate template declarations сохраняют локальные связи; исправлены defaults/for initializer calls, приоритет block imports и qualified cross-file replay после sync. diff --git a/README.md b/README.md index b9094339d..6d8d159a7 100644 --- a/README.md +++ b/README.md @@ -892,7 +892,7 @@ is written): | Astro | `.astro` | Full support (frontmatter + script extraction, template component/call references, `src/pages/` routes) | | Liquid | `.liquid` | Full support | | Pascal / Delphi | `.pas`, `.dpr`, `.dpk`, `.lpr` | Full support (classes, records, interfaces, enums, DFM/FMX form files) | -| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, lexical/generate scopes и formal parameters, порты/сигналы и named/positional/wildcard port bindings, bit/part selects, read/write/control/event queries, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | +| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, build profiles (filelists/includes/defines), lexical/generate scopes и formal parameters, порты/сигналы и named/positional/wildcard port bindings, bit/part selects, read/write/control/event queries, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | | Lua | `.lua` | Full support (functions, methods with receivers, local variables, `require` imports, call edges) | | R | `.R` `.r` | Full support (functions in every assignment form, S4/R5/R6 classes with methods, `library`/`require` imports, `source()` file references, call edges) | | Luau | `.luau` | Full support (everything in Lua, plus `type`/`export type` aliases, typed signatures, and Roblox instance-path `require`) | @@ -971,3 +971,5 @@ MIT [Report Bug](https://github.com/colbymchenry/codegraph/issues) · [Request Feature](https://github.com/colbymchenry/codegraph/issues) + +Подробности HDL-профилей: [настройка и ограничения](docs/hdl-profiles.md). diff --git a/__tests__/hdl-preprocess.test.ts b/__tests__/hdl-preprocess.test.ts new file mode 100644 index 000000000..631c32555 --- /dev/null +++ b/__tests__/hdl-preprocess.test.ts @@ -0,0 +1,80 @@ +import { describe, expect, it } from 'vitest'; +import { preprocessVerilog } from '../src/hdl/preprocess'; +const run=(source:string,defines:Record={})=>preprocessVerilog(source,{filePath:'top.sv',defines}); +const unchangedOffsets=(before:string,after:string)=>{ + expect(after.length).toBe(before.length); + expect([...after.matchAll(/\r|\n/g)].map(m=>m.index)).toEqual([...before.matchAll(/\r|\n/g)].map(m=>m.index)); +}; +describe('bounded HDL profile preprocessing',()=>{ + it('selects nested branches with per-unit defines and exact UTF16/CRLF positions',()=>{ + const source='// 😀\r\nmodule m(\r\n`ifdef VCS\r\ninput a\r\n`ifndef OMIT\r\n, input b\r\n`endif\r\n`else\r\ninput c\r\n`endif\r\n); endmodule'; + const selected=run(source,{VCS:null});unchangedOffsets(source,selected.source); + expect(selected.source).toContain('input a');expect(selected.source).toContain('input b');expect(selected.source).not.toContain('input c'); + expect(selected.source.indexOf('input a')).toBe(source.indexOf('input a'));expect(selected.complete).toBe(true); + const other=run(source);expect(other.source).toContain('input c');expect(other.source).not.toContain('input a'); + }); + it('supports inline conditionals, elsif and active define/undef without deleting following code',()=>{ + const source='`define A 1\nmodule m; `ifdef A wire a; `elsif B wire b; `else wire c; `endif\n`undef A\n`ifdef A wire bad; `else wire good; `endif endmodule'; + const result=run(source,{B:null});unchangedOffsets(source,result.source); + expect(result.source).toContain('`define A 1');expect(result.source).toContain('`undef A'); + expect(result.source).toContain('wire a;');expect(result.source).toContain('wire good;');expect(result.source).not.toMatch(/wire (bad|b|c);/); + }); + it('ignores directive-looking comments, strings, escaped identifiers and macro bodies',()=>{ + const source='/* `ifdef BAD */\n// `else\nmodule m; string s="`endif"; wire \\`ifdef ; endmodule\n`define MULTI(x) x \\\n `ifdef not_a_directive\n'; + const result=run(source);expect(result.source).toBe(source);expect(result.diagnostics).toEqual([]); + }); + it('does not leak macro definitions across translation units or inactive branches',()=>{ + const source='`ifdef MISSING\n`define LEAK 1\n`endif\n`ifdef LEAK\nwire bad;\n`else\nwire good;\n`endif'; + expect(run(source).source).toContain('wire good;');expect(run('`define LEAK 1').complete).toBe(true); + expect(run('`ifdef LEAK\nwire bad;\n`else\nwire good;\n`endif').source).toContain('wire good;'); + }); + it('uses nested includes for macro state while retaining original include source',()=>{ + const files:Record={ + 'a.svh':'`ifndef A_GUARD\n`define A_GUARD\n`include "b.svh"\n`endif', + 'b.svh':'`define FEATURE 1\n`include "a.svh"', + }; + const source='`include "a.svh"\n`ifdef FEATURE\nwire yes;\n`else\nwire no;\n`endif'; + const calls:string[]=[]; + const result=preprocessVerilog(source,{filePath:'top.sv',includeDirs:['inc'],readInclude:(request,_from,dirs)=>{ + expect(dirs).toEqual(['inc']);calls.push(request);return files[request]===undefined?null:{filePath:request,source:files[request]!}; + }}); + expect(result.source).toContain('`include "a.svh"');expect(result.source).toContain('wire yes;');expect(result.source).not.toContain('wire no;'); + expect(result.dependencies.sort()).toEqual(['a.svh','b.svh']);expect(result.complete).toBe(true);expect(calls.length).toBeLessThan(5); + }); + it('fails closed on unknown include macro state but keeps unrelated source',()=>{ + const source='`include "missing.svh"\nwire outside;\n`ifdef X\nwire first;\n`else\nwire second;\n`endif\n`define CERTAIN\n`ifdef CERTAIN\nwire restored;\n`endif'; + const result=run(source);expect(result.source).toContain('wire outside;');expect(result.source).toContain('wire restored;'); + expect(result.source).not.toMatch(/wire (first|second);/);expect(result.complete).toBe(false); + expect(result.diagnostics.map(d=>d.code)).toContain('unknown-conditional');unchangedOffsets(source,result.source); + }); + it('bounds unguarded include cycles with explicit diagnostics',()=>{ + const result=preprocessVerilog('`include "cycle.svh"',{filePath:'top.sv',readInclude:()=>({filePath:'cycle.svh',source:'`include "cycle.svh"'})}); + expect(result.diagnostics.map(d=>d.code)).toContain('include-cycle-or-depth');expect(result.complete).toBe(false); + }); + it.each(['`else\nwire unsafe;','`ifdef X\nwire unsafe;','`ifdef X\n`else\n`else\nwire unsafe;\n`endif'])('blanks structurally malformed conditional units: %s',source=>{ + const result=run(source);expect(result.source.trim()).toBe('');unchangedOffsets(source,result.source); + expect(result.diagnostics.map(d=>d.code)).toContain('malformed-conditional'); + }); + it('does not choose a stale branch after an opaque macro can define another macro',()=>{ + const source='`define ENABLE `define FLAG\n`ENABLE\n`ifdef FLAG\nmodule chosen; endmodule\n`else\nmodule wrong; endmodule\n`endif'; + const result=run(source);unchangedOffsets(source,result.source); + expect(result.source).toContain('`ENABLE');expect(result.source).not.toMatch(/module (chosen|wrong)/); + expect(result.diagnostics.map(d=>d.code)).toContain('unknown-conditional'); + }); + it('invalidates later nested and sibling conditions after an active opaque invocation',()=>{ + const source='`ifdef ACTIVE\n`SIDE_EFFECT\n`ifdef FLAG\nwire first;\n`else\nwire second;\n`endif\n`endif\n`ifdef ACTIVE\nwire stale;\n`endif'; + const result=run(source,{ACTIVE:null});unchangedOffsets(source,result.source); + expect(result.source).not.toMatch(/wire (first|second|stale)/);expect(result.complete).toBe(false); + }); + it('caps diagnostics while continuing macro state changes and source selection',()=>{ + const source='`OPAQUE\n'.repeat(540)+'`define RESTORED\n`ifdef RESTORED\nmodule good; endmodule\n`else\nmodule bad; endmodule\n`endif'; + const result=run(source);unchangedOffsets(source,result.source); + expect(result.diagnostics).toHaveLength(513);expect(result.diagnostics.filter(d=>d.code==='diagnostic-limit')).toHaveLength(1); + expect(result.complete).toBe(false);expect(result.source).toContain('module good;');expect(result.source).not.toContain('module bad;'); + }); + it('preserves unexpanded macros and unknown directives with diagnostics',()=>{ + const source='`define ASSUME(name, expr) name: assume property(expr);\nmodule m; `ASSUME(ok, x) `timescale 1ns/1ps\nendmodule'; + const result=run(source);expect(result.source).toBe(source); + expect(result.diagnostics.map(d=>d.code)).toEqual(['unsupported-macro-expansion','unsupported-directive']); + }); +}); diff --git a/__tests__/hdl-profile-cli.test.ts b/__tests__/hdl-profile-cli.test.ts new file mode 100644 index 000000000..db98755e2 --- /dev/null +++ b/__tests__/hdl-profile-cli.test.ts @@ -0,0 +1,35 @@ +import { it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { createHash } from 'node:crypto'; +import { spawnSync } from 'node:child_process'; +import { CodeGraph } from '../src'; + +it('passes selected source through compiled workers and preserves raw hashes across CLI index/sync/status', () => { + const root=fs.mkdtempSync(path.join(os.tmpdir(),'hdl-profile-cli-')); + const bin=path.resolve(__dirname,'../dist/bin/codegraph.js'); + const run=(args:string[])=>{const r=spawnSync(process.execPath,[bin,...args],{encoding:'utf8',timeout:30000, + env:{...process.env,CODEGRAPH_NO_DAEMON:'1',NO_COLOR:'1'}});expect(r.status,r.stderr).toBe(0);return r.stdout;}; + const source='`include "flags.svh"\nmodule top;\n`ifdef ENABLED\nfunction int selected_fn(); return 1; endfunction\n`else\nfunction int fallback_fn(); return 0; endfunction\n`endif\nendmodule'; + try{ + fs.mkdirSync(path.join(root,'inc'));fs.writeFileSync(path.join(root,'inc/flags.svh'),'`define ENABLED\n'); + fs.writeFileSync(path.join(root,'top.sv'),source);fs.writeFileSync(path.join(root,'rtl.f'),'top.sv\n'); + fs.writeFileSync(path.join(root,'codegraph.json'),JSON.stringify({hdl:{activeProfile:'synth',profiles:{synth:{filelists:['rtl.f'],includeDirs:['inc'],topModules:['top']}}}})); + CodeGraph.initSync(root).close(); + run(['index',root,'--quiet']); + let cg=CodeGraph.openSync(root);try{ + expect(cg.getNodesByName('selected_fn')).toHaveLength(1);expect(cg.getNodesByName('fallback_fn')).toHaveLength(0); + expect(cg.getFile('top.sv')?.contentHash).toBe(createHash('sha256').update(source).digest('hex')); + }finally{cg.close();} + let status=JSON.parse(run(['status',root,'--json']));expect(status.index.hdlProfile.indexed.name).toBe('synth'); + fs.writeFileSync(path.join(root,'inc/flags.svh'),'`undef ENABLED\n'); + status=JSON.parse(run(['status',root,'--json']));expect(status.index.hdlProfile.reindexRecommended).toBe(true); + run(['sync',root,'--quiet']); + cg=CodeGraph.openSync(root);try{ + expect(cg.getNodesByName('selected_fn')).toHaveLength(0);expect(cg.getNodesByName('fallback_fn')).toHaveLength(1); + }finally{cg.close();} + status=JSON.parse(run(['status',root,'--json']));expect(status.index.hdlProfile.state).toBe('matches'); + expect(run(['explore','fallback_fn','--path',root])).toContain('HDL context: indexed "synth"'); + }finally{fs.rmSync(root,{recursive:true,force:true});} +}); diff --git a/__tests__/hdl-profile-index.test.ts b/__tests__/hdl-profile-index.test.ts new file mode 100644 index 000000000..7c10edd4a --- /dev/null +++ b/__tests__/hdl-profile-index.test.ts @@ -0,0 +1,87 @@ +import { it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; + +it('switches profiles and include/filelist dependencies without mixing HDL graphs or changing source offsets', async () => { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-profile-index-')); + let cg: CodeGraph | undefined; + const write = (file: string, text: string) => { fs.mkdirSync(path.dirname(path.join(root, file)), {recursive:true}); fs.writeFileSync(path.join(root,file),text); }; + const config = (activeProfile: string) => JSON.stringify({hdl:{activeProfile,profiles:{synth:{filelists:['rtl.f'],includeDirs:['inc'],defines:{SYNTHESIS:'1'},topModules:['top']},sim:{files:['top.sv','sim.sv'],includeDirs:['inc']}}}}); + const source = '`include "defs.svh"\nmodule top;\n`ifdef SYNTHESIS\nfunction int hardware(); return 1; endfunction\n`else\nfunction int software(); return 2; endfunction\n`endif\n`ifdef EXTRA\nfunction int extra(); return 3; endfunction\n`endif\nendmodule\n'; + try { + write('top.sv',source); write('rtl.f','top.sv\n'); write('sim.sv','module sim; endmodule'); write('inc/defs.svh','// empty\n'); + write('plain.ts','export function ordinary(){return 1;}'); write('codegraph.json',config('synth')); + cg = CodeGraph.initSync(root); expect((await cg.indexAll()).success).toBe(true); + const names = () => (cg as any).db.db.prepare("SELECT name FROM nodes WHERE kind IN ('function','class') ORDER BY name").all().map((n:any)=>n.name); + expect(names()).toEqual(['hardware','ordinary','top']); + expect(cg.getNodesByName('hardware')[0].startLine).toBe(4); + expect(cg.getHdlProfileStatus()?.state).toBe('matches'); + expect(cg.getChangedFiles()).toEqual({added:[],modified:[],removed:[]}); + write('codegraph.json',config('sim')); + expect(cg.getHdlProfileStatus()?.state).toBe('mismatch'); + await cg.sync({paths:['codegraph.json']}); + expect(names()).toEqual(['ordinary','sim','software','top']); + expect(cg.getHdlProfileStatus()?.state).toBe('matches'); + write('inc/defs.svh','`define EXTRA\n'); + expect(cg.getHdlProfileStatus()?.reindexRecommended).toBe(true); + await cg.sync({paths:['inc/defs.svh']}); + expect(names()).toContain('extra'); + write('codegraph.json',config('synth')); write('rtl.f','top.sv\nsim.sv\n'); + await cg.sync({paths:['rtl.f']}); + expect(names()).toEqual(['extra','hardware','ordinary','sim','top']); + const snapshot=names(); await cg.indexAll(); expect(names()).toEqual(snapshot); + expect(fs.readFileSync(path.join(root,'top.sv'),'utf8')).toBe(source); + write('codegraph.json','{}'); await cg.sync({paths:['codegraph.json']}); + expect(names()).toContain('software'); expect(names()).toContain('hardware'); + expect(cg.getHdlProfileStatus()?.indexed.mode).toBe('raw'); + } finally { cg?.close(); fs.rmSync(root,{recursive:true,force:true}); } +}); + +it('fails closed on invalid active profile and preserves the previously indexed graph', async () => { + const root=fs.mkdtempSync(path.join(os.tmpdir(),'hdl-profile-invalid-'));let cg:CodeGraph|undefined; + try { + fs.writeFileSync(path.join(root,'top.sv'),'module top; endmodule'); + fs.writeFileSync(path.join(root,'codegraph.json'),JSON.stringify({hdl:{activeProfile:'ok',profiles:{ok:{files:['top.sv']}}}})); + cg=CodeGraph.initSync(root);await cg.indexAll(); + fs.writeFileSync(path.join(root,'codegraph.json'),JSON.stringify({hdl:{activeProfile:'missing',profiles:{ok:{files:['top.sv']}}}})); + await expect(cg.sync()).rejects.toThrow('Invalid HDL profile'); + expect(cg.getNodesByName('top')).toHaveLength(1); + expect(cg.getHdlProfileStatus()?.state).toBe('configuration-error'); + fs.writeFileSync(path.join(root,'codegraph.json'),'{'); + await expect(cg.sync()).rejects.toThrow('Invalid HDL profile'); + expect(cg.getHdlProfileStatus()?.indexed.name).toBe('ok'); + }finally{cg?.close();fs.rmSync(root,{recursive:true,force:true});} +}); + +it('stores one coherent source snapshot when a profile unit changes during a bulk index', async () => { + const root=fs.mkdtempSync(path.join(os.tmpdir(),'hdl-profile-race-'));let cg:CodeGraph|undefined; + try { + const file=path.join(root,'top.sv'); + fs.writeFileSync(file,'module old_unit; endmodule'); + fs.writeFileSync(path.join(root,'codegraph.json'),JSON.stringify({hdl:{activeProfile:'p',profiles:{p:{files:['top.sv']}}}})); + cg=CodeGraph.initSync(root);await cg.indexAll();let changed=false; + const result=await cg.indexAll({onProgress:p=>{if(!changed&&p.phase==='scanning'){changed=true;fs.writeFileSync(file,'module new_unit; endmodule');}}}); + expect(result.success).toBe(true);expect(cg.getNodesByName('old_unit')).toHaveLength(1); + expect(cg.getChangedFiles().modified).toContain('top.sv'); + await cg.sync();expect(cg.getNodesByName('new_unit')).toHaveLength(1);expect(cg.getNodesByName('old_unit')).toHaveLength(0); + }finally{cg?.close();fs.rmSync(root,{recursive:true,force:true});} +}); + +it('publishes only diagnostics for units actually updated by partial operations', async () => { + const root=fs.mkdtempSync(path.join(os.tmpdir(),'hdl-profile-partial-'));let cg:CodeGraph|undefined; + const opaque='`OPAQUE\nmodule other; endmodule'; + try{ + fs.writeFileSync(path.join(root,'top.sv'),'module top; endmodule'); + fs.writeFileSync(path.join(root,'other.sv'),opaque); + fs.writeFileSync(path.join(root,'codegraph.json'),JSON.stringify({hdl:{activeProfile:'p',profiles:{p:{files:['top.sv','other.sv']}}}})); + cg=CodeGraph.initSync(root);await cg.indexAll();expect(cg.getHdlProfileStatus()?.incomplete).toBe(true); + fs.writeFileSync(path.join(root,'other.sv'),'module other; endmodule'); + fs.writeFileSync(path.join(root,'top.sv'),'module top; wire value; endmodule'); + await cg.indexFiles(['top.sv']);expect(cg.getHdlProfileStatus()?.incomplete).toBe(true); + await cg.sync({paths:['other.sv']});expect(cg.getHdlProfileStatus()?.incomplete).toBe(false); + fs.writeFileSync(path.join(root,'top.sv'),'`OPAQUE\nmodule top; endmodule'); + await cg.indexFiles(['top.sv']);expect(cg.getHdlProfileStatus()?.incomplete).toBe(true); + }finally{cg?.close();fs.rmSync(root,{recursive:true,force:true});} +}); diff --git a/__tests__/hdl-profile-status.test.ts b/__tests__/hdl-profile-status.test.ts new file mode 100644 index 000000000..5e509996c --- /dev/null +++ b/__tests__/hdl-profile-status.test.ts @@ -0,0 +1,126 @@ +import { describe, expect, it } from 'vitest'; +import { buildHdlProfileStatus, formatHdlProfileStatus, type HdlProfileConfiguration, type HdlIndexedProfileMetadata } from '../src/hdl/status'; +const active = (name='simulation',fingerprint='configured-sim'): HdlProfileConfiguration => ({status:'active',profile:{name,fingerprint},diagnostics:[]}); +const indexed = (name='simulation',configurationFingerprint='configured-sim',effective='effective-with-headers'):HdlIndexedProfileMetadata => ({ + name,fingerprint:effective,context:JSON.stringify({mode:'profile',configurationFingerprint,dependencies:[{path:'defs.svh',sha256:'header-sha'}]}), +}); +const none:HdlProfileConfiguration={status:'none',profile:null,diagnostics:[]}; +const raw:HdlIndexedProfileMetadata={name:null,fingerprint:'raw',context:JSON.stringify({mode:'raw'})}; +const legacy:HdlIndexedProfileMetadata={name:null,fingerprint:null,context:null}; + +describe('HDL configured versus indexed profile visibility',()=>{ + it('compares configured fingerprint against stored configuration context, not the effective header hash',()=>{ + const status=buildHdlProfileStatus(active(),indexed(),true)!; + expect(status.state).toBe('matches'); + expect(status.mismatch).toBe(false); + expect(status.reindexRecommended).toBe(false); + expect(status.indexed.fingerprint).toBe('effective-with-headers'); + expect(status.indexed.configurationFingerprint).toBe('configured-sim'); + }); + it('keeps indexed identity when configuration changes to another real build variant',()=>{ + const status=buildHdlProfileStatus(active('synthesis','configured-synth'),indexed(),true)!; + expect(status.state).toBe('mismatch'); + expect(status.reindexRecommended).toBe(true); + expect(status.indexed.name).toBe('simulation'); + expect(status.configured.name).toBe('synthesis'); + const text=formatHdlProfileStatus(status); + expect(text).toContain('indexed "simulation"'); + expect(text).toContain('configured "synthesis"'); + expect(text).toContain('rebuild the index'); + expect(text).toContain('not fully expanded'); + }); + it('detects defines or filelists changing under the same profile name',()=>{ + expect(buildHdlProfileStatus(active('simulation','changed-config'),indexed(),true)?.mismatch).toBe(true); + }); + it('distinguishes explicit raw-source indexing from missing legacy provenance',()=>{ + expect(buildHdlProfileStatus(none,raw,true)?.state).toBe('matches'); + expect(buildHdlProfileStatus(none,legacy,true)?.state).toBe('unknown'); + expect(buildHdlProfileStatus(none,legacy,true)?.reindexRecommended).toBe(true); + expect(formatHdlProfileStatus(buildHdlProfileStatus(none,raw,true))).toContain('multiple conditional alternatives'); + expect(buildHdlProfileStatus(active(),raw,true)?.state).toBe('mismatch'); + expect(buildHdlProfileStatus(none,indexed(),true)?.state).toBe('mismatch'); + }); + it('reports invalid configuration without claiming a rebuild alone can fix it',()=>{ + const status=buildHdlProfileStatus({status:'invalid-profile',profile:null,diagnostics:['Missing filelist build/sim.f']},indexed(),true)!; + expect(status.state).toBe('configuration-error'); + expect(status.reindexRecommended).toBe(false); + expect(status.indexed.name).toBe('simulation'); + expect(formatHdlProfileStatus(status)).toContain('Fix the HDL profile configuration'); + expect(formatHdlProfileStatus(status)).toContain('Missing filelist build/sim.f'); + }); + it('marks corrupt or partial stored context as unknown instead of trusting current configuration',()=>{ + for(const context of ['{broken','[]','{}']) { + const status=buildHdlProfileStatus(active(),{...indexed(),context},true)!; + expect(status.indexed.mode).toBe('unknown'); + expect(status.reindexRecommended).toBe(true); + } + }); + it('retains indexed preprocessing diagnostics and bounds their text rendering',()=>{ + const metadata=indexed(); + metadata.context=JSON.stringify({mode:'profile',configurationFingerprint:'configured-sim',incomplete:true, + diagnostics:[{filePath:'rtl/top.sv',line:4,message:'Unknown include macro'},'Macro expansion unsupported','Third diagnostic','Fourth diagnostic']}); + const status=buildHdlProfileStatus(active(),metadata,true)!; + expect(status.incomplete).toBe(true); + expect(status.indexedDiagnostics).toHaveLength(4); + const text=formatHdlProfileStatus(status); + expect(text).toContain('rtl/top.sv:4: Unknown include macro'); + expect(text).toContain('1 additional diagnostics'); + expect(text).not.toContain('Fourth diagnostic'); + expect(status.reindexRecommended).toBe(false); + }); + it('keeps unrelated projects quiet',()=>{ + expect(buildHdlProfileStatus(none,legacy,false)).toBeNull(); + expect(buildHdlProfileStatus(none,raw,false)).toBeNull(); + expect(formatHdlProfileStatus(null)).toBe(''); + }); +}); + +it('prefixes normal, empty and access-filtered MCP exploration with the indexed context', async()=>{ + const fs=await import('node:fs'), path=await import('node:path'), os=await import('node:os'); + const {CodeGraph}=await import('../src'); + const {ToolHandler}=await import('../src/mcp/tools'); + const root=fs.mkdtempSync(path.join(os.tmpdir(),'hdl-profile-notice-')); + let cg: InstanceType | undefined; + try { + fs.writeFileSync(path.join(root,'top.sv'),'module top(input a, output y); assign y=a; endmodule'); + cg=CodeGraph.initSync(root); expect((await cg.indexAll()).success).toBe(true); + const state=buildHdlProfileStatus(active('synthesis','configured-synth'),indexed(),true)!; + Object.assign(cg,{getHdlProfileStatus:()=>state}); + const handler=new ToolHandler(cg); + for (const args of [{query:'top'}, {query:'missing_name_that_does_not_exist'}, {query:'top::a',hdlAccess:'all'}]) { + const result=await handler.executeReadTool('codegraph_explore',args); + expect(result.isError).not.toBe(true); + const text=result.content.map(c=>c.text ?? '').join('\n'); + expect(text).toContain('HDL context: indexed "simulation"'); + expect(text).toContain('configured "synthesis"'); + expect(text).toContain('Profile mismatch: rebuild the index'); + } + } finally {cg?.close();fs.rmSync(root,{recursive:true,force:true});} +}); + +it('summarizes configured and indexed settings separately without exposing defines values or source filelists',()=>{ + const configuration=active('synthesis','configured-synth'); + configuration.profile={...configuration.profile!,files:['rtl/new_top.v'],includeDirs:['rtl/include'], + defines:{SYNTHESIS:'1',PRIVATE_VALUE:'do-not-print-this-value'},topModules:['new_top'],languageMode:'verilog'}; + const metadata=indexed(); + metadata.context=JSON.stringify({mode:'profile',configurationFingerprint:'configured-sim', + files:['sim/testbench.sv','rtl/old_top.sv'],includeDirs:['sim/include','common/include'], + defines:{SIMULATION:'1',OTHER_SECRET:'never-display-this'},topModules:['tb_top'],languageMode:'systemverilog'}); + const before=JSON.stringify({configuration,metadata}); + const status=buildHdlProfileStatus(configuration,metadata,true)!; + expect(status.configured).toMatchObject({fileCount:1,includeDirs:['rtl/include'],defineNames:['PRIVATE_VALUE','SYNTHESIS'],topModules:['new_top'],languageMode:'verilog'}); + expect(status.indexed).toMatchObject({fileCount:2,includeDirs:['sim/include','common/include'],defineNames:['OTHER_SECRET','SIMULATION'],topModules:['tb_top'],languageMode:'systemverilog'}); + const json=JSON.stringify(status), text=formatHdlProfileStatus(status); + for(const hidden of ['do-not-print-this-value','never-display-this','sim/testbench.sv','rtl/old_top.sv']) { + expect(json).not.toContain(hidden);expect(text).not.toContain(hidden); + } + expect(text).toContain('2 file(s)'); + expect(text).toContain('intended dialect systemverilog'); + expect(text).toContain('does not enforce Verilog-only conformance'); + expect(text).toContain('topModules are recorded roots'); + expect(text).not.toContain('sim/include'); + expect(text).not.toContain('OTHER_SECRET'); + expect(JSON.stringify({configuration,metadata})).toBe(before); + status.configured.includeDirs!.push('local-only-change'); + expect(configuration.profile.includeDirs).toEqual(['rtl/include']); +}); diff --git a/__tests__/hdl-profile-watch.test.ts b/__tests__/hdl-profile-watch.test.ts new file mode 100644 index 000000000..8e27309da --- /dev/null +++ b/__tests__/hdl-profile-watch.test.ts @@ -0,0 +1,90 @@ +import { it, expect } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { CodeGraph } from '../src'; +import { FileWatcher } from '../src/sync/watcher'; +import { HdlWatchScope } from '../src/sync/hdl-watch-scope'; + +async function waitFor(check: () => boolean, timeout = 8000) { + const end = Date.now() + timeout; + while (!check()) { if (Date.now() > end) throw new Error('HDL watcher did not converge'); await new Promise(r => setTimeout(r, 25)); } +} +function project() { + const root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-profile-watch-')); + const write = (file: string, text: string) => { fs.mkdirSync(path.dirname(path.join(root, file)), {recursive:true}); fs.writeFileSync(path.join(root,file),text); }; + const config = (activeProfile: string) => JSON.stringify({hdl:{activeProfile,profiles:{ + first:{filelists:['build/units.f']},second:{filelists:['alt/units.f'],includeDirs:['alt/inc']}, + }}}); + write('.gitignore', 'build/\nalt/\nprivate/\nunrelated/\n'); + write('build/top.sv', '`include "../private/flags.inc"\nmodule top;\n`ifdef EXTRA\nfunction int extra();return 1;endfunction\n`endif\nendmodule'); + write('build/spare.sv', 'module spare; endmodule'); write('build/units.f','build/top.sv\n'); + write('private/flags.inc','// empty\n'); + write('alt/top.sv','`include "flags.txt"\nmodule other;\n`ifdef SECOND\nfunction int second();return 2;endfunction\n`endif\nendmodule'); + write('alt/units.f','alt/top.sv\n'); write('alt/inc/flags.txt','// empty\n'); + write('codegraph.json',config('first')); + return {root,write,config}; +} + +it('watches profile filelists, explicit ignored sources and external-to-source header dependencies through the real event filter', async () => { + const {root,write} = project(); const calls: Array = []; + const watcher = new FileWatcher(root, async paths => { calls.push(paths); return {filesChanged:1,durationMs:1}; }, + {inertForTests:true,debounceMs:5}, () => ['private/flags.inc']); + try { + expect(watcher.start()).toBe(true); + watcher.ingestEventForTests('private/flags.inc'); + await waitFor(() => calls.length === 1); + expect(calls[0]).toContain('private/flags.inc'); + write('build/units.f','build/top.sv\nbuild/spare.sv\n'); watcher.ingestEventForTests('build/units.f'); + await waitFor(() => calls.length === 2); + expect(calls[1]).toBeUndefined(); // profile membership needs full HDL reconciliation + watcher.ingestEventForTests('build/spare.sv'); await waitFor(() => calls.length === 3); + expect(calls[2]).toContain('build/spare.sv'); + watcher.ingestEventForTests('unrelated/noise.txt'); watcher.ingestEventForTests('.codegraph/graph.db'); + await new Promise(r => setTimeout(r, 30)); expect(calls).toHaveLength(3); + } finally { watcher.stop(); fs.rmSync(root,{recursive:true,force:true}); } +}); + +it('retains the last valid HDL watch scope through missing filelists and malformed configuration', () => { + const {root,write,config} = project(); const scope = new HdlWatchScope(root, () => ['private/flags.inc']); + try { + scope.refresh(); expect(scope.matchesDirectory('build')).toBe(true); expect(scope.matchesDirectory('private')).toBe(true); + fs.unlinkSync(path.join(root,'build/units.f')); scope.refresh(); expect(scope.isFilelist('build/units.f')).toBe(true); + write('codegraph.json','{'); scope.refresh(); expect(scope.matchesFile('private/flags.inc')).toBe(true); + write('build/units.f','build/top.sv\n'); write('codegraph.json',config('second')); scope.refresh(); + expect(scope.matchesDirectory('alt/inc/nested')).toBe(true); expect(scope.matchesFile('alt/inc/new.flags')).toBe(true); + write('codegraph.json','{}'); scope.refresh(); expect(scope.matchesFile('private/flags.inc')).toBe(false); + } finally { fs.rmSync(root,{recursive:true,force:true}); } +}); + +it('auto-syncs native fs.watch events for ignored filelists, arbitrary-extension includes and newly selected directories', async () => { + const {root,write,config} = project(); let cg: CodeGraph|undefined; const errors: string[]=[]; + try { + cg=CodeGraph.initSync(root); expect((await cg.indexAll()).success).toBe(true); + expect(cg.getNodesByName('top')).toHaveLength(1); expect(cg.getNodesByName('spare')).toHaveLength(0); + expect(cg.watch({debounceMs:30,onSyncError:e=>errors.push(e.message)})).toBe(true); + write('build/units.f','build/top.sv\nbuild/spare.sv\n'); + await waitFor(()=>cg!.getNodesByName('spare').length===1); + write('private/flags.inc','`define EXTRA\n'); + await waitFor(()=>cg!.getNodesByName('extra').length===1); + write('codegraph.json',config('second')); + await waitFor(()=>cg!.getNodesByName('other').length===1&&cg!.getNodesByName('top').length===0); + write('alt/inc/flags.txt','`define SECOND\n'); + await waitFor(()=>cg!.getNodesByName('second').length===1); + expect(errors).toEqual([]); + await waitFor(()=>cg!.getHdlProfileStatus()?.state==='matches'); + } finally { cg?.close(); fs.rmSync(root,{recursive:true,force:true}); } +}); + +it('does not admit reserved or outside paths from untrusted indexed dependency metadata', () => { + const {root} = project(); + const scope = new HdlWatchScope(root, () => ['../outside/flags.inc','.codegraph-other/flags.inc','vendor/.git/config','.jj/state','private/flags.inc',123] as string[]); + try { + scope.refresh(); + expect(scope.matchesFile('private/flags.inc')).toBe(true); + expect(scope.matchesDirectory('outside')).toBe(false); + expect(scope.matchesDirectory('.codegraph-other')).toBe(false); + expect(scope.matchesFile('vendor/.git/config')).toBe(false); + expect(scope.matchesDirectory('.jj')).toBe(false); + } finally { fs.rmSync(root,{recursive:true,force:true}); } +}); diff --git a/__tests__/hdl-profile.test.ts b/__tests__/hdl-profile.test.ts new file mode 100644 index 000000000..2df1d9d13 --- /dev/null +++ b/__tests__/hdl-profile.test.ts @@ -0,0 +1,119 @@ +import { afterEach, beforeEach, expect, it } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { loadHdlProfile } from '../src/hdl/profile'; + +let root: string; +beforeEach(() => { root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-profile-')); }); +afterEach(() => { fs.rmSync(root, { recursive: true, force: true }); }); +function write(file: string, content: string) { + fs.mkdirSync(path.dirname(path.join(root, file)), { recursive: true }); + fs.writeFileSync(path.join(root, file), content); +} +function config(profile: Record, extra: Record = {}) { + write('codegraph.json', JSON.stringify({ ...extra, hdl: { activeProfile: 'synth', profiles: { synth: profile } } })); +} +function active() { + const result = loadHdlProfile(root); + expect(result.status, result.diagnostics.join('\n')).toBe('active'); + return result.profile!; +} + +it('preserves no-HDL legacy behavior and reports malformed overall JSON separately', () => { + expect(loadHdlProfile(root)).toMatchObject({ status: 'none', profile: null, configPresent: false }); + write('codegraph.json', JSON.stringify({ exclude: ['cache'] })); + expect(loadHdlProfile(root)).toMatchObject({ status: 'none', configPresent: true }); + write('codegraph.json', '{'); + expect(loadHdlProfile(root)).toMatchObject({ status: 'invalid-config', configInvalid: true, profile: null }); +}); + +it('loads explicit files in order with root-relative canonical identity and no implicit includes as source files', () => { + write('rtl/a.sv', 'module a; endmodule'); write('rtl/b.v', 'module b; endmodule'); write('inc/defs.svh', '`define W 2'); + config({ files: ['rtl/b.v', './rtl/a.sv', 'rtl/b.v'], includeDirs: ['inc'], defines: { SYNTHESIS: '1' }, topModules: ['a'], languageMode: 'systemverilog' }); + expect(active()).toMatchObject({ name: 'synth', files: ['rtl/b.v', 'rtl/a.sv'], includeDirs: ['inc'], defines: { SYNTHESIS: '1' }, topModules: ['a'], languageMode: 'systemverilog', dependencies: [] }); +}); + +it('treats an explicitly empty profile as an empty design', () => { + write('unrelated.sv', 'module unrelated; endmodule'); config({ files: [] }); + expect(active().files).toEqual([]); +}); + +it('handles nested -f/-F bases, quotes, comments and multiple include/define entries without executing anything', () => { + write('rtl/a.sv', 'module a; endmodule'); write('lists/local file.sv', 'module local_file; endmodule'); + write('inc one/defs.svh', ''); write('inc+two/defs.svh', ''); + write('root.f', '// comment\n+incdir+"inc one"+"inc+two"\n+define+ONE+BITS=1\'b1+TEXT="a+b c"\n-f lists/rootpaths.f\n-F lists/local.F\n'); + write('lists/rootpaths.f', '# comment\nrtl/a.sv /* end comment */\n'); + write('lists/local.F', '"local file.sv"\n'); + config({ files: [], filelists: ['root.f'] }); + const p = active(); + expect(p.files).toEqual(['rtl/a.sv', 'lists/local file.sv']); + expect(p.includeDirs).toEqual(['inc one', 'inc+two']); + expect(p.defines).toEqual({ ONE: '1', BITS: "1'b1", TEXT: 'a+b c' }); + expect(p.dependencies.map(d => d.path)).toEqual(['lists/local.F', 'lists/rootpaths.f', 'root.f']); + expect(p.dependencies.every(d => /^[a-f0-9]{64}$/.test(d.sha256))).toBe(true); +}); + +it('uses top-level .F paths relative to that list and rejects source paths missing under -f root semantics', () => { + write('lists/only.sv', 'module only; endmodule'); write('lists/relative.F', 'only.sv'); + config({ filelists: ['lists/relative.F'] }); expect(active().files).toEqual(['lists/only.sv']); + write('lists/root.f', 'only.sv'); config({ filelists: ['lists/root.f'] }); + expect(loadHdlProfile(root).status).toBe('invalid-profile'); +}); + +it.each([ + { files: 'rtl/a.sv' }, { files: [], unexpected: true }, { files: [], defines: { FLAG: true } }, + { files: [], languageMode: 'vhdl' }, { files: ['missing.sv'] }, +])('rejects invalid recognized HDL profiles instead of scanning everything: %j', profile => { + config(profile); expect(loadHdlProfile(root)).toMatchObject({ status: 'invalid-profile', profile: null, configInvalid: false }); +}); + +it.each(['-sv rtl/a.sv', '+libext+.v', '-f', '+incdir+', '+define+', '"unfinished', '/* unfinished'])('rejects unsupported/malformed filelist syntax: %s', text => { + write('list.f', text); config({ filelists: ['list.f'] }); + expect(loadHdlProfile(root)).toMatchObject({ status: 'invalid-profile', profile: null }); +}); + +it('rejects recursive filelists, conflicting defines and external/symlink escapes', () => { + write('a.f', '-f b.f'); write('b.f', '-f a.f'); config({ filelists: ['a.f'] }); + expect(loadHdlProfile(root).diagnostics.join()).toContain('cycle'); + write('a.f', '+define+FLAG=2'); config({ filelists: ['a.f'], defines: { FLAG: '1' } }); + expect(loadHdlProfile(root).diagnostics.join()).toContain('Conflicting'); + const external = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-profile-external-')); + try { + fs.writeFileSync(path.join(external, 'foreign.sv'), 'module foreign; endmodule'); + config({ files: [path.join(external, 'foreign.sv')] }); + expect(loadHdlProfile(root).diagnostics.join()).toContain('outside'); + fs.symlinkSync(external, path.join(root, 'escape'), 'dir'); config({ includeDirs: ['escape'], files: [] }); + expect(loadHdlProfile(root).diagnostics.join()).toContain('outside'); + } finally { fs.rmSync(external, { recursive: true, force: true }); } +}); + +it('fingerprints profile switching, filelist content and include configuration, preserving inactive/whitespace changes', () => { + write('a.sv', 'module a; endmodule'); write('src.f', 'a.sv\n'); write('inc/defs.svh', ''); write('alt/defs.svh', ''); + const cfg = { hdl: { activeProfile: 'synth', profiles: { synth: { filelists: ['src.f'], includeDirs: ['inc'] }, sim: { files: ['a.sv'] } } } }; + write('codegraph.json', JSON.stringify(cfg)); const a = active().fingerprint; + write('codegraph.json', JSON.stringify(cfg, null, 4)); expect(active().fingerprint).toBe(a); + cfg.hdl.profiles.sim.files = []; write('codegraph.json', JSON.stringify(cfg)); expect(active().fingerprint).toBe(a); + write('src.f', '// dependency edit\na.sv\n'); const b = active().fingerprint; expect(b).not.toBe(a); + cfg.hdl.profiles.synth.includeDirs = ['alt']; write('codegraph.json', JSON.stringify(cfg)); const c = active().fingerprint; expect(c).not.toBe(b); + cfg.hdl.activeProfile = 'sim'; write('codegraph.json', JSON.stringify(cfg)); expect(active().fingerprint).not.toBe(c); expect(active().files).toEqual([]); +}); + +it('enforces filelist resource limits', () => { + write('huge.f', ' '.repeat(1024 * 1024 + 1)); config({ filelists: ['huge.f'] }); + expect(loadHdlProfile(root).diagnostics.join()).toContain('1 MiB'); +}); + +it('rejects reserved VCS and CodeGraph files and include directories before indexing', () => { + write('.git/units.f',''); write('.codegraph-alt/unit.sv','module unit; endmodule'); write('.jj/headers/a.svh',''); + for (const profile of [{filelists:['.git/units.f']},{files:['.codegraph-alt/unit.sv']},{files:[],includeDirs:['.jj/headers']}]) { + config(profile); expect(loadHdlProfile(root).status).toBe('invalid-profile'); + expect(loadHdlProfile(root).diagnostics.join()).toContain('Reserved'); + } +}); + +it('rejects ordinary aliases resolving into reserved CodeGraph paths', () => { + write('.codegraph-cache/unit.sv','module unit; endmodule'); + fs.symlinkSync(path.join(root,'.codegraph-cache'),path.join(root,'alias'),'dir'); + config({files:['alias/unit.sv']}); expect(loadHdlProfile(root).diagnostics.join()).toContain('Reserved'); +}); diff --git a/__tests__/mcp-unindexed.test.ts b/__tests__/mcp-unindexed.test.ts index efc4e67f2..a93eff18d 100644 --- a/__tests__/mcp-unindexed.test.ts +++ b/__tests__/mcp-unindexed.test.ts @@ -118,7 +118,7 @@ describe('No-root-index session policy', () => { const instructions = (res.result as { instructions: string }).instructions; // No longer an "inactive, do nothing" note — the tools are available. - expect(instructions).not.toMatch(/inactive/i); + expect(instructions).not.toMatch(/(?:codegraph|server|tools?)[^\n.]{0,60}\binactive\b/i); // It steers the agent to target a project explicitly via projectPath... expect(instructions).toMatch(/projectPath/); expect(instructions).toMatch(/codegraph_explore/); @@ -176,7 +176,7 @@ describe('No-root-index session policy', () => { const init = await request(child, { id: 0, method: 'initialize', params: initializeParams(tempDir) }); const instructions = (init.result as { instructions: string }).instructions; expect(instructions).toMatch(/How to query/); - expect(instructions).not.toMatch(/inactive/i); + expect(instructions).not.toMatch(/(?:codegraph|server|tools?)[^\n.]{0,60}\binactive\b/i); const list = await request(child, { id: 1, method: 'tools/list' }); const tools = (list.result as { tools: Array<{ name: string }> }).tools; diff --git a/docs/hdl-profiles.md b/docs/hdl-profiles.md new file mode 100644 index 000000000..e0144dae4 --- /dev/null +++ b/docs/hdl-profiles.md @@ -0,0 +1,91 @@ +# Профили HDL-сборки + +Профиль выбирает HDL-источники и контекст условной компиляции. В одном индексе +хранится один активный профиль; остальные языки проекта сохраняют обычный scope. + +## Конфигурация + +```json +{ + "hdl": { + "activeProfile": "synth", + "profiles": { + "synth": { + "filelists": ["profiles/synth.f"], + "includeDirs": ["rtl/include"], + "defines": {"SYNTHESIS": "1"}, + "topModules": ["top"], + "languageMode": "systemverilog" + }, + "sim": { + "files": ["rtl/top.sv", "tb/top_tb.sv"], + "includeDirs": ["rtl/include"], + "defines": {}, + "topModules": ["top_tb"] + } + } + } +} +``` + +Файл — codegraph.json в корне проекта. files и filelists складываются; +пустые/отсутствующие оба списка означают пустую HDL-выборку, а не все файлы. +Явные HDL sources могут находиться в gitignored/generated каталогах. Пути +должны оставаться внутри проекта; VCS и хранилища CodeGraph исключены. + +Filelist поддерживает пути, quotes/comments, +incdir+ и +define+, вложенные +-f/-F. Для .f/-f относительные пути считаются от корня проекта; для .F/-F — +от каталога содержащего списка. Неизвестные флаги, циклы и конфликтующие +значения defines отклоняются, а не интерпретируются предположительно. +Значения defines задаются строками. В текущем препроцессоре используется +определённость макроса; значение "0" тоже означает defined. + +## Работа с индексом + +Для уже инициализированного проекта после добавления профиля: + +```sh +codegraph index +codegraph status --json +``` + +Сменить hdl.activeProfile, затем выполнить codegraph sync. Работающий watcher +наблюдает конфигурацию, filelists и include dependencies, включая неизвестные +расширения заголовков и явно выбранные ignored paths. Смена контекста требует +пересчёта всей HDL-выборки даже при scoped sync; частичный indexFiles не +разрешает сменить контекст без полного sync/index. + +CLI/MCP отдельно показывают configured и indexed profile, fingerprint, +диагностику и ограничения. Изменение include учитывается по содержимому, +включая сохранённые размер/mtime. В fingerprint входят selected config, +filelists, include snapshots и extraction version. При некорректном профиле +индексация прекращается до изменения графа. + +Единицы разбираются из подготовленного snapshot; stored hashes относятся к +исходным байтам, не к замаскированному тексту. Правки во время прохода остаются +pending для следующего sync. Частичные операции обновляют диагностику только +действительно обработанных единиц. + +## Поддержанный препроцессинг и ограничения + +- ifdef/ifndef/elsif/else/endif и define/undef/undefineall. +- Include вносит macro state и зависимость. Он не вставляет содержимое header + в source unit; header можно явно перечислить как отдельный источник. +- Неактивный текст заменяется пробелами с сохранением UTF-16 offsets и CR/LF. + Показанные snippets остаются оригинальным исходником и могут содержать + неактивные ветки; граф учитывает выбранный профиль. +- Полного macro expansion нет. Непрозрачный макровызов может изменить defines: + дальнейшая неизвестная условная ветка не выбирается, а диагностируется. + Неподдержанные конструкции и incomplete state явно видны в status. +- Каждая listed source unit начинает с defines профиля; порядок файлов не + используется как неявный общий macro environment нескольких compilation units. +- languageMode записывает intended dialect; parser остаётся SystemVerilog и не + доказывает соответствие только Verilog. topModules — записанные roots; + reachability pruning/elaboration не выполняются. +- Пределы текущего snapshot режима: 1 MiB на source/header, 64 MiB суммарно; + loader ограничивает размер и глубину filelists. Диагностика ограничена по + объёму без прекращения обработки macro state. + +Полное раскрытие include/macro с compiler source mapping и semantic frontend +остаётся следующим отдельным этапом. Профиль не доказывает synthesis, simulation, +width compatibility, timing или CDC. diff --git a/docs/hdl-roadmap.md b/docs/hdl-roadmap.md index 85068c7db..4bfa4435f 100644 --- a/docs/hdl-roadmap.md +++ b/docs/hdl-roadmap.md @@ -63,7 +63,7 @@ UART и eMMC CRC; отрицательные controls для package/member/ин по сигналам показывают исходные строки и тип использования. Не называть это доказательством электрического драйвера, latch или race. -### 3. Явный контекст HDL-сборки +### 3. Явный контекст HDL-сборки — реализован ограниченный source-режим Польза: различать synthesis/testbench и условные варианты без выбора по имени директории там, где проект предоставляет точный состав сборки. @@ -126,7 +126,8 @@ bind и связи DUT↔testbench. Затем оценить необходим - Этап 1 реализован; отчёты validation-hdl-scopes-2026-09-12.md и validation-hdl-parse-gaps-2026-09-12.md. Этап 2 реализован: validation-hdl-access-2026-09-12.md. - Следующий пакет реализации — этап 3, явный контекст HDL-сборки. + Этап 3 реализован в ограниченном source-режиме: hdl-profiles.md и + validation-hdl-profiles-2026-09-12.md. Следующий пакет — этап 4, compiler frontend. - Для каждого пакета: failing regression → исправление → независимое review → focused tests → реальные corpus queries и sync/rebuild comparison. - Полные native/WASM suites при изменениях общих extraction/resolution/storage diff --git a/docs/validation-hdl-profiles-2026-09-12.md b/docs/validation-hdl-profiles-2026-09-12.md new file mode 100644 index 000000000..df4f86b5a --- /dev/null +++ b/docs/validation-hdl-profiles-2026-09-12.md @@ -0,0 +1,71 @@ +# Проверка HDL profiles — 12 сентября 2026 + +База 5f903355; extraction stamp 38. Linux x64, Node 24.15.0, +tree-sitter-systemverilog 0.4.0. Конфигурация и границы — hdl-profiles.md. + +## Проверенные сценарии + +- Загрузчик: .f/.F, вложенные -f/-F, quotes/comments, incdir/define, + fingerprint, неизвестные флаги, циклы/конфликты и недопустимые пути. +- Выбор веток: offsets CRLF/UTF16, вложенные includes, guards/cycles, + отсутствующие заголовки и неизвестные эффекты непрозрачных макросов. +- Index: смена профиля удаляет предыдущий HDL-вариант, сохраняет остальные + языки и raw hashes, пересчитывает общие units при изменениях контекста. +- Compiled CLI index/sync/status/explore: выбранный source проходит через + worker threads; configured/indexed profiles разделены. +- Настоящий fs.watch: ignored filelists, заголовки с произвольным расширением, + переключение на ранее не наблюдавшиеся каталоги и callback dependencies. +- Include с сохранёнными размером/mtime меняет fingerprint; scoped sync + выбирает новую ветку. Правка во время прохода сохраняет согласованный старый + snapshot и подхватывается следующим sync вместо записи пустого marker. +- Частичные indexFiles/scoped sync сохраняют диагностику необработанных source units. + +Ревью нашло и помогло исправить два интеграционных дефекта: несогласованный +snapshot/raw hash и устаревшую диагностику частичных обновлений. Также исправлен +выбор неверного else после непрозрачного макровызова; compiler controls +подтверждают необходимость состояния unknown. + +## Реальные корпуса + +Filelists для независимых копий сгенерированы явно; это не исходные build +files авторов. Исходные 11 UART и 67 AXI source/include файлов проверены +по SHA256 до и после; originals и copies не изменились. + +| Корпус / профиль | Файлы | Узлы | Рёбра | Проверка | +| --- | ---: | ---: | ---: | --- | +| Dual UART synth | 6 | 396 | 1159 | tb_top отсутствует | +| Dual UART sim | 11 | 853 | 2978 | tb_top присутствует | +| AXI normal | 2 | 301 | 660 | default_mst_port_i использует idx_width(Cfg.NoMstPorts) | +| AXI VCS | 2 | 303 | 662 | default_mst_port_i использует MstPortsIdxWidth | + +Для обоих корпусов выполнено переключение туда и обратно через scoped sync +и сравнение всех nodes/edges с CodeGraph.recreate: полное совпадение, +включая metadata. Возврат UART synth восстановил исходный hash графа. +Все проходы вместе заняли 3.85 с на этой машине; это локальная проверка, +не обещание производительности на иных проектах. + +UART sim отмечен incomplete: 5 сохранённых, но не интерпретированных timescale. +Оба AXI-профиля отмечены incomplete: 17 диагностик macro expansion. +Эти результаты подтверждают выбор условных исходников, но не elaboration, +полный preprocessing, синтез или аппаратную корректность. + +## Обновление активных проектов + +Все 10 ранее выбранных активных проектов переиндексированы установленным CLI: +extraction stamp 38, state complete, reindexRecommended false, pending changes 0. +Это индексы ADRC (три checkout), FreeFCC, Wails, bot, CodeGraph, +CSQTT android-server/desktop и Skylab Hub. Уже работающие MCP-сессии +нужно перезапустить, чтобы они загрузили новую реализацию. + +## Автоматические проверки + +- 55 профильных tests: loader 22, preprocessor 14, status 10, index 4, + настоящий fs.watch 4 и compiled CLI/worker 1 — все прошли. +- Полный native: 301 suite, 4894 passed, 9 skipped, 0 failed. +- TypeScript и production build с viewer/30 grammar assets прошли. +- Полный WASM: 300 suites passed, 1 skipped; 4884 passed, 19 skipped, 0 failed. +- Полная матрица выполнена последовательно с двумя workers. +- Уточнена прежняя MCP-проверка: запрещается сообщение о неактивном сервере, + а не слово inactive в справке об условных ветках HDL. + +Windows/macOS в этом пакете не проверялись. diff --git a/src/bin/codegraph.ts b/src/bin/codegraph.ts index f953115dd..69ec33d9d 100644 --- a/src/bin/codegraph.ts +++ b/src/bin/codegraph.ts @@ -1,4 +1,5 @@ #!/usr/bin/env node +import { formatHdlProfileStatus } from '../hdl/status'; /** * CodeGraph CLI * @@ -1053,7 +1054,9 @@ program const journalMode = cg.getJournalMode(); const buildInfo = cg.getIndexBuildInfo(); - const reindexRecommended = cg.isIndexStale(); + const hdlProfile = cg.getHdlProfileStatus(); + const engineReindexRecommended = cg.isIndexStale(); + const reindexRecommended = engineReindexRecommended || !!hdlProfile?.reindexRecommended; const indexState = cg.getIndexState(); // Zero on a healthy index; non-zero at rest means a resolution pass was // interrupted, so some files' call edges are missing (#1187). @@ -1090,6 +1093,7 @@ program builtWithExtractionVersion: buildInfo.extractionVersion, currentExtractionVersion: EXTRACTION_VERSION, reindexRecommended, + hdlProfile, // 'complete' | 'partial' (files silently dropped) | 'indexing' // (a run was killed mid-index — the index is truncated) | // 'failed' | null (predates the marker). @@ -1190,6 +1194,10 @@ program console.log(` Removed: ${changes.removed.length} files`); } info('Run "codegraph sync" to update the index'); + } else if (hdlProfile?.state === 'configuration-error') { + warn('Source files are unchanged; HDL profile configuration requires attention'); + } else if (hdlProfile?.reindexRecommended) { + warn('Source files are unchanged; indexed HDL context needs a rebuild'); } else { success('Index is up to date'); } @@ -1197,7 +1205,12 @@ program // Re-index hint: the index was built by an older engine than the one now // running, so a rebuild would add data a migration can't backfill. - if (reindexRecommended) { + const profileNote = formatHdlProfileStatus(hdlProfile); + if (profileNote) { + console.log(profileNote); + console.log(); + } + if (engineReindexRecommended) { const builtWith = buildInfo.version ? `v${buildInfo.version.replace(/^v/, '')}` : 'an earlier version'; warn(`Index was built by ${builtWith}; re-index to pick up this engine's improvements.`); info('Run "codegraph index" (full rebuild) or "codegraph sync"'); diff --git a/src/db/queries.ts b/src/db/queries.ts index 4bbb88d41..c4c9a2953 100644 --- a/src/db/queries.ts +++ b/src/db/queries.ts @@ -3574,6 +3574,10 @@ export class QueryBuilder { })(); } + hasLanguage(language: Language): boolean { + return !!this.db.prepare('SELECT 1 FROM nodes WHERE language = ? LIMIT 1').get(language); + } + /** HDL call arguments may change access when a remote formal changes direction. * Seek HDL sources first, then their indexed outgoing edges; ordinary projects * have no rows here. Include unclassified arguments so newly indexed callees diff --git a/src/extraction/extraction-version.ts b/src/extraction/extraction-version.ts index 6057efed2..0edf9fad5 100644 --- a/src/extraction/extraction-version.ts +++ b/src/extraction/extraction-version.ts @@ -21,4 +21,4 @@ * turns the re-index hint into noise — keep it honest (see CLAUDE.md, "Honesty * in the product is load-bearing"). */ -export const EXTRACTION_VERSION = 37; +export const EXTRACTION_VERSION = 38; diff --git a/src/extraction/index.ts b/src/extraction/index.ts index e7d643c9b..ea2642030 100644 --- a/src/extraction/index.ts +++ b/src/extraction/index.ts @@ -5,6 +5,8 @@ */ import * as fs from 'fs'; +import { HdlIndexContext } from '../hdl/index-context'; +import { loadHdlProfile } from '../hdl/profile'; import * as fsp from 'fs/promises'; import * as path from 'path'; import * as os from 'os'; @@ -1759,6 +1761,51 @@ function resurrectRefFromDroppedEdge( */ export class ExtractionOrchestrator { private rootDir: string; + private hdlContext: HdlIndexContext | null = null; + private hdlForce = false; + private hdlTouched = new Set(); + + private prepareHdlContext(): void { + this.hdlTouched.clear(); + const previous = this.queries.getMetadata('hdl_profile_fingerprint'); + this.hdlContext = new HdlIndexContext(this.rootDir, !!this.queries.getMetadata('hdl_profile_name')); + this.hdlForce = previous !== this.hdlContext.fingerprint && (!!this.hdlContext.profile || !!this.queries.getMetadata('hdl_profile_name')); + } + private forceHdlFile(file: string): boolean { return this.hdlForce && !!this.hdlContext?.isHdl(file); } + private hdlSource(file: string, content: string): string { + if (!this.hdlContext) this.prepareHdlContext(); + return this.hdlContext!.source(file, content); + } + commitHdlProfile(): void { + if (!this.hdlContext) return; + this.queries.setMetadata('hdl_profile_name', this.hdlContext.profile?.name ?? ''); + this.queries.setMetadata('hdl_profile_fingerprint', this.hdlContext.fingerprint); + const context = JSON.parse(this.hdlContext.context()); + if (this.hdlContext.profile) { + if (!this.hdlForce && this.hdlTouched.size < this.hdlContext.profile.files.length) { + const previous = JSON.parse(this.queries.getMetadata('hdl_profile_context') ?? '{}'); + const units = previous.unitDiagnostics ?? {}; + for (const file of this.hdlTouched) units[file] = context.unitDiagnostics[file] ?? []; + context.unitDiagnostics = units; + const combined = Object.values(units).flat(); + context.diagnosticCount = combined.length; + context.diagnostics = combined.slice(0, 200); + context.incomplete = context.diagnostics.length > 0 || (!previous.unitDiagnostics && previous.incomplete === true); + } + const parseIssues = this.hdlContext.profile.files.flatMap(file => { + const record = this.queries.getFileByPath(file); + return record ? (record.errors ?? []).map(error => ({ filePath: file, ...error })) + : [{ filePath: file, message: 'Profile source has not been indexed.' }]; + }); + if (parseIssues.length) { + context.incomplete = true; + context.diagnostics = [...context.diagnostics, ...parseIssues].slice(0, 200); + } + } + this.queries.setMetadata('hdl_profile_context', JSON.stringify(context)); + this.hdlForce = false; + } + private queries: QueryBuilder; /** * Names of frameworks detected for this project, populated by indexAll(). @@ -1921,6 +1968,7 @@ export class ExtractionOrchestrator { // Threaded into language detection so custom-extension files load the right // grammar and store under the mapped language. const overrides = loadExtensionOverrides(this.rootDir); + this.prepareHdlContext(); const log = verbose ? (msg: string) => { console.log(`[worker] ${msg}`); } @@ -1938,7 +1986,7 @@ export class ExtractionOrchestrator { // attributed — these labels settle scan vs framework-detect vs grammars. const tScan = Date.now(); const skipStats: ScanSkipStats = { unsupportedByExtension: new Map() }; - const files = await scanDirectoryAsync(this.rootDir, (current, file) => { + const scannedFiles = await scanDirectoryAsync(this.rootDir, (current, file) => { onProgress?.({ phase: 'scanning', current, @@ -1946,6 +1994,15 @@ export class ExtractionOrchestrator { currentFile: file, }); }, skipStats); + const files = this.hdlContext!.files(scannedFiles); + const allowed = new Set(files); + for (const tracked of this.queries.getAllFiles()) { + if (tracked.language !== 'verilog' || allowed.has(tracked.path)) continue; + const refs = this.queries.getCrossFileIncomingEdgesWithTarget(tracked.path) + .map(resurrectRefFromDroppedEdge).filter((ref): ref is UnresolvedReference => !!ref); + this.queries.deleteFile(tracked.path); + if (refs.length) this.queries.replaceResolutionEdgesWithUnresolvedRefs([], refs); + } if (process.env.CODEGRAPH_SYNTH_TIMINGS) console.error(`[phase-timing] scan: ${Date.now() - tScan}ms (${files.length} files)`); /** Only meaningful when nothing was indexable — see IndexResult (#1502). */ const skipSummary = (): Pick => { @@ -2075,8 +2132,9 @@ export class ExtractionOrchestrator { */ const parseFile = (filePath: string, content: string): Promise => { const language = detectLanguage(filePath, content, overrides); - if (!pool) return Promise.resolve(extractFromSource(filePath, content, language, frameworkNames)); - return pool.requestParse({ filePath, content, language, frameworkNames }); + const selected = this.hdlSource(filePath, content); + if (!pool) return Promise.resolve(extractFromSource(filePath, selected, language, frameworkNames)); + return pool.requestParse({ filePath, content: selected, language, frameworkNames }); }; // --- Bounded rolling-window dispatch, ordered commit --- @@ -2106,6 +2164,7 @@ export class ExtractionOrchestrator { const storeResult = async (filePath: string, content: string, stats: fs.Stats, result: ExtractionResult): Promise => { processed++; + if (this.hdlContext?.profile && this.hdlContext.isHdl(filePath)) this.hdlTouched.add(filePath); // WAL hard-cap backstop: between files (never mid-transaction), pause // the store until the off-thread checkpoint catches up. Resolves to @@ -2253,6 +2312,8 @@ export class ExtractionOrchestrator { // Read files in parallel (with path validation before any I/O) const fileContents = await Promise.all( batch.map(async (fp) => { + const snapshot = this.hdlContext?.sources.get(fp); + if (snapshot) return { filePath: fp, content: snapshot.original, stats: snapshot.stats, error: null as Error | null }; try { // Indexing read: follow in-root symlinks the directory walk already // descended into (the `../` guard still applies) so files reached @@ -2465,6 +2526,7 @@ export class ExtractionOrchestrator { .map(line => /^\s*\/\//.test(line) ? '' : line) .join('\n'); + if (this.hdlContext?.profile && this.hdlContext.isHdl(filePath)) continue; let result: ExtractionResult; try { result = await parseFile(filePath, stripped); @@ -2519,6 +2581,11 @@ export class ExtractionOrchestrator { * Index specific files */ async indexFiles(filePaths: string[]): Promise { + this.prepareHdlContext(); + if (this.hdlForce && (this.hdlContext!.profile || this.queries.getMetadata('hdl_profile_name'))) { + throw new Error('HDL profile context changed; use sync or index to update the complete HDL selection'); + } + filePaths = filePaths.filter(file => this.hdlContext!.accepts(file)); const startTime = Date.now(); const errors: ExtractionError[] = []; let filesIndexed = 0; @@ -2579,6 +2646,9 @@ export class ExtractionOrchestrator { }; } + const snapshot = this.hdlContext?.sources.get(relativePath); + if (snapshot) return this.indexFileWithContent(relativePath, snapshot.original, snapshot.stats); + // Read file content and stats let content: string; let stats: fs.Stats; @@ -2664,7 +2734,7 @@ export class ExtractionOrchestrator { // otherwise detect on the spot so single-file re-index paths still emit // route nodes / middleware / etc. const frameworkNames = this.ensureDetectedFrameworks(); - const result = extractFromSource(relativePath, content, language, frameworkNames); + const result = extractFromSource(relativePath, this.hdlSource(relativePath, content), language, frameworkNames); // Store in database await this.storeExtractionResult(relativePath, content, language, stats, result, createYielder()); @@ -2716,6 +2786,7 @@ export class ExtractionOrchestrator { // storing — persisting the transport as-is records the file as having no // symbols at all (#1541). No-op for already-decoded results. result = materializeKernelResult(result, filePath, language); + if (this.hdlContext?.profile && language === 'verilog') this.hdlTouched.add(filePath); // Bulk inserts run in bounded sub-transactions with a yield between, so a // giant generated file (tens of thousands of symbols) can't block the @@ -2733,7 +2804,7 @@ export class ExtractionOrchestrator { // successful retry's symbols — a permanent empty file presented as // recovered (the #1541 wipe, reintroduced through the marker path). const existingFile = this.queries.getFileByPath(filePath); - if (existingFile && existingFile.contentHash === contentHash) { + if (existingFile && existingFile.contentHash === contentHash && !this.forceHdlFile(filePath)) { const existingIsMarker = existingFile.nodeCount === 0 && (existingFile.errors?.length ?? 0) > 0; const incomingHasContent = result.nodes.length > 0; @@ -3070,6 +3141,8 @@ export class ExtractionOrchestrator { */ backpressure?: () => Promise | null ): Promise { + this.prepareHdlContext(); + if (this.hdlForce) scopedPaths = undefined; await initGrammars(); // Initialize WASM runtime (grammars loaded lazily below) const startTime = Date.now(); let filesChecked = 0; @@ -3123,7 +3196,7 @@ export class ExtractionOrchestrator { currentFiles = unique.filter( (p) => isSourceFile(p, overrides) && - !scope.ignores(p) && + (!scope.ignores(p) || this.hdlContext!.sources.has(p)) && fs.existsSync(path.join(this.rootDir, p)) ); trackedFiles = []; @@ -3150,6 +3223,9 @@ export class ExtractionOrchestrator { trackedFiles = this.queries.getAllFiles(); if (process.env.CODEGRAPH_SYNTH_TIMINGS) console.error(`[phase-timing] sync-tracked-load: ${Date.now() - tTracked}ms (${trackedFiles.length} tracked)`); } + currentFiles = scopedPaths?.length + ? currentFiles.filter(file => this.hdlContext!.accepts(file)) + : this.hdlContext!.files(currentFiles); const currentSet = new Set(currentFiles); const trackedMap = new Map(); for (const f of trackedFiles) { @@ -3207,7 +3283,7 @@ export class ExtractionOrchestrator { // change that preserves both exactly is the blind spot every mtime-based // incremental tool accepts; `index --force` is the escape hatch. Git bumps // mtime on every file it writes during checkout/merge, so pulls are caught.) - if (tracked) { + if (tracked && !this.forceHdlFile(filePath)) { try { const stat = fs.statSync(fullPath); if (stat.size === tracked.size && Math.floor(stat.mtimeMs) === Math.floor(tracked.modifiedAt)) { @@ -3233,7 +3309,7 @@ export class ExtractionOrchestrator { filesToIndex.push(filePath); changedFilePaths.push(filePath); filesAdded++; - } else if (tracked.contentHash !== contentHash) { + } else if (tracked.contentHash !== contentHash || this.forceHdlFile(filePath)) { filesToIndex.push(filePath); changedFilePaths.push(filePath); filesModified++; @@ -3308,6 +3384,11 @@ export class ExtractionOrchestrator { * Uses git status as a fast path when available, falling back to full scan. */ getChangedFiles(): { added: string[]; modified: string[]; removed: string[] } { + const profile = loadHdlProfile(this.rootDir).profile; + const profileFiles = profile ? new Set(profile.files) : null; + const profileOverrides = loadExtensionOverrides(this.rootDir); + const allowed = (file: string) => !profileFiles || detectLanguage(file, undefined, profileOverrides) !== 'verilog' || profileFiles.has(file); + // The commit this index was last brought up to date at. Absent on an index // built before stamping existed — getGitChangedFiles then declines the fast // path and the full scan below answers correctly, once, until a sync or a @@ -3347,10 +3428,19 @@ export class ExtractionOrchestrator { // files stay untracked in git even after indexing, so they must be // hash-compared like modified files instead of always counting as added — // otherwise status reports them as pending forever. (See issue #206.) - for (const filePath of [...gitChanges.modified, ...gitChanges.added, ...gitChanges.deleted]) { + for (const filePath of [...gitChanges.modified, ...gitChanges.added, ...gitChanges.deleted, ...(profile?.files ?? [])]) { + if (!allowed(filePath)) continue; if (seenHere.has(filePath)) continue; seenHere.add(filePath); const fullPath = path.join(this.rootDir, filePath); + if (profileFiles?.has(filePath)) { + try { + if (fs.statSync(fullPath).size > MAX_FILE_SIZE) { + (this.queries.getFileByPath(filePath) ? modified : added).push(filePath); + continue; + } + } catch { continue; } + } let content: string; try { content = fs.readFileSync(fullPath, 'utf-8'); @@ -3373,7 +3463,8 @@ export class ExtractionOrchestrator { } // === Fallback: full scan (non-git project or git failure) === - const currentFiles = new Set(scanDirectory(this.rootDir)); + const scanned = scanDirectory(this.rootDir).filter(allowed); + const currentFiles = new Set(profile ? [...scanned, ...profile.files] : scanned); const trackedFiles = this.queries.getAllFiles(); // Build Map for O(1) lookups @@ -3396,6 +3487,14 @@ export class ExtractionOrchestrator { // Find added and modified files for (const filePath of currentFiles) { const fullPath = path.join(this.rootDir, filePath); + if (profileFiles?.has(filePath)) { + try { + if (fs.statSync(fullPath).size > MAX_FILE_SIZE) { + (trackedMap.has(filePath) ? modified : added).push(filePath); + continue; + } + } catch { continue; } + } let content: string; try { content = fs.readFileSync(fullPath, 'utf-8'); diff --git a/src/hdl/index-context.ts b/src/hdl/index-context.ts new file mode 100644 index 000000000..d3e9acdda --- /dev/null +++ b/src/hdl/index-context.ts @@ -0,0 +1,132 @@ +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import { createHash } from 'node:crypto'; +import { loadHdlProfile, type ActiveHdlProfile } from './profile'; +import { EXTRACTION_VERSION } from '../extraction/extraction-version'; +import { preprocessVerilog, type HdlPreprocessDiagnostic } from './preprocess'; +import { detectLanguage } from '../extraction/grammars'; +import { loadExtensionOverrides } from '../project-config'; + +export interface HdlDependency { path: string; sha256: string | null } +const hash = (text: string) => createHash('sha256').update(text).digest('hex'); +function inside(root: string, file: string): string { + const relative = path.relative(root, file); + if (relative.startsWith('..' + path.sep) || relative === '..' || path.isAbsolute(relative)) throw new Error('HDL path escapes project root'); + return relative.split(path.sep).join('/'); +} + +/** Immutable per-operation conditional source view. Original bytes remain file hashes/snippets. */ +export class HdlIndexContext { + readonly profile: ActiveHdlProfile | null; + readonly diagnostics: HdlPreprocessDiagnostic[] = []; + readonly dependencies: HdlDependency[]; + readonly fingerprint: string; + readonly sources = new Map(); + readonly unitDiagnostics = new Map(); + private readonly root: string; + private readonly overrides: ReturnType; + + constructor(root: string, previouslyProfiled: boolean) { + this.root = path.resolve(root); + this.overrides = loadExtensionOverrides(root); + const loaded = loadHdlProfile(root); + if (loaded.status === 'invalid-profile' || (loaded.status === 'invalid-config' && previouslyProfiled)) { + throw new Error(`Invalid HDL profile: ${loaded.diagnostics.join('; ')}`); + } + this.profile = loaded.profile; + if (!this.profile) { this.dependencies = []; this.fingerprint = 'raw'; return; } + this.root = fs.realpathSync(root); + const dependency = new Map(); + const bytes = new Map(); + const snapshots = new Map(); + let total = 0; + const read = (relative: string): string | null => { + const lexical = path.resolve(this.root, relative); + const normalized = inside(this.root, lexical); + if (normalized.split('/').some(p => ['.git', '.jj', '.codegraph'].includes(p) || p.startsWith('.codegraph-'))) throw new Error('HDL profile cannot read VCS/index storage'); + if (bytes.has(normalized)) return bytes.get(normalized)!; + try { + inside(this.root, fs.realpathSync(lexical)); + const stat = fs.statSync(lexical); + if (!stat.isFile() || stat.size > 1024 * 1024) throw new Error(`HDL input is not a regular file of at most 1 MiB: ${normalized}`); + const text = fs.readFileSync(lexical, 'utf8'); + const after = fs.statSync(lexical); + if (stat.size !== after.size || stat.mtimeMs !== after.mtimeMs || stat.ino !== after.ino) { + throw new Error(`HDL input changed while preparing snapshot; retry: ${normalized}`); + } + snapshots.set(normalized, after); + total += Buffer.byteLength(text); + if (total > 64 * 1024 * 1024) throw new Error('HDL profile source/dependency snapshot exceeds 64 MiB'); + bytes.set(normalized, text); + return text; + } catch (error) { + if ((error as NodeJS.ErrnoException).code === 'ENOENT') return null; + throw error; + } + }; + for (const file of this.profile.files) { + if (detectLanguage(file, undefined, this.overrides) !== 'verilog') throw new Error(`HDL profile lists a non-HDL source: ${file}`); + const source = read(file); + if (source === null) throw new Error(`HDL source missing: ${file}`); + const result = preprocessVerilog(source, { filePath: file, defines: this.profile.defines, includeDirs: this.profile.includeDirs, + readInclude: (request, from, dirs) => { + if (path.isAbsolute(request) || /^[A-Za-z]:[\\/]/.test(request)) throw new Error('Absolute HDL include paths are outside the supported project-relative profile'); + const candidates = [path.posix.join(path.posix.dirname(from), request), ...dirs.map(dir => path.posix.join(dir, request))]; + for (const candidate of [...new Set(candidates)]) { + const relative = inside(this.root, path.resolve(this.root, candidate)); + const text = read(relative); + dependency.set(relative, text === null ? null : hash(text)); + if (text !== null) return { filePath: relative, source: text }; + } + return null; + } }); + if (result.source.length !== source.length) throw new Error('HDL conditional selection changed source offsets'); + this.sources.set(file, { original: source, selected: result.source, stats: snapshots.get(file)! }); + const diagnostics = result.diagnostics.slice(0, 32); + if (result.diagnostics.length > diagnostics.length) diagnostics.push({ filePath: file, line: 1, + code: 'diagnostic-limit', message: `${result.diagnostics.length - diagnostics.length} additional preprocessing diagnostics omitted for this unit.` }); + this.unitDiagnostics.set(file, diagnostics); + this.diagnostics.push(...diagnostics.slice(0, Math.max(0, 200 - this.diagnostics.length))); + } + this.dependencies = [...dependency].sort(([a], [b]) => a.localeCompare(b)).map(([path, sha256]) => ({ path, sha256 })); + this.fingerprint = hash(JSON.stringify([EXTRACTION_VERSION, this.profile.fingerprint, this.dependencies])); + } + + isHdl(file: string): boolean { return detectLanguage(file, undefined, this.overrides) === 'verilog'; } + accepts(file: string): boolean { return !this.profile || !this.isHdl(file) || this.sources.has(file); } + files(scanned: string[]): string[] { + return this.profile ? [...scanned.filter(file => !this.isHdl(file)), ...this.profile.files] : scanned; + } + source(file: string, original: string): string { + if (!this.profile || !this.isHdl(file)) return original; + const cached = this.sources.get(file); + if (!cached) throw new Error(`HDL source is outside active profile: ${file}`); + if (cached.original !== original) throw new Error(`HDL source changed during profile preparation; retry indexing: ${file}`); + return cached.selected; + } + context(): string { + return JSON.stringify(this.profile ? { mode: 'profile', configurationFingerprint: this.profile.fingerprint, + files: this.profile.files, includeDirs: this.profile.includeDirs, defines: this.profile.defines, + topModules: this.profile.topModules, languageMode: this.profile.languageMode, + dependencies: this.dependencies, unitDiagnostics: Object.fromEntries(this.unitDiagnostics), diagnostics: this.diagnostics.slice(0, 200), + diagnosticCount: this.diagnostics.length, incomplete: this.diagnostics.length > 0, + } : { mode: 'raw' }); + } +} + +/** Include changes can invalidate a profile even when codegraph.json is unchanged. */ +export function hdlDependenciesChanged(root: string, context: string | null): boolean { + let value: unknown; + try { value = context ? JSON.parse(context) : null; } catch { return true; } + if (!value || typeof value !== 'object' || !('dependencies' in value) || !Array.isArray(value.dependencies)) return false; + const canonicalRoot = fs.realpathSync(root); + return value.dependencies.some((entry: HdlDependency) => { + if (!entry || typeof entry.path !== 'string') return true; + try { + const full = path.resolve(canonicalRoot, entry.path); + inside(canonicalRoot, full); inside(canonicalRoot, fs.realpathSync(full)); + const stat = fs.statSync(full); + return !stat.isFile() || stat.size > 1024 * 1024 || hash(fs.readFileSync(full, 'utf8')) !== entry.sha256; + } catch { return entry.sha256 !== null; } + }); +} diff --git a/src/hdl/preprocess.ts b/src/hdl/preprocess.ts new file mode 100644 index 000000000..538854a3c --- /dev/null +++ b/src/hdl/preprocess.ts @@ -0,0 +1,237 @@ +/** Bounded, source-preserving HDL conditional selection. No macro expansion. */ +export interface HdlPreprocessDiagnostic { + filePath: string; + line: number; + code: string; + message: string; +} +export interface HdlIncludeSource { filePath: string; source: string } +export interface HdlPreprocessOptions { + filePath: string; + defines?: Record; + includeDirs?: string[]; + /** The caller owns filesystem access and must enforce its allowed roots. */ + readInclude?: (request: string, fromFile: string, includeDirs: readonly string[]) => HdlIncludeSource | null; + maxIncludeDepth?: number; +} +export interface HdlPreprocessResult { + source: string; + dependencies: string[]; + diagnostics: HdlPreprocessDiagnostic[]; + /** All encountered constructs were handled within this bounded mode. */ + complete: boolean; +} +interface Conditional { + parent: boolean; + active: boolean; + taken: boolean; + uncertain: boolean; + elseSeen: boolean; +} +const IDENTIFIER = /^[A-Za-z_][A-Za-z0-9_$]*/; +const OTHER_DIRECTIVES = new Set(['timescale', 'default_nettype', 'celldefine', 'endcelldefine', + 'resetall', 'unconnected_drive', 'nounconnected_drive', 'line', 'begin_keywords', 'end_keywords', 'pragma']); + +/** Each call is a separate translation unit. Includes affect macro definedness, + * but are never pasted into the returned text. All offsets are original UTF-16 + * offsets; inactive text is replaced with spaces while CR/LF bytes stay put. */ +export function preprocessVerilog(source: string, options: HdlPreprocessOptions): HdlPreprocessResult { + const diagnostics: HdlPreprocessDiagnostic[] = []; + const record = (diagnostic: HdlPreprocessDiagnostic): void => { + if (diagnostics.length < 512) diagnostics.push(diagnostic); + else if (diagnostics.length === 512) diagnostics.push({ ...diagnostic, code: 'diagnostic-limit', + message: 'Additional preprocessing diagnostics were omitted after 512 entries.' }); + }; + const dependencies = new Set(); + const macros = new Map(); + let unknownMacros = false; + const trace = new Set(); + const requestedDepth = options.maxIncludeDepth; + const maxDepth = Number.isSafeInteger(requestedDepth) && requestedDepth! >= 0 ? Math.min(requestedDepth!, 256) : 64; + const invalidateMacros = (): void => { macros.clear(); unknownMacros = true; }; + const mask = (text: string): string => text.replace(/[^\r\n]/g, ' '); + for (const name of Object.keys(options.defines ?? {})) { + if (IDENTIFIER.exec(name)?.[0] === name) macros.set(name, true); + else record({ filePath: options.filePath, line: 1, code: 'invalid-profile-define', message: `Invalid macro name: ${name}` }); + } + + const process = (text: string, filePath: string, depth: number): string => { + const output = text.split(''); + const stack: Conditional[] = []; + let fatal = false; + const lineStarts = [0]; + for (let at = text.indexOf('\n'); at >= 0; at = text.indexOf('\n', at + 1)) lineStarts.push(at + 1); + const active = (): boolean => stack.length ? stack[stack.length - 1]!.active : true; + const report = (offset: number, code: string, message: string): void => { + let lo = 0, hi = lineStarts.length; + while (lo + 1 < hi) { const mid = (lo + hi) >>> 1; if (lineStarts[mid]! <= offset) lo = mid; else hi = mid; } + record({ filePath, line: lo + 1, code, message }); + }; + const blank = (start: number, end: number): void => { + for (let n = start; n < end; n++) if (text[n] !== '\n' && text[n] !== '\r') output[n] = ' '; + }; + const lineEnd = (start: number): number => { + let end = text.indexOf('\n', start); + if (end < 0) return text.length; + while (end > 0 && text[end - (text[end - 1] === '\r' ? 2 : 1)] === '\\') { + const next = text.indexOf('\n', end + 1); + if (next < 0) return text.length; + end = next; + } + return end; + }; + const nameAfter = (offset: number): { name?: string; end: number } => { + let start = offset; + while (text[start] === ' ' || text[start] === '\t') start++; + const name = IDENTIFIER.exec(text.slice(start))?.[0]; + return { name, end: name ? start + name.length : lineEnd(start) }; + }; + const defined = (name: string): boolean | undefined => macros.get(name) ?? (unknownMacros ? undefined : false); + const condition = (name: string | undefined, invert: boolean, offset: number): boolean | undefined => { + const value = name ? defined(name) : undefined; + if (value === undefined) { + report(offset, name ? 'unknown-conditional' : 'unsupported-conditional', name + ? `Cannot determine whether ${name} is defined; no branch was selected.` + : 'Only a simple macro identifier is supported in a conditional directive.'); + // Either unknown arm could define or undefine names used later. + invalidateMacros(); + return undefined; + } + return invert ? !value : value; + }; + + let i = 0; + while (i < text.length) { + const start = i; + // Directives inside comments, strings and escaped identifiers are text. + if (text.startsWith('//', i)) { + const end = text.indexOf('\n', i + 2); + i = end < 0 ? text.length : end; + } else if (text.startsWith('/*', i)) { + const end = text.indexOf('*/', i + 2); + i = end < 0 ? text.length : end + 2; + } else if (text[i] === '"') { + i++; + while (i < text.length) { + if (text[i] === '\\') { i += Math.min(2, text.length - i); continue; } + if (text[i] === '"') { i++; break; } + if (text[i] === '\n' || text[i] === '\r') break; + i++; + } + } else if (text[i] === '\\') { + i++; + while (i < text.length && !/\s/.test(text[i]!)) i++; + } else if (text[i] === '`') { + const directive = IDENTIFIER.exec(text.slice(i + 1))?.[0]; + if (!directive) { + if (active()) report(i, 'unsupported-macro-form', 'Unrecognized backtick form was preserved.'); + if (!active()) blank(i, i + 1); + i++; + continue; + } + const tokenEnd = i + 1 + directive.length; + if (['ifdef', 'ifndef', 'elsif'].includes(directive)) { + const argument = nameAfter(tokenEnd); + blank(i, argument.end); + if (directive !== 'elsif') { + const parent = active(); + const value = parent ? condition(argument.name, directive === 'ifndef', i) : false; + stack.push({ parent, active: parent && value === true, taken: value === true, + uncertain: value === undefined, elseSeen: false }); + } else { + const frame = stack[stack.length - 1]; + if (!frame || frame.elseSeen) { + report(i, 'malformed-conditional', '`elsif without a matching open conditional, or after `else.'); fatal = true; + } else if (!frame.parent || frame.taken || frame.uncertain) frame.active = false; + else { + const value = condition(argument.name, false, i); + frame.active = value === true; + frame.taken = value === true; + frame.uncertain = value === undefined; + } + } + i = argument.end; + continue; + } + if (directive === 'else' || directive === 'endif') { + blank(i, tokenEnd); + const frame = stack[stack.length - 1]; + if (!frame || (directive === 'else' && frame.elseSeen)) { + report(i, 'malformed-conditional', `Unexpected or duplicate \`${directive}.`); fatal = true; + } else if (directive === 'endif') stack.pop(); + else { frame.active = frame.parent && !frame.taken && !frame.uncertain; frame.taken ||= frame.active; frame.elseSeen = true; } + i = tokenEnd; + continue; + } + if (directive === 'define') { + const end = lineEnd(tokenEnd); + const argument = nameAfter(tokenEnd); + if (active()) { + if (argument.name) macros.set(argument.name, true); + else { report(i, 'unsupported-definition', 'Macro definition without a supported simple name was preserved.'); invalidateMacros(); } + } else blank(i, end); + i = end; + continue; + } + if (directive === 'undef') { + const argument = nameAfter(tokenEnd); + if (active()) { + if (argument.name) macros.set(argument.name, false); + else { report(i, 'unsupported-definition', 'Macro undefinition without a supported simple name was preserved.'); invalidateMacros(); } + } else blank(i, argument.end); + i = argument.end; + continue; + } + if (directive === 'undefineall') { + if (active()) { macros.clear(); unknownMacros = false; } else blank(i, tokenEnd); + i = tokenEnd; + continue; + } + if (directive === 'include') { + let cursor = tokenEnd; + while (text[cursor] === ' ' || text[cursor] === '\t') cursor++; + const opening = text[cursor]; + const closing = opening === '"' ? '"' : opening === '<' ? '>' : ''; + const end = closing ? text.indexOf(closing, cursor + 1) : -1; + const supported = end >= 0 && !/[\r\n]/.test(text.slice(cursor, end)); + const includeEnd = supported ? end + 1 : lineEnd(cursor); + if (active()) { + if (!supported) { + report(i, 'unsupported-include', 'Only literal quoted or bracketed include paths are supported.'); invalidateMacros(); + } else { + const request = text.slice(cursor + 1, end); + let included: HdlIncludeSource | null = null; + try { included = options.readInclude?.(request, filePath, options.includeDirs ?? []) ?? null; } + catch { report(i, 'include-read-failed', `Cannot read include ${request}.`); } + if (!included) { report(i, 'unresolved-include', `Include ${request} was not resolved; subsequent macro state is uncertain.`); invalidateMacros(); } + else { + dependencies.add(included.filePath); + const key = JSON.stringify([included.filePath, unknownMacros, [...macros].sort(([a], [b]) => a.localeCompare(b))]); + if (depth >= maxDepth || trace.has(key)) { + report(i, 'include-cycle-or-depth', `Include recursion cannot be resolved at ${included.filePath}.`); invalidateMacros(); + } else { trace.add(key); process(included.source, included.filePath, depth + 1); trace.delete(key); } + } + } + } else blank(i, includeEnd); + i = includeEnd; + continue; + } + if (active()) { + report(i, OTHER_DIRECTIVES.has(directive) ? 'unsupported-directive' : 'unsupported-macro-expansion', + `\`${directive} was preserved; ${OTHER_DIRECTIVES.has(directive) ? 'this compiler directive is not interpreted' : 'macro expansion is not supported'}.`); + // A replacement can itself contain `define/`undef/`include. Without + // expanding it, later macro definedness cannot be assumed unchanged. + if (!OTHER_DIRECTIVES.has(directive)) invalidateMacros(); + } else blank(i, tokenEnd); + i = tokenEnd; + continue; + } else i++; + if (!active()) blank(start, i); + } + if (stack.length) { report(text.length, 'malformed-conditional', 'Conditional directive has no matching `endif.'); fatal = true; } + if (fatal) { invalidateMacros(); return mask(text); } + return output.join(''); + }; + const selected = process(source, options.filePath, 0); + return { source: selected, dependencies: [...dependencies], diagnostics, complete: diagnostics.length === 0 }; +} diff --git a/src/hdl/profile.ts b/src/hdl/profile.ts new file mode 100644 index 000000000..4d3babb92 --- /dev/null +++ b/src/hdl/profile.ts @@ -0,0 +1,213 @@ +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import { createHash } from 'node:crypto'; + +export interface ActiveHdlProfile { + name: string; + files: string[]; + includeDirs: string[]; + defines: Record; + topModules: string[]; + languageMode: 'verilog' | 'systemverilog'; + /** Filelist contents participate in the fingerprint; include contents belong to preprocessing dependencies. */ + dependencies: Array<{ path: string; sha256: string }>; + fingerprint: string; +} +export interface HdlProfileLoadResult { + status: 'none' | 'active' | 'invalid-config' | 'invalid-profile'; + profile: ActiveHdlProfile | null; + diagnostics: string[]; + configInvalid: boolean; + configPresent: boolean; +} +interface ProfileSpec { + files: string[]; + filelists: string[]; + includeDirs: string[]; + defines: Record; + topModules: string[]; + languageMode: 'verilog' | 'systemverilog'; +} +export function isReservedHdlPath(relativePath: string): boolean { + return relativePath.split(/[\\/]/).some(part => part === '.git' || part === '.jj' || part === '.codegraph' || part.startsWith('.codegraph-')); +} +const MAX_BYTES = 1024 * 1024, MAX_LISTS = 256, MAX_DEPTH = 32, MAX_TOKENS = 100000; +const hash = (text: string) => createHash('sha256').update(text).digest('hex'); +const object = (value: unknown): value is Record => !!value && typeof value === 'object' && !Array.isArray(value); +function fail(message: string): never { throw new Error(message); } +function strings(value: unknown, label: string): string[] { + if (value === undefined) return []; + if (!Array.isArray(value) || !value.every(v => typeof v === 'string' && v.trim().length > 0)) fail(`${label}: expected an array of non-empty strings`); + return value; +} +function strictKeys(value: Record, keys: string[], label: string): void { + for (const key of Object.keys(value)) if (!keys.includes(key)) fail(`${label}: unsupported field ${key}`); +} +function spec(value: unknown, label: string): ProfileSpec { + if (!object(value)) fail(`${label}: expected an object`); + strictKeys(value, ['files', 'filelists', 'includeDirs', 'defines', 'topModules', 'languageMode'], label); + const defines: Record = Object.create(null); + if (value.defines !== undefined) { + if (!object(value.defines)) fail(`${label}.defines: expected an object with string values`); + for (const [name, val] of Object.entries(value.defines)) { + if (!/^[A-Za-z_][A-Za-z0-9_$]*$/.test(name) || typeof val !== 'string') fail(`${label}.defines: invalid macro name or non-string value`); + defines[name] = val; + } + } + const languageMode = value.languageMode ?? 'systemverilog'; + if (languageMode !== 'verilog' && languageMode !== 'systemverilog') fail(`${label}.languageMode: expected verilog or systemverilog`); + return { files: strings(value.files, `${label}.files`), filelists: strings(value.filelists, `${label}.filelists`), + includeDirs: strings(value.includeDirs, `${label}.includeDirs`), defines, + topModules: strings(value.topModules, `${label}.topModules`), languageMode }; +} + +/** Preserve quoting so '+' inside a quoted define value or directory is not a separator. */ +function tokens(text: string): string[] { + const out: string[] = []; + let token = '', quote = ''; + const flush = () => { if (token) { out.push(token); token = ''; } }; + for (let i = 0; i < text.length; i++) { + const c = text[i]!, next = text[i + 1]; + if (c === '\\' && next !== undefined) { + if (next === '\n') { i++; continue; } + if (next === '\r' && text[i + 2] === '\n') { i += 2; continue; } + token += c + next; i++; continue; + } + if (quote) { token += c; if (c === quote) quote = ''; continue; } + // An apostrophe in 1'b1 / '0 is a Verilog literal, not a path quote. + if (c === '"' || (c === "'" && (!token || token.endsWith('+')))) { quote = c; token += c; continue; } + if ((c === '/' && next === '/') || (c === '#' && !token)) { + flush(); while (i < text.length && text[i] !== '\n') i++; continue; + } + if (c === '/' && next === '*') { + flush(); const end = text.indexOf('*/', i + 2); if (end < 0) fail('Unterminated filelist block comment'); i = end + 1; continue; + } + if (/\s/.test(c)) { flush(); continue; } + token += c; + } + if (quote) fail('Unterminated filelist quote'); + flush(); + return out; +} +function splitPlus(token: string): string[] { + const parts: string[] = []; + let part = '', quote = ''; + for (let i = 0; i < token.length; i++) { + const c = token[i]!; + if (c === '\\' && i + 1 < token.length) { part += c + token[++i]; continue; } + if (quote) { part += c; if (c === quote) quote = ''; continue; } + if (c === '"' || (c === "'" && !part)) { quote = c; part += c; continue; } + if (c === '+') { parts.push(part); part = ''; } else part += c; + } + parts.push(part); return parts; +} +function unquote(token: string): string { + let out = '', quote = ''; + for (let i = 0; i < token.length; i++) { + const c = token[i]!; + if (c === '\\' && i + 1 < token.length && /[\\"'\s]/.test(token[i + 1]!)) { out += token[++i]; continue; } + if (quote) { if (c === quote) quote = ''; else out += c; continue; } + if (c === '"' || (c === "'" && i === 0)) { quote = c; continue; } + out += c; + } + if (quote) fail('Unterminated filelist quote'); + return out; +} + +/** Load only a selected, explicit source profile. Invalid HDL never means "scan everything". + * No HDL section preserves legacy behavior. Malformed overall JSON is reported separately + * so the existing config loader can retain its policy and an indexed-profile guard can fail safely. + */ +export function loadHdlProfile(projectRoot: string): HdlProfileLoadResult { + const result = (status: HdlProfileLoadResult['status'], diagnostics: string[] = [], profile: ActiveHdlProfile | null = null): HdlProfileLoadResult => + ({ status, profile, diagnostics, configInvalid: status === 'invalid-config', configPresent: present }); + let present = false; + let root: string; + try { root = fs.realpathSync(projectRoot); } catch { return result('invalid-config', ['HDL project root is unavailable']); } + const contained = (candidate: string): string => { + if (isReservedHdlPath(path.relative(root, candidate))) fail('Reserved VCS/CodeGraph paths are unsupported in HDL profiles'); + const real = fs.realpathSync(candidate); + const rel = path.relative(root, real); + if (rel === '..' || rel.startsWith(`..${path.sep}`) || path.isAbsolute(rel)) fail('Paths outside the project are unsupported in HDL profiles'); + if (isReservedHdlPath(rel)) fail('Reserved VCS/CodeGraph paths are unsupported in HDL profiles'); + return real; + }; + const relative = (absolute: string) => path.relative(root, absolute).split(path.sep).join('/') || '.'; + const read = (absolute: string) => { + const stat = fs.statSync(absolute); + if (!stat.isFile() || stat.size > MAX_BYTES) fail('Config/filelist must be a regular file of at most 1 MiB'); + return fs.readFileSync(absolute, 'utf8'); + }; + let config: unknown; + try { + const file = path.join(root, 'codegraph.json'); + if (!fs.existsSync(file)) return result('none'); + present = true; + config = JSON.parse(read(contained(file))); + if (!object(config)) return result('invalid-config', ['codegraph.json: expected a JSON object']); + } catch (error) { return result('invalid-config', [`codegraph.json could not be read: ${(error as Error).message}`]); } + if (!Object.prototype.hasOwnProperty.call(config, 'hdl')) return result('none'); + try { + const hdl = config.hdl; + if (!object(hdl)) fail('codegraph.json hdl: expected an object'); + strictKeys(hdl, ['activeProfile', 'profiles'], 'hdl'); + if (typeof hdl.activeProfile !== 'string' || !hdl.activeProfile.trim()) fail('hdl.activeProfile: expected a non-empty profile name'); + if (!object(hdl.profiles) || !Object.prototype.hasOwnProperty.call(hdl.profiles, hdl.activeProfile)) fail('hdl.activeProfile does not select an existing profile'); + const selected = spec(hdl.profiles[hdl.activeProfile], `hdl.profiles.${hdl.activeProfile}`); + const files = new Set(), includeDirs = new Set(), dependencies = new Map(); + const defines: Record = Object.assign(Object.create(null), selected.defines); + const resolve = (name: string, base: string, directory: boolean) => { + const real = contained(path.resolve(base, name)); + const stat = fs.statSync(real); + if (directory ? !stat.isDirectory() : !stat.isFile()) fail(`HDL path has the wrong file type: ${relative(real)}`); + return real; + }; + const addFile = (name: string, base: string) => files.add(relative(resolve(name, base, false))); + const addInclude = (name: string, base: string) => includeDirs.add(relative(resolve(name, base, true))); + for (const file of selected.files) addFile(file, root); + for (const directory of selected.includeDirs) addInclude(directory, root); + let tokenCount = 0, listCount = 0; + const stack = new Set(); + const visited = new Set(); + const visit = (name: string, lookupBase: string, localPaths: boolean, depth: number): void => { + if (depth > MAX_DEPTH) fail('HDL filelist nesting exceeds 32 levels'); + const file = resolve(name, lookupBase, false), key = `${file}\0${localPaths}`; + if (stack.has(file)) fail(`HDL filelist cycle: ${relative(file)}`); + if (visited.has(key)) return; + if (++listCount > MAX_LISTS) fail('HDL profile exceeds 256 filelists'); + stack.add(file); visited.add(key); + const text = read(file), entries = tokens(text); + dependencies.set(relative(file), hash(text)); + tokenCount += entries.length; + if (tokenCount > MAX_TOKENS) fail('HDL profile exceeds 100000 filelist tokens'); + const base = localPaths ? path.dirname(file) : root; + for (let i = 0; i < entries.length; i++) { + const raw = entries[i]!, token = unquote(raw); + if (token === '-f' || token === '-F') { + const next = entries[++i]; if (!next) fail(`Missing argument for ${token}`); + visit(unquote(next), base, token === '-F', depth + 1); + } else if (raw.startsWith('+incdir+')) { + const dirs = splitPlus(raw.slice('+incdir+'.length)); + if (dirs.some(d => !d)) fail('Empty +incdir+ entry'); + for (const directory of dirs) addInclude(unquote(directory), base); + } else if (raw.startsWith('+define+')) { + for (const definition of splitPlus(raw.slice('+define+'.length))) { + const decoded = unquote(definition), eq = decoded.indexOf('='); + const macro = eq < 0 ? decoded : decoded.slice(0, eq), value = eq < 0 ? '1' : decoded.slice(eq + 1); + if (!/^[A-Za-z_][A-Za-z0-9_$]*$/.test(macro)) fail('Invalid +define+ macro name'); + if (Object.prototype.hasOwnProperty.call(defines, macro) && defines[macro] !== value) fail(`Conflicting values for HDL macro ${macro}`); + defines[macro] = value; + } + } else if (/^[+-]/.test(token)) fail(`Unsupported HDL filelist option: ${token.split('+').slice(0, 2).join('+')}`); + else addFile(token, base); + } + stack.delete(file); + }; + for (const filelist of selected.filelists) visit(filelist, root, path.extname(filelist) === '.F', 1); + const resolved = { name: hdl.activeProfile, files: [...files], includeDirs: [...includeDirs], + defines: Object.fromEntries(Object.entries(defines).sort(([a], [b]) => a.localeCompare(b))), + topModules: [...new Set(selected.topModules)], languageMode: selected.languageMode, + dependencies: [...dependencies].map(([file, sha256]) => ({ path: file, sha256 })).sort((a,b) => a.path.localeCompare(b.path)) }; + return result('active', [], { ...resolved, fingerprint: hash(JSON.stringify(resolved)) }); + } catch (error) { return result('invalid-profile', [(error as Error).message]); } +} diff --git a/src/hdl/status.ts b/src/hdl/status.ts new file mode 100644 index 000000000..7383b1200 --- /dev/null +++ b/src/hdl/status.ts @@ -0,0 +1,129 @@ +/** Public profile state is deliberately separate from the currently configured + * profile: queries describe the context stored with the index until rebuilt. */ +export interface HdlProfileDisplayIdentity { + name: string; + fingerprint: string; + files?: readonly string[]; + includeDirs?: readonly string[]; + defines?: Readonly>; + topModules?: readonly string[]; + languageMode?: 'verilog' | 'systemverilog'; +} +export interface HdlProfileSettingsSummary { + fileCount?: number; + includeDirs?: string[]; + defineNames?: string[]; + topModules?: string[]; + languageMode?: 'verilog' | 'systemverilog'; +} +export interface HdlProfileConfiguration { + status: 'none' | 'active' | 'invalid-config' | 'invalid-profile'; + profile: HdlProfileDisplayIdentity | null; + diagnostics: string[]; +} +export interface HdlIndexedProfileMetadata { + name: string | null; + fingerprint: string | null; + context: string | null; +} +export interface HdlProfileStatus { + configured: { mode: 'raw' | 'profile' | 'invalid'; name: string | null; fingerprint: string | null } & HdlProfileSettingsSummary; + indexed: { mode: 'raw' | 'profile' | 'unknown'; name: string | null; fingerprint: string | null; configurationFingerprint: string | null } & HdlProfileSettingsSummary; + state: 'matches' | 'mismatch' | 'unknown' | 'configuration-error'; + mismatch: boolean | null; + reindexRecommended: boolean; + diagnostics: string[]; + indexedDiagnostics: string[]; + incomplete: boolean; + limitations: string[]; +} +const RAW_LIMIT = 'Raw source may contain multiple conditional alternatives; no HDL build profile was applied.'; +const PROFILE_LIMIT = 'HDL preprocessing selects conditional branches and include macro state; macro invocations are not fully expanded. Displayed snippets are original source and may include inactive branches; indexed symbols follow the selected profile.'; +const DIALECT_LIMIT = 'languageMode records the intended dialect; the SystemVerilog grammar does not enforce Verilog-only conformance. topModules are recorded roots, not an elaborated hierarchy.'; +const SOURCE_LIMIT = 'Source relationships are not elaboration, synthesis, simulation or timing validation.'; + +function settingsSummary(value: object | null): HdlProfileSettingsSummary { + const record = value as Record | null; + if (!record) return {}; + const strings = (candidate: unknown): candidate is string[] => Array.isArray(candidate) && candidate.every(n => typeof n === 'string'); + return { + ...(strings(record.files) ? {fileCount:record.files.length} : {}), + ...(strings(record.includeDirs) ? {includeDirs:[...record.includeDirs]} : {}), + ...(record.defines && typeof record.defines === 'object' && !Array.isArray(record.defines) + ? {defineNames:Object.keys(record.defines).sort()} : {}), + ...(strings(record.topModules) ? {topModules:[...record.topModules]} : {}), + ...(record.languageMode === 'verilog' || record.languageMode === 'systemverilog' ? {languageMode:record.languageMode} : {}), + }; +} + +export function buildHdlProfileStatus( + configuration: HdlProfileConfiguration, + metadata: HdlIndexedProfileMetadata, + hasHdlFiles: boolean, +): HdlProfileStatus | null { + if (!hasHdlFiles && configuration.status === 'none' && !metadata.context && !metadata.fingerprint) return null; + let context: unknown; + try { context = metadata.context ? JSON.parse(metadata.context) : null; } catch { context = null; } + const record = context && typeof context === 'object' && !Array.isArray(context) + ? context as Record : null; + const raw = record?.mode === 'raw'; + if (!hasHdlFiles && configuration.status === 'none' && (raw || !metadata.name)) return null; + const indexed: HdlProfileStatus['indexed'] = raw + ? {mode:'raw',name:null,fingerprint:metadata.fingerprint,configurationFingerprint:null} + : metadata.name && metadata.fingerprint && record?.mode === 'profile' && typeof record.configurationFingerprint === 'string' + ? {mode:'profile',name:metadata.name,fingerprint:metadata.fingerprint,configurationFingerprint:record.configurationFingerprint,...settingsSummary(record)} + : {mode:'unknown',name:metadata.name,fingerprint:metadata.fingerprint,configurationFingerprint:null}; + const indexedDiagnostics = Array.isArray(record?.diagnostics) ? record.diagnostics.flatMap(value => { + if (typeof value === 'string') return [value]; + if (value && typeof value === 'object' && typeof value.message === 'string') { + const location = typeof value.filePath === 'string' ? `${value.filePath}${typeof value.line === 'number' ? ':' + value.line : ''}: ` : ''; + return [location + value.message]; + } + return []; + }) : []; + const invalid = configuration.status === 'invalid-config' || configuration.status === 'invalid-profile' + || (configuration.status === 'active' && !configuration.profile); + const configured: HdlProfileStatus['configured'] = invalid + ? {mode:'invalid',name:configuration.profile?.name ?? null,fingerprint:null} + : configuration.status === 'none' + ? {mode:'raw',name:null,fingerprint:null} + : {mode:'profile',name:configuration.profile!.name,fingerprint:configuration.profile!.fingerprint,...settingsSummary(configuration.profile)}; + const unknown = indexed.mode === 'unknown'; + const mismatch = invalid || unknown ? null : configured.mode !== indexed.mode + || (configured.mode === 'profile' && (configured.fingerprint !== indexed.configurationFingerprint || configured.name !== indexed.name)); + return {configured,indexed,state:invalid ? 'configuration-error' : unknown ? 'unknown' : mismatch ? 'mismatch' : 'matches', + mismatch,reindexRecommended:!invalid && (unknown || mismatch === true),diagnostics:[...configuration.diagnostics], + indexedDiagnostics,incomplete:record?.incomplete === true || indexedDiagnostics.length > 0, + limitations:[...(indexed.mode === 'raw' ? [RAW_LIMIT] : indexed.mode === 'profile' ? [PROFILE_LIMIT,DIALECT_LIMIT] : []), SOURCE_LIMIT]}; +} + +/** Shared compact note for CLI status and MCP explore responses. */ +export function formatHdlProfileStatus(status: HdlProfileStatus | null): string { + if (!status) return ''; + const label = (identity: HdlProfileStatus['indexed'] | HdlProfileStatus['configured']): string => { + if (identity.mode === 'raw') return 'raw source (no profile)'; + if (identity.mode === 'unknown') return 'unknown'; + if (identity.mode === 'invalid') return 'invalid configuration'; + return `${JSON.stringify(identity.name)} (${identity.fingerprint?.slice(0,12)})`; + }; + const lines = [`HDL context: indexed ${label(status.indexed)}; configured ${label(status.configured)}.`]; + if (status.indexed.mode === 'profile') { + const summary = status.indexed; + const parts = [summary.fileCount == null ? undefined : `${summary.fileCount} file(s)`, + summary.includeDirs ? `${summary.includeDirs.length} include path(s)` : undefined, + summary.defineNames ? `${summary.defineNames.length} define(s)` : undefined, + summary.topModules ? `${summary.topModules.length} recorded top module(s)` : undefined, + summary.languageMode ? `intended dialect ${summary.languageMode}` : undefined].filter(Boolean); + if (parts.length) lines.push(`Indexed HDL settings: ${parts.join('; ')}.`); + } + if (status.state === 'mismatch') lines.push('Profile mismatch: rebuild the index before interpreting results as the configured profile.'); + if (status.state === 'unknown') lines.push('Indexed profile provenance is unknown; rebuild the index to establish its HDL context.'); + if (status.state === 'configuration-error') lines.push('Fix the HDL profile configuration before rebuilding; results retain the indexed context.'); + if (status.incomplete) lines.push('Indexed HDL preprocessing is incomplete; unresolved regions are not evidence of an inactive branch.'); + for (const [label, diagnostics] of [['HDL configuration', status.diagnostics], ['Indexed HDL', status.indexedDiagnostics]] as const) { + lines.push(...diagnostics.slice(0,3).map(d=>`${label}: ${d.length > 240 ? d.slice(0,237) + '...' : d}`)); + if (diagnostics.length > 3) lines.push(`${label}: ${diagnostics.length - 3} additional diagnostics; inspect codegraph status --json.`); + } + lines.push(...status.limitations); + return lines.join('\n'); +} diff --git a/src/index.ts b/src/index.ts index 4bd3b9330..4d98018df 100644 --- a/src/index.ts +++ b/src/index.ts @@ -28,6 +28,9 @@ import { import { DatabaseConnection, getDatabasePath, removeDatabaseFiles } from './db'; import { WalCheckpointValve, resolveWalValveMb } from './db/wal-valve'; import { QueryBuilder } from './db/queries'; +import { loadHdlProfile } from './hdl/profile'; +import { hdlDependenciesChanged } from './hdl/index-context'; +import { buildHdlProfileStatus, type HdlProfileStatus } from './hdl/status'; import { isInitialized, createDirectory, @@ -741,6 +744,7 @@ export class CodeGraph { } } catch { /* metadata is advisory — never fail an index over it */ } + if (result.success && result.filesErrored === 0) this.orchestrator.commitHdlProfile(); return result; } finally { // Restore the auto-checkpoint interval AFTER the fold-up above so the @@ -778,7 +782,9 @@ export class CodeGraph { return { success: false, filesIndexed: 0, filesSkipped: 0, filesErrored: 0, nodesCreated: 0, edgesCreated: 0, errors: [{ message: 'Could not acquire file lock - another process may be indexing', severity: 'error' as const }], durationMs: 0 }; } try { - return this.orchestrator.indexFiles(filePaths); + const result = await this.orchestrator.indexFiles(filePaths); + if (result.success && result.filesErrored === 0) this.orchestrator.commitHdlProfile(); + return result; } finally { this.fileLock.release(); } @@ -1069,6 +1075,7 @@ export class CodeGraph { try { this.queries.setMetadata(INDEXED_AT_COMMIT_KEY, headBeforeSync); } catch { /* advisory */ } } + this.orchestrator.commitHdlProfile(); return result; } finally { // Mirror indexAll's teardown: stop the valve, then restore the @@ -1122,7 +1129,8 @@ export class CodeGraph { const filesChanged = result.filesAdded + result.filesModified + result.filesRemoved; return { filesChanged, durationMs: result.durationMs }; }, - options + options, + () => this.getHdlDependencyPaths() ); return this.watcher.start(); @@ -1262,6 +1270,28 @@ export class CodeGraph { * index built before stamping existed (treated as stale). See * `extraction-version.ts` and `isIndexStale()`. */ + getHdlDependencyPaths(): string[] { + try { + const context = JSON.parse(this.queries.getMetadata('hdl_profile_context') ?? 'null'); + return Array.isArray(context?.dependencies) ? context.dependencies.flatMap((d: unknown) => + d && typeof d === 'object' && 'path' in d && typeof d.path === 'string' ? [d.path] : []) : []; + } catch { return []; } + } + + getHdlProfileStatus(): HdlProfileStatus | null { + const configuration = loadHdlProfile(this.projectRoot); + const metadata = { name: this.queries.getMetadata('hdl_profile_name') || null, + fingerprint: this.queries.getMetadata('hdl_profile_fingerprint'), context: this.queries.getMetadata('hdl_profile_context') }; + const hasHdl = this.queries.hasLanguage('verilog'); + if (!hasHdl && !metadata.name && configuration.status === 'invalid-config') return null; + const status = buildHdlProfileStatus(configuration, metadata, hasHdl); + if (status?.state === 'matches' && status.indexed.mode === 'profile' && hdlDependenciesChanged(this.projectRoot, metadata.context)) { + status.state = 'mismatch'; status.mismatch = true; status.reindexRecommended = true; + status.diagnostics.push('HDL include dependency changed since indexing.'); + } + return status; + } + getIndexBuildInfo(): { version: string | null; extractionVersion: number | null } { const version = this.queries.getMetadata('indexed_with_version'); const ev = this.queries.getMetadata('indexed_with_extraction_version'); diff --git a/src/mcp/server-instructions.ts b/src/mcp/server-instructions.ts index 6c29e5c29..82f9f992b 100644 --- a/src/mcp/server-instructions.ts +++ b/src/mcp/server-instructions.ts @@ -60,6 +60,8 @@ calls; a grep/read exploration is dozens. ## Verilog / SystemVerilog +An optional codegraph.json HDL profile selects source units and conditional branches. Exploration reports the indexed profile separately from current configuration. On mismatch, sync/rebuild before interpreting results as the new profile; invalid configuration must be corrected. Snippets remain original source, including inactive branches. Includes contribute macro state; full macro expansion and elaboration are not performed. + For signal readers/writers, pass one exact or qualified signal name as query and set hdlAccess to read, write, readwrite, control, event, or all. Read includes control/event and readwrite; write includes readwrite. Results show source positions and known formal-argument direction evidence. Unknown references remain unclassified; empty results do not prove absence of access. Query module and instance names to inspect hierarchy and the exact port-connection source. Ports/signals, lexical block scopes, generate template parameters, modports and always/assign blocks are searchable. Local signal references belong to their block; calls retain the enclosing function/process. Parser-recovered procedural regions may omit uncertain signal references. Query an instance-qualified connection such as top.u_rx1.rx to inspect its local expression and declared target port; an explicit empty connection still names a formal port but has no local endpoint. Bit/part-select references identify the base signal and indexed expressions, not evaluated widths. HDL references record syntactic signal use, not drive direction, timing or elaborated connectivity; positional bindings require authoritative header order, and wildcard matches require known formal ports and unambiguous local signals (explicit connections take priority). Generate iterations are not expanded. Qualified package calls retain package identity. diff --git a/src/mcp/tools.ts b/src/mcp/tools.ts index f2a30ed6d..21be9ce8d 100644 --- a/src/mcp/tools.ts +++ b/src/mcp/tools.ts @@ -1,3 +1,4 @@ +import { formatHdlProfileStatus } from '../hdl/status'; /** * MCP Tool Definitions * @@ -2362,7 +2363,17 @@ export class ToolHandler { case 'codegraph_callers': return await this.handleCallers(args); case 'codegraph_callees': return await this.handleCallees(args); case 'codegraph_impact': return await this.handleImpact(args); - case 'codegraph_explore': return await this.handleExplore(args); + case 'codegraph_explore': { + const result = await this.handleExplore(args); + if (result.isError) return result; + const profile = this.getCodeGraph(args.projectPath as string | undefined).getHdlProfileStatus?.() ?? null; + const note = formatHdlProfileStatus(profile); + const first = result.content[0]; + if (!note || first?.type !== 'text') return result; + const emission = result[EXPLORE_EMISSION_KEY]; + return { ...result, content: [{type:'text', text:`${note}\n\n${first.text}`}, ...result.content.slice(1)], + ...(emission ? {[EXPLORE_EMISSION_KEY]: {...emission,responseBytes:emission.responseBytes + note.length + 2}} : {}) }; + } case 'codegraph_node': return await this.handleNode(args); case 'codegraph_files': return await this.handleFiles(args); default: return this.errorResult(`Unknown tool: ${toolName}`); diff --git a/src/sync/hdl-watch-scope.ts b/src/sync/hdl-watch-scope.ts new file mode 100644 index 000000000..009def098 --- /dev/null +++ b/src/sync/hdl-watch-scope.ts @@ -0,0 +1,47 @@ +import * as path from 'node:path'; +import { loadHdlProfile, isReservedHdlPath, type ActiveHdlProfile } from '../hdl/profile'; + +/** Watch inputs to a selected HDL profile, including files outside the ordinary source filter. + * Retain the last valid scope after a transient deletion/invalid config so a repair is observable. */ +export class HdlWatchScope { + private profile: ActiveHdlProfile | null = null; + private files = new Set(); + private filelists = new Set(); + private includeDirs: string[] = []; + private sourceDirs = new Set(); + private identity = ''; + constructor(private readonly root: string, private readonly getDependencies?: () => string[]) {} + refresh(): boolean { + const loaded = loadHdlProfile(this.root); + if (loaded.status === 'active') this.profile = loaded.profile; + else if (loaded.status === 'none') this.profile = null; + const profile = this.profile; + const files = new Set(profile?.files ?? []); + this.filelists = new Set(profile?.dependencies.map(d => d.path) ?? []); + for (const file of this.filelists) files.add(file); + const dependencies = profile ? this.getDependencies?.() : []; + if (Array.isArray(dependencies)) for (const file of dependencies) { + if (typeof file !== 'string') continue; + const rel = path.relative(this.root, path.resolve(this.root, file)).split(path.sep).join('/'); + if (rel && rel !== '..' && !rel.startsWith('../') && !path.isAbsolute(rel) && !isReservedHdlPath(rel)) files.add(rel); + } + this.files = files; + this.includeDirs = profile?.includeDirs ?? []; + this.sourceDirs = new Set(profile?.files.map(file => path.posix.dirname(file)) ?? []); + const identity = JSON.stringify([[...files].sort(), [...this.filelists].sort(), this.includeDirs, [...this.sourceDirs].sort()]); + const changed = identity !== this.identity; + this.identity = identity; + return changed; + } + isFilelist(rel: string): boolean { return this.filelists.has(rel); } + matchesFile(rel: string): boolean { + if (isReservedHdlPath(rel)) return false; + return this.files.has(rel) || this.sourceDirs.has(path.posix.dirname(rel)) + || this.includeDirs.some(dir => dir === '.' || rel.startsWith(`${dir}/`)); + } + matchesDirectory(rel: string): boolean { + if (!this.profile || isReservedHdlPath(rel)) return false; + return [...this.files].some(file => file.startsWith(`${rel}/`)) + || this.includeDirs.some(dir => dir === '.' || dir === rel || dir.startsWith(`${rel}/`) || rel.startsWith(`${dir}/`)); + } +} diff --git a/src/sync/watcher.ts b/src/sync/watcher.ts index 5ea6436b6..56b2506ce 100644 --- a/src/sync/watcher.ts +++ b/src/sync/watcher.ts @@ -40,6 +40,7 @@ import { logDebug, logWarn } from '../errors'; import { normalizePath } from '../utils'; import { isCodeGraphDataDir } from '../directory'; import { watchDisabledReason } from './watch-policy'; +import { HdlWatchScope } from './hdl-watch-scope'; /** * Number of consecutive lock-contention retries the watcher tolerates before @@ -339,6 +340,7 @@ export class FileWatcher { // scope (#1728). An embedded repo created after start() joins the scope on // the next scope refresh / watcher restart / re-index. private ignoreMatcher: ScopeIgnore | null = null; + private readonly hdlScope: HdlWatchScope; private readonly projectRoot: string; private readonly debounceMs: number; @@ -351,9 +353,11 @@ export class FileWatcher { constructor( projectRoot: string, syncFn: (paths?: string[]) => Promise<{ filesChanged: number; durationMs: number }>, - options: WatchOptions = {} + options: WatchOptions = {}, + getHdlDependencyPaths?: () => string[] ) { this.projectRoot = projectRoot; + this.hdlScope = new HdlWatchScope(projectRoot, getHdlDependencyPaths); this.syncFn = syncFn; this.debounceMs = options.debounceMs ?? 2000; this.onSyncComplete = options.onSyncComplete; @@ -385,6 +389,7 @@ export class FileWatcher { // Reuse the indexer's ignore set so the watcher and indexer agree on scope. this.ignoreMatcher = buildScopeIgnore(this.projectRoot); + this.hdlScope.refresh(); try { if (this.inertForTests) { @@ -474,14 +479,25 @@ export class FileWatcher { * full sync. The initial startup walk passes false (the engine's catch-up * sync owns the baseline). */ - private watchTree(dir: string, markExisting: boolean): void { + private watchTree(dir: string, markExisting: boolean, rescan = false): void { // A degrade() mid-walk (exhaustion on an earlier directory) calls stop(), // which sets `stopped`; bail so the recursion unwinds without adding more // watches to a watcher that is shutting down. `inotifyLimitWarned` does the // same after ENOSPC — the kernel budget is gone, so stop trying the rest of // the tree (every add would fail) while keeping the watches already set. if (this.stopped || this.degradedReason || this.inotifyLimitWarned) return; - if (this.dirWatchers.has(dir)) return; + if (this.dirWatchers.has(dir)) { + // A profile switch can admit a formerly ignored child of an already watched directory. + if (rescan) { + let entries: fs.Dirent[]; + try { entries = fs.readdirSync(dir, { withFileTypes: true }); } catch { return; } + for (const entry of entries) if (entry.isDirectory()) { + const child = path.join(dir, entry.name); + if (!this.shouldIgnoreDir(child)) this.watchTree(child, markExisting, true); + } + } + return; + } if (this.dirWatchers.size >= maxDirWatches()) { if (!this.dirCapWarned) { this.dirCapWarned = true; @@ -593,7 +609,12 @@ export class FileWatcher { this.refreshScope(rel); return; } - if (this.ignoreMatcher && this.ignoreMatcher.ignores(rel)) return; + const hdlChange = this.hdlScope.matchesFile(rel) || this.hdlScope.matchesDirectory(rel); + if (this.hdlScope.isFilelist(rel)) { + this.refreshHdlScope(); + this.needsFullScan = true; + } + if (!hdlChange && this.ignoreMatcher && this.ignoreMatcher.ignores(rel)) return; // A nested `.gitignore` (an embedded child repo's own rules, #514, or a // subdirectory rule the git-backed full scan honors) is only a scope // change when it sits INSIDE the current scope — checked after the matcher @@ -604,7 +625,7 @@ export class FileWatcher { this.refreshScope(rel); return; } - if (!isSourceFile(rel, loadExtensionOverrides(this.projectRoot))) { + if (!hdlChange && !isSourceFile(rel, loadExtensionOverrides(this.projectRoot))) { this.maybeScheduleForRemovedDir(rel); return; } @@ -645,10 +666,17 @@ export class FileWatcher { private refreshScope(rel: string): void { logDebug('Scope config changed; rebuilding watcher scope', { file: rel }); this.ignoreMatcher = buildScopeIgnore(this.projectRoot); + this.refreshHdlScope(); this.needsFullScan = true; this.scheduleSync(); } + private refreshHdlScope(): void { + if (this.hdlScope.refresh() && !this.inert && !this.recursiveWatcher && this.dirWatchers.size > 0) { + this.watchTree(this.projectRoot, false, true); + } + } + /** * A deleted DIRECTORY arrives as one event on the directory's own path — * no source extension, so the source-file filter drops it, and the files @@ -713,6 +741,7 @@ export class FileWatcher { const rel = normalizePath(path.relative(this.projectRoot, dirPath)); if (!rel || rel === '.' || rel.startsWith('..')) return false; // root / outside if (this.isAlwaysIgnored(rel)) return true; + if (this.hdlScope.matchesDirectory(rel)) return false; if (!this.ignoreMatcher) return false; return this.ignoreMatcher.ignores(rel + '/'); } @@ -912,6 +941,7 @@ export class FileWatcher { try { const result = await this.syncFn(scoped); + this.refreshHdlScope(); if (!scoped) this.needsFullScan = false; this.lockRetryCount = 0; // a clean sync clears any contention backoff this.syncFailureRetryCount = 0; // ...and any generic-failure backoff From d8921aa7967ae2c29afd68693afa0f304ef219df Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 17:40:47 +0300 Subject: [PATCH 18/23] =?UTF-8?q?docs:=20=D1=81=D0=BE=D1=85=D1=80=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D1=82=D1=8C=20=D0=BF=D0=BE=D0=BB=D0=BD=D1=8B=D0=B9?= =?UTF-8?q?=20=D1=82=D1=80=D0=B5=D0=BA=D0=B5=D1=80=20=D1=80=D0=B0=D0=B7?= =?UTF-8?q?=D0=B2=D0=B8=D1=82=D0=B8=D1=8F=20Verilog=20=D0=B8=20SystemVeril?= =?UTF-8?q?og?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERILOG_TRACKER.md | 310 ++++++++++++++++++++++++++++++++++++++++++++ docs/hdl-roadmap.md | 2 + 2 files changed, 312 insertions(+) create mode 100644 VERILOG_TRACKER.md diff --git a/VERILOG_TRACKER.md b/VERILOG_TRACKER.md new file mode 100644 index 000000000..257496bb6 --- /dev/null +++ b/VERILOG_TRACKER.md @@ -0,0 +1,310 @@ +# Трекер развития Verilog / SystemVerilog в CodeGraph + +Дата состояния: 2026-09-12. Проверенная база реализации: `b050fb8910e80116e327d9dc9a8af40bccee67bc`, extraction stamp **38**. + +Назначение: довести HDL-навигацию до проверяемых ответов об иерархии, типах, +параметрах, соединениях и влиянии изменений на реальных RTL-проектах. +Это рабочий план с критериями закрытия задач, а не заявление о полном охвате языка. + +Канонический рабочий файл находится в checkout `/home/danik/storage/codegraph-fix-20260911/VERILOG_TRACKER.md`. +Копия в `/home/danik/Projects_and_coding/codegraph/VERILOG_TRACKER.md` сохранена для доступа из открытого проекта. +При обновлении статуса синхронизировать эти два файла, пока checkout остаются раздельными. + +## Правила ведения + +- `[x]` — выполнено в указанной базе и подтверждено отчётом; `[ ]` — предстоит. +- Задача закрывается после реализации, regression tests, проверки на реальном + корпусе и фиксации результата. Прототип сам по себе не означает поддержку. +- Для каждого закрытия записывать commit, отчёт, корпус/revision, профиль, + версии инструментов и оставшиеся ограничения. +- Не ставить календарный срок до измерения объёма; порядок задают зависимости. +- Source graph, compiler semantics и результаты simulation/formal — отдельные + уровни доказательств. Не подменять один другим. +- После каждого пакета актуализировать этот трекер, документацию и описание PR. + +## 1. Что уже сделано + +| ID | Статус | Результат и граница | +| --- | --- | --- | +| HDL-001 | [x] | Разбор `.v/.vh/.sv/.svh`, tree-sitter-systemverilog 0.4.0; версия grammar не доказывает полный охват стандарта | +| HDL-002 | [x] | Модули, instances, ports/signals, always/assign, function/task, packages, interface/modport | +| HDL-003 | [x] | Named, positional и wildcard port bindings с проверкой неоднозначности и порядка портов | +| HDL-004 | [x] | Lexical scopes, shadowing, generate templates, escaped names и устойчивые идентичности в проверенных случаях | +| HDL-005 | [x] | Синтаксические read/write/readwrite/control/event роли и `hdlAccess` / `--hdl-access` | +| HDL-006 | [x] | Пересчёт bindings/access roles при изменениях сигнатур и удалении/восстановлении объявлений | +| HDL-007 | [x] | Именованные build profiles, files/filelists, includes/defines, fingerprint и configured/indexed status | +| HDL-008 | [x] | Ограниченный выбор условных веток с сохранением исходных offsets/hashes и диагностикой unknown | +| HDL-009 | [x] | Watcher для config/filelists/includes, согласованный snapshot, диагностика частичного sync | +| HDL-010 | [x] | Реальные UART/CRC/AXI controls, sync против clean rebuild; поставка в три remote и draft PR #1845 | + +Последний полный прогон: native **4894 passed / 9 skipped**, WASM **4884 passed / +19 skipped**, ошибок нет; 55 профильных тестов прошли. Это результаты базы выше, +а не гарантия для последующих коммитов. Десять активных индексов были проверены +на stamp 38, complete и 0 pending. Windows/macOS в последнем пакете не проверялись. + +Отчёты в рабочем checkout: + +- `docs/validation-hdl-navigation-2026-09-12.md` +- `docs/validation-hdl-port-bindings-2026-09-12.md` +- `docs/validation-hdl-wildcard-2026-09-12.md` +- `docs/validation-hdl-scopes-2026-09-12.md` +- `docs/validation-hdl-access-2026-09-12.md` +- `docs/validation-hdl-parse-gaps-2026-09-12.md` +- `docs/validation-hdl-profiles-2026-09-12.md` +- Инструкция профилей: `docs/hdl-profiles.md`; предыдущая история: `docs/hdl-roadmap.md`. + +[База реализации и отчётов в GitHub](https://github.com/danusha2345/codegraph/tree/b050fb8910e80116e327d9dc9a8af40bccee67bc). + +## 2. Открытые ограничения, которые нельзя забыть + +- Include передаёт macro state, но не вставляет объявления header в compilation unit. +- Нет полного macro expansion и source map раскрытия. Непрозрачный macro может + сделать дальнейший выбор веток неизвестным; такие ветки не угадываются. +- Каждый перечисленный source начинает с defines профиля. Общая compilation-unit + семантика порядка файлов пока не моделируется. +- `topModules` и `languageMode` фиксируют намерение; нет elaboration, pruning от top + и строгой проверки соответствия Verilog-only dialect. +- Один индекс содержит один профиль; одновременного semantic cache нескольких + профилей пока нет. +- Нет достоверных instance-specific parameter values, ширин, типов и generate iterations. +- Source snippets могут содержать неактивные ветки. Access roles не доказывают + электрического драйвера, race, latch, timing или CDC. +- Пределы профильного snapshot: 1 MiB на source/header и 64 MiB суммарно. +- UART sim имеет 5 диагностик неинтерпретированного timescale; оба проверенных + AXI-профиля — 17 диагностик macro expansion. Полный demux требует отсутствовавших + в контрольном наборе common_cells includes; неполный корпус не считать ошибкой языка. + +## 3. Очередь выполнения и зависимости + +| Пакет | Приоритет | Зависит от | Результат | +| --- | --- | --- | --- | +| A. Корпуса и frontend prototype | P0, следующий | текущая база | Обоснованный выбор адаптера и воспроизводимый benchmark | +| B. Preprocessing и source mapping | P0 | A | Раскрытие macros/includes с происхождением каждого результата | +| C. Типы и параметры | P0 | A–B | Проверенные значения, dimensions и type references | +| D. Elaboration и иерархия | P0 | B–C | Instance-specific graph и реальные generate branches | +| E. Сквозные сигнальные пути | P1 | C–D, HDL-005 | Трассировка соединений с явными unknown участками | +| F. Инженерные запросы и impact | P1 | E | Полезные CLI/MCP ответы с доказательствами | +| G. Verification SystemVerilog | P1 | B–D | Assertion/coverage/bind/DUT navigation | +| H. Class и UVM navigation | P2 | G, реальные сценарии | Обоснованный ограниченный охват testbench OOP | +| I. Масштаб и переносимость | сквозной | каждый пакет | Измеренные ресурсы, recovery и проверки ОС | +| J. Поставка и актуальность | сквозной | каждый пакет | Документация, индексы, commit/push/PR readback | + +Пакеты идут последовательно по зависимостям. Внутри пакета независимые corpus, +frontend и review задачи можно отдавать агентам; общий schema/API контракт и +финальную интеграцию держать у одного владельца. + +## A. Корпуса и выбор compiler frontend + +- [ ] **A1** Зафиксировать manifest UART, eMMC/CRC, AXI: URL/revision, hashes, + license, source lists, includes, defines, top, tool versions и отсутствующие зависимости. +- [ ] **A2** Восстановить необходимые открытые зависимости AXI в изолированной + копии, зафиксировать версии и подтвердить корректный compiler invocation. +- [ ] **A3** Сравнить кандидатов: slang, Surelog/UHDM, Verilator; при необходимости + Yosys для синтезируемого подмножества. Актуальные версии, лицензии, экспорт и + ограничения проверить по официальным источникам во время прототипа. +- [ ] **A4** Измерить на одинаковых profiles: parse/elaboration success, diagnostics, + source locations, types/parameters export, instance paths, время и peak RSS. +- [ ] **A5** Проверить интеграцию: отдельный процесс, формат обмена, доступность на + Linux/Windows/macOS, версия API, redistributability и необязательность установки. +- [ ] **A6** Сохранить решение в `docs/hdl-frontend-decision.md` с матрицей результатов; + выбрать один основной адаптер. Второй внедрять только при доказанном пробеле. + +**Приёмка:** воспроизводимый запуск минимум на трёх реальных корпусах; сравнение +не менее двух подходящих кандидатов, либо документированный конкретный blocker. +Отсутствие frontend не ломает существующую source-навигацию. Производственный +адаптер до результатов сравнения не выбирать. + +## B. Полное preprocessing через выбранный frontend + +- [ ] **B1** Получать include/macro expansion и diagnostics из frontend; не писать + собственный полный HDL-препроцессор внутри extractor. +- [ ] **B2** Сопоставить expansion с исходным файлом, диапазоном, macro definition + и invocation. Для неоднозначного mapping возвращать явную неизвестность. +- [ ] **B3** Проверить function-like macros, arguments/defaults, nested expansion, + token concatenation/stringification, conditional includes и include guards. +- [ ] **B4** Определить compilation-unit mode и порядок sources явно; не смешивать + его с текущим independent-source режимом и не менять существующие profiles молча. +- [ ] **B5** Учесть compiler predefines, include search order и missing dependencies + в effective configuration и fingerprint. +- [ ] **B6** Изменения header/macro/flags должны инвалидировать semantic context; + old source snapshot не выдавать за новый compiler result. + +**Приёмка:** текущие AXI macro controls разобраны либо получили точную compiler +ошибку; результат имеет исходные locations. Правки macro definition и invocation, +удаление include и смена compilation-unit mode дают sync/rebuild parity. + +## C. Parameters, dimensions и types + +- [ ] **C1** Ввести отдельные semantic records с provenance и версией формата; + сохранить совместимость source IDs и существующих query/API. +- [ ] **C2** Parameters/localparams: declaration/default и evaluated value раздельно; + instance overrides и type parameters не смешиваются между экземплярами. +- [ ] **C3** Packed/unpacked dimensions, signedness, range direction, structs/unions, + enums, typedef aliases, package-qualified types и interface parameters. +- [ ] **C4** Отображать unresolved/external/unsupported состояния без фиктивных + значений и без молчаливого преобразования unknown/X/Z в обычный integer. +- [ ] **C5** Добавить запрос «тип/ширина/параметры этого порта в этом instance» + с переходами к declaration и override. + +**Приёмка:** ручные controls и compiler export совпадают на UART/CRC/AXI; +два instance одного module с разными параметрами имеют разные правильные widths. +Смена package typedef/parameter не оставляет прежнюю semantic запись после sync. + +## D. Elaboration и instance-specific hierarchy + +- [ ] **D1** Явно выбрать top(s), конфигурацию и libraries; multi-top и неизвестный + top возвращают объяснимый результат. +- [ ] **D2** Связать elaborated instance с source template, типом module и profile; + arrayed instances и escaped hierarchical names имеют устойчивые идентичности. +- [ ] **D3** Generate if/case/for: фактические ветки/iterations отдельно от templates; + genvar/localparams и parameter overrides брать из frontend. +- [ ] **D4** Сохранить interface/modport instances и формальные/фактические порты; + black boxes, external libraries и unsupported primitives показывать явно. +- [ ] **D5** Определить invalidation для смены top/parameter/source/frontend version; + запись нового semantic graph публикуется согласованно после успешного прохода. + +**Приёмка:** полные instance paths совпадают с frontend; несколько экземпляров и +условный generate не сливаются. Прерванная/неуспешная elaboration не уничтожает +source graph и не маркирует старый semantic graph как актуальный. + +## E. Связность и пути сигналов + +- [ ] **E1** Соединить actual expression → instance port → formal signal с + declaration direction и instance-specific widths. +- [ ] **E2** Представить slices, concatenations, replication, casts и expression + boundaries; разделить точное bit mapping и зависимость без точного mapping. +- [ ] **E3** Учесть interface/modport directions, arrays of interfaces, inout/ref; + спорные resolved-net/tri-state/alias случаи оставлять unknown до отдельного control. +- [ ] **E4** Трассировать source-level data/control dependencies через assign и + procedural blocks, отдельно обозначая sequential boundaries. +- [ ] **E5** Ограничить глубину/объём обхода, обработать циклы, показать место + остановки и доказательство каждого перехода. + +**Приёмка:** UART RX → FIFO, вход CRC → crc_out, AXI valid/ready через wrapper +сверены с ручной трассировкой. Отрицательные controls для shadowing, разных +instances/profiles и неверных slices не создают ложных переходов. Source path +не называется временной трассой или доказательством физической передачи сигнала. + +## F. Полезные запросы CLI/MCP и анализ изменений + +- [ ] **F1** Запросы «где объявлен», «кто читает/пишет», «куда подключён», + «какой instance/top/profile», «тип и ширина», «почему unknown». +- [ ] **F2** Запрос «что затронет изменение порта/параметра/typedef»: различать + подтверждённые прямые зависимости и возможные транзитивные последствия. +- [ ] **F3** Сравнение двух сохранённых profile/revision результатов — сначала + последовательное; необходимость постоянных нескольких индексов измерить отдельно. +- [ ] **F4** В ответах показывать configured/indexed/semantic context, freshness, + diagnostics и source links; строки header/expansion не приписывать другому файлу. +- [ ] **F5** Обновить CLI help, MCP instructions и пользовательские примеры. + Viewer hierarchy/path UI добавлять после стабилизации query contract. +- [ ] **F6** Сравнить ответы агента с CodeGraph и без него на фиксированных задачах: + точность, пропуски, ложные связи, число запросов, время и расход контекста. + +**Приёмка:** контрольные инженерные вопросы имеют ожидаемые ответы и ссылки; +пользователь видит причину неполного результата, а не пустую «доказанную» выборку. +A/B результаты записываются отдельно от extractor unit tests. + +## G. Verification-конструкции SystemVerilog + +- [ ] **G1** Property/sequence declarations и references, assert/assume/cover, + immediate/concurrent assertions, disable iff и используемые signals/clocks. +- [ ] **G2** Clocking blocks и sampled-value/event expressions: найти исходное + использование без заявления о полном temporal semantics. +- [ ] **G3** Bind targets и DUT ↔ checker/testbench connections с provenance профиля. +- [ ] **G4** Covergroup/coverpoint/cross declarations и связи с выражениями; + declaration coverage не путать с выполненным runtime coverage. +- [ ] **G5** Реальный открытый verification corpus плюс минимальные негативные cases. + +**Приёмка:** запрос по RTL-сигналу находит относящиеся assertions/checkers и +исходные строки. Результат не обозначается formal proof или simulation pass. + +## H. Classes и UVM — после RTL и verification navigation + +- [ ] **H1** Собрать реальные сценарии, где текущей навигации не хватает, прежде + чем расширять общий class resolver. +- [ ] **H2** Class inheritance, parameterized classes, methods, constructors, + virtual methods/interfaces и lexical visibility — с отдельными ambiguity controls. +- [ ] **H3** UVM macros, factory registration/overrides, config_db и phases: + статически подтверждённые связи отдельно от runtime possibilities. +- [ ] **H4** Измерить retrieval value на открытом testbench и выбрать полезное + подмножество; непредсказуемые runtime overrides не угадывать. + +**Приёмка:** контрольные testbench queries находят declarations и подтверждённые +связи, не выдают одну предполагаемую factory/runtime цель за точную. + +## I. Производительность, надёжность и переносимость + +- [ ] **I1** Для каждого пакета измерять cold index, no-op sync, source/header/profile + change, время queries, peak RSS, DB size и стоимость semantic cache. +- [ ] **I2** На большом corpus проверить dependency invalidation; оптимизировать + только после baseline, сохраняя согласованность source/compiler snapshots. +- [ ] **I3** Frontend process: timeout/cancel, bounded output, crash recovery, + missing executable/version mismatch, отсутствие shell-интерполяции аргументов. +- [ ] **I4** Проверить interrupted writes, watcher churn, concurrent source changes, + stale cache и отсутствие orphan processes после shutdown. +- [ ] **I5** Реальные Linux/Windows/macOS проверки paths, case sensitivity, + symlinks, CRLF, Unicode, file locks и watchers при наличии соответствующих сред. +- [ ] **I6** Проекты с generated HDL и файлами больше текущих limits: измерить + потребность, затем определить streaming/limits policy без безусловного расширения. +- [ ] **I7** Регулярно проверять обновления grammar/frontend и актуальные стандарты + по официальным источникам; перед обновлением — corpus diff и source-map controls. + +**Приёмка:** budgets фиксируются после baseline; нет необъяснённой регрессии. +Непроверенные ОС и неподдержанные constructs перечислены в отчёте явно. + +## J. Проверки и поставка каждого пакета + +- [ ] **J1** Сначала воспроизведение дефекта/ожидаемого поведения и минимальный + regression; для чистой документации достаточно проверки содержания и ссылок. +- [ ] **J2** Focused tests и независимое review изменений; исправление findings. +- [ ] **J3** Реальные corpus runs и сравнение полного графа sync/clean rebuild, + включая отрицательные случаи, diagnostics и неизменность исходников. +- [ ] **J4** Native/WASM suites при изменениях общих extraction/resolution/storage + путей; typecheck/build/assets. Не выдавать skipped за passed. +- [ ] **J5** Обновить extraction/schema/semantic cache version, если изменилась + интерпретация графа; проверить миграцию или понятное требование reindex. +- [ ] **J6** README/help/instructions, этот tracker, feature coverage matrix и + validation report привести к фактически поставленному состоянию. +- [ ] **J7** Переиндексировать согласованные активные проекты, проверить freshness; + для уже работающих MCP-сессий учесть необходимость restart новой реализации. +- [ ] **J8** В рамках согласованной поставки: JJ diff/status → commit → push + GitHub fork/GitLab/Forgejo → одинаковый SHA → PR body/head readback. +- [ ] **J9** Перед обновлением интеграционного PR проверить уже принятые upstream + изменения и убрать подтверждённо лишний diff. Не push в upstream main. + +J — повторяемый checklist, его отметки относятся к конкретному пакету, а не +закрывают всю будущую поставку навсегда. Npm release/deploy — отдельное действие, +не подразумеваемое обновлением draft PR. + +## 4. Матрица покрытия, которую нужно вести + +- [ ] Создать `docs/hdl-feature-coverage.md`: для каждой конструкции отметить + parse / extract / resolve / query / semantic и ссылку на реальный пример. +- [ ] Начальный перечень: modules/programs/interfaces/packages; ports/bindings; + parameters/types/dimensions; lexical/generate scopes; assignments/processes; + functions/tasks; directives/macros/includes; assertions/clocking/bind/coverage; + classes/UVM; primitives/configurations/libraries. +- [ ] Для каждого пробела определить: grammar, extractor, resolver, query, + отсутствующий build context или frontend limitation. Исправлять нужный слой. + +## 5. Ближайшая конкретная итерация + +1. Выполнить **A1–A2**: manifests и полноценный AXI build context. +2. Параллельно поручить агентам независимые frontend probes и аудит source mapping; + основной агент готовит общую схему результатов и baseline source graph. +3. Свести **A3–A6** в decision report и зафиксировать adapter contract. +4. Реализовать минимальную вертикаль **B1–B2 + C1–C2**: один profile, один top, + parameter value с правильным source mapping и fallback без frontend. +5. Провести J1–J9 для этого ограниченного пакета; затем расширять B/C и переходить к D. + +## 6. Журнал выполнения + +| Дата | Пакет | Результат | Commit / отчёт | Следующее действие | +| --- | --- | --- | --- | --- | +| 2026-09-12 | Source navigation, scopes, access | Реализованные части перечислены в HDL-001–006 | Отчёты раздела 1 | Сохранить regression coverage | +| 2026-09-12 | Build profiles | Ограниченный source-режим, реальные profile parity проверки | `b050fb89`, `docs/validation-hdl-profiles-2026-09-12.md` | A: frontend comparison | +| 2026-09-12 | Полный план | Создан этот tracker; новые implementation задачи не объявлены выполненными | `VERILOG_TRACKER.md` | A1–A2 | + +Для следующей записи: дата → ID задач → наблюдаемый результат → commit/report → +непроверенное/ограничения → следующий шаг. Исторические результаты не перезаписывать +как свежие без нового запуска. diff --git a/docs/hdl-roadmap.md b/docs/hdl-roadmap.md index 4bfa4435f..d2274adc3 100644 --- a/docs/hdl-roadmap.md +++ b/docs/hdl-roadmap.md @@ -1,5 +1,7 @@ # План развития Verilog/SystemVerilog +Актуальная очередь, критерии готовности и журнал выполнения: [VERILOG_TRACKER.md](../VERILOG_TRACKER.md). Ниже сохранена история исходных этапов. + ## Реализованный пакет после ce13487b 1. Ссылки на основания и индексы LHS bit/part selects и concatenations. From ced3a063ca5d7a9455e954d2e35e8ad64a522954 Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 17:59:14 +0300 Subject: [PATCH 19/23] =?UTF-8?q?test:=20=D0=B7=D0=B0=D0=BA=D1=80=D0=B5?= =?UTF-8?q?=D0=BF=D0=B8=D1=82=D1=8C=20HDL-=D0=BA=D0=BE=D1=80=D0=BF=D1=83?= =?UTF-8?q?=D1=81=D0=B0=20=D0=B8=20=D0=BF=D1=80=D0=BE=D0=B2=D0=B5=D1=80?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20AXI=20=D1=81=20locked=20dependencies?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERILOG_TRACKER.md | 17 +- docs/hdl-axi-build-validation.json | 222 ++ docs/hdl-corpus-manifest.json | 2745 +++++++++++++++++ ...validation-hdl-corpora-build-2026-09-12.md | 115 + scripts/hdl-axi-build-check.py | 138 + scripts/hdl-corpus-manifest.py | 257 ++ 6 files changed, 3489 insertions(+), 5 deletions(-) create mode 100644 docs/hdl-axi-build-validation.json create mode 100644 docs/hdl-corpus-manifest.json create mode 100644 docs/validation-hdl-corpora-build-2026-09-12.md create mode 100644 scripts/hdl-axi-build-check.py create mode 100644 scripts/hdl-corpus-manifest.py diff --git a/VERILOG_TRACKER.md b/VERILOG_TRACKER.md index 257496bb6..5f6ff33a0 100644 --- a/VERILOG_TRACKER.md +++ b/VERILOG_TRACKER.md @@ -71,8 +71,9 @@ электрического драйвера, race, latch, timing или CDC. - Пределы профильного snapshot: 1 MiB на source/header и 64 MiB суммарно. - UART sim имеет 5 диагностик неинтерпретированного timescale; оба проверенных - AXI-профиля — 17 диагностик macro expansion. Полный demux требует отсутствовавших - в контрольном наборе common_cells includes; неполный корпус не считать ошибкой языка. + AXI-профиля — 17 диагностик macro expansion. Прежний corpus не содержал common_cells includes; + A2 восстановил их в отдельной compiler-копии. Исходный frozen corpus не меняется; + runtime CodeGraph по-прежнему не выполняет полный macro/include expansion. ## 3. Очередь выполнения и зависимости @@ -95,10 +96,15 @@ frontend и review задачи можно отдавать агентам; об ## A. Корпуса и выбор compiler frontend -- [ ] **A1** Зафиксировать manifest UART, eMMC/CRC, AXI: URL/revision, hashes, +- [x] **A1** Зафиксировать manifest UART, eMMC/CRC, AXI: URL/revision, hashes, license, source lists, includes, defines, top, tool versions и отсутствующие зависимости. -- [ ] **A2** Восстановить необходимые открытые зависимости AXI в изолированной + Выполнено 2026-09-12: 137 HDL-файлов, `docs/hdl-corpus-manifest.json`; + один локальный card-reader testbench закреплён hash, а не Git revision. + Проверены clean/change/add/remove/restore controls. +- [x] **A2** Восстановить необходимые открытые зависимости AXI в изолированной копии, зафиксировать версии и подтвердить корректный compiler invocation. + Выполнено 2026-09-12: три lockfile dependencies; demux preprocessing default/VCS + и xbar lint/elaboration при NoSlvMst=1/2/4. Отчёт: `docs/validation-hdl-corpora-build-2026-09-12.md`. - [ ] **A3** Сравнить кандидатов: slang, Surelog/UHDM, Verilator; при необходимости Yosys для синтезируемого подмножества. Актуальные версии, лицензии, экспорт и ограничения проверить по официальным источникам во время прототипа. @@ -289,7 +295,7 @@ J — повторяемый checklist, его отметки относятся ## 5. Ближайшая конкретная итерация -1. Выполнить **A1–A2**: manifests и полноценный AXI build context. +1. **A1–A2 выполнены**: manifests и восстановленный AXI context; см. `docs/validation-hdl-corpora-build-2026-09-12.md`. 2. Параллельно поручить агентам независимые frontend probes и аудит source mapping; основной агент готовит общую схему результатов и baseline source graph. 3. Свести **A3–A6** в decision report и зафиксировать adapter contract. @@ -303,6 +309,7 @@ J — повторяемый checklist, его отметки относятся | --- | --- | --- | --- | --- | | 2026-09-12 | Source navigation, scopes, access | Реализованные части перечислены в HDL-001–006 | Отчёты раздела 1 | Сохранить regression coverage | | 2026-09-12 | Build profiles | Ограниченный source-режим, реальные profile parity проверки | `b050fb89`, `docs/validation-hdl-profiles-2026-09-12.md` | A: frontend comparison | +| 2026-09-12 | A1–A2 | Manifest 137 HDL, три locked AXI dependencies, шесть compiler controls | `docs/validation-hdl-corpora-build-2026-09-12.md` | A3–A6, сравнение frontends | | 2026-09-12 | Полный план | Создан этот tracker; новые implementation задачи не объявлены выполненными | `VERILOG_TRACKER.md` | A1–A2 | Для следующей записи: дата → ID задач → наблюдаемый результат → commit/report → diff --git a/docs/hdl-axi-build-validation.json b/docs/hdl-axi-build-validation.json new file mode 100644 index 000000000..d60be7816 --- /dev/null +++ b/docs/hdl-axi-build-validation.json @@ -0,0 +1,222 @@ +{ + "axiRevision": "da8793b0e3f14c9186c94fac9ed6ec06375c254e", + "benderLockSha256": "6e91c73d8fdb6f6a2280e433dc4a3879adc0bb09969c09049d65564c0c50d223", + "tools": { + "bender": "bender 0.32.1", + "verilator": "Verilator 5.051 devel rev v5.050-260-g1c9a9e0cc (mod)" + }, + "dependencies": { + "common_cells": { + "revision": "03d98106aa19952a10360d2230def85144a0008b", + "path": ".bender/git/checkouts/common_cells-3e2fcccecd7aee7b" + }, + "common_verification": { + "revision": "fb1885f48ea46164a10568aeff51884389f67ae3", + "path": ".bender/git/checkouts/common_verification-5b9bacfe2f79eb87" + }, + "tech_cells_generic": { + "revision": "3a3de73632a06826b1bd9c65a0a2e92b32016845", + "path": ".bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b" + } + }, + "profile": { + "target": "synth_test", + "top": "synth_axi_lite_xbar", + "parameterValues": { + "NoSlvMst": [ + 1, + 2, + 4 + ] + }, + "defines": [ + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR" + ], + "includeDirs": [ + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include" + ], + "filelistSha256": "89377169cba1b548529c3fd2a54a5b20fd66c925ccb94e64f005d343945a37f3" + }, + "cases": [ + { + "name": "demux-missing-include-control", + "argv": [ + "${VERILATOR}", + "-E", + "-P", + "-Iinclude", + "src/axi_demux_simple.sv" + ], + "exit": 1, + "seconds": 0.072, + "warnings": {}, + "errors": 3 + }, + { + "name": "demux-preprocess-default", + "argv": [ + "${VERILATOR}", + "-E", + "-P", + "-Iinclude", + "-I${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "src/axi_demux_simple.sv" + ], + "exit": 0, + "seconds": 0.072, + "warnings": {}, + "errors": 0 + }, + { + "name": "demux-preprocess-VCS", + "argv": [ + "${VERILATOR}", + "-E", + "-P", + "-Iinclude", + "-I${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+define+VCS", + "src/axi_demux_simple.sv" + ], + "exit": 0, + "seconds": 0.071, + "warnings": {}, + "errors": 0 + }, + { + "name": "xbar-lint-1", + "argv": [ + "${VERILATOR}", + "--lint-only", + "--assert", + "-Wno-fatal", + "--top-module", + "synth_axi_lite_xbar", + "-GNoSlvMst=1", + "--Mdir", + "${AXI}/build/final-controls/obj-1", + "-f", + "${AXI}/build/final-controls/verilator.f" + ], + "exit": 0, + "seconds": 0.611, + "warnings": { + "PINMISSING": 3, + "WIDTHEXPAND": 3, + "WIDTHTRUNC": 3 + }, + "errors": 0 + }, + { + "name": "xbar-lint-2", + "argv": [ + "${VERILATOR}", + "--lint-only", + "--assert", + "-Wno-fatal", + "--top-module", + "synth_axi_lite_xbar", + "-GNoSlvMst=2", + "--Mdir", + "${AXI}/build/final-controls/obj-2", + "-f", + "${AXI}/build/final-controls/verilator.f" + ], + "exit": 0, + "seconds": 0.773, + "warnings": { + "PINMISSING": 3, + "SPLITVAR": 3, + "UNOPTFLAT": 1, + "WIDTHEXPAND": 3, + "WIDTHTRUNC": 4 + }, + "errors": 0 + }, + { + "name": "xbar-lint-4", + "argv": [ + "${VERILATOR}", + "--lint-only", + "--assert", + "-Wno-fatal", + "--top-module", + "synth_axi_lite_xbar", + "-GNoSlvMst=4", + "--Mdir", + "${AXI}/build/final-controls/obj-4", + "-f", + "${AXI}/build/final-controls/verilator.f" + ], + "exit": 0, + "seconds": 1.183, + "warnings": { + "PINMISSING": 3, + "UNOPTFLAT": 2, + "WIDTHEXPAND": 3, + "WIDTHTRUNC": 4 + }, + "errors": 0 + } + ], + "trackedInputCount": 152, + "trackedInputsUnchanged": true, + "limitations": [ + "Warnings retained with -Wno-fatal; not a warning-free build", + "Lint/elaboration controls only, no simulation, synthesis or FPGA validation", + "Not the complete axi_synth_bench and not all tops" + ], + "toolDistribution": { + "benderRelease": "https://github.com/pulp-platform/bender/releases/tag/v0.32.1", + "benderArchiveSha256": "59a36723b056a06b266dc68d4ceedcd0aa17a1c096e8c2ea512af264ff6a13f6", + "benderArchiveChecksumVerified": true, + "ossCadSuite": "20260825" + }, + "negativeEnvironmentControl": { + "BENDER_DIR": "/no/such/project", + "result": "Explicit --dir pins checkout; all six controls passed" + } +} diff --git a/docs/hdl-corpus-manifest.json b/docs/hdl-corpus-manifest.json new file mode 100644 index 000000000..22f5ceab7 --- /dev/null +++ b/docs/hdl-corpus-manifest.json @@ -0,0 +1,2745 @@ +{ + "schema_version": 1, + "purpose": "Воспроизводимые source snapshots для проверки CodeGraph HDL; исходники не распространяются.", + "hash_algorithm": "sha256", + "corpora": [ + { + "id": "dual-uart", + "provenance": { + "remote": "https://github.com/danusha2345/2uart_to_1uart.git", + "revision": "afce8bf3392da11ed76dacd122e32b1fdb1aee6f", + "revision_matches_all_captured_sources": true, + "sources_not_matching_revision": [], + "working_tree_matches_all_captured_sources": true, + "sources_not_matching_origin_working_tree": [], + "note": "revision — доказательство только совпавших blobs; остальные файлы закреплены отдельными SHA-256" + }, + "license": { + "status": "unknown; license file отсутствует в исходном repo root", + "evidence": [], + "source_spdx": [] + }, + "source_files": [ + { + "path": "src/fifo.v", + "sha256": "c65ecffaec1fca5e7af55e4ae58071ec79299bff504c22fd54d4a87dc0660641", + "bytes": 2366 + }, + { + "path": "src/top.v", + "sha256": "1868c1182f158533c439804d084a65cda98b6d56d6c25783f4f226a62762ab2c", + "bytes": 7818 + }, + { + "path": "src/uart_arbiter.v", + "sha256": "61255fb82edcfd2b8ce5b72a175fcdecc7682c772d9247d6a379b74e8e242aaf", + "bytes": 5505 + }, + { + "path": "src/uart_rx.v", + "sha256": "19c2a62de05955a6f6efefab307d7f5d38d15e14f6bf7d72a43bbb66840d7a17", + "bytes": 4458 + }, + { + "path": "src/uart_rx_autobaud.v", + "sha256": "ea8bbd813e26807e33f7ec3151041b757063e79523196e077253aeaf2aa74838", + "bytes": 10553 + }, + { + "path": "src/uart_tx.v", + "sha256": "67a1c828fc32fb81ed8c763c7230ff0c495662003d5d2796a9c1c0253d09cbdb", + "bytes": 3248 + }, + { + "path": "tb/tb_fifo.v", + "sha256": "8f4c07e1c8aa2f16104faebe806747fda0fe9339c0ef7d3cdc9bab7e7e0b008f", + "bytes": 11580 + }, + { + "path": "tb/tb_top.v", + "sha256": "a9634eea196f2959f17f918d657a1829ac73b8259fad9b74b9dce7e92c2dc7ee", + "bytes": 13085 + }, + { + "path": "tb/tb_uart_arbiter.v", + "sha256": "310be4640f501fe0be8471245e233dd8f2bfe4c6a36a61e642408eed1771cc1a", + "bytes": 12202 + }, + { + "path": "tb/tb_uart_rx.v", + "sha256": "c55dfe4809564da5debcaf14f90d87553c9c27841dc11cd0cbdbf4a029884e02", + "bytes": 12179 + }, + { + "path": "tb/tb_uart_tx.v", + "sha256": "ca2311337d7d403b4e5d246e662045d712316816fedd6f7ea2390b9eff1145ac", + "bytes": 8715 + } + ], + "source_inventory_sha256": "a71a77bfc592f9ed723de5fd50edad8e3d7e0bca5e71016d68bc62f491cc5adc", + "build_evidence": [ + { + "path": "build.tcl", + "sha256": "fc60c215a602884aeb12a62affaede928d8d3e73d27eee4f4d4aaf4062517130", + "bytes": 829, + "command_evidence": [ + { + "line": 8, + "text": "add_file -type verilog \"src/top.v\"" + }, + { + "line": 9, + "text": "add_file -type verilog \"src/uart_rx.v\"" + }, + { + "line": 10, + "text": "add_file -type verilog \"src/uart_tx.v\"" + }, + { + "line": 11, + "text": "add_file -type verilog \"src/fifo.v\"" + }, + { + "line": 12, + "text": "add_file -type verilog \"src/uart_arbiter.v\"" + }, + { + "line": 15, + "text": "add_file -type cst \"src/tangprimer25k.cst\"" + }, + { + "line": 16, + "text": "add_file -type sdc \"src/fpga_project.sdc\"" + }, + { + "line": 19, + "text": "set_option -top_module top" + } + ], + "declared_files": [ + "src/top.v", + "src/uart_rx.v", + "src/uart_tx.v", + "src/fifo.v", + "src/uart_arbiter.v", + "src/tangprimer25k.cst", + "src/fpga_project.sdc" + ], + "matches_revision": true + }, + { + "path": "fpga_primer.gprj", + "sha256": "febe843273bf64f873911a108fc9e02f5e69afa9cf34cecb508c73201a924c7a", + "bytes": 873, + "command_evidence": [], + "declared_files": [ + "src/fifo.v", + "src/top.v", + "src/uart_arbiter.v", + "src/uart_rx.v", + "src/uart_rx_autobaud.v", + "src/uart_tx.v", + "src/tangprimer25k.cst", + "src/fpga_project.sdc" + ], + "matches_revision": true + }, + { + "path": "tb/Makefile", + "sha256": "87026066eb3e5f371c0cb9047ab65b73c49f9f5c830a4d6ea28eb3c02a0e1bb3", + "bytes": 991, + "command_evidence": [ + { + "line": 19, + "text": "$(IV) -o $(SIMDIR)/tb_fifo tb_fifo.v $(SRCDIR)/fifo.v" + }, + { + "line": 23, + "text": "$(IV) -o $(SIMDIR)/tb_uart_rx tb_uart_rx.v $(SRCDIR)/uart_rx.v" + }, + { + "line": 27, + "text": "$(IV) -o $(SIMDIR)/tb_uart_tx tb_uart_tx.v $(SRCDIR)/uart_tx.v" + }, + { + "line": 31, + "text": "$(IV) -o $(SIMDIR)/tb_uart_arbiter tb_uart_arbiter.v $(SRCDIR)/uart_arbiter.v" + }, + { + "line": 35, + "text": "$(IV) -o $(SIMDIR)/tb_top tb_top.v $(SRCS)" + } + ], + "matches_revision": true + } + ], + "validation_profiles": [ + { + "name": "synth-source", + "purpose": "source-graph validation; не compiler/elaboration closure", + "files": [ + "src/fifo.v", + "src/top.v", + "src/uart_arbiter.v", + "src/uart_rx.v", + "src/uart_rx_autobaud.v", + "src/uart_tx.v" + ], + "top_modules": [ + "top" + ], + "top_evidence": [ + { + "kind": "module", + "name": "top", + "path": "src/top.v", + "line": 20 + } + ], + "include_dirs": [], + "defines": {} + }, + { + "name": "sim-source", + "purpose": "source-graph validation; не compiler/elaboration closure", + "files": [ + "src/fifo.v", + "src/top.v", + "src/uart_arbiter.v", + "src/uart_rx.v", + "src/uart_rx_autobaud.v", + "src/uart_tx.v", + "tb/tb_fifo.v", + "tb/tb_top.v", + "tb/tb_uart_arbiter.v", + "tb/tb_uart_rx.v", + "tb/tb_uart_tx.v" + ], + "top_modules": [ + "tb_top" + ], + "top_evidence": [ + { + "kind": "module", + "name": "tb_top", + "path": "tb/tb_top.v", + "line": 3 + } + ], + "include_dirs": [], + "defines": {} + } + ], + "literal_include_references": [], + "missing_dependencies": { + "literal_includes": [], + "imported_packages_without_declaration": [], + "symbols": [], + "locked_external_packages": [], + "build_recipe_files_not_in_corpus": [ + { + "path": "src/tangprimer25k.cst", + "evidence": "build.tcl" + }, + { + "path": "src/fpga_project.sdc", + "evidence": "build.tcl" + }, + { + "path": "src/tangprimer25k.cst", + "evidence": "fpga_primer.gprj" + }, + { + "path": "src/fpga_project.sdc", + "evidence": "fpga_primer.gprj" + } + ], + "scope": "Только наблюдаемые literal includes/imports и перечисленные primitives; conditional branches не вычисляются. Не доказательство полной build closure." + } + }, + { + "id": "card-reader", + "provenance": { + "remote": "https://github.com/danusha2345/fpga_tang_nano_9k_card_reader.git", + "revision": "dac04f8ec82869d3e358d3c4eefb7c168d42546f", + "revision_matches_all_captured_sources": false, + "sources_not_matching_revision": [ + "sim/tb_uart_bridge_debug.v" + ], + "working_tree_matches_all_captured_sources": true, + "sources_not_matching_origin_working_tree": [], + "note": "revision — доказательство только совпавших blobs; остальные файлы закреплены отдельными SHA-256" + }, + "license": { + "status": "unknown; license file отсутствует в исходном repo root", + "evidence": [], + "source_spdx": [] + }, + "source_files": [ + { + "path": "sim/pll_stub.v", + "sha256": "0192791254f9c3215e1471afe211df1c199d2fa25bec674022a615405b3e06b9", + "bytes": 381 + }, + { + "path": "sim/tb_crc16.v", + "sha256": "553ebf3f32407ea54a53e471aa61ec5a7ee1e1a15918c765e12e9e22b4fa142c", + "bytes": 3093 + }, + { + "path": "sim/tb_crc7.v", + "sha256": "24d01ad415f665fdc7eac4fd4791728d0f5914d387b2388f6b261836d6115308", + "bytes": 3704 + }, + { + "path": "sim/tb_crc8.v", + "sha256": "91955aa6b6b7eecbb9973968f44c4b99b91c0c86a76d14d98de18d808916d0b0", + "bytes": 3760 + }, + { + "path": "sim/tb_emmc_cmd.v", + "sha256": "75e9d48be8d4baf8cea3a431e5a3670fa6a2c47ff80e8b1a5d5c7ce816cd0c89", + "bytes": 11899 + }, + { + "path": "sim/tb_emmc_cmd_crc_verify.v", + "sha256": "2498a5dd9d8c396421639c770124dd20f6e222c118a03582396fb222bcf946e2", + "bytes": 9231 + }, + { + "path": "sim/tb_emmc_controller.v", + "sha256": "7981f493e0292155e1de00b81ccf4988b280541234de20a9a0531290e6a28e0b", + "bytes": 123856 + }, + { + "path": "sim/tb_emmc_dat.v", + "sha256": "bda8e0aa2a2d5e1bf00418019b7a33274227c74eac8fd9f8aba786629a8fcd22", + "bytes": 23900 + }, + { + "path": "sim/tb_emmc_init.v", + "sha256": "d081bded8352a2571c996b1793dea2a7a6e7704bc5fd0c3a177d959787eef55d", + "bytes": 13724 + }, + { + "path": "sim/tb_led_status.v", + "sha256": "a147c7fe76605ab3b9de7694aeabb4599981cf096f648cd379025fd87f08346d", + "bytes": 6202 + }, + { + "path": "sim/tb_sector_buf.v", + "sha256": "91317266d09fb3d9f04716f50d4ab0094803089959d115d8c02c0f7fd087cb82", + "bytes": 5479 + }, + { + "path": "sim/tb_sector_buf_wr.v", + "sha256": "c824a359034bae978cbb79601c1f187b699dd44e51483046af7e63144f1fe850", + "bytes": 6581 + }, + { + "path": "sim/tb_top_integration.v", + "sha256": "0a18c66bd1470a1f8ab6d06debc0ba041247e19a5043e7ec994eff02580201e6", + "bytes": 27724 + }, + { + "path": "sim/tb_uart_bridge.v", + "sha256": "e0a3da7e2dd07f032e6853a68850e66b79532775cb85af35a1f73211bc7dd4b8", + "bytes": 97128 + }, + { + "path": "sim/tb_uart_bridge_debug.v", + "sha256": "fb613fbdf492ec1078d0e4c370f27d18d23089d62b4a6523197b51e4205ab959", + "bytes": 56 + }, + { + "path": "sim/tb_uart_loopback.v", + "sha256": "b3bc3ccfbf1027283caf4c38d1c64d881cd905eb690c172e94a36b8d54c2636f", + "bytes": 4755 + }, + { + "path": "sim/tb_uart_rx.v", + "sha256": "b2ca6aee7434d78b70ada6c1509e6d3c3f768b62e0f136575c9ad10f7baed2f5", + "bytes": 7493 + }, + { + "path": "sim/tb_uart_tx.v", + "sha256": "7f1694bde8defdaa081425495eb9cfa08e98bb27104143b2725f97065d354bd6", + "bytes": 6631 + }, + { + "path": "src/crc8.v", + "sha256": "fd17a37ac67e64efd43e77223da726bd1709a5bb4569e5ba86ef82dd80ebb5f7", + "bytes": 1359 + }, + { + "path": "src/emmc_cmd.v", + "sha256": "ae1b940eca8b5d0544d88d396bfb5d08b769515d2d43433807e432da97c7339a", + "bytes": 10333 + }, + { + "path": "src/emmc_controller.v", + "sha256": "0cfd8305dea92c4092e1f104d0d30afbb3ec897be4ae56d3a3b841da536d2596", + "bytes": 56612 + }, + { + "path": "src/emmc_crc16.v", + "sha256": "ecec53c91b36f19bfa14ab812cc64124e138dda9fee9ce880ea02f51ba4094dd", + "bytes": 1283 + }, + { + "path": "src/emmc_crc7.v", + "sha256": "02dfdf52d5d31a5ae3fa42f5259e985367eeb8d4356a09621173ae9f954e8bc8", + "bytes": 876 + }, + { + "path": "src/emmc_dat.v", + "sha256": "a3115db1e40b3dfdbfb38576b1b313fe7cc798f05a6f61cf33e5df565d7de1f3", + "bytes": 14746 + }, + { + "path": "src/emmc_init.v", + "sha256": "4e40f0e6c0ba032572f1c23080b828815b19e0758af81af4f47ca39a6e2bd659", + "bytes": 12607 + }, + { + "path": "src/led_status.v", + "sha256": "2a985147d102321e2e6d4f38416454789bc990d76afb95e63e66c4621239c10f", + "bytes": 2592 + }, + { + "path": "src/pll.v", + "sha256": "93beb7e1d457ea058d9c36b18f0a0f9b74610065e7790e620b86804a60b97a4b", + "bytes": 1657 + }, + { + "path": "src/sector_buf.v", + "sha256": "81f15d0757f1b5a44d580182df54b5e64acd5b46986e57ab7827384dd2c0cc5e", + "bytes": 1825 + }, + { + "path": "src/sector_buf_wr.v", + "sha256": "df3a8f302fdfcbfdc8e3508b5a43e42a609582d970befc46623dca09c17b00cd", + "bytes": 1978 + }, + { + "path": "src/top.v", + "sha256": "c4ae822abf6d2f0606c3212d3ce0a07fe0f6e94641ca0031f20fbe13c05b6e47", + "bytes": 7984 + }, + { + "path": "src/uart_bridge.v", + "sha256": "c271dd7a7d319c56060e142c9d9a4f714b03c042b040bda911a5f568af944481", + "bytes": 44080 + }, + { + "path": "src/uart_rx.v", + "sha256": "143a1d6075ba1ee0cff545a10e9fe481344be8a33d4805e87298269ed4703fc9", + "bytes": 3724 + }, + { + "path": "src/uart_tx.v", + "sha256": "4cc042e5556e61766a586ab7ce1315a673bbc0abdf4586158dbf1f6542266086", + "bytes": 2940 + } + ], + "source_inventory_sha256": "99ddbc05f3e9045f39ab3f94bda8586fd3fd1e6a71f5ba36c05bd554d2fbb1d9", + "build_evidence": [ + { + "path": "build.tcl", + "sha256": "63d49dee2411d6e198808e0fa78f6ba606a3c7266f568caebd82368aa79bf7bf", + "bytes": 213, + "command_evidence": [], + "declared_files": [], + "matches_revision": true + }, + { + "path": "card_reader.gprj", + "sha256": "30547212c14daa7ac56f47c4aaf80ab538998508822a4c13968ce6144e90499d", + "bytes": 1428, + "command_evidence": [], + "declared_files": [ + "src/top.v", + "src/pll.v", + "src/led_status.v", + "src/uart_rx.v", + "src/uart_tx.v", + "src/uart_bridge.v", + "src/crc8.v", + "src/emmc_crc7.v", + "src/emmc_crc16.v", + "src/emmc_cmd.v", + "src/emmc_dat.v", + "src/emmc_init.v", + "src/emmc_controller.v", + "src/sector_buf.v", + "src/sector_buf_wr.v", + "src/tangnano9k.cst", + "src/tangnano9k.sdc" + ], + "matches_revision": true + }, + { + "path": "sim/Makefile", + "sha256": "cf03029a0536957b62eebb764a87b62562b8d11d04f75570a00fbd9d98244f6d", + "bytes": 3887, + "command_evidence": [ + { + "line": 4, + "text": "IFLAGS = -I $(SRCDIR) -g2005-sv" + }, + { + "line": 36, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_crc8 tb_crc8.v $(SRC_CRC8) && $(VVP) sim_crc8" + }, + { + "line": 39, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_crc7 tb_crc7.v $(SRC_CRC7) && $(VVP) sim_crc7" + }, + { + "line": 42, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_crc16 tb_crc16.v $(SRC_CRC16) && $(VVP) sim_crc16" + }, + { + "line": 45, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_uart_tx tb_uart_tx.v $(SRC_UART_TX) && $(VVP) sim_uart_tx" + }, + { + "line": 48, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_uart_rx tb_uart_rx.v $(SRC_UART_RX) && $(VVP) sim_uart_rx" + }, + { + "line": 51, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_uart_loopback tb_uart_loopback.v $(SRC_UART_TX) $(SRC_UART_RX) && $(VVP) sim_uart_loopback" + }, + { + "line": 54, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_sector_buf tb_sector_buf.v $(SRC_SECTOR_BUF) && $(VVP) sim_sector_buf" + }, + { + "line": 57, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_sector_buf_wr tb_sector_buf_wr.v $(SRC_SECTOR_BUF_WR) && $(VVP) sim_sector_buf_wr" + }, + { + "line": 60, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_emmc_cmd tb_emmc_cmd.v $(SRC_EMMC_CMD) && $(VVP) sim_emmc_cmd" + }, + { + "line": 63, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_emmc_cmd_crc_verify tb_emmc_cmd_crc_verify.v $(SRC_EMMC_CMD) && $(VVP) sim_emmc_cmd_crc_verify" + }, + { + "line": 66, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_uart_bridge tb_uart_bridge.v $(SRC_UART_BRIDGE) && $(VVP) sim_uart_bridge" + }, + { + "line": 69, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_emmc_controller tb_emmc_controller.v $(SRC_EMMC_CTRL) && $(VVP) sim_emmc_controller" + }, + { + "line": 72, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_emmc_dat tb_emmc_dat.v $(SRC_EMMC_DAT) && $(VVP) sim_emmc_dat" + }, + { + "line": 75, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_emmc_init tb_emmc_init.v $(SRC_EMMC_INIT) && $(VVP) sim_emmc_init" + }, + { + "line": 78, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_led_status tb_led_status.v $(SRC_LED_STATUS) && $(VVP) sim_led_status" + }, + { + "line": 81, + "text": "@$(IVERILOG) $(IFLAGS) -o sim_top_integration tb_top_integration.v $(SRC_TOP_INTEGRATION) && $(VVP) sim_top_integration" + }, + { + "line": 84, + "text": "waves: IFLAGS += -DVCD_DUMP" + } + ], + "matches_revision": true + } + ], + "validation_profiles": [ + { + "name": "synth-source", + "purpose": "source-graph validation; не compiler/elaboration closure", + "files": [ + "src/crc8.v", + "src/emmc_cmd.v", + "src/emmc_controller.v", + "src/emmc_crc16.v", + "src/emmc_crc7.v", + "src/emmc_dat.v", + "src/emmc_init.v", + "src/led_status.v", + "src/pll.v", + "src/sector_buf.v", + "src/sector_buf_wr.v", + "src/top.v", + "src/uart_bridge.v", + "src/uart_rx.v", + "src/uart_tx.v" + ], + "top_modules": [ + "top" + ], + "top_evidence": [ + { + "kind": "module", + "name": "top", + "path": "src/top.v", + "line": 4 + } + ], + "include_dirs": [], + "defines": {} + }, + { + "name": "sim-integration-source", + "purpose": "source-graph validation; не compiler/elaboration closure", + "files": [ + "sim/pll_stub.v", + "sim/tb_crc16.v", + "sim/tb_crc7.v", + "sim/tb_crc8.v", + "sim/tb_emmc_cmd.v", + "sim/tb_emmc_cmd_crc_verify.v", + "sim/tb_emmc_controller.v", + "sim/tb_emmc_dat.v", + "sim/tb_emmc_init.v", + "sim/tb_led_status.v", + "sim/tb_sector_buf.v", + "sim/tb_sector_buf_wr.v", + "sim/tb_top_integration.v", + "sim/tb_uart_bridge.v", + "sim/tb_uart_bridge_debug.v", + "sim/tb_uart_loopback.v", + "sim/tb_uart_rx.v", + "sim/tb_uart_tx.v", + "src/crc8.v", + "src/emmc_cmd.v", + "src/emmc_controller.v", + "src/emmc_crc16.v", + "src/emmc_crc7.v", + "src/emmc_dat.v", + "src/emmc_init.v", + "src/led_status.v", + "src/pll.v", + "src/sector_buf.v", + "src/sector_buf_wr.v", + "src/top.v", + "src/uart_bridge.v", + "src/uart_rx.v", + "src/uart_tx.v" + ], + "top_modules": [ + "tb_top_integration" + ], + "top_evidence": [ + { + "kind": "module", + "name": "tb_top_integration", + "path": "sim/tb_top_integration.v", + "line": 7 + } + ], + "include_dirs": [ + "src" + ], + "defines": {} + } + ], + "literal_include_references": [], + "missing_dependencies": { + "literal_includes": [], + "imported_packages_without_declaration": [], + "symbols": [ + { + "name": "rPLL", + "kind": "vendor primitive", + "path": "src/pll.v", + "line": 13, + "evidence": "rPLL #( ... ); declaration отсутствует в corpus" + } + ], + "locked_external_packages": [], + "build_recipe_files_not_in_corpus": [ + { + "path": "src/tangnano9k.cst", + "evidence": "card_reader.gprj" + }, + { + "path": "src/tangnano9k.sdc", + "evidence": "card_reader.gprj" + } + ], + "scope": "Только наблюдаемые literal includes/imports и перечисленные primitives; conditional branches не вычисляются. Не доказательство полной build closure." + } + }, + { + "id": "axi", + "provenance": { + "remote": "https://github.com/pulp-platform/axi.git", + "revision": "da8793b0e3f14c9186c94fac9ed6ec06375c254e", + "revision_matches_all_captured_sources": true, + "sources_not_matching_revision": [], + "working_tree_matches_all_captured_sources": true, + "sources_not_matching_origin_working_tree": [], + "note": "revision — доказательство только совпавших blobs; остальные файлы закреплены отдельными SHA-256" + }, + "license": { + "status": "evidence-found", + "evidence": [ + { + "path": "LICENSE", + "sha256": "6527a46225891b976fa94f634f6ee0cd22e1c7129d6f11c5c98c997627625fc7", + "bytes": 10329, + "first_line": "SOLDERPAD HARDWARE LICENSE version 0.51", + "matches_revision": true + } + ], + "source_spdx": [ + { + "path": "src/axi_burst_splitter_gran.sv", + "line": 3, + "identifier": "SHL-0.51" + }, + { + "path": "src/axi_inval_filter.sv", + "line": 3, + "identifier": "SHL-0.51" + }, + { + "path": "src/axi_sim_mem.sv", + "line": 2, + "identifier": "SHL-0.51" + }, + { + "path": "src/axi_throttle.sv", + "line": 3, + "identifier": "SHL-0.51" + }, + { + "path": "test/tb_axi_bus_compare.sv", + "line": 2, + "identifier": "SHL-0.51" + }, + { + "path": "test/tb_axi_sim_mem.sv", + "line": 2, + "identifier": "SHL-0.51" + }, + { + "path": "test/tb_axi_slave_compare.sv", + "line": 2, + "identifier": "SHL-0.51" + } + ] + }, + "source_files": [ + { + "path": "include/axi/assign.svh", + "sha256": "8d6aa6ecc736515db75bb691e377b64753310c442e107757b99caabdf043b6cd", + "bytes": 45647 + }, + { + "path": "include/axi/port.svh", + "sha256": "3fa0ccc81d775c439e47d2c01dd62be79a9cfd8f2f84a05a1ef90b9cf3fb43d1", + "bytes": 6805 + }, + { + "path": "include/axi/typedef.svh", + "sha256": "63f095042c9183f977e95307df14ce0baa06b71121491a380af289f8b309482c", + "bytes": 14574 + }, + { + "path": "src/axi_atop_filter.sv", + "sha256": "06b31710ae8a80ecbba58a75b13d1441f9d14b26d5d425a52adaa94ff7f2b156", + "bytes": 16551 + }, + { + "path": "src/axi_burst_splitter.sv", + "sha256": "02de2c32cd5b1c933c2ee8700470664af60fb0916c6844962d307d575edce961", + "bytes": 3759 + }, + { + "path": "src/axi_burst_splitter_gran.sv", + "sha256": "0e265a8358a2b1a3eef0c564d29308c9e5cd4bacd33dee17475acd5dfb7fc44b", + "bytes": 25804 + }, + { + "path": "src/axi_burst_unwrap.sv", + "sha256": "d6e57c5a5c4c0c53a89074983cbb4aad82cf4987d3a181b0455ba2e8ecf58922", + "bytes": 23938 + }, + { + "path": "src/axi_bus_compare.sv", + "sha256": "588aabe3bf1fd0741adcdb64e0e8fffc3f0a2292070a7b2b09e7db7393a65d59", + "bytes": 30822 + }, + { + "path": "src/axi_cdc.sv", + "sha256": "060f775eb544a092bb4c8d0b5168a6cb7b0cd6128f1e4a35477918426c6307d2", + "bytes": 9778 + }, + { + "path": "src/axi_cdc_dst.sv", + "sha256": "19e0b9500ab384588bbcea09516e5cccb66c20fefef9cacc93e4213b19f67bdf", + "bytes": 11399 + }, + { + "path": "src/axi_cdc_src.sv", + "sha256": "3cdf744af8a126660dc5e57372112c09b86f162740b61d00041d1a27d95fcd6a", + "bytes": 11409 + }, + { + "path": "src/axi_chan_compare.sv", + "sha256": "94b632f82a8201357c838cd46837a861dc90a14f247035477cc3516e774c8688", + "bytes": 13598 + }, + { + "path": "src/axi_cut.sv", + "sha256": "a455ac4f0ca4d88c289579bdcb37d75c6e76c665d3aace6b8d5cd9f2272f1696", + "bytes": 9826 + }, + { + "path": "src/axi_delayer.sv", + "sha256": "84acca0fe4cbdddf39dce37f5bc65a308d7b98291398c2a2006db8f2217eee03", + "bytes": 6822 + }, + { + "path": "src/axi_demux.sv", + "sha256": "db364dfa2ce938cfb1f88c5eb6887fedfed16a1f2021446b7890dc625a864b09", + "bytes": 11244 + }, + { + "path": "src/axi_demux_id_counters.sv", + "sha256": "05a5b6b1cc6c481f8e3c8b1e785a4082831f0a3ab242cf266fd390447d018c0e", + "bytes": 6086 + }, + { + "path": "src/axi_demux_simple.sv", + "sha256": "f0beea644e9b4721046e27fb1179e9a1f481a1767a52092fe5ee7a1b3d287d08", + "bytes": 22427 + }, + { + "path": "src/axi_dumper.sv", + "sha256": "972066185a4cf52e0a53eef13b237306763451b8c98a6fb63fe49c01bb1b0d3f", + "bytes": 7872 + }, + { + "path": "src/axi_dw_converter.sv", + "sha256": "d3abfa0da05869740f6d8cfac03b36fd6719ac2eb9d46e6b9836346cbb1d00f1", + "bytes": 8249 + }, + { + "path": "src/axi_dw_downsizer.sv", + "sha256": "abf1d10e0cbf2441cd77c00673d80d475298f2f30bedd55851deace9fac34c71", + "bytes": 35248 + }, + { + "path": "src/axi_dw_upsizer.sv", + "sha256": "f728f9236365d1851149b6eeaa72aa51d5aa74a14499ef44689f495c72ecb220", + "bytes": 26506 + }, + { + "path": "src/axi_err_slv.sv", + "sha256": "1dedd614d1404367d1d8e555877d0421e3747ec9bca2f644d6b3587f9e37579d", + "bytes": 8461 + }, + { + "path": "src/axi_fifo.sv", + "sha256": "3d22b3749fd1328936544656765af3535eff751681dae26196fb54b1647d28dd", + "bytes": 8576 + }, + { + "path": "src/axi_fifo_delay_dyn.sv", + "sha256": "3c13123f7551d1c756eba5245ae4e3ba10c470d592e64a4fc2d5aa12e620aff7", + "bytes": 17017 + }, + { + "path": "src/axi_from_mem.sv", + "sha256": "6a176c4ae7af3fa0abc307e34273c9a09534975ca1ef096ebbee60dd5768476f", + "bytes": 5080 + }, + { + "path": "src/axi_id_prepend.sv", + "sha256": "190b2f3fd55ab509dc25d4495694c3f5c4e91cbed8b79727b5543ef017a3348e", + "bytes": 8634 + }, + { + "path": "src/axi_id_remap.sv", + "sha256": "50e88ebc9c439a0e9dda1674235f256c216d3db687d22a9bab2b66447275bd36", + "bytes": 32201 + }, + { + "path": "src/axi_id_serialize.sv", + "sha256": "f500626fb5d99694756adca33a79dedf8dd849840858ad086077097acb984ebe", + "bytes": 19672 + }, + { + "path": "src/axi_interleaved_xbar.sv", + "sha256": "c3673eab4a89a5c9395d75630e959c5fda383653a21d0970d2347a25f80c8959", + "bytes": 19157 + }, + { + "path": "src/axi_intf.sv", + "sha256": "85dea3129f2f63e6a06d1ee210fa1b76a689694e9f9fb5c489948d7eefd1c0ac", + "bytes": 21878 + }, + { + "path": "src/axi_inval_filter.sv", + "sha256": "1c452951b0d7c7821a788f156495d924d396df6c865b7f9bd93f74ae6970840a", + "bytes": 4375 + }, + { + "path": "src/axi_isolate.sv", + "sha256": "f92d7c6933e171d3ca216a591f6423d9f50aa05bed2c1bde508b76c5957bd39b", + "bytes": 17062 + }, + { + "path": "src/axi_iw_converter.sv", + "sha256": "f41dc7d8f462e247f8fcdfb0a2950852514ab649d5d397a7ced611efd3fc58d5", + "bytes": 16599 + }, + { + "path": "src/axi_join.sv", + "sha256": "e57c5738000347f3e0d2e912712ccb54e06643a5ea7b011d065817a48683f145", + "bytes": 1264 + }, + { + "path": "src/axi_lfsr.sv", + "sha256": "b88cf99560cf7c14374921417fd2415d4bb2d9b32cc20f0696e56d005067030f", + "bytes": 4130 + }, + { + "path": "src/axi_lite_demux.sv", + "sha256": "e20cca5d5268ff3388b436f491a4c373d1fa9e2523efd57f6b73e9788ea91e2d", + "bytes": 22980 + }, + { + "path": "src/axi_lite_dw_converter.sv", + "sha256": "99ecbc98581388c3d3ebb99abc71cb3bf4ff3cc0b6de09cdd14b4e81885d115a", + "bytes": 24607 + }, + { + "path": "src/axi_lite_from_mem.sv", + "sha256": "664abf80248bb45350241f8643abe9e50b0b574a0a80a01f4cfa902d26a1d8d2", + "bytes": 10765 + }, + { + "path": "src/axi_lite_join.sv", + "sha256": "17a0027d23a5255986f9fd11d215d1c1a47fe721a38b08429de29ef75154ff2b", + "bytes": 1175 + }, + { + "path": "src/axi_lite_lfsr.sv", + "sha256": "6ef7dc962291bafec0eed8e6566672fdf582ef89ff165530e40b5b1851e8db55", + "bytes": 7586 + }, + { + "path": "src/axi_lite_mailbox.sv", + "sha256": "c675e0a57dc8c8a72b72d2d1391a1ad83f26db4eabd5a816bc07ef6f49660c5e", + "bytes": 25943 + }, + { + "path": "src/axi_lite_mux.sv", + "sha256": "99b9a4a22c525f04ed10a06d9f9e59b80588226d9847976db6be5ded27e02f42", + "bytes": 20356 + }, + { + "path": "src/axi_lite_regs.sv", + "sha256": "7ba5e7228a8fca0057db362ae615b7c2c94fb384b5cd791746b0c38f3a7fef08", + "bytes": 20729 + }, + { + "path": "src/axi_lite_to_apb.sv", + "sha256": "41331a2316772913895d766d16c3ff77b2afc925f4090e857f9f76052be60f65", + "bytes": 20598 + }, + { + "path": "src/axi_lite_to_axi.sv", + "sha256": "f35ec83cc2168898f880e5edfcdf3a4ef323b11216f540233062cd27a692cb86", + "bytes": 4846 + }, + { + "path": "src/axi_lite_xbar.sv", + "sha256": "8aeb4125cef42a9ab0840bf26d57b356f4da1bdf617ce2702d92efa1058a7978", + "bytes": 13522 + }, + { + "path": "src/axi_modify_address.sv", + "sha256": "22515ac952bd92a0e81851609bc22cefd3889e1f264147bac0533d4a0adf18a9", + "bytes": 5597 + }, + { + "path": "src/axi_multicut.sv", + "sha256": "2dd21cd472c3c448a35814b8614ad68eb7c8ab7a00ed89935371a2f5de5bec68", + "bytes": 8070 + }, + { + "path": "src/axi_mux.sv", + "sha256": "d1635b12affe48d6e2c6f4c9fc7eebcd92e21c523e33162c98b3b21c2df49416", + "bytes": 25317 + }, + { + "path": "src/axi_pkg.sv", + "sha256": "244bd5cb3c5bc58d786f2ed2f5eeefd910c4fe03a175f4a2888c6a2ea1c430dc", + "bytes": 26577 + }, + { + "path": "src/axi_rw_join.sv", + "sha256": "b455707ff04a857c639f4b4887cda412a6c3f40d111d1ee5ffe5f5c8aa74fc04", + "bytes": 3821 + }, + { + "path": "src/axi_rw_split.sv", + "sha256": "d195730fde3fac4a84e090ff585ca584a21f8f905c3a10809ddb378ba28a4554", + "bytes": 3787 + }, + { + "path": "src/axi_serializer.sv", + "sha256": "b7fa3204c22220ab78873e9f52a91610502aeeeb3c8c2999f528c1b337d66a6d", + "bytes": 11184 + }, + { + "path": "src/axi_sim_mem.sv", + "sha256": "d88c7ef7ecbec85400ba16085e82172b180425ebe6827da41d18f5b045ea53a1", + "bytes": 19882 + }, + { + "path": "src/axi_slave_compare.sv", + "sha256": "75d1db7a303de753378443356cbc9eb07e248635744e6e28727cdaa642eddf0b", + "bytes": 6743 + }, + { + "path": "src/axi_test.sv", + "sha256": "d3ae3f15f0d674bdb322f9059a527b40e016b3733d7fd15f79414b87206c3648", + "bytes": 98306 + }, + { + "path": "src/axi_throttle.sv", + "sha256": "6597927f36422027a0f0d4d40d0a43721323b5f9e2428fc4ee903226e6491471", + "bytes": 3959 + }, + { + "path": "src/axi_to_axi_lite.sv", + "sha256": "1bc5aa798bac4b2b45718f899f3f78bfc5cc8146940051548ab402603de9290a", + "bytes": 12810 + }, + { + "path": "src/axi_to_detailed_mem.sv", + "sha256": "3e0d8a4407a9d6d2ca16dedfee68e9602493e4461d4bc0c09e10d02ec7137730", + "bytes": 39381 + }, + { + "path": "src/axi_to_mem.sv", + "sha256": "e6a282e8ce5c1d0e22a9e5971bbcc4d993d93fcdacbceb1b747473c9e8c35f32", + "bytes": 9034 + }, + { + "path": "src/axi_to_mem_banked.sv", + "sha256": "0ab535d90af7db007b02659f58a5f6fd6f13ca04cc89490f9b8856e39f923000", + "bytes": 18128 + }, + { + "path": "src/axi_to_mem_interleaved.sv", + "sha256": "60e8e75ec95f823f938ac09e803240cdfffd08a14203471e664c5ee847c02512", + "bytes": 15304 + }, + { + "path": "src/axi_to_mem_split.sv", + "sha256": "108a3cfc207c8627784770e08c705039832987b38f94938d27d6c64cced5ee35", + "bytes": 11641 + }, + { + "path": "src/axi_xbar.sv", + "sha256": "05987e199be28cf5716b934d3466a8deeee737ae6361d3a1394d64784e8cc78c", + "bytes": 11764 + }, + { + "path": "src/axi_xbar_unmuxed.sv", + "sha256": "2d5e1d4671f32520870360eb6e591856329f7ca02aa2f47dc76d6dc0a4b008bc", + "bytes": 12733 + }, + { + "path": "src/axi_xp.sv", + "sha256": "69d0fa49e07da874ef2b01ddc4545fab4a95f63b45dd0e1adb4bc666d75474b2", + "bytes": 10783 + }, + { + "path": "src/axi_zero_mem.sv", + "sha256": "c538ca77f2ec568ca6ea13d73ce29666891639ba368b43a1529143486e62a2ae", + "bytes": 4450 + }, + { + "path": "test/axi_synth_bench.sv", + "sha256": "02eecbcad3eeeb9ed8b37331ebb787a144cdcf5c1b93ab3af07fa7ff929d73ab", + "bytes": 25391 + }, + { + "path": "test/tb_axi_addr_test.sv", + "sha256": "315d3cbe9bf26134a73b41b8dbbef31a2f80fb2862d890b2be0968225cf577f5", + "bytes": 9058 + }, + { + "path": "test/tb_axi_atop_filter.sv", + "sha256": "a806df31dc31a8746121b9688983ae8ec0b1e94e731aaab81bb64ef39834ccdb", + "bytes": 15180 + }, + { + "path": "test/tb_axi_bus_compare.sv", + "sha256": "c0a42c7dda5a2fc8d51608b0b2e9a426ea3c34c93049c4ff4f7b658f6289fdee", + "bytes": 9500 + }, + { + "path": "test/tb_axi_cdc.sv", + "sha256": "bc36d363ceddd3156ae8a7fce4c46a4dac49ecbf19b2bf10559a90c1116e69a5", + "bytes": 8103 + }, + { + "path": "test/tb_axi_delayer.sv", + "sha256": "5ce2ad513fc8c76d9a2a4098900058049ad40491047c36a3833eb497f97eca14", + "bytes": 3836 + }, + { + "path": "test/tb_axi_dw_downsizer.sv", + "sha256": "2f80754761bb47d955b9e4912add2f01a9c2dd0abbaa0278c14ed08549cd83f3", + "bytes": 6642 + }, + { + "path": "test/tb_axi_dw_pkg.sv", + "sha256": "f45f79f43af06dcb71c5d2de6a2ae4038099fd4e11e2b77d15fb0dff333b1f91", + "bytes": 58508 + }, + { + "path": "test/tb_axi_dw_upsizer.sv", + "sha256": "80acb9719529c8534eef6ca1e681cb85ae89e66d17a8edd7b614986807f8e337", + "bytes": 5264 + }, + { + "path": "test/tb_axi_fifo.sv", + "sha256": "7bd8ec77c32dfaecc48f0475626b5ad8e429aac082b69c273eb693cebf7f6643", + "bytes": 6405 + }, + { + "path": "test/tb_axi_isolate.sv", + "sha256": "f9418ccd6f3a0dcf781f10a7924cfb886eebaac16a767524281a9e3fe6fa6f4a", + "bytes": 7293 + }, + { + "path": "test/tb_axi_iw_converter.sv", + "sha256": "921cdecc94fa443998e3c7154877ebc76ad628d0bae4b80e5a30e08a737cb415", + "bytes": 18357 + }, + { + "path": "test/tb_axi_lite_dw_converter.sv", + "sha256": "31b322a59a38e4390ad4edd46ab599f57ba96f938ce59603abe41c0efe5a2e06", + "bytes": 16953 + }, + { + "path": "test/tb_axi_lite_mailbox.sv", + "sha256": "5e5834904ee4f714f7c89d2794efd757c92e511193491ccfcd6df69da59563ea", + "bytes": 24929 + }, + { + "path": "test/tb_axi_lite_regs.sv", + "sha256": "e2a424715aba1f8f947f2fdb032be91fe470987aa971c8edf9da3a087585eecb", + "bytes": 13642 + }, + { + "path": "test/tb_axi_lite_to_apb.sv", + "sha256": "24744a16f55c6a922ecaa76f825a2d3df38fb8300c1f8eb3ef3a7c8e772470f7", + "bytes": 8825 + }, + { + "path": "test/tb_axi_lite_to_axi.sv", + "sha256": "6035670ef97817b351436f55473bcc72adb09da021955995db28f26a9f54ee90", + "bytes": 2943 + }, + { + "path": "test/tb_axi_lite_xbar.sv", + "sha256": "47bd0677132c4fa71b87c6e7f4aefb12c5f435fa74a24f3be18ce1188ee95260", + "bytes": 7021 + }, + { + "path": "test/tb_axi_modify_address.sv", + "sha256": "65cccd135d5b7db41adb37f47d8880b229570d40bf58b5717fa7d25f38f39479", + "bytes": 7662 + }, + { + "path": "test/tb_axi_serializer.sv", + "sha256": "afab1d86fd257ca9df3ebd9fc529af422f4f7e7d8879a463db0f7e7b09e1be17", + "bytes": 9850 + }, + { + "path": "test/tb_axi_sim_mem.sv", + "sha256": "7dc4f46e6d7400a89f311290726f69b2777884c175ecda2914ee4cf1a9c7df9a", + "bytes": 5276 + }, + { + "path": "test/tb_axi_slave_compare.sv", + "sha256": "40bf717f48bd8da7d7eea51b88ac573218aecb40b1a2fa43d3075e2ecebe4ac4", + "bytes": 7162 + }, + { + "path": "test/tb_axi_to_axi_lite.sv", + "sha256": "cdfaa127ba98f5a3ea385dbf4a56c9c093fb62e8ad752c9210c6ff1c5ee62985", + "bytes": 4853 + }, + { + "path": "test/tb_axi_to_mem_banked.sv", + "sha256": "3d8e72be993d42d53d4133c07d3a55560389e2122430feb417a1b66c96825df7", + "bytes": 13881 + }, + { + "path": "test/tb_axi_xbar.sv", + "sha256": "50c6cb7221ae88732dbcd43d7c68808693bf8e4e4a6863847ec476d9f8c2236f", + "bytes": 21907 + }, + { + "path": "test/tb_axi_xbar_pkg.sv", + "sha256": "a5476a02f5942ce8dd46efd54f9e58c34ac8834e14e37a822cc5fc565f92ad50", + "bytes": 20617 + } + ], + "source_inventory_sha256": "12c988383b5ca8496055c17a0f9b5818ca19f3446051b1de0d5b6427909d8a0d", + "build_evidence": [ + { + "path": "Bender.yml", + "sha256": "106b0e6b9306d0ea329ba09dce792c022a857acc76c72c480e80a00016148a52", + "bytes": 4193, + "command_evidence": [], + "matches_revision": true + }, + { + "path": "Bender.lock", + "sha256": "6e91c73d8fdb6f6a2280e433dc4a3879adc0bb09969c09049d65564c0c50d223", + "bytes": 659, + "command_evidence": [], + "matches_revision": true + }, + { + "path": "Makefile", + "sha256": "78b15816eb04acb7acc355fb1d5faff9239b11aca91b580968a4c94f270d6956", + "bytes": 2578, + "command_evidence": [], + "matches_revision": true + }, + { + "path": "src_files.yml", + "sha256": "31ac5d14288b6a2bb628631282d8913463e76cfd54dd3c8e0e443c86dbf5a080", + "bytes": 2265, + "command_evidence": [], + "matches_revision": true + }, + { + "path": "axi.core", + "sha256": "f139a36b04f07f92119a5a0be2ae117998ded05d3fb77aee7da822f6e3b4cdf0", + "bytes": 7862, + "command_evidence": [], + "matches_revision": true + } + ], + "validation_profiles": [ + { + "name": "normal-source", + "purpose": "source-graph validation; не compiler/elaboration closure", + "files": [ + "src/axi_pkg.sv", + "src/axi_interleaved_xbar.sv" + ], + "top_modules": [ + "axi_interleaved_xbar" + ], + "top_evidence": [ + { + "kind": "module", + "name": "axi_interleaved_xbar", + "path": "src/axi_interleaved_xbar.sv", + "line": 19 + } + ], + "include_dirs": [ + "include" + ], + "defines": {} + }, + { + "name": "vcs-source", + "purpose": "source-graph validation; не compiler/elaboration closure", + "files": [ + "src/axi_pkg.sv", + "src/axi_interleaved_xbar.sv" + ], + "top_modules": [ + "axi_interleaved_xbar" + ], + "top_evidence": [ + { + "kind": "module", + "name": "axi_interleaved_xbar", + "path": "src/axi_interleaved_xbar.sv", + "line": 19 + } + ], + "include_dirs": [ + "include" + ], + "defines": { + "VCS": "1" + } + } + ], + "literal_include_references": [ + { + "path": "src/axi_atop_filter.sv", + "line": 373, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_atop_filter.sv", + "line": 375, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_burst_splitter.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_burst_splitter_gran.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_burst_splitter_gran.sv", + "line": 11, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_burst_unwrap.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_burst_unwrap.sv", + "line": 18, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_bus_compare.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_cdc.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_cdc.sv", + "line": 125, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_cdc.sv", + "line": 127, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_cdc_dst.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_cdc_dst.sv", + "line": 17, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_cdc_src.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_cdc_src.sv", + "line": 17, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_cut.sv", + "line": 124, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_cut.sv", + "line": 126, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_delayer.sv", + "line": 127, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_delayer.sv", + "line": 129, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_demux.sv", + "line": 1, + "request": "common_cells/assertions.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_demux.sv", + "line": 18, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_demux.sv", + "line": 217, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_demux.sv", + "line": 220, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_demux_id_counters.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_demux_simple.sv", + "line": 1, + "request": "common_cells/assertions.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_demux_simple.sv", + "line": 18, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_demux_simple.sv", + "line": 19, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_dumper.sv", + "line": 158, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_dumper.sv", + "line": 161, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_dw_converter.sv", + "line": 112, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_dw_converter.sv", + "line": 116, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_fifo.sv", + "line": 161, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_fifo.sv", + "line": 163, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_fifo_delay_dyn.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_fifo_delay_dyn.sv", + "line": 15, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_fifo_delay_dyn.sv", + "line": 16, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_from_mem.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_id_remap.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_id_remap.sv", + "line": 650, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_id_remap.sv", + "line": 653, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_id_serialize.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_id_serialize.sv", + "line": 17, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_interleaved_xbar.sv", + "line": 311, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_interleaved_xbar.sv", + "line": 313, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_intf.sv", + "line": 354, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_inval_filter.sv", + "line": 39, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_inval_filter.sv", + "line": 42, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_isolate.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_isolate.sv", + "line": 17, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_isolate.sv", + "line": 411, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_iw_converter.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_iw_converter.sv", + "line": 256, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_join.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_lfsr.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_lite_demux.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_demux.sv", + "line": 490, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_lite_demux.sv", + "line": 492, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_lite_dw_converter.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_dw_converter.sv", + "line": 491, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_lite_dw_converter.sv", + "line": 494, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_lite_from_mem.sv", + "line": 92, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_join.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_lite_lfsr.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_mailbox.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_mailbox.sv", + "line": 196, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_lite_mailbox.sv", + "line": 553, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_lite_mux.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_mux.sv", + "line": 463, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_lite_mux.sv", + "line": 466, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_lite_regs.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_lite_regs.sv", + "line": 16, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_regs.sv", + "line": 411, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_lite_to_apb.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_to_apb.sv", + "line": 383, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_lite_to_apb.sv", + "line": 385, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_lite_xbar.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_lite_xbar.sv", + "line": 237, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_modify_address.sv", + "line": 83, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_modify_address.sv", + "line": 86, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_multicut.sv", + "line": 91, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_multicut.sv", + "line": 93, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_mux.sv", + "line": 1, + "request": "common_cells/assertions.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_mux.sv", + "line": 26, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_mux.sv", + "line": 505, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_mux.sv", + "line": 508, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_rw_join.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_rw_join.sv", + "line": 16, + "request": "common_cells/assertions.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_rw_split.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_rw_split.sv", + "line": 16, + "request": "common_cells/assertions.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_serializer.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_serializer.sv", + "line": 221, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_serializer.sv", + "line": 223, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_sim_mem.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_sim_mem.sv", + "line": 351, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_slave_compare.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_to_axi_lite.sv", + "line": 249, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_to_axi_lite.sv", + "line": 252, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_to_detailed_mem.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_to_detailed_mem.sv", + "line": 601, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_to_detailed_mem.sv", + "line": 604, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_to_mem.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_to_mem.sv", + "line": 116, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_to_mem.sv", + "line": 119, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_to_mem_banked.sv", + "line": 308, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_to_mem_banked.sv", + "line": 311, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_to_mem_interleaved.sv", + "line": 259, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_to_mem_interleaved.sv", + "line": 261, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_to_mem_split.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_to_mem_split.sv", + "line": 164, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_xbar.sv", + "line": 154, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_xbar.sv", + "line": 156, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_xp.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_xp.sv", + "line": 166, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "src/axi_xp.sv", + "line": 168, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "src/axi_zero_mem.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "test/axi_synth_bench.sv", + "line": 294, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/axi_synth_bench.sv", + "line": 402, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_addr_test.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_atop_filter.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_bus_compare.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_bus_compare.sv", + "line": 8, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_cdc.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_cdc.sv", + "line": 16, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_delayer.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_dw_downsizer.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_dw_upsizer.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_fifo.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_fifo.sv", + "line": 15, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_isolate.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_isolate.sv", + "line": 16, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_iw_converter.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_iw_converter.sv", + "line": 16, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_lite_dw_converter.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_lite_dw_converter.sv", + "line": 17, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_lite_mailbox.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_lite_mailbox.sv", + "line": 34, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_lite_regs.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_lite_to_apb.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_lite_to_apb.sv", + "line": 20, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_lite_to_axi.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_lite_xbar.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_lite_xbar.sv", + "line": 22, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_modify_address.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_modify_address.sv", + "line": 15, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_serializer.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_serializer.sv", + "line": 16, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_sim_mem.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_sim_mem.sv", + "line": 9, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_slave_compare.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_slave_compare.sv", + "line": 10, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_to_axi_lite.sv", + "line": 1, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_to_mem_banked.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_to_mem_banked.sv", + "line": 16, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + }, + { + "path": "test/tb_axi_to_mem_banked.sv", + "line": 17, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "test/tb_axi_xbar.sv", + "line": 1, + "request": "axi/typedef.svh", + "resolved_candidates": [ + "include/axi/typedef.svh" + ] + }, + { + "path": "test/tb_axi_xbar.sv", + "line": 24, + "request": "axi/assign.svh", + "resolved_candidates": [ + "include/axi/assign.svh" + ] + } + ], + "missing_dependencies": { + "literal_includes": [ + { + "path": "src/axi_burst_splitter_gran.sv", + "line": 11, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_burst_unwrap.sv", + "line": 18, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_demux.sv", + "line": 1, + "request": "common_cells/assertions.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_demux.sv", + "line": 18, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_demux_id_counters.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_demux_simple.sv", + "line": 1, + "request": "common_cells/assertions.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_demux_simple.sv", + "line": 18, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_fifo_delay_dyn.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_id_remap.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_inval_filter.sv", + "line": 42, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_isolate.sv", + "line": 17, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_demux.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_dw_converter.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_from_mem.sv", + "line": 92, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_lfsr.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_mailbox.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_mux.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_regs.sv", + "line": 16, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_lite_to_apb.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_mux.sv", + "line": 1, + "request": "common_cells/assertions.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_mux.sv", + "line": 26, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_rw_join.sv", + "line": 16, + "request": "common_cells/assertions.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_rw_split.sv", + "line": 16, + "request": "common_cells/assertions.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_serializer.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_to_detailed_mem.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_to_mem.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "src/axi_zero_mem.sv", + "line": 1, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + }, + { + "path": "test/tb_axi_to_mem_banked.sv", + "line": 17, + "request": "common_cells/registers.svh", + "resolved_candidates": [] + } + ], + "imported_packages_without_declaration": [ + { + "package": "cc_pkg", + "path": "src/axi_dw_downsizer.sv", + "line": 54 + }, + { + "package": "cc_pkg", + "path": "src/axi_dw_upsizer.sv", + "line": 56 + }, + { + "package": "cc_pkg", + "path": "src/axi_interleaved_xbar.sv", + "line": 20 + }, + { + "package": "cc_pkg", + "path": "src/axi_interleaved_xbar.sv", + "line": 316 + }, + { + "package": "cc_pkg", + "path": "src/axi_inval_filter.sv", + "line": 38 + }, + { + "package": "cc_pkg", + "path": "src/axi_xbar.sv", + "line": 19 + }, + { + "package": "cc_pkg", + "path": "src/axi_xbar.sv", + "line": 159 + }, + { + "package": "cc_pkg", + "path": "src/axi_xbar_unmuxed.sv", + "line": 19 + }, + { + "package": "cc_pkg", + "path": "src/axi_xp.sv", + "line": 171 + }, + { + "package": "rand_id_queue_pkg", + "path": "test/tb_axi_atop_filter.sv", + "line": 45 + }, + { + "package": "rand_verif_pkg", + "path": "test/tb_axi_atop_filter.sv", + "line": 46 + } + ], + "symbols": [], + "locked_external_packages": [ + { + "name": "common_cells", + "revision": "03d98106aa19952a10360d2230def85144a0008b", + "remote": "https://github.com/pulp-platform/common_cells.git", + "status": "external; не включён в source inventory", + "evidence": "Bender.lock" + }, + { + "name": "common_verification", + "revision": "fb1885f48ea46164a10568aeff51884389f67ae3", + "remote": "https://github.com/pulp-platform/common_verification.git", + "status": "external; не включён в source inventory", + "evidence": "Bender.lock" + }, + { + "name": "tech_cells_generic", + "revision": "3a3de73632a06826b1bd9c65a0a2e92b32016845", + "remote": "https://github.com/pulp-platform/tech_cells_generic.git", + "status": "external; не включён в source inventory", + "evidence": "Bender.lock" + } + ], + "build_recipe_files_not_in_corpus": [], + "scope": "Только наблюдаемые literal includes/imports и перечисленные primitives; conditional branches не вычисляются. Не доказательство полной build closure." + } + } + ] +} diff --git a/docs/validation-hdl-corpora-build-2026-09-12.md b/docs/validation-hdl-corpora-build-2026-09-12.md new file mode 100644 index 000000000..2c2758175 --- /dev/null +++ b/docs/validation-hdl-corpora-build-2026-09-12.md @@ -0,0 +1,115 @@ +# HDL: manifest корпусов и восстановленный AXI build context + +Дата: 2026-09-12. Пакет A1/A2 из `VERILOG_TRACKER.md`. +CodeGraph до этого пакета: `d8921aa7`, extraction stamp 38. +Runtime extractor и формат индекса этим пакетом не меняются. + +## A1. Manifest корпусов + +`hdl-corpus-manifest.json` фиксирует UART, eMMC/CRC и AXI: происхождение, +revision, состав источников, SHA256, evidence build profiles и ограничения. +Скрипт `scripts/hdl-corpus-manifest.py` позволяет проверить копию корпуса; +проверено 137 HDL-файлов: UART 11, eMMC/CRC 33, AXI 93. +Проверка всех трёх корпусов и build/license evidence дала 0 расхождений. +Отрицательные controls change/add/remove и возврат к исходному состоянию прошли. +Сами RTL-корпуса в CodeGraph Git не добавлены. + +UART и AXI целиком совпадают с указанными Git revisions. У card-reader 32 из +33 файлов совпадают с revision; `sim/tb_uart_bridge_debug.v` взят из локального +working tree и закреплён отдельным SHA256. Одной Git revision недостаточно, +чтобы восстановить этот дополнительный файл; frozen corpus сохранён отдельно. +Лицензия UART/card-reader не установлена по файлам репозиториев. Для AXI +зафиксированы LICENSE Solderpad 0.51 и исходные SPDX markers. + +Пример проверки сохранённого corpus (без исполнения его build recipes): + +```sh +python3 scripts/hdl-corpus-manifest.py check \ + --corpus-root /absolute/path/to/corpora \ + --manifest docs/hdl-corpus-manifest.json +``` + +Для проверки оригинальных build/license files добавить `--origin dual-uart=PATH`, +`--origin card-reader=PATH`, `--origin axi=PATH`. При generate те же arguments +фиксируют provenance. Профили manifest предназначены для source-graph validation; +они не объявлены полной compiler closure. Literal dependencies собраны отдельно +от результатов preprocessing/elaboration. + +## A2. Восстановление AXI + +Использован upstream AXI `da8793b0e3f14c9186c94fac9ed6ec06375c254e`. +В отдельной копии `bender checkout` восстановил зависимости из существующего +`Bender.lock`; команда `bender update` не применялась. + +| Dependency | Точная revision | +| --- | --- | +| common_cells | `03d98106aa19952a10360d2230def85144a0008b` | +| common_verification | `fb1885f48ea46164a10568aeff51884389f67ae3` | +| tech_cells_generic | `3a3de73632a06826b1bd9c65a0a2e92b32016845` | + +Bender **0.32.1**, release binary x86_64 Linux проверен по SHA256 asset. +Verilator **5.051 devel, v5.050-260-g1c9a9e0cc (mod)** из установленного +OSS CAD Suite 20260825. Это точная локальная версия, не утверждение о latest. + +[Официальный workflow Bender](https://github.com/pulp-platform/bender): checkout +использует lockfile, script генерирует входные файлы для инструмента. +[Использованный release Bender](https://github.com/pulp-platform/bender/releases/tag/v0.32.1). + +### Воспроизведение + +Понадобятся Git, Python >=3.9, Bender и Verilator. Корпус и generated output размещать +в каталоге данных, например `~/storage`. Использовать новый isolated checkout: + +```sh +git clone https://github.com/pulp-platform/axi.git "$HOME/storage/axi-hdl-control" +git -C "$HOME/storage/axi-hdl-control" checkout --detach da8793b0e3f14c9186c94fac9ed6ec06375c254e +python3 scripts/hdl-axi-build-check.py \ + --axi "$HOME/storage/axi-hdl-control" \ + --bender /absolute/path/to/bender \ + --verilator /absolute/path/to/verilator \ + --output "$HOME/storage/axi-hdl-control/build/controls" +``` + +Скрипт отклоняет другую revision, правки tracked sources и `Bender.local` +overrides, проверяет dependency revisions и tracked cleanliness. Bender получает явный +`--dir`; generated source/include paths должны оставаться внутри checkout. +Контроль с `BENDER_DIR=/no/such/project` прошёл все шесть сценариев. Сохраняет +команды, tool versions, нормализованный filelist/hash, stdout/stderr каждого +прохода и JSON-отчёт. Снимок всех 152 tracked AXI inputs до/после должен совпасть. +Содержимое locks и исходников script не исправляет. + +### Compiler controls + +Filelist сгенерирован `bender script verilator -t synth_test`; он включает +upstream sources и transitive dependencies. Defines от Bender фиксируются +в отчёте. Это compiler control, не подмена CodeGraph profile и не выбор +production semantic adapter. + +| Контроль | Результат | +| --- | --- | +| `axi_demux_simple` preprocessing без common_cells include path | Ожидаемый exit 1, отсутствуют common_cells headers | +| Тот же файл с восстановленным include path, default | Exit 0, исходный module присутствует, register macros раскрыты | +| Тот же файл, define VCS | Exit 0, macro/include preprocessing выполнен | +| Upstream `synth_axi_lite_xbar`, `NoSlvMst=1` | Lint/elaboration exit 0, 9 warnings | +| Тот же top, `NoSlvMst=2` | Lint/elaboration exit 0, 14 warnings | +| Тот же top, `NoSlvMst=4` | Lint/elaboration exit 0, 12 warnings | + +Предупреждения сохранены: PINMISSING, WIDTHEXPAND, WIDTHTRUNC, а в отдельных +конфигурациях SPLITVAR/UNOPTFLAT. Использован `-Wno-fatal`, поэтому exit 0 +не означает отсутствие предупреждений или доказанную корректность RTL. +Включён `--assert`; simulation, synthesis, весь `axi_synth_bench` и аппаратная +проверка FPGA не выполнялись. RTL upstream не исправлялся. + +Полный машиночитаемый результат: `hdl-axi-build-validation.json`. +Следующий этап A3–A6: сравнение frontends на общей manifest-базе. Наличие +успешного Verilator control не закрывает выбор frontend или интеграцию semantics. + +## Проверки пакета + +Manifest generate повторён с byte-identical результатом; check всех трёх +корпусов и original build/license evidence — exit 0. В независимой копии +clean/change/add/remove/restore дали ожидаемые exits 0/1/1/1/0. +Python syntax, JSON parsing и whitespace проверены. Независимое review нашло +и помогло исправить перенаправление Bender через окружение; повторный control +подтвердил исправление. Полные native/WASM suites не повторялись: этот пакет +добавляет внешние validation scripts, manifest и docs, без изменений engine. diff --git a/scripts/hdl-axi-build-check.py b/scripts/hdl-axi-build-check.py new file mode 100644 index 000000000..2a77af77c --- /dev/null +++ b/scripts/hdl-axi-build-check.py @@ -0,0 +1,138 @@ +#!/usr/bin/env python3 +"""Проверить pinned AXI dependencies и compiler controls без изменения RTL.""" +import argparse +import hashlib +import json +from pathlib import Path +import re +import subprocess +import time + +AXI_REV = 'da8793b0e3f14c9186c94fac9ed6ec06375c254e' +DEPENDENCIES = { + 'common_cells': '03d98106aa19952a10360d2230def85144a0008b', + 'common_verification': 'fb1885f48ea46164a10568aeff51884389f67ae3', + 'tech_cells_generic': '3a3de73632a06826b1bd9c65a0a2e92b32016845', +} + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--axi', type=Path, required=True, help='Изолированный чистый checkout pinned AXI') + parser.add_argument('--bender', required=True) + parser.add_argument('--verilator', required=True) + parser.add_argument('--output', type=Path, required=True, help='Каталог логов вне source Git') + args = parser.parse_args() + root = args.axi.resolve() + out = args.output.resolve() + out.mkdir(parents=True, exist_ok=True) + + def run(argv, timeout=180): + return subprocess.run(argv, cwd=root, capture_output=True, text=True, timeout=timeout) + + def git(*argv): + result = run(['git', *argv]) + if result.returncode: + raise RuntimeError(result.stderr) + return result.stdout.strip() + + if git('rev-parse', 'HEAD') != AXI_REV or git('status', '--porcelain', '--untracked-files=no'): + raise RuntimeError('Нужен чистый AXI checkout на зафиксированной revision') + # Hash tracked inputs before/after Bender and all compiler controls. + def snapshot(): + return {name: hashlib.sha256((root / name).read_bytes()).hexdigest() + for name in git('ls-files').splitlines() if (root / name).is_file()} + + if (root / 'Bender.local').exists(): + raise RuntimeError('Bender.local overrides are outside this pinned control') + initial = snapshot() + versions = {} + for name, executable in [('bender', args.bender), ('verilator', args.verilator)]: + result = run([executable, '--version']) + if result.returncode: + raise RuntimeError(result.stderr) + versions[name] = result.stdout.strip() + checkout = run([args.bender, '--dir', str(root), 'checkout']) + (out / 'checkout.log').write_text(checkout.stdout + checkout.stderr) + if checkout.returncode or snapshot() != initial: + raise RuntimeError('Checkout failed or modified tracked AXI inputs / lockfile') + deps = {} + for name, revision in DEPENDENCIES.items(): + candidates = list((root / '.bender/git/checkouts').glob(name + '-*')) + found = [] + for candidate in candidates: + result = run(['git', '-C', str(candidate), 'rev-parse', 'HEAD']) + if result.returncode == 0 and result.stdout.strip() == revision: + found.append(candidate) + if len(found) != 1: + raise RuntimeError(f'Expected one locked checkout for {name}@{revision}') + candidate = found[0] + if git('-C', str(candidate), 'status', '--porcelain', '--untracked-files=no'): + raise RuntimeError(f'Modified dependency: {name}') + deps[name] = {'revision': revision, 'path': str(candidate.relative_to(root))} + + generated = run([args.bender, '--dir', str(root), 'script', 'verilator', '-t', 'synth_test']) + if generated.returncode: + raise RuntimeError(generated.stderr) + for line in generated.stdout.splitlines(): + line = line.strip() + if not line or line.startswith('//') or line.startswith('+define+'): + continue + candidate = Path(line.removeprefix('+incdir+')) + if not candidate.is_absolute() or not candidate.resolve().is_relative_to(root): + raise RuntimeError('Generated filelist escapes the pinned AXI checkout: ' + line) + filelist = out / 'verilator.f' + filelist.write_text(generated.stdout) + portable = generated.stdout.replace(str(root), '${AXI}') + (out / 'verilator.portable.f').write_text(portable) + cases = [] + + def control(name, argv, expect_success=True): + start = time.monotonic() + result = run(argv) + (out / (name + '.stdout')).write_text(result.stdout) + (out / (name + '.stderr')).write_text(result.stderr) + warnings = re.findall(r'^%Warning-([^:]+):', result.stderr, re.M) + row = {'name': name, 'argv': [a.replace(str(root), '${AXI}').replace(str(out), '${OUTPUT}') + .replace(args.verilator, '${VERILATOR}') for a in argv], + 'exit': result.returncode, 'seconds': round(time.monotonic() - start, 3), + 'warnings': {w: warnings.count(w) for w in sorted(set(warnings))}, + 'errors': len(re.findall(r'^%Error', result.stderr, re.M))} + cases.append(row) + if (result.returncode == 0) != expect_success: + raise RuntimeError(f'{name}: unexpected exit {result.returncode}; see logs in {out}') + return result + + demux = 'src/axi_demux_simple.sv' + missing = control('demux-missing-include-control', [args.verilator, '-E', '-P', '-Iinclude', demux], False) + if 'Cannot find include file' not in missing.stderr or 'common_cells/assertions.svh' not in missing.stderr: + raise RuntimeError('Negative control failed for a reason other than missing dependency') + cc_include = str(root / deps['common_cells']['path'] / 'include') + for variant, defines in [('default', []), ('VCS', ['+define+VCS'])]: + selected = control('demux-preprocess-' + variant, + [args.verilator, '-E', '-P', '-Iinclude', '-I' + cc_include, *defines, demux]) + if 'module axi_demux_simple' not in selected.stdout or '`FF' in selected.stdout: + raise RuntimeError('Expected original module and expanded register macros') + for count in [1, 2, 4]: + control('xbar-lint-' + str(count), [args.verilator, '--lint-only', '--assert', '-Wno-fatal', + '--top-module', 'synth_axi_lite_xbar', '-GNoSlvMst=' + str(count), + '--Mdir', str(out / ('obj-' + str(count))), '-f', str(filelist)]) + if snapshot() != initial: + raise RuntimeError('Compiler controls changed tracked AXI files') + report = {'axiRevision': AXI_REV, 'benderLockSha256': initial['Bender.lock'], + 'tools': versions, 'dependencies': deps, + 'profile': {'target': 'synth_test', 'top': 'synth_axi_lite_xbar', + 'parameterValues': {'NoSlvMst': [1, 2, 4]}, + 'defines': [line for line in portable.splitlines() if line.startswith('+define+')], + 'includeDirs': [line for line in portable.splitlines() if line.startswith('+incdir+')], + 'filelistSha256': hashlib.sha256(portable.encode()).hexdigest()}, + 'cases': cases, 'trackedInputCount': len(initial), 'trackedInputsUnchanged': True, + 'limitations': ['Warnings retained with -Wno-fatal; not a warning-free build', + 'Lint/elaboration controls only, no simulation, synthesis or FPGA validation', + 'Not the complete axi_synth_bench and not all tops']} + (out / 'report.json').write_text(json.dumps(report, indent=2) + '\n') + print(json.dumps({'output': str(out), 'cases': len(cases), 'trackedInputsUnchanged': True})) + + +if __name__ == '__main__': + main() diff --git a/scripts/hdl-corpus-manifest.py b/scripts/hdl-corpus-manifest.py new file mode 100644 index 000000000..0fb17e9e1 --- /dev/null +++ b/scripts/hdl-corpus-manifest.py @@ -0,0 +1,257 @@ +#!/usr/bin/env python3 +"""Создать/проверить переносимый manifest HDL-корпусов без копирования исходников. + +Пример: generate --corpus-root /data/corpora --origin dual-uart=/repo/uart +--origin card-reader=/repo/reader --output docs/hdl-corpus-manifest.json +Проверка: check --corpus-root /data/corpora --manifest docs/hdl-corpus-manifest.json +Требуется только Python stdlib и локальный Git для доказательства revision. +Ни HDL, ни build recipes не исполняются; check не меняет corpus/index. +""" +import argparse +import hashlib +import json +import os +import re +import subprocess +import sys +import xml.etree.ElementTree as ET +from pathlib import Path +from urllib.parse import urlsplit, urlunsplit + +IDS = ('dual-uart', 'card-reader', 'axi') +EXTENSIONS = {'.v', '.sv', '.vh', '.svh'} +EXCLUDE = {'.git', '.jj', '.codegraph', '.scratch', 'node_modules', 'target'} +BUILD_FILES = ('build.tcl', 'fpga_primer.gprj', 'card_reader.gprj', 'tb/Makefile', + 'sim/Makefile', 'Bender.yml', 'Bender.lock', 'Makefile', 'src_files.yml', 'axi.core') + + +def digest(data): + return hashlib.sha256(data).hexdigest() + + +def stable(value): + return json.dumps(value, ensure_ascii=False, sort_keys=True, separators=(',', ':')).encode() + + +def inventory(root): + result = [] + candidates = [] + for directory, subdirectories, filenames in os.walk(root): + subdirectories[:] = sorted(d for d in subdirectories if d not in EXCLUDE and not d.startswith('.codegraph-')) + candidates.extend(Path(directory) / name for name in filenames if Path(name).suffix.lower() in EXTENSIONS) + for file in sorted(candidates): + relative = file.relative_to(root) + if not file.is_file(): + continue + if not file.resolve().is_relative_to(root.resolve()): + raise ValueError('HDL symlink выходит из corpus: ' + relative.as_posix()) + data = file.read_bytes() + result.append({'path': relative.as_posix(), 'sha256': digest(data), 'bytes': len(data)}) + return result + + +def git(root, *args, binary=False): + result = subprocess.run(['git', '-C', str(root), *args], capture_output=True, check=False) + return result.stdout if binary and result.returncode == 0 else ( + result.stdout.decode().strip() if result.returncode == 0 else None) + + +def portable_remote(value): + if not value: + return None + match = re.fullmatch(r'git@github\.com:(.+)', value) + if match: + return 'https://github.com/' + match[1] + parsed = urlsplit(value) + if parsed.scheme and parsed.hostname: + host = parsed.hostname + (':' + str(parsed.port) if parsed.port else '') + return urlunsplit((parsed.scheme, host, parsed.path, '', '')) + return value if not value.startswith(('/', '.', '~')) else None + + +def evidence(root, file): + data = (root / file).read_bytes() + return {'path': file, 'sha256': digest(data), 'bytes': len(data)} + + +def uncomment(text): + # Только для поиска literal evidence. Это не препроцессор и не elaboration. + return re.sub(r'/\*[\s\S]*?\*/|//[^\n]*', lambda m: '\n' * m[0].count('\n'), text) + + +def location(text, match): + return text.count('\n', 0, match.start()) + 1 + + +def analyze_sources(root, records): + modules, includes, imports = [], [], [] + for record in records: + file = record['path'] + text = uncomment((root / file).read_text(errors='replace')) + for match in re.finditer(r'\b(module|package)\s+(?:automatic\s+)?([A-Za-z_$][\w$]*)', text): + modules.append({'kind': match[1], 'name': match[2], 'path': file, 'line': location(text, match)}) + for match in re.finditer(r'^\s*`include\s+"([^"\n]+)"', text, re.M): + request = match[1] + candidates = [Path(file).parent / request, Path('include') / request, Path(request)] + resolved = [p.as_posix() for p in candidates if (root / p).is_file()] + includes.append({'path': file, 'line': location(text, match), 'request': request, + 'resolved_candidates': sorted(set(resolved))}) + for match in re.finditer(r'\bimport\s+([A-Za-z_$][\w$]*)::', text): + imports.append({'package': match[1], 'path': file, 'line': location(text, match)}) + packages = {m['name'] for m in modules if m['kind'] == 'package'} + return modules, includes, [i for i in imports if i['package'] not in packages] + + +def profile(name, files, tops, modules, includes=(), defines=None): + declarations = [m for m in modules if m['kind'] == 'module' and m['name'] in tops and m['path'] in files] + if {m['name'] for m in declarations} != set(tops): + raise ValueError('Нет точного source evidence для top: ' + name) + return {'name': name, 'purpose': 'source-graph validation; не compiler/elaboration closure', + 'files': files, 'top_modules': tops, 'top_evidence': declarations, + 'include_dirs': list(includes), 'defines': defines or {}} + + +def corpus_manifest(identifier, root, origin): + records = inventory(root) + if not records: + raise ValueError('Пустой HDL corpus: ' + identifier) + revision = git(origin, 'rev-parse', 'HEAD') + remote = portable_remote(git(origin, 'remote', 'get-url', 'origin')) + mismatched = [] + for record in records: + data = git(origin, 'show', revision + ':' + record['path'], binary=True) if revision else None + if data is None or digest(data) != record['sha256']: + mismatched.append(record['path']) + working_tree_mismatches = [r['path'] for r in records if not (origin / r['path']).is_file() + or digest((origin / r['path']).read_bytes()) != r['sha256']] + license_files = sorted(p.name for p in origin.iterdir() if p.is_file() and p.name.upper().startswith(('LICENSE', 'COPYING', 'UNLICENSE'))) + licenses = [{**evidence(origin, file), 'first_line': (origin / file).read_text(errors='replace').splitlines()[0]} + for file in license_files] + builds = [] + for file in BUILD_FILES: + if not (origin / file).is_file(): + continue + text = (origin / file).read_text(errors='replace') + item = evidence(origin, file) + item['command_evidence'] = [{'line': i, 'text': line.strip()} for i, line in enumerate(text.splitlines(), 1) + if re.search(r'add_file|top_module|\$\((?:IV|IVERILOG)\)|(?:^|\s)-[DIgs](?:\s|\w)', line) + and not line.lstrip().startswith('#')] + if file.endswith('.tcl'): + item['declared_files'] = re.findall(r'^\s*add_file\s+[^\n]*?"([^"]+)"', text, re.M) + if file.endswith('.gprj'): + item['declared_files'] = [n.attrib['path'] for n in ET.fromstring(text).iter('File') if 'path' in n.attrib] + builds.append(item) + for entry in builds + licenses: + blob = git(origin, 'show', revision + ':' + entry['path'], binary=True) if revision else None + entry['matches_revision'] = bool(blob is not None and digest(blob) == entry['sha256']) if revision else None + source_spdx = [] + for record in records: + for line, text in enumerate((root / record['path']).read_text(errors='replace').splitlines(), 1): + if 'SPDX-License-Identifier:' in text: + source_spdx.append({'path':record['path'],'line':line,'identifier':text.split('SPDX-License-Identifier:',1)[1].strip(' /*\t')}) + modules, include_refs, missing_packages = analyze_sources(root, records) + names = [r['path'] for r in records] + if identifier == 'dual-uart': + profiles = [profile('synth-source', [f for f in names if f.startswith('src/')], ['top'], modules), + profile('sim-source', names, ['tb_top'], modules)] + elif identifier == 'card-reader': + profiles = [profile('synth-source', [f for f in names if f.startswith('src/')], ['top'], modules), + profile('sim-integration-source', names, ['tb_top_integration'], modules, ['src'])] + else: + selected = ['src/axi_pkg.sv', 'src/axi_interleaved_xbar.sv'] + profiles = [profile('normal-source', selected, ['axi_interleaved_xbar'], modules, ['include']), + profile('vcs-source', selected, ['axi_interleaved_xbar'], modules, ['include'], {'VCS': '1'})] + locked = [] + lock = origin / 'Bender.lock' + if lock.is_file(): + # Ограниченный reader реальной flat Bender lock структуры; версии не вычисляются. + chunks = re.split(r'^ ([\w-]+):\s*$', lock.read_text(), flags=re.M) + for i in range(1, len(chunks), 2): + body = chunks[i + 1] + rev = re.search(r'^ revision: (\w+)$', body, re.M) + url = re.search(r'^ Git: (\S+)$', body, re.M) + if rev and url: + locked.append({'name': chunks[i], 'revision': rev[1], 'remote': url[1], + 'status': 'external; не включён в source inventory', 'evidence': 'Bender.lock'}) + missing_build_files = [{'path':file, 'evidence':build['path']} for build in builds + for file in build.get('declared_files', []) if not (root / file).is_file()] + missing_symbols = [] + if identifier == 'card-reader' and not any(m['name'] == 'rPLL' for m in modules): + text = uncomment((root / 'src/pll.v').read_text()) + match = re.search(r'\brPLL\s*#\s*\(', text) + if match: + missing_symbols.append({'name': 'rPLL', 'kind': 'vendor primitive', 'path': 'src/pll.v', + 'line': location(text, match), 'evidence': 'rPLL #( ... ); declaration отсутствует в corpus'}) + return {'id': identifier, 'provenance': {'remote': remote, 'revision': revision, + 'revision_matches_all_captured_sources': bool(revision) and not mismatched, + 'sources_not_matching_revision': mismatched, + 'working_tree_matches_all_captured_sources': not working_tree_mismatches, + 'sources_not_matching_origin_working_tree': working_tree_mismatches, + 'note': 'revision — доказательство только совпавших blobs; остальные файлы закреплены отдельными SHA-256'}, + 'license': {'status': 'evidence-found' if licenses else 'unknown; license file отсутствует в исходном repo root', 'evidence': licenses, 'source_spdx': source_spdx}, + 'source_files': records, 'source_inventory_sha256': digest(stable(records)), + 'build_evidence': builds, 'validation_profiles': profiles, + 'literal_include_references': include_refs, + 'missing_dependencies': {'literal_includes': [i for i in include_refs if not i['resolved_candidates']], + 'imported_packages_without_declaration': missing_packages, 'symbols': missing_symbols, 'locked_external_packages': locked, + 'build_recipe_files_not_in_corpus': missing_build_files, + 'scope': 'Только наблюдаемые literal includes/imports и перечисленные primitives; conditional branches не вычисляются. Не доказательство полной build closure.'}} + + +def parse_origins(values): + result = {} + for value in values: + key, separator, folder = value.partition('=') + if not separator or key not in IDS: + raise ValueError('--origin ожидает CORPUS_ID=PATH') + result[key] = Path(folder) + return result + + +def check(manifest, base, origins): + failures = [] + for corpus in manifest['corpora']: + identifier = corpus['id'] + actual = inventory(base / identifier) + expected_by_path = {r['path']: r for r in corpus['source_files']} + actual_by_path = {r['path']: r for r in actual} + changed = sorted(p for p in expected_by_path.keys() & actual_by_path.keys() if expected_by_path[p] != actual_by_path[p]) + added = sorted(actual_by_path.keys() - expected_by_path.keys()) + missing = sorted(expected_by_path.keys() - actual_by_path.keys()) + if changed or added or missing: + failures.append({'corpus': identifier, 'changed': changed, 'added': added, 'missing': missing}) + if identifier in origins: + origin = origins[identifier] + for entry in corpus['build_evidence'] + corpus['license']['evidence']: + file = origin / entry['path'] + if not file.resolve().is_relative_to(origin.resolve()) or not file.is_file() or digest(file.read_bytes()) != entry['sha256']: + failures.append({'corpus': identifier, 'origin_evidence_changed': entry['path']}) + print(json.dumps({'ok': not failures, 'checked_corpora': len(manifest['corpora']), 'failures': failures}, ensure_ascii=False, indent=2)) + return 1 if failures else 0 + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('command', choices=('generate', 'check')) + parser.add_argument('--corpus-root', required=True, type=Path) + parser.add_argument('--origin', action='append', default=[], help='CORPUS_ID=local provenance repo; never stored as absolute path') + parser.add_argument('--output', type=Path, default=Path('docs/hdl-corpus-manifest.json')) + parser.add_argument('--manifest', type=Path, default=Path('docs/hdl-corpus-manifest.json')) + args = parser.parse_args() + origins = parse_origins(args.origin) + if args.command == 'check': + return check(json.loads(args.manifest.read_text()), args.corpus_root, origins) + result = {'schema_version': 1, 'purpose': 'Воспроизводимые source snapshots для проверки CodeGraph HDL; исходники не распространяются.', + 'hash_algorithm': 'sha256', 'corpora': [corpus_manifest(i, args.corpus_root / i, origins.get(i, args.corpus_root / i)) for i in IDS]} + args.output.parent.mkdir(parents=True, exist_ok=True) + args.output.write_text(json.dumps(result, ensure_ascii=False, indent=2) + '\n') + print(json.dumps({'ok': True, 'corpora': len(IDS), 'output': str(args.output)}, ensure_ascii=False)) + return 0 + + +if __name__ == '__main__': + try: + sys.exit(main()) + except (OSError, ValueError, KeyError, ET.ParseError) as error: + print(str(error), file=sys.stderr) + sys.exit(2) From 11b3b44be7283a46cce2bbf29fbfa3afe9f1f33f Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 18:31:08 +0300 Subject: [PATCH 20/23] =?UTF-8?q?test:=20=D1=81=D1=80=D0=B0=D0=B2=D0=BD?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20HDL=20frontends=20=D0=B8=20=D0=B2=D1=8B?= =?UTF-8?q?=D0=B1=D1=80=D0=B0=D1=82=D1=8C=20slang=20=D0=B4=D0=BB=D1=8F=20s?= =?UTF-8?q?emantic=20adapter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- VERILOG_TRACKER.md | 21 +- docs/hdl-frontend-comparison.json | 4179 ++++++++++++++++++++++++++++ docs/hdl-frontend-decision.md | 154 + docs/hdl-frontend-source-review.md | 124 + docs/hdl-slang-semantic-probe.json | 473 ++++ scripts/hdl-frontend-compare.py | 233 ++ 6 files changed, 5177 insertions(+), 7 deletions(-) create mode 100644 docs/hdl-frontend-comparison.json create mode 100644 docs/hdl-frontend-decision.md create mode 100644 docs/hdl-frontend-source-review.md create mode 100644 docs/hdl-slang-semantic-probe.json create mode 100644 scripts/hdl-frontend-compare.py diff --git a/VERILOG_TRACKER.md b/VERILOG_TRACKER.md index 5f6ff33a0..642f4dabd 100644 --- a/VERILOG_TRACKER.md +++ b/VERILOG_TRACKER.md @@ -105,15 +105,20 @@ frontend и review задачи можно отдавать агентам; об копии, зафиксировать версии и подтвердить корректный compiler invocation. Выполнено 2026-09-12: три lockfile dependencies; demux preprocessing default/VCS и xbar lint/elaboration при NoSlvMst=1/2/4. Отчёт: `docs/validation-hdl-corpora-build-2026-09-12.md`. -- [ ] **A3** Сравнить кандидатов: slang, Surelog/UHDM, Verilator; при необходимости +- [x] **A3** Сравнить кандидатов: slang, Surelog/UHDM, Verilator; при необходимости Yosys для синтезируемого подмножества. Актуальные версии, лицензии, экспорт и ограничения проверить по официальным источникам во время прототипа. -- [ ] **A4** Измерить на одинаковых profiles: parse/elaboration success, diagnostics, +- [x] **A4** Измерить на одинаковых profiles: parse/elaboration success, diagnostics, source locations, types/parameters export, instance paths, время и peak RSS. -- [ ] **A5** Проверить интеграцию: отдельный процесс, формат обмена, доступность на +- [x] **A5** Проверить интеграцию: отдельный процесс, формат обмена, доступность на Linux/Windows/macOS, версия API, redistributability и необязательность установки. -- [ ] **A6** Сохранить решение в `docs/hdl-frontend-decision.md` с матрицей результатов; +- [x] **A6** Сохранить решение в `docs/hdl-frontend-decision.md` с матрицей результатов; выбрать один основной адаптер. Второй внедрять только при доказанном пробеле. + A3–A6 выполнены 2026-09-12: `docs/hdl-frontend-decision.md`, 24 comparative + controls на UART/CRC/AXI, source/parameter/type assertions и instance probe. + Выбран slang для следующей реализации; A5 platform availability проверена + по docs, runtime только Linux. Surelog/UHDM изучен без runtime. + Full macro mapping не доказан: macro-generated columns могут быть 0. **Приёмка:** воспроизводимый запуск минимум на трёх реальных корпусах; сравнение не менее двух подходящих кандидатов, либо документированный конкретный blocker. @@ -296,9 +301,10 @@ J — повторяемый checklist, его отметки относятся ## 5. Ближайшая конкретная итерация 1. **A1–A2 выполнены**: manifests и восстановленный AXI context; см. `docs/validation-hdl-corpora-build-2026-09-12.md`. -2. Параллельно поручить агентам независимые frontend probes и аудит source mapping; - основной агент готовит общую схему результатов и baseline source graph. -3. Свести **A3–A6** в decision report и зафиксировать adapter contract. +2. **A3–A6 выполнены**: slang выбран по probes; adapter contract и ограничения + сохранены в `docs/hdl-frontend-decision.md`. +3. Начать реализацию согласованного контракта, сохраняя strict/compatible profiles + раздельно и unknown coordinates для macro-generated declarations. 4. Реализовать минимальную вертикаль **B1–B2 + C1–C2**: один profile, один top, parameter value с правильным source mapping и fallback без frontend. 5. Провести J1–J9 для этого ограниченного пакета; затем расширять B/C и переходить к D. @@ -309,6 +315,7 @@ J — повторяемый checklist, его отметки относятся | --- | --- | --- | --- | --- | | 2026-09-12 | Source navigation, scopes, access | Реализованные части перечислены в HDL-001–006 | Отчёты раздела 1 | Сохранить regression coverage | | 2026-09-12 | Build profiles | Ограниченный source-режим, реальные profile parity проверки | `b050fb89`, `docs/validation-hdl-profiles-2026-09-12.md` | A: frontend comparison | +| 2026-09-12 | A3–A6 | 24 controls, slang выбран; CLI macro mapping неполон | `docs/hdl-frontend-decision.md` | B1/B2 + C1/C2 | | 2026-09-12 | A1–A2 | Manifest 137 HDL, три locked AXI dependencies, шесть compiler controls | `docs/validation-hdl-corpora-build-2026-09-12.md` | A3–A6, сравнение frontends | | 2026-09-12 | Полный план | Создан этот tracker; новые implementation задачи не объявлены выполненными | `VERILOG_TRACKER.md` | A1–A2 | diff --git a/docs/hdl-frontend-comparison.json b/docs/hdl-frontend-comparison.json new file mode 100644 index 000000000..b0ff3872e --- /dev/null +++ b/docs/hdl-frontend-comparison.json @@ -0,0 +1,4179 @@ +{ + "tools": { + "slang": "slang version 11.0.448+e222e7dc0", + "verilator": "Verilator 5.051 devel rev v5.050-260-g1c9a9e0cc (mod)" + }, + "cases": [ + { + "case": "uart-strict", + "tool": "slang", + "iteration": 0, + "exit": 1, + "expectedSuccess": false, + "seconds": 0.02, + "wrapperSeconds": 0.032, + "peakRssKiB": 14296, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "top", + "--ast-json", + "${OUTPUT}/uart-strict-slang-0/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/uart-strict-slang-0/diagnostics.json", + "${CORPORA}/dual-uart/src/fifo.v", + "${CORPORA}/dual-uart/src/top.v", + "${CORPORA}/dual-uart/src/uart_arbiter.v", + "${CORPORA}/dual-uart/src/uart_rx.v", + "${CORPORA}/dual-uart/src/uart_rx_autobaud.v", + "${CORPORA}/dual-uart/src/uart_tx.v" + ], + "stderrBytes": 3108, + "astBytes": 1829408, + "expectedOutcome": true, + "errorLines": 9, + "warningLines": 0 + }, + { + "case": "uart-strict", + "tool": "slang", + "iteration": 1, + "exit": 1, + "expectedSuccess": false, + "seconds": 0.02, + "wrapperSeconds": 0.032, + "peakRssKiB": 14300, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "top", + "--ast-json", + "${OUTPUT}/uart-strict-slang-1/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/uart-strict-slang-1/diagnostics.json", + "${CORPORA}/dual-uart/src/fifo.v", + "${CORPORA}/dual-uart/src/top.v", + "${CORPORA}/dual-uart/src/uart_arbiter.v", + "${CORPORA}/dual-uart/src/uart_rx.v", + "${CORPORA}/dual-uart/src/uart_rx_autobaud.v", + "${CORPORA}/dual-uart/src/uart_tx.v" + ], + "stderrBytes": 3108, + "astBytes": 1829408, + "expectedOutcome": true, + "errorLines": 9, + "warningLines": 0 + }, + { + "case": "uart-strict", + "tool": "verilator", + "iteration": 0, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.07, + "wrapperSeconds": 0.114, + "peakRssKiB": 15596, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "top", + "--json-only-output", + "${OUTPUT}/uart-strict-verilator-0/ast.json", + "--json-only-meta-output", + "${OUTPUT}/uart-strict-verilator-0/meta.json", + "--Mdir", + "${OUTPUT}/uart-strict-verilator-0/obj", + "${CORPORA}/dual-uart/src/fifo.v", + "${CORPORA}/dual-uart/src/top.v", + "${CORPORA}/dual-uart/src/uart_arbiter.v", + "${CORPORA}/dual-uart/src/uart_rx.v", + "${CORPORA}/dual-uart/src/uart_rx_autobaud.v", + "${CORPORA}/dual-uart/src/uart_tx.v" + ], + "stderrBytes": 3335, + "astBytes": 209577, + "nodeKinds": { + "NETLIST": 1, + "MODULE": 6, + "VAR": 112, + "CONST": 191, + "INITIALSTATIC": 2, + "ASSIGN": 5, + "VARREF": 319, + "ALWAYS": 18, + "SENTREE": 12, + "SENITEM": 23, + "BEGIN": 89, + "ASSIGNDLY": 126, + "CONCAT": 7, + "SEL": 16, + "ASSIGNW": 5, + "NOT": 11, + "COND": 2, + "ADD": 12, + "IF": 48, + "LT": 6, + "SUB": 4, + "AND": 9, + "CELL": 6, + "PIN": 47, + "ARRAYSEL": 2, + "EQ": 4, + "NEQ": 1, + "CASE": 3, + "EXTEND": 1, + "CASEITEM": 19, + "GT": 7, + "TYPETABLE": 1, + "BASICDTYPE": 22, + "VOIDDTYPE": 1, + "UNPACKARRAYDTYPE": 1, + "RANGE": 1, + "CONSTPOOL": 1, + "SCOPE": 1 + }, + "semanticControl": { + "symbol": "CLK_FREQ", + "valueOrWidth": 50000000, + "source": "${CORPORA}/dual-uart/src/top.v", + "line": 35, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 7 + }, + { + "case": "uart-strict", + "tool": "verilator", + "iteration": 1, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.07, + "wrapperSeconds": 0.114, + "peakRssKiB": 15596, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "top", + "--json-only-output", + "${OUTPUT}/uart-strict-verilator-1/ast.json", + "--json-only-meta-output", + "${OUTPUT}/uart-strict-verilator-1/meta.json", + "--Mdir", + "${OUTPUT}/uart-strict-verilator-1/obj", + "${CORPORA}/dual-uart/src/fifo.v", + "${CORPORA}/dual-uart/src/top.v", + "${CORPORA}/dual-uart/src/uart_arbiter.v", + "${CORPORA}/dual-uart/src/uart_rx.v", + "${CORPORA}/dual-uart/src/uart_rx_autobaud.v", + "${CORPORA}/dual-uart/src/uart_tx.v" + ], + "stderrBytes": 3335, + "astBytes": 209577, + "nodeKinds": { + "NETLIST": 1, + "MODULE": 6, + "VAR": 112, + "CONST": 191, + "INITIALSTATIC": 2, + "ASSIGN": 5, + "VARREF": 319, + "ALWAYS": 18, + "SENTREE": 12, + "SENITEM": 23, + "BEGIN": 89, + "ASSIGNDLY": 126, + "CONCAT": 7, + "SEL": 16, + "ASSIGNW": 5, + "NOT": 11, + "COND": 2, + "ADD": 12, + "IF": 48, + "LT": 6, + "SUB": 4, + "AND": 9, + "CELL": 6, + "PIN": 47, + "ARRAYSEL": 2, + "EQ": 4, + "NEQ": 1, + "CASE": 3, + "EXTEND": 1, + "CASEITEM": 19, + "GT": 7, + "TYPETABLE": 1, + "BASICDTYPE": 22, + "VOIDDTYPE": 1, + "UNPACKARRAYDTYPE": 1, + "RANGE": 1, + "CONSTPOOL": 1, + "SCOPE": 1 + }, + "semanticControl": { + "symbol": "CLK_FREQ", + "valueOrWidth": 50000000, + "source": "${CORPORA}/dual-uart/src/top.v", + "line": 35, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 7 + }, + { + "case": "uart-compatible", + "tool": "slang", + "iteration": 0, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.02, + "wrapperSeconds": 0.032, + "peakRssKiB": 14300, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "top", + "--ast-json", + "${OUTPUT}/uart-compatible-slang-0/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/uart-compatible-slang-0/diagnostics.json", + "--allow-use-before-declare", + "${CORPORA}/dual-uart/src/fifo.v", + "${CORPORA}/dual-uart/src/top.v", + "${CORPORA}/dual-uart/src/uart_arbiter.v", + "${CORPORA}/dual-uart/src/uart_rx.v", + "${CORPORA}/dual-uart/src/uart_rx_autobaud.v", + "${CORPORA}/dual-uart/src/uart_tx.v" + ], + "stderrBytes": 0, + "astBytes": 1807877, + "nodeKinds": { + "Root": 1, + "CompilationUnit": 1, + "Instance": 7, + "InstanceBody": 5, + "Port": 86, + "ScalarType": 1214, + "Net": 49, + "NetType": 49, + "PackedArrayType": 693, + "Variable": 36, + "Parameter": 27, + "Conversion": 266, + "IntegerLiteral": 147, + "PredefinedIntegerType": 124, + "ProceduralBlock": 13, + "Timed": 13, + "SignalEvent": 23, + "NamedValue": 390, + "Block": 89, + "List": 35, + "ExpressionStatement": 136, + "Assignment": 159, + "Concatenation": 3, + "ElementSelect": 19, + "UnaryOp": 22, + "EventList": 11, + "Conditional": 50, + "BinaryOp": 61, + "ImplicitEvent": 1, + "Case": 3, + "EmptyArgument": 20, + "FixedSizeUnpackedArrayType": 3, + "RangeSelect": 3, + "Replication": 1, + "ContinuousAssign": 3, + "Definition": 6 + }, + "semanticControl": { + "symbol": "CLK_FREQ", + "valueOrWidth": 50000000, + "source": "${CORPORA}/dual-uart/src/top.v", + "line": 35, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 0 + }, + { + "case": "uart-compatible", + "tool": "slang", + "iteration": 1, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.02, + "wrapperSeconds": 0.032, + "peakRssKiB": 14280, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "top", + "--ast-json", + "${OUTPUT}/uart-compatible-slang-1/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/uart-compatible-slang-1/diagnostics.json", + "--allow-use-before-declare", + "${CORPORA}/dual-uart/src/fifo.v", + "${CORPORA}/dual-uart/src/top.v", + "${CORPORA}/dual-uart/src/uart_arbiter.v", + "${CORPORA}/dual-uart/src/uart_rx.v", + "${CORPORA}/dual-uart/src/uart_rx_autobaud.v", + "${CORPORA}/dual-uart/src/uart_tx.v" + ], + "stderrBytes": 0, + "astBytes": 1807877, + "nodeKinds": { + "Root": 1, + "CompilationUnit": 1, + "Instance": 7, + "InstanceBody": 5, + "Port": 86, + "ScalarType": 1214, + "Net": 49, + "NetType": 49, + "PackedArrayType": 693, + "Variable": 36, + "Parameter": 27, + "Conversion": 266, + "IntegerLiteral": 147, + "PredefinedIntegerType": 124, + "ProceduralBlock": 13, + "Timed": 13, + "SignalEvent": 23, + "NamedValue": 390, + "Block": 89, + "List": 35, + "ExpressionStatement": 136, + "Assignment": 159, + "Concatenation": 3, + "ElementSelect": 19, + "UnaryOp": 22, + "EventList": 11, + "Conditional": 50, + "BinaryOp": 61, + "ImplicitEvent": 1, + "Case": 3, + "EmptyArgument": 20, + "FixedSizeUnpackedArrayType": 3, + "RangeSelect": 3, + "Replication": 1, + "ContinuousAssign": 3, + "Definition": 6 + }, + "semanticControl": { + "symbol": "CLK_FREQ", + "valueOrWidth": 50000000, + "source": "${CORPORA}/dual-uart/src/top.v", + "line": 35, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 0 + }, + { + "case": "uart-compatible", + "tool": "verilator", + "iteration": 0, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.07, + "wrapperSeconds": 0.114, + "peakRssKiB": 15468, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "top", + "--json-only-output", + "${OUTPUT}/uart-compatible-verilator-0/ast.json", + "--json-only-meta-output", + "${OUTPUT}/uart-compatible-verilator-0/meta.json", + "--Mdir", + "${OUTPUT}/uart-compatible-verilator-0/obj", + "${CORPORA}/dual-uart/src/fifo.v", + "${CORPORA}/dual-uart/src/top.v", + "${CORPORA}/dual-uart/src/uart_arbiter.v", + "${CORPORA}/dual-uart/src/uart_rx.v", + "${CORPORA}/dual-uart/src/uart_rx_autobaud.v", + "${CORPORA}/dual-uart/src/uart_tx.v" + ], + "stderrBytes": 3335, + "astBytes": 209577, + "nodeKinds": { + "NETLIST": 1, + "MODULE": 6, + "VAR": 112, + "CONST": 191, + "INITIALSTATIC": 2, + "ASSIGN": 5, + "VARREF": 319, + "ALWAYS": 18, + "SENTREE": 12, + "SENITEM": 23, + "BEGIN": 89, + "ASSIGNDLY": 126, + "CONCAT": 7, + "SEL": 16, + "ASSIGNW": 5, + "NOT": 11, + "COND": 2, + "ADD": 12, + "IF": 48, + "LT": 6, + "SUB": 4, + "AND": 9, + "CELL": 6, + "PIN": 47, + "ARRAYSEL": 2, + "EQ": 4, + "NEQ": 1, + "CASE": 3, + "EXTEND": 1, + "CASEITEM": 19, + "GT": 7, + "TYPETABLE": 1, + "BASICDTYPE": 22, + "VOIDDTYPE": 1, + "UNPACKARRAYDTYPE": 1, + "RANGE": 1, + "CONSTPOOL": 1, + "SCOPE": 1 + }, + "semanticControl": { + "symbol": "CLK_FREQ", + "valueOrWidth": 50000000, + "source": "${CORPORA}/dual-uart/src/top.v", + "line": 35, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 7 + }, + { + "case": "uart-compatible", + "tool": "verilator", + "iteration": 1, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.08, + "wrapperSeconds": 0.114, + "peakRssKiB": 15504, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "top", + "--json-only-output", + "${OUTPUT}/uart-compatible-verilator-1/ast.json", + "--json-only-meta-output", + "${OUTPUT}/uart-compatible-verilator-1/meta.json", + "--Mdir", + "${OUTPUT}/uart-compatible-verilator-1/obj", + "${CORPORA}/dual-uart/src/fifo.v", + "${CORPORA}/dual-uart/src/top.v", + "${CORPORA}/dual-uart/src/uart_arbiter.v", + "${CORPORA}/dual-uart/src/uart_rx.v", + "${CORPORA}/dual-uart/src/uart_rx_autobaud.v", + "${CORPORA}/dual-uart/src/uart_tx.v" + ], + "stderrBytes": 3335, + "astBytes": 209577, + "nodeKinds": { + "NETLIST": 1, + "MODULE": 6, + "VAR": 112, + "CONST": 191, + "INITIALSTATIC": 2, + "ASSIGN": 5, + "VARREF": 319, + "ALWAYS": 18, + "SENTREE": 12, + "SENITEM": 23, + "BEGIN": 89, + "ASSIGNDLY": 126, + "CONCAT": 7, + "SEL": 16, + "ASSIGNW": 5, + "NOT": 11, + "COND": 2, + "ADD": 12, + "IF": 48, + "LT": 6, + "SUB": 4, + "AND": 9, + "CELL": 6, + "PIN": 47, + "ARRAYSEL": 2, + "EQ": 4, + "NEQ": 1, + "CASE": 3, + "EXTEND": 1, + "CASEITEM": 19, + "GT": 7, + "TYPETABLE": 1, + "BASICDTYPE": 22, + "VOIDDTYPE": 1, + "UNPACKARRAYDTYPE": 1, + "RANGE": 1, + "CONSTPOOL": 1, + "SCOPE": 1 + }, + "semanticControl": { + "symbol": "CLK_FREQ", + "valueOrWidth": 50000000, + "source": "${CORPORA}/dual-uart/src/top.v", + "line": 35, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 7 + }, + { + "case": "crc16", + "tool": "slang", + "iteration": 0, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.01, + "wrapperSeconds": 0.032, + "peakRssKiB": 10888, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "emmc_crc16", + "--ast-json", + "${OUTPUT}/crc16-slang-0/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/crc16-slang-0/diagnostics.json", + "${CORPORA}/card-reader/src/emmc_crc16.v" + ], + "stderrBytes": 0, + "astBytes": 175143, + "nodeKinds": { + "Root": 1, + "CompilationUnit": 1, + "Instance": 1, + "InstanceBody": 1, + "Port": 6, + "ScalarType": 125, + "Net": 7, + "NetType": 7, + "PackedArrayType": 46, + "Variable": 1, + "BinaryOp": 3, + "ElementSelect": 32, + "NamedValue": 45, + "IntegerLiteral": 34, + "PredefinedIntegerType": 32, + "ProceduralBlock": 1, + "Timed": 1, + "EventList": 1, + "SignalEvent": 2, + "Block": 2, + "Conditional": 3, + "UnaryOp": 1, + "ExpressionStatement": 18, + "Assignment": 19, + "Conversion": 2, + "List": 1, + "ContinuousAssign": 1, + "Definition": 1 + }, + "semanticControl": { + "symbol": "crc_out", + "valueOrWidth": 16, + "source": "${CORPORA}/card-reader/src/emmc_crc16.v", + "line": 12, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 0 + }, + { + "case": "crc16", + "tool": "slang", + "iteration": 1, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.01, + "wrapperSeconds": 0.032, + "peakRssKiB": 10856, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "emmc_crc16", + "--ast-json", + "${OUTPUT}/crc16-slang-1/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/crc16-slang-1/diagnostics.json", + "${CORPORA}/card-reader/src/emmc_crc16.v" + ], + "stderrBytes": 0, + "astBytes": 175143, + "nodeKinds": { + "Root": 1, + "CompilationUnit": 1, + "Instance": 1, + "InstanceBody": 1, + "Port": 6, + "ScalarType": 125, + "Net": 7, + "NetType": 7, + "PackedArrayType": 46, + "Variable": 1, + "BinaryOp": 3, + "ElementSelect": 32, + "NamedValue": 45, + "IntegerLiteral": 34, + "PredefinedIntegerType": 32, + "ProceduralBlock": 1, + "Timed": 1, + "EventList": 1, + "SignalEvent": 2, + "Block": 2, + "Conditional": 3, + "UnaryOp": 1, + "ExpressionStatement": 18, + "Assignment": 19, + "Conversion": 2, + "List": 1, + "ContinuousAssign": 1, + "Definition": 1 + }, + "semanticControl": { + "symbol": "crc_out", + "valueOrWidth": 16, + "source": "${CORPORA}/card-reader/src/emmc_crc16.v", + "line": 12, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 0 + }, + { + "case": "crc16", + "tool": "verilator", + "iteration": 0, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.07, + "wrapperSeconds": 0.114, + "peakRssKiB": 14280, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "emmc_crc16", + "--json-only-output", + "${OUTPUT}/crc16-verilator-0/ast.json", + "--json-only-meta-output", + "${OUTPUT}/crc16-verilator-0/meta.json", + "--Mdir", + "${OUTPUT}/crc16-verilator-0/obj", + "${CORPORA}/card-reader/src/emmc_crc16.v" + ], + "stderrBytes": 0, + "astBytes": 30389, + "nodeKinds": { + "NETLIST": 1, + "MODULE": 2, + "VAR": 8, + "ALWAYS": 3, + "ASSIGNW": 2, + "XOR": 3, + "SEL": 32, + "VARREF": 46, + "CONST": 34, + "SENTREE": 1, + "SENITEM": 2, + "BEGIN": 2, + "IF": 3, + "ASSIGNDLY": 18, + "TYPETABLE": 1, + "BASICDTYPE": 4, + "VOIDDTYPE": 1, + "CONSTPOOL": 1, + "SCOPE": 1 + }, + "semanticControl": { + "symbol": "crc_out", + "valueOrWidth": 16, + "source": "${CORPORA}/card-reader/src/emmc_crc16.v", + "line": 12, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 0 + }, + { + "case": "crc16", + "tool": "verilator", + "iteration": 1, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.07, + "wrapperSeconds": 0.114, + "peakRssKiB": 14508, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "emmc_crc16", + "--json-only-output", + "${OUTPUT}/crc16-verilator-1/ast.json", + "--json-only-meta-output", + "${OUTPUT}/crc16-verilator-1/meta.json", + "--Mdir", + "${OUTPUT}/crc16-verilator-1/obj", + "${CORPORA}/card-reader/src/emmc_crc16.v" + ], + "stderrBytes": 0, + "astBytes": 30389, + "nodeKinds": { + "NETLIST": 1, + "MODULE": 2, + "VAR": 8, + "ALWAYS": 3, + "ASSIGNW": 2, + "XOR": 3, + "SEL": 32, + "VARREF": 46, + "CONST": 34, + "SENTREE": 1, + "SENITEM": 2, + "BEGIN": 2, + "IF": 3, + "ASSIGNDLY": 18, + "TYPETABLE": 1, + "BASICDTYPE": 4, + "VOIDDTYPE": 1, + "CONSTPOOL": 1, + "SCOPE": 1 + }, + "semanticControl": { + "symbol": "crc_out", + "valueOrWidth": 16, + "source": "${CORPORA}/card-reader/src/emmc_crc16.v", + "line": 12, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 0 + }, + { + "case": "axi2", + "tool": "slang", + "iteration": 0, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.14, + "wrapperSeconds": 0.164, + "peakRssKiB": 58716, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "synth_axi_lite_xbar", + "--ast-json", + "${OUTPUT}/axi2-slang-0/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/axi2-slang-0/diagnostics.json", + "-GNoSlvMst=2", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/clk_rst_gen.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/sim_timeout.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/stream_watchdog.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/signal_highlighter.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram_impl.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_clk.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sync.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clock_gating_async.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/cluster_clk_cells.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clk_cells.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/assert_rpt_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_binary_to_gray.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_multiaddr_decode.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_majority_vote_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_cdc_2phase_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_id_queue_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_stream_arbiter_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_ecc_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_synth_bench.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cf_math_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/binary_to_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fifo_v3.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mv_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/multiaddr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/src/axi_pkg.sv", + "${AXI}/src/axi_demux_id_counters.sv", + "${AXI}/src/axi_intf.sv", + "${AXI}/src/axi_atop_filter.sv", + "${AXI}/src/axi_burst_splitter_gran.sv", + "${AXI}/src/axi_burst_unwrap.sv", + "${AXI}/src/axi_bus_compare.sv", + "${AXI}/src/axi_cdc_dst.sv", + "${AXI}/src/axi_cdc_src.sv", + "${AXI}/src/axi_cut.sv", + "${AXI}/src/axi_delayer.sv", + "${AXI}/src/axi_demux_simple.sv", + "${AXI}/src/axi_dw_downsizer.sv", + "${AXI}/src/axi_dw_upsizer.sv", + "${AXI}/src/axi_fifo.sv", + "${AXI}/src/axi_fifo_delay_dyn.sv", + "${AXI}/src/axi_id_remap.sv", + "${AXI}/src/axi_id_prepend.sv", + "${AXI}/src/axi_inval_filter.sv", + "${AXI}/src/axi_isolate.sv", + "${AXI}/src/axi_join.sv", + "${AXI}/src/axi_lite_demux.sv", + "${AXI}/src/axi_lite_dw_converter.sv", + "${AXI}/src/axi_lite_from_mem.sv", + "${AXI}/src/axi_lite_join.sv", + "${AXI}/src/axi_lite_lfsr.sv", + "${AXI}/src/axi_lite_mailbox.sv", + "${AXI}/src/axi_lite_mux.sv", + "${AXI}/src/axi_lite_regs.sv", + "${AXI}/src/axi_lite_to_apb.sv", + "${AXI}/src/axi_lite_to_axi.sv", + "${AXI}/src/axi_modify_address.sv", + "${AXI}/src/axi_mux.sv", + "${AXI}/src/axi_rw_join.sv", + "${AXI}/src/axi_rw_split.sv", + "${AXI}/src/axi_serializer.sv", + "${AXI}/src/axi_slave_compare.sv", + "${AXI}/src/axi_throttle.sv", + "${AXI}/src/axi_to_detailed_mem.sv", + "${AXI}/src/axi_burst_splitter.sv", + "${AXI}/src/axi_cdc.sv", + "${AXI}/src/axi_demux.sv", + "${AXI}/src/axi_err_slv.sv", + "${AXI}/src/axi_dw_converter.sv", + "${AXI}/src/axi_from_mem.sv", + "${AXI}/src/axi_id_serialize.sv", + "${AXI}/src/axi_lfsr.sv", + "${AXI}/src/axi_multicut.sv", + "${AXI}/src/axi_to_axi_lite.sv", + "${AXI}/src/axi_to_mem.sv", + "${AXI}/src/axi_zero_mem.sv", + "${AXI}/src/axi_interleaved_xbar.sv", + "${AXI}/src/axi_iw_converter.sv", + "${AXI}/src/axi_lite_xbar.sv", + "${AXI}/src/axi_xbar_unmuxed.sv", + "${AXI}/src/axi_to_mem_banked.sv", + "${AXI}/src/axi_to_mem_interleaved.sv", + "${AXI}/src/axi_to_mem_split.sv", + "${AXI}/src/axi_xbar.sv", + "${AXI}/src/axi_xp.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/test/axi_synth_bench.sv" + ], + "stderrBytes": 307, + "astBytes": 12529230, + "nodeKinds": { + "Root": 1, + "CompilationUnit": 1, + "Package": 6, + "Subroutine": 36, + "FormalArgument": 152, + "PredefinedIntegerType": 1496, + "Variable": 383, + "Conversion": 682, + "PackedArrayType": 2150, + "ScalarType": 5181, + "IntegerLiteral": 557, + "List": 74, + "VariableDeclaration": 10, + "Conditional": 200, + "BinaryOp": 638, + "NamedValue": 2714, + "Block": 446, + "ExpressionStatement": 403, + "Call": 149, + "VoidType": 68, + "StringLiteral": 180, + "Assignment": 632, + "UnaryOp": 273, + "Return": 71, + "TypeAlias": 51, + "PackedStructType": 21, + "Field": 101, + "Parameter": 190, + "SimpleAssignmentPattern": 1, + "StructuredAssignmentPattern": 11, + "WhileLoop": 1, + "EnumType": 6, + "EnumValue": 31, + "ImmediateAssertion": 20, + "Case": 4, + "UnbasedUnsizedIntegerLiteral": 162, + "ConditionalOp": 39, + "Instance": 46, + "InstanceBody": 29, + "Port": 641, + "Net": 171, + "NetType": 171, + "TypeParameter": 54, + "MemberAccess": 266, + "GenerateBlockArray": 21, + "Genvar": 21, + "GenerateBlock": 71, + "StatementBlock": 70, + "ProceduralBlock": 118, + "ForLoop": 3, + "ElementSelect": 265, + "StringType": 13, + "EmptyArgument": 116, + "ContinuousAssign": 183, + "ConcurrentAssertion": 39, + "Clocking": 39, + "SignalEvent": 141, + "Binary": 40, + "Simple": 79, + "Concatenation": 16, + "Timed": 51, + "EventList": 51, + "DisableIff": 24, + "RangeSelect": 16, + "Replication": 12, + "defaultDisable": 4, + "DataType": 1, + "WildcardImport": 1, + "Definition": 364, + "Attribute": 33 + }, + "semanticControl": { + "symbol": "NoSlvMst", + "valueOrWidth": 2, + "source": "${AXI}/test/axi_synth_bench.sv", + "line": 406, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 1 + }, + { + "case": "axi2", + "tool": "slang", + "iteration": 1, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.15, + "wrapperSeconds": 0.165, + "peakRssKiB": 56772, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "synth_axi_lite_xbar", + "--ast-json", + "${OUTPUT}/axi2-slang-1/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/axi2-slang-1/diagnostics.json", + "-GNoSlvMst=2", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/clk_rst_gen.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/sim_timeout.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/stream_watchdog.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/signal_highlighter.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram_impl.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_clk.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sync.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clock_gating_async.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/cluster_clk_cells.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clk_cells.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/assert_rpt_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_binary_to_gray.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_multiaddr_decode.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_majority_vote_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_cdc_2phase_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_id_queue_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_stream_arbiter_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_ecc_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_synth_bench.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cf_math_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/binary_to_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fifo_v3.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mv_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/multiaddr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/src/axi_pkg.sv", + "${AXI}/src/axi_demux_id_counters.sv", + "${AXI}/src/axi_intf.sv", + "${AXI}/src/axi_atop_filter.sv", + "${AXI}/src/axi_burst_splitter_gran.sv", + "${AXI}/src/axi_burst_unwrap.sv", + "${AXI}/src/axi_bus_compare.sv", + "${AXI}/src/axi_cdc_dst.sv", + "${AXI}/src/axi_cdc_src.sv", + "${AXI}/src/axi_cut.sv", + "${AXI}/src/axi_delayer.sv", + "${AXI}/src/axi_demux_simple.sv", + "${AXI}/src/axi_dw_downsizer.sv", + "${AXI}/src/axi_dw_upsizer.sv", + "${AXI}/src/axi_fifo.sv", + "${AXI}/src/axi_fifo_delay_dyn.sv", + "${AXI}/src/axi_id_remap.sv", + "${AXI}/src/axi_id_prepend.sv", + "${AXI}/src/axi_inval_filter.sv", + "${AXI}/src/axi_isolate.sv", + "${AXI}/src/axi_join.sv", + "${AXI}/src/axi_lite_demux.sv", + "${AXI}/src/axi_lite_dw_converter.sv", + "${AXI}/src/axi_lite_from_mem.sv", + "${AXI}/src/axi_lite_join.sv", + "${AXI}/src/axi_lite_lfsr.sv", + "${AXI}/src/axi_lite_mailbox.sv", + "${AXI}/src/axi_lite_mux.sv", + "${AXI}/src/axi_lite_regs.sv", + "${AXI}/src/axi_lite_to_apb.sv", + "${AXI}/src/axi_lite_to_axi.sv", + "${AXI}/src/axi_modify_address.sv", + "${AXI}/src/axi_mux.sv", + "${AXI}/src/axi_rw_join.sv", + "${AXI}/src/axi_rw_split.sv", + "${AXI}/src/axi_serializer.sv", + "${AXI}/src/axi_slave_compare.sv", + "${AXI}/src/axi_throttle.sv", + "${AXI}/src/axi_to_detailed_mem.sv", + "${AXI}/src/axi_burst_splitter.sv", + "${AXI}/src/axi_cdc.sv", + "${AXI}/src/axi_demux.sv", + "${AXI}/src/axi_err_slv.sv", + "${AXI}/src/axi_dw_converter.sv", + "${AXI}/src/axi_from_mem.sv", + "${AXI}/src/axi_id_serialize.sv", + "${AXI}/src/axi_lfsr.sv", + "${AXI}/src/axi_multicut.sv", + "${AXI}/src/axi_to_axi_lite.sv", + "${AXI}/src/axi_to_mem.sv", + "${AXI}/src/axi_zero_mem.sv", + "${AXI}/src/axi_interleaved_xbar.sv", + "${AXI}/src/axi_iw_converter.sv", + "${AXI}/src/axi_lite_xbar.sv", + "${AXI}/src/axi_xbar_unmuxed.sv", + "${AXI}/src/axi_to_mem_banked.sv", + "${AXI}/src/axi_to_mem_interleaved.sv", + "${AXI}/src/axi_to_mem_split.sv", + "${AXI}/src/axi_xbar.sv", + "${AXI}/src/axi_xp.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/test/axi_synth_bench.sv" + ], + "stderrBytes": 307, + "astBytes": 12529230, + "nodeKinds": { + "Root": 1, + "CompilationUnit": 1, + "Package": 6, + "Subroutine": 36, + "FormalArgument": 152, + "PredefinedIntegerType": 1496, + "Variable": 383, + "Conversion": 682, + "PackedArrayType": 2150, + "ScalarType": 5181, + "IntegerLiteral": 557, + "List": 74, + "VariableDeclaration": 10, + "Conditional": 200, + "BinaryOp": 638, + "NamedValue": 2714, + "Block": 446, + "ExpressionStatement": 403, + "Call": 149, + "VoidType": 68, + "StringLiteral": 180, + "Assignment": 632, + "UnaryOp": 273, + "Return": 71, + "TypeAlias": 51, + "PackedStructType": 21, + "Field": 101, + "Parameter": 190, + "SimpleAssignmentPattern": 1, + "StructuredAssignmentPattern": 11, + "WhileLoop": 1, + "EnumType": 6, + "EnumValue": 31, + "ImmediateAssertion": 20, + "Case": 4, + "UnbasedUnsizedIntegerLiteral": 162, + "ConditionalOp": 39, + "Instance": 46, + "InstanceBody": 29, + "Port": 641, + "Net": 171, + "NetType": 171, + "TypeParameter": 54, + "MemberAccess": 266, + "GenerateBlockArray": 21, + "Genvar": 21, + "GenerateBlock": 71, + "StatementBlock": 70, + "ProceduralBlock": 118, + "ForLoop": 3, + "ElementSelect": 265, + "StringType": 13, + "EmptyArgument": 116, + "ContinuousAssign": 183, + "ConcurrentAssertion": 39, + "Clocking": 39, + "SignalEvent": 141, + "Binary": 40, + "Simple": 79, + "Concatenation": 16, + "Timed": 51, + "EventList": 51, + "DisableIff": 24, + "RangeSelect": 16, + "Replication": 12, + "defaultDisable": 4, + "DataType": 1, + "WildcardImport": 1, + "Definition": 364, + "Attribute": 33 + }, + "semanticControl": { + "symbol": "NoSlvMst", + "valueOrWidth": 2, + "source": "${AXI}/test/axi_synth_bench.sv", + "line": 406, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 1 + }, + { + "case": "axi2", + "tool": "verilator", + "iteration": 0, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.59, + "wrapperSeconds": 0.615, + "peakRssKiB": 91508, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "synth_axi_lite_xbar", + "--json-only-output", + "${OUTPUT}/axi2-verilator-0/ast.json", + "--json-only-meta-output", + "${OUTPUT}/axi2-verilator-0/meta.json", + "--Mdir", + "${OUTPUT}/axi2-verilator-0/obj", + "-GNoSlvMst=2", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/clk_rst_gen.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/sim_timeout.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/stream_watchdog.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/signal_highlighter.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram_impl.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_clk.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sync.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clock_gating_async.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/cluster_clk_cells.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clk_cells.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/assert_rpt_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_binary_to_gray.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_multiaddr_decode.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_majority_vote_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_cdc_2phase_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_id_queue_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_stream_arbiter_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_ecc_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_synth_bench.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cf_math_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/binary_to_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fifo_v3.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mv_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/multiaddr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/src/axi_pkg.sv", + "${AXI}/src/axi_demux_id_counters.sv", + "${AXI}/src/axi_intf.sv", + "${AXI}/src/axi_atop_filter.sv", + "${AXI}/src/axi_burst_splitter_gran.sv", + "${AXI}/src/axi_burst_unwrap.sv", + "${AXI}/src/axi_bus_compare.sv", + "${AXI}/src/axi_cdc_dst.sv", + "${AXI}/src/axi_cdc_src.sv", + "${AXI}/src/axi_cut.sv", + "${AXI}/src/axi_delayer.sv", + "${AXI}/src/axi_demux_simple.sv", + "${AXI}/src/axi_dw_downsizer.sv", + "${AXI}/src/axi_dw_upsizer.sv", + "${AXI}/src/axi_fifo.sv", + "${AXI}/src/axi_fifo_delay_dyn.sv", + "${AXI}/src/axi_id_remap.sv", + "${AXI}/src/axi_id_prepend.sv", + "${AXI}/src/axi_inval_filter.sv", + "${AXI}/src/axi_isolate.sv", + "${AXI}/src/axi_join.sv", + "${AXI}/src/axi_lite_demux.sv", + "${AXI}/src/axi_lite_dw_converter.sv", + "${AXI}/src/axi_lite_from_mem.sv", + "${AXI}/src/axi_lite_join.sv", + "${AXI}/src/axi_lite_lfsr.sv", + "${AXI}/src/axi_lite_mailbox.sv", + "${AXI}/src/axi_lite_mux.sv", + "${AXI}/src/axi_lite_regs.sv", + "${AXI}/src/axi_lite_to_apb.sv", + "${AXI}/src/axi_lite_to_axi.sv", + "${AXI}/src/axi_modify_address.sv", + "${AXI}/src/axi_mux.sv", + "${AXI}/src/axi_rw_join.sv", + "${AXI}/src/axi_rw_split.sv", + "${AXI}/src/axi_serializer.sv", + "${AXI}/src/axi_slave_compare.sv", + "${AXI}/src/axi_throttle.sv", + "${AXI}/src/axi_to_detailed_mem.sv", + "${AXI}/src/axi_burst_splitter.sv", + "${AXI}/src/axi_cdc.sv", + "${AXI}/src/axi_demux.sv", + "${AXI}/src/axi_err_slv.sv", + "${AXI}/src/axi_dw_converter.sv", + "${AXI}/src/axi_from_mem.sv", + "${AXI}/src/axi_id_serialize.sv", + "${AXI}/src/axi_lfsr.sv", + "${AXI}/src/axi_multicut.sv", + "${AXI}/src/axi_to_axi_lite.sv", + "${AXI}/src/axi_to_mem.sv", + "${AXI}/src/axi_zero_mem.sv", + "${AXI}/src/axi_interleaved_xbar.sv", + "${AXI}/src/axi_iw_converter.sv", + "${AXI}/src/axi_lite_xbar.sv", + "${AXI}/src/axi_xbar_unmuxed.sv", + "${AXI}/src/axi_to_mem_banked.sv", + "${AXI}/src/axi_to_mem_interleaved.sv", + "${AXI}/src/axi_to_mem_split.sv", + "${AXI}/src/axi_xbar.sv", + "${AXI}/src/axi_xp.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/test/axi_synth_bench.sv" + ], + "stderrBytes": 5977, + "astBytes": 1624749, + "nodeKinds": { + "NETLIST": 1, + "MODULE": 34, + "VAR": 768, + "CONST": 982, + "TYPEDEF": 49, + "CELL": 49, + "PIN": 413, + "VARREF": 2087, + "PACKAGE": 5, + "GENBLOCK": 107, + "SEL": 338, + "ALWAYS": 320, + "ASSIGNW": 209, + "COND": 26, + "EXTEND": 68, + "CONCAT": 23, + "BEGIN": 445, + "ASSIGN": 156, + "IF": 354, + "AND": 170, + "NOT": 262, + "SENTREE": 97, + "SENITEM": 155, + "ASSIGNDLY": 177, + "EQ": 34, + "ADD": 41, + "MUL": 38, + "LOOP": 3, + "LOOPTEST": 3, + "GT": 7, + "GTE": 1, + "OR": 112, + "LT": 4, + "INITIAL": 11, + "CEXPR": 94, + "TEXT": 94, + "FINAL": 1, + "LOGOR": 1, + "ONEHOT0": 3, + "TESTPLUSARGS": 1, + "DISPLAY": 36, + "SFORMATF": 38, + "TIME": 36, + "SCOPENAME": 36, + "STOP": 36, + "ISUNKNOWN": 1, + "SFORMATARG": 2, + "EQCASE": 37, + "SAMPLED": 84, + "LTE": 2, + "REDOR": 8, + "SHIFTL": 2, + "SUB": 6, + "TYPETABLE": 1, + "VOIDDTYPE": 1, + "BASICDTYPE": 145, + "REFDTYPE": 311, + "PACKARRAYDTYPE": 48, + "RANGE": 48, + "STRUCTDTYPE": 21, + "MEMBERDTYPE": 101, + "ENUMDTYPE": 6, + "ENUMITEM": 31, + "PARAMTYPEDTYPE": 61, + "CONSTPOOL": 1, + "SCOPE": 1 + }, + "semanticControl": { + "symbol": "NoSlvMst", + "valueOrWidth": 2, + "source": "${AXI}/test/axi_synth_bench.sv", + "line": 406, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 10 + }, + { + "case": "axi2", + "tool": "verilator", + "iteration": 1, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.61, + "wrapperSeconds": 0.666, + "peakRssKiB": 91748, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "synth_axi_lite_xbar", + "--json-only-output", + "${OUTPUT}/axi2-verilator-1/ast.json", + "--json-only-meta-output", + "${OUTPUT}/axi2-verilator-1/meta.json", + "--Mdir", + "${OUTPUT}/axi2-verilator-1/obj", + "-GNoSlvMst=2", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/clk_rst_gen.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/sim_timeout.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/stream_watchdog.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/signal_highlighter.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram_impl.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_clk.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sync.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clock_gating_async.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/cluster_clk_cells.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clk_cells.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/assert_rpt_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_binary_to_gray.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_multiaddr_decode.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_majority_vote_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_cdc_2phase_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_id_queue_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_stream_arbiter_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_ecc_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_synth_bench.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cf_math_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/binary_to_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fifo_v3.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mv_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/multiaddr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/src/axi_pkg.sv", + "${AXI}/src/axi_demux_id_counters.sv", + "${AXI}/src/axi_intf.sv", + "${AXI}/src/axi_atop_filter.sv", + "${AXI}/src/axi_burst_splitter_gran.sv", + "${AXI}/src/axi_burst_unwrap.sv", + "${AXI}/src/axi_bus_compare.sv", + "${AXI}/src/axi_cdc_dst.sv", + "${AXI}/src/axi_cdc_src.sv", + "${AXI}/src/axi_cut.sv", + "${AXI}/src/axi_delayer.sv", + "${AXI}/src/axi_demux_simple.sv", + "${AXI}/src/axi_dw_downsizer.sv", + "${AXI}/src/axi_dw_upsizer.sv", + "${AXI}/src/axi_fifo.sv", + "${AXI}/src/axi_fifo_delay_dyn.sv", + "${AXI}/src/axi_id_remap.sv", + "${AXI}/src/axi_id_prepend.sv", + "${AXI}/src/axi_inval_filter.sv", + "${AXI}/src/axi_isolate.sv", + "${AXI}/src/axi_join.sv", + "${AXI}/src/axi_lite_demux.sv", + "${AXI}/src/axi_lite_dw_converter.sv", + "${AXI}/src/axi_lite_from_mem.sv", + "${AXI}/src/axi_lite_join.sv", + "${AXI}/src/axi_lite_lfsr.sv", + "${AXI}/src/axi_lite_mailbox.sv", + "${AXI}/src/axi_lite_mux.sv", + "${AXI}/src/axi_lite_regs.sv", + "${AXI}/src/axi_lite_to_apb.sv", + "${AXI}/src/axi_lite_to_axi.sv", + "${AXI}/src/axi_modify_address.sv", + "${AXI}/src/axi_mux.sv", + "${AXI}/src/axi_rw_join.sv", + "${AXI}/src/axi_rw_split.sv", + "${AXI}/src/axi_serializer.sv", + "${AXI}/src/axi_slave_compare.sv", + "${AXI}/src/axi_throttle.sv", + "${AXI}/src/axi_to_detailed_mem.sv", + "${AXI}/src/axi_burst_splitter.sv", + "${AXI}/src/axi_cdc.sv", + "${AXI}/src/axi_demux.sv", + "${AXI}/src/axi_err_slv.sv", + "${AXI}/src/axi_dw_converter.sv", + "${AXI}/src/axi_from_mem.sv", + "${AXI}/src/axi_id_serialize.sv", + "${AXI}/src/axi_lfsr.sv", + "${AXI}/src/axi_multicut.sv", + "${AXI}/src/axi_to_axi_lite.sv", + "${AXI}/src/axi_to_mem.sv", + "${AXI}/src/axi_zero_mem.sv", + "${AXI}/src/axi_interleaved_xbar.sv", + "${AXI}/src/axi_iw_converter.sv", + "${AXI}/src/axi_lite_xbar.sv", + "${AXI}/src/axi_xbar_unmuxed.sv", + "${AXI}/src/axi_to_mem_banked.sv", + "${AXI}/src/axi_to_mem_interleaved.sv", + "${AXI}/src/axi_to_mem_split.sv", + "${AXI}/src/axi_xbar.sv", + "${AXI}/src/axi_xp.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/test/axi_synth_bench.sv" + ], + "stderrBytes": 5977, + "astBytes": 1624749, + "nodeKinds": { + "NETLIST": 1, + "MODULE": 34, + "VAR": 768, + "CONST": 982, + "TYPEDEF": 49, + "CELL": 49, + "PIN": 413, + "VARREF": 2087, + "PACKAGE": 5, + "GENBLOCK": 107, + "SEL": 338, + "ALWAYS": 320, + "ASSIGNW": 209, + "COND": 26, + "EXTEND": 68, + "CONCAT": 23, + "BEGIN": 445, + "ASSIGN": 156, + "IF": 354, + "AND": 170, + "NOT": 262, + "SENTREE": 97, + "SENITEM": 155, + "ASSIGNDLY": 177, + "EQ": 34, + "ADD": 41, + "MUL": 38, + "LOOP": 3, + "LOOPTEST": 3, + "GT": 7, + "GTE": 1, + "OR": 112, + "LT": 4, + "INITIAL": 11, + "CEXPR": 94, + "TEXT": 94, + "FINAL": 1, + "LOGOR": 1, + "ONEHOT0": 3, + "TESTPLUSARGS": 1, + "DISPLAY": 36, + "SFORMATF": 38, + "TIME": 36, + "SCOPENAME": 36, + "STOP": 36, + "ISUNKNOWN": 1, + "SFORMATARG": 2, + "EQCASE": 37, + "SAMPLED": 84, + "LTE": 2, + "REDOR": 8, + "SHIFTL": 2, + "SUB": 6, + "TYPETABLE": 1, + "VOIDDTYPE": 1, + "BASICDTYPE": 145, + "REFDTYPE": 311, + "PACKARRAYDTYPE": 48, + "RANGE": 48, + "STRUCTDTYPE": 21, + "MEMBERDTYPE": 101, + "ENUMDTYPE": 6, + "ENUMITEM": 31, + "PARAMTYPEDTYPE": 61, + "CONSTPOOL": 1, + "SCOPE": 1 + }, + "semanticControl": { + "symbol": "NoSlvMst", + "valueOrWidth": 2, + "source": "${AXI}/test/axi_synth_bench.sv", + "line": 406, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 10 + }, + { + "case": "axi4", + "tool": "slang", + "iteration": 0, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.16, + "wrapperSeconds": 0.215, + "peakRssKiB": 65848, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "synth_axi_lite_xbar", + "--ast-json", + "${OUTPUT}/axi4-slang-0/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/axi4-slang-0/diagnostics.json", + "-GNoSlvMst=4", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/clk_rst_gen.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/sim_timeout.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/stream_watchdog.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/signal_highlighter.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram_impl.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_clk.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sync.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clock_gating_async.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/cluster_clk_cells.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clk_cells.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/assert_rpt_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_binary_to_gray.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_multiaddr_decode.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_majority_vote_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_cdc_2phase_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_id_queue_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_stream_arbiter_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_ecc_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_synth_bench.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cf_math_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/binary_to_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fifo_v3.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mv_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/multiaddr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/src/axi_pkg.sv", + "${AXI}/src/axi_demux_id_counters.sv", + "${AXI}/src/axi_intf.sv", + "${AXI}/src/axi_atop_filter.sv", + "${AXI}/src/axi_burst_splitter_gran.sv", + "${AXI}/src/axi_burst_unwrap.sv", + "${AXI}/src/axi_bus_compare.sv", + "${AXI}/src/axi_cdc_dst.sv", + "${AXI}/src/axi_cdc_src.sv", + "${AXI}/src/axi_cut.sv", + "${AXI}/src/axi_delayer.sv", + "${AXI}/src/axi_demux_simple.sv", + "${AXI}/src/axi_dw_downsizer.sv", + "${AXI}/src/axi_dw_upsizer.sv", + "${AXI}/src/axi_fifo.sv", + "${AXI}/src/axi_fifo_delay_dyn.sv", + "${AXI}/src/axi_id_remap.sv", + "${AXI}/src/axi_id_prepend.sv", + "${AXI}/src/axi_inval_filter.sv", + "${AXI}/src/axi_isolate.sv", + "${AXI}/src/axi_join.sv", + "${AXI}/src/axi_lite_demux.sv", + "${AXI}/src/axi_lite_dw_converter.sv", + "${AXI}/src/axi_lite_from_mem.sv", + "${AXI}/src/axi_lite_join.sv", + "${AXI}/src/axi_lite_lfsr.sv", + "${AXI}/src/axi_lite_mailbox.sv", + "${AXI}/src/axi_lite_mux.sv", + "${AXI}/src/axi_lite_regs.sv", + "${AXI}/src/axi_lite_to_apb.sv", + "${AXI}/src/axi_lite_to_axi.sv", + "${AXI}/src/axi_modify_address.sv", + "${AXI}/src/axi_mux.sv", + "${AXI}/src/axi_rw_join.sv", + "${AXI}/src/axi_rw_split.sv", + "${AXI}/src/axi_serializer.sv", + "${AXI}/src/axi_slave_compare.sv", + "${AXI}/src/axi_throttle.sv", + "${AXI}/src/axi_to_detailed_mem.sv", + "${AXI}/src/axi_burst_splitter.sv", + "${AXI}/src/axi_cdc.sv", + "${AXI}/src/axi_demux.sv", + "${AXI}/src/axi_err_slv.sv", + "${AXI}/src/axi_dw_converter.sv", + "${AXI}/src/axi_from_mem.sv", + "${AXI}/src/axi_id_serialize.sv", + "${AXI}/src/axi_lfsr.sv", + "${AXI}/src/axi_multicut.sv", + "${AXI}/src/axi_to_axi_lite.sv", + "${AXI}/src/axi_to_mem.sv", + "${AXI}/src/axi_zero_mem.sv", + "${AXI}/src/axi_interleaved_xbar.sv", + "${AXI}/src/axi_iw_converter.sv", + "${AXI}/src/axi_lite_xbar.sv", + "${AXI}/src/axi_xbar_unmuxed.sv", + "${AXI}/src/axi_to_mem_banked.sv", + "${AXI}/src/axi_to_mem_interleaved.sv", + "${AXI}/src/axi_to_mem_split.sv", + "${AXI}/src/axi_xbar.sv", + "${AXI}/src/axi_xp.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/test/axi_synth_bench.sv" + ], + "stderrBytes": 307, + "astBytes": 15189248, + "nodeKinds": { + "Root": 1, + "CompilationUnit": 1, + "Package": 6, + "Subroutine": 36, + "FormalArgument": 152, + "PredefinedIntegerType": 2079, + "Variable": 401, + "Conversion": 839, + "PackedArrayType": 2719, + "ScalarType": 5839, + "IntegerLiteral": 667, + "List": 74, + "VariableDeclaration": 10, + "Conditional": 200, + "BinaryOp": 824, + "NamedValue": 3407, + "Block": 454, + "ExpressionStatement": 411, + "Call": 173, + "VoidType": 76, + "StringLiteral": 188, + "Assignment": 744, + "UnaryOp": 309, + "Return": 71, + "TypeAlias": 51, + "PackedStructType": 21, + "Field": 101, + "Parameter": 242, + "SimpleAssignmentPattern": 1, + "StructuredAssignmentPattern": 11, + "WhileLoop": 1, + "EnumType": 6, + "EnumValue": 31, + "ImmediateAssertion": 20, + "Case": 4, + "UnbasedUnsizedIntegerLiteral": 162, + "ConditionalOp": 52, + "Instance": 58, + "InstanceBody": 29, + "Port": 717, + "Net": 171, + "NetType": 171, + "TypeParameter": 54, + "MemberAccess": 346, + "GenerateBlockArray": 25, + "Genvar": 25, + "GenerateBlock": 126, + "StatementBlock": 78, + "ProceduralBlock": 126, + "ForLoop": 3, + "ElementSelect": 533, + "StringType": 21, + "EmptyArgument": 138, + "ContinuousAssign": 273, + "ConcurrentAssertion": 47, + "Clocking": 47, + "SignalEvent": 149, + "Binary": 48, + "Simple": 95, + "Concatenation": 18, + "Timed": 51, + "EventList": 51, + "DisableIff": 24, + "RangeSelect": 18, + "Replication": 12, + "defaultDisable": 6, + "DataType": 1, + "WildcardImport": 1, + "Definition": 364, + "Attribute": 33 + }, + "semanticControl": { + "symbol": "NoSlvMst", + "valueOrWidth": 4, + "source": "${AXI}/test/axi_synth_bench.sv", + "line": 406, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 1 + }, + { + "case": "axi4", + "tool": "slang", + "iteration": 1, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.16, + "wrapperSeconds": 0.215, + "peakRssKiB": 67664, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "synth_axi_lite_xbar", + "--ast-json", + "${OUTPUT}/axi4-slang-1/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/axi4-slang-1/diagnostics.json", + "-GNoSlvMst=4", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/clk_rst_gen.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/sim_timeout.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/stream_watchdog.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/signal_highlighter.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram_impl.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_clk.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sync.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clock_gating_async.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/cluster_clk_cells.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clk_cells.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/assert_rpt_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_binary_to_gray.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_multiaddr_decode.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_majority_vote_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_cdc_2phase_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_id_queue_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_stream_arbiter_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_ecc_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_synth_bench.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cf_math_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/binary_to_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fifo_v3.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mv_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/multiaddr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/src/axi_pkg.sv", + "${AXI}/src/axi_demux_id_counters.sv", + "${AXI}/src/axi_intf.sv", + "${AXI}/src/axi_atop_filter.sv", + "${AXI}/src/axi_burst_splitter_gran.sv", + "${AXI}/src/axi_burst_unwrap.sv", + "${AXI}/src/axi_bus_compare.sv", + "${AXI}/src/axi_cdc_dst.sv", + "${AXI}/src/axi_cdc_src.sv", + "${AXI}/src/axi_cut.sv", + "${AXI}/src/axi_delayer.sv", + "${AXI}/src/axi_demux_simple.sv", + "${AXI}/src/axi_dw_downsizer.sv", + "${AXI}/src/axi_dw_upsizer.sv", + "${AXI}/src/axi_fifo.sv", + "${AXI}/src/axi_fifo_delay_dyn.sv", + "${AXI}/src/axi_id_remap.sv", + "${AXI}/src/axi_id_prepend.sv", + "${AXI}/src/axi_inval_filter.sv", + "${AXI}/src/axi_isolate.sv", + "${AXI}/src/axi_join.sv", + "${AXI}/src/axi_lite_demux.sv", + "${AXI}/src/axi_lite_dw_converter.sv", + "${AXI}/src/axi_lite_from_mem.sv", + "${AXI}/src/axi_lite_join.sv", + "${AXI}/src/axi_lite_lfsr.sv", + "${AXI}/src/axi_lite_mailbox.sv", + "${AXI}/src/axi_lite_mux.sv", + "${AXI}/src/axi_lite_regs.sv", + "${AXI}/src/axi_lite_to_apb.sv", + "${AXI}/src/axi_lite_to_axi.sv", + "${AXI}/src/axi_modify_address.sv", + "${AXI}/src/axi_mux.sv", + "${AXI}/src/axi_rw_join.sv", + "${AXI}/src/axi_rw_split.sv", + "${AXI}/src/axi_serializer.sv", + "${AXI}/src/axi_slave_compare.sv", + "${AXI}/src/axi_throttle.sv", + "${AXI}/src/axi_to_detailed_mem.sv", + "${AXI}/src/axi_burst_splitter.sv", + "${AXI}/src/axi_cdc.sv", + "${AXI}/src/axi_demux.sv", + "${AXI}/src/axi_err_slv.sv", + "${AXI}/src/axi_dw_converter.sv", + "${AXI}/src/axi_from_mem.sv", + "${AXI}/src/axi_id_serialize.sv", + "${AXI}/src/axi_lfsr.sv", + "${AXI}/src/axi_multicut.sv", + "${AXI}/src/axi_to_axi_lite.sv", + "${AXI}/src/axi_to_mem.sv", + "${AXI}/src/axi_zero_mem.sv", + "${AXI}/src/axi_interleaved_xbar.sv", + "${AXI}/src/axi_iw_converter.sv", + "${AXI}/src/axi_lite_xbar.sv", + "${AXI}/src/axi_xbar_unmuxed.sv", + "${AXI}/src/axi_to_mem_banked.sv", + "${AXI}/src/axi_to_mem_interleaved.sv", + "${AXI}/src/axi_to_mem_split.sv", + "${AXI}/src/axi_xbar.sv", + "${AXI}/src/axi_xp.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/test/axi_synth_bench.sv" + ], + "stderrBytes": 307, + "astBytes": 15189248, + "nodeKinds": { + "Root": 1, + "CompilationUnit": 1, + "Package": 6, + "Subroutine": 36, + "FormalArgument": 152, + "PredefinedIntegerType": 2079, + "Variable": 401, + "Conversion": 839, + "PackedArrayType": 2719, + "ScalarType": 5839, + "IntegerLiteral": 667, + "List": 74, + "VariableDeclaration": 10, + "Conditional": 200, + "BinaryOp": 824, + "NamedValue": 3407, + "Block": 454, + "ExpressionStatement": 411, + "Call": 173, + "VoidType": 76, + "StringLiteral": 188, + "Assignment": 744, + "UnaryOp": 309, + "Return": 71, + "TypeAlias": 51, + "PackedStructType": 21, + "Field": 101, + "Parameter": 242, + "SimpleAssignmentPattern": 1, + "StructuredAssignmentPattern": 11, + "WhileLoop": 1, + "EnumType": 6, + "EnumValue": 31, + "ImmediateAssertion": 20, + "Case": 4, + "UnbasedUnsizedIntegerLiteral": 162, + "ConditionalOp": 52, + "Instance": 58, + "InstanceBody": 29, + "Port": 717, + "Net": 171, + "NetType": 171, + "TypeParameter": 54, + "MemberAccess": 346, + "GenerateBlockArray": 25, + "Genvar": 25, + "GenerateBlock": 126, + "StatementBlock": 78, + "ProceduralBlock": 126, + "ForLoop": 3, + "ElementSelect": 533, + "StringType": 21, + "EmptyArgument": 138, + "ContinuousAssign": 273, + "ConcurrentAssertion": 47, + "Clocking": 47, + "SignalEvent": 149, + "Binary": 48, + "Simple": 95, + "Concatenation": 18, + "Timed": 51, + "EventList": 51, + "DisableIff": 24, + "RangeSelect": 18, + "Replication": 12, + "defaultDisable": 6, + "DataType": 1, + "WildcardImport": 1, + "Definition": 364, + "Attribute": 33 + }, + "semanticControl": { + "symbol": "NoSlvMst", + "valueOrWidth": 4, + "source": "${AXI}/test/axi_synth_bench.sv", + "line": 406, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 1 + }, + { + "case": "axi4", + "tool": "verilator", + "iteration": 0, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.6, + "wrapperSeconds": 0.615, + "peakRssKiB": 93172, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "synth_axi_lite_xbar", + "--json-only-output", + "${OUTPUT}/axi4-verilator-0/ast.json", + "--json-only-meta-output", + "${OUTPUT}/axi4-verilator-0/meta.json", + "--Mdir", + "${OUTPUT}/axi4-verilator-0/obj", + "-GNoSlvMst=4", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/clk_rst_gen.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/sim_timeout.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/stream_watchdog.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/signal_highlighter.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram_impl.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_clk.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sync.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clock_gating_async.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/cluster_clk_cells.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clk_cells.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/assert_rpt_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_binary_to_gray.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_multiaddr_decode.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_majority_vote_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_cdc_2phase_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_id_queue_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_stream_arbiter_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_ecc_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_synth_bench.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cf_math_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/binary_to_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fifo_v3.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mv_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/multiaddr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/src/axi_pkg.sv", + "${AXI}/src/axi_demux_id_counters.sv", + "${AXI}/src/axi_intf.sv", + "${AXI}/src/axi_atop_filter.sv", + "${AXI}/src/axi_burst_splitter_gran.sv", + "${AXI}/src/axi_burst_unwrap.sv", + "${AXI}/src/axi_bus_compare.sv", + "${AXI}/src/axi_cdc_dst.sv", + "${AXI}/src/axi_cdc_src.sv", + "${AXI}/src/axi_cut.sv", + "${AXI}/src/axi_delayer.sv", + "${AXI}/src/axi_demux_simple.sv", + "${AXI}/src/axi_dw_downsizer.sv", + "${AXI}/src/axi_dw_upsizer.sv", + "${AXI}/src/axi_fifo.sv", + "${AXI}/src/axi_fifo_delay_dyn.sv", + "${AXI}/src/axi_id_remap.sv", + "${AXI}/src/axi_id_prepend.sv", + "${AXI}/src/axi_inval_filter.sv", + "${AXI}/src/axi_isolate.sv", + "${AXI}/src/axi_join.sv", + "${AXI}/src/axi_lite_demux.sv", + "${AXI}/src/axi_lite_dw_converter.sv", + "${AXI}/src/axi_lite_from_mem.sv", + "${AXI}/src/axi_lite_join.sv", + "${AXI}/src/axi_lite_lfsr.sv", + "${AXI}/src/axi_lite_mailbox.sv", + "${AXI}/src/axi_lite_mux.sv", + "${AXI}/src/axi_lite_regs.sv", + "${AXI}/src/axi_lite_to_apb.sv", + "${AXI}/src/axi_lite_to_axi.sv", + "${AXI}/src/axi_modify_address.sv", + "${AXI}/src/axi_mux.sv", + "${AXI}/src/axi_rw_join.sv", + "${AXI}/src/axi_rw_split.sv", + "${AXI}/src/axi_serializer.sv", + "${AXI}/src/axi_slave_compare.sv", + "${AXI}/src/axi_throttle.sv", + "${AXI}/src/axi_to_detailed_mem.sv", + "${AXI}/src/axi_burst_splitter.sv", + "${AXI}/src/axi_cdc.sv", + "${AXI}/src/axi_demux.sv", + "${AXI}/src/axi_err_slv.sv", + "${AXI}/src/axi_dw_converter.sv", + "${AXI}/src/axi_from_mem.sv", + "${AXI}/src/axi_id_serialize.sv", + "${AXI}/src/axi_lfsr.sv", + "${AXI}/src/axi_multicut.sv", + "${AXI}/src/axi_to_axi_lite.sv", + "${AXI}/src/axi_to_mem.sv", + "${AXI}/src/axi_zero_mem.sv", + "${AXI}/src/axi_interleaved_xbar.sv", + "${AXI}/src/axi_iw_converter.sv", + "${AXI}/src/axi_lite_xbar.sv", + "${AXI}/src/axi_xbar_unmuxed.sv", + "${AXI}/src/axi_to_mem_banked.sv", + "${AXI}/src/axi_to_mem_interleaved.sv", + "${AXI}/src/axi_to_mem_split.sv", + "${AXI}/src/axi_xbar.sv", + "${AXI}/src/axi_xp.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/test/axi_synth_bench.sv" + ], + "stderrBytes": 5977, + "astBytes": 1884692, + "nodeKinds": { + "NETLIST": 1, + "MODULE": 34, + "VAR": 801, + "CONST": 1289, + "TYPEDEF": 49, + "CELL": 61, + "PIN": 489, + "VARREF": 2447, + "PACKAGE": 5, + "GENBLOCK": 177, + "SEL": 594, + "ALWAYS": 426, + "ASSIGNW": 315, + "COND": 39, + "EXTEND": 80, + "CONCAT": 25, + "BEGIN": 445, + "ASSIGN": 156, + "IF": 354, + "AND": 221, + "NOT": 285, + "SENTREE": 97, + "SENITEM": 155, + "ASSIGNDLY": 177, + "EQ": 54, + "ADD": 41, + "MUL": 40, + "LOOP": 3, + "LOOPTEST": 3, + "GT": 11, + "GTE": 1, + "OR": 122, + "LT": 4, + "INITIAL": 11, + "CEXPR": 94, + "TEXT": 94, + "FINAL": 1, + "LOGOR": 1, + "ONEHOT0": 3, + "TESTPLUSARGS": 1, + "DISPLAY": 36, + "SFORMATF": 38, + "TIME": 36, + "SCOPENAME": 36, + "STOP": 36, + "ISUNKNOWN": 1, + "SFORMATARG": 2, + "EQCASE": 37, + "SAMPLED": 84, + "LTE": 6, + "REDOR": 8, + "SUB": 6, + "SHIFTL": 2, + "TYPETABLE": 1, + "VOIDDTYPE": 1, + "BASICDTYPE": 147, + "REFDTYPE": 319, + "PACKARRAYDTYPE": 48, + "RANGE": 48, + "STRUCTDTYPE": 21, + "MEMBERDTYPE": 101, + "ENUMDTYPE": 6, + "ENUMITEM": 31, + "PARAMTYPEDTYPE": 61, + "CONSTPOOL": 1, + "SCOPE": 1 + }, + "semanticControl": { + "symbol": "NoSlvMst", + "valueOrWidth": 4, + "source": "${AXI}/test/axi_synth_bench.sv", + "line": 406, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 10 + }, + { + "case": "axi4", + "tool": "verilator", + "iteration": 1, + "exit": 0, + "expectedSuccess": true, + "seconds": 0.64, + "wrapperSeconds": 0.666, + "peakRssKiB": 92844, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "synth_axi_lite_xbar", + "--json-only-output", + "${OUTPUT}/axi4-verilator-1/ast.json", + "--json-only-meta-output", + "${OUTPUT}/axi4-verilator-1/meta.json", + "--Mdir", + "${OUTPUT}/axi4-verilator-1/obj", + "-GNoSlvMst=4", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/clk_rst_gen.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/sim_timeout.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/stream_watchdog.sv", + "${AXI}/.bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/signal_highlighter.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sram_impl.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_clk.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/rtl/tc_sync.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clock_gating_async.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/cluster_clk_cells.sv", + "${AXI}/.bender/git/checkouts/tech_cells_generic-6e6736c6cf5dbb6b/src/deprecated/pulp_clk_cells.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/assert_rpt_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_binary_to_gray.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_shift_register_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_multiaddr_decode.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_majority_vote_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/cc_mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_cdc_2phase_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_id_queue_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_stream_arbiter_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_ecc_synth.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/test/cc_synth_bench.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cf_math_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr_pkg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_intf.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/binary_to_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/boxcar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cb_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_4phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_2phase.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_int_div_static.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/clk_mux_glitch_free.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/credit_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/delta_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ecc_encode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_detect.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_tx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_rx.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator_ack.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/edge_propagator.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/exp_backoff.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fifo_v3.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/gray_to_binary.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/heaviside.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_4phase_handshake.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/isochronous_spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_16bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lfsr_8bit.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lossy_valid_to_stream.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/lzc.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/onehot_to_bin.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/passthrough_stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/plru_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/popcount.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/read.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/ring_buffer.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rr_arb_tree.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen_bypass.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/rstgen.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/serial_deglitch.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/shift_reg_gated.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/spill_register_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sub_per_hash.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/sync_wedge.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/unread.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/fall_through_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/max_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mv_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/trip_counter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_dync.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/addr_decode_napot.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/multiaddr_decode.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_reset_ctrlr.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_demux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_mux.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_throttle.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_2phase_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/cdc_fifo_gray_clearable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/id_queue.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter_flushable.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_delay.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fifo_optimal_wrap.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_filter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_fork_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_join_dynamic.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_register.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_to_mem.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_xbar.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks_detailed.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_arbiter.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/stream_omega_net.sv", + "${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/src/deprecated/mem_to_banks.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/src/axi_pkg.sv", + "${AXI}/src/axi_demux_id_counters.sv", + "${AXI}/src/axi_intf.sv", + "${AXI}/src/axi_atop_filter.sv", + "${AXI}/src/axi_burst_splitter_gran.sv", + "${AXI}/src/axi_burst_unwrap.sv", + "${AXI}/src/axi_bus_compare.sv", + "${AXI}/src/axi_cdc_dst.sv", + "${AXI}/src/axi_cdc_src.sv", + "${AXI}/src/axi_cut.sv", + "${AXI}/src/axi_delayer.sv", + "${AXI}/src/axi_demux_simple.sv", + "${AXI}/src/axi_dw_downsizer.sv", + "${AXI}/src/axi_dw_upsizer.sv", + "${AXI}/src/axi_fifo.sv", + "${AXI}/src/axi_fifo_delay_dyn.sv", + "${AXI}/src/axi_id_remap.sv", + "${AXI}/src/axi_id_prepend.sv", + "${AXI}/src/axi_inval_filter.sv", + "${AXI}/src/axi_isolate.sv", + "${AXI}/src/axi_join.sv", + "${AXI}/src/axi_lite_demux.sv", + "${AXI}/src/axi_lite_dw_converter.sv", + "${AXI}/src/axi_lite_from_mem.sv", + "${AXI}/src/axi_lite_join.sv", + "${AXI}/src/axi_lite_lfsr.sv", + "${AXI}/src/axi_lite_mailbox.sv", + "${AXI}/src/axi_lite_mux.sv", + "${AXI}/src/axi_lite_regs.sv", + "${AXI}/src/axi_lite_to_apb.sv", + "${AXI}/src/axi_lite_to_axi.sv", + "${AXI}/src/axi_modify_address.sv", + "${AXI}/src/axi_mux.sv", + "${AXI}/src/axi_rw_join.sv", + "${AXI}/src/axi_rw_split.sv", + "${AXI}/src/axi_serializer.sv", + "${AXI}/src/axi_slave_compare.sv", + "${AXI}/src/axi_throttle.sv", + "${AXI}/src/axi_to_detailed_mem.sv", + "${AXI}/src/axi_burst_splitter.sv", + "${AXI}/src/axi_cdc.sv", + "${AXI}/src/axi_demux.sv", + "${AXI}/src/axi_err_slv.sv", + "${AXI}/src/axi_dw_converter.sv", + "${AXI}/src/axi_from_mem.sv", + "${AXI}/src/axi_id_serialize.sv", + "${AXI}/src/axi_lfsr.sv", + "${AXI}/src/axi_multicut.sv", + "${AXI}/src/axi_to_axi_lite.sv", + "${AXI}/src/axi_to_mem.sv", + "${AXI}/src/axi_zero_mem.sv", + "${AXI}/src/axi_interleaved_xbar.sv", + "${AXI}/src/axi_iw_converter.sv", + "${AXI}/src/axi_lite_xbar.sv", + "${AXI}/src/axi_xbar_unmuxed.sv", + "${AXI}/src/axi_to_mem_banked.sv", + "${AXI}/src/axi_to_mem_interleaved.sv", + "${AXI}/src/axi_to_mem_split.sv", + "${AXI}/src/axi_xbar.sv", + "${AXI}/src/axi_xp.sv", + "+define+TARGET_SYNTHESIS", + "+define+TARGET_SYNTH_TEST", + "+define+TARGET_VERILATOR", + "+incdir+${AXI}/.bender/git/checkouts/common_cells-3e2fcccecd7aee7b/include", + "+incdir+${AXI}/include", + "${AXI}/test/axi_synth_bench.sv" + ], + "stderrBytes": 5977, + "astBytes": 1884692, + "nodeKinds": { + "NETLIST": 1, + "MODULE": 34, + "VAR": 801, + "CONST": 1289, + "TYPEDEF": 49, + "CELL": 61, + "PIN": 489, + "VARREF": 2447, + "PACKAGE": 5, + "GENBLOCK": 177, + "SEL": 594, + "ALWAYS": 426, + "ASSIGNW": 315, + "COND": 39, + "EXTEND": 80, + "CONCAT": 25, + "BEGIN": 445, + "ASSIGN": 156, + "IF": 354, + "AND": 221, + "NOT": 285, + "SENTREE": 97, + "SENITEM": 155, + "ASSIGNDLY": 177, + "EQ": 54, + "ADD": 41, + "MUL": 40, + "LOOP": 3, + "LOOPTEST": 3, + "GT": 11, + "GTE": 1, + "OR": 122, + "LT": 4, + "INITIAL": 11, + "CEXPR": 94, + "TEXT": 94, + "FINAL": 1, + "LOGOR": 1, + "ONEHOT0": 3, + "TESTPLUSARGS": 1, + "DISPLAY": 36, + "SFORMATF": 38, + "TIME": 36, + "SCOPENAME": 36, + "STOP": 36, + "ISUNKNOWN": 1, + "SFORMATARG": 2, + "EQCASE": 37, + "SAMPLED": 84, + "LTE": 6, + "REDOR": 8, + "SUB": 6, + "SHIFTL": 2, + "TYPETABLE": 1, + "VOIDDTYPE": 1, + "BASICDTYPE": 147, + "REFDTYPE": 319, + "PACKARRAYDTYPE": 48, + "RANGE": 48, + "STRUCTDTYPE": 21, + "MEMBERDTYPE": 101, + "ENUMDTYPE": 6, + "ENUMITEM": 31, + "PARAMTYPEDTYPE": 61, + "CONSTPOOL": 1, + "SCOPE": 1 + }, + "semanticControl": { + "symbol": "NoSlvMst", + "valueOrWidth": 4, + "source": "${AXI}/test/axi_synth_bench.sv", + "line": 406, + "sourceLineVerified": true + }, + "expectedOutcome": true, + "errorLines": 0, + "warningLines": 10 + }, + { + "case": "board-missing-pll", + "tool": "slang", + "iteration": 0, + "exit": 1, + "expectedSuccess": false, + "seconds": 0.08, + "wrapperSeconds": 0.114, + "peakRssKiB": 38008, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "top", + "--ast-json", + "${OUTPUT}/board-missing-pll-slang-0/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/board-missing-pll-slang-0/diagnostics.json", + "${CORPORA}/card-reader/src/crc8.v", + "${CORPORA}/card-reader/src/emmc_cmd.v", + "${CORPORA}/card-reader/src/emmc_controller.v", + "${CORPORA}/card-reader/src/emmc_crc16.v", + "${CORPORA}/card-reader/src/emmc_crc7.v", + "${CORPORA}/card-reader/src/emmc_dat.v", + "${CORPORA}/card-reader/src/emmc_init.v", + "${CORPORA}/card-reader/src/led_status.v", + "${CORPORA}/card-reader/src/pll.v", + "${CORPORA}/card-reader/src/sector_buf.v", + "${CORPORA}/card-reader/src/sector_buf_wr.v", + "${CORPORA}/card-reader/src/top.v", + "${CORPORA}/card-reader/src/uart_bridge.v", + "${CORPORA}/card-reader/src/uart_rx.v", + "${CORPORA}/card-reader/src/uart_tx.v" + ], + "stderrBytes": 1582, + "astBytes": 14214653, + "expectedOutcome": true, + "errorLines": 5, + "warningLines": 0 + }, + { + "case": "board-missing-pll", + "tool": "slang", + "iteration": 1, + "exit": 1, + "expectedSuccess": false, + "seconds": 0.07, + "wrapperSeconds": 0.114, + "peakRssKiB": 37996, + "argv": [ + "${SLANG}", + "--std", + "1800-2023", + "--single-unit", + "--top", + "top", + "--ast-json", + "${OUTPUT}/board-missing-pll-slang-1/ast.json", + "--ast-json-source-info", + "--ast-json-detailed-types", + "--diag-json", + "${OUTPUT}/board-missing-pll-slang-1/diagnostics.json", + "${CORPORA}/card-reader/src/crc8.v", + "${CORPORA}/card-reader/src/emmc_cmd.v", + "${CORPORA}/card-reader/src/emmc_controller.v", + "${CORPORA}/card-reader/src/emmc_crc16.v", + "${CORPORA}/card-reader/src/emmc_crc7.v", + "${CORPORA}/card-reader/src/emmc_dat.v", + "${CORPORA}/card-reader/src/emmc_init.v", + "${CORPORA}/card-reader/src/led_status.v", + "${CORPORA}/card-reader/src/pll.v", + "${CORPORA}/card-reader/src/sector_buf.v", + "${CORPORA}/card-reader/src/sector_buf_wr.v", + "${CORPORA}/card-reader/src/top.v", + "${CORPORA}/card-reader/src/uart_bridge.v", + "${CORPORA}/card-reader/src/uart_rx.v", + "${CORPORA}/card-reader/src/uart_tx.v" + ], + "stderrBytes": 1582, + "astBytes": 14214653, + "expectedOutcome": true, + "errorLines": 5, + "warningLines": 0 + }, + { + "case": "board-missing-pll", + "tool": "verilator", + "iteration": 0, + "exit": 1, + "expectedSuccess": false, + "seconds": 0.08, + "wrapperSeconds": 0.114, + "peakRssKiB": 18832, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "top", + "--json-only-output", + "${OUTPUT}/board-missing-pll-verilator-0/ast.json", + "--json-only-meta-output", + "${OUTPUT}/board-missing-pll-verilator-0/meta.json", + "--Mdir", + "${OUTPUT}/board-missing-pll-verilator-0/obj", + "${CORPORA}/card-reader/src/crc8.v", + "${CORPORA}/card-reader/src/emmc_cmd.v", + "${CORPORA}/card-reader/src/emmc_controller.v", + "${CORPORA}/card-reader/src/emmc_crc16.v", + "${CORPORA}/card-reader/src/emmc_crc7.v", + "${CORPORA}/card-reader/src/emmc_dat.v", + "${CORPORA}/card-reader/src/emmc_init.v", + "${CORPORA}/card-reader/src/led_status.v", + "${CORPORA}/card-reader/src/pll.v", + "${CORPORA}/card-reader/src/sector_buf.v", + "${CORPORA}/card-reader/src/sector_buf_wr.v", + "${CORPORA}/card-reader/src/top.v", + "${CORPORA}/card-reader/src/uart_bridge.v", + "${CORPORA}/card-reader/src/uart_rx.v", + "${CORPORA}/card-reader/src/uart_tx.v" + ], + "stderrBytes": 2223, + "astBytes": 0, + "expectedOutcome": true, + "errorLines": 2, + "warningLines": 2 + }, + { + "case": "board-missing-pll", + "tool": "verilator", + "iteration": 1, + "exit": 1, + "expectedSuccess": false, + "seconds": 0.09, + "wrapperSeconds": 0.114, + "peakRssKiB": 19280, + "argv": [ + "${VERILATOR}", + "--language", + "1800-2023", + "--json-only", + "-Wno-fatal", + "--top-module", + "top", + "--json-only-output", + "${OUTPUT}/board-missing-pll-verilator-1/ast.json", + "--json-only-meta-output", + "${OUTPUT}/board-missing-pll-verilator-1/meta.json", + "--Mdir", + "${OUTPUT}/board-missing-pll-verilator-1/obj", + "${CORPORA}/card-reader/src/crc8.v", + "${CORPORA}/card-reader/src/emmc_cmd.v", + "${CORPORA}/card-reader/src/emmc_controller.v", + "${CORPORA}/card-reader/src/emmc_crc16.v", + "${CORPORA}/card-reader/src/emmc_crc7.v", + "${CORPORA}/card-reader/src/emmc_dat.v", + "${CORPORA}/card-reader/src/emmc_init.v", + "${CORPORA}/card-reader/src/led_status.v", + "${CORPORA}/card-reader/src/pll.v", + "${CORPORA}/card-reader/src/sector_buf.v", + "${CORPORA}/card-reader/src/sector_buf_wr.v", + "${CORPORA}/card-reader/src/top.v", + "${CORPORA}/card-reader/src/uart_bridge.v", + "${CORPORA}/card-reader/src/uart_rx.v", + "${CORPORA}/card-reader/src/uart_tx.v" + ], + "stderrBytes": 2223, + "astBytes": 0, + "expectedOutcome": true, + "errorLines": 2, + "warningLines": 2 + } + ], + "inputsUnchanged": true, + "inputSnapshotSha256": "22bb25e326bb7a1779925a2983168431ea0b47a627034aa351f95b594849e77c", + "measurement": "Linux GNU time peak RSS; sequential export runs, not cold-cache benchmark; repetitions not independent machines", + "profile": "Explicit arguments identical per case; tools retain their own implicit predefines and language semantics", + "allExpectedOutcomes": true +} diff --git a/docs/hdl-frontend-decision.md b/docs/hdl-frontend-decision.md new file mode 100644 index 000000000..40ce4dcba --- /dev/null +++ b/docs/hdl-frontend-decision.md @@ -0,0 +1,154 @@ +# Выбор HDL frontend: slang для первого semantic adapter + +Дата: 2026-09-12. Пакет A3–A6 трекера. База CodeGraph: `ced3a063`, extraction +stamp 38. Это решение о следующей реализации; compiler semantics ещё не +подключена к production graph. + +## Решение + +Первый адаптер строить поверх **slang**, как необязательного отдельного процесса. +Начальная вертикаль: один profile/top, evaluated parameters и тип/ширина порта +со ссылкой на исходное объявление. Verilator сохранить как независимый compiler +control. Второй production adapter пока не писать. + +Основание — реальные UART, eMMC CRC и восстановленный AXI, одинаковые явные +source lists/defines/top/parameter overrides для сравниваемых инструментов. +Slang экспортирует Parameter.value, структурированные types и elaborated Instance/ +GenerateBlockArray; из них проверяемо восстанавливаются instance paths. На этих +локальных controls slang использовал меньше CPU wall time и peak RSS, но его +подробный JSON больше. Это аргумент для ограниченного прототипа, не обещание +скорости/охвата на любом проекте. + +[Проверка официальных версий, лицензий и платформ](hdl-frontend-source-review.md) +содержит первичные ссылки. Измерены установленные slang `11.0.448+e222e7dc0` и +Verilator `5.051 devel v5.050-260-g1c9a9e0cc (mod)` из OSS CAD Suite 20260825. +Они не равны опубликованным releases; в частности, актуальный Verilator 5.052 +в этом benchmark не запускался. Перед поддержкой release artifact повторить +contract tests на его точной версии. + +Surelog/UHDM изучен по официальной модели/API: потребует отдельной установки, +согласованных writer/reader versions и адаптации elaborated topModules/VPI. +В проверенной среде binary отсутствует, runtime сравнение не проводилось. +Первый адаптер не требует его для подтверждённых задач. Yosys отдельно не +измерялся: текущая цель — source semantics SystemVerilog, синтез будет другой задачей. + +## Метод и результаты + +Скрипт `scripts/hdl-frontend-compare.py`: шесть controls × два frontend × два +последовательных запуска = **24**. GNU time измеряет время процесса и peak RSS; +таблица показывает медиану времени и максимальный RSS двух запусков. Это +локальный warm-cache smoke benchmark, без очистки filesystem cache, не статистический +вывод для всех проектов. Время имеет точность GNU time 0.01 с. AST sizes — полные +JSON dumps с разными schema/настройками, не нормализованные semantic payloads. + +| Контроль | slang exit / время / RSS | Verilator exit / время / RSS | +| --- | --- | --- | +| UART top, strict | 1 / 0.02 с / 14 300 KiB | 0 / 0.07 с / 15 596 KiB | +| UART top, explicit compatible | 0 / 0.02 с / 14 300 KiB | 0 / 0.075 с / 15 504 KiB | +| eMMC CRC16 | 0 / 0.01 с / 10 888 KiB | 0 / 0.07 с / 14 508 KiB | +| AXI xbar, NoSlvMst=2 | 0 / 0.145 с / 58 716 KiB | 0 / 0.60 с / 91 748 KiB | +| AXI xbar, NoSlvMst=4 | 0 / 0.16 с / 67 664 KiB | 0 / 0.62 с / 93 172 KiB | +| Card-reader board, missing rPLL | 1 / 0.075 с / 38 008 KiB | 1 / 0.085 с / 19 280 KiB | + +UART strict: slang сообщает 9 use-before-declaration errors. В отдельном +compatible control только slang получает явно записанный `--allow-use-before-declare`; +RTL не исправляется и strict failure не скрывается. Это отличается от автоматического +ослабления всех проверок. Board control намеренно неполон: нет vendor primitive rPLL; +оба frontend отвергают его. Slang дополнительно сообщает другие исходные ошибки. + +На AXI оба получают один filelist Bender из A2, включая TARGET_SYNTHESIS, +TARGET_SYNTH_TEST, TARGET_VERILATOR. Их встроенные predefines остаются различными. +Дополнительный probe slang с VERILATOR=1 меняет macro branch и предупреждения; +в основной таблице это послабление не добавлялось. Нельзя считать одинаковые +явные arguments доказательством одинакового compiler environment. + +Все expected outcomes совпали. На AXI slang оставляет 1 warning, Verilator 10; +UART compatible Verilator оставляет 7. Использован Verilator `-Wno-fatal`. +Это JSON export/elaboration controls; результаты не означают simulation, synthesis, +отсутствие RTL warnings или работоспособность FPGA. + +## Проверенные данные для адаптера + +- У обоих tools автоматические assertions подтвердили UART CLK_FREQ=50000000, + наличие u_rx1/u_rx2, CRC crc_out `[15:0]`, AXI NoSlvMst=2/4. Source locations + сверены с реальной строкой объявления, а не только наличием поля в JSON. +- Slang probe восстановил 7 UART instances, including top, параметры обоих + UART receivers и CLKS_PER_BIT=54. Для AXI — 92/182 reachable instances и + generate indices 0..1 / 0..3. Instance body может быть ссылкой на ранее + сериализованный addr; нужна общая таблица объектов, а не только рекурсивный + обход inline body. +- GenerateBlockArray содержит и genvar, и анонимные blocks. Нужно учитывать + implicit iteration parameter и исключать isUninstantiated blocks. +- Slang JSON source info даёт declaration coordinates и ranges выражений; + в проверенном statement control конец диапазона exclusive, coordinates 1-based. + Это не доказательство полного macro expansion source map. Byte/UTF16 conversion + и цепочки macro/include provenance требуют отдельных contract fixtures в B2. + Реальные macro-generated AXI typedefs указывают invocation line 415–421, но + column=0: это unknown column, не первая колонка. JSON не дал точную expansion/ + spelling chain; для B2 оценить небольшой exporter через slang SourceManager, + если CLI metadata недостаточно. До этого не заявлять полный source mapping. +- Verilator JSON требует `.meta.json` для расшифровки loc file IDs, dtypep/modp + references — отдельной адресной таблицы. Адреса обоих AST не являются stable IDs. +- Slang создаёт JSON даже при exit 1: failed/partial artifact не публиковать как + актуальный semantic graph. В benchmark поля такого AST не считаются успешными. +- AXI2 detailed slang AST ≈12.5 MB, Verilator ≈1.6 MB; AXI4 ≈15.2/1.9 MB. + Подробный dump нельзя без ограничений включать в MCP-ответ или source Git. + +## Контракт следующего адаптера + +1. Вход: canonical project root, source snapshot hashes, явный ordered filelist, + includeDirs, defines, dialect, top и overrides. Default строгий; compatibility + flags только явно и входят в fingerprint. Не исполнять произвольные флаги из + чужого build script и не менять конфигурацию при compiler errors. +2. Запуск: отдельный process, разрешённый executable/version, timeout/cancel, + пределы stdout/JSON/RSS. При отсутствии tool остаётся source graph. Никаких + обязательных native/npm dependencies и автоматического скачивания frontend. +3. Импорт: validate schema/version, exit status и diagnostics; разрешить object + references, сохранить declaration и instance identity отдельно. Store только + необходимые нормализованные facts, raw dump — вне Git/индекса. +4. Координаты: source bytes и revision должны совпасть с snapshot. Проверить + CRLF/Unicode, macro definitions/invocations и generated ranges; unresolved + mapping показывать явно. Не назначать строку expansion другому source file. +5. Provenance: exact executable version/hash, semantic schema version, profile, + implicit/explicit compiler flags, sources/dependency digest и top/overrides. + Unsupported tool/schema → понятный отказ semantic layer, source API работает. +6. Публикация: новый semantic context становится видимым целиком после успешного + импорта. Failure/cancel сохраняет source graph; старый semantic context stale. +7. Приёмка минимальной вертикали: params/width query на UART/CRC/AXI, два instances + с разными values, profile/parameter/include change и sync/clean parity, + missing frontend и invalid compiler output controls. + +## Воспроизведение + +Сначала A1 manifest check и A2 restoration из +`validation-hdl-corpora-build-2026-09-12.md`. Использовать новый пустой output: + +```sh +python3 scripts/hdl-frontend-compare.py \ + --corpus-root /absolute/path/to/corpora \ + --axi /absolute/path/to/axi-isolated \ + --filelist /absolute/path/to/axi-isolated/build/controls/verilator.f \ + --slang /absolute/path/to/slang \ + --verilator /absolute/path/to/verilator \ + --output /absolute/path/to/new-empty-output --runs 2 +``` + +Runner проверяет pinned revisions, A2 filelist hash, tracked inputs и отсутствие +untracked/include shadow files. Перед/после snapshot должен совпасть. Output +каталог должен быть пуст, чтобы не принять старый JSON. При timeout/interrupt +убивается собственная process group. Raw AST/logs сохраняются в output; +машиночитаемый итог этой проверки — `hdl-frontend-comparison.json`, дополнительный +semantic probe — `hdl-slang-semantic-probe.json`. + +Проверка выполнена на Linux; Windows/macOS availability изучена по официальным +источникам, реальные запуски этих ОС не выполнялись. GNU time runner — Linux +validation helper, не production cross-platform subprocess layer. + +Следующее действие: B1/B2 + C1/C2 минимальная вертикаль slang. Полный preprocessing, +source mapping macros, API integration и автоматическая semantic invalidation +этим сравнением не объявлены реализованными. + +Независимое review выявило и помогло исправить cleanup при прерывании и +untracked include shadowing. Повторные controls подтвердили завершение child +process и отклонение untracked/symlink headers. Engine не изменялся; полные +native/WASM suites не повторялись. Python syntax/JSON/diff проверены. diff --git a/docs/hdl-frontend-source-review.md b/docs/hdl-frontend-source-review.md new file mode 100644 index 000000000..2906d6d7d --- /dev/null +++ b/docs/hdl-frontend-source-review.md @@ -0,0 +1,124 @@ +# HDL frontend: проверка первичных источников + +Дата проверки: **2026-09-12**. Это входные данные для A3/A5, а не выбор победителя: +качество и стоимость на наших проектах определяет отдельный benchmark. + +## Версии и платформы + +| Frontend | Официальный релиз на дату проверки | Локальное наблюдение Linux | +| --- | --- | --- | +| slang | [v11.0, 2026-05-15](https://github.com/MikePopoloski/slang/releases/tag/v11.0) | `slang version 11.0.448+e222e7dc0`: development build, не чистый release artifact v11.0 | +| Verilator | [v5.052, 2026-09-05](https://verilator.org/guide/latest/changes.html#verilator-5-052-2026-09-05) | `Verilator 5.051 devel rev v5.050-260-g1c9a9e0cc (mod)`: другая, более ранняя development/vendor build | +| Surelog + UHDM | [Surelog v1.87](https://github.com/chipsalliance/Surelog/releases/tag/v1.87) и [UHDM v1.87](https://github.com/chipsalliance/UHDM/releases/tag/v1.87), оба опубликованы 2026-08-24 | Исполняемые `surelog`/`uhdm-dump` не найдены в PATH и проверенном OSS CAD Suite; runtime не проверен | + +Версии и help двух установленных инструментов повторно прочитаны из +`/home/danik/storage/toolchains/oss-cad-suite-20260825/bin/`. +Локальный help подтверждает slang `--ast-json`, `--ast-json-source-info`, `--cst-json` +и Verilator `--json-only` с отдельным meta-output. Эта проверка **не** подтверждает +совместимость всего API или результаты elaboration. Новые сборки, установки, +Windows/macOS и симуляция в рамках этого обзора не запускались. + +Официальный релиз slang v11.0 содержит ровно три бинарных assets: +`slang-linux-x86_64.tar.gz`, `slang-macos-arm64.tar.gz`, +`slang-windows-x86_64.zip`. Linux ARM64/macOS x86_64 в этом перечне отсутствуют. +[Release assets](https://github.com/MikePopoloski/slang/releases/tag/v11.0). +Текущие build docs описывают GCC/Clang/Xcode/MSVC и C++20; это документация текущего +дерева, её требования нельзя автоматически переносить на установленный snapshot. +[Сборка slang](https://sv-lang.com/building.html). + +Verilator документирует основной Linux workflow и дополнительные платформы +macOS/Windows MSVC; FAQ отдельно рекомендует WSL2 и слабее обещает проверку других +Windows-вариантов. Это поддержка проекта, а не проверенный нами Windows package. +[Installation](https://verilator.org/guide/latest/install.html#os-requirements), +[Windows FAQ](https://verilator.org/guide/latest/faq.html#does-verilator-run-under-windows). +Surelog/UHDM заявляют Linux, Windows MSYS2/MSVC и macOS; в проверенных releases v1.87 +нет загруженных авторами бинарных assets, только стандартные source archives. +[Surelog](https://github.com/chipsalliance/Surelog), +[UHDM](https://github.com/chipsalliance/UHDM). + +## Контракт данных и координаты + +**slang.** CLI предлагает compiled AST JSON, выбор scope, source-info, detailed types +и CST JSON с токенами/trivia. Source-info обещает файл и строку; это не обещание +полной macro-provenance в каждом JSON node. +[CLI JSON output](https://sv-lang.com/command-line-ref.html#json-output). +Библиотечный `SourceManager` хранит отдельные source/macro buffers, origin и место +раскрытия; `SourceLocation` содержит BufferID и **byte offset**. SourceManager должен +жить дольше объектов, использующих его память. Для CodeGraph потребуется проверенная +конвертация byte→UTF-16 и явное различение spelling/expansion locations. +[Source Management](https://sv-lang.com/sourcemanagement.html). + +Стабильная межверсионная JSON schema/ABI в просмотренной документации slang не +обещана. У v11.0 есть перечисленные breaking changes C++/Python API, включая +ASTVisitor и организацию pyslang imports. Вывод для адаптера: зафиксировать +бинарную версию/хеш и golden fixtures; не объявлять любой `11.x` совместимым без +проверки. [Release notes v11.0](https://github.com/MikePopoloski/slang/releases/tag/v11.0). + +**Verilator.** Официально предназначенный для downstream инструментов `--json-only` +отключает часть агрессивных преобразований, но отдаёт конечную стадию AST; это не +обещание неизменённого CST. Документация прямо предупреждает, что JSON формат +эволюционирует. [CLI contract](https://verilator.org/guide/latest/exe_verilator.html#cmdoption-json-only). +Нужно читать **оба** файла: `.tree.json` и `.tree.meta.json`; `loc` кодирует file-id, +начальную/конечную строку и колонку с исключённой правой границей. Meta разрешает +file-id в filename/realpath и содержит pointer metadata. Отсутствующий boolean +не следует путать с отсутствующим обязательным объектом: false-поля не печатаются. +Поля узлов описаны исходниками `V3AstNodes.cpp`, а не независимой неизменяемой schema. +[Официальный internals.rst](https://github.com/verilator/verilator/blob/master/docs/internals.rst#treejson-output). + +**Surelog/UHDM.** Основной interchange — сериализованный `surelog.uhdm` и VPI/C++ API; +`uhdm-dump` — человекочитаемый dump, не документированный стабильный JSON protocol. +Нельзя просмотреть только `allModules` и заявить полную схему: folded model разделяет +definitions и elaborated `topModules`; generate logic и окончательные типы находятся +в elaborated view. Есть дополнительная full elaboration/uniquification. +[Модель и навигация UHDM](https://github.com/chipsalliance/UHDM#model-concepts). +Surelog Python AST API не является post-elaboration API; для последнего используется +UHDM/VPI, включая отдельные UHDM Python bindings. +[Surelog API](https://github.com/chipsalliance/Surelog#python-api). + +UHDM `BaseClass` имеет file/start/end line и column поля; columns в просмотренном +шаблоне — `uint16_t`. Гарантию всех macro expansion цепочек из этих полей вывести +нельзя; длинные строки и generated/include provenance требуют отдельных fixtures. +[BaseClass](https://github.com/chipsalliance/UHDM/blob/master/templates/BaseClass.h). +Surelog v1.87 явно согласует номер UHDM и pkg-config dependency; совместимость +произвольных writer/reader snapshots этим не гарантируется. Адаптер должен +фиксировать **пару** Surelog/UHDM и проверять restore на своих fixtures. +[Связанные версии](https://github.com/chipsalliance/Surelog/releases/tag/v1.87). + +## Лицензии и упаковка + +| Компонент | Документированная лицензия | Практическое ограничение redistribution | +| --- | --- | --- | +| slang | [MIT](https://github.com/MikePopoloski/slang/blob/v11.0/LICENSE) | Сохранять copyright и текст разрешения; MIT самого проекта не заменяет notices всех включённых зависимостей. | +| Verilator | [LGPL-3.0-only OR Artistic-2.0](https://github.com/verilator/verilator/blob/v5.052/README.rst#open-license) | Выбрать и выполнить условия одной лицензии; нельзя перелицензировать сам frontend в MIT. Для распространяемых модификаций upstream FAQ требует открытый исходный код. [FAQ](https://verilator.org/guide/latest/faq.html#will-verilator-output-remain-under-my-own-license-copyright). | +| Surelog и UHDM | [Surelog Apache-2.0](https://github.com/chipsalliance/Surelog/blob/master/LICENSE), [UHDM Apache-2.0](https://github.com/chipsalliance/UHDM/blob/master/LICENSE) | Передавать LICENSE, сохранять применимые notices, отмечать изменённые файлы и передавать NOTICE, если он есть в распространяемой работе; условия третьих сторон проверяются отдельно. | + +У Verilator верхний `LICENSE` содержит LGPL; альтернативная Artistic-лицензия +подтверждается README/SPDX и отдельным +[LICENSES/Artistic-2.0.txt](https://github.com/verilator/verilator/blob/v5.052/LICENSES/Artistic-2.0.txt). +Локальная пометка `(mod)` не раскрывает перечень vendor patches. Обзор не является +аудитом полного redistribution комплекта OSS CAD Suite; текущий suite целиком +не выбран для включения в CodeGraph. + +## Ограничения будущего адаптера + +Это инженерные выводы из проверенных контрактов, не обещания готовой интеграции: + +- Нормализовать в собственный versioned graph contract, сохраняя frontend version, + hash/profile, diagnostics и evidence level; не хранить compiler memory addresses + как устойчивые CodeGraph IDs. +- Проверять каждый frontend на одинаковом профиле: порядок источников, compilation + units, defines, includes, tops, language mode и неизвестные модули. У slang по + умолчанию отдельные compilation units; `--single-unit` меняет семантику. + [Compilation flags](https://sv-lang.com/command-line-ref.html). +- Передавать сформированный разрешённый argv, а не произвольный исходный command + file. Например, Surelog документирует `-exe` и Python evaluation/listener hooks; + это исполняемые действия. Для ограниченного runner учитывать `-nopython` и запрет + таких опций. [Surelog CLI](https://github.com/chipsalliance/Surelog#surelog-commands). +- Отдельно измерить wall time, peak RSS, объём AST, startup, source-location fidelity, + точность hierarchy/port bindings и deterministic повтор. В этом документе нет + сравнительных измерений и нет решения, какой frontend станет основным. + +Сохранённые локальные справочные результаты: `.scratch/hdl-frontend-sources/` +(release REST readbacks и local versions), `.scratch/hdl-source-slang-help.txt`, +`.scratch/hdl-source-verilator-help.txt`. Проверенные ссылки выше — первичные +репозитории и документация авторов; страницы `/latest`/`master` могут измениться. diff --git a/docs/hdl-slang-semantic-probe.json b/docs/hdl-slang-semantic-probe.json new file mode 100644 index 000000000..06be6cc13 --- /dev/null +++ b/docs/hdl-slang-semantic-probe.json @@ -0,0 +1,473 @@ +{ + "schemaVersion": 1, + "toolVersion": "slang version 11.0.448+e222e7dc0", + "standard": "1800-2023", + "sourceInventory": "docs/hdl-corpus-manifest.json", + "all137ManifestSourceHashesStillMatch": true, + "cases": [ + { + "name": "uart", + "exit": 1, + "argv": [ + "${SLANG}", + "--single-unit", + "--std", + "1800-2023", + "--top", + "top", + "--ast-json", + "${OUTPUT}/uart.json", + "--ast-json-source-info", + "--diag-json", + "${OUTPUT}/uart.diagnostics.json", + "src/fifo.v", + "src/top.v", + "src/uart_arbiter.v", + "src/uart_rx.v", + "src/uart_rx_autobaud.v", + "src/uart_tx.v" + ], + "cwd": "${CORPUS}/dual-uart", + "astBytes": 1089429, + "diagnosticsBySeverity": { + "error": 9, + "note": 9 + }, + "diagnosticExamples": [ + { + "severity": "error", + "message": "identifier 'rx1_dv' used before its declaration", + "location": "src/top.v:68:17", + "symbolPath": "top" + }, + { + "severity": "note", + "message": "declared here", + "location": "src/top.v:142:16" + }, + { + "severity": "error", + "message": "identifier 'rx2_dv' used before its declaration", + "location": "src/top.v:77:17", + "symbolPath": "top" + } + ] + }, + { + "name": "board", + "exit": 1, + "argv": [ + "${SLANG}", + "--single-unit", + "--std", + "1800-2023", + "--top", + "top", + "--ast-json", + "${OUTPUT}/board.json", + "--ast-json-source-info", + "--diag-json", + "${OUTPUT}/board.diagnostics.json", + "src/crc8.v", + "src/emmc_cmd.v", + "src/emmc_controller.v", + "src/emmc_crc16.v", + "src/emmc_crc7.v", + "src/emmc_dat.v", + "src/emmc_init.v", + "src/led_status.v", + "src/pll.v", + "src/sector_buf.v", + "src/sector_buf_wr.v", + "src/top.v", + "src/uart_bridge.v", + "src/uart_rx.v", + "src/uart_tx.v" + ], + "cwd": "${CORPUS}/card-reader", + "astBytes": 8437037, + "diagnosticsBySeverity": { + "error": 5, + "note": 4 + }, + "diagnosticExamples": [ + { + "severity": "error", + "message": "identifier 'state' used before its declaration", + "location": "src/emmc_cmd.v:49:24", + "symbolPath": "top.u_emmc.u_cmd" + }, + { + "severity": "note", + "message": "declared here", + "location": "src/emmc_cmd.v:51:17" + }, + { + "severity": "error", + "message": "identifier 'wr_done_timeout' used before its declaration", + "location": "src/emmc_controller.v:466:36", + "symbolPath": "top.u_emmc" + } + ] + }, + { + "name": "crc-std", + "exit": 0, + "argv": [ + "${SLANG}", + "--single-unit", + "--std", + "1800-2023", + "--top", + "emmc_crc16", + "--ast-json", + "${OUTPUT}/crc-std.json", + "--ast-json-source-info", + "--diag-json", + "${OUTPUT}/crc-std.diagnostics.json", + "src/emmc_crc16.v" + ], + "cwd": "${CORPUS}/card-reader", + "astBytes": 107639, + "diagnosticsBySeverity": {}, + "diagnosticExamples": [] + }, + { + "name": "axi-2-exact", + "exit": 0, + "argv": [ + "${SLANG}", + "--single-unit", + "--std", + "1800-2023", + "--top", + "synth_axi_lite_xbar", + "--ast-json", + "${OUTPUT}/axi-2-exact.json", + "--ast-json-source-info", + "--diag-json", + "${OUTPUT}/axi-2-exact.diagnostics.json", + "-f", + "${AXI}/build/final-controls/verilator.f", + "-GNoSlvMst=2" + ], + "cwd": "${AXI}", + "astBytes": 9382003, + "diagnosticsBySeverity": { + "warning": 1 + }, + "diagnosticExamples": [ + { + "severity": "warning", + "message": "finish argument must have value of 0, 1, or 2", + "optionName": "finish-num", + "location": ".bender/git/checkouts/common_verification-5b9bacfe2f79eb87/src/sim_timeout.sv:24:21", + "symbolPath": ".validate_params" + } + ] + }, + { + "name": "axi-2", + "exit": 0, + "argv": [ + "${SLANG}", + "--single-unit", + "--std", + "1800-2023", + "--top", + "synth_axi_lite_xbar", + "--ast-json", + "${OUTPUT}/axi-2.json", + "--ast-json-source-info", + "--diag-json", + "${OUTPUT}/axi-2.diagnostics.json", + "-f", + "${AXI}/build/final-controls/verilator.f", + "-GNoSlvMst=2", + "-DVERILATOR=1" + ], + "cwd": "${AXI}", + "astBytes": 9030294, + "diagnosticsBySeverity": {}, + "diagnosticExamples": [] + }, + { + "name": "axi-4", + "exit": 0, + "argv": [ + "${SLANG}", + "--single-unit", + "--std", + "1800-2023", + "--top", + "synth_axi_lite_xbar", + "--ast-json", + "${OUTPUT}/axi-4.json", + "--ast-json-source-info", + "--diag-json", + "${OUTPUT}/axi-4.diagnostics.json", + "-f", + "${AXI}/build/final-controls/verilator.f", + "-GNoSlvMst=4", + "-DVERILATOR=1" + ], + "cwd": "${AXI}", + "astBytes": 10796211, + "diagnosticsBySeverity": {}, + "diagnosticExamples": [] + }, + { + "name": "uart-compat", + "exit": 0, + "argv": [ + "${SLANG}", + "--single-unit", + "--std", + "1800-2023", + "--top", + "top", + "--ast-json", + "${OUTPUT}/uart-compat.json", + "--ast-json-source-info", + "--diag-json", + "${OUTPUT}/uart-compat.diagnostics.json", + "src/fifo.v", + "src/top.v", + "src/uart_arbiter.v", + "src/uart_rx.v", + "src/uart_rx_autobaud.v", + "src/uart_tx.v", + "--allow-use-before-declare" + ], + "cwd": "${CORPUS}/dual-uart", + "astBytes": 1075539, + "diagnosticsBySeverity": {}, + "diagnosticExamples": [] + }, + { + "name": "board-compat", + "exit": 1, + "argv": [ + "${SLANG}", + "--single-unit", + "--std", + "1800-2023", + "--top", + "top", + "--ast-json", + "${OUTPUT}/board-compat.json", + "--ast-json-source-info", + "--diag-json", + "${OUTPUT}/board-compat.diagnostics.json", + "src/crc8.v", + "src/emmc_cmd.v", + "src/emmc_controller.v", + "src/emmc_crc16.v", + "src/emmc_crc7.v", + "src/emmc_dat.v", + "src/emmc_init.v", + "src/led_status.v", + "src/pll.v", + "src/sector_buf.v", + "src/sector_buf_wr.v", + "src/top.v", + "src/uart_bridge.v", + "src/uart_rx.v", + "src/uart_tx.v", + "--allow-use-before-declare" + ], + "cwd": "${CORPUS}/card-reader", + "astBytes": 8402802, + "diagnosticsBySeverity": { + "error": 1 + }, + "diagnosticExamples": [ + { + "severity": "error", + "message": "unknown module 'rPLL'", + "location": "src/pll.v:13:5", + "symbolPath": "top.u_pll" + } + ] + } + ], + "examples": { + "crc-std": { + "reachableInstancesIncludingTop": 1, + "parametersAtRoot": [], + "missingBodyReferences": [], + "crcOut": { + "name": "crc_out", + "type": "logic[15:0]", + "direction": "Out" + } + }, + "uart-compat": { + "reachableInstancesIncludingTop": 7, + "parametersAtRoot": [ + { + "path": "top.CLK_FREQ", + "value": "50000000", + "type": "logic signed[31:0]", + "source": { + "source_file": "src/top.v", + "source_line": 35, + "source_column": 16 + } + }, + { + "path": "top.BAUD_RATE", + "value": "921600", + "type": "logic signed[31:0]", + "source": { + "source_file": "src/top.v", + "source_line": 36, + "source_column": 16 + } + }, + { + "path": "top.BLINK_DURATION", + "value": "24'd5000000", + "type": "logic[23:0]", + "source": { + "source_file": "src/top.v", + "source_line": 62, + "source_column": 16 + } + } + ], + "missingBodyReferences": [], + "rxParameters": [ + { + "path": "top.u_rx1.CLK_FREQ", + "value": "50000000", + "type": "logic signed[31:0]", + "source": { + "source_file": "src/uart_rx.v", + "source_line": 11, + "source_column": 15 + } + }, + { + "path": "top.u_rx1.CLKS_PER_BIT", + "value": "54", + "type": "logic signed[31:0]", + "source": { + "source_file": "src/uart_rx.v", + "source_line": 22, + "source_column": 16 + } + }, + { + "path": "top.u_rx2.CLK_FREQ", + "value": "50000000", + "type": "logic signed[31:0]", + "source": { + "source_file": "src/uart_rx.v", + "source_line": 11, + "source_column": 15 + } + } + ] + }, + "axi-2": { + "reachableInstancesIncludingTop": 92, + "parametersAtRoot": [ + { + "path": "synth_axi_lite_xbar.NoSlvMst", + "value": "32'd2", + "type": "int unsigned", + "source": { + "source_file": "test/axi_synth_bench.sv", + "source_line": 406, + "source_column": 26 + } + }, + { + "path": "synth_axi_lite_xbar.XbarCfg", + "value": "332'h2000000020000000500000005ffe000000000000000000000000000000200000002000000002", + "type": "axi_pkg::xbar_cfg_t", + "source": { + "source_file": "test/axi_synth_bench.sv", + "source_line": 422, + "source_column": 34 + } + } + ], + "missingBodyReferences": [], + "slaveGenerateIndices": { + "path": "synth_axi_lite_xbar.i_xbar_dut.gen_slv_port_demux", + "loopVariable": "i", + "indices": [ + "0", + "1" + ] + } + }, + "axi-4": { + "reachableInstancesIncludingTop": 182, + "parametersAtRoot": [ + { + "path": "synth_axi_lite_xbar.NoSlvMst", + "value": "32'd4", + "type": "int unsigned", + "source": { + "source_file": "test/axi_synth_bench.sv", + "source_line": 406, + "source_column": 26 + } + }, + { + "path": "synth_axi_lite_xbar.XbarCfg", + "value": "332'h4000000040000000500000005ffe000000000000000000000000000000200000002000000004", + "type": "axi_pkg::xbar_cfg_t", + "source": { + "source_file": "test/axi_synth_bench.sv", + "source_line": 422, + "source_column": 34 + } + } + ], + "missingBodyReferences": [], + "slaveGenerateIndices": { + "path": "synth_axi_lite_xbar.i_xbar_dut.gen_slv_port_demux", + "loopVariable": "i", + "indices": [ + "0", + "1", + "2", + "3" + ] + } + } + }, + "astSchema": { + "rootInstances": "design.members entries with kind=Instance", + "instanceBody": "Instance.body is an object OR decimal-addr-prefixed reference string; resolve with global addr catalog", + "parameter": "InstanceBody.members Parameter: value (SV constant string), type, isLocal/isPort/isBody, source_file/source_line/source_column", + "types": "Default type is printable string, sometimes addr-prefixed reference. --ast-json-detailed-types emits PackedArrayType.range and elementType, isSigned, aliases and members. Strip addr from portable results.", + "source": "Ordinary symbols have source_file/source_line/source_column (declaration-name location); statements/expressions have source_*_start and source_*_end ranges. Ordinary positive columns are 1-based; tested literal range end is exclusive. Macro-expanded symbols can have column 0 at invocation line, not an exact token location.", + "generate": "GenerateBlockArray.members include Genvar and GenerateBlock. Each block has implicit local Parameter value for iteration index; skip isUninstantiated. Derive path array[index] then descend body members; follow shared InstanceBody references for each instance path." + }, + "limitations": [ + "Elaborated AST/type/constant probes only: no simulation, synthesis or timing validation.", + "AST JSON is emitted even on failed compilations; gate acceptance on compiler exit/diagnostics.", + "Strict Slang rejects UART use-before-declaration; success requires explicitly recorded --allow-use-before-declare compatibility option.", + "Board top still fails on missing rPLL even with declaration-order compatibility; no vendor-primitive substitution was introduced.", + "Generated TARGET_VERILATOR does not equal compiler builtin VERILATOR. Explicit -DVERILATOR=1 matches relevant Verilator guarded branches; exact-filelist and explicit-macro outcomes kept separately.", + "addr values and addr-prefixed strings are process-dependent and must not enter portable identity hashes.", + "Macro-origin AST locations can be coarse (column 0 at invocation); JSON alone did not provide a complete macro expansion/spelling source map." + ], + "macroSourceMapping": { + "example": { + "symbol": "synth_axi_lite_xbar.aw_chan_t", + "kind": "TypeAlias", + "source_file": "test/axi_synth_bench.sv", + "source_line": 415, + "source_column": 0, + "rawSource": " `AXI_LITE_TYPEDEF_AW_CHAN_T(aw_chan_t, addr_t)" + }, + "observation": "Macro-generated type symbols identify the invocation file/line but use column 0. This is not an exact original token position. No spelling/expansion stack was present in the probed AST JSON.", + "requiredBoundary": "Treat column 0 as unavailable/coarse macro origin; do not turn it into a valid 1-based column or claim exact declaration source ranges." + } +} diff --git a/scripts/hdl-frontend-compare.py b/scripts/hdl-frontend-compare.py new file mode 100644 index 000000000..919872d89 --- /dev/null +++ b/scripts/hdl-frontend-compare.py @@ -0,0 +1,233 @@ +#!/usr/bin/env python3 +"""Сравнить JSON export slang/Verilator на pinned HDL controls (Linux GNU time).""" +import argparse +import hashlib +import json +import os +from pathlib import Path +import re +import signal +import subprocess +import sys +import time + + +def walk(value): + if isinstance(value, dict): + yield value + for item in value.values(): + yield from walk(item) + elif isinstance(value, list): + for item in value: + yield from walk(item) + + + +def verify_semantic_control(tool, name, nodes, meta, cwd): + """Узкие assertions по реальному исходнику; не универсальный AST adapter.""" + by_addr = {str(n['addr']): n for n in nodes if 'addr' in n} + if name.startswith('axi'): + symbol, expected = 'NoSlvMst', int(name[-1]) + elif name == 'crc16': + symbol, expected = 'crc_out', 16 + else: + symbol, expected = 'CLK_FREQ', 50000000 + if tool == 'slang': + candidates = [n for n in nodes if n.get('name') == symbol and n.get('kind') in ('Port', 'Parameter')] + if symbol == 'CLK_FREQ': + candidates = [n for n in candidates if n.get('source_file', '').endswith('/top.v')] + node = candidates[0] + if symbol == 'crc_out': + assert node['type']['range'] == '[15:0]' + value = 16 + else: + raw = node['value'] + value = int(raw.split("'d")[-1]) + file, line = node['source_file'], node['source_line'] + else: + candidates = [n for n in nodes if n.get('name') == symbol and n.get('type') == 'VAR'] + files = json.loads(meta.read_text())['files'] + if symbol == 'CLK_FREQ': + candidates = [n for n in candidates if files[n['loc'].split(',')[0]]['filename'].endswith('/top.v')] + node = candidates[0] + if symbol == 'crc_out': + assert by_addr[node['dtypep']]['range'] == '15:0' + value = 16 + else: + raw = node['valuep'][0]['name'] + value = int(raw.split('h')[-1], 16) + location = node['loc'].split(',') + file, line = files[location[0]]['filename'], int(location[1].split(':')[0]) + assert value == expected, (symbol, value, expected) + source = (cwd / file).resolve() + assert symbol in source.read_text().splitlines()[line - 1] + if name.startswith('uart'): + kind_key, kind = ('kind', 'Instance') if tool == 'slang' else ('type', 'CELL') + assert {'u_rx1', 'u_rx2'} <= {n.get('name') for n in nodes if n.get(kind_key) == kind} + return {'symbol': symbol, 'valueOrWidth': value, 'source': str(source), 'line': line, + 'sourceLineVerified': True} + + +def main(): + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--corpus-root', type=Path, required=True) + parser.add_argument('--axi', type=Path, required=True) + parser.add_argument('--filelist', type=Path, required=True, help='A2 Bender Verilator filelist') + parser.add_argument('--slang', required=True) + parser.add_argument('--verilator', required=True) + parser.add_argument('--output', type=Path, required=True) + parser.add_argument('--runs', type=int, default=2) + args = parser.parse_args() + if not 1 <= args.runs <= 5: + parser.error('--runs must be 1..5') + repo = Path(__file__).resolve().parent.parent + base, axi, out = args.corpus_root.resolve(), args.axi.resolve(), args.output.resolve() + out.mkdir(parents=True, exist_ok=True) + if any(out.iterdir()): + parser.error('--output must be empty to prevent stale artifact reuse') + subprocess.run([sys.executable, str(repo / 'scripts/hdl-corpus-manifest.py'), 'check', + '--corpus-root', str(base), '--manifest', str(repo / 'docs/hdl-corpus-manifest.json')], check=True) + manifest = json.loads((repo / 'docs/hdl-corpus-manifest.json').read_text()) + def sources(identifier): + c = next(c for c in manifest['corpora'] if c['id'] == identifier) + return [str(base / identifier / f) for f in c['validation_profiles'][0]['files']] + shared = [line.strip() for line in args.filelist.read_text().splitlines() if line.strip()] + for line in shared: + if line.startswith('+define+'): + continue + file = Path(line.removeprefix('+incdir+')) + if not file.is_absolute() or not file.resolve().is_relative_to(axi): + raise ValueError('Filelist must use confined absolute AXI paths') + revision = subprocess.check_output(['git', '-C', str(axi), 'rev-parse', 'HEAD'], text=True).strip() + expected = json.loads((repo / 'docs/hdl-axi-build-validation.json').read_text()) + if revision != expected['axiRevision']: + raise ValueError('Wrong AXI revision') + portable_filelist = args.filelist.read_text().replace(str(axi), '${AXI}') + if hashlib.sha256(portable_filelist.encode()).hexdigest() != expected['profile']['filelistSha256']: + raise ValueError('Filelist differs from verified A2 input') + roots = [axi] + for info in expected['dependencies'].values(): + root = axi / info['path'] + if subprocess.check_output(['git', '-C', str(root), 'rev-parse', 'HEAD'], text=True).strip() != info['revision']: + raise ValueError('Dependency revision differs') + roots.append(root) + def snapshot(): + data = {} + for root in roots: + if subprocess.check_output(['git', '-C', str(root), 'status', '--porcelain', '--untracked-files=no'], text=True).strip(): + raise ValueError('Modified AXI/dependency tracked sources') + for name in subprocess.check_output(['git', '-C', str(root), 'ls-files'], text=True).splitlines(): + file = root / name + if file.is_file(): + data[str(file)] = hashlib.sha256(file.read_bytes()).hexdigest() + for line in shared: + if line.startswith('+define+'): + continue + file = Path(line.removeprefix('+incdir+')) + candidates = file.rglob('*') if line.startswith('+incdir+') else [file] + for candidate in candidates: + if candidate.is_symlink(): + raise ValueError('Symlink input is outside this pinned benchmark') + if candidate.is_file() and str(candidate) not in data: + raise ValueError('Untracked compiler input: ' + str(candidate)) + for c in manifest['corpora']: + for entry in c['source_files']: + file = base / c['id'] / entry['path'] + data[str(file)] = hashlib.sha256(file.read_bytes()).hexdigest() + return data + before = snapshot() + cases = [('uart-strict', 'top', sources('dual-uart'), None, True), + ('uart-compatible', 'top', sources('dual-uart'), None, True), + ('crc16', 'emmc_crc16', [str(base / 'card-reader/src/emmc_crc16.v')], None, True), + ('axi2', 'synth_axi_lite_xbar', shared, 'NoSlvMst=2', True), + ('axi4', 'synth_axi_lite_xbar', shared, 'NoSlvMst=4', True), + ('board-missing-pll', 'top', sources('card-reader'), None, False)] + versions = {tool: subprocess.check_output([getattr(args, tool), '--version'], text=True).strip() + for tool in ['slang', 'verilator']} + rows = [] + def portable(value): + return str(value).replace(str(out), '${OUTPUT}').replace(str(base), '${CORPORA}').replace(str(axi), '${AXI}') + for name, top, files, parameter, success in cases: + for tool in ['slang', 'verilator']: + for iteration in range(args.runs): + dest = out / (name + '-' + tool + '-' + str(iteration)) + dest.mkdir(exist_ok=True) + ast = dest / 'ast.json' + meta = dest / 'meta.json' + if tool == 'slang': + command = [args.slang, '--std', '1800-2023', '--single-unit', '--top', top, + '--ast-json', str(ast), '--ast-json-source-info', '--ast-json-detailed-types', + '--diag-json', str(dest / 'diagnostics.json')] + else: + command = [args.verilator, '--language', '1800-2023', '--json-only', '-Wno-fatal', + '--top-module', top, '--json-only-output', str(ast), + '--json-only-meta-output', str(meta), '--Mdir', str(dest / 'obj')] + if tool == 'slang' and name == 'uart-compatible': + command.append('--allow-use-before-declare') + if parameter: + command.append('-G' + parameter) + command += files + measurement = dest / 'time.txt' + timed = ['/usr/bin/time', '-f', '%e %M', '-o', str(measurement), *command] + start = time.monotonic() + with (dest / 'stdout').open('w') as stdout, (dest / 'stderr').open('w') as stderr: + process = subprocess.Popen(timed, cwd=axi, stdout=stdout, stderr=stderr, start_new_session=True) + try: + code = process.wait(timeout=120) + except subprocess.TimeoutExpired: + try: + os.killpg(process.pid, signal.SIGKILL) + except ProcessLookupError: + pass + process.wait() + code = -9 + except BaseException: + try: + os.killpg(process.pid, signal.SIGKILL) + except ProcessLookupError: + pass + process.wait() + raise + elapsed = round(time.monotonic() - start, 3) + metrics = measurement.read_text().splitlines()[-1].split() if measurement.exists() else [] + peak = int(metrics[1]) if len(metrics) == 2 and metrics[1].isdigit() else None + stderr_text = (dest / 'stderr').read_text() + stdout_text = (dest / 'stdout').read_text() + row = {'case': name, 'tool': tool, 'iteration': iteration, 'exit': code, + 'expectedSuccess': success and not (name == 'uart-strict' and tool == 'slang'), 'seconds': float(metrics[0]) if len(metrics) == 2 else None, 'wrapperSeconds': elapsed, 'peakRssKiB': peak, + 'argv': ['${' + tool.upper() + '}', *[portable(v) for v in command[1:]]], + 'stderrBytes': len(stderr_text.encode()), 'astBytes': ast.stat().st_size if ast.exists() else 0} + if code == 0 and ast.exists(): + nodes = list(walk(json.loads(ast.read_text()))) + key = 'kind' if tool == 'slang' else 'type' + kinds = {} + for node in nodes: + kind = node.get(key) + if isinstance(kind, str): + kinds[kind] = kinds.get(kind, 0) + 1 + row['nodeKinds'] = kinds + evidence = verify_semantic_control(tool, name, nodes, meta, axi) + evidence['source'] = portable(evidence['source']) + row['semanticControl'] = evidence + if name == 'uart-strict' and tool == 'slang': + row['expectedOutcome'] = code not in (0, -9) and 'used before its declaration' in stderr_text + else: + row['expectedOutcome'] = (code == 0 and ast.exists()) if success else (code not in (0, -9) and 'rPLL' in stderr_text + stdout_text) + row['errorLines'] = len(re.findall(r'(?:^%Error|: error:)', stderr_text, re.M)) + row['warningLines'] = len(re.findall(r'(?:^%Warning|: warning:)', stderr_text, re.M)) + rows.append(row) + (out / 'report.json').write_text(json.dumps({'tools': versions, 'cases': rows}, indent=2) + '\n') + print(name, tool, iteration, code, elapsed, peak, flush=True) + if snapshot() != before: + raise RuntimeError('Inputs changed during benchmark') + report = {'tools': versions, 'cases': rows, 'inputsUnchanged': True, + 'inputSnapshotSha256': hashlib.sha256(json.dumps({portable(k): v for k, v in before.items()}, sort_keys=True).encode()).hexdigest(), + 'measurement': 'Linux GNU time peak RSS; sequential export runs, not cold-cache benchmark; repetitions not independent machines', + 'profile': 'Explicit arguments identical per case; tools retain their own implicit predefines and language semantics', + 'allExpectedOutcomes': all(r['expectedOutcome'] for r in rows)} + (out / 'report.json').write_text(json.dumps(report, indent=2) + '\n') + return 0 if report['allExpectedOutcomes'] else 1 + + +if __name__ == '__main__': + sys.exit(main()) From d1d25f020a051ed53bca64bc791a564395da5330 Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 19:11:12 +0300 Subject: [PATCH 21/23] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20=D0=B2=D1=8B=D1=87=D0=B8=D1=81=D0=BB=D0=B5?= =?UTF-8?q?=D0=BD=D0=BD=D1=8B=D0=B5=20HDL=20=D0=BF=D0=B0=D1=80=D0=B0=D0=BC?= =?UTF-8?q?=D0=B5=D1=82=D1=80=D1=8B=20=D0=B8=20=D1=88=D0=B8=D1=80=D0=B8?= =?UTF-8?q?=D0=BD=D1=8B=20=D1=87=D0=B5=D1=80=D0=B5=D0=B7=20slang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + README.md | 3 +- VERILOG_TRACKER.md | 13 +- __tests__/hdl-semantic-cli.test.ts | 38 ++++ __tests__/hdl-semantic-import.test.ts | 80 +++++++ __tests__/hdl-semantic-runner.test.ts | 109 +++++++++ __tests__/hdl-semantics-review.test.ts | 57 +++++ __tests__/hdl-semantics.test.ts | 72 ++++++ docs/hdl-semantics.md | 80 +++++++ docs/validation-hdl-semantics-2026-09-12.md | 73 ++++++ src/bin/codegraph.ts | 44 ++++ src/hdl/semantic-import.ts | 211 ++++++++++++++++++ src/hdl/semantic-runner.ts | 235 ++++++++++++++++++++ src/hdl/semantics.ts | 74 ++++++ src/index.ts | 10 + src/mcp/server-instructions.ts | 2 + 16 files changed, 1100 insertions(+), 3 deletions(-) create mode 100644 __tests__/hdl-semantic-cli.test.ts create mode 100644 __tests__/hdl-semantic-import.test.ts create mode 100644 __tests__/hdl-semantic-runner.test.ts create mode 100644 __tests__/hdl-semantics-review.test.ts create mode 100644 __tests__/hdl-semantics.test.ts create mode 100644 docs/hdl-semantics.md create mode 100644 docs/validation-hdl-semantics-2026-09-12.md create mode 100644 src/hdl/semantic-import.ts create mode 100644 src/hdl/semantic-runner.ts create mode 100644 src/hdl/semantics.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 38dc6f80f..9c61829f8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### New Features +- HDL: `hdl-semantic` с установленным slang показывает вычисленные параметры и ширины портов для выбранного профиля и экземпляра. + - **Codex and Astra read project guidance from `AGENTS.md`.** The canonical agent guide now lives in `AGENTS.md` (with a nested `docs/AGENTS.md` for long validation notes); `CLAUDE.md` is a thin `@AGENTS.md` wrapper for Claude Code. Codex/Astra no longer miss the old CLAUDE-only instructions. - **A big screen's picture stops wrapping into a column.** How wide a screen's lines run before they wrap was worked out with a formula, and the formula was wrong for the way these pictures are actually drawn: a part of a screen spends lines on its own structure — a step that fires things gets a line to itself, and what it fires starts another — so estimating the lines from the boxes alone badly undercounted them, and one screen's 98 boxes wrapped into a 4,356px column. Laying a picture out is cheap and exact, so the widths are now simply tried and the one that comes out closest to the shape of a window is kept. Across one app's 51 screens the tallest picture went from 4,356px to 3,796px, total height fell 8%, and — because a shorter picture is also a picture whose lines have less far to go — lines running over other boxes fell by a third and lines crossing each other went from 13 to 5. diff --git a/README.md b/README.md index 6d8d159a7..0b1134355 100644 --- a/README.md +++ b/README.md @@ -892,7 +892,7 @@ is written): | Astro | `.astro` | Full support (frontmatter + script extraction, template component/call references, `src/pages/` routes) | | Liquid | `.liquid` | Full support | | Pascal / Delphi | `.pas`, `.dpr`, `.dpk`, `.lpr` | Full support (classes, records, interfaces, enums, DFM/FMX form files) | -| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, build profiles (filelists/includes/defines), lexical/generate scopes и formal parameters, порты/сигналы и named/positional/wildcard port bindings, bit/part selects, read/write/control/event queries, always/assign, interfaces/modports, package calls и иерархия instantiates; синтаксические связи без elaboration/timing | +| Verilog / SystemVerilog | `.v`, `.vh`, `.sv`, `.svh` | Модули и именованные instances, build profiles (filelists/includes/defines), lexical/generate scopes и formal parameters, порты/сигналы и named/positional/wildcard port bindings, bit/part selects, read/write/control/event queries, always/assign, interfaces/modports, package calls и иерархия instantiates; source-граф без elaboration/timing, отдельный hdl-semantic через slang для параметров и ширин | | Lua | `.lua` | Full support (functions, methods with receivers, local variables, `require` imports, call edges) | | R | `.R` `.r` | Full support (functions in every assignment form, S4/R5/R6 classes with methods, `library`/`require` imports, `source()` file references, call edges) | | Luau | `.luau` | Full support (everything in Lua, plus `type`/`export type` aliases, typed signatures, and Roblox instance-path `require`) | @@ -973,3 +973,4 @@ MIT Подробности HDL-профилей: [настройка и ограничения](docs/hdl-profiles.md). +Вычисленные параметры и ширины по явному запросу: [hdl-semantic с установленным slang](docs/hdl-semantics.md). diff --git a/VERILOG_TRACKER.md b/VERILOG_TRACKER.md index 642f4dabd..afd300aeb 100644 --- a/VERILOG_TRACKER.md +++ b/VERILOG_TRACKER.md @@ -127,6 +127,12 @@ frontend и review задачи можно отдавать агентам; об ## B. Полное preprocessing через выбранный frontend +**Первая вертикаль реализована (2026-09-12):** `hdl-semantic` / +`CodeGraph.getHdlSemantics()` возвращают on-demand parameters/port widths с +provenance и проверенными sourceNodeId. Отчёт `docs/validation-hdl-semantics-2026-09-12.md`, +инструкция `docs/hdl-semantics.md`. Это частичное выполнение B1/B2 и C1/C2/C5; +checkbox ниже остаётся открытым для полного заявленного объёма. + - [ ] **B1** Получать include/macro expansion и diagnostics из frontend; не писать собственный полный HDL-препроцессор внутри extractor. - [ ] **B2** Сопоставить expansion с исходным файлом, диапазоном, macro definition @@ -305,8 +311,10 @@ J — повторяемый checklist, его отметки относятся сохранены в `docs/hdl-frontend-decision.md`. 3. Начать реализацию согласованного контракта, сохраняя strict/compatible profiles раздельно и unknown coordinates для macro-generated declarations. -4. Реализовать минимальную вертикаль **B1–B2 + C1–C2**: один profile, один top, - parameter value с правильным source mapping и fallback без frontend. +4. **Минимальная on-demand вертикаль выполнена**: параметры/порты для одного + profile/top, source links, ошибка compiler не меняет source graph. Дальше: + точный macro source mapping B2, расширенные types C3 и persistent semantic + context/invalidation C1/D5; затем semantic queries MCP. 5. Провести J1–J9 для этого ограниченного пакета; затем расширять B/C и переходить к D. ## 6. Журнал выполнения @@ -315,6 +323,7 @@ J — повторяемый checklist, его отметки относятся | --- | --- | --- | --- | --- | | 2026-09-12 | Source navigation, scopes, access | Реализованные части перечислены в HDL-001–006 | Отчёты раздела 1 | Сохранить regression coverage | | 2026-09-12 | Build profiles | Ограниченный source-режим, реальные profile parity проверки | `b050fb89`, `docs/validation-hdl-profiles-2026-09-12.md` | A: frontend comparison | +| 2026-09-12 | B/C первая вертикаль | API/CLI, реальные UART/CRC/AXI, include sync/rebuild parity | `docs/validation-hdl-semantics-2026-09-12.md` | B2, C3, persisted context | | 2026-09-12 | A3–A6 | 24 controls, slang выбран; CLI macro mapping неполон | `docs/hdl-frontend-decision.md` | B1/B2 + C1/C2 | | 2026-09-12 | A1–A2 | Manifest 137 HDL, три locked AXI dependencies, шесть compiler controls | `docs/validation-hdl-corpora-build-2026-09-12.md` | A3–A6, сравнение frontends | | 2026-09-12 | Полный план | Создан этот tracker; новые implementation задачи не объявлены выполненными | `VERILOG_TRACKER.md` | A1–A2 | diff --git a/__tests__/hdl-semantic-cli.test.ts b/__tests__/hdl-semantic-cli.test.ts new file mode 100644 index 000000000..e8c178f54 --- /dev/null +++ b/__tests__/hdl-semantic-cli.test.ts @@ -0,0 +1,38 @@ +import { expect, it } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { spawnSync } from 'node:child_process'; +import CodeGraph from '../src/index'; + +it.skipIf(process.platform === 'win32')('compiled hdl-semantic CLI passes explicit overrides and rejects duplicate/invalid options', () => { + const temp = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-semantic-cli-')); + const root = path.join(temp, 'project'); fs.mkdirSync(root); + const tool = path.join(temp, 'fake-slang'); + fs.writeFileSync(tool, `#!${process.execPath}\nconst fs=require('node:fs');const a=process.argv.slice(2);\nif(a.includes('--version')){console.log('slang version 11.0.448');}else{\nconst override=a[a.indexOf('-G')+1];const value=override?.startsWith('W=')?override.slice(2):'8';\nfs.writeFileSync(a[a.indexOf('--ast-json')+1],JSON.stringify({design:{kind:'Root',members:[{kind:'Instance',name:'top',body:{kind:'InstanceBody',members:[{kind:'Parameter',name:'W',value,type:{kind:'PredefinedIntegerType',name:'int'},source_file:'top.sv',source_line:1,source_column:24}]}}]}}));}\n`, { mode: 0o700 }); + fs.writeFileSync(path.join(root, 'top.sv'), 'module top #(parameter W=8)(); endmodule\n'); + fs.writeFileSync(path.join(root, 'codegraph.json'), JSON.stringify({ hdl: { activeProfile: 'synth', profiles: { + synth: { files: ['top.sv'], topModules: ['top'] }, + } } })); + const bin = path.resolve(__dirname, '../dist/bin/codegraph.js'); + const run = (args: string[]) => spawnSync(process.execPath, [bin, ...args], { + encoding: 'utf8', timeout: 30000, env: { ...process.env, CODEGRAPH_NO_DAEMON: '1', + CODEGRAPH_SEMANTIC_TMPDIR: path.join(temp, 'snapshots'), NO_COLOR: '1' }, + }); + try { + CodeGraph.initSync(root).close(); + const indexed = run(['index', root, '--quiet']); expect(indexed.status, indexed.stderr).toBe(0); + const result = run(['hdl-semantic', 'top.W', '--path', root, '--slang', tool, '--parameter', 'W=16']); + expect(result.status, result.stderr).toBe(0); + const body = JSON.parse(result.stdout); + expect(body.provenance.parameters).toEqual({ W: '16' }); + expect(body.provenance.compilationUnitMode).toBe('separate'); + expect(body.facts[0]).toMatchObject({ name: 'W', value: '16' }); + expect(body.facts[0].sourceNodeId).toBeTruthy(); + const duplicate = run(['hdl-semantic', '--path', root, '--slang', tool, '--parameter', 'W=1', 'W=2']); + expect(duplicate.status).toBe(1); expect(duplicate.stderr).toContain('Duplicate HDL parameter'); + const invalid = run(['hdl-semantic', '--path', root, '--slang', tool, '--limit', '1junk']); + expect(invalid.status).toBe(1); expect(invalid.stderr).toContain('1..1000'); + expect(fs.readdirSync(path.join(temp, 'snapshots'))).toHaveLength(0); + } finally { fs.rmSync(temp, { recursive: true, force: true }); } +}); diff --git a/__tests__/hdl-semantic-import.test.ts b/__tests__/hdl-semantic-import.test.ts new file mode 100644 index 000000000..a41abbaff --- /dev/null +++ b/__tests__/hdl-semantic-import.test.ts @@ -0,0 +1,80 @@ +import { describe, expect, it } from 'vitest'; +import { importSlangSemantics } from '../src/hdl/semantic-import'; +const scalar={kind:'ScalarType',name:'logic',addr:1,isSigned:false}; +const parameter=(name:string,value:string)=>({kind:'Parameter',name,value,type:{kind:'PredefinedIntegerType',name:'int'}}); +const instance=(name:string,body:unknown)=>({kind:'Instance',name,body}); +const body=(members:unknown[],addr?:number)=>({kind:'InstanceBody',name:'leaf',members,...(addr?{addr}:{})}); +const design=(...members:unknown[])=>({design:{kind:'Root',name:'$root',members}}); + +describe('bounded slang semantic importer',()=>{ + it('imports primitive facts with source points and detailed packed widths',()=>{ + const facts=importSlangSemantics(design(instance('top',body([ + {...parameter('N',"32'd2"),source_file:'rtl/top.sv',source_line:4,source_column:9}, + {kind:'Port',name:'q',direction:'Out',type:{kind:'PackedArrayType',name:'',elementType:scalar,range:'[15:0]'},source_file:'rtl/top.sv',source_line:8,source_column:0}, + ]))),'/project'); + expect(facts).toEqual([ + {kind:'parameter',name:'N',instancePath:'top',value:"32'd2",type:'int',width:32,source:{file:'rtl/top.sv',line:4,column:9}}, + {kind:'port',name:'q',instancePath:'top',type:'logic[15:0]',width:16,direction:'Out',source:{file:'rtl/top.sv',line:8,column:null}}, + ]); + }); + it('revisits shared bodies per instance and keeps specialized parameter values separate',()=>{ + const shared=body([parameter('P','2')],10); + const ast=design(instance('top',body([instance('u1',shared),instance('u2','10 leaf'),instance('u3',body([parameter('P','4')],11))]))); + expect(importSlangSemantics(ast,'/project').map(f=>[f.instancePath,f.value])).toEqual([['top.u1','2'],['top.u2','2'],['top.u3','4']]); + }); + it('uses implicit generate index values, not iteration ordinals, and skips uninstantiated branches',()=>{ + const loop={kind:'GenerateBlockArray',name:'lanes',loopVariable:'999 i',members:[{kind:'Genvar',name:'i'}, + {kind:'GenerateBlock',name:'',constructIndex:0,isUninstantiated:false,members:[parameter('i','2'),instance('u',body([parameter('P','8')]))]}, + {kind:'GenerateBlock',name:'',constructIndex:1,isUninstantiated:false,members:[parameter('i','4'),instance('u',body([parameter('P','8')]))]}, + ]}; + const ast=design(instance('top',body([loop,{kind:'GenerateBlock',name:'inactive',isUninstantiated:true,members:[instance('bad','404 missing')]}]))); + expect(importSlangSemantics(ast,'/project').filter(f=>f.name==='P').map(f=>f.instancePath)).toEqual(['top.lanes[2].u','top.lanes[4].u']); + }); + it('maps instance arrays in Slang numeric ascending element order',()=>{ + const array={kind:'InstanceArray',name:'a',range:'[3:2]',members:[instance('',body([parameter('P','10')])),instance('',body([parameter('P','20')]))]}; + expect(importSlangSemantics(design(instance('top',body([array]))),'/project').map(f=>[f.instancePath,f.value])).toEqual([['top.a[2]','10'],['top.a[3]','20']]); + }); + it('does not guess complex/unpacked widths or retain process addresses in type text',()=>{ + const ast=design(instance('top',body([ + {kind:'Port',name:'s',type:{kind:'PackedStructType',name:'Packet',members:[]}}, + {kind:'Port',name:'a',type:{kind:'FixedSizeUnpackedArrayType',name:'',elementType:scalar,range:'[7:0]'}}, + {kind:'Port',name:'pretty',type:'logic[7:0]'}, + {kind:'Port',name:'alias',type:{kind:'TypeAlias',name:'word_t',addr:5,target:{kind:'PackedArrayType',name:'',elementType:scalar,range:'[3:0]'}}}, + {kind:'Port',name:'ref',type:'5 top.word_t'}, + ]))); + const facts=importSlangSemantics(ast,'/project');expect(facts.slice(0,3).map(f=>f.width)).toEqual([undefined,undefined,undefined]); + expect(facts[4]).toMatchObject({type:'top.word_t',width:4});expect(JSON.stringify(facts)).not.toContain('5 top'); + }); + it('confines sources and preserves frontend Unicode columns without conversion',()=>{ + const facts=importSlangSemantics(design(instance('top',body([ + {...parameter('unicode','1'),source_file:'rtl/😀.sv',source_line:2,source_column:17}, + {...parameter('outside','1'),source_file:'../external.sv',source_line:2,source_column:17}, + {...parameter('absolute','1'),source_file:'/elsewhere/file.sv',source_line:2,source_column:17}, + {...parameter('windows','1'),source_file:'C:\\elsewhere\\file.sv',source_line:2,source_column:17}, + {...parameter('relativeWindows','1'),source_file:'..\\elsewhere\\file.sv',source_line:2,source_column:17}, + ]))),'/project'); + expect(facts[0]?.source).toEqual({file:'rtl/😀.sv',line:2,column:17});expect(facts.slice(1).map(f=>f.source)).toEqual([undefined,undefined,undefined,undefined]); + }); + it('does not treat Object prototype names as known integer widths',()=>{ + const facts=importSlangSemantics(design(instance('top',body([{kind:'Port',name:'x',type:'constructor'}]))),'/project'); + expect(facts[0]?.width).toBeUndefined(); + }); + it('escapes hierarchy segments that contain literal dots',()=>{ + const facts=importSlangSemantics(design(instance('top',body([instance('a.b',body([parameter('P','1')]))]))),'/project'); + expect(facts[0]?.instancePath).toBe('top.\\a.b '); + }); + it('rejects malformed schema, missing references, cycles and excessive hierarchy names',()=>{ + expect(()=>importSlangSemantics({},'/project')).toThrow(); + expect(()=>importSlangSemantics({design:{kind:'Root',members:new Array(1_000_001)}},'/project')).toThrow('node limit'); + expect(()=>importSlangSemantics(design(instance('top','99 missing')),'/project')).toThrow('unresolved'); + expect(()=>importSlangSemantics(design(instance('x'.repeat(4097),body([]))),'/project')).toThrow('oversized'); + const cyclic=body([],10);cyclic.members.push(instance('again','10 leaf')); + expect(()=>importSlangSemantics(design(instance('top',cyclic)),'/project')).toThrow('cyclic instance'); + const input:any=design();input.extra=input; + expect(()=>importSlangSemantics(input,'/project')).toThrow('cyclic input'); + }); + it('rejects ambiguous generated indices and array shape mismatches',()=>{ + expect(()=>importSlangSemantics(design(instance('top',body([{kind:'GenerateBlockArray',name:'g',loopVariable:'1 i',members:[{kind:'GenerateBlock',name:'',members:[]}]}]))),'/project')).toThrow('index parameter'); + expect(()=>importSlangSemantics(design(instance('top',body([{kind:'InstanceArray',name:'a',range:'[3:0]',members:[]}]))),'/project')).toThrow('length disagrees'); + }); +}); diff --git a/__tests__/hdl-semantic-runner.test.ts b/__tests__/hdl-semantic-runner.test.ts new file mode 100644 index 000000000..6ccb38353 --- /dev/null +++ b/__tests__/hdl-semantic-runner.test.ts @@ -0,0 +1,109 @@ +import { afterEach, beforeEach, describe, expect, it } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import { runSlangSemantics } from '../src/hdl/semantic-runner'; + +const suite = process.platform==='win32' ? describe.skip : describe; +suite('isolated optional slang runner',()=>{ + let base:string,root:string,temp:string,exe:string,oldTemp:string|undefined; + const write=(file:string,text:string)=>{fs.mkdirSync(path.dirname(path.join(root,file)),{recursive:true});fs.writeFileSync(path.join(root,file),text);}; + const fake=(body='')=>{ + const script=`#!${process.execPath}\nconst fs=require('node:fs'),cp=require('node:child_process');const args=process.argv.slice(2);if(args.includes('--version')){console.log('slang version 11.0.448+e222e7dc0');process.exit(0);}const output=args[args.indexOf('--ast-json')+1];${body}\nfs.writeFileSync(output,JSON.stringify({kind:'Root',argv:args,source:fs.readFileSync('rtl/top.sv','utf8'),include:fs.readFileSync('inc/common.flags','utf8'),cwd:process.cwd()}));`; + fs.writeFileSync(exe,script,{mode:0o700}); + }; + beforeEach(()=>{ + const storage=path.join(os.homedir(),'storage');fs.mkdirSync(storage,{recursive:true}); + base=fs.mkdtempSync(path.join(storage,'cg-semantic-test-'));root=path.join(base,'project');temp=path.join(base,'snapshots');exe=path.join(base,'fake-slang'); + fs.mkdirSync(root);oldTemp=process.env.CODEGRAPH_SEMANTIC_TMPDIR;process.env.CODEGRAPH_SEMANTIC_TMPDIR=temp; + write('rtl/top.sv','`include "../inc/common.flags"\nmodule top; endmodule\n');write('inc/common.flags','`define VALUE 1\n'); + write('codegraph.json',JSON.stringify({hdl:{activeProfile:'synth',profiles:{synth:{files:['rtl/top.sv'],includeDirs:['inc'],topModules:['top'],defines:{SAFE:'1'}}}}}));fake(); + }); + afterEach(()=>{if(oldTemp===undefined)delete process.env.CODEGRAPH_SEMANTIC_TMPDIR;else process.env.CODEGRAPH_SEMANTIC_TMPDIR=oldTemp;fs.rmSync(base,{recursive:true,force:true});}); + it('copies literal headers and argv safely, returns provenance/source map and removes snapshots',async()=>{ + const result=await runSlangSemantics(root,{executable:exe,parameters:{WIDTH:'8'},allowUseBeforeDeclare:true}); + const ast=result.ast as any; + expect(ast.source).toBe(result.sources['rtl/top.sv']);expect(ast.include).toBe(result.sources['inc/common.flags']); + expect(ast.argv).toContain('-DSAFE=1');expect(ast.argv).toContain('WIDTH=8');expect(ast.argv).toContain('--allow-use-before-declare'); + expect(result.configurationFingerprint).toMatch(/^[a-f0-9]{64}$/);expect(result.executableSha256).toMatch(/^[a-f0-9]{64}$/); + expect(result.sourceRoot).toBe(ast.cwd);expect(fs.existsSync(result.sourceRoot)).toBe(false);expect(fs.readdirSync(temp)).toEqual([]); + expect((await runSlangSemantics(root,{executable:exe,parameters:{WIDTH:'8'},allowUseBeforeDeclare:true})).fingerprint).toBe(result.fingerprint); + }); + it('captures caller options before awaits and records the explicit compilation mode',async()=>{ + const replacement=new AbortController();replacement.abort(); + const options={executable:exe,allowUseBeforeDeclare:false,parameters:{WIDTH:'4'},signal:new AbortController().signal}; + const pending=runSlangSemantics(root,options); + options.allowUseBeforeDeclare=true;options.parameters.WIDTH='9';options.signal=replacement.signal; + const result=await pending;expect(result.allowUseBeforeDeclare).toBe(false);expect(result.parameters.WIDTH).toBe('4'); + expect(result.languageStandard).toBe('1800-2023');expect(result.compilationUnitMode).toBe('separate'); + expect((result.ast as any).argv).not.toContain('--allow-use-before-declare'); + expect((result.ast as any).argv).toContain('--max-generate-steps=10000'); + }); + it('rejects include directives injected through configured macro values',async()=>{ + const file=path.join(root,'codegraph.json'),cfg=JSON.parse(fs.readFileSync(file,'utf8')); + cfg.hdl.profiles.synth.defines.LOAD='`include "/etc/passwd"';fs.writeFileSync(file,JSON.stringify(cfg)); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow('Absolute include'); + }); + it('preserves UTF-8 BOM and source-relative headers outside include directories',async()=>{ + write('rtl/top.sv','\ufeff`include "../private/local.inc"\nmodule top; endmodule\n');write('private/local.inc','// header\n'); + const result=await runSlangSemantics(root,{executable:exe});expect(result.sources['rtl/top.sv'].charCodeAt(0)).toBe(0xfeff); + expect(result.sources['private/local.inc']).toBe('// header\n'); + }); + it('requires an available approved version and an explicit profile/top',async()=>{ + await expect(runSlangSemantics(root,{executable:path.join(base,'missing')})).rejects.toThrow('unavailable'); + fs.writeFileSync(exe,`#!${process.execPath}\nconsole.log('slang version 12.0');`,{mode:0o700}); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow('schema family'); + write('codegraph.json','{}');await expect(runSlangSemantics(root,{executable:exe,top:'top'})).rejects.toThrow('active HDL profile'); + }); + it.each(['`include "/etc/passwd"','`include "../../../outside"','`include `FILE'])('rejects unsafe/unresolved snapshot include forms %s',async line=>{ + write('rtl/top.sv',line+'\nmodule top; endmodule');await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow(/include|escapes/); + }); + it('rejects symlink headers and oversized individual inputs',async()=>{ + fs.symlinkSync(path.join(base,'external'),path.join(root,'inc/link.flags')); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow('Symbolic links'); + fs.unlinkSync(path.join(root,'inc/link.flags'));write('inc/large.flags','x'.repeat(1024*1024+1)); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow('input size'); + }); + it('rejects original-content changes even with restored size/mtime',async()=>{ + const file=path.join(root,'inc/common.flags'); + fake(`const p=${JSON.stringify(file)},s=fs.statSync(p);fs.writeFileSync(p,'\x60define VALUE 2\\n');fs.utimesSync(p,s.atime,s.mtime);`); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow('sources or configuration changed'); + expect(fs.readdirSync(temp)).toEqual([]); + }); + it('rejects creation of a previously missing source-relative shadow candidate',async()=>{ + write('rtl/top.sv','`include "common.flags"\nmodule top; endmodule'); + fake(`fs.writeFileSync(${JSON.stringify(path.join(root,'rtl/common.flags'))},'// new shadow');`); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow('sources or configuration changed'); + }); + it('rejects a frontend that edits the snapshot, malformed AST and oversized output',async()=>{ + fake("fs.writeFileSync('rtl/top.sv','module changed; endmodule');"); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow('modified its source snapshot'); + fake("fs.writeFileSync(output,'not JSON');process.exit(0);"); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow(); + fake("fs.writeFileSync(output,'');fs.truncateSync(output,64*1024*1024+1);process.exit(0);"); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow(/oversized|exceeds/); + expect(fs.readdirSync(temp)).toEqual([]); + }); + it('times out and cancels its own process group without leaving snapshots',async()=>{ + fake("setInterval(()=>{},1000);return;"); + await expect(runSlangSemantics(root,{executable:exe,timeoutMs:100})).rejects.toThrow('timed out'); + const controller=new AbortController();const promise=runSlangSemantics(root,{executable:exe,signal:controller.signal}); + setTimeout(()=>controller.abort(),100);await expect(promise).rejects.toThrow('cancelled');expect(fs.readdirSync(temp)).toEqual([]); + }); + it('cancels descendants in the owned process group',async()=>{ + const heartbeat=path.join(base,'heartbeat'); + const childCode=`setInterval(()=>require('node:fs').appendFileSync(${JSON.stringify(heartbeat)},'x'),20)`; + fake(`cp.spawn(process.execPath,['-e',${JSON.stringify(childCode)}],{stdio:'ignore'});setInterval(()=>{},1000);return;`); + const controller=new AbortController(),pending=runSlangSemantics(root,{executable:exe,signal:controller.signal}); + const end=Date.now()+4000;while(!fs.existsSync(heartbeat)){if(Date.now()>end)throw new Error('descendant did not start');await new Promise(r=>setTimeout(r,20));} + controller.abort();await expect(pending).rejects.toThrow('cancelled'); + const before=fs.statSync(heartbeat).size;await new Promise(r=>setTimeout(r,100));expect(fs.statSync(heartbeat).size).toBe(before); + expect(fs.readdirSync(temp)).toEqual([]); + }); + it('bounds stdout/stderr and rejects frontend errors',async()=>{ + fake("process.stdout.write('x'.repeat(1024*1024+1));setInterval(()=>{},1000);return;"); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow('output exceeds'); + fake("process.stderr.write('invalid design');process.exit(2);"); + await expect(runSlangSemantics(root,{executable:exe})).rejects.toThrow('invalid design'); + }); +}); diff --git a/__tests__/hdl-semantics-review.test.ts b/__tests__/hdl-semantics-review.test.ts new file mode 100644 index 000000000..9cb419164 --- /dev/null +++ b/__tests__/hdl-semantics-review.test.ts @@ -0,0 +1,57 @@ +import { afterEach, expect, it, vi } from 'vitest'; +import { createHash } from 'node:crypto'; +import type { Node, FileRecord } from '../src/types'; +import type { HdlProfileStatus } from '../src/hdl/status'; +import { analyzeHdlSemantics, type HdlSemanticOptions, type HdlSemanticSourceGraph } from '../src/hdl/semantics'; +const { run }=vi.hoisted(()=>({run:vi.fn()})); +vi.mock('../src/hdl/semantic-runner',()=>({runSlangSemantics:run})); +afterEach(()=>run.mockReset()); +const text='module top #(parameter W = 8)(input logic data); endmodule'; +function result(source=text,column=24,kind:'Parameter'|'Port'='Parameter',name='W') { + return {ast:{design:{kind:'Root',members:[{kind:'Instance',name:'top',body:{kind:'InstanceBody',members:[{ + kind,name,...(kind==='Parameter'?{value:'8',type:'int'}:{type:'logic',direction:'In'}), + source_file:'/snapshot/top.sv',source_line:1,source_column:column, + }]}}]}},sourceRoot:'/snapshot',profileName:'p',configurationFingerprint:'cfg',fingerprint:'captured', + version:'slang fixture',executableSha256:'sha',sources:{'top.sv':source},top:'top',parameters:{W:'8'},allowUseBeforeDeclare:false,diagnostics:[]}; +} +function sourceGraph(nodes:Partial[],source=text):HdlSemanticSourceGraph { + return {profile:()=>({state:'matches',indexed:{configurationFingerprint:'cfg'}} as HdlProfileStatus),stale:()=>false, + file:()=>({contentHash:createHash('sha256').update(source).digest('hex')} as FileRecord), + nodes:()=>nodes.map(n=>({id:'node',name:'W',startLine:1,filePath:'top.sv',language:'verilog',...n} as Node))}; +} + +it('reports the captured compiler options and initial query even if the caller mutates options during the run',async()=>{ + const options:HdlSemanticOptions={executable:'slang',query:'top.W',parameters:{W:'8'},allowUseBeforeDeclare:false}; + run.mockImplementation(async()=>{ + options.parameters!.W='12';options.allowUseBeforeDeclare=true;options.query='missing'; + return result(); + }); + const value=await analyzeHdlSemantics('/project',options,sourceGraph([{kind:'constant'}])); + expect(value.facts).toHaveLength(1); + expect(value.facts[0]!.value).toBe('8'); + expect(value.provenance.parameters).toEqual({W:'8'}); + expect(value.provenance.allowUseBeforeDeclare).toBe(false); +}); + +it.each([ + {kind:'Parameter' as const,name:'W',column:24,nodes:[{kind:'function' as const}],linked:false}, + {kind:'Port' as const,name:'data',column:42,nodes:[{kind:'field' as const,name:'data'}],linked:false}, + {kind:'Port' as const,name:'data',column:42,nodes:[{kind:'field' as const,name:'data',decorators:['hdl:port']}],linked:true}, + {kind:'Parameter' as const,name:'W',column:100000,nodes:[{kind:'constant' as const}],linked:false}, + {kind:'Parameter' as const,name:'W',column:0,nodes:[{kind:'constant' as const}],linked:false}, + {kind:'Parameter' as const,name:'W',column:24,nodes:[{id:'one',kind:'constant' as const},{id:'two',kind:'constant' as const}],linked:false}, +])('links only compatible unambiguous source declarations: %j',async({kind,name,column,nodes,linked})=>{ + run.mockResolvedValue(result(text,column,kind,name)); + const value=await analyzeHdlSemantics('/project',{executable:'slang'},sourceGraph(nodes)); + expect(!!value.facts[0]!.sourceNodeId).toBe(linked); +}); + +it('accepts frontend byte coordinates beyond the UTF-16 line length without reinterpreting their units',async()=>{ + const unicode='/* '+'😀'.repeat(40)+' */ '+text; + const column=Buffer.byteLength(unicode.slice(0,unicode.indexOf('W')))+1; + expect(column).toBeGreaterThan(unicode.length); + run.mockResolvedValue(result(unicode,column)); + const value=await analyzeHdlSemantics('/project',{executable:'slang'},sourceGraph([{kind:'constant'}],unicode)); + expect(value.facts[0]!.sourceNodeId).toBe('node'); + expect(value.facts[0]!.source?.column).toBe(column); +}); diff --git a/__tests__/hdl-semantics.test.ts b/__tests__/hdl-semantics.test.ts new file mode 100644 index 000000000..bce988a0c --- /dev/null +++ b/__tests__/hdl-semantics.test.ts @@ -0,0 +1,72 @@ +import { afterEach, beforeEach, describe, expect, it, vi } from 'vitest'; +import * as fs from 'node:fs'; +import * as os from 'node:os'; +import * as path from 'node:path'; +import CodeGraph from '../src/index'; +import { loadHdlProfile } from '../src/hdl/profile'; +const { run } = vi.hoisted(() => ({ run: vi.fn() })); +vi.mock('../src/hdl/semantic-runner', () => ({ runSlangSemantics: run })); + +let root: string; +let cg: CodeGraph; +const source = 'module top #(parameter W = 8)(input logic [W-1:0] data);\nendmodule\n'; +function ast(width = 8, column: number = 24) { + return { design: { kind: 'Root', name: '$root', members: [{ kind: 'Instance', name: 'top', body: { + kind: 'InstanceBody', name: 'top', members: [ + { kind: 'Parameter', name: 'W', value: String(width), type: { kind: 'PredefinedIntegerType', name: 'int' }, + source_file: path.join(root, 'top.sv'), source_line: 1, source_column: column }, + { kind: 'Port', name: 'data', type: { kind: 'PackedArrayType', range: `[${width - 1}:0]`, elementType: { kind: 'ScalarType', name: 'logic' } }, + direction: 'In', source_file: path.join(root, 'top.sv'), source_line: 1, source_column: 49 }, + ], + } }] } }; +} +function result(value = ast()) { + return { ast: value, sourceRoot: root, profileName: 'synth', configurationFingerprint: loadHdlProfile(root).profile!.fingerprint, + fingerprint: 'semantic-snapshot', version: 'slang version 11.0.448', executableSha256: 'executable-hash', + sources: { 'top.sv': source }, top: 'top', diagnostics: [], parameters: {}, allowUseBeforeDeclare: false }; +} +beforeEach(async () => { + root = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-semantics-')); + fs.writeFileSync(path.join(root, 'top.sv'), source); + fs.writeFileSync(path.join(root, 'codegraph.json'), JSON.stringify({ hdl: { activeProfile: 'synth', profiles: { + synth: { files: ['top.sv'], topModules: ['top'] }, + } } })); + cg = await CodeGraph.init(root, { index: true }); + run.mockResolvedValue(result()); +}); +afterEach(() => { cg?.close(); fs.rmSync(root, { recursive: true, force: true }); run.mockReset(); }); + +describe('on-demand HDL semantics on the source graph', () => { + it('returns computed facts and links the matching source declaration', async () => { + const value = await cg.getHdlSemantics({ executable: 'slang', query: 'top.W' }); + expect(value.sourceGraphProfileMatches).toBe(true); + expect(value.facts).toHaveLength(1); + expect(value.facts[0]).toMatchObject({ name: 'W', value: '8', sourceNodeId: cg.getNodesByName('W')[0].id }); + expect(value.provenance.top).toBe('top'); + }); + it('does not link an index from another profile or different source bytes', async () => { + const changed = result(); changed.configurationFingerprint = 'different-profile'; + run.mockResolvedValue(changed); + expect((await cg.getHdlSemantics({ executable: 'slang' })).facts.every(f => !f.sourceNodeId)).toBe(true); + run.mockResolvedValue({ ...result(), sources: { 'top.sv': source.replace('8', '9') } }); + expect((await cg.getHdlSemantics({ executable: 'slang' })).facts.every(f => !f.sourceNodeId)).toBe(true); + }); + it('preserves unknown macro columns, exact queries and truncation', async () => { + run.mockResolvedValue(result(ast(8, 0))); + const value = await cg.getHdlSemantics({ executable: 'slang', query: 'top', limit: 1 }); + expect(value.totalMatches).toBe(2); expect(value.truncated).toBe(true); + expect(value.facts[0].source?.column).toBeNull(); expect(value.facts[0].sourceNodeId).toBeUndefined(); + expect((await cg.getHdlSemantics({ executable: 'slang', query: 'missing' })).facts).toHaveLength(0); + await expect(cg.getHdlSemantics({ executable: 'slang', limit: 0 })).rejects.toThrow('1..1000'); + }); + it('recomputes overrides and keeps source graph after compiler failure', async () => { + run.mockResolvedValue(result(ast(12))); + expect((await cg.getHdlSemantics({ executable: 'slang', parameters: { W: '12' }, query: 'W' })).facts[0].value).toBe('12'); + expect(run.mock.calls[0][1].parameters).toEqual({ W: '12' }); + const before = cg.getNodesByName('W'); + run.mockRejectedValue(new Error('slang unavailable')); + await expect(cg.getHdlSemantics({ executable: 'missing' })).rejects.toThrow('unavailable'); + expect(cg.getNodesByName('W')).toEqual(before); + expect(cg.getHdlProfileStatus()?.state).toBe('matches'); + }); +}); diff --git a/docs/hdl-semantics.md b/docs/hdl-semantics.md new file mode 100644 index 000000000..764b25cc9 --- /dev/null +++ b/docs/hdl-semantics.md @@ -0,0 +1,80 @@ +# Вычисленные параметры и ширины HDL через slang + +Команда `hdl-semantic` и API `CodeGraph.getHdlSemantics()` запускают установленный +slang по явному запросу. Нужны инициализированный проект и активный HDL build +profile в `codegraph.json`. Факты возвращаются отдельно от source graph; данные +графа не перезаписываются. Slang автоматически не устанавливается. + +## CLI + +```sh +codegraph hdl-semantic top.W --path /path/to/project --slang /path/to/slang +codegraph hdl-semantic crc_out --path /path/to/project --slang /path/to/slang +codegraph hdl-semantic NoSlvMst --path /path/to/project --slang /path/to/slang \ + --top synth_axi_lite_xbar --parameter NoSlvMst=4 +``` + +Ответ — JSON с facts и provenance. Query выбирает точное имя, instance path или +`instancePath.name`; без query возвращается первая ограниченная выборка. +`--limit` задаёт 1..1000 фактов (по умолчанию 100), totalMatches/truncated +показывают обрезку. Для нескольких overrides перечислить NAME=VALUE после +`--parameter`. Имена/значения передаются отдельными arguments без shell. + +Если slang отклоняет UART из-за use-before-declare, совместимость можно включить +явно через `--allow-use-before-declare`. Она входит в provenance/fingerprint и +не включается автоматически после compiler error. + +## API + +```ts +const result = await cg.getHdlSemantics({ + executable: '/path/to/slang', + top: 'top', + parameters: { W: '16' }, + query: 'top.data', + limit: 20, + signal: abortController.signal, +}); +``` + +Параметры возвращаются как строки evaluated values, чтобы не терять большие +целые и неизвестные разряды. Port width возвращается только для типов, +которые importer умеет вычислить достоверно; отсутствие width не означает 0. +Instance-specific facts не сливаются между экземплярами одного module. + +Каждый ответ фиксирует slang version, executable hash, active profile, +configuration и semantic fingerprints, top, overrides, language standard, +separate compilation-unit mode, runner version, compiler limits и compatibility mode. +`sourceNodeId` добавляется только при совпадении профиля, raw hash файла и +единственном совпадении имени/строки source declaration. При устаревшем или +другом source graph вычисленные facts доступны без предполагаемых node links. + +Source location сохраняет frontend coordinates; это не обещание UTF16 offsets +CodeGraph. Column null означает неизвестную колонку, например у macro-generated +объявления. Macro invocation line не выдаётся за точный expanded token range. + +## Границы первой реализации + +- Вычисление по запросу, без persistent semantic cache и автоматического запуска + при index/sync/explore. Следующий запрос использует новый snapshot. +- Поддержанный slang contract проверяется runner/importer; неизвестная версия + или форма AST отвергается. AST, записанный при ошибке compiler, не принимается. +- Snapshot: 1 MiB на input, 64 MiB суммарно; AST максимум 64 MiB, stdout/stderr + суммарно 1 MiB. Фиксированы compiler limits для hierarchy/generate/constant + evaluation; это не жёсткий OS RSS limit. Временные данные хранятся в + `~/storage/codegraph-semantic-runs` (override `CODEGRAPH_SEMANTIC_TMPDIR` вне + project root) и удаляются после запроса. +- Snapshot включает выбранные inputs и literal include dependencies. + Некорректные/выходящие за project root пути и неподдержанные формы include + отклоняются. Это не sandbox для запуска недоверенного compiler executable. +- Full macro expansion выполняет compiler в допустимом snapshot context; + точная цепочка expansion/spelling locations ещё не экспортируется. +- Ошибка, отсутствие slang или отмена не изменяют source graph. Windows runner + пока не включён; процессная отмена требует отдельной проверки на этой ОС. +- Это параметры/порты и их compiler context, не simulation, synthesis, timing, + CDC или доказательство аппаратной корректности. Semantics не добавлена в + обычный MCP explore; для явного запроса использовать CLI/API выше. + +Проверенные версии, реальные корпуса и результаты — в +`validation-hdl-semantics-2026-09-12.md`. План дальнейшей интеграции — +`../VERILOG_TRACKER.md`. diff --git a/docs/validation-hdl-semantics-2026-09-12.md b/docs/validation-hdl-semantics-2026-09-12.md new file mode 100644 index 000000000..65fcfc8a7 --- /dev/null +++ b/docs/validation-hdl-semantics-2026-09-12.md @@ -0,0 +1,73 @@ +# Проверка первой интеграции HDL semantics + +Дата: 2026-09-12. База до пакета `11b3b44b`; extraction stamp остаётся 38: +source extraction/schema не меняется. Добавлены on-demand API +`CodeGraph.getHdlSemantics` и CLI `hdl-semantic`, optional slang runner и importer. +Инструкция и ограничения: `hdl-semantics.md`. + +## Проверки интеграции + +38 focused tests прошли: importer 10, runner 15, API 4, review controls 8, +compiled CLI 1. Покрыты shared bodies и отдельные instance parameters, +generate indices/instance arrays, malformed refs/cycles/oversized AST, +сложные unknown types и source coordinates. Runner проверен настоящими +subprocesses: timeout, AbortSignal, остановка descendants, cleanup, input/output +limits, BOM, source/snapshot modifications, missing-header creation и options +mutation. CLI передаёт overrides и отвергает duplicate parameters/invalid limits. + +Review помог исправить происхождение параметров при мутации caller options, +типовую совместимость sourceNodeId и проверку диапазона source column. Повторные +controls подтвердили отсутствие ложной связи macro port с одноимённым method. +Сложные неизвестные widths не преобразуются в 0; null column остаётся unknown. + +## Реальные корпуса через новую API, затем compiled CLI + +Использованы отдельные копии frozen UART/CRC и AXI с восстановленными dependency +revisions A2. Originals не изменялись. Slang: `11.0.448+e222e7dc0` из установленного +OSS CAD Suite 20260825; проверен существующий wrapper executable и его hash. +Это hash launcher-файла, не fingerprint всех связанных библиотек/toolchain. + +| Корпус / запрос | Проверенный результат | Время одного локального запроса | +| --- | --- | ---: | +| UART / top.CLK_FREQ, explicit compatible | value 50000000, width 32, sourceNodeId | 98 мс | +| CRC / crc_out | width 16, sourceNodeId | 70 мс | +| AXI / NoSlvMst=2 | value 32'd2, width 32, sourceNodeId | 566 мс | +| AXI / NoSlvMst=4 | value 32'd4, width 32, sourceNodeId | 638 мс | + +Это одиночные measurements для smoke validation, не performance guarantee. +Fingerprint AXI меняется между overrides. Строгий UART возвращает compiler error; +compatibility включается только явно. Отсутствующий executable возвращает ошибку, +source graph statistics остаются прежними (динамический getStats.lastUpdated +исключён из сравнения). На реальном compiled CLI повторён AXI override 4: +проверены value, sourceNodeId и compilationUnitMode=separate. + +## Include change, два экземпляра и sync/rebuild + +Отдельный небольшой RTL control использует leaf с parameter W из header, +два экземпляра `top.a` и `top.b`, у второго override W=16. + +1. Начальный header WIDTH=8: widths 8/16. +2. Header изменён на WIDTH=12: следующий on-demand запрос возвращает 12/16, + fingerprint меняется, sourceGraphProfileMatches=false, старые node links не выдаются. +3. Scoped sync include-файла: sourceGraphProfileMatches=true, ссылки доступны. +4. CodeGraph.recreate и полная indexAll: facts, sourceNodeId и semantic fingerprint + совпадают с результатом после sync. + +Это подтверждает первую вертикаль вычислений; persistent semantic cache, +автоматическая elaboration при sync и semantic edges в SQLite не добавлены. + +## Build и полная матрица + +Production build с viewer и 30 grammar assets прошёл. +Полный native: 306 test files, 4932 passed, 9 skipped, 0 failed. +Полный WASM: 305 test files passed, 1 skipped; 4922 passed, 19 skipped, 0 failed. +Матрица выполнена последовательно с двумя workers; 38 focused tests также прошли. + +## Оставшиеся границы + +Macro-generated source locations могут иметь column 0 (в API null); точная +expansion/spelling chain остаётся B2. Macro-computed include paths и пути вне +project snapshot пока отклоняются. Нет полного type/struct/enum/query coverage, +сохранённого semantic cache и автоматического MCP compiler query. Windows runner +явно отключён до проверки process-tree cancellation; реальные macOS запуски +не выполнялись. Simulation, synthesis, timing/CDC и аппаратные проверки не заявлены. diff --git a/src/bin/codegraph.ts b/src/bin/codegraph.ts index 69ec33d9d..81f22b8f7 100644 --- a/src/bin/codegraph.ts +++ b/src/bin/codegraph.ts @@ -1315,6 +1315,50 @@ program * subagents (which don't inherit MCP tools, #704) and non-MCP harnesses — * can reach the graph through a plain shell command. */ +program + .command('hdl-semantic [query]') + .description('Compute HDL parameters and port widths with optional slang (exact symbol or instance query)') + .requiredOption('--slang ', 'Path to the installed slang executable') + .option('-p, --path ', 'Project path') + .option('--top ', 'Single top module (defaults to the active profile top)') + .option('--parameter ', 'Top-level parameter overrides') + .option('--allow-use-before-declare', 'Explicit slang compatibility mode') + .option('--limit ', 'Maximum facts (1..1000)', '100') + .action(async (query: string | undefined, options: { slang: string; path?: string; top?: string; + parameter?: string[]; allowUseBeforeDeclare?: boolean; limit: string }) => { + const projectPath = resolveProjectPath(options.path); + try { + if (!isInitialized(projectPath)) throw new Error('HDL semantic queries require an initialized CodeGraph project'); + const parameters: Record = Object.create(null); + for (const argument of options.parameter ?? []) { + const separator = argument.indexOf('='); + if (separator < 1 || !argument.slice(separator + 1)) throw new Error('Parameter must be NAME=VALUE'); + const name = argument.slice(0, separator); + if (Object.prototype.hasOwnProperty.call(parameters, name)) throw new Error('Duplicate HDL parameter override: ' + name); + parameters[name] = argument.slice(separator + 1); + } + const { default: CodeGraph } = await loadCodeGraph(); + const cg = await CodeGraph.open(projectPath); + const controller = new AbortController(); + const interrupt = () => controller.abort(); + process.once('SIGINT', interrupt); + process.once('SIGTERM', interrupt); + try { + const result = await cg.getHdlSemantics({ executable: options.slang, top: options.top, + parameters, allowUseBeforeDeclare: options.allowUseBeforeDeclare, query, limit: Number(options.limit), + signal: controller.signal }); + console.log(JSON.stringify(result)); + } finally { + process.removeListener('SIGINT', interrupt); + process.removeListener('SIGTERM', interrupt); + cg.close(); + } + } catch (err) { + error(`HDL semantics failed: ${err instanceof Error ? err.message : String(err)}`); + process.exitCode = 1; + } + }); + program .command('explore ') .description('Explore an area: relevant symbols\' source + call paths in one shot (same output as the codegraph_explore MCP tool)') diff --git a/src/hdl/semantic-import.ts b/src/hdl/semantic-import.ts new file mode 100644 index 000000000..149081edf --- /dev/null +++ b/src/hdl/semantic-import.ts @@ -0,0 +1,211 @@ +import * as path from 'node:path'; + +export interface HdlSemanticFact { + kind: 'parameter' | 'port'; + name: string; + instancePath: string; + value?: string; + type?: string; + width?: number; + direction?: string; + source?: { file: string; line: number; column: number | null }; +} + +type AstObject = Record; +const object = (value: unknown): value is AstObject => typeof value === 'object' && value !== null && !Array.isArray(value); +function fail(message: string): never { throw new Error(`Invalid or unsupported slang AST: ${message}`); } +const MAX_DEPTH = 128; +const MAX_NODES = 1_000_000; +const MAX_FACTS = 100_000; +const MAX_TEXT = 64 * 1024 * 1024; +const INTEGER_WIDTHS = new Map(Object.entries({ bit: 1, logic: 1, reg: 1, byte: 8, shortint: 16, int: 32, integer: 32, longint: 64, time: 64 })); + +/** Import facts from successful frontend output; the caller must check compiler + * exit/diagnostics first (slang can emit JSON even when compilation failed). + * Addresses are temporary reference keys only, never public identities. */ +export function importSlangSemantics(ast: unknown, sourceRoot: string): HdlSemanticFact[] { + if (!object(ast) || !object(ast.design) || ast.design.kind !== 'Root' || !Array.isArray(ast.design.members)) fail('expected design Root with members'); + const design = ast.design as AstObject; + const root = path.resolve(sourceRoot); + const catalog = new Map(); + const active = new Set(); + const seen = new Set(); + const pending: Array<{ value: unknown; depth: number; exit?: boolean }> = [{ value: ast, depth: 0 }]; + let nodeCount = 0, textSize = 0; + while (pending.length) { + const { value, depth, exit } = pending.pop()!; + if (exit) { active.delete(value as object); continue; } + if (++nodeCount > MAX_NODES || depth > MAX_DEPTH) fail('input size/depth limit exceeded'); + if (typeof value === 'string') { textSize += value.length; if (textSize > MAX_TEXT) fail('input text limit exceeded'); } + if (!object(value) && !Array.isArray(value)) continue; + if (active.has(value)) fail('cyclic input object'); + if (seen.has(value)) continue; + seen.add(value); active.add(value); + pending.push({ value, depth, exit: true }); + if (object(value) && value.addr !== undefined) { + const addr = typeof value.addr === 'number' && Number.isSafeInteger(value.addr) && value.addr >= 0 + ? String(value.addr) : typeof value.addr === 'string' && /^\d+$/.test(value.addr) ? value.addr : fail('malformed address'); + const existing = catalog.get(addr); + if (existing && (existing.kind !== value.kind || existing.name !== value.name)) fail('conflicting address definitions'); + if (!existing || Object.keys(value).length > Object.keys(existing).length) catalog.set(addr, value); + } + const values = Array.isArray(value) ? value : Object.values(value); + if (values.length > MAX_NODES - nodeCount - pending.length) fail('input node limit exceeded'); + for (let i = values.length - 1; i >= 0; i--) pending.push({ value: values[i], depth: depth + 1 }); + } + const resolve = (value: unknown): AstObject => { + if (object(value)) return value; + if (typeof value === 'string') { + const match = /^(\d+)\s/.exec(value); + if (match && catalog.has(match[1]!)) return catalog.get(match[1]!)!; + } + return fail('unresolved symbol/body reference'); + }; + const members = (scope: AstObject): unknown[] => { + if (scope.members === undefined) return []; + if (!Array.isArray(scope.members)) return fail('members must be an array'); + return scope.members; + }; + const nameOf = (node: AstObject): string => { + if (typeof node.name !== 'string' || !node.name || node.name.length > 4096) return fail('missing or oversized symbol name'); + return node.name; + }; + const segment = (name: string): string => /^[A-Za-z_][A-Za-z0-9_$]*$/.test(name) ? name : `\\${name} `; + const join = (parent: string, name: string): string => parent ? `${parent}.${segment(name)}` : segment(name); + const range = (value: unknown): [number, number] => { + const match = typeof value === 'string' && /^\[\s*(-?\d+)\s*:\s*(-?\d+)\s*\]$/.exec(value); + if (!match) return fail('expected a constant numeric range'); + const left = Number(match[1]), right = Number(match[2]); + if (!Number.isSafeInteger(left) || !Number.isSafeInteger(right) || !Number.isSafeInteger(Math.abs(left - right) + 1)) return fail('range exceeds exact numeric bounds'); + return [left, right]; + }; + const stripAddresses = (text: string): string | undefined => { + let unknown = false; + const cleaned = text.replace(/\b(\d+)\s+(?=[A-Za-z_$\\])/g, (match, addr: string) => { + if (catalog.has(addr)) return ''; + unknown = true; return match; + }); + return unknown ? undefined : cleaned; + }; + const typeInfo = (value: unknown, ancestors = new Set()): { type?: string; width?: number } => { + if (typeof value === 'string') { + const ref = /^(\d+)\s/.exec(value); + if (ref) { + const target = catalog.get(ref[1]!); + if (!target) return {}; + return { ...typeInfo(target, ancestors), type: stripAddresses(value) }; + } + // Composite pretty-printed strings do not prove packed vs unpacked shape. + const base = value.replace(/\s+(signed|unsigned)$/, ''); + return { type: stripAddresses(value), ...(INTEGER_WIDTHS.has(base) ? { width: INTEGER_WIDTHS.get(base)! } : {}) }; + } + if (!object(value)) return {}; + if (ancestors.size >= MAX_DEPTH || ancestors.has(value)) return fail('cyclic or overly deep type'); + const next = new Set(ancestors); next.add(value); + const name = typeof value.name === 'string' && value.name ? stripAddresses(value.name) : undefined; + if (value.kind === 'TypeAlias') return { ...typeInfo(value.target, next), ...(name ? { type: name } : {}) }; + if (value.kind === 'ScalarType' || value.kind === 'PredefinedIntegerType') { + const base = name?.replace(/\s+(signed|unsigned)$/, '') ?? ''; + return { type: name, ...(INTEGER_WIDTHS.has(base) ? { width: INTEGER_WIDTHS.get(base)! } : {}) }; + } + if (value.kind === 'PackedArrayType') { + const [left, right] = range(value.range); + const element = typeInfo(value.elementType, next); + const width = element.width === undefined ? undefined : element.width * (Math.abs(left - right) + 1); + if (width !== undefined && !Number.isSafeInteger(width)) fail('packed width exceeds exact numeric bounds'); + return { ...(element.type ? { type: `${element.type}[${left}:${right}]` } : {}), ...(width !== undefined ? { width } : {}) }; + } + return name ? { type: name } : {}; + }; + const sourceOf = (node: AstObject): HdlSemanticFact['source'] => { + const file = node.source_file; + if (file === undefined) return undefined; + if (typeof file !== 'string') return fail('invalid source filename'); + if (!file || file.startsWith('<') || (!path.isAbsolute(file) && path.win32.isAbsolute(file))) return undefined; + const full = path.resolve(root, file.replace(/\\/g, '/')); + const relative = path.relative(root, full); + if (!relative || relative === '..' || relative.startsWith(`..${path.sep}`) || path.isAbsolute(relative)) return undefined; + const line = node.source_line, column = node.source_column; + if (!Number.isSafeInteger(line) || (line as number) < 0 || (column !== undefined && (!Number.isSafeInteger(column) || (column as number) < 0))) return fail('invalid source coordinates'); + if (line === 0) return undefined; + return { file: relative.split(path.sep).join('/'), line: line as number, column: column === undefined || column === 0 ? null : column as number }; + }; + const indexValue = (value: unknown): string => { + if (typeof value !== 'string' || !/^-?\d+$/.test(value) || !Number.isSafeInteger(Number(value))) return fail('generate index is not a known decimal integer'); + return String(Number(value)); + }; + + const facts: HdlSemanticFact[] = []; + const keys = new Set(); + let visits = 0, factText = 0; + const visit = (node: AstObject, scopePath: string, ancestry: Set, depth: number): void => { + if (++visits > MAX_FACTS || depth > MAX_DEPTH || scopePath.length > 16384) fail('reachable hierarchy size/depth limit exceeded'); + if (ancestry.has(node)) fail('cyclic instance hierarchy'); + const chain = new Set(ancestry); chain.add(node); + if (node.kind === 'Parameter' || node.kind === 'Port') { + const name = nameOf(node); + const fact: HdlSemanticFact = { kind: node.kind === 'Parameter' ? 'parameter' : 'port', name, instancePath: scopePath, ...typeInfo(node.type) }; + if (node.kind === 'Parameter' && ['string', 'number', 'boolean'].includes(typeof node.value)) fact.value = String(node.value); + if (node.kind === 'Port' && typeof node.direction === 'string') fact.direction = node.direction; + const source = sourceOf(node); if (source) fact.source = source; + const key = JSON.stringify([fact.kind, scopePath, name]); + if (keys.has(key)) fail('duplicate fact identity'); + keys.add(key); factText += JSON.stringify(fact).length; + if (facts.length >= MAX_FACTS || factText > MAX_TEXT) fail('fact output size limit exceeded'); + facts.push(fact); return; + } + if (node.kind === 'Instance') { + const body = resolve(node.body); + if (body.kind !== 'InstanceBody') fail('instance body has wrong kind'); + visit(body, scopePath, chain, depth + 1); return; + } + if (node.kind === 'GenerateBlock' && node.isUninstantiated === true) return; + if (node.kind === 'GenerateBlockArray') { + // Slang's loopVariable can refer to an evaluator-only symbol absent + // from the serialized catalog. Its explicit name still identifies the + // matching implicit local Parameter in every materialized iteration. + const variableName = object(node.loopVariable) ? nameOf(node.loopVariable) + : typeof node.loopVariable === 'string' ? /^\d+ (.+)$/.exec(node.loopVariable)?.[1] : undefined; + if (!variableName) fail('missing generate loop variable name'); + const indices = new Set(); + for (const entry of members(node)) { + const block = resolve(entry); + if (block.kind === 'Genvar') continue; + if (block.kind !== 'GenerateBlock') fail('invalid generate array member'); + if (block.isUninstantiated === true) continue; + const parameters = members(block).map(resolve).filter(n => n.kind === 'Parameter' && n.name === variableName); + if (parameters.length !== 1) fail('missing or ambiguous generate index parameter'); + const index = indexValue(parameters[0]!.value); + if (indices.has(index)) fail('duplicate generate index'); + indices.add(index); visit(block, `${scopePath}[${index}]`, chain, depth + 1); + } + return; + } + if (node.kind === 'InstanceArray') { + const [left, right] = range(node.range); + const entries = members(node); + if (entries.length !== Math.abs(left - right) + 1) fail('instance array length disagrees with range'); + // Slang serializes elements in ascending numeric index order, including + // descending declarations; verified with distinct per-index defparams. + for (let i = 0; i < entries.length; i++) { + const child = resolve(entries[i]); + if (!['Instance', 'InstanceArray'].includes(String(child.kind))) fail('invalid instance array member'); + visit(child, `${scopePath}[${Math.min(left, right) + i}]`, chain, depth + 1); + } + return; + } + if (!['InstanceBody', 'GenerateBlock', 'Root'].includes(String(node.kind))) return; + for (const entry of members(node)) { + const child = resolve(entry); + if (['Instance', 'InstanceArray', 'GenerateBlockArray', 'GenerateBlock'].includes(String(child.kind))) { + if (child.kind === 'GenerateBlock' && child.isUninstantiated === true) continue; + visit(child, join(scopePath, nameOf(child)), chain, depth + 1); + } else if (child.kind === 'Parameter' || child.kind === 'Port') visit(child, scopePath, chain, depth + 1); + } + }; + for (const entry of members(design)) { + const node = resolve(entry); + if (node.kind === 'Instance' || node.kind === 'InstanceArray') visit(node, segment(nameOf(node)), new Set(), 0); + } + return facts; +} diff --git a/src/hdl/semantic-runner.ts b/src/hdl/semantic-runner.ts new file mode 100644 index 000000000..6c40734c3 --- /dev/null +++ b/src/hdl/semantic-runner.ts @@ -0,0 +1,235 @@ +import * as fs from 'node:fs'; +import * as path from 'node:path'; +import * as os from 'node:os'; +import { createHash } from 'node:crypto'; +import { spawn } from 'node:child_process'; +import { loadHdlProfile, isReservedHdlPath, type ActiveHdlProfile } from './profile'; + +export interface RunSlangOptions { + executable: string; + top?: string; + parameters?: Record; + allowUseBeforeDeclare?: boolean; + signal?: AbortSignal; + timeoutMs?: number; +} +export interface RunSlangResult { + ast: unknown; + /** The deleted immutable snapshot root; use only to remap AST paths to sources keys. */ + sourceRoot: string; + profileName: string; + configurationFingerprint: string; + fingerprint: string; + version: string; + executableSha256: string; + diagnostics: string[]; + sources: Record; + top: string; + parameters: Record; + allowUseBeforeDeclare: boolean; + languageStandard: '1364-2005' | '1800-2023'; + compilationUnitMode: 'separate'; + runnerVersion: string; + compilerLimits: readonly string[]; +} +const RUNNER_VERSION = 'slang-snapshot-v1'; +const COMPILER_LIMITS = Object.freeze(['--max-hierarchy-depth=128','--max-generate-steps=10000','--max-instance-array=10000','--max-constexpr-steps=1000000','--max-constant-size=1048576']); +const FILE_LIMIT = 1024 * 1024, TOTAL_LIMIT = 64 * 1024 * 1024, AST_LIMIT = 64 * 1024 * 1024; +const OUTPUT_LIMIT = 1024 * 1024, FILE_COUNT_LIMIT = 20000; +const digest = (content: Buffer | string) => createHash('sha256').update(content).digest('hex'); +function abort(signal?: AbortSignal): void { if (signal?.aborted) throw new Error('slang semantic run cancelled'); } +function resolveExecutable(name: string): string { + if (!name || name.includes('\0')) throw new Error('A slang executable must be specified'); + const candidates = name.includes('/') ? [path.resolve(name)] : (process.env.PATH ?? '').split(path.delimiter).map(dir => path.join(dir, name)); + for (const candidate of candidates) { + try { fs.accessSync(candidate, fs.constants.X_OK); const real = fs.realpathSync(candidate); if (fs.statSync(real).isFile()) return real; } catch { /* try next PATH entry */ } + } + throw new Error(`slang executable is unavailable: ${name}`); +} +async function executableHash(file: string): Promise { + const hash = createHash('sha256'); + for await (const chunk of fs.createReadStream(file)) hash.update(chunk); + return hash.digest('hex'); +} + +/** Literal includes only. Macro-computed includes cannot be snapshotted without a compiler filesystem API. */ +function includes(source: string): Array<{ name: string; local: boolean }> { + const result: Array<{name: string; local: boolean}> = []; + for (let i = 0; i < source.length;) { + if (source.startsWith('//', i)) { const end = source.indexOf('\n', i); i = end < 0 ? source.length : end; continue; } + if (source.startsWith('/*', i)) { const end = source.indexOf('*/', i + 2); i = end < 0 ? source.length : end + 2; continue; } + if (source[i] === '"') { i++; while (i < source.length) { if (source[i] === '\\') i += 2; else if (source[i++] === '"') break; } continue; } + if (source[i] === '\\') { i++; while (i < source.length && !/\s/.test(source[i]!)) i++; continue; } + const match = source.slice(i).match(/^`include\b[ \t]*/); + if (!match) { i++; continue; } + i += match[0].length; + const opening = source[i], closing = opening === '"' ? '"' : opening === '<' ? '>' : ''; + if (!closing) throw new Error('Macro-computed include paths are unsupported by the slang snapshot runner'); + const end = source.indexOf(closing, i + 1); + if (end < 0 || /[\r\n\\`]/.test(source.slice(i + 1, end))) throw new Error('Unsupported literal include path in slang snapshot'); + result.push({name: source.slice(i + 1, end), local: opening === '"'}); i = end + 1; + } + return result; +} +interface Snapshot { + sources: Record; + hashes: Record; + missing: string[]; +} +function collect(root: string, profile: ActiveHdlProfile, signal?: AbortSignal, deadline?: number): Snapshot { + const check = () => { abort(signal); if(deadline && Date.now() >= deadline)throw new Error('slang semantic run timed out'); }; + const macroIncludes = Object.values(profile.defines).flatMap(includes); + const sources: Record = Object.create(null), hashes: Record = Object.create(null); + const missing = new Set(), visitedDirs = new Set(); + const queue: string[] = []; + let bytes = 0, includeCandidates = 0; + const relative = (file: string) => path.relative(root, file).split(path.sep).join('/'); + const confined = (file: string): string => { + const rel = relative(file); + if (!rel || rel === '..' || rel.startsWith('../') || path.isAbsolute(rel) || isReservedHdlPath(rel)) throw new Error('slang snapshot input escapes the project or uses a reserved path'); + let current = root; + for (const part of rel.split('/')) { + current = path.join(current, part); + try { if (fs.lstatSync(current).isSymbolicLink()) throw new Error('Symbolic links are unsupported in slang snapshot inputs'); } + catch (error) { if ((error as NodeJS.ErrnoException).code === 'ENOENT') break; throw error; } + } + return rel; + }; + const add = (file: string, required: boolean): void => { + check(); + if(!required && ++includeCandidates > 100000)throw new Error('slang snapshot exceeds the include candidate limit'); + const rel = confined(file); + if (Object.prototype.hasOwnProperty.call(hashes, rel)) return; + let stat: fs.Stats; + try { stat = fs.statSync(file); } catch (error) { + if (!required && (error as NodeJS.ErrnoException).code === 'ENOENT') { missing.add(rel); return; } + throw error; + } + if (!stat.isFile()) throw new Error('slang snapshot input is not a regular file'); + if (stat.size > FILE_LIMIT || bytes + stat.size > TOTAL_LIMIT || queue.length >= FILE_COUNT_LIMIT) throw new Error('slang snapshot exceeds the input size/file count limit'); + const content = fs.readFileSync(file); + if (content.length > FILE_LIMIT || bytes + content.length > TOTAL_LIMIT) throw new Error('slang snapshot exceeds the input size limit'); + let text: string; + try { text = new TextDecoder('utf-8', {fatal:true,ignoreBOM:true}).decode(content); } catch { throw new Error(`Non-UTF-8 file in slang snapshot: ${rel}`); } + sources[rel] = text; hashes[rel] = digest(content); bytes += content.length; queue.push(rel); + }; + const tree = (dir: string, depth = 0): void => { + check(); + if(depth > 128 || visitedDirs.size >= FILE_COUNT_LIMIT)throw new Error('slang snapshot exceeds the directory traversal limit'); + if (visitedDirs.has(dir)) return; visitedDirs.add(dir); + for (const entry of fs.readdirSync(dir, {withFileTypes:true})) { + const file = path.join(dir, entry.name), rel = relative(file); + if (isReservedHdlPath(rel)) continue; + confined(file); + if (entry.isDirectory()) tree(file,depth+1); else if (entry.isFile()) add(file, true); else throw new Error('Special files are unsupported in slang snapshot inputs'); + } + }; + for (const file of profile.files) add(path.resolve(root,file), true); + for (const dir of profile.includeDirs) { + const absolute = path.resolve(root,dir); + if (absolute !== root) confined(absolute); + tree(absolute); + } + // Read every literal candidate, including inactive branches and lower-priority + // shadow candidates. Missing candidates are fingerprinted and checked again. + for (let index = 0; index < queue.length; index++) { + const file = queue[index]!; + for (const include of [...includes(sources[file]!), ...macroIncludes]) { + if (!include.name || path.isAbsolute(include.name) || /^[A-Za-z]:/.test(include.name)) throw new Error('Absolute include paths are unsupported by the slang snapshot runner'); + const bases = [...(include.local ? [path.dirname(path.join(root,file))] : []), ...profile.includeDirs.map(dir => path.join(root,dir))]; + for (const base of bases) add(path.resolve(base,include.name), false); + } + } + return {sources,hashes:Object.fromEntries(Object.entries(hashes).sort(([a],[b])=>a.localeCompare(b))),missing:[...missing].sort()}; +} + +function run(executable: string, args: string[], cwd: string, timeout: number, signal?: AbortSignal, astFile?: string): Promise<{stdout:string;stderr:string}> { + abort(signal); + return new Promise((resolve,reject) => { + const child = spawn(executable,args,{cwd,detached:true,shell:false,stdio:['ignore','pipe','pipe']}); + let stdout = '', stderr = '', size = 0, failure: Error | undefined, finished = false; + const stop = (message: string): void => { + failure ??= new Error(message); + if (child.pid) { try { process.kill(-child.pid,'SIGKILL'); } catch { try { child.kill('SIGKILL'); } catch { /* already exited */ } } } + }; + const timer = setTimeout(()=>stop('slang semantic run timed out'),timeout); + const onAbort = () => stop('slang semantic run cancelled'); + signal?.addEventListener('abort',onAbort,{once:true}); + const monitor = astFile ? setInterval(()=>{ + try { if (fs.statSync(astFile).size > AST_LIMIT) stop('slang AST output exceeds 64 MiB'); } catch { /* not created yet */ } + },25) : undefined; + const finish = (error?: Error): void => { + if (finished) return; finished=true; clearTimeout(timer); if(monitor)clearInterval(monitor); signal?.removeEventListener('abort',onAbort); + if(error)reject(error); else resolve({stdout,stderr}); + }; + child.stdout.on('data',(chunk:Buffer)=>{size+=chunk.length;if(size>OUTPUT_LIMIT)stop('slang output exceeds 1 MiB');else stdout+=chunk.toString('utf8');}); + child.stderr.on('data',(chunk:Buffer)=>{size+=chunk.length;if(size>OUTPUT_LIMIT)stop('slang output exceeds 1 MiB');else stderr+=chunk.toString('utf8');}); + child.on('error',error=>finish(error)); + child.on('close',(code)=>{ + // Do not leave detached descendants alive after the owned frontend exits. + if(child.pid)try{process.kill(-child.pid,'SIGKILL');}catch{/* group already gone */} + finish(failure ?? (code===0 ? undefined : new Error(`slang failed (${code}): ${stderr.slice(0,4000) || stdout.slice(0,4000)}`))); + }); + if(signal?.aborted)onAbort(); + }); +} + +/** Optional on-demand frontend. Snapshot confinement is not an adversarial OS compiler sandbox. */ +export async function runSlangSemantics(projectRoot: string, options: RunSlangOptions): Promise { + if(process.platform==='win32')throw new Error('slang semantic runner is not supported on Windows until process-tree cancellation is verified'); + const signal=options.signal, allowUseBeforeDeclare=!!options.allowUseBeforeDeclare; + abort(signal); + const timeout=options.timeoutMs??30000; + if(!Number.isSafeInteger(timeout)||timeout<1||timeout>300000)throw new Error('slang timeoutMs must be between 1 and 300000'); + const deadline=Date.now()+timeout, remaining=()=>Math.max(1,deadline-Date.now()); + const root=fs.realpathSync(projectRoot), loaded=loadHdlProfile(root); + if(loaded.status!=='active'||!loaded.profile)throw new Error(`slang semantics requires a valid active HDL profile: ${loaded.diagnostics.join('; ')||loaded.status}`); + const profile=loaded.profile; + const top=options.top??(profile.topModules.length===1?profile.topModules[0]:undefined); + if(!top||!/^[A-Za-z_][A-Za-z0-9_$]*$/.test(top))throw new Error('slang semantics requires one explicit simple top module'); + if(!profile.files.length)throw new Error('slang semantics requires at least one source unit'); + const parameters:Record=Object.create(null); + for(const [name,value] of Object.entries(options.parameters??{}).sort(([a],[b])=>a.localeCompare(b))) { + if(!/^[A-Za-z_][A-Za-z0-9_$]*$/.test(name)||typeof value!=='string'||value.includes('\0'))throw new Error('Invalid slang parameter override'); + parameters[name]=value; + } + const executable=resolveExecutable(options.executable), executableSha256=await executableHash(executable); + const before=collect(root,profile,signal,deadline); + const base=process.env.CODEGRAPH_SEMANTIC_TMPDIR||path.join(os.homedir(),'storage','codegraph-semantic-runs'); + fs.mkdirSync(base,{recursive:true,mode:0o700}); + const baseRelative=path.relative(root,fs.realpathSync(base)); + if(!baseRelative||(!baseRelative.startsWith(`..${path.sep}`)&&baseRelative!=='..'&&!path.isAbsolute(baseRelative)))throw new Error('Semantic snapshot directory must be outside the source project'); + const temp=fs.mkdtempSync(path.join(base,'run-')),sourceRoot=path.join(temp,'sources'),astFile=path.join(temp,'ast.json'); + try { + fs.mkdirSync(sourceRoot,{mode:0o700}); + for(const dir of profile.includeDirs) fs.mkdirSync(path.join(sourceRoot,dir),{recursive:true,mode:0o700}); + for(const [file,source] of Object.entries(before.sources)) {const dest=path.join(sourceRoot,file);fs.mkdirSync(path.dirname(dest),{recursive:true,mode:0o700});fs.writeFileSync(dest,source,{mode:0o600});} + const version=(await run(executable,['--version'],sourceRoot,Math.min(remaining(),5000),signal)).stdout.trim(); + if(!/^slang version 11\.0(?:\.\d+)?(?:\+[A-Za-z0-9]+)?(?:\s.*)?$/.test(version))throw new Error(`Unsupported slang schema family: ${version.slice(0,200)}`); + const languageStandard=profile.languageMode==='verilog'?'1364-2005':'1800-2023'; + const args=['--ast-json',astFile,'--ast-json-source-info','--ast-json-detailed-types','--threads=1','--error-limit=20',`--std=${languageStandard}`,'--top',top]; + args.push(...COMPILER_LIMITS); + if(allowUseBeforeDeclare)args.push('--allow-use-before-declare'); + for(const dir of profile.includeDirs)args.push('-I',path.join(sourceRoot,dir)); + for(const [name,value] of Object.entries(profile.defines))args.push(`-D${name}=${value}`); + for(const [name,value] of Object.entries(parameters).sort(([a],[b])=>a.localeCompare(b)))args.push('-G',`${name}=${value}`); + args.push('--',...profile.files); + const output=await run(executable,args,sourceRoot,remaining(),signal,astFile); + const stat=fs.lstatSync(astFile); + if(!stat.isFile()||stat.isSymbolicLink()||stat.size>AST_LIMIT)throw new Error('Invalid or oversized slang AST output'); + const astText=fs.readFileSync(astFile,'utf8');if(Buffer.byteLength(astText)>AST_LIMIT)throw new Error('slang AST output exceeds 64 MiB'); + const ast:unknown=JSON.parse(astText); + if(!ast||typeof ast!=='object'||Array.isArray(ast))throw new Error('slang AST root must be an object'); + const snapshotAfter=collect(sourceRoot,profile,signal,deadline); + if(JSON.stringify(before.hashes)!==JSON.stringify(snapshotAfter.hashes)||JSON.stringify(before.missing)!==JSON.stringify(snapshotAfter.missing))throw new Error('slang modified its source snapshot; result discarded'); + const afterConfig=loadHdlProfile(root); + const after=collect(root,profile,signal,deadline); + if(afterConfig.status!=='active'||afterConfig.profile?.fingerprint!==profile.fingerprint||JSON.stringify(before.hashes)!==JSON.stringify(after.hashes)||JSON.stringify(before.missing)!==JSON.stringify(after.missing))throw new Error('HDL sources or configuration changed during the slang run; result discarded'); + if(await executableHash(executable)!==executableSha256)throw new Error('slang executable changed during the run; result discarded'); + abort(signal); + if(Date.now()>=deadline)throw new Error('slang semantic run timed out'); + const provenance={configurationFingerprint:profile.fingerprint,hashes:before.hashes,missing:before.missing,version,executableSha256,top,parameters,allowUseBeforeDeclare,languageStandard,compilationUnitMode:'separate' as const,runnerVersion:RUNNER_VERSION,compilerLimits:COMPILER_LIMITS}; + return {ast,sourceRoot,profileName:profile.name,configurationFingerprint:profile.fingerprint,fingerprint:digest(JSON.stringify(provenance)),version,executableSha256, + diagnostics:[output.stdout,output.stderr].map(s=>s.trim()).filter(Boolean),sources:before.sources,top,parameters,allowUseBeforeDeclare,languageStandard,compilationUnitMode:'separate' as const,runnerVersion:RUNNER_VERSION,compilerLimits:COMPILER_LIMITS}; + } finally {fs.rmSync(temp,{recursive:true,force:true});} +} diff --git a/src/hdl/semantics.ts b/src/hdl/semantics.ts new file mode 100644 index 000000000..2f4870553 --- /dev/null +++ b/src/hdl/semantics.ts @@ -0,0 +1,74 @@ +import { createHash } from 'node:crypto'; +import { runSlangSemantics, type RunSlangOptions } from './semantic-runner'; +import { importSlangSemantics, type HdlSemanticFact } from './semantic-import'; +import type { HdlProfileStatus } from './status'; +import type { Node, FileRecord } from '../types'; + +export interface HdlSemanticOptions extends RunSlangOptions { + /** Exact fact name, instance path, or instance-qualified fact name. */ + query?: string; + limit?: number; +} +export interface HdlSemanticResult { + schemaVersion: 1; + provenance: { frontend: 'slang'; version: string; executableSha256: string; + profile: string; configurationFingerprint: string; fingerprint: string; top: string; + parameters: Record; allowUseBeforeDeclare: boolean; + languageStandard: string; compilationUnitMode: 'separate'; runnerVersion: string; compilerLimits: readonly string[] }; + sourceGraphProfileMatches: boolean; + facts: Array; + totalMatches: number; + truncated: boolean; + diagnostics: string[]; + limitations: string[]; +} +export interface HdlSemanticSourceGraph { + profile(): HdlProfileStatus | null; + stale(): boolean; + file(file: string): FileRecord | null | undefined; + nodes(file: string): Node[]; +} + +/** On-demand semantic view; no graph writes or persistent compiler cache. */ +export async function analyzeHdlSemantics(root: string, options: HdlSemanticOptions, + graph: HdlSemanticSourceGraph): Promise { + const limit = options.limit ?? 100; + const query = options.query; + if (!Number.isInteger(limit) || limit < 1 || limit > 1000) throw new Error('HDL semantic limit must be 1..1000'); + const result = await runSlangSemantics(root, options); + const facts = importSlangSemantics(result.ast, result.sourceRoot); + const profile = graph.profile(); + const linked = !graph.stale() && profile?.state === 'matches' && + profile.indexed.configurationFingerprint === result.configurationFingerprint; + const byFile = new Map(); + const matches = facts.filter(fact => !query || fact.name === query || + fact.instancePath === query || `${fact.instancePath}.${fact.name}` === query); + const selected = matches.slice(0, limit).map(fact => { + const source = fact.source; + if (!source) return fact; + const text = result.sources[source.file]; + const line = text?.split(/\r?\n/)[source.line - 1]; + // Column 0 / macro invocation remains line-only; never fabricate a source node link. + if (text === undefined || line === undefined) { const { source: _source, ...rest } = fact; return rest; } + if (!linked || source.column === null || source.column < 1 || source.column > Buffer.byteLength(line) + 1 || !line.includes(fact.name)) return fact; + if (!byFile.has(source.file)) { + const hash = createHash('sha256').update(text).digest('hex'); + byFile.set(source.file, graph.file(source.file)?.contentHash === hash ? graph.nodes(source.file) : []); + } + const nodes = byFile.get(source.file)!.filter(node => node.name === fact.name && node.startLine === source.line && + (fact.kind === 'parameter' ? node.kind === 'constant' : node.kind === 'field' && !!node.decorators?.includes('hdl:port'))); + return nodes.length === 1 ? { ...fact, sourceNodeId: nodes[0]!.id } : fact; + }); + return { schemaVersion: 1, provenance: { frontend: 'slang', version: result.version, + executableSha256: result.executableSha256, profile: result.profileName, + configurationFingerprint: result.configurationFingerprint, fingerprint: result.fingerprint, + top: result.top, parameters: { ...result.parameters }, allowUseBeforeDeclare: result.allowUseBeforeDeclare, + languageStandard: result.languageStandard, compilationUnitMode: result.compilationUnitMode, + runnerVersion: result.runnerVersion, compilerLimits: result.compilerLimits }, + sourceGraphProfileMatches: !!linked, facts: selected, totalMatches: matches.length, + truncated: matches.length > selected.length, diagnostics: result.diagnostics, + limitations: ['Computed on demand from a source snapshot; no persistent semantic cache.', + 'Source columns retain frontend coordinates; null means unavailable, including macro-generated declarations.', + 'Only supported parameter/port facts are returned; absent or unknown widths are not zero.', + 'Compiler semantics are not simulation, synthesis, timing or hardware validation.'] }; +} diff --git a/src/index.ts b/src/index.ts index 4d98018df..a665f5c71 100644 --- a/src/index.ts +++ b/src/index.ts @@ -31,6 +31,8 @@ import { QueryBuilder } from './db/queries'; import { loadHdlProfile } from './hdl/profile'; import { hdlDependenciesChanged } from './hdl/index-context'; import { buildHdlProfileStatus, type HdlProfileStatus } from './hdl/status'; +import { analyzeHdlSemantics, type HdlSemanticOptions, type HdlSemanticResult } from './hdl/semantics'; +export type { HdlSemanticOptions, HdlSemanticResult } from './hdl/semantics'; import { isInitialized, createDirectory, @@ -1278,6 +1280,14 @@ export class CodeGraph { } catch { return []; } } + /** Explicit optional compiler query; source graph remains available if compilation fails. */ + async getHdlSemantics(options: HdlSemanticOptions): Promise { + return analyzeHdlSemantics(this.projectRoot, options, { + profile: () => this.getHdlProfileStatus(), stale: () => this.isIndexStale(), + file: file => this.queries.getFileByPath(file), nodes: file => this.queries.getNodesByFile(file), + }); + } + getHdlProfileStatus(): HdlProfileStatus | null { const configuration = loadHdlProfile(this.projectRoot); const metadata = { name: this.queries.getMetadata('hdl_profile_name') || null, diff --git a/src/mcp/server-instructions.ts b/src/mcp/server-instructions.ts index 82f9f992b..132718e7c 100644 --- a/src/mcp/server-instructions.ts +++ b/src/mcp/server-instructions.ts @@ -60,6 +60,8 @@ calls; a grep/read exploration is dozens. ## Verilog / SystemVerilog +Computed parameters and port widths are available through the explicit codegraph hdl-semantic CLI with an installed slang executable and an active HDL profile. Standard explore returns source relationships; it does not automatically run the compiler. Compiler failures do not invalidate source navigation. + An optional codegraph.json HDL profile selects source units and conditional branches. Exploration reports the indexed profile separately from current configuration. On mismatch, sync/rebuild before interpreting results as the new profile; invalid configuration must be corrected. Snippets remain original source, including inactive branches. Includes contribute macro state; full macro expansion and elaboration are not performed. For signal readers/writers, pass one exact or qualified signal name as query and set hdlAccess to read, write, readwrite, control, event, or all. Read includes control/event and readwrite; write includes readwrite. Results show source positions and known formal-argument direction evidence. Unknown references remain unclassified; empty results do not prove absence of access. From 13df92bec748e18347458de332a9d2ad57586a4b Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 19:31:55 +0300 Subject: [PATCH 22/23] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20compiler=20provenance=20HDL=20=D0=BC=D0=B0?= =?UTF-8?q?=D0=BA=D1=80=D0=BE=D1=81=D0=BE=D0=B2=20=D1=87=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B7=20pyslang?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + README.md | 3 +- VERILOG_TRACKER.md | 9 +- __tests__/hdl-semantic-cli.test.ts | 17 +- __tests__/hdl-semantic-runner.test.ts | 35 +++ __tests__/hdl-source-map-asset.test.ts | 8 + __tests__/hdl-source-map-import.test.ts | 41 +++ __tests__/hdl-source-map-review.test.ts | 67 +++++ docs/hdl-macro-source-map.md | 77 ++++++ docs/hdl-semantics.md | 4 +- ...idation-hdl-macro-source-map-2026-09-12.md | 80 ++++++ package.json | 2 +- scripts/verify-hdl-source-map-export.py | 140 ++++++++++ src/bin/codegraph.ts | 7 +- src/hdl/semantic-import.ts | 8 +- src/hdl/semantic-runner.ts | 50 +++- src/hdl/semantics.ts | 12 +- src/hdl/source-map-export.py | 258 ++++++++++++++++++ src/hdl/source-map-import.ts | 78 ++++++ 19 files changed, 873 insertions(+), 25 deletions(-) create mode 100644 __tests__/hdl-source-map-asset.test.ts create mode 100644 __tests__/hdl-source-map-import.test.ts create mode 100644 __tests__/hdl-source-map-review.test.ts create mode 100644 docs/hdl-macro-source-map.md create mode 100644 docs/validation-hdl-macro-source-map-2026-09-12.md create mode 100644 scripts/verify-hdl-source-map-export.py create mode 100644 src/hdl/source-map-export.py create mode 100644 src/hdl/source-map-import.ts diff --git a/CHANGELOG.md b/CHANGELOG.md index 9c61829f8..cfc85da34 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### New Features +- HDL: `hdl-semantic --python` с pyslang показывает исходное написание и места вызова макросов, явно отмечая неполное сопоставление. + - HDL: `hdl-semantic` с установленным slang показывает вычисленные параметры и ширины портов для выбранного профиля и экземпляра. - **Codex and Astra read project guidance from `AGENTS.md`.** The canonical agent guide now lives in `AGENTS.md` (with a nested `docs/AGENTS.md` for long validation notes); `CLAUDE.md` is a thin `@AGENTS.md` wrapper for Claude Code. Codex/Astra no longer miss the old CLAUDE-only instructions. diff --git a/README.md b/README.md index 0b1134355..e395682ad 100644 --- a/README.md +++ b/README.md @@ -973,4 +973,5 @@ MIT Подробности HDL-профилей: [настройка и ограничения](docs/hdl-profiles.md). -Вычисленные параметры и ширины по явному запросу: [hdl-semantic с установленным slang](docs/hdl-semantics.md). +Вычисленные параметры и ширины по явному запросу: [hdl-semantic с установленным slang](docs/hdl-semantics.md); +[происхождение макросов через pyslang](docs/hdl-macro-source-map.md). diff --git a/VERILOG_TRACKER.md b/VERILOG_TRACKER.md index afd300aeb..a5f63c70d 100644 --- a/VERILOG_TRACKER.md +++ b/VERILOG_TRACKER.md @@ -137,6 +137,11 @@ checkbox ниже остаётся открытым для полного зая собственный полный HDL-препроцессор внутри extractor. - [ ] **B2** Сопоставить expansion с исходным файлом, диапазоном, macro definition и invocation. Для неоднозначного mapping возвращать явную неизвестность. + Частично выполнено 2026-09-12: optional --python/pyslang backend возвращает + provenance имени parameter/port/typedef через обе SourceManager parent relations. + Реальный AXI aw_chan_t width35: аргумент415:31, macro body178:44, вызов415:3–49. + Collapsed ranges отмечены incomplete; origins всех выражений ещё не охвачены. + Отчёт `docs/validation-hdl-macro-source-map-2026-09-12.md`. - [ ] **B3** Проверить function-like macros, arguments/defaults, nested expansion, token concatenation/stringification, conditional includes и include guards. - [ ] **B4** Определить compilation-unit mode и порядок sources явно; не смешивать @@ -313,7 +318,8 @@ J — повторяемый checklist, его отметки относятся раздельно и unknown coordinates для macro-generated declarations. 4. **Минимальная on-demand вертикаль выполнена**: параметры/порты для одного profile/top, source links, ошибка compiler не меняет source graph. Дальше: - точный macro source mapping B2, расширенные types C3 и persistent semantic + расширение B2 с declaration-name provenance на initializer/type expressions, + расширенные types C3 и persistent semantic context/invalidation C1/D5; затем semantic queries MCP. 5. Провести J1–J9 для этого ограниченного пакета; затем расширять B/C и переходить к D. @@ -323,6 +329,7 @@ J — повторяемый checklist, его отметки относятся | --- | --- | --- | --- | --- | | 2026-09-12 | Source navigation, scopes, access | Реализованные части перечислены в HDL-001–006 | Отчёты раздела 1 | Сохранить regression coverage | | 2026-09-12 | Build profiles | Ограниченный source-режим, реальные profile parity проверки | `b050fb89`, `docs/validation-hdl-profiles-2026-09-12.md` | A: frontend comparison | +| 2026-09-12 | B2 declaration origins | Pyslang SourceManager, реальные macro points/ranges и typedef35 | `docs/validation-hdl-macro-source-map-2026-09-12.md` | Expression origins, C3, cache | | 2026-09-12 | B/C первая вертикаль | API/CLI, реальные UART/CRC/AXI, include sync/rebuild parity | `docs/validation-hdl-semantics-2026-09-12.md` | B2, C3, persisted context | | 2026-09-12 | A3–A6 | 24 controls, slang выбран; CLI macro mapping неполон | `docs/hdl-frontend-decision.md` | B1/B2 + C1/C2 | | 2026-09-12 | A1–A2 | Manifest 137 HDL, три locked AXI dependencies, шесть compiler controls | `docs/validation-hdl-corpora-build-2026-09-12.md` | A3–A6, сравнение frontends | diff --git a/__tests__/hdl-semantic-cli.test.ts b/__tests__/hdl-semantic-cli.test.ts index e8c178f54..9058c51ac 100644 --- a/__tests__/hdl-semantic-cli.test.ts +++ b/__tests__/hdl-semantic-cli.test.ts @@ -9,7 +9,16 @@ it.skipIf(process.platform === 'win32')('compiled hdl-semantic CLI passes explic const temp = fs.mkdtempSync(path.join(os.tmpdir(), 'hdl-semantic-cli-')); const root = path.join(temp, 'project'); fs.mkdirSync(root); const tool = path.join(temp, 'fake-slang'); - fs.writeFileSync(tool, `#!${process.execPath}\nconst fs=require('node:fs');const a=process.argv.slice(2);\nif(a.includes('--version')){console.log('slang version 11.0.448');}else{\nconst override=a[a.indexOf('-G')+1];const value=override?.startsWith('W=')?override.slice(2):'8';\nfs.writeFileSync(a[a.indexOf('--ast-json')+1],JSON.stringify({design:{kind:'Root',members:[{kind:'Instance',name:'top',body:{kind:'InstanceBody',members:[{kind:'Parameter',name:'W',value,type:{kind:'PredefinedIntegerType',name:'int'},source_file:'top.sv',source_line:1,source_column:24}]}}]}}));}\n`, { mode: 0o700 }); + fs.writeFileSync(tool, `#!${process.execPath} +const fs=require('node:fs'),a=process.argv.slice(2),python=a[0]==='-I'; +if(a.includes('--version')) console.log(python?'codegraph pyslang 11.0.0 exporter 1 native '+'a'.repeat(64):'slang version 11.0.448'); +else { + const override=a[a.indexOf('-G')+1],value=override?.startsWith('W=')?override.slice(2):'8'; + const output=python?{codegraphSemanticVersion:1,facts:[{kind:'parameter',name:'W',instancePath:'top',value,sourceOrigin:'direct',source:{file:'top.sv',line:1,column:24}}]}: + {design:{kind:'Root',members:[{kind:'Instance',name:'top',body:{kind:'InstanceBody',members:[{kind:'Parameter',name:'W',value,type:{kind:'PredefinedIntegerType',name:'int'},source_file:'top.sv',source_line:1,source_column:24}]}}]}}; + fs.writeFileSync(a[a.indexOf('--ast-json')+1],JSON.stringify(output)); +} +`, { mode: 0o700 }); fs.writeFileSync(path.join(root, 'top.sv'), 'module top #(parameter W=8)(); endmodule\n'); fs.writeFileSync(path.join(root, 'codegraph.json'), JSON.stringify({ hdl: { activeProfile: 'synth', profiles: { synth: { files: ['top.sv'], topModules: ['top'] }, @@ -29,6 +38,12 @@ it.skipIf(process.platform === 'win32')('compiled hdl-semantic CLI passes explic expect(body.provenance.compilationUnitMode).toBe('separate'); expect(body.facts[0]).toMatchObject({ name: 'W', value: '16' }); expect(body.facts[0].sourceNodeId).toBeTruthy(); + const mapped = run(['hdl-semantic', 'W', '--path', root, '--python', tool, '--parameter', 'W=12']); + expect(mapped.status, mapped.stderr).toBe(0); + expect(JSON.parse(mapped.stdout).provenance.frontend).toBe('pyslang'); + expect(JSON.parse(mapped.stdout).facts[0]).toMatchObject({ value: '12', sourceOrigin: 'direct' }); + const dual = run(['hdl-semantic', '--path', root, '--slang', tool, '--python', tool]); + expect(dual.status).toBe(1); expect(dual.stderr).toContain('exactly one'); const duplicate = run(['hdl-semantic', '--path', root, '--slang', tool, '--parameter', 'W=1', 'W=2']); expect(duplicate.status).toBe(1); expect(duplicate.stderr).toContain('Duplicate HDL parameter'); const invalid = run(['hdl-semantic', '--path', root, '--slang', tool, '--limit', '1junk']); diff --git a/__tests__/hdl-semantic-runner.test.ts b/__tests__/hdl-semantic-runner.test.ts index 6ccb38353..06b43e8f6 100644 --- a/__tests__/hdl-semantic-runner.test.ts +++ b/__tests__/hdl-semantic-runner.test.ts @@ -12,6 +12,10 @@ suite('isolated optional slang runner',()=>{ const script=`#!${process.execPath}\nconst fs=require('node:fs'),cp=require('node:child_process');const args=process.argv.slice(2);if(args.includes('--version')){console.log('slang version 11.0.448+e222e7dc0');process.exit(0);}const output=args[args.indexOf('--ast-json')+1];${body}\nfs.writeFileSync(output,JSON.stringify({kind:'Root',argv:args,source:fs.readFileSync('rtl/top.sv','utf8'),include:fs.readFileSync('inc/common.flags','utf8'),cwd:process.cwd()}));`; fs.writeFileSync(exe,script,{mode:0o700}); }; + const fakePython=(body='',version=`codegraph pyslang 11.0.0 exporter 1 native ${'a'.repeat(64)}`)=>{ + const script=`#!${process.execPath}\nconst fs=require('node:fs');const args=process.argv.slice(2);if(args.includes('--version')){console.log(${JSON.stringify(version)});process.exit(0);}if(args[0]!=='-I'||!args[1].endsWith('source-map-export.py'))process.exit(3);const output=args[args.indexOf('--ast-json')+1];${body}\nfs.writeFileSync(output,JSON.stringify({codegraphSemanticVersion:1,facts:[],argv:args,launcher:process.argv[1]}));`; + fs.writeFileSync(exe,script,{mode:0o700}); + }; beforeEach(()=>{ const storage=path.join(os.homedir(),'storage');fs.mkdirSync(storage,{recursive:true}); base=fs.mkdtempSync(path.join(storage,'cg-semantic-test-'));root=path.join(base,'project');temp=path.join(base,'snapshots');exe=path.join(base,'fake-slang'); @@ -20,6 +24,37 @@ suite('isolated optional slang runner',()=>{ write('codegraph.json',JSON.stringify({hdl:{activeProfile:'synth',profiles:{synth:{files:['rtl/top.sv'],includeDirs:['inc'],topModules:['top'],defines:{SAFE:'1'}}}}}));fake(); }); afterEach(()=>{if(oldTemp===undefined)delete process.env.CODEGRAPH_SEMANTIC_TMPDIR;else process.env.CODEGRAPH_SEMANTIC_TMPDIR=oldTemp;fs.rmSync(base,{recursive:true,force:true});}); + it('requires exactly one explicit backend selector',async()=>{ + await expect(runSlangSemantics(root,{})).rejects.toThrow('exactly one'); + await expect(runSlangSemantics(root,{executable:exe,pythonExecutable:exe})).rejects.toThrow('exactly one'); + }); + it('runs only isolated Python and records exporter/native hashes with normalized facts',async()=>{ + fakePython(); + const launcher=path.join(base,'venv/bin/python');fs.mkdirSync(path.dirname(launcher),{recursive:true});fs.symlinkSync(exe,launcher); + const result=await runSlangSemantics(root,{pythonExecutable:launcher,parameters:{WIDTH:'4'}}); + expect(result.frontend).toBe('pyslang');expect(result.exporterSha256).toMatch(/^[a-f0-9]{64}$/);expect(result.librarySha256).toBe('a'.repeat(64)); + expect((result.ast as any).codegraphSemanticVersion).toBe(1);expect((result.ast as any).argv[0]).toBe('-I'); + expect((result.ast as any).launcher).toBe(launcher);expect((result.ast as any).argv).toContain('WIDTH=4');expect(fs.readdirSync(temp)).toEqual([]); + }); + it('rejects unsupported Python exporter/library versions and malformed envelopes',async()=>{ + fakePython('','codegraph pyslang 12.0.0 exporter 1 native '+ 'a'.repeat(64)); + await expect(runSlangSemantics(root,{pythonExecutable:exe})).rejects.toThrow('schema family'); + fakePython("fs.writeFileSync(output,JSON.stringify({codegraphSemanticVersion:2,facts:[]}));process.exit(0);"); + await expect(runSlangSemantics(root,{pythonExecutable:exe})).rejects.toThrow('exporter envelope'); + }); + it('rejects a Python native library fingerprint that changes across the run',async()=>{ + const marker=path.join(base,'library-changed'); + const script=`#!${process.execPath}\nconst fs=require('node:fs'),args=process.argv.slice(2);if(args.includes('--version')){console.log('codegraph pyslang 11.0.0 exporter 1 native '+(fs.existsSync(${JSON.stringify(marker)})?'b':'a').repeat(64));process.exit(0);}fs.writeFileSync(${JSON.stringify(marker)},'changed');fs.writeFileSync(args[args.indexOf('--ast-json')+1],JSON.stringify({codegraphSemanticVersion:1,facts:[]}));`; + fs.writeFileSync(exe,script,{mode:0o700});await expect(runSlangSemantics(root,{pythonExecutable:exe})).rejects.toThrow('library changed'); + expect(fs.readdirSync(temp)).toEqual([]); + }); + it('applies the same output and cancellation bounds to Python',async()=>{ + fakePython("process.stdout.write('x'.repeat(1024*1024+1));setInterval(()=>{},1000);return;"); + await expect(runSlangSemantics(root,{pythonExecutable:exe})).rejects.toThrow('output exceeds'); + fakePython("setInterval(()=>{},1000);return;"); + const controller=new AbortController(),pending=runSlangSemantics(root,{pythonExecutable:exe,signal:controller.signal}); + setTimeout(()=>controller.abort(),100);await expect(pending).rejects.toThrow('cancelled');expect(fs.readdirSync(temp)).toEqual([]); + }); it('copies literal headers and argv safely, returns provenance/source map and removes snapshots',async()=>{ const result=await runSlangSemantics(root,{executable:exe,parameters:{WIDTH:'8'},allowUseBeforeDeclare:true}); const ast=result.ast as any; diff --git a/__tests__/hdl-source-map-asset.test.ts b/__tests__/hdl-source-map-asset.test.ts new file mode 100644 index 000000000..6888c3847 --- /dev/null +++ b/__tests__/hdl-source-map-asset.test.ts @@ -0,0 +1,8 @@ +import { expect, it } from 'vitest'; +import * as fs from 'node:fs'; +import * as path from 'node:path'; +it('ships the Python exporter byte-for-byte with the compiled engine', () => { + const root = path.resolve(__dirname, '..'); + expect(fs.readFileSync(path.join(root, 'dist/hdl/source-map-export.py'))) + .toEqual(fs.readFileSync(path.join(root, 'src/hdl/source-map-export.py'))); +}); diff --git a/__tests__/hdl-source-map-import.test.ts b/__tests__/hdl-source-map-import.test.ts new file mode 100644 index 000000000..7d9da77f6 --- /dev/null +++ b/__tests__/hdl-source-map-import.test.ts @@ -0,0 +1,41 @@ +import { expect, it } from 'vitest'; +import { importMappedSemantics } from '../src/hdl/source-map-import'; +const sources = { 'inc/ports.svh': '`define P(N) input logic N\r\n', 'top.sv': '// Ω\r\nmodule top(`P(data)); endmodule\r\n' }; +const point = (file: keyof typeof sources, offset: number) => { + const prefix = Buffer.from(sources[file]).subarray(0, offset); + const line = [...prefix].filter(v => v === 10).length + 1; + return { file, line, column: offset - prefix.lastIndexOf(10), byteOffset: offset }; +}; +const start = Buffer.from(sources['top.sv']).indexOf('`P'); +const payload = () => ({ codegraphSemanticVersion: 1, facts: [{ kind: 'port', name: 'data', instancePath: 'top', type: 'logic', width: 1, + sourceOrigin: 'macro', source: { file: 'top.sv', line: 2, column: 15 }, macroExpansionComplete: true, + macroExpansion: [{ name: 'P', argument: false, spelling: point('inc/ports.svh', 24), invocation: { start: point('top.sv', start), end: point('top.sv', start + 8) } }], +}] }); +it('preserves compiler byte coordinates and macro call/spelling across headers, UTF8 and CRLF', () => { + const result = importMappedSemantics(payload(), sources); + expect(result[0].macroExpansion?.[0]).toEqual(payload().facts[0]!.macroExpansion[0]); + expect(result[0].sourceOrigin).toBe('macro'); +}); +it('rejects tampered source paths, byte offsets, reversed ranges and UTF8 continuation positions', () => { + let p = payload(); p.facts[0]!.macroExpansion[0]!.spelling.file = '../secret' as any; + expect(() => importMappedSemantics(p, sources)).toThrow('outside snapshot'); + p = payload(); p.facts[0]!.macroExpansion[0]!.spelling.byteOffset++; + expect(() => importMappedSemantics(p, sources)).toThrow('disagree'); + p = payload(); const range = p.facts[0]!.macroExpansion[0]!.invocation; [range.start, range.end] = [range.end, range.start]; + expect(() => importMappedSemantics(p, sources)).toThrow('order'); + p = payload(); p.facts[0]!.macroExpansion[0]!.spelling = point('top.sv', 4); + expect(() => importMappedSemantics(p, sources)).toThrow('UTF-8'); +}); +it('does not accept invented complete chains or duplicate identities', () => { + const p = payload(); p.facts[0]!.macroExpansion = []; + expect(() => importMappedSemantics(p, sources)).toThrow('complete'); + p.facts[0]!.macroExpansionComplete = false; + expect(importMappedSemantics(p, sources)[0].macroExpansionComplete).toBe(false); + p.facts.push(p.facts[0]!); + expect(() => importMappedSemantics(p, sources)).toThrow('duplicate'); +}); +it('rejects line/offset disagreement at a newline and unsupported schema', () => { + const p = payload(); p.facts[0]!.macroExpansion[0]!.spelling = { file: 'top.sv', line: 1, column: 8, byteOffset: 7 }; + expect(() => importMappedSemantics(p, sources)).toThrow('column'); + expect(() => importMappedSemantics({ codegraphSemanticVersion: 2, facts: [] }, sources)).toThrow('schema'); +}); diff --git a/__tests__/hdl-source-map-review.test.ts b/__tests__/hdl-source-map-review.test.ts new file mode 100644 index 000000000..1c448ba20 --- /dev/null +++ b/__tests__/hdl-source-map-review.test.ts @@ -0,0 +1,67 @@ +import { afterEach, expect, it, vi } from 'vitest'; +import { createHash } from 'node:crypto'; +import { importMappedSemantics } from '../src/hdl/source-map-import'; +import { analyzeHdlSemantics, type HdlSemanticSourceGraph } from '../src/hdl/semantics'; +import type { FileRecord, Node } from '../src/types'; +import type { HdlProfileStatus } from '../src/hdl/status'; +const {run}=vi.hoisted(()=>({run:vi.fn()})); +vi.mock('../src/hdl/semantic-runner',()=>({runSlangSemantics:run})); +afterEach(()=>run.mockReset()); +const source='// Ω\r\nmodule top(input logic data);\r\nendmodule\r\n'; +const sources={'top.sv':source}; +const fact=()=>({kind:'port',name:'data',instancePath:'top',width:1,direction:'In',sourceOrigin:'direct', + source:{file:'top.sv',line:2,column:24}}); +const payload=(item:unknown=fact())=>({codegraphSemanticVersion:1,facts:[item]}); +const graph:HdlSemanticSourceGraph={profile:()=>({state:'matches',indexed:{configurationFingerprint:'cfg'}} as HdlProfileStatus),stale:()=>false, + file:()=>({contentHash:createHash('sha256').update(source).digest('hex')} as FileRecord), + nodes:()=>[{id:'decl-data',kind:'field',name:'data',startLine:2,decorators:['hdl:port']} as Node]}; +function result(ast:unknown){return {ast,frontend:'pyslang',sourceRoot:'/deleted-snapshot',profileName:'p',configurationFingerprint:'cfg',fingerprint:'snapshot', + version:'pyslang fixture',executableSha256:'python-sha',exporterSha256:'exporter-sha',librarySha256:'native-sha',sources,top:'top',parameters:{},allowUseBeforeDeclare:false, + diagnostics:[],languageStandard:'1800-2023',compilationUnitMode:'separate',runnerVersion:'review',compilerLimits:[]};} + +it('never links macro-origin facts despite precise same-point coordinates, while direct declarations can link',async()=>{ + run.mockResolvedValue(result(payload())); + const direct=await analyzeHdlSemantics('/project',{pythonExecutable:'python'},graph); + expect(direct.facts[0]!.sourceNodeId).toBe('decl-data'); + run.mockResolvedValue(result(payload({...fact(),sourceOrigin:'macro',macroExpansion:[],macroExpansionComplete:false}))); + const macro=await analyzeHdlSemantics('/project',{pythonExecutable:'python'},graph); + expect(macro.facts[0]!.source).toEqual(direct.facts[0]!.source); + expect(macro.facts[0]!.sourceOrigin).toBe('macro'); + expect(macro.facts[0]!.sourceNodeId).toBeUndefined(); + expect(macro.provenance).toMatchObject({frontend:'pyslang',exporterSha256:'exporter-sha',librarySha256:'native-sha'}); +}); + +it('normalizes away unsolicited source links and does not trust unknown snapshot filenames',()=>{ + const normalized=importMappedSemantics(payload({...fact(),sourceNodeId:'forged',extra:'untrusted'}),sources)[0]!; + expect(normalized).not.toHaveProperty('sourceNodeId');expect(normalized).not.toHaveProperty('extra'); + for(const file of ['../top.sv','./top.sv','top.sv/../top.sv','__proto__','C:/top.sv','top\\file.sv']) { + expect(()=>importMappedSemantics(payload({...fact(),source:{...fact().source,file}}),sources)).toThrow('snapshot'); + } +}); + +it('rejects UTF8 continuation and previous-line aliases of the next CRLF line, including macro byte-offset tampering',()=>{ + expect(()=>importMappedSemantics(payload({...fact(),source:{file:'top.sv',line:1,column:5}}),sources)).toThrow('UTF-8'); + expect(()=>importMappedSemantics(payload({...fact(),source:{file:'top.sv',line:1,column:8}}),sources)).toThrow('column'); + const point={file:'top.sv',line:2,column:1,byteOffset:7}; + const mapped={...fact(),sourceOrigin:'macro',macroExpansionComplete:false, + macroExpansion:[{name:'P',argument:false,spelling:point,invocation:{start:point,end:point}}]}; + expect(importMappedSemantics(payload(mapped),sources)[0]!.macroExpansion![0]!.spelling!.byteOffset).toBe(7); + expect(()=>importMappedSemantics(payload({...mapped,macroExpansionComplete:true}),sources)).toThrow('complete'); + const tampered={...mapped,macroExpansion:[{...mapped.macroExpansion[0]!,spelling:{...point,byteOffset:8}}]}; + expect(()=>importMappedSemantics(payload(tampered),sources)).toThrow('disagree'); +}); + +it('bounds normalized fact counts, fields and chains before accepting exporter output',()=>{ + expect(()=>importMappedSemantics({codegraphSemanticVersion:1,facts:Array(100001).fill(fact())},sources)).toThrow('count'); + expect(()=>importMappedSemantics(payload({...fact(),value:'x'.repeat(65537)}),sources)).toThrow('value'); + expect(()=>importMappedSemantics(payload({...fact(),sourceOrigin:'macro',macroExpansionComplete:false,macroExpansion:Array(129).fill({name:null,argument:false})}),sources)).toThrow('chain'); + expect(()=>importMappedSemantics(payload({...fact(),sourceOrigin:'macro',macroExpansionComplete:true,macroExpansion:[]}),sources)).toThrow('complete'); +}); + +it('links direct typedefs by type_alias kind, never through a same-name field',async()=>{ + const typeFact={...fact(),kind:'type',type:'logic[31:0]',width:32}; + run.mockResolvedValue(result(payload(typeFact))); + expect((await analyzeHdlSemantics('/project',{pythonExecutable:'python'},graph)).facts[0]!.sourceNodeId).toBeUndefined(); + const types={...graph,nodes:()=>[{id:'type-data',kind:'type_alias',name:'data',startLine:2} as Node]}; + expect((await analyzeHdlSemantics('/project',{pythonExecutable:'python'},types)).facts[0]!.sourceNodeId).toBe('type-data'); +}); diff --git a/docs/hdl-macro-source-map.md b/docs/hdl-macro-source-map.md new file mode 100644 index 000000000..e5cac49b8 --- /dev/null +++ b/docs/hdl-macro-source-map.md @@ -0,0 +1,77 @@ +# Происхождение HDL-макросов через pyslang + +Для точек исходного написания и диапазонов вызовов добавлен отдельный optional +backend. Он использует SourceManager из `pyslang==11.0.0`, не ищет определения +макросов по регулярным выражениям и не исправляет неизвестные колонки догадками. + +## Запуск + +Понадобится отдельный Python >=3.11 с установленным pyslang 11.0.0. +В этом пакете проверен Python 3.14. CodeGraph не ставит +его автоматически и не меняет Python dependencies проекта. Пример из корня +уже инициализированного проекта с active HDL profile: + +```sh +codegraph hdl-semantic data --python /absolute/path/to/venv/bin/python +``` + +В API: + +```ts +const result = await cg.getHdlSemantics({ + pythonExecutable: '/absolute/path/to/venv/bin/python', + query: 'top.data', +}); +``` + +Выбрать ровно один вариант: `--python` / pythonExecutable либо прежний +`--slang` / executable. Python backend сам выполняет compilation и экспорт +фактов; результаты разных запусков compiler не склеиваются. Сохраняются +active profile, overrides, separate compilation units, limits и snapshot checks. + +## Что возвращается + +Объём этой версии — происхождение **имени объявления** parameter/port/typedef. Макрос +только в initializer или выражении ширины не делает имя macro-origin. Полный +набор macro uses внутри декларации/выражений ещё не экспортируется. + +- `provenance.frontend = pyslang`, версия протокола/exporter и хеши Python, + exporter и native pyslang module. Запуск идёт через Python `-I`; путь venv + сохраняется, чтобы не выбрать site-packages другого interpreter. +- `sourceOrigin`: direct или macro. Поле source — физическая точка исходника + либо доступная точка вызова, а не автоматически полный диапазон объявления. +- `macroExpansion`: ограниченный набор provenance frames. Для каждого доступны + имя макроса, признак argument, точка spelling и compiler invocation range, + когда frontend смог их сопоставить. +- Каждый point содержит project-relative file, физические line/column и + `byteOffset`. Колонки отсчитываются с 1 в UTF-8 байтах, offset — с 0; + это не UTF-16 колонка CodeGraph. Координаты проверяются по snapshot bytes. +- `macroExpansionComplete` явно сообщает, удалось ли сопоставить все frames. + У collapsed/неизвестных ranges значение false. Отсутствующая часть не + восстанавливается эвристически. + +Frames — не линейный стек. SourceManager имеет разные связи original и expansion; +для nested macros нужно обходить обе. Spelling point внутри аргумента или macro +body не означает, что всё полученное имя записано там непрерывно. Особенно это +касается token concatenation: точка `bus` не является диапазоном имени `bus_data`. + +У macro-origin фактов sourceNodeId не выдаётся, даже при точной spelling column: +она может указывать на аргумент вызова или definition body, а не на исходное +объявление порта. Переходы доступны через macroExpansion. Прямые факты сохраняют +проверенные source node links. + +## Проверяемость и ограничения + +Exporter — небольшой поставляемый Python helper; используется compiler API, +а не собственный HDL-preprocessor. Нормализованный JSON имеет отдельную версию +`codegraphSemanticVersion: 1`, проверяется до выдачи фактов. Ошибка compiler, +неизвестная версия библиотеки, повреждённый payload, source path вне snapshot, +несогласованные координаты и изменения inputs во время запуска отвергаются. + +Computed include paths, files вне root и остальные ограничения snapshot runner +сохраняются. Это не OS sandbox для запуска недоверенного compiler. Нет +persistent cache, полного source-map для всех constructed tokens или automatic +MCP compilation. Windows backend пока отключён; macOS runtime не проверялся. + +Поведение SourceManager сверено с [официальным API](https://www.sv-lang.com/classslang_1_1_source_manager.html). +Подробные результаты пакета: `validation-hdl-macro-source-map-2026-09-12.md`. diff --git a/docs/hdl-semantics.md b/docs/hdl-semantics.md index 764b25cc9..f9b3097b8 100644 --- a/docs/hdl-semantics.md +++ b/docs/hdl-semantics.md @@ -3,7 +3,9 @@ Команда `hdl-semantic` и API `CodeGraph.getHdlSemantics()` запускают установленный slang по явному запросу. Нужны инициализированный проект и активный HDL build profile в `codegraph.json`. Факты возвращаются отдельно от source graph; данные -графа не перезаписываются. Slang автоматически не устанавливается. +графа не перезаписываются. Slang автоматически не устанавливается. Для compiler macro provenance доступен +[отдельный pyslang backend](hdl-macro-source-map.md) через --python; выбрать ровно +один frontend executable. ## CLI diff --git a/docs/validation-hdl-macro-source-map-2026-09-12.md b/docs/validation-hdl-macro-source-map-2026-09-12.md new file mode 100644 index 000000000..b02984b97 --- /dev/null +++ b/docs/validation-hdl-macro-source-map-2026-09-12.md @@ -0,0 +1,80 @@ +# Проверка compiler macro provenance + +Дата: 2026-09-12. База CodeGraph до пакета: `d1d25f02`; source extraction stamp +остаётся 38. Добавлен optional pyslang backend для `hdl-semantic --python`, +отдельный нормализованный протокол exporter и проверка координат по snapshot. +Инструкция: `hdl-macro-source-map.md`. + +## Реализация и доказательства + +Использован `pyslang==11.0.0` в отдельном Python 3.14 venv. В production runtime +зависимость сама не устанавливается; script поставляется вместе с dist. +Backend выполняет собственную compilation через Driver/SourceManager и получает +значения и provenance в одном процессе. JSON от отдельного slang CLI не +склеивается с координатами другой compilation. + +SourceManager даёт две связи: original и expansion. Exporter обходит обе, +сохраняет bounded set frames и не выдаёт их за линейный стек. Points отражают +физические UTF-8 byte offsets и line/column, включая BOM/CRLF и `line` directives. +Macro-origin никогда не получает предполагаемый sourceNodeId. Прямые parameter, +port и typedef факты могут связаться с подходящим source node при совпадении +профиля, raw hash, имени, строки и вида узла. + +Объём — происхождение имени объявления. Macro uses только внутри initializer +или выражения ширины этим пакетом полностью не представлены. Token concatenation +даёт spelling point префикса, а не диапазон всего склеенного имени. + +## Реальный AXI + +В восстановленной копии A2 через новое API и compiled CLI проверен +`synth_axi_lite_xbar.aw_chan_t` при `NoSlvMst=4`: + +- `kind=type`, `width=35`, `sourceOrigin=macro`. +- Точка аргумента: `test/axi_synth_bench.sv:415:31`, byteOffset 13097. +- Точка исходного текста в теле определения: `include/axi/typedef.svh:178:44`, + byteOffset 9228. +- Внешний invocation range: `test/axi_synth_bench.sv:415:3–49`, + byteOffsets 13069..13115. +- Внутренний argument range у SourceManager сворачивается в одну точку: + `macroExpansionComplete=false`. Диапазон не дорисовывается по строке. +- sourceNodeId отсутствует: аргумент/тело macro не подменяет literal declaration. + +Отдельно через новый backend повторены UART CLK_FREQ=50000000, CRC width=16 +и AXI NoSlvMst=4. В custom nested/concat control с UTF-8 и CRLF проверены +parameter P=7 и macro-generated bus_data width=4. Все API assertions прошли. +Original UART/CRC/AXI корпуса не изменялись. + +## Автоматические проверки + +53 focused tests прошли: 20 runner, 10 прежнего importer, 4 API, 8 прежнего +review, 1 compiled CLI, 4 normalized importer, 5 source-map review, 1 asset. +Проверены ровно один selector, venv launch path, native/helper hashes, timeout, +cancel, source changes, malformed envelope, forged sourceNodeId, byte-offset +расхождения, UTF-8 continuation, граница CRLF, incomplete/collapsed ranges и limits. + +Шесть отдельных проверок с настоящим pyslang: + +```sh +/path/to/venv/bin/python -I scripts/verify-hdl-source-map-export.py \ + --work-root /path/to/storage +``` + +Они покрывают nested/include/default macros, обе parent relations, quoted +filename/arguments, BOM/UTF-8/CRLF, physical `line` coordinates, token concatenation, +ноль/пустую строку/XZ, shared instance bodies/generate, compiler error gating и +macro typedef. В первой live-интеграции найдена и исправлена ошибка чтения +ConstantValue: методы empty/isContainer нельзя трактовать как boolean свойства; +валидность и container state теперь проверяются правильно. + +Production build прошёл; helper в dist побайтно совпадает с source и присутствует +в `npm pack --dry-run` (11889 bytes на этой базе). Ничего в npm не опубликовано. +Полный native: 309 test files, 4947 passed, 9 skipped, 0 failed. +Полный WASM: 308 test files passed, 1 skipped; 4937 passed, 19 skipped, 0 failed. +Матрица выполнена последовательно с двумя workers. + +## Границы + +Нет полной origin map выражений, persistent cache, автоматической MCP compilation, +simulation, synthesis или аппаратных проверок. Windows runner отключён; +проверен Linux, macOS runtime не запускался. Пределы snapshot/процесса сохранены. +Версия normal slang CLI не заменяется и старый selector остаётся доступен. diff --git a/package.json b/package.json index 0f867808f..6398acc0d 100644 --- a/package.json +++ b/package.json @@ -24,7 +24,7 @@ "build:ui": "npm run build --workspace ui && node scripts/check-ui-build.mjs", "build:lib": "npm run build:lib --workspace ui", "preuninstall": "node dist/bin/uninstall.js", - "copy-assets": "node -e \"const fs=require('fs');fs.mkdirSync('dist/db',{recursive:true});fs.copyFileSync('src/db/schema.sql','dist/db/schema.sql');fs.mkdirSync('dist/extraction/wasm',{recursive:true});fs.readdirSync('src/extraction/wasm').filter(f=>f.endsWith('.wasm')).forEach(f=>fs.copyFileSync('src/extraction/wasm/'+f,'dist/extraction/wasm/'+f))\"", + "copy-assets": "node -e \"const fs=require('fs');fs.mkdirSync('dist/db',{recursive:true});fs.copyFileSync('src/db/schema.sql','dist/db/schema.sql');fs.mkdirSync('dist/extraction/wasm',{recursive:true});fs.readdirSync('src/extraction/wasm').filter(f=>f.endsWith('.wasm')).forEach(f=>fs.copyFileSync('src/extraction/wasm/'+f,'dist/extraction/wasm/'+f));fs.mkdirSync('dist/hdl',{recursive:true});fs.copyFileSync('src/hdl/source-map-export.py','dist/hdl/source-map-export.py')\"", "dev": "tsc --watch", "build:kernel": "bash scripts/build-kernel.sh", "cli": "npm run build && node dist/bin/codegraph.js", diff --git a/scripts/verify-hdl-source-map-export.py b/scripts/verify-hdl-source-map-export.py new file mode 100644 index 000000000..2af768027 --- /dev/null +++ b/scripts/verify-hdl-source-map-export.py @@ -0,0 +1,140 @@ +#!/usr/bin/env python3 +"""Реальные bounded tests экспортера; запускать Python окружения pyslang 11.0.0. + +Не устанавливает зависимости. Создаёт только изолированные временные fixtures. +""" +import argparse +import json +from pathlib import Path +import subprocess +import sys +import tempfile +import unittest + +HELPER = Path(__file__).resolve().parents[1] / 'src/hdl/source-map-export.py' +WORK_ROOT = None + + +class SourceMapExportTests(unittest.TestCase): + def setUp(self): + self.directory = tempfile.TemporaryDirectory(prefix='hdl-source-map-test-', dir=WORK_ROOT) + self.root = Path(self.directory.name) + + def tearDown(self): + self.directory.cleanup() + + def write(self, name, text, crlf=False, bom=False): + target = self.root / name + target.parent.mkdir(parents=True, exist_ok=True) + target.write_bytes((b'\xef\xbb\xbf' if bom else b'') + text.replace('\n', '\r\n' if crlf else '\n').encode('utf8')) + + def compile(self, source, extra=(), success=True): + out = self.root / 'facts.json' + result = subprocess.run([sys.executable, '-I', str(HELPER), '--ast-json', str(out), + '--ast-json-source-info', '--ast-json-detailed-types', '--std=1800-2023', + '--threads=1', '--error-limit=20', '--top', 'top', *extra, '--', source], + cwd=self.root, text=True, capture_output=True, timeout=60) + self.assertEqual(result.returncode == 0, success, result.stderr) + if not success: + self.assertFalse(out.exists(), 'failed frontend must not emit semantic facts') + return result + payload = json.loads(out.read_text()) + self.assertEqual(payload['codegraphSemanticVersion'], 1) + return payload['facts'] + + def assertPoint(self, point): + file = (self.root / point['file']).resolve() + self.assertTrue(file.is_relative_to(self.root)) + data = file.read_bytes() + offset = point['byteOffset'] + self.assertGreaterEqual(offset, 0) + self.assertLessEqual(offset, len(data)) + self.assertEqual(point['line'], data.count(b'\n', 0, offset) + 1) + self.assertEqual(point['column'], offset - data.rfind(b'\n', 0, offset)) + + def test_nested_arguments_include_utf8_crlf_and_four_state_value(self): + self.write('defs/inner.svh', '`define LEAF(name,value) localparam int name=value;\n', crlf=True) + self.write('defs/outer.svh', '`include "inner.svh"\n`define WRAP(name,value) `LEAF(name,value)\n', crlf=True) + source = "top space'quote.sv" + self.write(source, '`include "defs/outer.svh"\nmodule top #(parameter int N=1);\n /* 😀 */ `WRAP(P, 7)\n localparam logic [3:0] XZ=4\'b10xz;\nendmodule\n', crlf=True, bom=True) + facts = self.compile(source, ['-G', "N=32'd4"]) + byname = {fact['name']: fact for fact in facts} + self.assertEqual(byname['N']['value'], '4') + self.assertEqual(byname['P']['value'], '7') + self.assertEqual(byname['XZ']['value'].lower(), "4'b10xz") + p = byname['P'] + self.assertEqual(p['sourceOrigin'], 'macro') + self.assertFalse(p['macroExpansionComplete']) + frames = p['macroExpansion'] + self.assertEqual({frame['name'] for frame in frames}, {'LEAF', 'WRAP'}) + self.assertTrue(any(frame['name'] == 'LEAF' and frame['argument'] for frame in frames)) + self.assertTrue(any(frame['name'] == 'WRAP' and frame['argument'] for frame in frames)) + data = (self.root / source).read_bytes() + offset = data.index(b'P, 7') + self.assertEqual(p['source'], {'file': source, 'line': 3, 'column': offset - data.rfind(b'\n', 0, offset)}) + for frame in frames: + if 'spelling' in frame: + self.assertPoint(frame['spelling']) + if 'invocation' in frame: + self.assertPoint(frame['invocation']['start']) + self.assertPoint(frame['invocation']['end']) + self.assertTrue(any(frame.get('spelling', {}).get('file') == 'defs/inner.svh' for frame in frames)) + + def test_token_concat_is_prefix_point_not_a_generated_name_range(self): + self.write('defs.svh', '`define CAT(a,b) a``b\n`define DECL(p) localparam int `CAT(p,_param)=3;\n') + self.write('top.sv', '`include "defs.svh"\nmodule top;\n `DECL(bus)\nendmodule\n') + fact = next(f for f in self.compile('top.sv') if f['name'] == 'bus_param') + self.assertEqual(fact['value'], '3') + self.assertEqual(fact['sourceOrigin'], 'macro') + self.assertNotIn('nameRange', fact) + self.assertFalse(fact['macroExpansionComplete']) + data = (self.root / 'top.sv').read_bytes() + prefix = [frame['spelling'] for frame in fact['macroExpansion'] + if frame.get('spelling', {}).get('file') == 'top.sv' + and data[frame['spelling']['byteOffset']:].startswith(b'bus')] + self.assertTrue(prefix) + self.assertFalse(data[prefix[0]['byteOffset']:].startswith(b'bus_param')) + + def test_zero_empty_string_and_physical_line_directive_coordinates(self): + self.write('top.sv', '`line 700 "virtual.sv" 0\nmodule top; parameter int ZERO=0; parameter string EMPTY=""; endmodule\n') + facts = {f['name']: f for f in self.compile('top.sv')} + self.assertEqual(facts['ZERO']['value'], '0') + self.assertEqual(facts['EMPTY']['value'], '""') + for fact in facts.values(): + self.assertEqual(fact['sourceOrigin'], 'direct') + self.assertEqual(fact['source']['file'], 'top.sv') + self.assertEqual(fact['source']['line'], 2) + + def test_type_alias_facts_have_integral_width_and_declaration_origin(self): + self.write('types.svh', '`define DECLTYPE(name) typedef logic [7:0] name;\n') + self.write('top.sv', '`include "types.svh"\nmodule top;\n `DECLTYPE(byte_t)\n typedef logic [3:0] nibble_t;\nendmodule\n') + facts = {fact['name']: fact for fact in self.compile('top.sv')} + self.assertEqual(facts['byte_t']['kind'], 'type') + self.assertEqual(facts['byte_t']['width'], 8) + self.assertEqual(facts['byte_t']['sourceOrigin'], 'macro') + self.assertTrue(facts['byte_t']['macroExpansion']) + self.assertEqual(facts['nibble_t']['kind'], 'type') + self.assertEqual(facts['nibble_t']['width'], 4) + self.assertEqual(facts['nibble_t']['sourceOrigin'], 'direct') + self.assertNotIn('direction', facts['byte_t']) + + def test_rejects_semantic_errors_instead_of_exporting_partial_ast(self): + self.write('top.sv', 'module top; missing_dependency u(); endmodule\n') + result = self.compile('top.sv', success=False) + self.assertIn('unknown module', result.stderr) + + def test_shared_bodies_and_generate_indices_have_instance_specific_paths(self): + self.write('top.sv', 'module leaf #(parameter int P=2); endmodule\nmodule top; leaf u1(); leaf u2(); for(genvar i=2;i<4;i++) begin : lanes leaf u(); end endmodule\n') + facts = self.compile('top.sv') + paths = {f['instancePath'] for f in facts if f['name'] == 'P'} + self.assertEqual(paths, {'top.u1', 'top.u2', 'top.lanes[2].u', 'top.lanes[3].u'}) + + +if __name__ == '__main__': + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('--helper', type=Path, default=HELPER) + parser.add_argument('--work-root', type=Path) + args = parser.parse_args() + HELPER = args.helper.resolve() + WORK_ROOT = args.work_root + unittest.main(argv=[sys.argv[0], '-v']) diff --git a/src/bin/codegraph.ts b/src/bin/codegraph.ts index 81f22b8f7..219f0036c 100644 --- a/src/bin/codegraph.ts +++ b/src/bin/codegraph.ts @@ -1318,13 +1318,14 @@ program program .command('hdl-semantic [query]') .description('Compute HDL parameters and port widths with optional slang (exact symbol or instance query)') - .requiredOption('--slang ', 'Path to the installed slang executable') + .option('--slang ', 'Path to the installed slang executable') + .option('--python ', 'Python with pinned pyslang for compiler macro source mapping (instead of --slang)') .option('-p, --path ', 'Project path') .option('--top ', 'Single top module (defaults to the active profile top)') .option('--parameter ', 'Top-level parameter overrides') .option('--allow-use-before-declare', 'Explicit slang compatibility mode') .option('--limit ', 'Maximum facts (1..1000)', '100') - .action(async (query: string | undefined, options: { slang: string; path?: string; top?: string; + .action(async (query: string | undefined, options: { slang?: string; python?: string; path?: string; top?: string; parameter?: string[]; allowUseBeforeDeclare?: boolean; limit: string }) => { const projectPath = resolveProjectPath(options.path); try { @@ -1344,7 +1345,7 @@ program process.once('SIGINT', interrupt); process.once('SIGTERM', interrupt); try { - const result = await cg.getHdlSemantics({ executable: options.slang, top: options.top, + const result = await cg.getHdlSemantics({ executable: options.slang, pythonExecutable: options.python, top: options.top, parameters, allowUseBeforeDeclare: options.allowUseBeforeDeclare, query, limit: Number(options.limit), signal: controller.signal }); console.log(JSON.stringify(result)); diff --git a/src/hdl/semantic-import.ts b/src/hdl/semantic-import.ts index 149081edf..2d29f50e7 100644 --- a/src/hdl/semantic-import.ts +++ b/src/hdl/semantic-import.ts @@ -1,7 +1,10 @@ import * as path from 'node:path'; +export interface HdlMacroPoint { file: string; line: number; column: number; byteOffset: number } +export interface HdlMacroFrame { name: string | null; argument: boolean; spelling?: HdlMacroPoint; invocation?: { start: HdlMacroPoint; end: HdlMacroPoint } } + export interface HdlSemanticFact { - kind: 'parameter' | 'port'; + kind: 'parameter' | 'port' | 'type'; name: string; instancePath: string; value?: string; @@ -9,6 +12,9 @@ export interface HdlSemanticFact { width?: number; direction?: string; source?: { file: string; line: number; column: number | null }; + sourceOrigin?: 'direct' | 'macro'; + macroExpansion?: HdlMacroFrame[]; + macroExpansionComplete?: boolean; } type AstObject = Record; diff --git a/src/hdl/semantic-runner.ts b/src/hdl/semantic-runner.ts index 6c40734c3..3e08227e8 100644 --- a/src/hdl/semantic-runner.ts +++ b/src/hdl/semantic-runner.ts @@ -6,7 +6,8 @@ import { spawn } from 'node:child_process'; import { loadHdlProfile, isReservedHdlPath, type ActiveHdlProfile } from './profile'; export interface RunSlangOptions { - executable: string; + executable?: string; + pythonExecutable?: string; top?: string; parameters?: Record; allowUseBeforeDeclare?: boolean; @@ -22,6 +23,9 @@ export interface RunSlangResult { fingerprint: string; version: string; executableSha256: string; + frontend: 'slang' | 'pyslang'; + exporterSha256?: string; + librarySha256?: string; diagnostics: string[]; sources: Record; top: string; @@ -32,17 +36,17 @@ export interface RunSlangResult { runnerVersion: string; compilerLimits: readonly string[]; } -const RUNNER_VERSION = 'slang-snapshot-v1'; +const RUNNER_VERSION = 'slang-snapshot-v2'; const COMPILER_LIMITS = Object.freeze(['--max-hierarchy-depth=128','--max-generate-steps=10000','--max-instance-array=10000','--max-constexpr-steps=1000000','--max-constant-size=1048576']); const FILE_LIMIT = 1024 * 1024, TOTAL_LIMIT = 64 * 1024 * 1024, AST_LIMIT = 64 * 1024 * 1024; const OUTPUT_LIMIT = 1024 * 1024, FILE_COUNT_LIMIT = 20000; const digest = (content: Buffer | string) => createHash('sha256').update(content).digest('hex'); function abort(signal?: AbortSignal): void { if (signal?.aborted) throw new Error('slang semantic run cancelled'); } -function resolveExecutable(name: string): string { +function resolveExecutable(name: string, preserveLauncherPath = false): string { if (!name || name.includes('\0')) throw new Error('A slang executable must be specified'); const candidates = name.includes('/') ? [path.resolve(name)] : (process.env.PATH ?? '').split(path.delimiter).map(dir => path.join(dir, name)); for (const candidate of candidates) { - try { fs.accessSync(candidate, fs.constants.X_OK); const real = fs.realpathSync(candidate); if (fs.statSync(real).isFile()) return real; } catch { /* try next PATH entry */ } + try { fs.accessSync(candidate, fs.constants.X_OK); const real = fs.realpathSync(candidate); if (fs.statSync(real).isFile()) return preserveLauncherPath ? path.resolve(candidate) : real; } catch { /* try next PATH entry */ } } throw new Error(`slang executable is unavailable: ${name}`); } @@ -177,6 +181,11 @@ function run(executable: string, args: string[], cwd: string, timeout: number, s /** Optional on-demand frontend. Snapshot confinement is not an adversarial OS compiler sandbox. */ export async function runSlangSemantics(projectRoot: string, options: RunSlangOptions): Promise { if(process.platform==='win32')throw new Error('slang semantic runner is not supported on Windows until process-tree cancellation is verified'); + const requestedSlang=options.executable, requestedPython=options.pythonExecutable; + if((requestedSlang!==undefined)===(requestedPython!==undefined))throw new Error('Specify exactly one of executable or pythonExecutable'); + const frontend:RunSlangResult['frontend']=requestedPython!==undefined?'pyslang':'slang'; + const requestedExecutable=requestedPython??requestedSlang; + if(typeof requestedExecutable!=='string'||!requestedExecutable.trim())throw new Error('A frontend executable must be specified'); const signal=options.signal, allowUseBeforeDeclare=!!options.allowUseBeforeDeclare; abort(signal); const timeout=options.timeoutMs??30000; @@ -193,7 +202,17 @@ export async function runSlangSemantics(projectRoot: string, options: RunSlangOp if(!/^[A-Za-z_][A-Za-z0-9_$]*$/.test(name)||typeof value!=='string'||value.includes('\0'))throw new Error('Invalid slang parameter override'); parameters[name]=value; } - const executable=resolveExecutable(options.executable), executableSha256=await executableHash(executable); + // Preserve the venv launch path: realpath'ing bin/python before exec would + // select the base interpreter's site-packages instead of the configured venv. + const executable=resolveExecutable(requestedExecutable,frontend==='pyslang'); + const exporter=frontend==='pyslang'?path.join(__dirname,'source-map-export.py'):undefined; + if(exporter) { + try { const stat=fs.statSync(exporter); if(!stat.isFile()||stat.size>FILE_LIMIT)throw new Error('invalid exporter'); } + catch { throw new Error('Shipped pyslang exporter is unavailable or exceeds 1 MiB'); } + } + const commandPrefix=exporter?['-I',exporter]:[]; + const executableSha256=await executableHash(executable); + const exporterSha256=exporter?await executableHash(exporter):undefined; const before=collect(root,profile,signal,deadline); const base=process.env.CODEGRAPH_SEMANTIC_TMPDIR||path.join(os.homedir(),'storage','codegraph-semantic-runs'); fs.mkdirSync(base,{recursive:true,mode:0o700}); @@ -204,8 +223,11 @@ export async function runSlangSemantics(projectRoot: string, options: RunSlangOp fs.mkdirSync(sourceRoot,{mode:0o700}); for(const dir of profile.includeDirs) fs.mkdirSync(path.join(sourceRoot,dir),{recursive:true,mode:0o700}); for(const [file,source] of Object.entries(before.sources)) {const dest=path.join(sourceRoot,file);fs.mkdirSync(path.dirname(dest),{recursive:true,mode:0o700});fs.writeFileSync(dest,source,{mode:0o600});} - const version=(await run(executable,['--version'],sourceRoot,Math.min(remaining(),5000),signal)).stdout.trim(); - if(!/^slang version 11\.0(?:\.\d+)?(?:\+[A-Za-z0-9]+)?(?:\s.*)?$/.test(version))throw new Error(`Unsupported slang schema family: ${version.slice(0,200)}`); + const version=(await run(executable,[...commandPrefix,'--version'],sourceRoot,Math.min(remaining(),5000),signal)).stdout.trim(); + const pythonVersion=version.match(/^codegraph pyslang 11\.0\.0 exporter 1 native ([a-f0-9]{64})$/); + const supportedVersion=frontend==='pyslang'?!!pythonVersion:/^slang version 11\.0(?:\.\d+)?(?:\+[A-Za-z0-9]+)?(?:\s.*)?$/.test(version); + if(!supportedVersion)throw new Error(`Unsupported ${frontend} schema family: ${version.slice(0,200)}`); + const librarySha256=pythonVersion?.[1]; const languageStandard=profile.languageMode==='verilog'?'1364-2005':'1800-2023'; const args=['--ast-json',astFile,'--ast-json-source-info','--ast-json-detailed-types','--threads=1','--error-limit=20',`--std=${languageStandard}`,'--top',top]; args.push(...COMPILER_LIMITS); @@ -214,22 +236,28 @@ export async function runSlangSemantics(projectRoot: string, options: RunSlangOp for(const [name,value] of Object.entries(profile.defines))args.push(`-D${name}=${value}`); for(const [name,value] of Object.entries(parameters).sort(([a],[b])=>a.localeCompare(b)))args.push('-G',`${name}=${value}`); args.push('--',...profile.files); - const output=await run(executable,args,sourceRoot,remaining(),signal,astFile); + const output=await run(executable,[...commandPrefix,...args],sourceRoot,remaining(),signal,astFile); const stat=fs.lstatSync(astFile); if(!stat.isFile()||stat.isSymbolicLink()||stat.size>AST_LIMIT)throw new Error('Invalid or oversized slang AST output'); const astText=fs.readFileSync(astFile,'utf8');if(Buffer.byteLength(astText)>AST_LIMIT)throw new Error('slang AST output exceeds 64 MiB'); const ast:unknown=JSON.parse(astText); if(!ast||typeof ast!=='object'||Array.isArray(ast))throw new Error('slang AST root must be an object'); + if(frontend==='pyslang'&&((ast as Record).codegraphSemanticVersion!==1||!Array.isArray((ast as Record).facts)))throw new Error('Invalid pyslang semantic exporter envelope'); + if(await executableHash(executable)!==executableSha256)throw new Error('slang executable changed during the run; result discarded'); + if(exporter&&await executableHash(exporter)!==exporterSha256)throw new Error('pyslang exporter changed during the run; result discarded'); + if(frontend==='pyslang') { + const verifiedVersion=(await run(executable,[...commandPrefix,'--version'],sourceRoot,Math.min(remaining(),5000),signal)).stdout.trim(); + if(verifiedVersion!==version)throw new Error('pyslang library changed during the run; result discarded'); + } const snapshotAfter=collect(sourceRoot,profile,signal,deadline); if(JSON.stringify(before.hashes)!==JSON.stringify(snapshotAfter.hashes)||JSON.stringify(before.missing)!==JSON.stringify(snapshotAfter.missing))throw new Error('slang modified its source snapshot; result discarded'); const afterConfig=loadHdlProfile(root); const after=collect(root,profile,signal,deadline); if(afterConfig.status!=='active'||afterConfig.profile?.fingerprint!==profile.fingerprint||JSON.stringify(before.hashes)!==JSON.stringify(after.hashes)||JSON.stringify(before.missing)!==JSON.stringify(after.missing))throw new Error('HDL sources or configuration changed during the slang run; result discarded'); - if(await executableHash(executable)!==executableSha256)throw new Error('slang executable changed during the run; result discarded'); abort(signal); if(Date.now()>=deadline)throw new Error('slang semantic run timed out'); - const provenance={configurationFingerprint:profile.fingerprint,hashes:before.hashes,missing:before.missing,version,executableSha256,top,parameters,allowUseBeforeDeclare,languageStandard,compilationUnitMode:'separate' as const,runnerVersion:RUNNER_VERSION,compilerLimits:COMPILER_LIMITS}; - return {ast,sourceRoot,profileName:profile.name,configurationFingerprint:profile.fingerprint,fingerprint:digest(JSON.stringify(provenance)),version,executableSha256, + const provenance={configurationFingerprint:profile.fingerprint,hashes:before.hashes,missing:before.missing,version,executableSha256,frontend,exporterSha256,librarySha256,top,parameters,allowUseBeforeDeclare,languageStandard,compilationUnitMode:'separate' as const,runnerVersion:RUNNER_VERSION,compilerLimits:COMPILER_LIMITS}; + return {ast,sourceRoot,profileName:profile.name,configurationFingerprint:profile.fingerprint,fingerprint:digest(JSON.stringify(provenance)),version,executableSha256,frontend,...(exporterSha256?{exporterSha256}:{}),...(librarySha256?{librarySha256}:{}), diagnostics:[output.stdout,output.stderr].map(s=>s.trim()).filter(Boolean),sources:before.sources,top,parameters,allowUseBeforeDeclare,languageStandard,compilationUnitMode:'separate' as const,runnerVersion:RUNNER_VERSION,compilerLimits:COMPILER_LIMITS}; } finally {fs.rmSync(temp,{recursive:true,force:true});} } diff --git a/src/hdl/semantics.ts b/src/hdl/semantics.ts index 2f4870553..e6d2f0aaa 100644 --- a/src/hdl/semantics.ts +++ b/src/hdl/semantics.ts @@ -1,6 +1,7 @@ import { createHash } from 'node:crypto'; import { runSlangSemantics, type RunSlangOptions } from './semantic-runner'; import { importSlangSemantics, type HdlSemanticFact } from './semantic-import'; +import { importMappedSemantics } from './source-map-import'; import type { HdlProfileStatus } from './status'; import type { Node, FileRecord } from '../types'; @@ -11,7 +12,7 @@ export interface HdlSemanticOptions extends RunSlangOptions { } export interface HdlSemanticResult { schemaVersion: 1; - provenance: { frontend: 'slang'; version: string; executableSha256: string; + provenance: { frontend: 'slang' | 'pyslang'; exporterSha256?: string; librarySha256?: string; version: string; executableSha256: string; profile: string; configurationFingerprint: string; fingerprint: string; top: string; parameters: Record; allowUseBeforeDeclare: boolean; languageStandard: string; compilationUnitMode: 'separate'; runnerVersion: string; compilerLimits: readonly string[] }; @@ -36,7 +37,7 @@ export async function analyzeHdlSemantics(root: string, options: HdlSemanticOpti const query = options.query; if (!Number.isInteger(limit) || limit < 1 || limit > 1000) throw new Error('HDL semantic limit must be 1..1000'); const result = await runSlangSemantics(root, options); - const facts = importSlangSemantics(result.ast, result.sourceRoot); + const facts = result.frontend === 'pyslang' ? importMappedSemantics(result.ast, result.sources) : importSlangSemantics(result.ast, result.sourceRoot); const profile = graph.profile(); const linked = !graph.stale() && profile?.state === 'matches' && profile.indexed.configurationFingerprint === result.configurationFingerprint; @@ -50,16 +51,16 @@ export async function analyzeHdlSemantics(root: string, options: HdlSemanticOpti const line = text?.split(/\r?\n/)[source.line - 1]; // Column 0 / macro invocation remains line-only; never fabricate a source node link. if (text === undefined || line === undefined) { const { source: _source, ...rest } = fact; return rest; } - if (!linked || source.column === null || source.column < 1 || source.column > Buffer.byteLength(line) + 1 || !line.includes(fact.name)) return fact; + if (fact.sourceOrigin === 'macro' || !linked || source.column === null || source.column < 1 || source.column > Buffer.byteLength(line) + 1 || !line.includes(fact.name)) return fact; if (!byFile.has(source.file)) { const hash = createHash('sha256').update(text).digest('hex'); byFile.set(source.file, graph.file(source.file)?.contentHash === hash ? graph.nodes(source.file) : []); } const nodes = byFile.get(source.file)!.filter(node => node.name === fact.name && node.startLine === source.line && - (fact.kind === 'parameter' ? node.kind === 'constant' : node.kind === 'field' && !!node.decorators?.includes('hdl:port'))); + (fact.kind === 'parameter' ? node.kind === 'constant' : fact.kind === 'type' ? node.kind === 'type_alias' : node.kind === 'field' && !!node.decorators?.includes('hdl:port'))); return nodes.length === 1 ? { ...fact, sourceNodeId: nodes[0]!.id } : fact; }); - return { schemaVersion: 1, provenance: { frontend: 'slang', version: result.version, + return { schemaVersion: 1, provenance: { frontend: result.frontend, exporterSha256: result.exporterSha256, librarySha256: result.librarySha256, version: result.version, executableSha256: result.executableSha256, profile: result.profileName, configurationFingerprint: result.configurationFingerprint, fingerprint: result.fingerprint, top: result.top, parameters: { ...result.parameters }, allowUseBeforeDeclare: result.allowUseBeforeDeclare, @@ -69,6 +70,7 @@ export async function analyzeHdlSemantics(root: string, options: HdlSemanticOpti truncated: matches.length > selected.length, diagnostics: result.diagnostics, limitations: ['Computed on demand from a source snapshot; no persistent semantic cache.', 'Source columns retain frontend coordinates; null means unavailable, including macro-generated declarations.', + 'Macro provenance covers declaration-name locations, not every macro use in types or initializer expressions.', 'Only supported parameter/port facts are returned; absent or unknown widths are not zero.', 'Compiler semantics are not simulation, synthesis, timing or hardware validation.'] }; } diff --git a/src/hdl/source-map-export.py b/src/hdl/source-map-export.py new file mode 100644 index 000000000..cbf776b21 --- /dev/null +++ b/src/hdl/source-map-export.py @@ -0,0 +1,258 @@ +#!/usr/bin/env python3 +"""Compiler-backed, bounded pyslang export; no textual macro-position recovery. + +macroExpansion contains a set of provenance frames reached through BOTH original +and expansion parent relations. It is not an ordered invocation stack. Points +are physical UTF-8 byte positions in root-confined source files. A pasted token's +spelling point can identify its prefix argument; it is never a name range. +""" +import hashlib +import json +from pathlib import Path +import shlex +import sys + +MAX_FACTS = 100_000 +MAX_DEPTH = 128 +MAX_BYTES = 64 * 1024 * 1024 +MAX_DIAGNOSTICS = 256 * 1024 + + +def native_version(pyslang): + if pyslang.__version__ != '11.0.0': + raise RuntimeError('This exporter requires explicitly installed pyslang 11.0.0') + native = Path(pyslang.pyslang.__file__).resolve(strict=True) + with native.open('rb') as stream: + digest = hashlib.file_digest(stream, 'sha256').hexdigest() + return f'codegraph pyslang 11.0.0 exporter 1 native {digest}' + + +class Exporter: + def __init__(self, manager, root): + self.manager = manager + self.root = root.resolve(strict=True) + self.sources = {} + self.source_bytes = 0 + self.origins = {} + self.facts = [] + self.identities = set() + self.visits = 0 + self.output_bytes = 0 + + def point(self, location): + try: + if not location.buffer.id or not self.manager.isFileLoc(location): + return None + file = Path(self.manager.getFullPath(location.buffer)).resolve(strict=True) + relative = file.relative_to(self.root).as_posix() + if file not in self.sources: + if not file.is_file() or file.stat().st_size > 8 * 1024 * 1024: + return None + data = file.read_bytes() + self.source_bytes += len(data) + if self.source_bytes > MAX_BYTES: + raise RuntimeError('Source mapping byte limit exceeded') + self.sources[file] = data + data = self.sources[file] + offset = location.offset + if offset < 0 or offset > len(data): + return None + # Do not use logical `line remappings or display/Unicode columns. + line = data.count(b'\n', 0, offset) + 1 + column = offset - data.rfind(b'\n', 0, offset) + return {'file': relative, 'line': line, 'column': column, 'byteOffset': offset} + except (OSError, ValueError): + return None + + def provenance(self, location): + key = (location.buffer.id, location.offset) + if key in self.origins: + return self.origins[key] + sm = self.manager + macro = bool(location.buffer.id and sm.isMacroLoc(location)) + result = {'sourceOrigin': 'macro' if macro else 'direct'} + source = self.point(sm.getFullyOriginalLoc(location)) if location.buffer.id else None + if source is None and location.buffer.id: + source = self.point(sm.getFullyExpandedLoc(location)) + if source: + result['source'] = {k: source[k] for k in ['file', 'line', 'column']} + if macro: + pending, visited, frames = [location], set(), [] + complete = True + while pending: + current = pending.pop() + current_key = (current.buffer.id, current.offset) + if current_key in visited or not sm.isMacroLoc(current): + continue + if len(visited) >= MAX_DEPTH: + complete = False + break + visited.add(current_key) + original = sm.getOriginalLoc(current) + expanded = sm.getExpansionLoc(current) + expansion = sm.getExpansionRange(current) + frame = {'name': sm.getMacroName(current) or None, 'argument': sm.isMacroArgLoc(current)} + spelling = self.point(sm.getFullyOriginalLoc(original)) + if spelling: + frame['spelling'] = spelling + start = self.point(sm.getFullyExpandedLoc(expansion.start)) + end = self.point(sm.getFullyExpandedLoc(expansion.end)) + if start and end and start['file'] == end['file'] and end['byteOffset'] >= start['byteOffset']: + frame['invocation'] = {'start': start, 'end': end} + if not spelling or 'invocation' not in frame or start['byteOffset'] == end['byteOffset']: + complete = False + frames.append(frame) + # Original links preserve argument provenance; expansion links + # preserve nested replacement provenance. Neither alone is full. + for parent in [original, expanded]: + if parent.buffer.id and sm.isMacroLoc(parent): + pending.append(parent) + result['macroExpansion'] = frames + result['macroExpansionComplete'] = complete + self.origins[key] = result + return result + + @staticmethod + def segment(name): + import re + if not name or len(name) > 4096: + raise RuntimeError('Unsupported empty/oversized hierarchy name') + return name if re.fullmatch(r'[A-Za-z_][A-Za-z0-9_$]*', name) else '\\' + name + ' ' + + def append(self, symbol, instance_path): + kind = symbol.kind.name + semantic_type = symbol.canonicalType if kind == 'TypeAlias' else symbol.type + fact = {'kind': {'Parameter': 'parameter', 'Port': 'port', 'TypeAlias': 'type'}[kind], + 'name': symbol.name, 'instancePath': instance_path, + 'type': str(semantic_type), **self.provenance(symbol.location)} + if semantic_type.isIntegral: + width = semantic_type.bitWidth + if 0 < width <= 2**53 - 1: + fact['width'] = width + if kind == 'Parameter': + value = symbol.value + if bool(value) and not value.isContainer(): + fact['value'] = str(value) # Preserve SV width/base and X/Z text. + elif kind == 'Port': + fact['direction'] = symbol.direction.name + identity = (fact['kind'], instance_path, symbol.name) + if identity in self.identities: + raise RuntimeError('Duplicate semantic fact identity') + self.identities.add(identity) + self.output_bytes += len(json.dumps(fact, ensure_ascii=False).encode('utf8')) + if len(self.facts) >= MAX_FACTS or self.output_bytes > MAX_BYTES: + raise RuntimeError('Semantic fact output limit exceeded') + self.facts.append(fact) + + def scope(self, scope, instance_path, depth=0, active=None): + if depth > MAX_DEPTH or len(instance_path) > 16384: + raise RuntimeError('Semantic hierarchy depth/path limit exceeded') + active = set() if active is None else active + key = id(scope) + if key in active: + raise RuntimeError('Cyclic instance hierarchy') + active = active | {key} + for symbol in scope: + self.visits += 1 + if self.visits > 1_000_000: + raise RuntimeError('Semantic traversal size limit exceeded') + kind = symbol.kind.name + if kind in ['Parameter', 'Port', 'TypeAlias']: + self.append(symbol, instance_path) + elif kind == 'Instance': + self.scope(symbol.body, instance_path + '.' + self.segment(symbol.name), depth + 1, active) + elif kind == 'GenerateBlock': + if not symbol.isUninstantiated: + self.scope(symbol, instance_path + '.' + self.segment(symbol.externalName), depth + 1, active) + elif kind == 'GenerateBlockArray': + name = instance_path + '.' + self.segment(symbol.externalName) + for block in symbol.entries: + if block.isUninstantiated: + continue + index = block.arrayIndex + if index is None or index.hasUnknown: + raise RuntimeError('Unknown generate iteration index') + self.scope(block, name + '[' + str(int(index)) + ']', depth + 1, active) + elif kind == 'InstanceArray': + self.array(symbol, instance_path + '.' + self.segment(symbol.name), depth + 1, active) + + def array(self, array, array_path, depth, active): + if depth > MAX_DEPTH: + raise RuntimeError('Instance array depth limit exceeded') + for entry in array.elements: + if entry.kind.name == 'InstanceArray': + self.array(entry, array_path, depth + 1, active) + elif entry.kind.name == 'Instance': + indices = ''.join('[' + str(index) + ']' for index in entry.arrayPath) + self.scope(entry.body, array_path + indices, depth + 1, active) + else: + raise RuntimeError('Unsupported instance array member') + + +def main(argv): + import pyslang + from pyslang.driver import Driver, CommandLineOptions + version = native_version(pyslang) + if argv == ['--version']: + print(version) + return 0 + output = None + compiler_argv = [] + index = 0 + while index < len(argv): + arg = argv[index] + if arg == '--': + compiler_argv.extend(argv[index:]) + break + if arg == '--ast-json': + if index + 1 >= len(argv) or output is not None: + raise RuntimeError('Expected one --ast-json output path') + output = Path(argv[index + 1]) + index += 2 + continue + if arg.startswith('--ast-json='): + if output is not None: + raise RuntimeError('Expected one --ast-json output path') + output = Path(arg.split('=', 1)[1]) + elif arg not in ['--ast-json-source-info', '--ast-json-detailed-types']: + compiler_argv.append(arg) + index += 1 + if output is None or str(output) == '-': + raise RuntimeError('A file --ast-json output path is required') + driver = Driver() + driver.addStandardArgs() + options = CommandLineOptions() + options.ignoreProgramName = True + options.expandEnvVars = False + # Binding accepts one command-line string; shlex.join quotes every original + # argv atom. No shell is invoked, no environment interpolation is enabled. + if not driver.parseCommandLine(shlex.join(compiler_argv), options) or not driver.processOptions() or not driver.parseAllSources(): + driver.reportDiagnostics(True) + return 1 + compilation = driver.createCompilation() + driver.reportCompilation(compilation, True) + analysis = driver.runAnalysis(compilation) # Keep native analysis alive through export. + diagnostics = driver.textDiagClient.getString() + if diagnostics: + sys.stderr.write(diagnostics[:MAX_DIAGNOSTICS]) + if len(diagnostics) > MAX_DIAGNOSTICS: + sys.stderr.write('\nAdditional compiler diagnostics truncated.\n') + if driver.diagEngine.numErrors or compilation.hasFatalErrors or compilation.hasIssuedErrors: + return 1 + exporter = Exporter(driver.sourceManager, Path.cwd()) + for instance in compilation.getRoot().topInstances: + exporter.scope(instance.body, exporter.segment(instance.name)) + payload = {'codegraphSemanticVersion': 1, 'facts': exporter.facts} + encoded = json.dumps(payload, ensure_ascii=False, separators=(',', ':')).encode('utf8') + if len(encoded) > MAX_BYTES: + raise RuntimeError('Semantic JSON size limit exceeded') + output.write_bytes(encoded) + return 0 + + +if __name__ == '__main__': + try: + sys.exit(main(sys.argv[1:])) + except (Exception, ImportError) as error: + print('CodeGraph pyslang exporter: ' + str(error), file=sys.stderr) + sys.exit(2) diff --git a/src/hdl/source-map-import.ts b/src/hdl/source-map-import.ts new file mode 100644 index 000000000..f42a8eca9 --- /dev/null +++ b/src/hdl/source-map-import.ts @@ -0,0 +1,78 @@ +import * as path from 'node:path'; +import type { HdlSemanticFact, HdlMacroPoint, HdlMacroFrame } from './semantic-import'; +const object = (v: unknown): v is Record => !!v && typeof v === 'object' && !Array.isArray(v); +function fail(message: string): never { throw new Error('Invalid pyslang semantic export: ' + message); } + +/** Validate the separately versioned exporter protocol against immutable source bytes. */ +export function importMappedSemantics(value: unknown, sources: Record): HdlSemanticFact[] { + if (!object(value) || value.codegraphSemanticVersion !== 1 || !Array.isArray(value.facts) || value.facts.length > 100000) fail('unsupported schema or fact count'); + const cache = new Map(); + const fileData = (file: unknown) => { + if (typeof file !== 'string' || !file || file.includes('\\') || file.includes('\0') || path.posix.isAbsolute(file) || /^[A-Za-z]:/.test(file) || path.posix.normalize(file) !== file || file.split('/').includes('..') || !Object.prototype.hasOwnProperty.call(sources, file)) fail('source outside snapshot'); + if (!cache.has(file)) { + const bytes = Buffer.from(sources[file]!, 'utf8'), starts = [0]; + for (let i = 0; i < bytes.length; i++) if (bytes[i] === 10) starts.push(i + 1); + cache.set(file, { bytes, starts }); + } + return { file, ...cache.get(file)! }; + }; + const source = (v: unknown): NonNullable => { + if (!object(v)) fail('source must be an object'); + const data = fileData(v.file), line = v.line, column = v.column; + if (!Number.isSafeInteger(line) || (line as number) < 1 || (line as number) > data.starts.length || (column !== null && (!Number.isSafeInteger(column) || (column as number) < 1))) fail('invalid source coordinates'); + if (column !== null) { + const offset = data.starts[(line as number) - 1]! + (column as number) - 1; + const end = data.starts[line as number] ?? data.bytes.length; + if (((line as number) < data.starts.length && offset >= end) || offset > end || offset > data.bytes.length || (offset < data.bytes.length && (data.bytes[offset]! & 0xc0) === 0x80)) fail('column outside source line or inside UTF-8 code point'); + } + return { file: data.file, line: line as number, column: column as number | null }; + }; + const point = (v: unknown): HdlMacroPoint => { + const location = source(v); + if (!object(v) || location.column === null || !Number.isSafeInteger(v.byteOffset) || (v.byteOffset as number) < 0) fail('invalid source byte offset'); + const data = fileData(location.file); + if (data.starts[location.line - 1]! + location.column! - 1 !== v.byteOffset) fail('source coordinates disagree with byte offset'); + return { ...location, column: location.column!, byteOffset: v.byteOffset as number }; + }; + const text = (v: unknown, label: string, max = 4096): string => { + if (typeof v !== 'string' || !v || v.length > max || v.includes('\0')) fail('invalid ' + label); + return v; + }; + const result: HdlSemanticFact[] = []; + const identities = new Set(); + let frames = 0; + for (const item of value.facts) { + if (!object(item) || (item.kind !== 'parameter' && item.kind !== 'port' && item.kind !== 'type') || (item.sourceOrigin !== 'direct' && item.sourceOrigin !== 'macro')) fail('invalid fact kind/origin'); + const fact: HdlSemanticFact = { kind: item.kind, name: text(item.name, 'name'), instancePath: text(item.instancePath, 'instance path'), sourceOrigin: item.sourceOrigin }; + const id = JSON.stringify([fact.instancePath, fact.kind, fact.name]); + if (identities.has(id)) fail('duplicate instance fact'); identities.add(id); + if (item.value !== undefined) fact.value = text(item.value, 'value', 65536); + if (item.type !== undefined) fact.type = text(item.type, 'type', 65536); + if (item.width !== undefined) { + if (!Number.isSafeInteger(item.width) || (item.width as number) < 1) fail('invalid width'); + fact.width = item.width as number; + } + if (item.direction !== undefined) fact.direction = text(item.direction, 'direction'); + if (item.source !== undefined) fact.source = source(item.source); + if (item.sourceOrigin === 'macro') { + if (!Array.isArray(item.macroExpansion) || item.macroExpansion.length > 128 || typeof item.macroExpansionComplete !== 'boolean') fail('invalid macro chain'); + frames += item.macroExpansion.length; + if (frames > 100000) fail('macro frame count limit'); + fact.macroExpansion = item.macroExpansion.map((frame: unknown): HdlMacroFrame => { + if (!object(frame) || typeof frame.argument !== 'boolean') fail('invalid macro frame'); + const out: HdlMacroFrame = { name: frame.name === null ? null : text(frame.name, 'macro name'), argument: frame.argument }; + if (frame.spelling !== undefined) out.spelling = point(frame.spelling); + if (frame.invocation !== undefined) { + if (!object(frame.invocation)) fail('invalid invocation range'); + out.invocation = { start: point(frame.invocation.start), end: point(frame.invocation.end) }; + if (out.invocation.start.file !== out.invocation.end.file || out.invocation.start.byteOffset > out.invocation.end.byteOffset) fail('invalid invocation order'); + } + return out; + }); + fact.macroExpansionComplete = item.macroExpansionComplete; + if (fact.macroExpansionComplete && (!fact.macroExpansion.length || fact.macroExpansion.some(f => !f.spelling || !f.invocation || f.invocation.start.byteOffset === f.invocation.end.byteOffset))) fail('incomplete chain marked complete'); + } else if (item.macroExpansion !== undefined || item.macroExpansionComplete !== undefined) fail('direct fact carries macro chain'); + result.push(fact); + } + return result; +} From 9c969275ad563c36a25d5c2ee8a38d5e20aa9ce3 Mon Sep 17 00:00:00 2001 From: danusha2345 Date: Sat, 12 Sep 2026 20:44:03 +0300 Subject: [PATCH 23/23] =?UTF-8?q?feat:=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2?= =?UTF-8?q?=D0=B8=D1=82=D1=8C=20origins=20HDL=20initializer=20=D0=B8=20typ?= =?UTF-8?q?e=20expressions?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 2 + VERILOG_TRACKER.md | 10 +- __tests__/hdl-expression-origin.test.ts | 74 +++++++++ docs/hdl-macro-source-map.md | 23 ++- ...ation-hdl-expression-origins-2026-09-12.md | 102 ++++++++++++ scripts/verify-hdl-source-map-export.py | 106 ++++++++++++ src/hdl/semantic-import.ts | 17 ++ src/hdl/semantics.ts | 2 +- src/hdl/source-map-export.py | 151 +++++++++++++++++- src/hdl/source-map-import.ts | 57 ++++--- 10 files changed, 518 insertions(+), 26 deletions(-) create mode 100644 __tests__/hdl-expression-origin.test.ts create mode 100644 docs/validation-hdl-expression-origins-2026-09-12.md diff --git a/CHANGELOG.md b/CHANGELOG.md index cfc85da34..094f62234 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,8 @@ and adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). ### New Features +- HDL: pyslang теперь показывает macro origins в initializer параметров и объявленных типах, различая override и исходный default. + - HDL: `hdl-semantic --python` с pyslang показывает исходное написание и места вызова макросов, явно отмечая неполное сопоставление. - HDL: `hdl-semantic` с установленным slang показывает вычисленные параметры и ширины портов для выбранного профиля и экземпляра. diff --git a/VERILOG_TRACKER.md b/VERILOG_TRACKER.md index a5f63c70d..9190641cb 100644 --- a/VERILOG_TRACKER.md +++ b/VERILOG_TRACKER.md @@ -142,6 +142,11 @@ checkbox ниже остаётся открытым для полного зая Реальный AXI aw_chan_t width35: аргумент415:31, macro body178:44, вызов415:3–49. Collapsed ranges отмечены incomplete; origins всех выражений ещё не охвачены. Отчёт `docs/validation-hdl-macro-source-map-2026-09-12.md`. + Следующий пакет 2026-09-12: expressionOrigins для effective/default initializer + и type/dimensions (включая non-ANSI), explicit coverage/truncation; реальные + axi_from_mem types35/36/34 и header-change sync/rebuild parity. Отчёт + `docs/validation-hdl-expression-origins-2026-09-12.md`. Транзитивные зависимости + значения не объявляются полной origin map. - [ ] **B3** Проверить function-like macros, arguments/defaults, nested expansion, token concatenation/stringification, conditional includes и include guards. - [ ] **B4** Определить compilation-unit mode и порядок sources явно; не смешивать @@ -318,8 +323,8 @@ J — повторяемый checklist, его отметки относятся раздельно и unknown coordinates для macro-generated declarations. 4. **Минимальная on-demand вертикаль выполнена**: параметры/порты для одного profile/top, source links, ошибка compiler не меняет source graph. Дальше: - расширение B2 с declaration-name provenance на initializer/type expressions, - расширенные types C3 и persistent semantic + Прямые initializer/type token origins B2 добавлены; дальше — расширенные + types/dimensions model C3 и persistent semantic context/invalidation C1/D5; затем semantic queries MCP. 5. Провести J1–J9 для этого ограниченного пакета; затем расширять B/C и переходить к D. @@ -329,6 +334,7 @@ J — повторяемый checklist, его отметки относятся | --- | --- | --- | --- | --- | | 2026-09-12 | Source navigation, scopes, access | Реализованные части перечислены в HDL-001–006 | Отчёты раздела 1 | Сохранить regression coverage | | 2026-09-12 | Build profiles | Ограниченный source-режим, реальные profile parity проверки | `b050fb89`, `docs/validation-hdl-profiles-2026-09-12.md` | A: frontend comparison | +| 2026-09-12 | B2 expression origins | Effective/default/type tokens, non-ANSI, AXI35/36/34 и parity | `docs/validation-hdl-expression-origins-2026-09-12.md` | C3, cache/invalidation | | 2026-09-12 | B2 declaration origins | Pyslang SourceManager, реальные macro points/ranges и typedef35 | `docs/validation-hdl-macro-source-map-2026-09-12.md` | Expression origins, C3, cache | | 2026-09-12 | B/C первая вертикаль | API/CLI, реальные UART/CRC/AXI, include sync/rebuild parity | `docs/validation-hdl-semantics-2026-09-12.md` | B2, C3, persisted context | | 2026-09-12 | A3–A6 | 24 controls, slang выбран; CLI macro mapping неполон | `docs/hdl-frontend-decision.md` | B1/B2 + C1/C2 | diff --git a/__tests__/hdl-expression-origin.test.ts b/__tests__/hdl-expression-origin.test.ts new file mode 100644 index 000000000..7709f9382 --- /dev/null +++ b/__tests__/hdl-expression-origin.test.ts @@ -0,0 +1,74 @@ +import { afterEach, expect, it, vi } from 'vitest'; +import { createHash } from 'node:crypto'; +import { importMappedSemantics } from '../src/hdl/source-map-import'; +import { analyzeHdlSemantics, type HdlSemanticSourceGraph } from '../src/hdl/semantics'; +import type { HdlProfileStatus } from '../src/hdl/status'; +import type { FileRecord, Node } from '../src/types'; +const {run}=vi.hoisted(()=>({run:vi.fn()})); +vi.mock('../src/hdl/semantic-runner',()=>({runSlangSemantics:run})); +afterEach(()=>run.mockReset()); +const sources={'defs.svh':'`define WIDTH 8\r\n','top.sv':'// Ω\r\nmodule top #(parameter W = `WIDTH)(); endmodule\r\n'}; +function point(file:keyof typeof sources,byteOffset:number){const prefix=Buffer.from(sources[file]).subarray(0,byteOffset);return {file,byteOffset,line:[...prefix].filter(n=>n===10).length+1,column:byteOffset-prefix.lastIndexOf(10)};} +const start=Buffer.from(sources['top.sv']).indexOf('`WIDTH'); +function origin(role='initializer') {return {role,sourceOrigin:'macro',source:{file:'top.sv',line:2,column:28},macroExpansionComplete:true, + macroExpansion:[{name:'WIDTH',argument:false,spelling:point('defs.svh',Buffer.from(sources['defs.svh']).indexOf('8')),invocation:{start:point('top.sv',start),end:point('top.sv',start+6)}}]};} +function fact(){return {kind:'parameter',name:'W',instancePath:'top',value:'8',type:'int',width:32,sourceOrigin:'direct',source:{file:'top.sv',line:2,column:24}, + expressionOrigins:[origin()],expressionOriginCoverage:{initializer:'checked',declaredInitializer:'not-applicable',type:'not-applicable',truncated:false}};} +const payload=(f:unknown=fact())=>({codegraphSemanticVersion:1,facts:[f]}); + +it('keeps a direct declaration link when its initializer comes from a macro, preserving distinct scopes of provenance',async()=>{ + const graph:HdlSemanticSourceGraph={profile:()=>({state:'matches',indexed:{configurationFingerprint:'cfg'}} as HdlProfileStatus),stale:()=>false, + file:()=>({contentHash:createHash('sha256').update(sources['top.sv']).digest('hex')} as FileRecord),nodes:()=>[{id:'decl-W',kind:'constant',name:'W',startLine:2} as Node]}; + run.mockResolvedValue({frontend:'pyslang',ast:payload(),sources,sourceRoot:'/snapshot',profileName:'p',configurationFingerprint:'cfg',fingerprint:'snapshot', + version:'fixture',executableSha256:'python',exporterSha256:'exporter',librarySha256:'native',top:'top',parameters:{},allowUseBeforeDeclare:false, + languageStandard:'1800-2023',compilationUnitMode:'separate',runnerVersion:'test',compilerLimits:[],diagnostics:[]}); + const result=await analyzeHdlSemantics('/project',{pythonExecutable:'python',query:'top.W'},graph); + expect(result.facts[0]!.sourceNodeId).toBe('decl-W'); + expect(result.facts[0]!.sourceOrigin).toBe('direct'); + expect(result.facts[0]!.expressionOrigins![0]!.sourceOrigin).toBe('macro'); + expect(result.facts[0]!.expressionOrigins![0]!.macroExpansion[0]!.spelling!.file).toBe('defs.svh'); +}); + +it('preserves separate declared-initializer and type coverage when the effective initializer is supplied on the command line',()=>{ + const f=fact();f.expressionOriginCoverage={initializer:'command-line',declaredInitializer:'checked',type:'checked',truncated:true}; + f.expressionOrigins=[origin('declared-initializer'),origin('type')]; + const normalized=importMappedSemantics(payload(f),sources)[0]!; + expect(normalized.expressionOrigins!.map(e=>e.role)).toEqual(['declared-initializer','type']); + expect(normalized.expressionOriginCoverage).toEqual(f.expressionOriginCoverage); +}); + +it.each(['initializer','declaredInitializer','type'])('rejects non-string coverage even when coercion would resemble a known enum: %s',key=>{ + const f:any=fact();f.expressionOrigins=[];f.expressionOriginCoverage[key]=['checked']; + expect(()=>importMappedSemantics(payload(f),sources)).toThrow('coverage'); +}); + +it('rejects missing coverage, invalid roles/origins, contradictory coverage and malformed truncation',()=>{ + let f:any=fact();delete f.expressionOriginCoverage;expect(()=>importMappedSemantics(payload(f),sources)).toThrow('origins'); + f=fact();f.expressionOrigins[0].sourceOrigin='direct';expect(()=>importMappedSemantics(payload(f),sources)).toThrow('role'); + f=fact();f.expressionOrigins[0].role='expression';expect(()=>importMappedSemantics(payload(f),sources)).toThrow('role'); + f=fact();f.expressionOriginCoverage.initializer='unavailable';expect(()=>importMappedSemantics(payload(f),sources)).toThrow('contradicts'); + f=fact();f.expressionOriginCoverage.declaredInitializer='command-line';expect(()=>importMappedSemantics(payload(f),sources)).toThrow('coverage'); + f=fact();f.expressionOriginCoverage.truncated='false';expect(()=>importMappedSemantics(payload(f),sources)).toThrow('coverage'); +}); + +it('uses immutable source and byte-coordinate checks for every expression macro frame and source',()=>{ + let f:any=fact();f.expressionOrigins[0].macroExpansion[0].spelling.file='../defs.svh';expect(()=>importMappedSemantics(payload(f),sources)).toThrow('snapshot'); + f=fact();f.expressionOrigins[0].macroExpansion[0].spelling.byteOffset++;expect(()=>importMappedSemantics(payload(f),sources)).toThrow('disagree'); + f=fact();f.expressionOrigins[0].source={file:'top.sv',line:1,column:5};expect(()=>importMappedSemantics(payload(f),sources)).toThrow('UTF-8'); + f=fact();f.expressionOrigins[0].macroExpansion[0].invocation.end={...point('top.sv',start),file:'defs.svh'};expect(()=>importMappedSemantics(payload(f),sources)).toThrow(); +}); + +it('rejects duplicate normalized entries even if their raw objects differ by unrecognized fields',()=>{ + const f:any=fact();f.expressionOrigins.push({...origin(),ignored:'not-an-identity'}); + expect(()=>importMappedSemantics(payload(f),sources)).toThrow('duplicate expression'); +}); + +it('enforces the per-fact expression cap and one shared frame budget for declaration and expression origins',()=>{ + const f:any=fact();f.expressionOrigins=Array.from({length:33},()=>origin());expect(()=>importMappedSemantics(payload(f),sources)).toThrow('origins'); + const chain=(name:string)=>Array.from({length:128},(_,i)=>({name:i===0?name:'nested',argument:false})); + const facts=Array.from({length:25},(_,i)=>({...fact(),name:'W'+i,sourceOrigin:'macro',macroExpansion:chain('declaration'),macroExpansionComplete:false, + expressionOrigins:Array.from({length:31},(_,j)=>({role:'initializer',sourceOrigin:'macro',macroExpansion:chain('expression'+j),macroExpansionComplete:false}))})); + // Expressions alone have 99,200 frames; only a shared declaration+expression + // budget rejects this 102,400-frame payload. + expect(()=>importMappedSemantics({codegraphSemanticVersion:1,facts},sources)).toThrow('frame count'); +}); diff --git a/docs/hdl-macro-source-map.md b/docs/hdl-macro-source-map.md index e5cac49b8..ddd0fe725 100644 --- a/docs/hdl-macro-source-map.md +++ b/docs/hdl-macro-source-map.md @@ -31,9 +31,23 @@ active profile, overrides, separate compilation units, limits и snapshot checks ## Что возвращается -Объём этой версии — происхождение **имени объявления** parameter/port/typedef. Макрос -только в initializer или выражении ширины не делает имя macro-origin. Полный -набор macro uses внутри декларации/выражений ещё не экспортируется. +Имена объявлений parameter/port/typedef сохраняют прежние sourceOrigin и +macroExpansion. Макрос в initializer или типе не превращает само имя в +macro-origin: ссылка на прямое source declaration остаётся допустимой. + +Дополнительно возвращаются `expressionOrigins` — уникальные compiler macro-token +origins с ролями `initializer`, `declared-initializer` и `type`. Для `type` +проверяется доступный объявленный type syntax, включая поддержанные dimensions. +Фактический initializer не смешивается с default из объявления после override. +Это прямые macro tokens соответствующего syntax, не транзитивный анализ всех +констант, от которых зависит результат. + +`expressionOriginCoverage` отдельно описывает initializer, declaredInitializer +и type: `checked`, `not-applicable` или `unavailable`; initializer также может +иметь `command-line`. Пустой список при unavailable не доказывает отсутствия +макросов. `truncated=true` означает достижение лимита выдачи. На факт возвращается +не больше 32 expression origins; полнота отдельных macro frames остаётся в +macroExpansionComplete. - `provenance.frontend = pyslang`, версия протокола/exporter и хеши Python, exporter и native pyslang module. Запуск идёт через Python `-I`; путь venv @@ -70,7 +84,8 @@ Exporter — небольшой поставляемый Python helper; испо Computed include paths, files вне root и остальные ограничения snapshot runner сохраняются. Это не OS sandbox для запуска недоверенного compiler. Нет -persistent cache, полного source-map для всех constructed tokens или automatic +persistent cache, транзитивной карты зависимостей всех expressions, полного +source-map для всех constructed tokens или automatic MCP compilation. Windows backend пока отключён; macOS runtime не проверялся. Поведение SourceManager сверено с [официальным API](https://www.sv-lang.com/classslang_1_1_source_manager.html). diff --git a/docs/validation-hdl-expression-origins-2026-09-12.md b/docs/validation-hdl-expression-origins-2026-09-12.md new file mode 100644 index 000000000..4dcbc7116 --- /dev/null +++ b/docs/validation-hdl-expression-origins-2026-09-12.md @@ -0,0 +1,102 @@ +# Проверка macro origins выражений HDL + +Дата: 2026-09-12. База перед пакетом: `13df92be`. Source extraction stamp +остаётся 38; обновлён optional pyslang exporter, нормализация ответа и проверки. + +## Новое поведение + +`expressionOrigins` хранит уникальные compiler macro-token origins с ролями +initializer, declared-initializer и type. Имя объявления сохраняет собственный +sourceOrigin: прямое имя с macro initializer может иметь корректный sourceNodeId. +Type origins включают доступный declared type syntax и dimensions. + +`expressionOriginCoverage` различает checked/not-applicable/unavailable и +command-line для effective initializer. Default после override не выдаётся за +использованное выражение. В частности, pyslang isOverridden недостаточен для -G: +сравниваются нативные syntax ranges и подтверждается synthetic command-line buffer. + +Внутренние collapsed macro ranges остаются incomplete. Лимит — 32 origins на +факт, общий budget frames и syntax visits; truncated сообщает ограничение. +Кэш syntax сохраняет wrapper, чтобы повторное использование Python id не +подменило origins. Нормализованные дубликаты удаляются даже после исчерпания +frame budget. Это прямые syntax tokens, не транзитивный анализ всех констант. + +## Реальный AXI и отдельный diagnostic wrapper + +Исходный `axi_from_mem.sv` revision `da8793b0e3f14c9186c94fac9ed6ec06375c254e` +не изменялся. Для его допустимой elaboration создан отдельный wrapper с корректными +request/response struct types; это новый control, а не исходный AXI test. +Использованы 244 исходные единицы из восстановленного A2 filelist плюс wrapper. +Compilation завершилась без ошибок, с предупреждениями о неподключённых портах. + +Через **CodeGraph.getHdlSemantics** проверены: + +| Query внутри cg_axi_from_mem_control.dut | Width | Macro range expression spelling в src/axi_from_mem.sv | +| --- | ---: | --- | +| axi_lite_aw_chan_t | 35 | AxiAddrWidth-1, строка 81, колонка 42 | +| axi_lite_w_chan_t | 36 | DataWidth-1 и DataWidth/8-1, 81:68 и 81:91 | +| axi_lite_r_chan_t | 34 | DataWidth-1, 81:68 | + +Все три имеют coverage.type=checked, без truncation: 19/26/19 expression origins. +На compiled CLI повторён axi_lite_w_chan_t: width36 и type origins подтверждены. +Compiler frames связывают аргументы с `include/axi/typedef.svh` и внешним вызовом +AXI_LITE_TYPEDEF_ALL на строке 81. В обычных UART/CRC tops нет соответствующих +macro range expressions; они не выдавались за положительные случаи. + +Wrapper для воспроизведения в независимой копии A2 (добавить его в profile files, +задать top cg_axi_from_mem_control): + +```systemverilog +`include "axi/typedef.svh" +module cg_axi_from_mem_control; + typedef logic [31:0] addr_t; + typedef logic [31:0] data_t; + typedef logic [3:0] strb_t; + typedef logic [0:0] id_t; + typedef logic [0:0] user_t; + `AXI_TYPEDEF_ALL(bus, addr_t, id_t, data_t, strb_t, user_t) + axi_from_mem #(.MemAddrWidth(32), .AxiAddrWidth(32), .DataWidth(32), + .MaxRequests(2), .axi_req_t(bus_req_t), .axi_rsp_t(bus_resp_t)) dut(); +endmodule +``` + +## Override, изменение header и восстановление графа + +Дополнительный небольшой RTL control: leaf с P=`DEF, экземпляр a переопределяет +P через `OVR, экземпляр b оставляет default. + +- Сначала значения 11/7; у a initializer указывает OVR, declared-initializer — DEF. +- После смены header значения 13/9; старые source node links не выдаются до sync. +- После scoped sync и затем recreate+indexAll совпадают facts, sourceNodeId, + expression origins и semantic fingerprint. + +В отдельных реальных helper tests проверен -G: effective initializer имеет +coverage command-line, исходный macro default отдельно declaredInitializer. +Необнаруживаемые compiler syntax данные остаются unavailable. + +## Проверки и границы + +Целевые TypeScript tests: 40 passed, включая 9 новых expression-origin regressions, +оба CLI selectors, coordinate validation и доставку Python asset. Review нашло +и помогло исправить coercion coverage: JSON array не принимается как enum string. +Неполное/противоречивое покрытие, ложные paths/offsets, duplicate origins и budgets +проверены отрицательными controls. + +Реальные Python tests запускать установленным pyslang 11.0.0: + +```sh +/path/to/venv/bin/python -I scripts/verify-hdl-source-map-export.py --work-root /path/to/storage +``` + +Дополнительная проверка non-ANSI портов выявила отдельный случай: dimensions +находятся в internalSymbol.syntax, а не в header PortReference. Это исправлено +и проверено отдельным regression: ANSI и non-ANSI дают один и тот же macro origin +без дубликатов; при неизвестном declarator coverage не объявляется checked. + +15/15 проверок с настоящим pyslang прошли после исправления non-ANSI. +Финальный native: 310 test files, 4956 passed, 9 skipped, 0 failed. +Финальный WASM: 309 test files passed, 1 skipped; 4946 passed, 19 skipped, 0 failed. +Матрица выполнена последовательно с двумя workers. +Production build и real API controls прошли; originals не изменялись. +Persistent cache, полная C3 type model, simulation/synthesis/timing и аппаратная +корректность не заявляются. Windows runner остаётся отключён. diff --git a/scripts/verify-hdl-source-map-export.py b/scripts/verify-hdl-source-map-export.py index 2af768027..c60f4dcc5 100644 --- a/scripts/verify-hdl-source-map-export.py +++ b/scripts/verify-hdl-source-map-export.py @@ -118,6 +118,112 @@ def test_type_alias_facts_have_integral_width_and_declaration_origin(self): self.assertEqual(facts['nibble_t']['sourceOrigin'], 'direct') self.assertNotIn('direction', facts['byte_t']) + @staticmethod + def origin_names(fact, role): + return {frame['name'] for origin in fact['expressionOrigins'] if origin['role'] == role + for frame in origin.get('macroExpansion', [])} + + def test_literal_parameter_tracks_its_macro_initializer_not_declaration_name(self): + self.write('defs.svh', '`define VALUE 7\n') + self.write('top.sv', '`include "defs.svh"\nmodule top; localparam int P=`VALUE; endmodule\n') + fact = next(f for f in self.compile('top.sv') if f['name'] == 'P') + self.assertEqual(fact['sourceOrigin'], 'direct') + self.assertEqual(self.origin_names(fact, 'initializer'), {'VALUE'}) + self.assertEqual(fact['expressionOriginCoverage']['initializer'], 'checked') + self.assertEqual(fact['expressionOriginCoverage']['declaredInitializer'], 'not-applicable') + + def test_port_and_type_dimensions_have_compiler_macro_origins_with_physical_coordinates(self): + self.write('defs.svh', '`define WIDTH 8\n', crlf=True) + self.write('top.sv', '`include "defs.svh"\n/* 😀 */ module top(output logic [`WIDTH-1:0] data);\n typedef logic [`WIDTH-1:0] word_t;\nendmodule\n', crlf=True, bom=True) + facts = {f['name']: f for f in self.compile('top.sv')} + for name in ['data', 'word_t']: + fact = facts[name] + self.assertEqual(fact['sourceOrigin'], 'direct') + self.assertEqual(fact['width'], 8) + self.assertEqual(self.origin_names(fact, 'type'), {'WIDTH'}) + self.assertEqual(fact['expressionOriginCoverage']['type'], 'checked') + for origin in fact['expressionOrigins']: + for frame in origin.get('macroExpansion', []): + if 'spelling' in frame: + self.assertPoint(frame['spelling']) + if 'invocation' in frame: + self.assertPoint(frame['invocation']['start']) + self.assertPoint(frame['invocation']['end']) + + def test_nonansi_and_ansi_unpacked_port_dimensions_keep_macro_type_origins(self): + self.write('defs.svh', '`define W 4\n') + for declaration in ['module top(a); input logic a[`W]; endmodule', + 'module top(input logic a[`W]); endmodule']: + self.write('top.sv', '`include "defs.svh"\n' + declaration + '\n') + fact = next(f for f in self.compile('top.sv') if f['kind'] == 'port' and f['name'] == 'a') + self.assertEqual(self.origin_names(fact, 'type'), {'W'}) + self.assertEqual(fact['expressionOriginCoverage']['type'], 'checked') + self.assertFalse(fact['expressionOriginCoverage']['truncated']) + self.assertEqual(len(fact['expressionOrigins']), 1) + for frame in fact['expressionOrigins'][0]['macroExpansion']: + if 'spelling' in frame: + self.assertPoint(frame['spelling']) + if 'invocation' in frame: + self.assertPoint(frame['invocation']['start']) + self.assertPoint(frame['invocation']['end']) + + def test_instance_override_separates_actual_and_declared_default_macro_origins(self): + self.write('defs.svh', '`define DEFAULT 7\n`define ACTUAL 11\n') + self.write('top.sv', '`include "defs.svh"\nmodule leaf #(parameter int P=`DEFAULT); endmodule\nmodule top; leaf #(.P(`ACTUAL)) u(); endmodule\n') + fact = next(f for f in self.compile('top.sv') if f['instancePath'] == 'top.u' and f['name'] == 'P') + self.assertEqual(fact['value'], '11') + self.assertEqual(self.origin_names(fact, 'initializer'), {'ACTUAL'}) + self.assertEqual(self.origin_names(fact, 'declared-initializer'), {'DEFAULT'}) + self.assertEqual(fact['expressionOriginCoverage']['declaredInitializer'], 'checked') + + def test_command_line_override_never_reports_macro_default_as_effective(self): + self.write('top.sv', '`define DEFAULT 7\nmodule top #(parameter int P=`DEFAULT); endmodule\n') + fact = next(f for f in self.compile('top.sv', ['-G', 'P=11']) if f['name'] == 'P') + self.assertEqual(fact['value'], '11') + self.assertEqual(fact['expressionOriginCoverage']['initializer'], 'command-line') + self.assertFalse(self.origin_names(fact, 'initializer')) + self.assertEqual(self.origin_names(fact, 'declared-initializer'), {'DEFAULT'}) + + def test_checked_type_syntax_does_not_claim_transitive_typedef_dependencies(self): + self.write('top.sv', '`define WIDTH 8\ntypedef logic [`WIDTH-1:0] word_t;\nmodule top(output word_t data); endmodule\n') + fact = next(f for f in self.compile('top.sv') if f['name'] == 'data') + self.assertEqual(fact['width'], 8) + self.assertEqual(fact['expressionOriginCoverage']['type'], 'checked') + self.assertEqual(fact['expressionOrigins'], []) + + def test_expression_origin_budget_is_explicit_and_keeps_compiled_value(self): + self.write('top.sv', '`define V 1\nmodule top; localparam int P=' + '+'.join(['`V'] * 40) + '; endmodule\n') + fact = next(f for f in self.compile('top.sv') if f['name'] == 'P') + self.assertEqual(fact['value'], '40') + self.assertEqual(len(fact['expressionOrigins']), 32) + self.assertTrue(fact['expressionOriginCoverage']['truncated']) + + def test_normalized_origins_are_deduplicated_when_frame_budget_is_exhausted(self): + self.write('top.sv', '`define V 1\nmodule top; localparam int P=`V+`V; endmodule\n') + out = self.root / 'facts.json' + probe = """import importlib.util,sys +sys.dont_write_bytecode=True +spec=importlib.util.spec_from_file_location('test_exporter',sys.argv[1]) +module=importlib.util.module_from_spec(spec);spec.loader.exec_module(module) +module.MAX_PROVENANCE_FRAMES=0 +raise SystemExit(module.main(['--ast-json',sys.argv[2],'--std=1800-2023','--top','top','--','top.sv'])) +""" + result = subprocess.run([sys.executable, '-I', '-c', probe, str(HELPER), str(out)], + cwd=self.root, capture_output=True, text=True, timeout=60) + self.assertEqual(result.returncode, 0, result.stderr) + fact = next(f for f in json.loads(out.read_text())['facts'] if f['name'] == 'P') + self.assertEqual(fact['value'], '2') + self.assertEqual(len(fact['expressionOrigins']), 1) + self.assertTrue(fact['expressionOriginCoverage']['truncated']) + self.assertEqual(fact['expressionOrigins'][0]['macroExpansion'], []) + self.assertFalse(fact['expressionOrigins'][0]['macroExpansionComplete']) + + def test_line_directive_cannot_spoof_command_line_origin(self): + self.write('top.sv', '`define VALUE 7\n`line 700 "" 0\nmodule top; parameter int P=`VALUE; endmodule\n') + fact = next(f for f in self.compile('top.sv') if f['name'] == 'P') + self.assertEqual(fact['expressionOriginCoverage']['initializer'], 'checked') + self.assertEqual(self.origin_names(fact, 'initializer'), {'VALUE'}) + def test_rejects_semantic_errors_instead_of_exporting_partial_ast(self): self.write('top.sv', 'module top; missing_dependency u(); endmodule\n') result = self.compile('top.sv', success=False) diff --git a/src/hdl/semantic-import.ts b/src/hdl/semantic-import.ts index 2d29f50e7..bab8abcb8 100644 --- a/src/hdl/semantic-import.ts +++ b/src/hdl/semantic-import.ts @@ -3,6 +3,21 @@ import * as path from 'node:path'; export interface HdlMacroPoint { file: string; line: number; column: number; byteOffset: number } export interface HdlMacroFrame { name: string | null; argument: boolean; spelling?: HdlMacroPoint; invocation?: { start: HdlMacroPoint; end: HdlMacroPoint } } +export type HdlExpressionRole = 'initializer' | 'declared-initializer' | 'type'; +export interface HdlExpressionOrigin { + role: HdlExpressionRole; + sourceOrigin: 'macro'; + source?: { file: string; line: number; column: number | null }; + macroExpansion: HdlMacroFrame[]; + macroExpansionComplete: boolean; +} +export interface HdlExpressionCoverage { + initializer: 'checked' | 'not-applicable' | 'unavailable' | 'command-line'; + declaredInitializer: 'checked' | 'not-applicable' | 'unavailable'; + type: 'checked' | 'not-applicable' | 'unavailable'; + truncated: boolean; +} + export interface HdlSemanticFact { kind: 'parameter' | 'port' | 'type'; name: string; @@ -15,6 +30,8 @@ export interface HdlSemanticFact { sourceOrigin?: 'direct' | 'macro'; macroExpansion?: HdlMacroFrame[]; macroExpansionComplete?: boolean; + expressionOrigins?: HdlExpressionOrigin[]; + expressionOriginCoverage?: HdlExpressionCoverage; } type AstObject = Record; diff --git a/src/hdl/semantics.ts b/src/hdl/semantics.ts index e6d2f0aaa..ee7e27c5b 100644 --- a/src/hdl/semantics.ts +++ b/src/hdl/semantics.ts @@ -70,7 +70,7 @@ export async function analyzeHdlSemantics(root: string, options: HdlSemanticOpti truncated: matches.length > selected.length, diagnostics: result.diagnostics, limitations: ['Computed on demand from a source snapshot; no persistent semantic cache.', 'Source columns retain frontend coordinates; null means unavailable, including macro-generated declarations.', - 'Macro provenance covers declaration-name locations, not every macro use in types or initializer expressions.', + 'Expression origins cover directly visited compiler syntax tokens; coverage/truncation is explicit, not a transitive constant-dependency proof.', 'Only supported parameter/port facts are returned; absent or unknown widths are not zero.', 'Compiler semantics are not simulation, synthesis, timing or hardware validation.'] }; } diff --git a/src/hdl/source-map-export.py b/src/hdl/source-map-export.py index cbf776b21..a0d448cd4 100644 --- a/src/hdl/source-map-export.py +++ b/src/hdl/source-map-export.py @@ -5,6 +5,9 @@ and expansion parent relations. It is not an ordered invocation stack. Points are physical UTF-8 byte positions in root-confined source files. A pasted token's spelling point can identify its prefix argument; it is never a name range. +Expression origins describe only macro tokens in the selected direct syntax, +not transitive value/type dependencies. 'checked' plus truncated=true is a +bounded partial scan; command-line initializers remain separate from defaults. """ import hashlib import json @@ -16,6 +19,9 @@ MAX_DEPTH = 128 MAX_BYTES = 64 * 1024 * 1024 MAX_DIAGNOSTICS = 256 * 1024 +MAX_EXPRESSION_ORIGINS = 32 +MAX_PROVENANCE_FRAMES = 100_000 +MAX_SYNTAX_VISITS = 1_000_000 def native_version(pyslang): @@ -38,6 +44,9 @@ def __init__(self, manager, root): self.identities = set() self.visits = 0 self.output_bytes = 0 + self.syntax_cache = {} + self.syntax_visits = 0 + self.provenance_frames = 0 def point(self, location): try: @@ -112,6 +121,145 @@ def provenance(self, location): self.origins[key] = result return result + def bounded_origin(self, origin): + result = dict(origin) + frames = origin.get('macroExpansion', []) + remaining = max(0, MAX_PROVENANCE_FRAMES - self.provenance_frames) + truncated = len(frames) > remaining + if 'macroExpansion' in origin: + result['macroExpansion'] = frames[:remaining] + self.provenance_frames += len(result['macroExpansion']) + if truncated: + result['macroExpansionComplete'] = False + return result, truncated + + @staticmethod + def syntax_key(syntax): + if syntax is None: + return None + span = syntax.sourceRange + return (syntax.kind.name, span.start.buffer.id, span.start.offset, + span.end.buffer.id, span.end.offset) + + def command_line_syntax(self, syntax): + if syntax is None: + return False + location = self.manager.getFullyExpandedLoc(syntax.getFirstToken().location) + if not location.buffer.id: + return False + # Driver's override buffer has an explicit command-line line mapping + # and an unnamed synthetic path, unlike a physical `line spoof. + return (self.manager.getFileName(location) == '' + and self.manager.getRawFileName(location.buffer).startswith(' 20_000 or self.syntax_visits > MAX_SYNTAX_VISITS: + truncated = True + return VisitAction.Interrupt + if isinstance(item, Token) and item.location.buffer.id and self.manager.isMacroLoc(item.location): + token_key = (item.location.buffer.id, item.location.offset) + if token_key not in seen: + if len(locations) >= MAX_EXPRESSION_ORIGINS: + truncated = True + return VisitAction.Interrupt + seen.add(token_key) + locations.append(item.location) + return VisitAction.Advance + + syntax.visit(visit) + # Retain the syntax wrapper: a bare Python id could otherwise be reused + # after collection, yielding origins for an unrelated syntax node. + self.syntax_cache[key] = (syntax, locations, truncated) + return locations, truncated + + def expression_origins(self, symbol): + coverage = {'initializer': 'not-applicable', 'declaredInitializer': 'not-applicable', + 'type': 'unavailable', 'truncated': False} + plans = [] + declared_type = getattr(symbol, 'declaredType', None) + declaration = symbol.syntax + type_declarations = [declaration] if declaration is not None else [] + if symbol.kind.name == 'Port': + internal = symbol.internalSymbol + if declared_type is None: + declared_type = getattr(internal, 'declaredType', None) if internal else None + # A non-ANSI PortReference is just the header name. The actual + # declarator (including unpacked dimensions) belongs to its net/var. + internal_syntax = getattr(internal, 'syntax', None) if internal else None + if internal_syntax is not None: + type_declarations.insert(0, internal_syntax) + if symbol.kind.name == 'Parameter': + expression = symbol.initializer + effective = expression.syntax if expression is not None else None + if effective is None and expression is not None and declared_type is not None: + effective = declared_type.initializerSyntax + clause = getattr(declaration, 'initializer', None) if declaration is not None else None + default = getattr(clause, 'expr', None) if clause is not None else None + if effective is None: + coverage['initializer'] = 'unavailable' + else: + coverage['initializer'] = 'command-line' if self.command_line_syntax(effective) else 'checked' + plans.append(('initializer', effective)) + # isOverridden alone is insufficient: Driver -G overrides currently + # leave it false, but their effective syntax is a distinct buffer. + overridden = symbol.isOverridden or (effective is not None and default is not None + and self.syntax_key(effective) != self.syntax_key(default)) + if overridden and default is not None: + coverage['declaredInitializer'] = 'checked' + plans.append(('declared-initializer', default)) + type_syntax = declared_type.typeSyntax if declared_type is not None else None + dimensions = [] + dimensions_known = symbol.kind.name != 'Port' + for candidate in type_declarations: + declared_dimensions = getattr(candidate, 'dimensions', None) + if declared_dimensions is not None: + dimensions_known = True + dimensions.extend(declared_dimensions) + type_inputs = ([type_syntax] if type_syntax is not None else []) + dimensions + if type_inputs and dimensions_known: + coverage['type'] = 'checked' + seen_types = set() + for node in type_inputs: + key = self.syntax_key(node) + if key not in seen_types: + seen_types.add(key) + plans.append(('type', node)) + origins, seen, normalized_seen = [], set(), set() + for role, syntax in plans: + locations, truncated = self.scan_macro_tokens(syntax, role) + coverage['truncated'] |= truncated + for location in locations: + key = (role, location.buffer.id, location.offset) + if key in seen: + continue + seen.add(key) + if len(origins) >= MAX_EXPRESSION_ORIGINS: + coverage['truncated'] = True + break + origin, limited = self.bounded_origin(self.provenance(location)) + coverage['truncated'] |= limited + entry = {'role': role, **origin} + normalized = json.dumps(entry, sort_keys=True, ensure_ascii=False, separators=(',', ':')) + if normalized in normalized_seen: + continue + normalized_seen.add(normalized) + origins.append(entry) + return {'expressionOrigins': origins, 'expressionOriginCoverage': coverage} + @staticmethod def segment(name): import re @@ -122,9 +270,10 @@ def segment(name): def append(self, symbol, instance_path): kind = symbol.kind.name semantic_type = symbol.canonicalType if kind == 'TypeAlias' else symbol.type + origin, _ = self.bounded_origin(self.provenance(symbol.location)) fact = {'kind': {'Parameter': 'parameter', 'Port': 'port', 'TypeAlias': 'type'}[kind], 'name': symbol.name, 'instancePath': instance_path, - 'type': str(semantic_type), **self.provenance(symbol.location)} + 'type': str(semantic_type), **origin, **self.expression_origins(symbol)} if semantic_type.isIntegral: width = semantic_type.bitWidth if 0 < width <= 2**53 - 1: diff --git a/src/hdl/source-map-import.ts b/src/hdl/source-map-import.ts index f42a8eca9..67f757118 100644 --- a/src/hdl/source-map-import.ts +++ b/src/hdl/source-map-import.ts @@ -1,5 +1,5 @@ import * as path from 'node:path'; -import type { HdlSemanticFact, HdlMacroPoint, HdlMacroFrame } from './semantic-import'; +import type { HdlSemanticFact, HdlMacroPoint, HdlMacroFrame, HdlExpressionCoverage, HdlExpressionOrigin } from './semantic-import'; const object = (v: unknown): v is Record => !!v && typeof v === 'object' && !Array.isArray(v); function fail(message: string): never { throw new Error('Invalid pyslang semantic export: ' + message); } @@ -41,6 +41,25 @@ export function importMappedSemantics(value: unknown, sources: Record(); let frames = 0; + const macro = (item: Record): Omit => { + if (!Array.isArray(item.macroExpansion) || item.macroExpansion.length > 128 || typeof item.macroExpansionComplete !== 'boolean') fail('invalid macro chain'); + frames += item.macroExpansion.length; + if (frames > 100000) fail('macro frame count limit'); + const macroExpansion = item.macroExpansion.map((frame: unknown): HdlMacroFrame => { + if (!object(frame) || typeof frame.argument !== 'boolean') fail('invalid macro frame'); + const out: HdlMacroFrame = { name: frame.name === null ? null : text(frame.name, 'macro name'), argument: frame.argument }; + if (frame.spelling !== undefined) out.spelling = point(frame.spelling); + if (frame.invocation !== undefined) { + if (!object(frame.invocation)) fail('invalid invocation range'); + out.invocation = { start: point(frame.invocation.start), end: point(frame.invocation.end) }; + if (out.invocation.start.file !== out.invocation.end.file || out.invocation.start.byteOffset > out.invocation.end.byteOffset) fail('invalid invocation order'); + } + return out; + }); + const macroExpansionComplete = item.macroExpansionComplete; + if (macroExpansionComplete && (!macroExpansion.length || macroExpansion.some(f => !f.spelling || !f.invocation || f.invocation.start.byteOffset === f.invocation.end.byteOffset))) fail('incomplete chain marked complete'); + return { macroExpansion, macroExpansionComplete, ...(item.source !== undefined ? { source: source(item.source) } : {}) }; + }; for (const item of value.facts) { if (!object(item) || (item.kind !== 'parameter' && item.kind !== 'port' && item.kind !== 'type') || (item.sourceOrigin !== 'direct' && item.sourceOrigin !== 'macro')) fail('invalid fact kind/origin'); const fact: HdlSemanticFact = { kind: item.kind, name: text(item.name, 'name'), instancePath: text(item.instancePath, 'instance path'), sourceOrigin: item.sourceOrigin }; @@ -54,24 +73,26 @@ export function importMappedSemantics(value: unknown, sources: Record 128 || typeof item.macroExpansionComplete !== 'boolean') fail('invalid macro chain'); - frames += item.macroExpansion.length; - if (frames > 100000) fail('macro frame count limit'); - fact.macroExpansion = item.macroExpansion.map((frame: unknown): HdlMacroFrame => { - if (!object(frame) || typeof frame.argument !== 'boolean') fail('invalid macro frame'); - const out: HdlMacroFrame = { name: frame.name === null ? null : text(frame.name, 'macro name'), argument: frame.argument }; - if (frame.spelling !== undefined) out.spelling = point(frame.spelling); - if (frame.invocation !== undefined) { - if (!object(frame.invocation)) fail('invalid invocation range'); - out.invocation = { start: point(frame.invocation.start), end: point(frame.invocation.end) }; - if (out.invocation.start.file !== out.invocation.end.file || out.invocation.start.byteOffset > out.invocation.end.byteOffset) fail('invalid invocation order'); - } - return out; + if (item.sourceOrigin === 'macro') Object.assign(fact, macro(item)); + else if (item.macroExpansion !== undefined || item.macroExpansionComplete !== undefined) fail('direct fact carries macro chain'); + if (item.expressionOrigins !== undefined || item.expressionOriginCoverage !== undefined) { + if (!Array.isArray(item.expressionOrigins) || item.expressionOrigins.length > 32 || !object(item.expressionOriginCoverage)) fail('invalid expression origins'); + const coverage = item.expressionOriginCoverage; + const statuses = ['checked', 'not-applicable', 'unavailable']; + if (typeof coverage.initializer !== 'string' || typeof coverage.declaredInitializer !== 'string' || typeof coverage.type !== 'string' || ![...statuses, 'command-line'].includes(coverage.initializer) || !statuses.includes(coverage.declaredInitializer) || !statuses.includes(coverage.type) || typeof coverage.truncated !== 'boolean') fail('invalid expression coverage'); + fact.expressionOriginCoverage = { initializer: coverage.initializer, declaredInitializer: coverage.declaredInitializer, type: coverage.type, truncated: coverage.truncated } as HdlExpressionCoverage; + const keys = { initializer: 'initializer', 'declared-initializer': 'declaredInitializer', type: 'type' } as const; + const seen = new Set(); + fact.expressionOrigins = item.expressionOrigins.map((entry: unknown): HdlExpressionOrigin => { + if (!object(entry) || (entry.role !== 'initializer' && entry.role !== 'declared-initializer' && entry.role !== 'type') || entry.sourceOrigin !== 'macro') fail('invalid expression origin role'); + const status = coverage[keys[entry.role]]; + if (status !== 'checked' && status !== 'command-line') fail('expression origin contradicts coverage'); + const normalized: HdlExpressionOrigin = { role: entry.role, sourceOrigin: 'macro', ...macro(entry) }; + const key = JSON.stringify(normalized); + if (seen.has(key)) fail('duplicate expression origin'); seen.add(key); + return normalized; }); - fact.macroExpansionComplete = item.macroExpansionComplete; - if (fact.macroExpansionComplete && (!fact.macroExpansion.length || fact.macroExpansion.some(f => !f.spelling || !f.invocation || f.invocation.start.byteOffset === f.invocation.end.byteOffset))) fail('incomplete chain marked complete'); - } else if (item.macroExpansion !== undefined || item.macroExpansionComplete !== undefined) fail('direct fact carries macro chain'); + } result.push(fact); } return result;
  • h*fNRi@|^;PG(#i^@qH+=n1N=4o7!D^RM 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%0Drv;q*ROr)QH zNYf5Oil=}nkzOZq=YBB`Vd5#b{JAT1x$(bMv*&j z5_2HZ?zkRAnyouTnyrhU3X!I@fk@MukdjsaB9)2s^AKs;VMy^5FeTC-61nrWVh%*w z9oK_Mvvr3^vvu)PA=0!q5NTQyQql@Qq%x6S%~wRz4nvBkfGLr_PUOzli#ZT!cU%u5 z&DI?v&DOh>^-M(jR;!E99p=h7@9?Cf~KU6C-_-Nb;us3Xx_j z2$5#%;-^BSX>B0Vv?ipa6(B}Rj5O^P{gL7-Mw(~VzFqlS3X)dHjJsPE?rHum8)>h< z{rsl(gv|4>_5&)~?@<1JS98xS8`?h%~K9Kd1cJOV(Vt=E84Z(5}IU_8*@+KG&Wao^NdgM>CCOm-$Dt zo5P&4|Hi*-|Aq^rtC{hxcza`eV@D%63Uh*J>6t6S^W^Wr#=(|SQTi({&PqL$u$*f= zv`wj*#*|ljSF8rVZKaM*D|Ke|gBz5ZYTR7Ee<;{j&P;jsQ;lOo$A)~X!)sr>?(o{L zZ1s=h+rE1IEc-a!>uftx^%U4Lm9&#)?Qa!%;%#CMv-U}CU7blZ=c@hu?Lefb)oD+* zr_|Hx*_M1~)br{EH89|x)&~52aA0}!tYzS*d%IFQy+2kAtZK`PtS()W;)#()YDGs7 zX`}^5vI5N7%d__9^JbImIDMU?`)1S04R!C|1@-!<_h-0$&HERI-WD$@3#7I5qTbtjme~td1;dV;x7=1D>LgKg>kzO*oIFU{Y zcTS>dPErc!6X~!w0&FOdr9c!TU2|ntetFa4G14F+8C*-T7->-*p06MEVw*vX^xoM2 z>Eb=|>s~BIx@+Wub-PA>*o(C$x4U;F&pETNz=pOM>1-?F8K3*yB}PFz*}sq(lSG<# z*8Vo3uVL*)h;(j=CkJ|sNUIqmz2O3XkNah|_sJG+h_t;|leNLxq_+p@r_^+OK-X&d5ygtBmMHZ$=-JEEKa0zZ7kTCS^KwM zq%&(jwlHgdPv)$B?YyOC?I-H*sZZ3;PZ24z_MP(<-I{b~?Qa)IPpJc94zu>UqtIEq zkbXK_tIgV&wTDP;`d6{K`;$nEY1PlAdYee?jf@VFZfDls-T;)kX5CqP={eFnMDDyx z%z;R|<1!Fww(i78vvu)Pd9x|44MdvOgp{-b5UKne=?AZ6^{2GQkdk-xr=z3sxzFX^ zjN?5bcmA}P1Ce&e^B~e}-67I!UHnvtG_4Ipn%0Drv;q*ROr#%$NYf5Oil=~SjC5Y) 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 z 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%0Dw-(=3y|8*shUcme<0^lwTQ6K_(~%%e^a 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 $-|2H~AcAJi*jlq8Dz?qZ+51zY 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�Gk#gOKx;yPNM`)-GiiD1QmISiY2&tm95! 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

  • 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