Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
54 changes: 38 additions & 16 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,44 +9,50 @@
/pkg/
/spec/reports/
/tmp/
**/tmp/
/.tmp/
*.gem
*.rbc
.DS_Store
.rspec_status
.rspec_status*
/spec/fixtures/apple2/
/export/roms/
/export/
/vendor/
/obj_dir/
# Native extension build artifacts
*.so
*.bundle
*.dylib
.arcilator*
.verilator*
/examples/mos6502/utilities/isa_simulator_native/target/
/examples/mos6502/utilities/isa_simulator_native/lib/

# Native extension build artifacts (netlist/sim)
lib/rhdl/codegen/netlist/sim/netlist_interpreter/target/
lib/rhdl/codegen/netlist/sim/netlist_interpreter/lib/
lib/rhdl/codegen/netlist/sim/netlist_jit/target/
lib/rhdl/codegen/netlist/sim/netlist_jit/lib/
lib/rhdl/codegen/netlist/sim/netlist_compiler/target/
lib/rhdl/codegen/netlist/sim/netlist_compiler/lib/
# Native extension build artifacts (sim/native/netlist)
lib/rhdl/sim/native/netlist/netlist_interpreter/target/
lib/rhdl/sim/native/netlist/netlist_interpreter/lib/
lib/rhdl/sim/native/netlist/netlist_jit/target/
lib/rhdl/sim/native/netlist/netlist_jit/lib/
lib/rhdl/sim/native/netlist/netlist_compiler/target/
lib/rhdl/sim/native/netlist/netlist_compiler/lib/

# Native extension build artifacts (ir/sim)
lib/rhdl/codegen/ir/sim/ir_interpreter/target/
lib/rhdl/codegen/ir/sim/ir_interpreter/lib/
lib/rhdl/codegen/ir/sim/ir_jit/target/
lib/rhdl/codegen/ir/sim/ir_jit/lib/
lib/rhdl/codegen/ir/sim/ir_compiler/target/
lib/rhdl/codegen/ir/sim/ir_compiler/lib/
lib/rhdl/codegen/ir/sim/ir_compiler/*.json
# Native extension build artifacts (sim/native/ir)
lib/rhdl/sim/native/ir/ir_interpreter/target/
lib/rhdl/sim/native/ir/ir_interpreter/lib/
lib/rhdl/sim/native/ir/ir_jit/target/
lib/rhdl/sim/native/ir/ir_jit/lib/
lib/rhdl/sim/native/ir/ir_compiler/target/
lib/rhdl/sim/native/ir/ir_compiler/lib/
lib/rhdl/sim/native/ir/ir_compiler/*.json

# Verilator build artifacts
.verilator_build/
.verilator_build_*/

# Arcilator build artifacts
.arcilator_build/
.arcilator_build.bak_*/
.arcilator_gpu_build/

# HDL build artifacts (Verilator/Arcilator for example systems)
Expand All @@ -60,6 +66,7 @@ web/node_modules/

# Web bundler output
web/dist/
/web/test-results/

# Web wasm build artifacts
web/assets/pkg/*
Expand Down Expand Up @@ -95,3 +102,18 @@ web/build/verilator/*
/examples/riscv/software/.buildroot.defconfig
/examples/riscv/software/.docker-config*/
/examples/riscv/software/.tmp_*/

# ao486 auto import files
/examples/ao486/hdl/

# Submodule directories
/examples/apple2/reference/
/examples/gameboy/reference/
/examples/riscv/software/xv6/
/examples/riscv/software/linux/
/examples/ao486/reference/

# Import directories
/examples/gameboy/import/
/examples/ao486/import/
/examples/sparc64/import/
11 changes: 11 additions & 0 deletions .gitmodules
Original file line number Diff line number Diff line change
@@ -1,12 +1,23 @@
[submodule "examples/apple2/reference"]
path = examples/apple2/reference
url = https://github.com/zf3/neoapple2
ignore = dirty
[submodule "examples/gameboy/reference"]
path = examples/gameboy/reference
url = https://github.com/MiSTer-devel/Gameboy_MiSTer.git
ignore = dirty
[submodule "examples/riscv/software/xv6"]
path = examples/riscv/software/xv6
url = https://github.com/michaelengel/xv6-rv32.git
ignore = dirty
[submodule "examples/riscv/software/linux"]
path = examples/riscv/software/linux
url = https://github.com/torvalds/linux.git
ignore = dirty
[submodule "examples/ao486/reference"]
path = examples/ao486/reference
url = https://github.com/MiSTer-devel/ao486_MiSTer
ignore = dirty
[submodule "examples/sparc64/reference"]
path = examples/sparc64/reference
url = git@github.com:freecores/sparc64soc.git
10 changes: 10 additions & 0 deletions .rubocop.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
AllCops:
NewCops: enable
TargetRubyVersion: 4.0
Exclude:
- 'bin/**/*'
- 'examples/*/reference/**/*'
- 'examples/riscv/software/**/*'
- 'obj_dir/**/*'
- 'pkg/**/*'
- 'tmp/**/*'
Empty file removed .tmp/riscv_ext_probe.err
Empty file.
19 changes: 0 additions & 19 deletions .tmp/riscv_ext_probe.s

This file was deleted.

29 changes: 18 additions & 11 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -124,22 +124,29 @@ Use `bundle exec rake -T` to inspect full task list.

Common tasks:
- `bundle exec rake spec`
- `bundle exec rake spec:lib`
- `bundle exec rake spec:hdl`
- `bundle exec rake spec:mos6502`
- `bundle exec rake spec:apple2`
- `bundle exec rake spec:riscv`
- `bundle exec rake spec[lib]`
- `bundle exec rake spec[hdl]`
- `bundle exec rake spec[ao486]`
- `bundle exec rake spec[gameboy]`
- `bundle exec rake spec[mos6502]`
- `bundle exec rake spec[apple2]`
- `bundle exec rake spec[riscv]`
- `bundle exec rake spec[sparc64]`

Parallel:
- `bundle exec rake pspec`
- `bundle exec rake pspec:lib`
- `bundle exec rake pspec:hdl`
- `bundle exec rake pspec:mos6502`
- `bundle exec rake pspec:apple2`
- `bundle exec rake pspec:riscv`
- `bundle exec rake pspec[lib]`
- `bundle exec rake pspec[hdl]`
- `bundle exec rake pspec[ao486]`
- `bundle exec rake pspec[gameboy]`
- `bundle exec rake pspec[mos6502]`
- `bundle exec rake pspec[apple2]`
- `bundle exec rake pspec[riscv]`
- `bundle exec rake pspec[sparc64]`

Spec benchmarks:
- `bundle exec rake spec:bench[all,20]`
- `bundle exec rake spec:bench[gameboy,20]`
- `bundle exec rake spec:bench[riscv,20]`

Simulation benchmarks:
Expand Down Expand Up @@ -221,7 +228,7 @@ Examples:
- CLI task changes:
- `bundle exec rspec spec/rhdl/cli/tasks/<task>_spec.rb`
- broader confidence:
- `bundle exec rake spec:riscv`
- `bundle exec rake spec[riscv]`
- `bundle exec rake spec`

If a native backend is unavailable (for example IR compiler extension), tests should fail clearly or be conditionally skipped with explicit reason.
Expand Down
46 changes: 46 additions & 0 deletions Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -4,13 +4,18 @@ PATH
rhdl (1.0.0)
base64
fiddle
syntax_tree

GEM
remote: https://rubygems.org/
specs:
addressable (2.8.9)
public_suffix (>= 2.0.2, < 8.0)
ast (2.4.3)
base64 (0.3.0)
benchmark (0.5.0)
benchmark-ips (2.14.0)
bigdecimal (4.0.1)
coderay (1.1.3)
date (3.5.1)
diff-lcs (1.6.2)
Expand All @@ -21,25 +26,42 @@ GEM
pp (>= 0.6.0)
rdoc (>= 4.0.0)
reline (>= 0.4.2)
json (2.18.1)
json-schema (6.1.0)
addressable (~> 2.8)
bigdecimal (>= 3.1, < 5)
language_server-protocol (3.17.0.5)
lint_roller (1.1.0)
mcp (0.8.0)
json-schema (>= 4.1)
method_source (1.1.0)
parallel (1.27.0)
parallel_tests (4.10.1)
parallel
parser (3.3.10.2)
ast (~> 2.4.1)
racc
pp (0.6.3)
prettyprint
prettier_print (1.2.1)
prettyprint (0.2.0)
prism (1.9.0)
pry (0.16.0)
coderay (~> 1.1)
method_source (~> 1.0)
reline (>= 0.6.0)
psych (5.3.1)
date
stringio
public_suffix (7.0.5)
racc (1.8.1)
rainbow (3.1.1)
rake (13.3.1)
rdoc (7.1.0)
erb
psych (>= 4.0.0)
tsort
regexp_parser (2.11.3)
reline (0.6.3)
io-console (~> 0.5)
rspec (3.13.2)
Expand All @@ -55,8 +77,30 @@ GEM
diff-lcs (>= 1.2.0, < 2.0)
rspec-support (~> 3.13.0)
rspec-support (3.13.6)
rubocop (1.85.0)
json (~> 2.3)
language_server-protocol (~> 3.17.0.2)
lint_roller (~> 1.1.0)
mcp (~> 0.6)
parallel (~> 1.10)
parser (>= 3.3.0.2)
rainbow (>= 2.2.2, < 4.0)
regexp_parser (>= 2.9.3, < 3.0)
rubocop-ast (>= 1.49.0, < 2.0)
ruby-progressbar (~> 1.7)
unicode-display_width (>= 2.4.0, < 4.0)
rubocop-ast (1.49.0)
parser (>= 3.3.7.2)
prism (~> 1.7)
ruby-progressbar (1.13.0)
stackprof (0.2.28)
stringio (3.2.0)
syntax_tree (6.3.0)
prettier_print (>= 1.2.0)
tsort (0.2.0)
unicode-display_width (3.2.0)
unicode-emoji (~> 4.1)
unicode-emoji (4.2.0)
webrick (1.9.2)

PLATFORMS
Expand All @@ -72,6 +116,8 @@ DEPENDENCIES
rake (~> 13.0)
rhdl!
rspec (~> 3.12)
rubocop
stackprof
webrick

BUNDLED WITH
Expand Down
Loading
Loading