Rename all 1,169 components to path-based names with namespace support
Component names now reflect filesystem location using / as path separator and : as namespace separator for shared components: ~sx-header → ~layouts/header ~layout-app-body → ~shared:layout/app-body ~blog-admin-dashboard → ~admin/dashboard 209 files, 4,941 replacements across all services. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -3,8 +3,8 @@
|
||||
;; ---------------------------------------------------------------------------
|
||||
;; @css bg-green-100 text-green-800 bg-green-50 border-green-200 text-green-700 text-green-600
|
||||
|
||||
(defcomp ~plan-self-hosting-bootstrapper-content ()
|
||||
(~doc-page :title "Self-Hosting Bootstrapper"
|
||||
(defcomp ~plans/self-hosting-bootstrapper/plan-self-hosting-bootstrapper-content ()
|
||||
(~docs/page :title "Self-Hosting Bootstrapper"
|
||||
|
||||
;; -----------------------------------------------------------------------
|
||||
;; Status banner
|
||||
@@ -24,7 +24,7 @@
|
||||
;; The Idea
|
||||
;; -----------------------------------------------------------------------
|
||||
|
||||
(~doc-section :title "The Idea" :id "idea"
|
||||
(~docs/section :title "The Idea" :id "idea"
|
||||
(p "We have " (code "bootstrap_py.py") " — a Python program that reads "
|
||||
(code ".sx") " spec files and emits " (code "sx_ref.py")
|
||||
", a standalone Python evaluator. It's a compiler written in the host language.")
|
||||
@@ -42,7 +42,7 @@
|
||||
;; Results
|
||||
;; -----------------------------------------------------------------------
|
||||
|
||||
(~doc-section :title "Results" :id "results"
|
||||
(~docs/section :title "Results" :id "results"
|
||||
(div :class "overflow-x-auto rounded border border-stone-200 my-4"
|
||||
(table :class "w-full text-sm"
|
||||
(thead :class "bg-stone-50"
|
||||
@@ -73,7 +73,7 @@
|
||||
;; Architecture
|
||||
;; -----------------------------------------------------------------------
|
||||
|
||||
(~doc-section :title "Architecture" :id "architecture"
|
||||
(~docs/section :title "Architecture" :id "architecture"
|
||||
(p "Three bootstrapper generations:")
|
||||
(div :class "overflow-x-auto rounded border border-stone-200 my-4"
|
||||
(table :class "w-full text-sm"
|
||||
@@ -112,9 +112,9 @@
|
||||
;; Translation Rules
|
||||
;; -----------------------------------------------------------------------
|
||||
|
||||
(~doc-section :title "Translation Rules" :id "translation"
|
||||
(~docs/section :title "Translation Rules" :id "translation"
|
||||
|
||||
(~doc-subsection :title "Name Mangling"
|
||||
(~docs/subsection :title "Name Mangling"
|
||||
(p "SX identifiers become valid Python identifiers. "
|
||||
"The RENAMES dict (200+ entries) handles explicit mappings; "
|
||||
"general rules handle the rest:")
|
||||
@@ -147,7 +147,7 @@
|
||||
(td :class "px-4 py-2 font-mono" "type_")
|
||||
(td :class "px-4 py-2" "Python reserved word escape"))))))
|
||||
|
||||
(~doc-subsection :title "Special Forms"
|
||||
(~docs/subsection :title "Special Forms"
|
||||
(p "Each SX special form maps to a Python expression pattern:")
|
||||
(div :class "overflow-x-auto rounded border border-stone-200 my-4"
|
||||
(table :class "w-full text-sm"
|
||||
@@ -172,11 +172,11 @@
|
||||
(td :class "px-4 py-2 font-mono" "(case x \"a\" 1)")
|
||||
(td :class "px-4 py-2 font-mono" "_sx_case(x, [(\"a\", lambda: 1)])"))))))
|
||||
|
||||
(~doc-subsection :title "Mutation: set! and Cell Variables"
|
||||
(~docs/subsection :title "Mutation: set! and Cell Variables"
|
||||
(p "Python closures can read but not rebind outer variables. "
|
||||
(code "py.sx") " detects " (code "set!") " targets that cross lambda boundaries "
|
||||
"and routes them through a " (code "_cells") " dict:")
|
||||
(~doc-code :code (highlight ";; SX ;; Python
|
||||
(~docs/code :code (highlight ";; SX ;; Python
|
||||
(define counter def counter():
|
||||
(fn () _cells = {}
|
||||
(let ((n 0)) _cells['n'] = 0
|
||||
@@ -192,7 +192,7 @@
|
||||
;; Scope
|
||||
;; -----------------------------------------------------------------------
|
||||
|
||||
(~doc-section :title "Scope" :id "scope"
|
||||
(~docs/section :title "Scope" :id "scope"
|
||||
(p (code "py.sx") " is a general-purpose SX-to-Python translator. "
|
||||
"The translation rules are mechanical and apply to " (em "all") " SX, "
|
||||
"not just the spec subset.")
|
||||
@@ -214,19 +214,19 @@
|
||||
;; Implications
|
||||
;; -----------------------------------------------------------------------
|
||||
|
||||
(~doc-section :title "Implications" :id "implications"
|
||||
(~doc-subsection :title "Practical"
|
||||
(~docs/section :title "Implications" :id "implications"
|
||||
(~docs/subsection :title "Practical"
|
||||
(p "One less Python file to maintain. Changes to the transpilation logic "
|
||||
"are written in SX and tested with the SX test harness. The spec and its "
|
||||
"compiler live in the same language."))
|
||||
|
||||
(~doc-subsection :title "Architectural"
|
||||
(~docs/subsection :title "Architectural"
|
||||
(p "With " (code "z3.sx") " (SMT-LIB) and " (code "py.sx") " (Python), "
|
||||
"the pattern is clear: SX translators are SX programs. "
|
||||
"Adding a new target language means writing one " (code ".sx") " file, "
|
||||
"not a new Python compiler."))
|
||||
|
||||
(~doc-subsection :title "Philosophical"
|
||||
(~docs/subsection :title "Philosophical"
|
||||
(p "A self-hosting bootstrapper is a fixed point. The spec defines behavior. "
|
||||
"The translator is itself defined in terms of that behavior. Running the "
|
||||
"translator on the spec produces a program that can run the translator on "
|
||||
|
||||
Reference in New Issue
Block a user