diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile
index 1b1556707d..fb64c4d8fc 100644
--- a/.devcontainer/Dockerfile
+++ b/.devcontainer/Dockerfile
@@ -42,4 +42,19 @@ RUN apt-get clean autoclean
RUN apt-get autoremove -y
RUN rm -rf /var/lib/{apt,dpkg,cache,log}/*
+# Create Python virtual environment and install packages
+COPY requirements.txt /tmp/requirements.txt
+RUN /usr/bin/python3 -m venv /opt/venv && \
+ /opt/venv/bin/pip install -r /tmp/requirements.txt && \
+ rm /tmp/requirements.txt
+ENV PATH="/opt/venv/bin:$PATH"
+
+# Install npm packages globally in the container
+COPY package.json package-lock.json /opt/node/
+RUN cd /opt/node && \
+ /usr/bin/npm ci && \
+ rm /opt/node/package.json /opt/node/package-lock.json
+ENV NODE_PATH="/opt/node/node_modules"
+ENV PATH="/opt/node/node_modules/.bin:$PATH"
+
WORKDIR /workspace
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 5a1efad6eb..003d7c83b5 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,6 +1,6 @@
{
"name": "RISC-V UnifiedDB Dev",
- "build": { "dockerfile": "Dockerfile" },
+ "build": { "dockerfile": "Dockerfile", "context": ".." },
"updateContentCommand": "${containerWorkspaceFolder}/.devcontainer/updateContentCommand.sh",
"onCreateCommand": "${containerWorkspaceFolder}/.devcontainer/onCreateCommand.sh",
"remoteEnv": {
diff --git a/.devcontainer/onCreateCommand.sh b/.devcontainer/onCreateCommand.sh
index d4ecba051b..0a7447970f 100755
--- a/.devcontainer/onCreateCommand.sh
+++ b/.devcontainer/onCreateCommand.sh
@@ -1,4 +1,3 @@
#!/bin/bash
-npm i
bundle install
diff --git a/Rakefile b/Rakefile
index 2f31bed1c9..52c6310961 100755
--- a/Rakefile
+++ b/Rakefile
@@ -119,7 +119,7 @@ namespace :test do
# "Run the cross-validation against LLVM"
task :llvm do
begin
- sh "#{$root}/.home/.venv/bin/python3 -m pytest ext/auto-inst/test_parsing.py -v"
+ sh "/opt/venv/bin/python3 -m pytest ext/auto-inst/test_parsing.py -v"
rescue => e
raise unless e.message.include?("status (5)") # don't fail on skipped tests
end
diff --git a/backends/cfg_html_doc/html_gen.rake b/backends/cfg_html_doc/html_gen.rake
index d2ef39ca6f..73aba5c131 100644
--- a/backends/cfg_html_doc/html_gen.rake
+++ b/backends/cfg_html_doc/html_gen.rake
@@ -119,9 +119,9 @@ rule %r{#{$root}/gen/cfg_html_doc/.*/antora/playbook.yaml} => proc { |tname|
snapshot: true
supplemental_files:
- path: css/vendor/tabs.css
- contents: #{$root}/node_modules/@asciidoctor/tabs/dist/css/tabs.css
+ contents: /opt/node/node_modules/@asciidoctor/tabs/dist/css/tabs.css
- path: js/vendor/tabs.js
- contents: #{$root}/node_modules/@asciidoctor/tabs/dist/js/tabs.js
+ contents: /opt/node/node_modules/@asciidoctor/tabs/dist/js/tabs.js
- path: partials/footer-scripts.hbs
contents: |
@@ -234,10 +234,9 @@ rule %r{#{$root}/\.stamps/html-gen-.*\.stamp} => proc { |tname|
playbook_path = $root / "gen" / "cfg_html_doc" / config_name / "antora" / "playbook.yaml"
Rake::Task[playbook_path].invoke
- $logger.info "Running Antora under npm to create #{config_name}"
-
+ $logger.info "Running Antora to create #{config_name}"
sh [
- "npm exec -- antora",
+ "/opt/node/node_modules/.bin/antora",
"--stacktrace",
"generate",
"--cache-dir=#{$root}/.home/.antora",
@@ -247,7 +246,7 @@ rule %r{#{$root}/\.stamps/html-gen-.*\.stamp} => proc { |tname|
playbook_path
].join(" ")
- $logger.info "Done running Antora under npm to create #{config_name}"
+ $logger.info "Done running Antora to create #{config_name}"
FileUtils.touch t.name
end
diff --git a/backends/ext_pdf_doc/tasks.rake b/backends/ext_pdf_doc/tasks.rake
index 24c8edab95..a631f0ea51 100644
--- a/backends/ext_pdf_doc/tasks.rake
+++ b/backends/ext_pdf_doc/tasks.rake
@@ -34,7 +34,7 @@ rule %r{#{$resolver.gen_path}/ext_pdf_doc/.*/pdf/.*_extension\.pdf} => proc { |t
"-a pdf-theme=#{ENV['THEME']}",
"-a pdf-fontsdir=#{$root}/ext/docs-resources/fonts",
"-a imagesdir=#{$root}/ext/docs-resources/images",
- "-a wavedrom=#{$root}/node_modules/.bin/wavedrom-cli",
+ "-a wavedrom=/opt/node/node_modules/.bin/wavedrom-cli",
"-r asciidoctor-diagram",
"-r idl_highlighter",
"-o #{t.name}",
@@ -63,7 +63,7 @@ rule %r{#{$resolver.gen_path}/ext_pdf_doc/.*/html/.*_extension\.html} => proc {
"-v",
"-a toc",
"-r asciidoctor-diagram",
- "-a wavedrom=#{$root}/node_modules/.bin/wavedrom-cli",
+ "-a wavedrom=/opt/node/node_modules/.bin/wavedrom-cli",
"-o #{t.name}",
adoc_file
].join(" ")
diff --git a/backends/generators/tasks.rake b/backends/generators/tasks.rake
index 2049f8e4e9..fada200781 100644
--- a/backends/generators/tasks.rake
+++ b/backends/generators/tasks.rake
@@ -28,9 +28,9 @@ namespace :gen do
inst_dir = cfg_arch.path / "inst"
csr_dir = cfg_arch.path / "csr"
- # Run the Go generator script using the same Python environment
+ # Run the Go generator script
# Note: The script uses --output not --output-dir
- sh "#{$root}/.home/.venv/bin/python3 #{$root}/backends/generators/Go/go_generator.py --inst-dir=#{inst_dir} --csr-dir=#{csr_dir} --output=#{output_dir}inst.go"
+ sh "/opt/venv/bin/python3 #{$root}/backends/generators/Go/go_generator.py --inst-dir=#{inst_dir} --csr-dir=#{csr_dir} --output=#{output_dir}inst.go"
end
desc <<~DESC
@@ -79,9 +79,9 @@ namespace :gen do
resolved_codes_file.flush
begin
- # Run the C header generator script using the same Python environment
+ # Run the C header generator script
# The script generates encoding.h for inclusion in C programs
- sh "#{$root}/.home/.venv/bin/python3 #{$root}/backends/generators/c_header/generate_encoding.py --inst-dir=#{inst_dir} --csr-dir=#{csr_dir} --ext-dir=#{ext_dir} --resolved-codes=#{resolved_codes_file.path} --output=#{output_dir}encoding.out.h --include-all"
+ sh "/opt/venv/bin/python3 #{$root}/backends/generators/c_header/generate_encoding.py --inst-dir=#{inst_dir} --csr-dir=#{csr_dir} --ext-dir=#{ext_dir} --resolved-codes=#{resolved_codes_file.path} --output=#{output_dir}encoding.out.h --include-all"
ensure
resolved_codes_file.close
resolved_codes_file.unlink
diff --git a/backends/instructions_appendix/all_instructions.golden.adoc b/backends/instructions_appendix/all_instructions.golden.adoc
index cddee7d88c..3477142770 100644
--- a/backends/instructions_appendix/all_instructions.golden.adoc
+++ b/backends/instructions_appendix/all_instructions.golden.adoc
@@ -1,6 +1,6 @@
= Instruction Appendix
:doctype: book
-:wavedrom: /workspaces/riscv-unified-db/node_modules/.bin/wavedrom-cli
+:wavedrom: /opt/node/node_modules/.bin/wavedrom-cli
// Now the document header is complete and the wavedrom attribute is active.
diff --git a/backends/instructions_appendix/templates/instructions.adoc.erb b/backends/instructions_appendix/templates/instructions.adoc.erb
index c5e031c98a..d1e7c79142 100755
--- a/backends/instructions_appendix/templates/instructions.adoc.erb
+++ b/backends/instructions_appendix/templates/instructions.adoc.erb
@@ -1,6 +1,6 @@
= Instruction Appendix
:doctype: book
-:wavedrom: <%= $root %>/node_modules/.bin/wavedrom-cli
+:wavedrom: /opt/node/node_modules/.bin/wavedrom-cli
// Now the document header is complete and the wavedrom attribute is active.
<% instructions.sort_by(&:name).each do |inst| %>
diff --git a/backends/manual/tasks.rake b/backends/manual/tasks.rake
index 82c5dde0ce..9d062bcc93 100644
--- a/backends/manual/tasks.rake
+++ b/backends/manual/tasks.rake
@@ -434,10 +434,10 @@ namespace :gen do
playbook_path = MANUAL_GEN_DIR / ENV["MANUAL_NAME"] / "top" / output_hash / "antora" / "playbook" / "playbook.yml"
Rake::Task[playbook_path].invoke
- $logger.info "Running Antora under npm for HTML site to create '#{MANUAL_GEN_DIR / ENV['MANUAL_NAME'] / output_hash / 'html'}'"
+ $logger.info "Running Antora for HTML site to create '#{MANUAL_GEN_DIR / ENV['MANUAL_NAME'] / output_hash / 'html'}'"
sh [
- "npm exec -- antora",
+ "/opt/node/node_modules/.bin/antora",
"--stacktrace",
"generate",
"--cache-dir=#{$root}/.home/.antora",
@@ -447,7 +447,7 @@ namespace :gen do
playbook_path.to_s
].join(" ")
- $logger.info "Done running Antora under npm for HTML site to create '#{MANUAL_GEN_DIR / ENV['MANUAL_NAME'] / output_hash / 'html'}'"
+ $logger.info "Done running Antora for HTML site to create '#{MANUAL_GEN_DIR / ENV['MANUAL_NAME'] / output_hash / 'html'}'"
end
end
diff --git a/backends/manual/templates/playbook.yml.erb b/backends/manual/templates/playbook.yml.erb
index 69ef66ab93..8015e86c0c 100644
--- a/backends/manual/templates/playbook.yml.erb
+++ b/backends/manual/templates/playbook.yml.erb
@@ -28,9 +28,9 @@ ui:
snapshot: true
supplemental_files:
- path: css/vendor/tabs.css
- contents: <%= $root %>/node_modules/@asciidoctor/tabs/dist/css/tabs.css
+ contents: /opt/node/node_modules/@asciidoctor/tabs/dist/css/tabs.css
- path: js/vendor/tabs.js
- contents: <%= $root %>/node_modules/@asciidoctor/tabs/dist/js/tabs.js
+ contents: /opt/node/node_modules/@asciidoctor/tabs/dist/js/tabs.js
- path: partials/footer-scripts.hbs
contents: |
diff --git a/backends/portfolio/tasks.rake b/backends/portfolio/tasks.rake
index cc226f2446..80b6818dda 100644
--- a/backends/portfolio/tasks.rake
+++ b/backends/portfolio/tasks.rake
@@ -99,7 +99,7 @@ def pf_adoc2pdf(adoc_file, target_pname)
"-a pdf-theme=#{$root}/ext/docs-resources/themes/riscv-pdf.yml",
"-a pdf-fontsdir=#{$root}/ext/docs-resources/fonts",
"-a imagesdir=#{$root}/ext/docs-resources/images",
- "-a bytefield-svg=#{$root}/node_modules/.bin/bytefield-svg",
+ "-a bytefield-svg=/opt/node/node_modules/.bin/bytefield-svg",
"-r asciidoctor-diagram",
"-r idl_highlighter",
"-o #{target_pname}",
@@ -135,7 +135,7 @@ def pf_adoc2html(adoc_file, target_pname)
"-v",
"-a toc",
"-a imagesdir=#{$root}/ext/docs-resources/images",
- "-a bytefield-svg=#{$root}/node_modules/.bin/bytefield-svg",
+ "-a bytefield-svg=/opt/node/node_modules/.bin/bytefield-svg",
"-r asciidoctor-diagram",
"-r idl_highlighter",
"-o #{target_pname}",
diff --git a/backends/portfolio/templates/beginning.adoc.erb b/backends/portfolio/templates/beginning.adoc.erb
index 800ce1a35e..d300f340ee 100644
--- a/backends/portfolio/templates/beginning.adoc.erb
+++ b/backends/portfolio/templates/beginning.adoc.erb
@@ -13,7 +13,7 @@
// Settings
:experimental:
:reproducible:
-:wavedrom: <%= $root %>/node_modules/.bin/wavedrom-cli
+:wavedrom: /opt/node/node_modules/.bin/wavedrom-cli
// TODO: needs to be changed
:imagesoutdir: images
:icons: font
diff --git a/backends/prm_pdf/templates/prm_main.adoc.erb b/backends/prm_pdf/templates/prm_main.adoc.erb
index 718c80d057..03b9ad448a 100644
--- a/backends/prm_pdf/templates/prm_main.adoc.erb
+++ b/backends/prm_pdf/templates/prm_main.adoc.erb
@@ -13,11 +13,11 @@
:pdf-themesdir: <%= @prm_pdf_dir / 'pdf-theme' %>
:pdf-theme: custom
:title-logo-image: image:<%= @prm_pdf_dir / 'pdf-theme' / 'logo.svg' %>[top=10%,align=left,pdfwidth=4in]
-<%- wavedrom_path = @root_path / "node_modules/.bin/wavedrom-cli" -%>
+<%- wavedrom_path = Pathname.new("/opt/node") / "node_modules/.bin/wavedrom-cli" -%>
<%- if File.exist?(wavedrom_path) -%>
:wavedrom: <%= wavedrom_path %>
<%- end -%>
-<%- bytefield_path = @root_path / "node_modules/.bin/bytefield-svg" -%>
+<%- bytefield_path = Pathname.new("/opt/node") / "node_modules/.bin/bytefield-svg" -%>
<%- if File.exist?(bytefield_path) -%>
:bytefield-svg: <%= bytefield_path %>
<%- end -%>
diff --git a/bin/.container-tag b/bin/.container-tag
index b63ba696b7..68c123cf10 100644
--- a/bin/.container-tag
+++ b/bin/.container-tag
@@ -1 +1 @@
-0.9
+0.10
diff --git a/bin/clobber b/bin/clobber
index 95d31b8b1d..4b5edaf313 100755
--- a/bin/clobber
+++ b/bin/clobber
@@ -8,5 +8,4 @@ rm -rf \
${ROOT}/.bundle \
${ROOT}/.singularity \
${ROOT}/gen \
- ${ROOT}/node_modules \
${ROOT}/sorbet
diff --git a/bin/pip b/bin/pip
index b58e74ff12..cc6690717d 100755
--- a/bin/pip
+++ b/bin/pip
@@ -3,8 +3,4 @@
ROOT=$(dirname $(realpath ${BASH_SOURCE[0]}))
source $ROOT/setup
-if [ ! -v VIRTUAL_ENV ]; then
- source ${ROOT}/.home/.venv/bin/activate
-fi
-
$PIP "$@"
diff --git a/bin/setup b/bin/setup
index 67c793bebf..da59ae885a 100755
--- a/bin/setup
+++ b/bin/setup
@@ -197,16 +197,6 @@ if [ ! -f $ROOT/ext/rbi-central/README.md ]; then
git submodule update --init ext/rbi-central
fi
-if [ ! -d $ROOT/.home/.venv ]; then
- ${RUN} /usr/bin/python3 -m venv ${ROOT}/.home/.venv
-fi
-
-source ${ROOT}/.home/.venv/bin/activate
-
-if [ ! -f ${ROOT}/.home/.venv/bin/pre-commit ]; then
- ${RUN} ${ROOT}/.home/.venv/bin/pip install -r requirements.txt
-fi
-
# if [ ! -f $ROOT/ext/riscv-opcodes/README.md ]; then
# git submodule update --init ext/riscv-opcodes
# fi
@@ -219,10 +209,6 @@ if [[ ! -z "$DEVELOPMENT" && $DEVELOPMENT -eq 1 ]]; then
fi
fi
-if [ ! -d ${ROOT}/node_modules ]; then
- ${RUN} npm i
-fi
-
if [ "${CONTAINER_TYPE}" == "devcontainer" ]; then
BUNDLE="bundle"
RUBY="bundle exec ruby"
@@ -230,8 +216,8 @@ if [ "${CONTAINER_TYPE}" == "devcontainer" ]; then
NPM="npm"
NPX="npx"
NODE="node"
- PYTHON="${ROOT}/.home/.venv/bin/python3"
- PIP="${ROOT}/.home/.venv/bin/pip"
+ PYTHON="/opt/venv/bin/python3"
+ PIP="/opt/venv/bin/pip"
BASH="bash"
GPP="g++"
GDB="gdb"
@@ -245,8 +231,8 @@ elif [ "${CONTAINER_TYPE}" == "docker" -o "${CONTAINER_TYPE}" == "podman" ]; the
NPM="${CONTAINER_BASE} npm"
NPX="${CONTAINER_BASE} npx"
NODE="${CONTAINER_BASE} node"
- PYTHON="${CONTAINER_BASE} ${ROOT}/.home/.venv/bin/python3"
- PIP="${CONTAINER_BASE} ${ROOT}/.home/.venv/bin/pip"
+ PYTHON="${CONTAINER_BASE} /opt/venv/bin/python3"
+ PIP="${CONTAINER_BASE} /opt/venv/bin/pip"
BASH="${CONTAINER_BASE} bash"
GPP="${CONTAINER_BASE} g++"
GDB="${CONTAINER_BASE} gdb"
@@ -260,8 +246,8 @@ elif [ "${CONTAINER_TYPE}" == "singularity" ]; then
NPM="singularity run ${HOME_OPT} ${CONTAINER_PATH} npm"
NPX="singularity run ${HOME_OPT} ${CONTAINER_PATH} npx"
NODE="singularity run ${HOME_OPT} ${CONTAINER_PATH} node"
- PYTHON="singularity run ${HOME_OPT} ${CONTAINER_PATH} ${ROOT}/.home/.venv/bin/python3"
- PIP="singularity run ${HOME_OPT} ${CONTAINER_PATH} ${ROOT}/.home/.venv/bin/pip"
+ PYTHON="singularity run ${HOME_OPT} ${CONTAINER_PATH} /opt/venv/bin/python3"
+ PIP="singularity run ${HOME_OPT} ${CONTAINER_PATH} /opt/venv/bin/pip"
BASH="singularity run ${HOME_OPT} ${CONTAINER_PATH} bash"
GPP="singularity run ${HOME_OPT} ${CONTAINER_PATH} g++"
GDB="singularity run ${HOME_OPT} ${CONTAINER_PATH} gdb"
diff --git a/container.def b/container.def
index fbfb55c343..8091370c5d 100644
--- a/container.def
+++ b/container.def
@@ -1,10 +1,10 @@
Bootstrap: docker
From: ubuntu:24.04
-# %files
-
-# Gemfile $HOME/
-# package.json $HOME/
+%files
+ requirements.txt /opt/requirements.txt
+ package.json /opt/node/package.json
+ package-lock.json /opt/node/package-lock.json
%post
export DEBIAN_FRONTEND=noninteractive
@@ -46,8 +46,19 @@ From: ubuntu:24.04
apt-get autoremove -y
rm -rf /var/lib/{apt, dpkg, cache, log}
+ # Create Python virtual environment and install packages
+ /usr/bin/python3 -m venv /opt/venv
+ /opt/venv/bin/pip install -r /opt/requirements.txt
+ rm /opt/requirements.txt
+
+ # Install npm packages globally in the container
+ cd /opt/node
+ /usr/bin/npm ci
+ rm /opt/node/package.json /opt/node/package-lock.json
+
# cd $HOME
# bundle install
- # npm i wavedrom-cli
- # npm i i -E @antora/cli@3.1 @antora/site-generator@3.1 @antora/lunr-extension asciidoctor-kroki
+%environment
+ export PATH="/opt/venv/bin:/opt/node/node_modules/.bin:$PATH"
+ export NODE_PATH="/opt/node/node_modules"
diff --git a/package-lock.json b/package-lock.json
index 95fbf0dca3..e6d4c59923 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -14,6 +14,7 @@
"@commitlint/config-conventional": "19.8.0",
"asciidoctor-kroki": "0.17.0",
"asciidoctor-mathjax": "^0.0.5",
+ "bytefield-svg": "^1.8.0",
"prettier": "3.4.2",
"wavedrom-cli": "^3.1.1"
}
@@ -1310,6 +1311,14 @@
"resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz",
"integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q=="
},
+ "node_modules/array-back": {
+ "version": "3.1.0",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-3.1.0.tgz",
+ "integrity": "sha512-TkuxA4UCOvxuDK6NZYXCalszEzj+TLszyASooky+i742l9TqsOdYCMJJupxRic61hwquNtppB3hgcuq9SVSH1Q==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/array-ify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/array-ify/-/array-ify-1.0.0.tgz",
@@ -1732,6 +1741,87 @@
"resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.20.tgz",
"integrity": "sha512-IfEDxwoWIjkeXL1eXcDiow4UbKjhLdq6/EuSVR9GMN7KVH3r9gQ83e73hsz1Nd1T3ijd5xv1wcWRYO+D6kCI2w=="
},
+ "node_modules/command-line-args": {
+ "version": "5.2.1",
+ "resolved": "https://registry.npmjs.org/command-line-args/-/command-line-args-5.2.1.tgz",
+ "integrity": "sha512-H4UfQhZyakIjC74I9d34fGYDwk3XpSr17QhEd0Q3I9Xq1CETHo4Hcuo87WyWHpAF1aSLjLRf5lD9ZGX2qStUvg==",
+ "dependencies": {
+ "array-back": "^3.1.0",
+ "find-replace": "^3.0.0",
+ "lodash.camelcase": "^4.3.0",
+ "typical": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
+ "node_modules/command-line-usage": {
+ "version": "6.1.3",
+ "resolved": "https://registry.npmjs.org/command-line-usage/-/command-line-usage-6.1.3.tgz",
+ "integrity": "sha512-sH5ZSPr+7UStsloltmDh7Ce5fb8XPlHyoPzTpyyMuYCtervL65+ubVZ6Q61cFtFl62UyJlc8/JwERRbAFPUqgw==",
+ "dependencies": {
+ "array-back": "^4.0.2",
+ "chalk": "^2.4.2",
+ "table-layout": "^1.0.2",
+ "typical": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/command-line-usage/node_modules/ansi-styles": {
+ "version": "3.2.1",
+ "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
+ "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
+ "dependencies": {
+ "color-convert": "^1.9.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/command-line-usage/node_modules/array-back": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
+ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/command-line-usage/node_modules/chalk": {
+ "version": "2.4.2",
+ "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
+ "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
+ "dependencies": {
+ "ansi-styles": "^3.2.1",
+ "escape-string-regexp": "^1.0.5",
+ "supports-color": "^5.3.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
+ "node_modules/command-line-usage/node_modules/color-convert": {
+ "version": "1.9.3",
+ "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
+ "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
+ "dependencies": {
+ "color-name": "1.1.3"
+ }
+ },
+ "node_modules/command-line-usage/node_modules/color-name": {
+ "version": "1.1.3",
+ "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
+ "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw=="
+ },
+ "node_modules/command-line-usage/node_modules/typical": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/commander": {
"version": "10.0.1",
"resolved": "https://registry.npmjs.org/commander/-/commander-10.0.1.tgz",
@@ -1926,6 +2016,14 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
+ "node_modules/deep-extend": {
+ "version": "0.6.0",
+ "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
+ "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==",
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/define-data-property": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.4.tgz",
@@ -2126,6 +2224,14 @@
"node": ">=6"
}
},
+ "node_modules/escape-string-regexp": {
+ "version": "1.0.5",
+ "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
+ "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==",
+ "engines": {
+ "node": ">=0.8.0"
+ }
+ },
"node_modules/esm": {
"version": "3.2.25",
"resolved": "https://registry.npmjs.org/esm/-/esm-3.2.25.tgz",
@@ -2241,6 +2347,17 @@
"node": ">=8"
}
},
+ "node_modules/find-replace": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/find-replace/-/find-replace-3.0.0.tgz",
+ "integrity": "sha512-6Tb2myMioCAgv5kfvP5/PkZZ/ntTpVK39fHY7WkWBgvbeE+VHd/tZuZ4mrC+bxh4cfOZeYKVPaJIZtZXV7GNCQ==",
+ "dependencies": {
+ "array-back": "^3.0.1"
+ },
+ "engines": {
+ "node": ">=4.0.0"
+ }
+ },
"node_modules/find-up": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/find-up/-/find-up-7.0.0.tgz",
@@ -2545,6 +2662,14 @@
"uglify-js": "^3.1.4"
}
},
+ "node_modules/has-flag": {
+ "version": "3.0.0",
+ "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
+ "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==",
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/has-property-descriptors": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.2.tgz",
@@ -3935,6 +4060,14 @@
"node": ">= 12.13.0"
}
},
+ "node_modules/reduce-flatten": {
+ "version": "2.0.0",
+ "resolved": "https://registry.npmjs.org/reduce-flatten/-/reduce-flatten-2.0.0.tgz",
+ "integrity": "sha512-EJ4UNY/U1t2P/2k6oqotuX2Cc3T6nxJwsM0N0asT7dhrtH1ltUxDn4NalSYmPE2rCkVpcf/X6R0wDwcFpzhd4w==",
+ "engines": {
+ "node": ">=6"
+ }
+ },
"node_modules/regenerator-runtime": {
"version": "0.13.11",
"resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz",
@@ -4251,6 +4384,17 @@
"url": "https://github.com/sponsors/Borewit"
}
},
+ "node_modules/supports-color": {
+ "version": "5.5.0",
+ "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
+ "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
+ "dependencies": {
+ "has-flag": "^3.0.0"
+ },
+ "engines": {
+ "node": ">=4"
+ }
+ },
"node_modules/svg2img": {
"version": "1.0.0-beta.2",
"resolved": "https://registry.npmjs.org/svg2img/-/svg2img-1.0.0-beta.2.tgz",
@@ -4265,6 +4409,36 @@
"node": ">= 10"
}
},
+ "node_modules/table-layout": {
+ "version": "1.0.2",
+ "resolved": "https://registry.npmjs.org/table-layout/-/table-layout-1.0.2.tgz",
+ "integrity": "sha512-qd/R7n5rQTRFi+Zf2sk5XVVd9UQl6ZkduPFC3S7WEGJAmetDTjY3qPN50eSKzwuzEyQKy5TN2TiZdkIjos2L6A==",
+ "dependencies": {
+ "array-back": "^4.0.1",
+ "deep-extend": "~0.6.0",
+ "typical": "^5.2.0",
+ "wordwrapjs": "^4.0.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/table-layout/node_modules/array-back": {
+ "version": "4.0.2",
+ "resolved": "https://registry.npmjs.org/array-back/-/array-back-4.0.2.tgz",
+ "integrity": "sha512-NbdMezxqf94cnNfWLL7V/im0Ub+Anbb0IoZhvzie8+4HJ4nMQuzHuy49FkGYCJK2yAloZ3meiB6AVMClbrI1vg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
+ "node_modules/table-layout/node_modules/typical": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/text-extensions": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.4.0.tgz",
@@ -4422,6 +4596,14 @@
"node": ">=14.17"
}
},
+ "node_modules/typical": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-4.0.0.tgz",
+ "integrity": "sha512-VAH4IvQ7BDFYglMd7BPRDfLgxZZX4O4TFcRDA6EN5X7erNJJq+McIEp8np9aVtxrCJ6qx4GTYVfOWNjcqwZgRw==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/uglify-js": {
"version": "3.19.3",
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.19.3.tgz",
@@ -4701,6 +4883,26 @@
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
"integrity": "sha512-gvVzJFlPycKc5dZN4yPkP8w7Dc37BtP1yczEneOb4uq34pXZcvrtRTmWV8W+Ume+XCxKgbjM+nevkyFPMybd4Q=="
},
+ "node_modules/wordwrapjs": {
+ "version": "4.0.1",
+ "resolved": "https://registry.npmjs.org/wordwrapjs/-/wordwrapjs-4.0.1.tgz",
+ "integrity": "sha512-kKlNACbvHrkpIw6oPeYDSmdCTu2hdMHoyXLTcUKala++lx5Y+wjJ/e474Jqv5abnVmwxw08DiTuHmw69lJGksA==",
+ "dependencies": {
+ "reduce-flatten": "^2.0.0",
+ "typical": "^5.2.0"
+ },
+ "engines": {
+ "node": ">=8.0.0"
+ }
+ },
+ "node_modules/wordwrapjs/node_modules/typical": {
+ "version": "5.2.0",
+ "resolved": "https://registry.npmjs.org/typical/-/typical-5.2.0.tgz",
+ "integrity": "sha512-dvdQgNDNJo+8B2uBQoqdb11eUCE1JQXhvjC/CZtgvZseVd5TYMXnq0+vuUemXbd/Se29cTaUuPX3YIc2xgbvIg==",
+ "engines": {
+ "node": ">=8"
+ }
+ },
"node_modules/wrap-ansi": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz",
diff --git a/tools/ruby-gems/udb/lib/udb/resolver.rb b/tools/ruby-gems/udb/lib/udb/resolver.rb
index 39e6409578..ea6596d2d6 100644
--- a/tools/ruby-gems/udb/lib/udb/resolver.rb
+++ b/tools/ruby-gems/udb/lib/udb/resolver.rb
@@ -148,7 +148,7 @@ def initialize(
@gen_path = gen_path_override || (@repo_root / "gen")
@std_path = std_path_override || (@repo_root / "spec" / "std" / "isa")
@custom_path = custom_path_override || (@repo_root / "spec" / "custom" / "isa")
- @python_path = python_path_override || (@repo_root / ".home" / ".venv" / "bin" / "python3")
+ @python_path = python_path_override || Pathname.new("/opt") / "venv" / "bin" / "python3"
# cache of config names
@cfg_info = T.let({}, T::Hash[T.any(String, Pathname), ConfigInfo])
diff --git a/tools/ruby-gems/udb/test/test_yaml_loader.rb b/tools/ruby-gems/udb/test/test_yaml_loader.rb
index cbba0ff0b9..94c6f4239d 100644
--- a/tools/ruby-gems/udb/test/test_yaml_loader.rb
+++ b/tools/ruby-gems/udb/test/test_yaml_loader.rb
@@ -26,7 +26,7 @@ def resolve_yaml(yaml)
stdout, stderr, status =
Dir.chdir(Udb.repo_root) do
- Open3.capture3("/bin/bash -c \"source #{Udb.repo_root}/.home/.venv/bin/activate && #{Udb.repo_root}/.home/.venv/bin/python3 #{UDB_GEM_PATH}/python/yaml_resolver.py resolve --no-progress --no-checks #{arch_dir} #{resolved_dir}\"")
+ Open3.capture3("/opt/venv/bin/python3 #{UDB_GEM_PATH}/python/yaml_resolver.py resolve --no-progress --no-checks #{arch_dir} #{resolved_dir}")
end
# puts stdout
# puts stderr
@@ -53,7 +53,7 @@ def resolve_multi_yaml(*yamls)
File.write(test_dir / "test#{i + 1}.yaml", yaml)
end
- system "/bin/bash -c \"source #{Udb.repo_root}/.home/.venv/bin/activate && #{Udb.repo_root}/.home/.venv/bin/python3 #{UDB_GEM_PATH}/python/yaml_resolver.py resolve --no-checks #{arch_dir} #{resolved_dir}\""
+ system "/opt/venv/bin/python3 #{UDB_GEM_PATH}/python/yaml_resolver.py resolve --no-checks #{arch_dir} #{resolved_dir}"
if $CHILD_STATUS == 0
YAML.load_file(resolved_dir / "test" / "test1.yaml")