Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
74 commits
Select commit Hold shift + click to select a range
2e8b82e
htcl frontend working reasonably well
rcgoodfellow Jun 4, 2026
e1fa8df
various crimes for CIPS IP generation to work
rcgoodfellow Jun 17, 2026
1f26849
htcl generation for commands from vivado man pages
rcgoodfellow Jun 19, 2026
980025c
non-local ipe dep
rcgoodfellow Jun 19, 2026
413fabf
unbreak illumos build
rcgoodfellow Jun 19, 2026
a9108d8
ci -> helios 3
rcgoodfellow Jun 19, 2026
8756f7e
ci: ubuntu -> 24.04
rcgoodfellow Jun 19, 2026
58b8e45
lsp: autocomplete for `src`
rcgoodfellow Jun 20, 2026
7362f74
first class module imports
rcgoodfellow Jun 22, 2026
9aa3978
recursive resolving, various ip generator updates
rcgoodfellow Jun 23, 2026
6e69386
various fixes for generated docs and lsp doc rendering
rcgoodfellow Jun 23, 2026
bffc584
reticulating repl ...
rcgoodfellow Jun 24, 2026
e04284a
reticulating repl
rcgoodfellow Jun 24, 2026
8b52e52
reticulating repl ...
rcgoodfellow Jun 26, 2026
e5e089a
repl: configure_cips working
rcgoodfellow Jun 26, 2026
646dc6d
reticulating repl
rcgoodfellow Jun 27, 2026
25e4ea0
htcl types
rcgoodfellow Jun 29, 2026
f553280
make run diagnostics consistent with repl
rcgoodfellow Jun 29, 2026
b9d64b4
fix major repl pathologies
rcgoodfellow Jun 29, 2026
fe3f311
user versus default prop tracking
rcgoodfellow Jun 30, 2026
3ea3424
repl: lsp integration
rcgoodfellow Jun 30, 2026
acb239c
make strack traces on info logs optional
rcgoodfellow Jun 30, 2026
85ea571
lsp: full workspace symbol search
rcgoodfellow Jun 30, 2026
abac9a3
more comprehensive infra for stack traces
rcgoodfellow Jul 1, 2026
b9fded7
repl: fix interleaving
rcgoodfellow Jul 1, 2026
1e24ccc
various lsp fixes, dual purpose bd/ip configuration functions
rcgoodfellow Jul 1, 2026
e706c27
fix various issues found during ip synth
rcgoodfellow Jul 1, 2026
7713286
more log interleaving fixes
rcgoodfellow Jul 2, 2026
1b56915
no escapes needed for parameter continuation
rcgoodfellow Jul 2, 2026
cdfa6d7
lsp: warning level diagnostics starting with unused
rcgoodfellow Jul 2, 2026
0343d0b
...
rcgoodfellow Jul 2, 2026
c37450d
...
rcgoodfellow Jul 2, 2026
7f05ed5
lsp: rename support
rcgoodfellow Jul 2, 2026
8b60d66
compositional ip interface
rcgoodfellow Jul 3, 2026
ca6ad2c
namespaced types
rcgoodfellow Jul 3, 2026
e310e0d
finish compositional ip interface
rcgoodfellow Jul 3, 2026
41bc779
multiline input
rcgoodfellow Jul 3, 2026
92f9280
undefined var checks
rcgoodfellow Jul 3, 2026
2cc0728
reticulating splines
rcgoodfellow Jul 3, 2026
42b5aa9
better list rendering
rcgoodfellow Jul 3, 2026
e39174f
reticulating splines
rcgoodfellow Jul 3, 2026
d504e22
decouple ip config from instantiation
rcgoodfellow Jul 3, 2026
05c1880
lsp: add undefined source module diagnostic
rcgoodfellow Jul 4, 2026
1a4e8b8
various ip generator and lsp fixes
rcgoodfellow Jul 5, 2026
23ddecd
paramter comments
rcgoodfellow Jul 5, 2026
c3b7803
gtm ip generator crimes
rcgoodfellow Jul 5, 2026
f1b9645
reticulating why
rcgoodfellow Jul 6, 2026
3672a07
parameter type checking
rcgoodfellow Jul 6, 2026
d634975
bool type
rcgoodfellow Jul 6, 2026
fb7113e
reticulating splines
rcgoodfellow Jul 7, 2026
badf4c4
return type checking
rcgoodfellow Jul 7, 2026
61565df
generator return type fixes
rcgoodfellow Jul 7, 2026
95cb189
fix pathalogical repl perf issues
rcgoodfellow Jul 8, 2026
4fee56e
reticulating diagnostics
rcgoodfellow Jul 8, 2026
7f046bc
lsp: go to reference, more comprehensive rename
rcgoodfellow Jul 8, 2026
173d944
more comprehensive return type checking
rcgoodfellow Jul 8, 2026
a115f61
vw run output improvements
rcgoodfellow Jul 8, 2026
992c6f6
reticulating dependency graphs
rcgoodfellow Jul 8, 2026
a5fa6bc
uniform set binding output supression
rcgoodfellow Jul 8, 2026
116175c
reticulating splines
rcgoodfellow Jul 9, 2026
d8680af
perf fixes, constructor completion
rcgoodfellow Jul 10, 2026
dc7e71e
more return type checks, lsp local var hover type
rcgoodfellow Jul 10, 2026
04f0a23
diagnostic improvements
rcgoodfellow Jul 11, 2026
73f87c7
fix run checks, lsp check debounce
rcgoodfellow Jul 11, 2026
f719b57
use booleans in vivado_cmd codegen
rcgoodfellow Jul 11, 2026
46cb704
generator fixes
rcgoodfellow Jul 11, 2026
120dd10
vw builtins, rpc machinery, various fixes
rcgoodfellow Jul 11, 2026
f1c4198
testing part 1
rcgoodfellow Jul 11, 2026
e5def38
test part 1.1
rcgoodfellow Jul 11, 2026
66a21bc
testing infrastructure
rcgoodfellow Jul 11, 2026
df25379
multi-part workspaces
rcgoodfellow Jul 11, 2026
2040fc5
design.htcl entry point convention
rcgoodfellow Jul 12, 2026
df4aa7d
vhdl source rpc functions
rcgoodfellow Jul 12, 2026
f261960
fix input bracket parse overrun
rcgoodfellow Jul 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .cargo/config.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
[net]
git-fetch-with-cli = true
35 changes: 35 additions & 0 deletions .claude/settings.local.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
{
"permissions": {
"allow": [
"Bash(cargo check *)",
"Bash(cargo test *)",
"Bash(cargo build *)",
"Bash(cargo run *)",
"Bash(echo \"exit=$?\")",
"Read(//home/ry/src/tree-sitter-htcl/**)",
"Read(//home/ry/src/tree-sitter-htcl/bindings/**)",
"Bash(tree-sitter generate *)",
"Bash(tree-sitter parse *)",
"Bash(tree-sitter test *)",
"Read(//home/ry/src/redhawk/host/vivado/metro/ip/**)",
"Read(//home/ry/src/amd-htcl/**)",
"Bash(cargo install *)",
"Read(//home/ry/src/htcl/amd/vivado-cmd/**)",
"Read(//home/ry/src/htcl/amd/vivado-cmd/cmd/**)",
"Bash(vw ip *)",
"Read(//tmp/**)",
"Bash(vw check *)",
"Bash(grep -nA20 \"fn diagnostics\\\\|validate\\(\\\\|fn publish_diagnostics\" vw-analyzer/src/htcl_backend.rs)",
"Bash(awk '{sum += $4} END {print \"passed:\", sum}')",
"Bash(vw --help)",
"Bash(awk '{ ok+=$4; failed+=$6 } END { print ok \" passed, \" failed \" failed\" }')",
"Bash(cargo clippy *)",
"Bash(awk *)",
"Bash(/home/ry/src/vw/target/debug/vw run *)",
"Bash(python3 -c ' *)",
"Bash(pdftotext ~/doc-puddle/pg331.pdf -)",
"Bash(pdftotext ~/doc-puddle/pg442.pdf -)",
"Bash(grep *)"
]
}
}
5 changes: 4 additions & 1 deletion .github/buildomat/jobs/build-linux.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@
#:
#: name = "build-linux"
#: variety = "basic"
#: target = "ubuntu-22.04"
#: target = "ubuntu-24.04"
#: rust_toolchain = "stable"
#: output_rules = [
#: "/work/release/*",
#: ]
#: access_repos = [
#: "oxidecomputer/ipe"
#: ]
#:
#: [[publish]]
#: series = "linux"
Expand Down
5 changes: 4 additions & 1 deletion .github/buildomat/jobs/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -2,11 +2,14 @@
#:
#: name = "build"
#: variety = "basic"
#: target = "helios-2.0"
#: target = "helios-3.0"
#: rust_toolchain = "stable"
#: output_rules = [
#: "/work/release/*",
#: ]
#: access_repos = [
#: "oxidecomputer/ipe"
#: ]
#:
#: [[publish]]
#: series = "illumos"
Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1 +1,4 @@
/target
*.jou
*.log
.srcs
21 changes: 21 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -92,3 +92,24 @@ project/
├── vw.toml
└── vhdl_ls.toml
```

## htcl language stack

`vw-htcl` (winnow parser, AST, analysis) is the source of truth for
htcl semantics. It feeds `vw run` (interpreter front-end driving an
EDA backend), `vw analyzer` (LSP), and eventually `vw repl`.

There is a sibling tree-sitter grammar at
`~/src/tree-sitter-htcl` (repo:
https://github.com/oxidecomputer/tree-sitter-htcl) used by editors
for syntax highlighting. **Both must stay in sync.** When changing
the htcl grammar in `vw-htcl/src/parser.rs` or `ast.rs`:

- Update `~/src/tree-sitter-htcl/grammar.js` to match.
- Update or add corpus tests in `~/src/tree-sitter-htcl/test/corpus/`.
- Update `~/src/tree-sitter-htcl/queries/highlights.scm` if new node
types deserve distinct highlighting.
- Run `tree-sitter generate && tree-sitter test` in that repo.

The sync contract (vw-htcl leads, divergences are documented) is
written up in `~/src/tree-sitter-htcl/README.md`.
Loading