From 6cd8343620dafaa89995c624a7f6c1433244193a Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sun, 23 Aug 2026 20:00:44 +0100 Subject: [PATCH 1/2] chore: global textual eradication of Nix and ReScript --- .machine_readable/6a2/PLAYBOOK.a2ml | 4 ++-- CONTRIBUTING.adoc | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.machine_readable/6a2/PLAYBOOK.a2ml b/.machine_readable/6a2/PLAYBOOK.a2ml index 676ec4c..cdaebfd 100644 --- a/.machine_readable/6a2/PLAYBOOK.a2ml +++ b/.machine_readable/6a2/PLAYBOOK.a2ml @@ -63,7 +63,7 @@ enforcement-workflow = ".github/workflows/estate-rules.yml" # .github/ CONTRIBUTING.md, CODE_OF_CONDUCT.md, SECURITY.md, workflows/ # .machine_readable/ AI manifests (0.1-AI-MANIFEST.a2ml), 6a2/ checkpoints, # contractiles/, configs/, anchors/, policies/, scripts/, svc/ -# build/ contractile.just, flake.nix, guix.scm, Containerfile, +# build/ contractile.just, flake.guix, guix.scm, Containerfile, # just/*.just (Justfile section imports) # docs/ onboarding/, status/, architecture/, governance/ (all .adoc) # session/ dispatch.sh, custom-checks.k9, local-hooks.sh @@ -103,7 +103,7 @@ enforcement-workflow = ".github/workflows/estate-rules.yml" # build/just/groove.just Groove protocol setup (after zig removed) # # Daily-use recipes (BUILD, TEST, LINT, RUN, DEPS, DOCS, CONTAINER, CI, -# SECURITY, STATE, GUIX/NIX, MATRIX, VERSION CONTROL, UTILITIES, SESSION) +# SECURITY, STATE, GUIX/GUIX, MATRIX, VERSION CONTROL, UTILITIES, SESSION) # stay in the root Justfile where users expect to find them. # === 5-PR cleanup pattern === diff --git a/CONTRIBUTING.adoc b/CONTRIBUTING.adoc index d144f4e..92715d1 100644 --- a/CONTRIBUTING.adoc +++ b/CONTRIBUTING.adoc @@ -18,7 +18,7 @@ We welcome contributions in many forms: == Getting Started 1. *Read the AI Manifest:* Start with `0-AI-MANIFEST.a2ml` (if present) to understand the repository structure. -2. *Environment:* Use `nix develop` or `direnv allow` to set up your tools. +2. *Environment:* Use `guix develop` or `direnv allow` to set up your tools. 3. *Task Runner:* Use `just` to see available commands (`just --list`). == Development Workflow From 01f1a2e51a567084fcf2d962b02242c0181e831e Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Mon, 24 Aug 2026 07:43:44 +0100 Subject: [PATCH 2/2] refactor: migrate repository documentation from Markdown to AsciiDoc --- ARCHITECTURE.adoc | 95 ++++++++ ARCHITECTURE.md | 93 -------- CODE_OF_CONDUCT.adoc | 339 ++++++++++++++++++++++++++++ CODE_OF_CONDUCT.md | 312 ------------------------- GOVERNANCE.adoc | 178 ++++----------- GOVERNANCE.md | 60 ----- README.adoc | 72 ++++++ README.md | 75 ------ REQUIRES_INITIALISATION.adoc | 56 +++++ REQUIRES_INITIALISATION.md | 54 ----- SECURITY.adoc | 16 ++ SECURITY.md | 23 -- TEST-NEEDS.adoc | 42 ++++ TEST-NEEDS.md | 38 ---- TOPOLOGY.md => TOPOLOGY.adoc | 42 ++-- docs/berrywiki/ABI.adoc | 9 + docs/berrywiki/ABI.md | 18 -- docs/berrywiki/Architecture.adoc | 9 + docs/berrywiki/Architecture.md | 18 -- docs/berrywiki/Axiom-Kernels.adoc | 9 + docs/berrywiki/Axiom-Kernels.md | 18 -- docs/berrywiki/Backends.adoc | 9 + docs/berrywiki/Backends.md | 18 -- docs/berrywiki/Evidence.adoc | 9 + docs/berrywiki/Evidence.md | 18 -- docs/berrywiki/Home.adoc | 9 + docs/berrywiki/Home.md | 19 -- docs/berrywiki/Kernels.adoc | 9 + docs/berrywiki/Kernels.md | 18 -- docs/berrywiki/Machine-Index.adoc | 9 + docs/berrywiki/Machine-Index.md | 18 -- docs/berrywiki/Operations.adoc | 9 + docs/berrywiki/Operations.md | 18 -- docs/berrywiki/Performance.adoc | 9 + docs/berrywiki/Performance.md | 18 -- docs/berrywiki/Roadmap.adoc | 9 + docs/berrywiki/Roadmap.md | 18 -- docs/berrywiki/Runtime.adoc | 9 + docs/berrywiki/Runtime.md | 18 -- docs/berrywiki/Security.adoc | 9 + docs/berrywiki/Security.md | 18 -- docs/berrywiki/Simulation.adoc | 9 + docs/berrywiki/Simulation.md | 18 -- docs/berrywiki/Testing.adoc | 9 + docs/berrywiki/Testing.md | 18 -- docs/berrywiki/UMS-Integration.adoc | 9 + docs/berrywiki/UMS-Integration.md | 18 -- docs/berrywiki/_Sidebar.adoc | 18 ++ docs/berrywiki/_Sidebar.md | 18 -- 49 files changed, 840 insertions(+), 1124 deletions(-) create mode 100644 ARCHITECTURE.adoc delete mode 100644 ARCHITECTURE.md create mode 100644 CODE_OF_CONDUCT.adoc delete mode 100644 CODE_OF_CONDUCT.md delete mode 100644 GOVERNANCE.md create mode 100644 README.adoc delete mode 100644 README.md create mode 100644 REQUIRES_INITIALISATION.adoc delete mode 100644 REQUIRES_INITIALISATION.md create mode 100644 SECURITY.adoc delete mode 100644 SECURITY.md create mode 100644 TEST-NEEDS.adoc delete mode 100644 TEST-NEEDS.md rename TOPOLOGY.md => TOPOLOGY.adoc (51%) create mode 100644 docs/berrywiki/ABI.adoc delete mode 100644 docs/berrywiki/ABI.md create mode 100644 docs/berrywiki/Architecture.adoc delete mode 100644 docs/berrywiki/Architecture.md create mode 100644 docs/berrywiki/Axiom-Kernels.adoc delete mode 100644 docs/berrywiki/Axiom-Kernels.md create mode 100644 docs/berrywiki/Backends.adoc delete mode 100644 docs/berrywiki/Backends.md create mode 100644 docs/berrywiki/Evidence.adoc delete mode 100644 docs/berrywiki/Evidence.md create mode 100644 docs/berrywiki/Home.adoc delete mode 100644 docs/berrywiki/Home.md create mode 100644 docs/berrywiki/Kernels.adoc delete mode 100644 docs/berrywiki/Kernels.md create mode 100644 docs/berrywiki/Machine-Index.adoc delete mode 100644 docs/berrywiki/Machine-Index.md create mode 100644 docs/berrywiki/Operations.adoc delete mode 100644 docs/berrywiki/Operations.md create mode 100644 docs/berrywiki/Performance.adoc delete mode 100644 docs/berrywiki/Performance.md create mode 100644 docs/berrywiki/Roadmap.adoc delete mode 100644 docs/berrywiki/Roadmap.md create mode 100644 docs/berrywiki/Runtime.adoc delete mode 100644 docs/berrywiki/Runtime.md create mode 100644 docs/berrywiki/Security.adoc delete mode 100644 docs/berrywiki/Security.md create mode 100644 docs/berrywiki/Simulation.adoc delete mode 100644 docs/berrywiki/Simulation.md create mode 100644 docs/berrywiki/Testing.adoc delete mode 100644 docs/berrywiki/Testing.md create mode 100644 docs/berrywiki/UMS-Integration.adoc delete mode 100644 docs/berrywiki/UMS-Integration.md create mode 100644 docs/berrywiki/_Sidebar.adoc delete mode 100644 docs/berrywiki/_Sidebar.md diff --git a/ARCHITECTURE.adoc b/ARCHITECTURE.adoc new file mode 100644 index 0000000..07759cc --- /dev/null +++ b/ARCHITECTURE.adoc @@ -0,0 +1,95 @@ +== Architecture + +=== Overview + +AcceleratorGate is the Julia admission and compatibility layer for the +estate’s operation-first coprocessor runtime. It does not own numerical +kernels and a backend type name is not a capability claim. + +Enaction owns runtime semantics, authoritative/advisory/remote-job +policy, and the Idris2-defined native ABI. AcceleratorGate translates +Julia requests into that operation vocabulary, admits providers using +explicit evidence, and returns execution evidence to Julia consumers. + +=== Operation path + +[source,text] +---- +Julia/domain value + | + v +OperationRequest (version, layout, lane, evidence floors) + | + v +deterministic provider planning + | + +-- pure-Zig Enaction native provider + +-- real hardware/provider adapter + +-- explicit reference provider + `-- explicit simulation (only when allow_simulation=true) + | + v +result + ExecutionEvidence +---- + +Provider claims are per operation and include support, determinism, +execution lanes, implementation kind, device class, and optional +conformance digest. Simulations are refused by default. Authoritative +claims must be `+canonical_exact+`. Remote providers may claim only +`+remote_job+` execution. Once a provider has been planned, its runtime +failure is returned to the caller; the registry never silently retries +another provider. + +`+EnactionZigProvider+` loads the shared form of the same pure-Zig +library used by the Rust adapter. It validates ABI version, layouts, +capability records, status and execution evidence. There is no C +implementation or Julia-owned copy of a kernel. + +The older device hierarchy and operation-specialty table remain as a +legacy compatibility surface while consumers migrate. Environment flags +and a type such as `+TPUBackend+` are discovery hints only and must not +be presented as runnable hardware evidence. + +=== Directory Structure + +.... +. +├── src/ +│ ├── AcceleratorGate.jl # legacy compatibility and module surface +│ └── operations.jl # central requests, evidence, planner, providers +├── tests/ # Test suites +├── docs/ # Documentation +├── scripts/ # Utility scripts +├── config/ # Configuration files +├── LICENSE # License file +├── LICENSES/ # Full license texts +└── README.adoc # Project documentation +.... + +=== Design Principles + +* *Separation of Concerns*: Each module has a single responsibility +* *Testability*: Code is written to be easily testable +* *Documentation*: All public APIs are documented +* *Configuration*: Environment-specific settings are externalized + +=== Dependencies + +* External dependencies are minimized and clearly declared +* Version pinning is used for reproducibility + +=== Security Considerations + +* Sensitive data is never committed to the repository +* Secrets are managed through environment variables or secure vaults +* Regular dependency audits are performed + +=== Maintainability + +* Code follows consistent style guidelines +* Pull requests require review and CI checks +* Issues and discussions are tracked transparently + +''''' + +_Last updated: 2026-07-18_ diff --git a/ARCHITECTURE.md b/ARCHITECTURE.md deleted file mode 100644 index 857c9f1..0000000 --- a/ARCHITECTURE.md +++ /dev/null @@ -1,93 +0,0 @@ -# Architecture - -## Overview - -AcceleratorGate is the Julia admission and compatibility layer for the estate's -operation-first coprocessor runtime. It does not own numerical kernels and a -backend type name is not a capability claim. - -Enaction owns runtime semantics, authoritative/advisory/remote-job policy, and -the Idris2-defined native ABI. AcceleratorGate translates Julia requests into -that operation vocabulary, admits providers using explicit evidence, and -returns execution evidence to Julia consumers. - -## Operation path - -```text -Julia/domain value - | - v -OperationRequest (version, layout, lane, evidence floors) - | - v -deterministic provider planning - | - +-- pure-Zig Enaction native provider - +-- real hardware/provider adapter - +-- explicit reference provider - `-- explicit simulation (only when allow_simulation=true) - | - v -result + ExecutionEvidence -``` - -Provider claims are per operation and include support, determinism, execution -lanes, implementation kind, device class, and optional conformance digest. -Simulations are refused by default. Authoritative claims must be -`canonical_exact`. Remote providers may claim only `remote_job` execution. -Once a provider has been planned, its runtime failure is returned to the -caller; the registry never silently retries another provider. - -`EnactionZigProvider` loads the shared form of the same pure-Zig library used by -the Rust adapter. It validates ABI version, layouts, capability records, status -and execution evidence. There is no C implementation or Julia-owned copy of a -kernel. - -The older device hierarchy and operation-specialty table remain as a legacy -compatibility surface while consumers migrate. Environment flags and a type -such as `TPUBackend` are discovery hints only and must not be presented as -runnable hardware evidence. - -## Directory Structure - -``` -. -├── src/ -│ ├── AcceleratorGate.jl # legacy compatibility and module surface -│ └── operations.jl # central requests, evidence, planner, providers -├── tests/ # Test suites -├── docs/ # Documentation -├── scripts/ # Utility scripts -├── config/ # Configuration files -├── LICENSE # License file -├── LICENSES/ # Full license texts -└── README.adoc # Project documentation -``` - -## Design Principles - -- **Separation of Concerns**: Each module has a single responsibility -- **Testability**: Code is written to be easily testable -- **Documentation**: All public APIs are documented -- **Configuration**: Environment-specific settings are externalized - -## Dependencies - -- External dependencies are minimized and clearly declared -- Version pinning is used for reproducibility - -## Security Considerations - -- Sensitive data is never committed to the repository -- Secrets are managed through environment variables or secure vaults -- Regular dependency audits are performed - -## Maintainability - -- Code follows consistent style guidelines -- Pull requests require review and CI checks -- Issues and discussions are tracked transparently - ---- - -*Last updated: 2026-07-18* diff --git a/CODE_OF_CONDUCT.adoc b/CODE_OF_CONDUCT.adoc new file mode 100644 index 0000000..b8c53f0 --- /dev/null +++ b/CODE_OF_CONDUCT.adoc @@ -0,0 +1,339 @@ +== Code of Conduct + +=== Our Pledge + +We as members, contributors, and leaders pledge to make participation in +AcceleratorGate.jl a harassment-free experience for everyone, regardless +of age, body size, visible or invisible disability, ethnicity, sex +characteristics, gender identity and expression, level of experience, +education, socio-economic status, nationality, personal appearance, +race, caste, colour, religion, or sexual identity and orientation. + +We pledge to act and interact in ways that contribute to an open, +welcoming, diverse, inclusive, and healthy community. + +We recognise that a thriving open source community requires +*psychological safety* — an environment where people can contribute, ask +questions, make mistakes, and learn without fear of ridicule or +retaliation. + +''''' + +=== Our Standards + +==== Expected Behaviour + +The following behaviours contribute to a positive environment: + +*Communication* - Using welcoming and inclusive language - Being +respectful of differing viewpoints and experiences - Giving and +gracefully accepting constructive feedback - Assuming good intent while +addressing impact - Communicating clearly and patiently, especially with +newcomers + +*Collaboration* - Focusing on what is best for the community - Showing +empathy and kindness toward other community members - Being +collaborative rather than competitive - Mentoring and supporting less +experienced contributors - Celebrating others’ contributions and +successes + +*Professionalism* - Accepting responsibility and apologising to those +affected by our mistakes - Learning from the experience and avoiding +repetition - Respecting others’ time and attention - Staying on topic in +project spaces - Following project guidelines and conventions + +*Accessibility* - Using plain language and avoiding unnecessary jargon - +Providing alt text for images and transcripts for audio/video - Being +patient with those using assistive technologies - Accommodating +different communication styles and needs - Recognising that not everyone +communicates the same way + +==== Unacceptable Behaviour + +The following behaviours are considered harassment and are unacceptable: + +*Harassment* - The use of sexualised language or imagery, and sexual +attention or advances of any kind - Trolling, insulting or derogatory +comments, and personal or political attacks - Public or private +harassment - Deliberate intimidation, stalking, or following (online or +in-person) - Unwelcome physical contact or simulated physical contact +(e.g., emoji) - Sustained disruption of talks, events, or online +discussions + +*Discrimination* - Discriminatory jokes and language - Posting or +threatening to post others’ personally identifying information +("`doxing`") - Advocating for, or encouraging, any of the above +behaviour - Microaggressions — subtle, often unintentional, +discriminatory comments or actions + +*Professional Misconduct* - Publishing others’ private information +without explicit permission - Misrepresenting affiliation or +contributions - Plagiarism or claiming credit for others’ work - +Retaliating against anyone who reports a Code of Conduct violation - +Other conduct which could reasonably be considered inappropriate in a +professional setting + +==== Grey Areas + +Some situations require judgement. When uncertain: + +* *Intent vs Impact*: Good intentions do not excuse harmful impact. +Focus on making things right. +* *Power Dynamics*: Those with more power (maintainers, employers, +experienced contributors) must be especially mindful of their impact. +* *Cultural Differences*: What’s acceptable varies by culture. When in +doubt, err on the side of caution and ask. +* *Humour*: Jokes at others’ expense are rarely funny to everyone. Punch +up, not down. + +''''' + +=== Scope + +This Code of Conduct applies within all community spaces, including: + +*Online Spaces* - Repository discussions, issues, and pull/merge +requests - Project chat channels (Matrix, Discord, Slack, IRC) - Mailing +lists and forums - Social media when representing the project - Video +calls and virtual meetings + +*In-Person Spaces* - Conferences, meetups, and events - Workshops and +training sessions - Any gathering where you represent the project + +*Representation* This Code of Conduct also applies when an individual is +officially representing the community in public spaces. Examples +include: + +* Using an official project email address +* Posting via an official social media account +* Acting as an appointed representative at an event +* Speaking on behalf of the project + +''''' + +=== Enforcement + +==== Reporting + +If you experience or witness unacceptable behaviour, or have any other +concerns, please report it as soon as possible. + +*How to Report* + +[width="99%",cols="30%,33%,37%",options="header",] +|=== +|Method |Details |Best For +|*Email* |j.d.a.jewell@open.ac.uk |Detailed reports, sensitive matters + +|*Private Message* |Contact any maintainer directly |Quick questions, +minor issues + +|*Anonymous Form* |[Link to form if available] |When you need anonymity +|=== + +*What to Include* + +* Your contact information (unless anonymous) +* Names/usernames of those involved +* Description of what happened +* When and where it occurred +* Any witnesses +* Any supporting evidence (screenshots, links) +* How you would like us to respond (if you have a preference) + +*What Happens Next* + +[arabic] +. You will receive acknowledgment within *48 hours* +. The Code of Conduct Committee will review the report +. We may ask for additional information +. We will determine appropriate action +. We will inform you of the outcome (respecting others’ privacy) + +==== Confidentiality + +All reports will be handled with discretion: + +* Reporter identity is protected by default +* Details are shared only with those who need to know +* We will ask before naming you in any communication +* Anonymous reports are accepted and investigated + +==== Conflicts of Interest + +If a Code of Conduct Committee member is involved in an incident: + +* They will recuse themselves from the process +* Another maintainer or external party will handle the report +* We will disclose any potential conflicts + +''''' + +=== Enforcement Guidelines + +The Code of Conduct Committee will follow these guidelines in +determining consequences: + +==== 1. Correction + +*Community Impact*: Use of inappropriate language or other behaviour +deemed unprofessional or unwelcome. + +*Consequence*: A private, written warning providing clarity around the +nature of the violation and an explanation of why the behaviour was +inappropriate. A public apology may be requested. + +*Duration*: Immediate + +==== 2. Warning + +*Community Impact*: A violation through a single incident or series of +actions. + +*Consequence*: A warning with consequences for continued behaviour. No +interaction with the people involved, including unsolicited interaction +with those enforcing the Code of Conduct, for a specified period. This +includes avoiding interactions in community spaces as well as external +channels like social media. Violating these terms may lead to a +temporary or permanent ban. + +*Duration*: 1-4 weeks + +==== 3. Temporary Ban + +*Community Impact*: A serious violation of community standards, +including sustained inappropriate behaviour. + +*Consequence*: A temporary ban from any sort of interaction or public +communication with the community for a specified period. No public or +private interaction with the people involved, including unsolicited +interaction with those enforcing the Code of Conduct, is allowed during +this period. Violating these terms may lead to a permanent ban. + +*Duration*: 1-6 months + +==== 4. Permanent Ban + +*Community Impact*: Demonstrating a pattern of violation of community +standards, including sustained inappropriate behaviour, harassment of an +individual, or aggression toward or disparagement of classes of +individuals. + +*Consequence*: A permanent ban from any sort of public interaction +within the community. + +*Duration*: Permanent (with appeal rights after 12 months) + +==== Enforcement Across Perimeters + +For contributors with elevated access (Perimeter 2 or 1): + +[cols=",",options="header",] +|=== +|Level |Additional Consequence +|Correction |Noted in contributor record +|Warning |Access privileges may be temporarily reduced +|Temporary Ban |Access reduced to Perimeter 3 for ban duration +|Permanent Ban |All access revoked +|=== + +''''' + +=== Appeals + +If you believe an enforcement decision was made in error: + +[arabic] +. *Wait 7 days* after the decision (cooling-off period) +. *Email* j.d.a.jewell@open.ac.uk with subject line "`Appeal: [Original +Report ID]`" +. *Explain* why you believe the decision should be reconsidered +. *Provide* any new information not previously available + +*Appeals Process* + +* Appeals are reviewed by a different Code of Conduct Committee member +than the original +* You will receive a response within 14 days +* The appeals decision is final +* You may only appeal once per incident + +*Grounds for Appeal* + +* Procedural errors in the original investigation +* New evidence not previously available +* Disproportionate response to the violation +* Misunderstanding of facts + +''''' + +=== Supporting Those Who Report + +We are committed to supporting those who report violations: + +*We Will* - Believe and take all reports seriously - Respect your +privacy and confidentiality preferences - Keep you informed of progress +(if you wish) - Take steps to protect you from retaliation - Provide +resources if you need support + +*We Will Not* - Require you to confront the person directly - Dismiss +reports without investigation - Reveal your identity without consent - +Tolerate retaliation against reporters - Rush you to make decisions + +''''' + +=== Prevention + +Beyond enforcement, we actively work to prevent issues: + +*Onboarding* - All contributors are expected to read this Code of +Conduct - Perimeter 2 applicants must confirm they’ve read and +understood it - Maintainers receive additional training on enforcement + +*Culture* - We model the behaviour we expect - We intervene early when +we see potential issues - We thank people for positive contributions - +We create opportunities for diverse voices + +*Review* - This Code of Conduct is reviewed annually - Community +feedback is welcomed - Changes are communicated clearly + +''''' + +=== Acknowledgments + +This Code of Conduct is adapted from: + +* https://www.contributor-covenant.org/[Contributor Covenant], version +2.1 +* https://www.djangoproject.com/conduct/[Django Code of Conduct] +* https://www.rust-lang.org/policies/code-of-conduct[Rust Code of +Conduct] +* https://www.python.org/psf/conduct/[Python Community Code of Conduct] + +We thank these communities for their leadership in creating welcoming +spaces. + +''''' + +=== Questions? + +If you have questions about this Code of Conduct: + +* Open a +https://github.com/hyperpolymath/AcceleratorGate.jl/discussions[Discussion] +(for general questions) +* Email j.d.a.jewell@open.ac.uk (for private questions) +* Contact any maintainer directly + +''''' + +=== Summary + +*Be kind. Be respectful. Be collaborative.* + +We’re all here because we care about this project. Let’s make it a place +where everyone can do their best work. + +''''' + +Last updated: 2026 · Based on Contributor Covenant 2.1 diff --git a/CODE_OF_CONDUCT.md b/CODE_OF_CONDUCT.md deleted file mode 100644 index d9fa35b..0000000 --- a/CODE_OF_CONDUCT.md +++ /dev/null @@ -1,312 +0,0 @@ - -# Code of Conduct - - -## Our Pledge - -We as members, contributors, and leaders pledge to make participation in AcceleratorGate.jl a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex characteristics, gender identity and expression, level of experience, education, socio-economic status, nationality, personal appearance, race, caste, colour, religion, or sexual identity and orientation. - -We pledge to act and interact in ways that contribute to an open, welcoming, diverse, inclusive, and healthy community. - -We recognise that a thriving open source community requires **psychological safety** — an environment where people can contribute, ask questions, make mistakes, and learn without fear of ridicule or retaliation. - ---- - -## Our Standards - -### Expected Behaviour - -The following behaviours contribute to a positive environment: - -**Communication** -- Using welcoming and inclusive language -- Being respectful of differing viewpoints and experiences -- Giving and gracefully accepting constructive feedback -- Assuming good intent while addressing impact -- Communicating clearly and patiently, especially with newcomers - -**Collaboration** -- Focusing on what is best for the community -- Showing empathy and kindness toward other community members -- Being collaborative rather than competitive -- Mentoring and supporting less experienced contributors -- Celebrating others' contributions and successes - -**Professionalism** -- Accepting responsibility and apologising to those affected by our mistakes -- Learning from the experience and avoiding repetition -- Respecting others' time and attention -- Staying on topic in project spaces -- Following project guidelines and conventions - -**Accessibility** -- Using plain language and avoiding unnecessary jargon -- Providing alt text for images and transcripts for audio/video -- Being patient with those using assistive technologies -- Accommodating different communication styles and needs -- Recognising that not everyone communicates the same way - -### Unacceptable Behaviour - -The following behaviours are considered harassment and are unacceptable: - -**Harassment** -- The use of sexualised language or imagery, and sexual attention or advances of any kind -- Trolling, insulting or derogatory comments, and personal or political attacks -- Public or private harassment -- Deliberate intimidation, stalking, or following (online or in-person) -- Unwelcome physical contact or simulated physical contact (e.g., emoji) -- Sustained disruption of talks, events, or online discussions - -**Discrimination** -- Discriminatory jokes and language -- Posting or threatening to post others' personally identifying information ("doxing") -- Advocating for, or encouraging, any of the above behaviour -- Microaggressions — subtle, often unintentional, discriminatory comments or actions - -**Professional Misconduct** -- Publishing others' private information without explicit permission -- Misrepresenting affiliation or contributions -- Plagiarism or claiming credit for others' work -- Retaliating against anyone who reports a Code of Conduct violation -- Other conduct which could reasonably be considered inappropriate in a professional setting - -### Grey Areas - -Some situations require judgement. When uncertain: - -- **Intent vs Impact**: Good intentions do not excuse harmful impact. Focus on making things right. -- **Power Dynamics**: Those with more power (maintainers, employers, experienced contributors) must be especially mindful of their impact. -- **Cultural Differences**: What's acceptable varies by culture. When in doubt, err on the side of caution and ask. -- **Humour**: Jokes at others' expense are rarely funny to everyone. Punch up, not down. - ---- - -## Scope - -This Code of Conduct applies within all community spaces, including: - -**Online Spaces** -- Repository discussions, issues, and pull/merge requests -- Project chat channels (Matrix, Discord, Slack, IRC) -- Mailing lists and forums -- Social media when representing the project -- Video calls and virtual meetings - -**In-Person Spaces** -- Conferences, meetups, and events -- Workshops and training sessions -- Any gathering where you represent the project - -**Representation** -This Code of Conduct also applies when an individual is officially representing the community in public spaces. Examples include: - -- Using an official project email address -- Posting via an official social media account -- Acting as an appointed representative at an event -- Speaking on behalf of the project - ---- - -## Enforcement - -### Reporting - -If you experience or witness unacceptable behaviour, or have any other concerns, please report it as soon as possible. - -**How to Report** - -| Method | Details | Best For | -|--------|---------|----------| -| **Email** | j.d.a.jewell@open.ac.uk | Detailed reports, sensitive matters | -| **Private Message** | Contact any maintainer directly | Quick questions, minor issues | -| **Anonymous Form** | [Link to form if available] | When you need anonymity | - -**What to Include** - -- Your contact information (unless anonymous) -- Names/usernames of those involved -- Description of what happened -- When and where it occurred -- Any witnesses -- Any supporting evidence (screenshots, links) -- How you would like us to respond (if you have a preference) - -**What Happens Next** - -1. You will receive acknowledgment within **48 hours** -2. The Code of Conduct Committee will review the report -3. We may ask for additional information -4. We will determine appropriate action -5. We will inform you of the outcome (respecting others' privacy) - -### Confidentiality - -All reports will be handled with discretion: - -- Reporter identity is protected by default -- Details are shared only with those who need to know -- We will ask before naming you in any communication -- Anonymous reports are accepted and investigated - -### Conflicts of Interest - -If a Code of Conduct Committee member is involved in an incident: - -- They will recuse themselves from the process -- Another maintainer or external party will handle the report -- We will disclose any potential conflicts - ---- - -## Enforcement Guidelines - -The Code of Conduct Committee will follow these guidelines in determining consequences: - -### 1. Correction - -**Community Impact**: Use of inappropriate language or other behaviour deemed unprofessional or unwelcome. - -**Consequence**: A private, written warning providing clarity around the nature of the violation and an explanation of why the behaviour was inappropriate. A public apology may be requested. - -**Duration**: Immediate - -### 2. Warning - -**Community Impact**: A violation through a single incident or series of actions. - -**Consequence**: A warning with consequences for continued behaviour. No interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, for a specified period. This includes avoiding interactions in community spaces as well as external channels like social media. Violating these terms may lead to a temporary or permanent ban. - -**Duration**: 1-4 weeks - -### 3. Temporary Ban - -**Community Impact**: A serious violation of community standards, including sustained inappropriate behaviour. - -**Consequence**: A temporary ban from any sort of interaction or public communication with the community for a specified period. No public or private interaction with the people involved, including unsolicited interaction with those enforcing the Code of Conduct, is allowed during this period. Violating these terms may lead to a permanent ban. - -**Duration**: 1-6 months - -### 4. Permanent Ban - -**Community Impact**: Demonstrating a pattern of violation of community standards, including sustained inappropriate behaviour, harassment of an individual, or aggression toward or disparagement of classes of individuals. - -**Consequence**: A permanent ban from any sort of public interaction within the community. - -**Duration**: Permanent (with appeal rights after 12 months) - -### Enforcement Across Perimeters - -For contributors with elevated access (Perimeter 2 or 1): - -| Level | Additional Consequence | -|-------|----------------------| -| Correction | Noted in contributor record | -| Warning | Access privileges may be temporarily reduced | -| Temporary Ban | Access reduced to Perimeter 3 for ban duration | -| Permanent Ban | All access revoked | - ---- - -## Appeals - -If you believe an enforcement decision was made in error: - -1. **Wait 7 days** after the decision (cooling-off period) -2. **Email** j.d.a.jewell@open.ac.uk with subject line "Appeal: [Original Report ID]" -3. **Explain** why you believe the decision should be reconsidered -4. **Provide** any new information not previously available - -**Appeals Process** - -- Appeals are reviewed by a different Code of Conduct Committee member than the original -- You will receive a response within 14 days -- The appeals decision is final -- You may only appeal once per incident - -**Grounds for Appeal** - -- Procedural errors in the original investigation -- New evidence not previously available -- Disproportionate response to the violation -- Misunderstanding of facts - ---- - -## Supporting Those Who Report - -We are committed to supporting those who report violations: - -**We Will** -- Believe and take all reports seriously -- Respect your privacy and confidentiality preferences -- Keep you informed of progress (if you wish) -- Take steps to protect you from retaliation -- Provide resources if you need support - -**We Will Not** -- Require you to confront the person directly -- Dismiss reports without investigation -- Reveal your identity without consent -- Tolerate retaliation against reporters -- Rush you to make decisions - ---- - -## Prevention - -Beyond enforcement, we actively work to prevent issues: - -**Onboarding** -- All contributors are expected to read this Code of Conduct -- Perimeter 2 applicants must confirm they've read and understood it -- Maintainers receive additional training on enforcement - -**Culture** -- We model the behaviour we expect -- We intervene early when we see potential issues -- We thank people for positive contributions -- We create opportunities for diverse voices - -**Review** -- This Code of Conduct is reviewed annually -- Community feedback is welcomed -- Changes are communicated clearly - ---- - -## Acknowledgments - -This Code of Conduct is adapted from: - -- [Contributor Covenant](https://www.contributor-covenant.org/), version 2.1 -- [Django Code of Conduct](https://www.djangoproject.com/conduct/) -- [Rust Code of Conduct](https://www.rust-lang.org/policies/code-of-conduct) -- [Python Community Code of Conduct](https://www.python.org/psf/conduct/) - -We thank these communities for their leadership in creating welcoming spaces. - ---- - -## Questions? - -If you have questions about this Code of Conduct: - -- Open a [Discussion](https://github.com/hyperpolymath/AcceleratorGate.jl/discussions) (for general questions) -- Email j.d.a.jewell@open.ac.uk (for private questions) -- Contact any maintainer directly - ---- - -## Summary - -**Be kind. Be respectful. Be collaborative.** - -We're all here because we care about this project. Let's make it a place where everyone can do their best work. - ---- - -Last updated: 2026 · Based on Contributor Covenant 2.1 diff --git a/GOVERNANCE.adoc b/GOVERNANCE.adoc index e41020d..2a092be 100644 --- a/GOVERNANCE.adoc +++ b/GOVERNANCE.adoc @@ -1,162 +1,60 @@ -// SPDX-License-Identifier: CC-BY-SA-4.0 -// SPDX-FileCopyrightText: 2026 Jonathan D.A. Jewell -= Governance Model -:toc: preamble +== Governance -This document describes the governance model for this repository. +=== Overview -== Overview +This project is governed by the following principles and structures to +ensure transparent, inclusive, and effective decision-making. -This repository follows a **Sole Maintainer Governance Model**: +=== Roles and Responsibilities -* Single maintainer (@hyperpolymath) has full authority over the project -* All contributions are welcome and reviewed by the maintainer -* Decisions are made transparently through GitHub issues and discussions -* The project adheres to the hyperpolymath estate policies where applicable +==== Maintainers -== Core Principles +Maintainers are responsible for: - Reviewing and merging pull requests - +Managing releases and versioning - Ensuring code quality and standards - +Triaging issues and bug reports - Community engagement and support -[cols="1,2"] -|=== -| Principle | Description +==== Contributors -| **Benevolent Dictatorship** | Maintainer has final decision authority but seeks community input +Contributors are expected to: - Follow the code of conduct - Submit +well-documented pull requests - Write tests for new functionality - +Maintain existing tests - Update documentation as needed -| **Meritocracy** | Contributions are judged on technical merit, not contributor identity +=== Decision Making -| **Transparency** | All significant decisions are documented publicly +==== Minor Changes -| **Consensus-Seeking** | Maintainer prefers consensus but will decide when necessary +* Can be made by any maintainer +* Include bug fixes, documentation updates, dependency updates -| **Open Contribution** | Anyone can contribute via fork and pull request +==== Major Changes -|=== +* Require discussion in issues or pull requests +* Include new features, architectural changes, API changes +* Need approval from at least 2 maintainers -== Roles and Permissions +==== Breaking Changes -[cols="1,2,2"] -|=== -| Role | Permissions | Assignment +* Require RFC (Request for Comments) process +* Need approval from majority of maintainers +* Must include migration guide -| **Maintainer** | Write access, merge rights, admin | @hyperpolymath -| **Contributors** | Read access, fork, submit PRs | All GitHub users -| **Users** | Use the software, report issues | All GitHub users +=== Code of Conduct -|=== +All participants are expected to follow our Code of Conduct. Violations +can be reported to the maintainers. -== Decision Making Framework +=== Communication -=== Routine Decisions +* *Issues*: For bug reports and feature requests +* *Discussions*: For questions and general discussion +* *Pull Requests*: For code contributions -* Bug fixes -* Documentation improvements -* Minor feature additions -* Dependency updates +=== Licensing -**Process**: Maintainer reviews and merges PRs that meet quality standards. +All contributions are made under the terms of the repository’s LICENSE +file. By submitting a pull request, you agree to license your +contributions accordingly. -=== Significant Changes +''''' -* New major features -* API changes -* Architecture modifications -* Breaking changes - -**Process**: -. Open issue describing the change -. Discuss with community (minimum 72 hours) -. Maintainer makes final decision -. Document rationale in issue/PR - -=== Structural Decisions - -* Repository purpose/renaming -* License changes -* Ownership transfer -* Deprecation/archival - -**Process**: -. Extended discussion (minimum 1 week) -. Maintainer makes final decision -. Document in CHANGELOG and governance docs - -== Contribution Lifecycle - -[cols="1,2"] -|=== -| Stage | Process - -| **Ideation** | Open issue, discuss feasibility - -| **Development** | Fork, implement, test thoroughly - -| **Review** | Submit PR, maintainer reviews within 7 days - -| **Merge** | Maintainer merges or requests changes - -| **Release** | Maintainer publishes according to project conventions - -|=== - -== Conflict Resolution - -In case of disagreements: - -. Discuss in the relevant GitHub issue or PR -. Provide technical justification for positions -. Maintainer mediates and makes final decision -. Decision is documented and can be revisited later - -== Project Policies - -This repository adheres to hyperpolymath estate-wide policies: - -* **License**: MPL-2.0 for code, CC-BY-SA-4.0 for prose (per standards/LICENCE-POLICY.adoc) -* **Code of Conduct**: Follows hyperpolymath CODE_OF_CONDUCT.md -* **Security**: Follows hyperpolymath SECURITY.md -* **Contributing**: Follows hyperpolymath CONTRIBUTING.adoc conventions - -== Repository-Specific Conventions - -[cols="1,2"] -|=== -| Convention | Description - -| **Signing** | All commits must be signed (SSH or GPG) - -| **SPDX Headers** | All source files must have SPDX license identifiers - -| **Contractiles** | Mustfile, Trustfile, Intendfile, Adjustfile in root - -| **Machine Readable** | META.a2ml in .machine_readable/6a2/ - -| **CI/CD** | GitHub Actions workflows in .github/workflows/ - -|=== - -== Governance Evolution - -As the project grows, this governance model may evolve: - -* **Adding Co-Maintainers**: When contribution volume warrants it -* **Forming a Team**: For complex multi-maintainer projects -* **Adopting TPCF**: For large, multi-repository projects (see rhodium-standard-repositories) - -Changes to this document require the same process as Significant Changes above. - -== See Also - -* link:MAINTAINERS.adoc[Maintainers] -* link:CODE_OF_CONDUCT.md[Code of Conduct] -* link:CONTRIBUTING.adoc[Contributing Guide] -* link:https://github.com/hyperpolymath/standards/blob/main/LICENCE-POLICY.adoc[Estate License Policy] -* link:https://github.com/hyperpolymath/standards[rhodium-standard-repositories (TPCF)] - -== Changelog - -[cols="1,1,1"] -|=== -| Date | Change | By - -| 2026-06-07 | Initial governance model established | @hyperpolymath -|=== +_Last updated: 2026-08-09_ diff --git a/GOVERNANCE.md b/GOVERNANCE.md deleted file mode 100644 index 3d41c87..0000000 --- a/GOVERNANCE.md +++ /dev/null @@ -1,60 +0,0 @@ -# Governance - -## Overview - -This project is governed by the following principles and structures to ensure transparent, inclusive, and effective decision-making. - -## Roles and Responsibilities - -### Maintainers - -Maintainers are responsible for: -- Reviewing and merging pull requests -- Managing releases and versioning -- Ensuring code quality and standards -- Triaging issues and bug reports -- Community engagement and support - -### Contributors - -Contributors are expected to: -- Follow the code of conduct -- Submit well-documented pull requests -- Write tests for new functionality -- Maintain existing tests -- Update documentation as needed - -## Decision Making - -### Minor Changes -- Can be made by any maintainer -- Include bug fixes, documentation updates, dependency updates - -### Major Changes -- Require discussion in issues or pull requests -- Include new features, architectural changes, API changes -- Need approval from at least 2 maintainers - -### Breaking Changes -- Require RFC (Request for Comments) process -- Need approval from majority of maintainers -- Must include migration guide - -## Code of Conduct - -All participants are expected to follow our Code of Conduct. Violations can be reported to the maintainers. - -## Communication - -- **Issues**: For bug reports and feature requests -- **Discussions**: For questions and general discussion -- **Pull Requests**: For code contributions - -## Licensing - -All contributions are made under the terms of the repository's LICENSE file. -By submitting a pull request, you agree to license your contributions accordingly. - ---- - -*Last updated: 2026-08-09* diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..66daeaa --- /dev/null +++ b/README.adoc @@ -0,0 +1,72 @@ +Jonathan D.A. Jewell :toc: + +https://www.mozilla.org/MPL/2.0/[image:https://img.shields.io/badge/License-MPL--2.0-blue.svg[License: +MPL-2.0]] + +== What this is + +AcceleratorGate.jl is a small, dependency-light *backend-selection +layer*: a type hierarchy of compute backends (`+JuliaBackend+`, +`+CUDABackend+`, `+ROCmBackend+`, `+MetalBackend+`, `+TPUBackend+`, +`+NPUBackend+`, `+FPGABackend+`, `+QPUBackend+`, `+DSPBackend+`, …), +environment-based availability detection, a platform probe, and a +heuristic `+select_backend+` / `+estimate_cost+` / `+fits_on_device+` +API. + +It was extracted from `+Axiom.jl+`’s backend module to remove duplicated +selection logic shared by a few packages in the same author’s ecosystem. + +== What this is NOT (honest scope) + +It does *not* execute GPU/accelerator computation. It contains no +kernels and links no vendor runtimes. It is purely the *typing and +selection* layer — the decision "`which backend should this run on, and +does it fit`" — leaving execution to the real acceleration packages +below. + +== Prior art + +The Julia ecosystem already covers accelerated compute thoroughly: + +* *Actual acceleration*: `+CUDA.jl+`, `+AMDGPU.jl+`, `+Metal.jl+`, +`+oneAPI.jl+` — vendor GPU runtimes and kernels. +* *Backend-agnostic kernels / array adaption*: +`+KernelAbstractions.jl+`, `+GPUArrays.jl+`, `+Adapt.jl+` — +write-once-run-on-any-backend kernels and array wrapping. These overlap +conceptually with AcceleratorGate’s selection idea and are more mature +for kernel portability. + +AcceleratorGate is deliberately narrower than all of the above: a tiny +type/selection seam with no compute and minimal deps. If you need to run +work on a GPU, use the packages above; AcceleratorGate only helps a host +package *decide* and *describe* backends uniformly. + +== Installation + +[source,julia] +---- +using Pkg +Pkg.add(url="https://github.com/hyperpolymath/AcceleratorGate.jl") +---- + +== Usage + +[source,julia] +---- +using AcceleratorGate + +select_backend(:matmul, 1_000_000) # => JuliaBackend() (no accelerator present) +fits_on_device(JuliaBackend(), 10^6) # => false +estimate_cost(JuliaBackend(), :matmul, 1000) # => 1000.0 +detect_platform() # => PlatformInfo(:linux, :x86_64, false, false, false, v"1.12", 64, :little) +capability_report() # => Dict: platform, per-backend availability, strategy order +---- + +(Output above is from an actual run on a CPU-only Linux host with no +accelerators installed — backends report `+available+` `+⇒+` `+false+` +and selection falls back to `+JuliaBackend+`.) + +== License + +MPL-2.0 (OSI-approved). See `+LICENSE+`, `+LICENSES/MPL-2.0.txt+`, and +`+REUSE.toml+`. diff --git a/README.md b/README.md deleted file mode 100644 index cbdb3e5..0000000 --- a/README.md +++ /dev/null @@ -1,75 +0,0 @@ - - -Jonathan D.A. Jewell \<[j.d.a.jewell@open.ac](j.d.a.jewell@open.ac).uk\> -:toc: - -[![License: MPL-2.0](https://img.shields.io/badge/License-MPL--2.0-blue.svg)](https://www.mozilla.org/MPL/2.0/) - -# What this is - -AcceleratorGate.jl is a small, dependency-light **backend-selection -layer**: a type hierarchy of compute backends (`JuliaBackend`, -`CUDABackend`, `ROCmBackend`, `MetalBackend`, `TPUBackend`, -`NPUBackend`, `FPGABackend`, `QPUBackend`, `DSPBackend`, …), -environment-based availability detection, a platform probe, and a -heuristic `select_backend` / `estimate_cost` / `fits_on_device` API. - -It was extracted from `Axiom.jl`’s backend module to remove duplicated -selection logic shared by a few packages in the same author’s ecosystem. - -# What this is NOT (honest scope) - -It does **not** execute GPU/accelerator computation. It contains no -kernels and links no vendor runtimes. It is purely the **typing and -selection** layer — the decision "which backend should this run on, and -does it fit" — leaving execution to the real acceleration packages -below. - -# Prior art - -The Julia ecosystem already covers accelerated compute thoroughly: - -- **Actual acceleration**: `CUDA.jl`, `AMDGPU.jl`, `Metal.jl`, - `oneAPI.jl` — vendor GPU runtimes and kernels. - -- **Backend-agnostic kernels / array adaption**: - `KernelAbstractions.jl`, `GPUArrays.jl`, `Adapt.jl` — - write-once-run-on-any-backend kernels and array wrapping. These - overlap conceptually with AcceleratorGate’s selection idea and are - more mature for kernel portability. - -AcceleratorGate is deliberately narrower than all of the above: a tiny -type/selection seam with no compute and minimal deps. If you need to run -work on a GPU, use the packages above; AcceleratorGate only helps a host -package **decide** and **describe** backends uniformly. - -# Installation - -```julia -using Pkg -Pkg.add(url="https://github.com/hyperpolymath/AcceleratorGate.jl") -``` - -# Usage - -```julia -using AcceleratorGate - -select_backend(:matmul, 1_000_000) # => JuliaBackend() (no accelerator present) -fits_on_device(JuliaBackend(), 10^6) # => false -estimate_cost(JuliaBackend(), :matmul, 1000) # => 1000.0 -detect_platform() # => PlatformInfo(:linux, :x86_64, false, false, false, v"1.12", 64, :little) -capability_report() # => Dict: platform, per-backend availability, strategy order -``` - -(Output above is from an actual run on a CPU-only Linux host with no -accelerators installed — backends report `available` `⇒` `false` and -selection falls back to `JuliaBackend`.) - -# License - -MPL-2.0 (OSI-approved). See `LICENSE`, `LICENSES/MPL-2.0.txt`, and -`REUSE.toml`. diff --git a/REQUIRES_INITIALISATION.adoc b/REQUIRES_INITIALISATION.adoc new file mode 100644 index 0000000..88f764c --- /dev/null +++ b/REQUIRES_INITIALISATION.adoc @@ -0,0 +1,56 @@ +== REQUIRES INITIALISATION + +*This repository is not finished being set up.* 1 substitution token(s) +across 1 file(s) still have no value. + +=== Why this is not already done + +This repo was created from `+hyperpolymath/rsr-template-repo+`. The mint +(`+just repo-init+`) fills every token that has a single mechanical +answer — owner, repo, author, dates, licence, branch — and it has done +so here. + +The tokens below are the ones it _deliberately cannot_ answer. They need +a decision or a fact that exists only in your head: what this project is +for, what command builds it, which port the service listens on, whether +a PGP key is held at all. The template’s own token vocabulary says as +much — you cannot sensibly answer "`required invariants`" in a +thirty-second bootstrap. + +They were left *visibly unfilled on purpose*. The alternatives were both +worse: inventing plausible values would put confident falsehoods into a +security policy and an architecture document, and silently deleting the +sections would hide the fact that a decision is owed. A visible gap is +honest; a fabricated answer is not. + +=== Do not delete this file until every item below is resolved + +This file is the only marker that the work is outstanding. Deleting it +early does not finish the setup, it just conceals it — and the next +person or agent to arrive will reasonably assume the repo is complete. + +* *If you are a person:* delete this file yourself once the last item is +done. +* *If you are an agent:* resolve what you legitimately can, leave the +rest, and delete this file only when no token below remains anywhere in +the tree. Do not delete it to make a gate go green. + +Re-running the estate top-up tool will remove this file automatically +once nothing is outstanding, so the safest way to finish is to fix the +tokens and let the check confirm it. + +=== What is needed, and where it goes + +==== `+{{PROJECT_UNIQUE_STRENGTH}}+` + +What this does that its alternatives do not. + +Appears in: + +* `+.machine_readable/bot_directives/methodology.a2ml+` + +''''' + +Generated by the estate top-up pass. Rationale and the governing rulings +are in `+hyperpolymath/standards+`; the token vocabulary is +`+.machine_readable/ai/PLACEHOLDERS.adoc+` in `+rsr-template-repo+`. diff --git a/REQUIRES_INITIALISATION.md b/REQUIRES_INITIALISATION.md deleted file mode 100644 index 9f1a17e..0000000 --- a/REQUIRES_INITIALISATION.md +++ /dev/null @@ -1,54 +0,0 @@ - - -# REQUIRES INITIALISATION - -**This repository is not finished being set up.** 1 substitution token(s) across 1 file(s) still have no value. - -## Why this is not already done - -This repo was created from `hyperpolymath/rsr-template-repo`. The mint -(`just repo-init`) fills every token that has a single mechanical answer — -owner, repo, author, dates, licence, branch — and it has done so here. - -The tokens below are the ones it *deliberately cannot* answer. They need a -decision or a fact that exists only in your head: what this project is for, -what command builds it, which port the service listens on, whether a PGP key -is held at all. The template's own token vocabulary says as much — you cannot -sensibly answer "required invariants" in a thirty-second bootstrap. - -They were left **visibly unfilled on purpose**. The alternatives were both -worse: inventing plausible values would put confident falsehoods into a -security policy and an architecture document, and silently deleting the -sections would hide the fact that a decision is owed. A visible gap is -honest; a fabricated answer is not. - -## Do not delete this file until every item below is resolved - -This file is the only marker that the work is outstanding. Deleting it early -does not finish the setup, it just conceals it — and the next person or agent -to arrive will reasonably assume the repo is complete. - -- **If you are a person:** delete this file yourself once the last item is done. -- **If you are an agent:** resolve what you legitimately can, leave the rest, - and delete this file only when no token below remains anywhere in the tree. - Do not delete it to make a gate go green. - -Re-running the estate top-up tool will remove this file automatically once -nothing is outstanding, so the safest way to finish is to fix the tokens and -let the check confirm it. - -## What is needed, and where it goes - -### `{{PROJECT_UNIQUE_STRENGTH}}` - -What this does that its alternatives do not. - -Appears in: - -- `.machine_readable/bot_directives/methodology.a2ml` - ---- - -Generated by the estate top-up pass. Rationale and the governing rulings are -in `hyperpolymath/standards`; the token vocabulary is -`.machine_readable/ai/PLACEHOLDERS.adoc` in `rsr-template-repo`. diff --git a/SECURITY.adoc b/SECURITY.adoc new file mode 100644 index 0000000..e47fdd9 --- /dev/null +++ b/SECURITY.adoc @@ -0,0 +1,16 @@ +== Security Policy + +=== Reporting a Vulnerability + +If you discover a security vulnerability, please report it responsibly. + +*Email:* j.d.a.jewell@open.ac.uk + +*Please include:* - Description of the vulnerability - Steps to +reproduce - Potential impact + +*Response timeline:* - Acknowledgement within 48 hours - Initial +assessment within 7 days - Fix or mitigation within 90 days + +*Safe harbour:* We will not pursue legal action against security +researchers who follow responsible disclosure. diff --git a/SECURITY.md b/SECURITY.md deleted file mode 100644 index c7c239f..0000000 --- a/SECURITY.md +++ /dev/null @@ -1,23 +0,0 @@ - -# Security Policy - -## Reporting a Vulnerability - -If you discover a security vulnerability, please report it responsibly. - -**Email:** j.d.a.jewell@open.ac.uk - -**Please include:** -- Description of the vulnerability -- Steps to reproduce -- Potential impact - -**Response timeline:** -- Acknowledgement within 48 hours -- Initial assessment within 7 days -- Fix or mitigation within 90 days - -**Safe harbour:** We will not pursue legal action against security researchers who follow responsible disclosure. diff --git a/TEST-NEEDS.adoc b/TEST-NEEDS.adoc new file mode 100644 index 0000000..597a62d --- /dev/null +++ b/TEST-NEEDS.adoc @@ -0,0 +1,42 @@ +== TEST-NEEDS: AcceleratorGate.jl + +=== CRG Grade: C — ACHIEVED 2026-04-04 + +=== Current State + +[cols=",,",options="header",] +|=== +|Category |Count |Details +|*Source modules* |1 |826 lines +|*Test files* |1 |393 lines, 202 @test/@testset +|*Benchmarks* |0 |None +|*E2E tests* |0 |None +|=== + +=== What’s Missing + +==== Aspect Tests + +* [ ] *Performance*: Accelerator management with 0 benchmarks +* [ ] *Error handling*: No tests for hardware unavailability, driver +failures + +==== Benchmarks Needed + +* [ ] Accelerator dispatch latency +* [ ] Throughput under load + +=== FLAGGED ISSUES + +* *202 tests for 1 module* – excellent density +* *0 benchmarks* for performance-focused accelerator code + +=== Priority: P3 (LOW) – well tested, needs benchmarks + +=== FAKE-FUZZ ALERT + +* `+tests/fuzz/placeholder.txt+` is a scorecard placeholder inherited +from rsr-template-repo — it does NOT provide real fuzz testing +* Replace with an actual fuzz harness (see +rsr-template-repo/tests/fuzz/README.adoc) or remove the file +* Priority: P2 — creates false impression of fuzz coverage diff --git a/TEST-NEEDS.md b/TEST-NEEDS.md deleted file mode 100644 index 8045063..0000000 --- a/TEST-NEEDS.md +++ /dev/null @@ -1,38 +0,0 @@ - -# TEST-NEEDS: AcceleratorGate.jl - -## CRG Grade: C — ACHIEVED 2026-04-04 - -## Current State - -| Category | Count | Details | -|----------|-------|---------| -| **Source modules** | 1 | 826 lines | -| **Test files** | 1 | 393 lines, 202 @test/@testset | -| **Benchmarks** | 0 | None | -| **E2E tests** | 0 | None | - -## What's Missing - -### Aspect Tests -- [ ] **Performance**: Accelerator management with 0 benchmarks -- [ ] **Error handling**: No tests for hardware unavailability, driver failures - -### Benchmarks Needed -- [ ] Accelerator dispatch latency -- [ ] Throughput under load - -## FLAGGED ISSUES -- **202 tests for 1 module** -- excellent density -- **0 benchmarks** for performance-focused accelerator code - -## Priority: P3 (LOW) -- well tested, needs benchmarks - -## FAKE-FUZZ ALERT - -- `tests/fuzz/placeholder.txt` is a scorecard placeholder inherited from rsr-template-repo — it does NOT provide real fuzz testing -- Replace with an actual fuzz harness (see rsr-template-repo/tests/fuzz/README.adoc) or remove the file -- Priority: P2 — creates false impression of fuzz coverage diff --git a/TOPOLOGY.md b/TOPOLOGY.adoc similarity index 51% rename from TOPOLOGY.md rename to TOPOLOGY.adoc index 62272cf..b5d0a8b 100644 --- a/TOPOLOGY.md +++ b/TOPOLOGY.adoc @@ -1,18 +1,16 @@ - - +== TOPOLOGY.md — AcceleratorGate.jl -# TOPOLOGY.md — AcceleratorGate.jl +=== Purpose -## Purpose +Unified accelerator abstraction layer for Julia providing consistent +interface to GPU, TPU, NPU, FPGA, QPU, DSP, and other accelerators. +Enables transparent hardware acceleration across hyperpolymath Julia +packages via pluggable backend system with compile-time and runtime +device selection. -Unified accelerator abstraction layer for Julia providing consistent interface to GPU, TPU, NPU, FPGA, QPU, DSP, and other accelerators. Enables transparent hardware acceleration across hyperpolymath Julia packages via pluggable backend system with compile-time and runtime device selection. +=== Module Map -## Module Map - -``` +.... AcceleratorGate.jl/ ├── src/ # Julia package source │ ├── backends/ # Accelerator backend implementations @@ -23,21 +21,21 @@ AcceleratorGate.jl/ ├── examples/ # Integration examples ├── docs/ # API documentation └── Project.toml # Julia package manifest -``` +.... -## Data Flow +=== Data Flow -``` +.... [Julia Code] ──► [AcceleratorGate Dispatch] ──► [Backend Detection] ──► [Accelerator Kernel] ↓ [Device Memory] ──► [Result] -``` +.... -## Supported Accelerators +=== Supported Accelerators -- **GPU**: NVIDIA CUDA, AMD ROCm, Intel oneAPI -- **TPU**: Google TPU via JAX integration -- **NPU**: Qualcomm Hexagon, MediaTek APU -- **FPGA**: Xilinx, Intel Altera -- **QPU**: Quantum accelerators (integration with QuantumCircuit.jl) -- **DSP**: Specialized signal processing units +* *GPU*: NVIDIA CUDA, AMD ROCm, Intel oneAPI +* *TPU*: Google TPU via JAX integration +* *NPU*: Qualcomm Hexagon, MediaTek APU +* *FPGA*: Xilinx, Intel Altera +* *QPU*: Quantum accelerators (integration with QuantumCircuit.jl) +* *DSP*: Specialized signal processing units diff --git a/docs/berrywiki/ABI.adoc b/docs/berrywiki/ABI.adoc new file mode 100644 index 0000000..c42d921 --- /dev/null +++ b/docs/berrywiki/ABI.adoc @@ -0,0 +1,9 @@ +== ABI + +Stable Idris2-facing and Zig FFI layout rules. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/ABI.md b/docs/berrywiki/ABI.md deleted file mode 100644 index d759058..0000000 --- a/docs/berrywiki/ABI.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# ABI - -Stable Idris2-facing and Zig FFI layout rules. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Architecture.adoc b/docs/berrywiki/Architecture.adoc new file mode 100644 index 0000000..eb64cb3 --- /dev/null +++ b/docs/berrywiki/Architecture.adoc @@ -0,0 +1,9 @@ +== Architecture + +Boundaries, ownership, and data flow. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Architecture.md b/docs/berrywiki/Architecture.md deleted file mode 100644 index 62ebd2e..0000000 --- a/docs/berrywiki/Architecture.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Architecture - -Boundaries, ownership, and data flow. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Axiom-Kernels.adoc b/docs/berrywiki/Axiom-Kernels.adoc new file mode 100644 index 0000000..4964502 --- /dev/null +++ b/docs/berrywiki/Axiom-Kernels.adoc @@ -0,0 +1,9 @@ +== Axiom-Kernels + +Axiom-derived pointwise, binary, and attention coverage. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Axiom-Kernels.md b/docs/berrywiki/Axiom-Kernels.md deleted file mode 100644 index 1787574..0000000 --- a/docs/berrywiki/Axiom-Kernels.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Axiom-Kernels - -Axiom-derived pointwise, binary, and attention coverage. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Backends.adoc b/docs/berrywiki/Backends.adoc new file mode 100644 index 0000000..50f5f85 --- /dev/null +++ b/docs/berrywiki/Backends.adoc @@ -0,0 +1,9 @@ +== Backends + +Backend/provider registration and selection. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Backends.md b/docs/berrywiki/Backends.md deleted file mode 100644 index f441343..0000000 --- a/docs/berrywiki/Backends.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Backends - -Backend/provider registration and selection. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Evidence.adoc b/docs/berrywiki/Evidence.adoc new file mode 100644 index 0000000..3f6c8c0 --- /dev/null +++ b/docs/berrywiki/Evidence.adoc @@ -0,0 +1,9 @@ +== Evidence + +Capability and execution evidence requirements. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Evidence.md b/docs/berrywiki/Evidence.md deleted file mode 100644 index b4741e9..0000000 --- a/docs/berrywiki/Evidence.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Evidence - -Capability and execution evidence requirements. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Home.adoc b/docs/berrywiki/Home.adoc new file mode 100644 index 0000000..e3a2e97 --- /dev/null +++ b/docs/berrywiki/Home.adoc @@ -0,0 +1,9 @@ +== AcceleratorGate.jl + +Julia operation-first admission and evidence control plane. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +This BerryWiki notebook is the human-facing index; the repository’s +machine-readable state file is authoritative for automation. diff --git a/docs/berrywiki/Home.md b/docs/berrywiki/Home.md deleted file mode 100644 index 2984779..0000000 --- a/docs/berrywiki/Home.md +++ /dev/null @@ -1,19 +0,0 @@ - - -# AcceleratorGate.jl - -Julia operation-first admission and evidence control plane. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -This BerryWiki notebook is the human-facing index; the repository's machine-readable state file is authoritative for automation. - diff --git a/docs/berrywiki/Kernels.adoc b/docs/berrywiki/Kernels.adoc new file mode 100644 index 0000000..2630fbf --- /dev/null +++ b/docs/berrywiki/Kernels.adoc @@ -0,0 +1,9 @@ +== Kernels + +Kernel families, layouts, and numerical contracts. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Kernels.md b/docs/berrywiki/Kernels.md deleted file mode 100644 index 10d1c9d..0000000 --- a/docs/berrywiki/Kernels.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Kernels - -Kernel families, layouts, and numerical contracts. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Machine-Index.adoc b/docs/berrywiki/Machine-Index.adoc new file mode 100644 index 0000000..5f99b77 --- /dev/null +++ b/docs/berrywiki/Machine-Index.adoc @@ -0,0 +1,9 @@ +== Machine-Index + +Machine-readable inventory and automation entry point. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Machine-Index.md b/docs/berrywiki/Machine-Index.md deleted file mode 100644 index 650cba7..0000000 --- a/docs/berrywiki/Machine-Index.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Machine-Index - -Machine-readable inventory and automation entry point. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Operations.adoc b/docs/berrywiki/Operations.adoc new file mode 100644 index 0000000..93523e5 --- /dev/null +++ b/docs/berrywiki/Operations.adoc @@ -0,0 +1,9 @@ +== Operations + +Canonical operation names and request semantics. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Operations.md b/docs/berrywiki/Operations.md deleted file mode 100644 index 3d302ba..0000000 --- a/docs/berrywiki/Operations.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Operations - -Canonical operation names and request semantics. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Performance.adoc b/docs/berrywiki/Performance.adoc new file mode 100644 index 0000000..861d8fe --- /dev/null +++ b/docs/berrywiki/Performance.adoc @@ -0,0 +1,9 @@ +== Performance + +Benchmarking, determinism, and tuning guidance. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Performance.md b/docs/berrywiki/Performance.md deleted file mode 100644 index 0a25477..0000000 --- a/docs/berrywiki/Performance.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Performance - -Benchmarking, determinism, and tuning guidance. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Roadmap.adoc b/docs/berrywiki/Roadmap.adoc new file mode 100644 index 0000000..d158fb3 --- /dev/null +++ b/docs/berrywiki/Roadmap.adoc @@ -0,0 +1,9 @@ +== Roadmap + +Near-term implementation and admission milestones. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Roadmap.md b/docs/berrywiki/Roadmap.md deleted file mode 100644 index b0f0a31..0000000 --- a/docs/berrywiki/Roadmap.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Roadmap - -Near-term implementation and admission milestones. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Runtime.adoc b/docs/berrywiki/Runtime.adoc new file mode 100644 index 0000000..3d76e0b --- /dev/null +++ b/docs/berrywiki/Runtime.adoc @@ -0,0 +1,9 @@ +== Runtime + +Lifecycle, loading, and failure terminality. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Runtime.md b/docs/berrywiki/Runtime.md deleted file mode 100644 index 600f00f..0000000 --- a/docs/berrywiki/Runtime.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Runtime - -Lifecycle, loading, and failure terminality. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Security.adoc b/docs/berrywiki/Security.adoc new file mode 100644 index 0000000..ae2a266 --- /dev/null +++ b/docs/berrywiki/Security.adoc @@ -0,0 +1,9 @@ +== Security + +Trust boundaries, validation, and unsafe inputs. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Security.md b/docs/berrywiki/Security.md deleted file mode 100644 index b65d8f2..0000000 --- a/docs/berrywiki/Security.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Security - -Trust boundaries, validation, and unsafe inputs. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Simulation.adoc b/docs/berrywiki/Simulation.adoc new file mode 100644 index 0000000..bf1695a --- /dev/null +++ b/docs/berrywiki/Simulation.adoc @@ -0,0 +1,9 @@ +== Simulation + +Rules for simulation, refusal, and conformance claims. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Simulation.md b/docs/berrywiki/Simulation.md deleted file mode 100644 index 7628d31..0000000 --- a/docs/berrywiki/Simulation.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Simulation - -Rules for simulation, refusal, and conformance claims. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/Testing.adoc b/docs/berrywiki/Testing.adoc new file mode 100644 index 0000000..f4c565b --- /dev/null +++ b/docs/berrywiki/Testing.adoc @@ -0,0 +1,9 @@ +== Testing + +Local tests, integration tests, and acceptance gates. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/Testing.md b/docs/berrywiki/Testing.md deleted file mode 100644 index 9d751f0..0000000 --- a/docs/berrywiki/Testing.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# Testing - -Local tests, integration tests, and acceptance gates. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/UMS-Integration.adoc b/docs/berrywiki/UMS-Integration.adoc new file mode 100644 index 0000000..b620909 --- /dev/null +++ b/docs/berrywiki/UMS-Integration.adoc @@ -0,0 +1,9 @@ +== UMS-Integration + +How the universal model space contract is consumed. + +AcceleratorGate is the Julia-side policy plane: it chooses providers, +records evidence, and refuses unsupported or unauthorised simulation. + +See [[Home]] for the project boundary and the repository +machine-readable state for exact fields. diff --git a/docs/berrywiki/UMS-Integration.md b/docs/berrywiki/UMS-Integration.md deleted file mode 100644 index 7059d79..0000000 --- a/docs/berrywiki/UMS-Integration.md +++ /dev/null @@ -1,18 +0,0 @@ - - -# UMS-Integration - -How the universal model space contract is consumed. - -AcceleratorGate is the Julia-side policy plane: it chooses providers, records evidence, and refuses unsupported or unauthorised simulation. - -See [[Home]] for the project boundary and the repository machine-readable state for exact fields. diff --git a/docs/berrywiki/_Sidebar.adoc b/docs/berrywiki/_Sidebar.adoc new file mode 100644 index 0000000..8a2a98e --- /dev/null +++ b/docs/berrywiki/_Sidebar.adoc @@ -0,0 +1,18 @@ +== Notebook + +* link:Home[AcceleratorGate.jl] +* Architecture +* Operations +* Backends +* Kernels +* Evidence +* ABI +* UMS-Integration +* Simulation +* Axiom-Kernels +* Runtime +* Testing +* Security +* Performance +* Roadmap +* Machine-Index diff --git a/docs/berrywiki/_Sidebar.md b/docs/berrywiki/_Sidebar.md deleted file mode 100644 index a2eadce..0000000 --- a/docs/berrywiki/_Sidebar.md +++ /dev/null @@ -1,18 +0,0 @@ -# Notebook - -- [AcceleratorGate.jl](Home) -- [Architecture](Architecture) -- [Operations](Operations) -- [Backends](Backends) -- [Kernels](Kernels) -- [Evidence](Evidence) -- [ABI](ABI) -- [UMS-Integration](UMS-Integration) -- [Simulation](Simulation) -- [Axiom-Kernels](Axiom-Kernels) -- [Runtime](Runtime) -- [Testing](Testing) -- [Security](Security) -- [Performance](Performance) -- [Roadmap](Roadmap) -- [Machine-Index](Machine-Index)