diff --git a/.forgejo/workflows/deploy.yml b/.forgejo/workflows/deploy.yml index c61df54..fd3cdae 100644 --- a/.forgejo/workflows/deploy.yml +++ b/.forgejo/workflows/deploy.yml @@ -13,15 +13,17 @@ jobs: - uses: https://code.forgejo.org/actions/checkout@v3 with: fetch-depth: 0 - - name: Install dependencies + - name: Install latest mdbook run: | apt-get update -qq - apt-get install -qq dia python3 - scripts/install_deps.sh - echo "`pwd`"/bin >> $GITHUB_PATH + apt-get install -qq jq + tag="$(curl 'https://api.github.com/repos/rust-lang/mdbook/releases/latest' | jq -r '.tag_name')" + url="https://github.com/rust-lang/mdbook/releases/download/${tag}/mdbook-${tag}-x86_64-unknown-linux-gnu.tar.gz" + mkdir mdbook + curl -sSL "$url" | tar -xz --directory=./mdbook + echo "`pwd`"/mdbook >> $GITHUB_PATH - name: Build Book run: | - mdbook-mermaid install . mdbook build - name: Push to rendered branch run: | diff --git a/.gitignore b/.gitignore index 7e2fa27..7585238 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1 @@ book -/*.tar.gz -/mermaid.min.js -*.dia.svg \ No newline at end of file diff --git a/book.toml b/book.toml index 41e58f8..edcb5f0 100644 --- a/book.toml +++ b/book.toml @@ -11,12 +11,6 @@ edition = "2021" [preprocessor.links] -[preprocessor.mermaid] -command = "mdbook-mermaid" - -[preprocessor.dia] -command = "scripts/mdbook-dia.py" - [output.html] mathjax-support = true no-section-label = true @@ -25,11 +19,6 @@ git-repository-icon = "fa-git" # edit-url-template = "https://git.libre-chip.org/libre-chip/website/FIXME/{path}" input-404 = "404.md" additional-css = ["src/custom.css"] -additional-js = ["mermaid.min.js", "mermaid-init.js"] [output.html.print] -enable = false - -[output.html.fold] -enable = true -level = 1 \ No newline at end of file +enable = false \ No newline at end of file diff --git a/mermaid-init.js b/mermaid-init.js deleted file mode 100644 index 15a7f4e..0000000 --- a/mermaid-init.js +++ /dev/null @@ -1,35 +0,0 @@ -(() => { - const darkThemes = ['ayu', 'navy', 'coal']; - const lightThemes = ['light', 'rust']; - - const classList = document.getElementsByTagName('html')[0].classList; - - let lastThemeWasLight = true; - for (const cssClass of classList) { - if (darkThemes.includes(cssClass)) { - lastThemeWasLight = false; - break; - } - } - - const theme = lastThemeWasLight ? 'default' : 'dark'; - mermaid.initialize({ startOnLoad: true, theme }); - - // Simplest way to make mermaid re-render the diagrams in the new theme is via refreshing the page - - for (const darkTheme of darkThemes) { - document.getElementById(darkTheme).addEventListener('click', () => { - if (lastThemeWasLight) { - window.location.reload(); - } - }); - } - - for (const lightTheme of lightThemes) { - document.getElementById(lightTheme).addEventListener('click', () => { - if (!lastThemeWasLight) { - window.location.reload(); - } - }); - } -})(); diff --git a/scripts/install_deps.sh b/scripts/install_deps.sh deleted file mode 100755 index 24d07ed..0000000 --- a/scripts/install_deps.sh +++ /dev/null @@ -1,12 +0,0 @@ -#!/bin/bash -set -e -curl -sSL -o mdbook.tar.gz https://github.com/rust-lang/mdBook/releases/download/v0.4.40/mdbook-v0.4.40-x86_64-unknown-linux-gnu.tar.gz -curl -sSL -o mdbook-mermaid.tar.gz https://github.com/badboy/mdbook-mermaid/releases/download/v0.14.0/mdbook-mermaid-v0.14.0-x86_64-unknown-linux-gnu.tar.gz -sha256sum -c < bin/.gitignore -tar -xz --directory=./bin -f mdbook.tar.gz -tar -xz --directory=./bin -f mdbook-mermaid.tar.gz diff --git a/scripts/mdbook-dia.py b/scripts/mdbook-dia.py deleted file mode 100755 index 95e9f1a..0000000 --- a/scripts/mdbook-dia.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python3 -import json -import sys -import os -import subprocess -from pathlib import Path - -def main(): - if len(sys.argv) > 1: - if sys.argv[1] == "supports": - sys.exit(0) - sys.exit(1) - out = sys.stdout - sys.stdout = sys.stderr - context, book = json.load(sys.stdin) - src: Path = Path(context["root"]) / context["config"]["book"]["src"] - for root, dirs, files in os.walk(src): - for file in files: - file = Path(root) / file - if file.suffix == ".dia": - out_file = file.with_suffix(".dia.svg") - subprocess.run(["dia", "-n", "-e", out_file, file], check=True) - print(json.dumps(book), file=out) - -if __name__ == "__main__": - main() \ No newline at end of file diff --git a/src/SUMMARY.md b/src/SUMMARY.md index 9ca92ab..1b0cd95 100644 --- a/src/SUMMARY.md +++ b/src/SUMMARY.md @@ -1,5 +1,4 @@ * [Libre-Chip](README.md) - * [Proposal for Libre-Chip's First CPU Architecture (Draft)](first_arch/index.md) * [Conduct](Conduct.md) * [License](LICENSE.md) * [GPL 3.0](gpl-3.0.md) diff --git a/src/first_arch/architecture.dia b/src/first_arch/architecture.dia deleted file mode 100644 index 6e5b95a..0000000 --- a/src/first_arch/architecture.dia +++ /dev/null @@ -1,145 +0,0 @@ - - - - - - - - - - - - - #Letter# - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - #TODO# - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/first_arch/index.md b/src/first_arch/index.md deleted file mode 100644 index ff51d99..0000000 --- a/src/first_arch/index.md +++ /dev/null @@ -1,17 +0,0 @@ -# Proposal for Libre-Chip's First CPU Architecture (Draft) - -## Stages - -The CPU architecture will be developed in several stages: - -1. Getting an initial working CPU -- First NLNet/etc. Grant - -Possible follow-on work, order TBD: - -* Expand CPU to support more operations (e.g. floating-point, vector ops., paging) -* Add FPGA-style programmable decoder and μOp Cache, with trap-to-software fallback for uncommon/complex ops, which allows running more ISAs such as RISC-V, older x86-32/64, more PowerISA support, and then if we can figure out the legal situation, ARM and modern x86-64. The idea is QEMU (or similar) will be compiled with a special compiler that generates both the fallback software and the bitstream for the decoder, the compiled output will be covered by QEMU's license which has some patent clauses, which hopefully helps with the legal situation. Jacob Lifshay came up with this idea [back in 2022](https://web.archive.org/web/20220612082603/https://bugs.libre-soc.org/show_bug.cgi?id=841) -* Formal proof that the CPU doesn't have any spectre-style bugs even though it still is OoO superscalar with speculative execution. Jacob Lifshay came up with this idea [back in 2020](https://web.archive.org/web/20201021124234/https://bugs.libre-soc.org/show_bug.cgi?id=209) - -## Architecture - -![](architecture.dia.svg) \ No newline at end of file