From a19fd8b21c8e2788c63b57f5a0a4ad1c22eb22a6 Mon Sep 17 00:00:00 2001 From: Thomas Walker Lynch Date: Fri, 21 Nov 2025 10:37:07 +0000 Subject: [PATCH] consolidating docs --- developer/document/ontology.org | 74 +++------ .../tool}/check_algorithm.org | 0 .../tool}/check_algorithm_by_Caldrin.org | 0 .../01_Workflow_and_Build_Contract.org | 47 ++++++ .../02_RT_Code_Format.org} | 0 .../C => Harmony}/RT_C_control_structure.html | 0 .../C => Harmony}/RT_C_control_structure.org | 0 .../bash_name_of_script.txt | 0 .../naming => Harmony}/directory_naming.html | 0 document/{policy => Harmony}/emptydirs.md | 0 .../{recipes => Harmony}/install_Eclipse.txt | 0 .../{recipes => Harmony}/install_Emacs.txt | 0 .../install_IntelliJ_IDEA.txt | 0 .../{recipes => Harmony}/install_jdk-23.txt | 0 document/{policy => Harmony}/python_env.md | 0 .../{ => Harmony}/quick_start_developer.sh | 0 .../variable_suffix_conventions.txt | 0 document/Harmony_isntall.sh | 34 ---- document/authored_files.org | 30 ---- document/build_environmnt.org | 144 ----------------- .../bracketed_phrases_section.txt | 51 ------ document/conventions/Workflow.org | 86 ---------- document/conventions/directory_structure.org | 50 ------ .../Java/Java_import_as_alternative.txt | 33 ---- ...unning_IDE_and_jdb_in_test_environment.txt | 62 ------- document/conventions/release_howto.org | 1 - document/licenses/Apache_v2 | 152 ------------------ document/licenses/Confidential-Personal.txt | 25 --- document/licenses/Confidential-RT.txt | 26 --- document/licenses/Look-see.txt | 7 - document/licenses/MIT | 21 --- document/licenses/NoUse-Personal-ARR.txt | 24 --- document/licenses/NoUse-RT-ARR.txt | 18 --- document/licenses/Personal-NonCommercial.txt | 43 ----- document/licenses/RT-Commercial.txt | 31 ---- 35 files changed, 72 insertions(+), 887 deletions(-) rename {document => developer/tool}/check_algorithm.org (100%) rename {document => developer/tool}/check_algorithm_by_Caldrin.org (100%) create mode 100644 document/Harmony/01_Workflow_and_Build_Contract.org rename document/{conventions/RT_code_format/RT_code_format.org => Harmony/02_RT_Code_Format.org} (100%) rename document/{conventions/language-addenda/C => Harmony}/RT_C_control_structure.html (100%) rename document/{conventions/language-addenda/C => Harmony}/RT_C_control_structure.org (100%) rename document/{conventions/naming => Harmony}/bash_name_of_script.txt (100%) rename document/{conventions/naming => Harmony}/directory_naming.html (100%) rename document/{policy => Harmony}/emptydirs.md (100%) rename document/{recipes => Harmony}/install_Eclipse.txt (100%) rename document/{recipes => Harmony}/install_Emacs.txt (100%) rename document/{recipes => Harmony}/install_IntelliJ_IDEA.txt (100%) rename document/{recipes => Harmony}/install_jdk-23.txt (100%) rename document/{policy => Harmony}/python_env.md (100%) rename document/{ => Harmony}/quick_start_developer.sh (100%) rename document/{conventions/naming => Harmony}/variable_suffix_conventions.txt (100%) delete mode 100644 document/Harmony_isntall.sh delete mode 100644 document/authored_files.org delete mode 100644 document/build_environmnt.org delete mode 100644 document/conventions/RT_code_format/bracketed_phrases_section.txt delete mode 100644 document/conventions/Workflow.org delete mode 100644 document/conventions/directory_structure.org delete mode 100644 document/conventions/language-addenda/Java/Java_import_as_alternative.txt delete mode 100644 document/conventions/language-addenda/Java/running_IDE_and_jdb_in_test_environment.txt delete mode 100644 document/conventions/release_howto.org delete mode 100644 document/licenses/Apache_v2 delete mode 100644 document/licenses/Confidential-Personal.txt delete mode 100644 document/licenses/Confidential-RT.txt delete mode 100644 document/licenses/Look-see.txt delete mode 100644 document/licenses/MIT delete mode 100644 document/licenses/NoUse-Personal-ARR.txt delete mode 100644 document/licenses/NoUse-RT-ARR.txt delete mode 100644 document/licenses/Personal-NonCommercial.txt delete mode 100644 document/licenses/RT-Commercial.txt diff --git a/developer/document/ontology.org b/developer/document/ontology.org index f1aae70..a7a76a8 100644 --- a/developer/document/ontology.org +++ b/developer/document/ontology.org @@ -4,66 +4,42 @@ #+OPTIONS: toc:t num:nil * The Core Philosophy -This project moves away from "techno-idiosyncratic" directory names (like ~source~, ~bin~, or ~src~) in favor of names that describe the *fundamental invariants* of the files they contain. +This project distinguishes files based on fundamental **invariants** (properties) rather than arbitrary file types[cite: 889, 890]. This creates a clear semantic structure: +- **Provenance**: Who created this file? +- **Capability**: What is the file's primary function in the system? [cite: 890, 891] -We distinguish files based on two properties: -1. **Provenance**: Who created this file? -2. **Capability**: What can the system do with this file? - -**The Golden Rule:** -- **God, Artists, and SQL** (and Developers) *create* things. -- **Factories** (Build Systems) *make* things. +**The Golden Rule:** God and Artists (Developers) *create* things; Factories (Build Systems) *make* things[cite: 892]. * Directory Structure Overview #+BEGIN_SRC text developer/ -├── authored/ # (The Truth) Human-written code. -├── loadable/ # (The Entry Points) Script links & architecture-independent runners. -├── scratchpad/ -│ └── loadable/ # (The Heavy Machinery) Compiled binaries. Ignored by Git. -└── tool/ # (The Factory) Build scripts and orchestrators. +├── authored/ # (The Logic) Human-written source code. +├── loadable/ # (Capability) Agnostic Entry Points. +├── scratchpad/ # (Transient) Intermediates, Objects. +└── tool/ # (The Factory) Build scripts. + +release/ +├── loadable/ # (Capability) Shared, Agnostic Release Entry Points. +├── local_build/ # (Action/Locality) Architecture-specific binaries. #+END_SRC -* Detailed Definitions +* Detailed Invariants ** ~developer/authored/~ -This directory contains the *primary truth* of the project. -- **Invariant:** Every file here is written by a human author (the Artist). -- **Rule:** Build scripts generally have *read-only* access to this directory. They should never modify files here. -- **Contents:** C source files (~*.c~), Python modules (~*.py~), Header files (~*.h~). +- **Invariant:** Primary Logic Source (Code). Every file here is written by a human author[cite: 898, 899]. +- **Rule:** Scripts must treat this directory as read-only. This replaces the old `cc/` and `python3/` source directories. ** ~developer/loadable/~ -This directory contains the *entry points* for the system. -- **Invariant:** Files here possess the property of being "loadable" (runnable) by the user or the OS. -- **Contents:** - - Symlinks to interpreted code (e.g., links to ~../authored/CLI.py~). - - Shell wrappers. - - Architecture-independent runners. +- **Invariant:** Architecture-Agnostic Entry Points. Files here possess the property of being executable by the user[cite: 902]. +- **Contents:** Symlinks to interpreted code, shared scripts, and wrappers that are safe to commit[cite: 903]. ** ~developer/scratchpad/loadable/~ -This directory contains the *machine-generated* executables. -- **Invariant:** These files are derived/synthesized by the factory (Make). -- **Rule:** This directory is **ignored by Git**. It prevents binary blobs and architecture-specific files from polluting the repository. -- **Contents:** Compiled C binaries, object files, and temporary build artifacts. - -* Workflow Examples - -** Scenario A: Working with C (Compiled) -1. **Author:** You write ~my_program.c~ in ~developer/authored/~. -2. **Build:** You run ~tool/make~. -3. **Result:** The compiler reads ~authored/my_program.c~ and synthesizes a binary at ~developer/scratchpad/loadable/my_program~. - - *Note:* This binary is transient. If you delete ~scratchpad/~, it can be rebuilt. - -** Scenario B: Working with Python (Interpreted) -1. **Author:** You write ~my_script.CLI.py~ in ~developer/authored/~. -2. **Setup:** You (or a setup script) create a semantic link. -3. **Result:** A link exists at ~developer/loadable/my_script~ pointing to the authored file. - - *Note:* This makes the script "loadable" from the system path without moving the source of truth. - -* The Release Process -When the project is ready for distribution, the release script collects items from both sources: -- It takes the *logic* from ~authored~. -- It takes the *binaries* from ~scratchpad/loadable~. -- It places them into the final ~$REPO_HOME/release/~ sub directories for the end-user. -It is common that the developer customizes the release script. +- **Invariant:** Machine-Generated Executables (Intermediate). This is the transient output location during development[cite: 904]. +- **Rule:** This directory is **ignored by Git** and houses compiled binaries and libraries derived by the build system[cite: 905, 906]. + +** ~release/local_build/~ +- **Invariant:** Local Action Required. +- **Rule:** This directory is added to the `.gitignore` in the release directory. Its presence signals to a new developer: **"You must perform a local build to populate this directory with machine-specific executables."** +- **Contents:** Final binaries are copied here by the release script from the `scratchpad/`[cite: 915]. + < diff --git a/document/check_algorithm.org b/developer/tool/check_algorithm.org similarity index 100% rename from document/check_algorithm.org rename to developer/tool/check_algorithm.org diff --git a/document/check_algorithm_by_Caldrin.org b/developer/tool/check_algorithm_by_Caldrin.org similarity index 100% rename from document/check_algorithm_by_Caldrin.org rename to developer/tool/check_algorithm_by_Caldrin.org diff --git a/document/Harmony/01_Workflow_and_Build_Contract.org b/document/Harmony/01_Workflow_and_Build_Contract.org new file mode 100644 index 0000000..155da8c --- /dev/null +++ b/document/Harmony/01_Workflow_and_Build_Contract.org @@ -0,0 +1,47 @@ +#+TITLE: 01 - Workflow and Build Contract +#+AUTHOR: RT +#+OPTIONS: toc:2 num:nil + +* 1. Core Build Principles (The Contract) +This contract minimizes complexity and ensures reproducibility[cite: 1033]. + +** 1.1 Invariant: Read-Only Authored Trees +- **Authored Trees** (=developer/authored/=) are read-only to all scripts[cite: 1052]. +- **Write Area (SCRATCHPAD):** All synthesis, intermediates, binaries, and kbuild outputs must be directed to =developer/scratchpad/=[cite: 1035, 1052]. + +** 1.2 Orchestration +- **Invocation:** Builds are invoked from the =$REPO_HOME/developer= directory[cite: 1038]. +- **Public Targets:** The orchestrator (=developer/tool/makefile=) exposes the main targets (~all~, ~lib_cli~, ~kmod~, ~clean~)[cite: 1041]. Build domains (like ~target_lib_cli.mk~) are independent and reusable[cite: 1036]. + +** 1.3 Discovery +Artifacts are discovered automatically by suffix (e.g., ~*.lib.c~, ~*.cli.c~, ~*.mod.c~)[cite: 1034, 1049]. + +* 2. Project Roles and Workflow +The workflow is divided into small and big loops based on distinct roles[cite: 1302]. + +** 2.1 Roles +- **Developer:** Translates specs into code, evolving the =authored= tree[cite: 1307]. +- **Tester:** Runs the regression suite and verifies release candidates[cite: 1308, 1309]. +- **Toolsmith:** Maintains the skeleton and shared tools[cite: 1301]. +- **Project Manager:** Confirms readiness to cut a release branch[cite: 1312]. + +** 2.2 Release Flow (The Little Loop) +=$REPO_HOME/release= holds *current candidates under test*[cite: 1306]. Developers implement features and promote candidates for testers to exercise[cite: 1307, 1308]. + +** 2.3 The Big Loop (Release Branch) +When candidates are functional, a **release branch** (=release_v=) is cut from the =core_developer_branch=[cite: 1312]. Core development continues on the moving head[cite: 1324]. + +* 3. Release Promotion and Targets +Promotion is an **explicit copy step** (via the Python release script)[cite: 1076]. + +** 3.1 Source Targets (The Old Convention Update) +- Source files previously read from =developer/cc/=[cite: 1039, 1058]. +- **NEW SOURCE:** The build system now sources files from **=developer/authored/=**. + +** 3.2 Output Targets (The New Convention) +The release script must now reconcile the developer's output with the shared repository structure: + +| Content Type | Developer Origin | Release Target | Invariant | +| :--- | :--- | :--- | :--- | +| **Binaries/Kmod** | scratchpad/loadable | **release/local_build/** | Architecture-Specific, IGNORED | +| **Agnostic Scripts** | developer/loadable | **release/loadable/** | Shared, TRACKED | diff --git a/document/conventions/RT_code_format/RT_code_format.org b/document/Harmony/02_RT_Code_Format.org similarity index 100% rename from document/conventions/RT_code_format/RT_code_format.org rename to document/Harmony/02_RT_Code_Format.org diff --git a/document/conventions/language-addenda/C/RT_C_control_structure.html b/document/Harmony/RT_C_control_structure.html similarity index 100% rename from document/conventions/language-addenda/C/RT_C_control_structure.html rename to document/Harmony/RT_C_control_structure.html diff --git a/document/conventions/language-addenda/C/RT_C_control_structure.org b/document/Harmony/RT_C_control_structure.org similarity index 100% rename from document/conventions/language-addenda/C/RT_C_control_structure.org rename to document/Harmony/RT_C_control_structure.org diff --git a/document/conventions/naming/bash_name_of_script.txt b/document/Harmony/bash_name_of_script.txt similarity index 100% rename from document/conventions/naming/bash_name_of_script.txt rename to document/Harmony/bash_name_of_script.txt diff --git a/document/conventions/naming/directory_naming.html b/document/Harmony/directory_naming.html similarity index 100% rename from document/conventions/naming/directory_naming.html rename to document/Harmony/directory_naming.html diff --git a/document/policy/emptydirs.md b/document/Harmony/emptydirs.md similarity index 100% rename from document/policy/emptydirs.md rename to document/Harmony/emptydirs.md diff --git a/document/recipes/install_Eclipse.txt b/document/Harmony/install_Eclipse.txt similarity index 100% rename from document/recipes/install_Eclipse.txt rename to document/Harmony/install_Eclipse.txt diff --git a/document/recipes/install_Emacs.txt b/document/Harmony/install_Emacs.txt similarity index 100% rename from document/recipes/install_Emacs.txt rename to document/Harmony/install_Emacs.txt diff --git a/document/recipes/install_IntelliJ_IDEA.txt b/document/Harmony/install_IntelliJ_IDEA.txt similarity index 100% rename from document/recipes/install_IntelliJ_IDEA.txt rename to document/Harmony/install_IntelliJ_IDEA.txt diff --git a/document/recipes/install_jdk-23.txt b/document/Harmony/install_jdk-23.txt similarity index 100% rename from document/recipes/install_jdk-23.txt rename to document/Harmony/install_jdk-23.txt diff --git a/document/policy/python_env.md b/document/Harmony/python_env.md similarity index 100% rename from document/policy/python_env.md rename to document/Harmony/python_env.md diff --git a/document/quick_start_developer.sh b/document/Harmony/quick_start_developer.sh similarity index 100% rename from document/quick_start_developer.sh rename to document/Harmony/quick_start_developer.sh diff --git a/document/conventions/naming/variable_suffix_conventions.txt b/document/Harmony/variable_suffix_conventions.txt similarity index 100% rename from document/conventions/naming/variable_suffix_conventions.txt rename to document/Harmony/variable_suffix_conventions.txt diff --git a/document/Harmony_isntall.sh b/document/Harmony_isntall.sh deleted file mode 100644 index 834e30d..0000000 --- a/document/Harmony_isntall.sh +++ /dev/null @@ -1,34 +0,0 @@ -#!/usr/bin/env bash -# template for script for creating a new project based on the Harmony skeleton -set -x - -# Edit and set these variables -# - # 1. URL or path of Harmony skeleton - harmony_repo_url="" - - # 2. project name - project_dname="" - - initial_commit_message="Initial commit derived from the Harmony skeleton" - -# Creates the project -# - git clone "$harmony_repo_url" "$project_dname" - if [ $? -ne 0 ]; then - echo "ERROR: Cloning failed. Check harmony_repo_url." - exit 1 - fi - cd "$project_dname" - - # Discard Harmony version history - rm -rf .git - git init - - # Set the default branch name - git checkout -b core_developer_branch - -# Initial Commit -# - git add . - git commit -m "$initial_commit_message" diff --git a/document/authored_files.org b/document/authored_files.org deleted file mode 100644 index 33fd304..0000000 --- a/document/authored_files.org +++ /dev/null @@ -1,30 +0,0 @@ - -1. Authored - - An authored file is one that is not to be edited by build scripts. Scripts should - treat them as read only. - - An authored directory is one where the contained files in the directory subtree - are considered to be authored files. - -2. First implementation now deprecated. - - Authored directories had a `🖉` character as the last character of their names. - - Files were considered to be authored if they were in an authored directory, or anywhere - in its subtree. Or if the file name had a `🖉` character as the last character of its name. - - Then the `rm_na` command was used in scripts. This version of `rm` would refuse to delete authored files. - - This approach had two drawbacks. Some tools still have difficulty with such Unicode characters, and many keyboard entry interfaces and editors provide no means for entering them. Secondly, `rm_na` does not enforce read-only semantics, rather it merely prevents deletion. - - As a result, the pencil characters and `rm_na` have been removed from the RT workflow. - -3. Status quo - - Read-only authored directories and files are planned to come back through another implementation, see point 4. In the meantime, we keep them as a contract with developers. Document, source, and executable directories are authored. Script driven synthesis and editing work is done in the `scratchpad` directories. The `scratchpad` directory contents is gitignored. - -4. The planned implementation. - - When the `subu` system reaches a production version, it will be used to create a sub user for the developer called 'builder'. The developer can then set file permissions for builder. - diff --git a/document/build_environmnt.org b/document/build_environmnt.org deleted file mode 100644 index 81d96a1..0000000 --- a/document/build_environmnt.org +++ /dev/null @@ -1,144 +0,0 @@ -#+TITLE: RT Harmony Build Environment (Orchestrator + Build Domains: lib_cli, kmod) -#+OPTIONS: toc:nil - -* 0. Scope -A concise contract for building user-space artifacts (static libraries + CLI executables) and Linux kernel modules (out-of-tree, *.ko) in one repo without target collisions. Authored sources remain read-only; all synthesis happens in ~scratchpad/~. A small, stable public interface is exposed via an orchestrator Makefile. - -* 1. Core Principles -1.1 Minimize complexity (YAGNI): one happy path; branch only when mandated. -1.2 Variable-driven config: the project declares *what*; domain makefiles define *how*. -1.3 Automatic discovery by suffix: ~*.lib.c~, ~*.cli.c~, ~*.mod.c~; never hard-code basenames. -1.4 Authored trees are read-only to scripts; writes go to ~scratchpad/~. -1.5 Build domains are independent and reusable; orchestration is via separate ~make -f~ calls. - -* 2. Repo Layout, Authority, and Skeleton -2.1 =REPO_HOME= is exported by the environment and is the authoritative project root. -2.2 Build is invoked from =$REPO_HOME/developer=. -2.3 Domain makefiles are vendored under: - =$(REPO_HOME)/tool_shared/third_party/RT-project-share/release/make/= -2.4 Directory semantics: - 2.4.1 =developer/cc/= **authored** C sources (read-only to scripts). - 2.4.2 =developer/scratchpad/= **SCRATCHPAD** (intermediates, depfiles, kbuild outputs, CLI binaries). - 2.4.3 =release/= publish area (e.g., =release/machine= for executables, =release/module= for *.ko). -2.5 Harmony skeleton invariants: the skeleton pre-creates the standard tree; recipes may assume directories exist. - -* 3. Build Domains & Files -3.1 Orchestrator (project-local): =developer/tool/makefile= - - Public targets: ~all~, ~lib_cli~, ~kmod~, ~clean~ (~usage~ optional; ~all~ is first). - - Includes =environment_RT_1.mk= and invokes domain makefiles via ~make -f~. -3.2 Domain: user-space → =target_lib_cli.mk= - - Builds static lib from ~*.lib.c~ and CLI executables from ~*.cli.c~. - - Public targets: ~library~, ~cli~, ~clean~. ~cli~ depends on ~library~. -3.3 Domain: kernel modules → =target_kmod.mk= - - Builds out-of-tree modules (~.ko~) from ~*.mod.c~ using Kbuild. - - Public targets: ~kmod~, ~clean~. - -* 4. Public-Target Orchestration (strict) -4.1 The orchestrator owns public targets and their order. Domains expose callable targets but are not public entrypoints. -4.2 Shape: -#+BEGIN_SRC makefile -RT_INCOMMON := $(REPO_HOME)/tool_shared/third_party/RT-project-share/release -include $(RT_INCOMMON)/make/environment_RT_1.mk - -.PHONY: all lib_cli kmod clean -all: lib_cli kmod - -lib_cli: - @$(MAKE) -f $(RT_INCOMMON)/make/target_lib_cli.mk cli - -kmod: - @$(MAKE) -f $(RT_INCOMMON)/make/target_kmod.mk kmod - -clean: - @$(MAKE) -f $(RT_INCOMMON)/make/target_lib_cli.mk clean - @$(MAKE) -f $(RT_INCOMMON)/make/target_kmod.mk clean -#+END_SRC -4.3 Result: no target collisions. ~all~ remains the single happy path. - -* 5. Discovery & Suffix Contract -5.1 Suffixes define intent: - 5.1.1 ~*.lib.c~ → compiled into a static archive. - 5.1.2 ~*.cli.c~ → linked into CLI executables. - 5.1.3 ~*.mod.c~ → compiled via Kbuild into ~.ko~. -5.2 Discovery is implemented in the domain makefiles; the orchestrator can optionally export a filtered list but domains must work without it. - -* 6. Authored vs Write Areas -6.1 **Authored** (=developer/cc/= and other documented trees): tools never write into authored trees. -6.2 **SCRATCHPAD** (=developer/scratchpad/=): all intermediates, depfiles, CLI binaries, and kbuild outputs (~.ko~). -6.3 **release/**: explicit promotion target. Nothing writes here during build; only an explicit release step copies from ~developer/scratchpad/~. - -* 7. Dependencies -7.1 User-space: ~CFLAGS += -MMD -MP~ with per-object depfiles included. -7.2 Depfiles live beside objects in ~developer/scratchpad/~ and are removed by ~clean~. -7.3 No separate “make dependency” step. -7.4 Kbuild manages kernel deps internally. - -* 8. Kbuild Integration (kmod) -8.1 Kbuild interface: =/lib/modules/$(uname -r)/build= (kernel headers/devel tree). -8.2 All Kbuild artifacts are directed to the project SCRATCHPAD: - ~KBUILD_OUTPUT_DIR := $(CURDIR)/$(SCRATCHPAD)~. -8.3 Shape: -#+BEGIN_SRC makefile -ifndef REPO_HOME - $(error REPO_HOME is not set; build must be done in a project environment) -endif -KBUILD_BASE_List := $(basename $(notdir $(wildcard $(REPO_HOME)/developer/cc/*.mod.c))) -KMOD_BUILD_DPath := /lib/modules/$(shell uname -r)/build -KBUILD_OUTPUT_DIR := $(CURDIR)/$(SCRATCHPAD) - -KERNEL_OBJS_M := $(addsuffix .o,$(KBUILD_BASE_List)) -KMOD_TARGETS := $(addsuffix .ko,$(addprefix $(KBUILD_OUTPUT_DIR)/,$(KBUILD_BASE_List))) - -.PHONY: kmod clean -kmod: $(KMOD_TARGETS) - -$(KBUILD_OUTPUT_DIR)/%.c: $(REPO_HOME)/developer/cc/%.mod.c - cp $< $@ - -$(KBUILD_OUTPUT_DIR)/%.ko: $(KBUILD_OUTPUT_DIR)/%.c - $(MAKE) -C $(KMOD_BUILD_DPath) M=$(REPO_HOME) O=$(KBUILD_OUTPUT_DIR) obj-m=$*.o - -clean: - $(MAKE) -C $(KMOD_BUILD_DPath) M=$(REPO_HOME) O=$(KBUILD_OUTPUT_DIR) obj-m="$(KERNEL_OBJS_M)" clean -#+END_SRC - -* 9. User-Space Domain (lib + CLI) -9.1 Domain name: =target_lib_cli.mk=. -9.2 Shape: -#+BEGIN_SRC makefile -# Scan *.lib.c / *.cli.c; derive OBJECT_LIB / OBJECT_EXEC under $(SCRATCHPAD) -# -include $(OBJECT_LIB:.o=.d) $(OBJECT_EXEC:.o=.d) -# library: builds $(LIBFILE) from OBJECT_LIB (empty archive OK) -# cli: depends on $(LIBFILE); links each $(EXECDIR)/% from %.cli.o + $(LIBFILE) -# With EXECDIR := $(SCRATCHPAD), CLIs land in developer/scratchpad/ -#+END_SRC - -* 10. Variable Conventions -10.1 Export-worthy variables in ALL_CAPS. -10.2 Do not assign to =REPO_HOME= in Makefiles. -10.3 Canonical scratch directory variable: =SCRATCHPAD=. -10.4 Prefer explicit paths (e.g., link with ~$(LIBFILE)~) unless you require ~-L/-l~ naming. - -* 11. Usage & Defaults -11.1 Domain makefiles may expose ~usage~ as the first target for direct calls. -11.2 Orchestrator keeps ~all~ as the first target (so ~make~ “just works”). -11.3 Skip-if-empty logic is not required; empty prereq lists no-op naturally. -11.4 Optional diagnostic: ~check-pwd~ can warn if ~$(CURDIR) ≠ $(REPO_HOME)/developer~. - -* 12. Release Conventions -12.1 Build outputs (CLIs and ~.ko~) remain in ~developer/scratchpad/~. -12.2 Promotion is explicit: copy **as-is** into ~release/machine~ (executables) or ~release/module~ (kernel modules). -12.3 No arch suffixing at build time; no per-arch subdirs; no symlinks. - -* 13. Alternatives considered (and why not chosen) -13.1 **Script adds arch suffix at release time:** Needs to “guess” artifact identity and build arch; risks drift if build host ≠ release host. -13.2 **Make target adds arch suffix at build time:** Hard-codes basename rules or requires extra metadata; increases cognitive load for developers. -13.3 **Per-arch release trees + symlinks:** Adds directory sprawl and symlink churn; complicates diffs and reviews. -13.4 **Chosen:** local build/use + explicit promotion. It is the least complex, avoids mismatch hazards, and keeps authored trees clean. Artifacts are reproducible from sources; release is a conscious, auditable copy. - -* 14. Summary (Do / Don’t) -14.1 Do keep domains independent; orchestrator stitches them via ~make -f~. -14.2 Do derive *what to build* from suffixes; don’t hard-code filenames. -14.3 Do confine writes to ~developer/scratchpad/~; never write in authored trees. -14.4 Don’t auto-publish; use explicit promotion to ~release/~. -14.5 Harmony skeleton pre-creates the standard tree; recipes may assume directories exist. diff --git a/document/conventions/RT_code_format/bracketed_phrases_section.txt b/document/conventions/RT_code_format/bracketed_phrases_section.txt deleted file mode 100644 index 295a3fa..0000000 --- a/document/conventions/RT_code_format/bracketed_phrases_section.txt +++ /dev/null @@ -1,51 +0,0 @@ -* Bracketed Phrases - -In token processing, a *bracketed phrase* is the text starting from an opening bracket up to its matching closing bracket, including both brackets. We treat any of `(...)`, `{...}`, `[...]`, or `<...>` as “brackets”. Bracketed phrases are detected purely at the token level—no higher-level grammar or semantics are considered. - -** Examples -- **`if(x){...}` vs. `f(x){...}`** - Both share the same token-level structure: an identifier followed by `(x)` and then `{...}`. -- **`sin(3x)`** - Has one bracketed phrase `(3x)`, where `3x` is the “contents” and `()` is the “container.” - -** Nesting - -1. **Innermost Bracketed Phrase** - Contains *no other* bracketed phrase inside it. Due to adjacency, multiple innermost bracketed phrases can occur. - -2. **Outermost Bracketed Phrase** - An outermost bracketed phrase is one that is not itself contained in any other bracketed phrase. - -3. **Contained (Inner) Bracketed Phrase** - A bracketed phrase located within the contents of another bracketed phrase (the *outer* one). - -4. **Bracketed Phrase with Nesting** - A bracketed phrase that contains one or more bracketed phrases. - - A bracketed phrase is “with nesting” only if it contains at least one inner bracketed phrase. In other words, non-quoted bracket punctuated phrases occurs inside the contents — not just commas or other punctuation. - - -**Examples** -In `sin(f(x) + (a))`, the phrase `(x)` is contained in `(f(x) (a))`, which in turn is contained in `sin(...)`. `(a) is also contained in`(f(x) (a))`. `(x)` is innermost. -`(a)` is also innermost. - -**Open Bracketed Phrases - -A bracketed phrase is **open** if it’s missing a matching opening or closing bracket. - -- **Open on the Right**: Has unmatched opening brackets (e.g., `(` but no `)`). -- **Open on the Left**: Has unmatched closing brackets (e.g., `)` but no preceding `(`). - -** 1D Box Analogy - -Think of each bracketed phrase like a **1D CSS box**: - -- The **opening and closing brackets** are the “borders.” -- **Margin (outside)**: By default, bracketed phrases have *no extra spacing* around their borders—unless another rule (like an operator or adjacent token) requires space. - Example: `f()()` is valid with no space, but `f () ()` is not. -- **Padding (inside)**: If a bracketed phrase is both - 1) outermost on a line, - 2) has nesting, - 3) and is not a Lisp s-expression, - then place **one space** immediately after the opening bracket and **one space** before the closing bracket. - diff --git a/document/conventions/Workflow.org b/document/conventions/Workflow.org deleted file mode 100644 index 7918ae4..0000000 --- a/document/conventions/Workflow.org +++ /dev/null @@ -1,86 +0,0 @@ -#+TITLE: RT Project Workflow (Spartan) -#+AUTHOR: RT -#+OPTIONS: toc:2 num:nil - -* Purpose -Lightweight workflow for RT projects using the Harmony skeleton. Roles are simple; releases are branches. Keep friction low so we can ship. - -* Roles -** 1) Toolsmith -- Sets up the skeleton -- Populates shared tools -- Maintains those tools - -** 2) Developer -- Translates the spec into code -- Evolves the code iteratively - -** 3) Tester -- Writes unit tests for small functions -- Writes integration tests -- Assembles and runs the regression suite -- *Policy:* every reported bug gains a test in the regression suite - -** 4) Project Manager -- Aligns on “what is working and how well” -- Confirms readiness to cut a release branch (with the team) - -* How to enter the project -1) =cd= to the project root -2) Source the proper environment (e.g., =. env_developer=) -3) Run tools *inside that environment* - -* Release flow -** The little loop -The =core_developer_branch= is the moving head under active development. - -- =\$REPO_HOME/release= holds *current candidates under test* (convenience staging). -- Loop: - 1. Architect and PM, maintain the “required + desired” feature manifest. - 2. Architect sketches the outline (expect it to evolve). - 3. Developers implement features. - 4. Developers drop candidates into =$REPO_HOME/release=. - 5. Tester exercises candidates, files bugs, and adds tests to the regression suite. - 6. Developers address issues and produce new candidates. - 7. Repeat until candidates are sufficiently functional and reliable. - -Developers may keep personal experiments under =developer/=. These are not written for repeatability like tests; though they might seed future tests. - -** The big loop -When candidates in =$REPO_HOME/release= are sufficiently functional and stable—and the PM agrees on “what is working and how well”—*cut a release branch*. - -- *Name*: =release_v= where =n= is the next consecutive integer (starting at 1). -- *Create*: - #+begin_src sh - git checkout core_developer_branch - git pull --ff-only - git branch release_v3 - git push reasoning_repo release_v3 - git push github_repo release_v3 - #+end_src -- After this, the release branch “takes on its own life.” - -If a non-urgent bug is found on the shipped line: -- Fix it on =core_developer_branch= for the next release (backport to the release if truly needed). -- Due to the bug getting a regression test, the core developers will not forget it. - -If an urgent fix is needed on the shipped line: -- Apply the fix on =release_v=, then cut =release_v= where =m= is the next consecutive modification number (starting at 1). -- As always, *add a regression test* for the bug. - -* Deprecation -New major releases *deprecate prior releases*. Maintainers decide any support window. - -* Do / Don’t -- *Do*: fast-forward pulls on release branches; keep history linear. -- *Do*: keep fixes small and targeted. -- *Don’t*: rebase release branches. -- *Don’t*: routinely merge the moving core branch into a release line. - -* Notes -- Tags are not required in this spartan flow (use only if your distribution channel needs them). -- Consider server-side protection on =release_v*= branches to prevent force-pushes. -- Typical remotes: =reasoning_repo= (internal) and =github_repo= (GitHub). Substitute if yours differ. - -* One-liner mental model -Core keeps moving; releases branch off and live their own lives. If everyone uses Harmony, we all live in peace. :) diff --git a/document/conventions/directory_structure.org b/document/conventions/directory_structure.org deleted file mode 100644 index a3aad7b..0000000 --- a/document/conventions/directory_structure.org +++ /dev/null @@ -1,50 +0,0 @@ -* Project Directory Structure - This document explains the naming conventions and layout of the project files. - -** 1. Top-Level Directory (`Harmony/`) - - aka `$REPO_HOME`, managed by the project administrator. - -** 2. Developer Workspace (`Harmony/developer/`) - - Contains source code, build scripts, and development tools. - - - **Subdirectories:** - - `deprecated/` :: Contains old or refactored files. - - `document/` :: Developer-specific documentation. - - `javac/` :: Java source code. - - `jvm/` :: Compiled Java bytecode (JARs, class files). - - `scratchpad/` :: Temporary workspace for builds. - - `shell/` :: Executable scripts. - - `tool/` :: Development utilities. - -** 3. Testing Workspace (`Harmony/tester/`) - - Contains test benches, test scripts, and test documentation. - - - **Subdirectories:** - - `document/` :: Documentation related to testing. - - `javac/` :: Java-based test sources. - - `tool/` :: Utilities for testing. - -** 4. General Documentation (`Harmony/document/`) - - Contains overall project documentation. - -** 5. Release Directory (`Harmony/release/`) - - The release candidate directory before finalization. - -** 6. Shared Tools (`Harmony/tool_shared/`) - - Tools shared across different roles. - - - **Subdirectories:** - - `bespoke/` :: Custom-built project tools. - - `customized/` :: Modified third-party tools. - - `document/` :: Tool-related documentation. - - `third_party/` :: Unmodified third-party tools. - -** 7. Other Files - - `LICENSE.txt` :: Project licensing information. - - `README.md` :: Project introduction. - -** 8. Naming Conventions - - Directory names are chosen based on logical properties. - - For example, `developer/` contains files *for* the developer. - - Plural names are generally avoided unless necessary. - - This system minimizes ambiguity and helps developers understand structure intuitively. diff --git a/document/conventions/language-addenda/Java/Java_import_as_alternative.txt b/document/conventions/language-addenda/Java/Java_import_as_alternative.txt deleted file mode 100644 index f0e69a8..0000000 --- a/document/conventions/language-addenda/Java/Java_import_as_alternative.txt +++ /dev/null @@ -1,33 +0,0 @@ -Java has long been criticized for its lack of support for `import as`, despite -years of requests and proposals. - -The Java platform’s approach to aliasing issues relies on using fully qualified -names, which poses challenges given the length of package names, especially when -they include reversed domain names. - -Because `Harmony` is used to help with testing and is not part of the project -being tested, when aliasing conflicts arise, it is typically the `Harmony` identifiers -that need to be fully qualified. Such a renamed identifier can exceed 34 -characters! - -One proposal to get around this was to use an `In` class where the members were -class extensions of imported classes. Then all imports would have the prefix `In.`. -However, this did not work out because constructors are not -inherited, and Java’s restrictions on `final` classes prevent the use of -`LocalClass extends ImportClass {}` to give no names to classes. - -Another proposal was to use the `alias` project on GitHub, which offers an XML-based -approach to aliasing. However, it introduces complexities, as it requires XML -configurations to be supplied to the compiler, adding setup overhead. Perhaps -another tool could create these. - -We studied a preprocessing proposal where `import as` statements would be -replaced with fully qualified names before compilation. However, this approach -changes the tool flow for users and would require additional steps to ensure -`jdb` points to the original source files rather than intermediate files, which -complicates debugging. For both this proposal and the prior, we wanted to avoid -joining the world of java tool development. - -So we have a simple solution, it is not ideal, but it is not bad. We prefix -the string `Mosaic_` to the front of all the class names in the Harmony library. -As a shop we are adopting this convention for all packaged java code. diff --git a/document/conventions/language-addenda/Java/running_IDE_and_jdb_in_test_environment.txt b/document/conventions/language-addenda/Java/running_IDE_and_jdb_in_test_environment.txt deleted file mode 100644 index 80bb2c2..0000000 --- a/document/conventions/language-addenda/Java/running_IDE_and_jdb_in_test_environment.txt +++ /dev/null @@ -1,62 +0,0 @@ - -This document describes how to run jdb in the test environment while also viewing source code. - -This is written relative to the Harmony project, but is generally applicable. - -It shows invocation from a shell, and mentions emacs, but it is generally -understood that users will do this from within their favorite IDE. - -In addition a reader can read this document for some general principles. - -1. setting the environment - - The environment should be set before running the IDE. For example, - - > cd Harmony - > source env_tester - > emacs & - - (I use emacs as my IDE. You might be using a different tool.) - -2. location of the executable - - Provided that the project administrator installed it, jdb is located in the - third_party tools directory. In the tester environment the variable - `JAVA_HOME` should hold the jdb directory path, and this should already - be in the `PATH`. For example: - - > echo $ENV - tester/tool/env - - > echo $JAVA_HOME - /var/user_data/Thomas-developer/Harmony/tool_shared/third_party/jdk-11 - - > which jdb - /var/user_data/Thomas-developer/Harmony/tool_shared/third_party/jdk-11/bin/jdb - -3. invocation from a shell command: - - jdb -sourcepath $SOURCEPATH - - The `SOURCEPATH` is assigned a value in `tester/tool/env`. In some versions - of jdb there is no space between `-sourcepath` and the `$SOURCDEPATH`. - - jdb will read CLASSPATH from the environment. In contrast jdb will not read - `SOURCEPATH` from the environment. It must be passed as an argument. - - There is a `run_jdb` script in the `tool` directory. - -4. invocation inside of Emacs - - The file found in the RT-incommon project, developer/release/emacs/jdbx.el` holds a - definition for the `jdbx` command. This command will read the SOURCEPATH - from the environment and run jdb in Emacs. - - That file also holds the definition for a listener to the jdb `sourcepath` - command. - - - - - - diff --git a/document/conventions/release_howto.org b/document/conventions/release_howto.org deleted file mode 100644 index c4ebedc..0000000 --- a/document/conventions/release_howto.org +++ /dev/null @@ -1 +0,0 @@ -See 'workflow.org' diff --git a/document/licenses/Apache_v2 b/document/licenses/Apache_v2 deleted file mode 100644 index e177f6f..0000000 --- a/document/licenses/Apache_v2 +++ /dev/null @@ -1,152 +0,0 @@ -Apache License -Version 2.0, January 2004 -http://www.apache.org/licenses/ - -TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION - -1. Definitions. - -"License" shall mean the terms and conditions for use, reproduction, and -distribution as defined by Sections 1 through 9 of this document. - -"Licensor" shall mean the copyright owner or entity authorized by the copyright -owner that is granting the License. - -"Legal Entity" shall mean the union of the acting entity and all other entities -that control, are controlled by, or are under common control with that -entity. For the purposes of this definition, "control" means (i) the power, -direct or indirect, to cause the direction or management of such entity, whether -by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of -the outstanding shares, or (iii) beneficial ownership of such entity. - -"You" (or "Your") shall mean an individual or Legal Entity exercising -permissions granted by this License. - -"Source" form shall mean the preferred form for making modifications, including -but not limited to software source code, documentation source, and configuration -files. - -"Object" form shall mean any form resulting from mechanical transformation or -translation of a Source form, including but not limited to compiled object code, -generated documentation, and conversions to other media types. - -"Work" shall mean the work of authorship, whether in Source or Object form, made -available under the License, as indicated by a copyright notice that is included -in or attached to the work (an example is provided in the Appendix below). - -"Derivative Works" shall mean any work, whether in Source or Object form, that -is based on (or derived from) the Work and for which the editorial revisions, -annotations, elaborations, or other modifications represent, as a whole, an -original work of authorship. For the purposes of this License, Derivative Works -shall not include works that remain separable from, or merely link (or bind by -name) to the interfaces of, the Work and Derivative Works thereof. - -"Contribution" shall mean any work of authorship, including the original version -of the Work and any modifications or additions to that Work or Derivative Works -thereof, that is intentionally submitted to Licensor for inclusion in the Work -by the copyright owner or by an individual or Legal Entity authorized to submit -on behalf of the copyright owner. For the purposes of this definition, -"submitted" means any form of electronic, verbal, or written communication sent -to the Licensor or its representatives, including but not limited to -communication on electronic mailing lists, source code control systems, and -issue tracking systems that are managed by, or on behalf of, the Licensor for -the purpose of discussing and improving the Work, but excluding communication -that is conspicuously marked or otherwise designated in writing by the copyright -owner as "Not a Contribution." - -"Contributor" shall mean Licensor and any individual or Legal Entity on behalf -of whom a Contribution has been received by Licensor and subsequently -incorporated within the Work. - -2. Grant of Copyright License. Subject to the terms and conditions of this -License, each Contributor hereby grants to You a perpetual, worldwide, -non-exclusive, no-charge, royalty-free, irrevocable copyright license to -reproduce, prepare Derivative Works of, publicly display, publicly perform, -sublicense, and distribute the Work and such Derivative Works in Source or -Object form. - -3. Grant of Patent License. Subject to the terms and conditions of this License, -each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, -no-charge, royalty-free, irrevocable (except as stated in this section) patent -license to make, have made, use, offer to sell, sell, import, and otherwise -transfer the Work, where such license applies only to those patent claims -licensable by such Contributor that are necessarily infringed by their -Contribution(s) alone or by combination of their Contribution(s) with the Work -to which such Contribution(s) was submitted. If You institute patent litigation -against any entity (including a cross-claim or counterclaim in a lawsuit) -alleging that the Work or a Contribution incorporated within the Work -constitutes direct or contributory patent infringement, then any patent licenses -granted to You under this License for that Work shall terminate as of the date -such litigation is filed. - -4. Redistribution. You may reproduce and distribute copies of the Work or -Derivative Works thereof in any medium, with or without modifications, and in -Source or Object form, provided that You meet the following conditions: - -You must give any other recipients of the Work or Derivative Works a copy of -this License; and You must cause any modified files to carry prominent notices -stating that You changed the files; and You must retain, in the Source form of -any Derivative Works that You distribute, all copyright, patent, trademark, and -attribution notices from the Source form of the Work, excluding those notices -that do not pertain to any part of the Derivative Works; and If the Work -includes a "NOTICE" text file as part of its distribution, then any Derivative -Works that You distribute must include a readable copy of the attribution -notices contained within such NOTICE file, excluding those notices that do not -pertain to any part of the Derivative Works, in at least one of the following -places: within a NOTICE text file distributed as part of the Derivative Works; -within the Source form or documentation, if provided along with the Derivative -Works; or, within a display generated by the Derivative Works, if and wherever -such third-party notices normally appear. The contents of the NOTICE file are -for informational purposes only and do not modify the License. You may add Your -own attribution notices within Derivative Works that You distribute, alongside -or as an addendum to the NOTICE text from the Work, provided that such -additional attribution notices cannot be construed as modifying the License. -You may add Your own copyright statement to Your modifications and may provide -additional or different license terms and conditions for use, reproduction, or -distribution of Your modifications, or for any such Derivative Works as a whole, -provided Your use, reproduction, and distribution of the Work otherwise complies -with the conditions stated in this License. - -5. Submission of Contributions. Unless You explicitly state otherwise, any -Contribution intentionally submitted for inclusion in the Work by You to the -Licensor shall be under the terms and conditions of this License, without any -additional terms or conditions. Notwithstanding the above, nothing herein shall -supersede or modify the terms of any separate license agreement you may have -executed with Licensor regarding such Contributions. - -6. Trademarks. This License does not grant permission to use the trade names, -trademarks, service marks, or product names of the Licensor, except as required -for reasonable and customary use in describing the origin of the Work and -reproducing the content of the NOTICE file. - -7. Disclaimer of Warranty. Unless required by applicable law or agreed to in -writing, Licensor provides the Work (and each Contributor provides its -Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY -KIND, either express or implied, including, without limitation, any warranties -or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A -PARTICULAR PURPOSE. You are solely responsible for determining the -appropriateness of using or redistributing the Work and assume any risks -associated with Your exercise of permissions under this License. - -8. Limitation of Liability. In no event and under no legal theory, whether in -tort (including negligence), contract, or otherwise, unless required by -applicable law (such as deliberate and grossly negligent acts) or agreed to in -writing, shall any Contributor be liable to You for damages, including any -direct, indirect, special, incidental, or consequential damages of any character -arising as a result of this License or out of the use or inability to use the -Work (including but not limited to damages for loss of goodwill, work stoppage, -computer failure or malfunction, or any and all other commercial damages or -losses), even if such Contributor has been advised of the possibility of such -damages. - -9. Accepting Warranty or Additional Liability. While redistributing the Work or -Derivative Works thereof, You may choose to offer, and charge a fee for, -acceptance of support, warranty, indemnity, or other liability obligations -and/or rights consistent with this License. However, in accepting such -obligations, You may act only on Your own behalf and on Your sole -responsibility, not on behalf of any other Contributor, and only if You agree to -indemnify, defend, and hold each Contributor harmless for any liability incurred -by, or claims asserted against, such Contributor by reason of your accepting any -such warranty or additional liability. - -END OF TERMS AND CONDITIONS diff --git a/document/licenses/Confidential-Personal.txt b/document/licenses/Confidential-Personal.txt deleted file mode 100644 index 1abdeb6..0000000 --- a/document/licenses/Confidential-Personal.txt +++ /dev/null @@ -1,25 +0,0 @@ -SPDX-License-Identifier: LicenseRef-TWL-Confidential -Title: Confidential — Restricted Access (Personal) - -CONFIDENTIAL INFORMATION. The contents of this repository and all associated -materials ("Confidential Information") are proprietary to Thomas Walker Lynch. -If you are not an intended recipient, you must cease access, delete all copies, -and notify the author immediately. - -No license is granted by this notice. Unless you have a separate written -agreement (e.g., NDA or license) with the author, you may not use, copy, -modify, disclose, distribute, publish, host, provide access to, or reverse -engineer any part of the Confidential Information. - -Permitted Internal Review. If you are an intended recipient, you may review -the materials solely for internal evaluation and solely within the scope -authorized by the author. - -Return/Destruction. Upon request, you must promptly return or destroy all -copies and certify destruction. - -Trademarks. No rights to names, logos, or marks are granted. - -Warranty/Liability. PROVIDED "AS IS", WITHOUT WARRANTY. TO THE MAXIMUM -EXTENT PERMITTED BY LAW, THE AUTHOR SHALL NOT BE LIABLE FOR ANY DAMAGES. - diff --git a/document/licenses/Confidential-RT.txt b/document/licenses/Confidential-RT.txt deleted file mode 100644 index f00d4d2..0000000 --- a/document/licenses/Confidential-RT.txt +++ /dev/null @@ -1,26 +0,0 @@ -SPDX-License-Identifier: LicenseRef-RT-Confidential -Title: Confidential — Restricted Access (RT) - -CONFIDENTIAL INFORMATION. The contents of this repository and associated -materials ("Confidential Information") are proprietary to Reasoning Technology Inc.. -If you are not an intended recipient, you must cease access, delete all -copies, and notify Reasoning Technology Inc. immediately. - -No license is granted by this notice. Unless you have a separate written -agreement with Reasoning Technology Inc. (e.g., NDA or license), you may not use, copy, -modify, disclose, distribute, publish, host, provide access to, or reverse -engineer any part of the Confidential Information. - -Permitted Internal Review. Intended recipients may review the materials -solely for internal evaluation and only as expressly authorized by -Reasoning Technology Inc.. - -Return/Destruction. Upon request, promptly return or destroy all copies and -certify destruction. - -Trademarks. No rights to names, logos, or marks are granted. - -Warranty/Liability. PROVIDED "AS IS", WITHOUT WARRANTY. TO THE MAXIMUM -EXTENT PERMITTED BY LAW, Reasoning Technology Inc. AND AUTHORS ARE NOT LIABLE FOR DAMAGES. - -Contact. For authorization or licensing, email licensing@ReasoningTechnology.com. diff --git a/document/licenses/Look-see.txt b/document/licenses/Look-see.txt deleted file mode 100644 index ae6c80f..0000000 --- a/document/licenses/Look-see.txt +++ /dev/null @@ -1,7 +0,0 @@ -Copyright (c) 2025 Thomas Walker Lynch. - -All rights reserved. - -This source code is made available for inspection only. - -No permission is granted to use, copy, modify, or distribute it in any form without explicit written permission. diff --git a/document/licenses/MIT b/document/licenses/MIT deleted file mode 100644 index 34375af..0000000 --- a/document/licenses/MIT +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2019, 2024 Reasoning Technology - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/document/licenses/NoUse-Personal-ARR.txt b/document/licenses/NoUse-Personal-ARR.txt deleted file mode 100644 index bda6e92..0000000 --- a/document/licenses/NoUse-Personal-ARR.txt +++ /dev/null @@ -1,24 +0,0 @@ -SPDX-License-Identifier: LicenseRef-TWL-NoUse-ARR -Title: All Rights Reserved — No License Granted (Personal) - -Copyright (c) 2025 Thomas Walker Lynch. All rights reserved. - -No license is granted by this notice. Except pursuant to a separate written -agreement signed by the copyright holder, you may not use, copy, modify, -merge, publish, distribute, sublicense, sell, host, or deploy this software -("Software"), in whole or in part, in source or binary form. - -Limited Viewing Permission. If you received this repository directly from the -author, you may view the files solely to evaluate whether to request a license. -No other rights are granted. - -Trademarks. No rights to names, logos, or marks are granted. - -Warranty Disclaimer. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR IMPLIED. - -Liability. TO THE MAXIMUM EXTENT PERMITTED BY LAW, THE AUTHOR SHALL NOT BE -LIABLE FOR ANY DAMAGES ARISING FROM USE OR ACCESS. - -Contact. For licensing, contact the author. - diff --git a/document/licenses/NoUse-RT-ARR.txt b/document/licenses/NoUse-RT-ARR.txt deleted file mode 100644 index 6faee83..0000000 --- a/document/licenses/NoUse-RT-ARR.txt +++ /dev/null @@ -1,18 +0,0 @@ -SPDX-License-Identifier: LicenseRef-RT-NoUse-ARR -Title: All Rights Reserved — No License Granted (RT) - -Copyright (c) 2025 Reasoning Technology Inc.. All rights reserved. - -No license is granted by this notice. Except under a separate written agreement executed by Reasoning Technology Inc., you may not use, copy, modify, merge, publish, distribute, sublicense, sell, host, or deploy this software ("Software"), in whole or in part, in source or binary form. - -Limited Viewing Permission. If you received this repository directly from Reasoning Technology Inc., you may view the files solely to evaluate whether to obtain a license. No other rights are granted. - -Trademarks. No rights to names, logos, or marks are granted. - -Warranty Disclaimer. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY -KIND, EXPRESS OR IMPLIED. - -Liability. TO THE MAXIMUM EXTENT PERMITTED BY LAW, Reasoning Technology Inc. SHALL NOT BE -LIABLE FOR ANY DAMAGES ARISING FROM USE OR ACCESS. - -Contact. For licensing, email licensing@ReasoningTechnology.com. diff --git a/document/licenses/Personal-NonCommercial.txt b/document/licenses/Personal-NonCommercial.txt deleted file mode 100644 index bf4a697..0000000 --- a/document/licenses/Personal-NonCommercial.txt +++ /dev/null @@ -1,43 +0,0 @@ -LicenseRef-TWL-Personal-NC (Personal Non-Commercial License) - -Copyright (c) 2025 Thomas Walker Lynch - -Permission is hereby granted to any natural person ("You") to use, copy, and -modify the Software for personal, non-commercial purposes, subject to the -following conditions: - -1. Non-Commercial Use. "Non-commercial" means: no direct or indirect - remuneration, revenue, sponsorship, or consideration is received in - connection with Your use, copies, modifications, or deployments of the - Software. Academic teaching and personal research are deemed non-commercial. - -2. Redistribution. You may redistribute unmodified copies of the Software, or - Your modifications, for non-commercial purposes only, provided that: - (a) this license text and the copyright notice are included in all copies; - (b) a clear notice of any changes is included; and - (c) You do not misrepresent authorship or sponsorship. - -3. No SaaS or Production Hosting. Operating the Software as a network service - accessible by others (hosted or SaaS) is deemed commercial unless you have - obtained written permission from the copyright holder. - -4. No Trademark License. This license does not grant rights to use names, - logos, or trademarks of the authors or Reasoning Technology Inc. - -5. Termination. Any breach terminates Your rights under this license - automatically. Upon termination, You must cease use and distribution. - -6. Warranty Disclaimer. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF - ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF - MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, AND NON-INFRINGEMENT. - -7. Limitation of Liability. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT - HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES, OR OTHER LIABILITY, WHETHER IN AN - ACTION OF CONTRACT, TORT, OR OTHERWISE, ARISING FROM, OUT OF, OR IN - CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - -8. Compatibility. This license is not OSI-approved and may be incompatible - with certain open-source distribution requirements. If in doubt, use MIT - or Apache-2.0 instead, or contact the author for a different grant. - -SPDX-Identifier: LicenseRef-TWL-Personal-NC diff --git a/document/licenses/RT-Commercial.txt b/document/licenses/RT-Commercial.txt deleted file mode 100644 index f80c90f..0000000 --- a/document/licenses/RT-Commercial.txt +++ /dev/null @@ -1,31 +0,0 @@ -LicenseRef-RT-Commercial (Reasoning Technology Commercial License) - -Copyright (c) 2025 Reasoning Technology Inc. - -Subject to a valid commercial agreement with Reasoning Technology Inc. -("RT"), RT grants the licensee identified in that agreement ("Licensee") -a worldwide, non-exclusive license to: - - (a) use, reproduce, modify, and create derivative works of the Software; - (b) make internal deployments of the Software and derivative works; and - (c) redistribute the Software and derivative works in object or source form - as permitted by the executed commercial agreement. - -Restrictions. Except as expressly permitted in the executed agreement, -Licensee may not sublicense, resell, or offer the Software as a service to -third parties, and may not remove or alter copyright, license, or NOTICE -statements. - -Support, updates, warranty, and indemnities (if any) are governed solely by -the executed commercial agreement. Absent such agreement, no rights are -granted under this license. - -NO WARRANTY. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, -EXCEPT AS MAY BE EXPRESSLY STATED IN THE EXECUTED COMMERCIAL AGREEMENT. - -LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT -SHALL RT OR THE AUTHORS BE LIABLE FOR ANY CLAIMS OR DAMAGES, EXCEPT AS MAY BE -EXPRESSLY PROVIDED IN THE EXECUTED COMMERCIAL AGREEMENT. - -For commercial licensing, contact: licensing@ReasoningTechnology.com -SPDX-Identifier: LicenseRef-RT-Commercial -- 2.20.1