diff --git a/whitepaper/uncommonlisp-whitepaper.pdf b/whitepaper/uncommonlisp-whitepaper.pdf index 445ea04..2ee8523 100644 --- a/whitepaper/uncommonlisp-whitepaper.pdf +++ b/whitepaper/uncommonlisp-whitepaper.pdf @@ -54,7 +54,7 @@ endobj endobj 10 0 obj << -/Annots [ 7 0 R 8 0 R ] /Contents 80 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Annots [ 7 0 R 8 0 R ] /Contents 81 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << /FormXob.d3ecd28ca03f587d6940049748681018 3 0 R >> @@ -66,7 +66,7 @@ endobj endobj 11 0 obj << -/Contents 81 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Contents 82 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -76,7 +76,7 @@ endobj endobj 12 0 obj << -/Contents 82 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Contents 83 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -86,7 +86,7 @@ endobj endobj 13 0 obj << -/Contents 83 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Contents 84 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -101,7 +101,7 @@ endobj endobj 15 0 obj << -/Contents 84 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Contents 85 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -111,7 +111,7 @@ endobj endobj 16 0 obj << -/Contents 85 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Contents 86 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -121,7 +121,7 @@ endobj endobj 17 0 obj << -/Contents 86 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Contents 87 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -131,7 +131,7 @@ endobj endobj 18 0 obj << -/Contents 87 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Contents 88 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -141,7 +141,7 @@ endobj endobj 19 0 obj << -/Contents 88 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Contents 89 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -158,7 +158,7 @@ endobj endobj 21 0 obj << -/Annots [ 20 0 R ] /Contents 89 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Annots [ 20 0 R ] /Contents 90 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -168,7 +168,7 @@ endobj endobj 22 0 obj << -/Contents 90 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Contents 91 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -199,7 +199,7 @@ endobj endobj 26 0 obj << -/Annots [ 23 0 R 24 0 R 25 0 R ] /Contents 91 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Annots [ 23 0 R 24 0 R 25 0 R ] /Contents 92 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -223,7 +223,7 @@ endobj endobj 29 0 obj << -/Annots [ 27 0 R 28 0 R ] /Contents 92 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Annots [ 27 0 R 28 0 R ] /Contents 93 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] >> /Rotate 0 /Trans << @@ -249,7 +249,7 @@ Gb"0;0`_7S!5bE.WFlYNTE"rlzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzzz endobj 32 0 obj << -/Contents 93 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 79 0 R /Resources << +/Contents 94 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << /Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] /XObject << /FormXob.d3ecd28ca03f587d6940049748681018 3 0 R /FormXob.fc331aff86ff817ecac4c4ce4b2ecd3a 30 0 R >> @@ -261,252 +261,262 @@ endobj endobj 33 0 obj << -/Outlines 35 0 R /PageLabels 94 0 R /PageMode /UseNone /Pages 79 0 R /Type /Catalog +/Contents 95 0 R /MediaBox [ 0 0 595.2756 841.8898 ] /Parent 80 0 R /Resources << +/Font 1 0 R /ProcSet [ /PDF /Text /ImageB /ImageC /ImageI ] +>> /Rotate 0 /Trans << + +>> + /Type /Page >> endobj 34 0 obj << -/Author () /CreationDate (D:20260415144154-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260415144154-04'00') /Producer (ReportLab PDF Library - \(opensource\)) - /Subject (\(unspecified\)) /Title () /Trapped /False +/Outlines 36 0 R /PageLabels 96 0 R /PageMode /UseNone /Pages 80 0 R /Type /Catalog >> endobj 35 0 obj << -/Count 52 /First 36 0 R /Last 36 0 R /Type /Outlines +/Author () /CreationDate (D:20260415161613-04'00') /Creator (\(unspecified\)) /Keywords () /ModDate (D:20260415161613-04'00') /Producer (ReportLab PDF Library - \(opensource\)) + /Subject (\(unspecified\)) /Title () /Trapped /False >> endobj 36 0 obj << -/Count 42 /Dest [ 10 0 R /XYZ 57.02362 525.9477 0 ] /First 37 0 R /Last 78 0 R /Parent 35 0 R /Title (Feedback Is All You Need) +/Count 52 /First 37 0 R /Last 37 0 R /Type /Outlines >> endobj 37 0 obj << -/Dest [ 10 0 R /XYZ 57.02362 370.4013 0 ] /Next 38 0 R /Parent 36 0 R /Title (Abstract) +/Count 42 /Dest [ 10 0 R /XYZ 57.02362 525.9477 0 ] /First 38 0 R /Last 79 0 R /Parent 36 0 R /Title (Feedback Is All You Need) >> endobj 38 0 obj << -/Dest [ 11 0 R /XYZ 57.02362 765.0236 0 ] /Next 39 0 R /Parent 36 0 R /Prev 37 0 R /Title (1. The Problem: Interpreters That Cannot Feed Back) +/Dest [ 10 0 R /XYZ 57.02362 370.4013 0 ] /Next 39 0 R /Parent 37 0 R /Title (Abstract) >> endobj 39 0 obj << -/Count 2 /Dest [ 11 0 R /XYZ 57.02362 557.8236 0 ] /First 40 0 R /Last 41 0 R /Next 42 0 R /Parent 36 0 R - /Prev 38 0 R /Title (2. Architecture: One File, Two Evaluators) +/Dest [ 11 0 R /XYZ 57.02362 765.0236 0 ] /Next 40 0 R /Parent 37 0 R /Prev 38 0 R /Title (1. The Problem: Interpreters That Cannot Feed Back) >> endobj 40 0 obj << -/Dest [ 11 0 R /XYZ 57.02362 372.6236 0 ] /Next 41 0 R /Parent 39 0 R /Title (2.1 Type System) +/Count 2 /Dest [ 11 0 R /XYZ 57.02362 557.8236 0 ] /First 41 0 R /Last 42 0 R /Next 43 0 R /Parent 37 0 R + /Prev 39 0 R /Title (2. Architecture: One File, Two Evaluators) >> endobj 41 0 obj << -/Dest [ 11 0 R /XYZ 57.02362 136.6236 0 ] /Parent 39 0 R /Prev 40 0 R /Title (2.2 The Bytecode) +/Dest [ 11 0 R /XYZ 57.02362 372.6236 0 ] /Next 42 0 R /Parent 40 0 R /Title (2.1 Type System) >> endobj 42 0 obj << -/Dest [ 12 0 R /XYZ 57.02362 411.0236 0 ] /Next 43 0 R /Parent 36 0 R /Prev 39 0 R /Title (3. The Explicit Frame Stack) +/Dest [ 11 0 R /XYZ 57.02362 136.6236 0 ] /Parent 40 0 R /Prev 41 0 R /Title (2.2 The Bytecode) >> endobj 43 0 obj << -/Count 2 /Dest [ 13 0 R /XYZ 57.02362 711.0236 0 ] /First 44 0 R /Last 45 0 R /Next 46 0 R /Parent 36 0 R - /Prev 42 0 R /Title (4. Continuations: Feedback as a Data Structure) +/Dest [ 12 0 R /XYZ 57.02362 411.0236 0 ] /Next 44 0 R /Parent 37 0 R /Prev 40 0 R /Title (3. The Explicit Frame Stack) >> endobj 44 0 obj << -/Dest [ 13 0 R /XYZ 57.02362 303.4236 0 ] /Next 45 0 R /Parent 43 0 R /Title (4.1 Generators from Continuations) +/Count 2 /Dest [ 13 0 R /XYZ 57.02362 711.0236 0 ] /First 45 0 R /Last 46 0 R /Next 47 0 R /Parent 37 0 R + /Prev 43 0 R /Title (4. Continuations: Feedback as a Data Structure) >> endobj 45 0 obj << -/Dest [ 15 0 R /XYZ 57.02362 727.0236 0 ] /Parent 43 0 R /Prev 44 0 R /Title (4.2 Why "Feedback Is All You Need") +/Dest [ 13 0 R /XYZ 57.02362 303.4236 0 ] /Next 46 0 R /Parent 44 0 R /Title (4.1 Generators from Continuations) >> endobj 46 0 obj << -/Count 3 /Dest [ 15 0 R /XYZ 57.02362 553.0236 0 ] /First 47 0 R /Last 49 0 R /Next 50 0 R /Parent 36 0 R - /Prev 43 0 R /Title (5. Optimizations) +/Dest [ 15 0 R /XYZ 57.02362 727.0236 0 ] /Parent 44 0 R /Prev 45 0 R /Title (4.2 Why "Feedback Is All You Need") >> endobj 47 0 obj << -/Dest [ 15 0 R /XYZ 57.02362 525.8236 0 ] /Next 48 0 R /Parent 46 0 R /Title (5.1 Peephole Optimizer) +/Count 3 /Dest [ 15 0 R /XYZ 57.02362 553.0236 0 ] /First 48 0 R /Last 50 0 R /Next 51 0 R /Parent 37 0 R + /Prev 44 0 R /Title (5. Optimizations) >> endobj 48 0 obj << -/Dest [ 15 0 R /XYZ 57.02362 379.8236 0 ] /Next 49 0 R /Parent 46 0 R /Prev 47 0 R /Title (5.2 Inline Cache) +/Dest [ 15 0 R /XYZ 57.02362 525.8236 0 ] /Next 49 0 R /Parent 47 0 R /Title (5.1 Peephole Optimizer) >> endobj 49 0 obj << -/Dest [ 15 0 R /XYZ 57.02362 179.8236 0 ] /Parent 46 0 R /Prev 48 0 R /Title (5.3 Constant Folding) +/Dest [ 15 0 R /XYZ 57.02362 379.8236 0 ] /Next 50 0 R /Parent 47 0 R /Prev 48 0 R /Title (5.2 Inline Cache) >> endobj 50 0 obj << -/Count 3 /Dest [ 16 0 R /XYZ 57.02362 723.0236 0 ] /First 51 0 R /Last 53 0 R /Next 54 0 R /Parent 36 0 R - /Prev 46 0 R /Title (6. Benchmarks: Three Evaluators vs CPython) +/Dest [ 15 0 R /XYZ 57.02362 179.8236 0 ] /Parent 47 0 R /Prev 49 0 R /Title (5.3 Constant Folding) >> endobj 51 0 obj << -/Dest [ 16 0 R /XYZ 57.02362 663.8236 0 ] /Next 52 0 R /Parent 50 0 R /Title (6.1 Raw Results) +/Count 3 /Dest [ 16 0 R /XYZ 57.02362 723.0236 0 ] /First 52 0 R /Last 54 0 R /Next 55 0 R /Parent 37 0 R + /Prev 47 0 R /Title (6. Benchmarks: Three Evaluators vs CPython) >> endobj 52 0 obj << -/Dest [ 16 0 R /XYZ 57.02362 397.8236 0 ] /Next 53 0 R /Parent 50 0 R /Prev 51 0 R /Title (6.2 Analysis) +/Dest [ 16 0 R /XYZ 57.02362 663.8236 0 ] /Next 53 0 R /Parent 51 0 R /Title (6.1 Raw Results) >> endobj 53 0 obj << -/Dest [ 16 0 R /XYZ 57.02362 191.8236 0 ] /Parent 50 0 R /Prev 52 0 R /Title (6.3 What the Benchmarks Test) +/Dest [ 16 0 R /XYZ 57.02362 397.8236 0 ] /Next 54 0 R /Parent 51 0 R /Prev 52 0 R /Title (6.2 Analysis) >> endobj 54 0 obj << -/Count 4 /Dest [ 17 0 R /XYZ 57.02362 699.0236 0 ] /First 55 0 R /Last 58 0 R /Next 59 0 R /Parent 36 0 R - /Prev 50 0 R /Title (7. Portal: Machine State Serialization) +/Dest [ 16 0 R /XYZ 57.02362 191.8236 0 ] /Parent 51 0 R /Prev 53 0 R /Title (6.3 What the Benchmarks Test) >> endobj 55 0 obj << -/Dest [ 17 0 R /XYZ 57.02362 639.8236 0 ] /Next 56 0 R /Parent 54 0 R /Title (7.1 Serialization) +/Count 4 /Dest [ 17 0 R /XYZ 57.02362 699.0236 0 ] /First 56 0 R /Last 59 0 R /Next 60 0 R /Parent 37 0 R + /Prev 51 0 R /Title (7. Portal: Machine State Serialization) >> endobj 56 0 obj << -/Dest [ 17 0 R /XYZ 57.02362 487.8236 0 ] /Next 57 0 R /Parent 54 0 R /Prev 55 0 R /Title (7.2 Deserialization) +/Dest [ 17 0 R /XYZ 57.02362 639.8236 0 ] /Next 57 0 R /Parent 55 0 R /Title (7.1 Serialization) >> endobj 57 0 obj << -/Dest [ 17 0 R /XYZ 57.02362 377.8236 0 ] /Next 58 0 R /Parent 54 0 R /Prev 56 0 R /Title (7.3 Checkpoint & Resume) +/Dest [ 17 0 R /XYZ 57.02362 487.8236 0 ] /Next 58 0 R /Parent 55 0 R /Prev 56 0 R /Title (7.2 Deserialization) >> endobj 58 0 obj << -/Dest [ 18 0 R /XYZ 57.02362 765.0236 0 ] /Parent 54 0 R /Prev 57 0 R /Title (7.4 Use Case: Distributed Primality Testing) +/Dest [ 17 0 R /XYZ 57.02362 377.8236 0 ] /Next 59 0 R /Parent 55 0 R /Prev 57 0 R /Title (7.3 Checkpoint & Resume) >> endobj 59 0 obj << -/Count 6 /Dest [ 18 0 R /XYZ 57.02362 564.2236 0 ] /First 60 0 R /Last 65 0 R /Next 66 0 R /Parent 36 0 R - /Prev 54 0 R /Title (8. The EML Universality Proof) +/Dest [ 18 0 R /XYZ 57.02362 765.0236 0 ] /Parent 55 0 R /Prev 58 0 R /Title (7.4 Use Case: Distributed Primality Testing) >> endobj 60 0 obj << -/Dest [ 18 0 R /XYZ 57.02362 487.0236 0 ] /Next 61 0 R /Parent 59 0 R /Title (8.1 The Operator) +/Count 6 /Dest [ 18 0 R /XYZ 57.02362 564.2236 0 ] /First 61 0 R /Last 66 0 R /Next 67 0 R /Parent 37 0 R + /Prev 55 0 R /Title (8. The EML Universality Proof) >> endobj 61 0 obj << -/Dest [ 18 0 R /XYZ 57.02362 410.2236 0 ] /Next 62 0 R /Parent 59 0 R /Prev 60 0 R /Title (8.2 Stage 1: Core Functions \(Depth 1--3\)) +/Dest [ 18 0 R /XYZ 57.02362 487.0236 0 ] /Next 62 0 R /Parent 60 0 R /Title (8.1 The Operator) >> endobj 62 0 obj << -/Dest [ 18 0 R /XYZ 57.02362 290.2236 0 ] /Next 63 0 R /Parent 59 0 R /Prev 61 0 R /Title (8.3 Stage 2: Arithmetic) +/Dest [ 18 0 R /XYZ 57.02362 410.2236 0 ] /Next 63 0 R /Parent 60 0 R /Prev 61 0 R /Title (8.2 Stage 1: Core Functions \(Depth 1--3\)) >> endobj 63 0 obj << -/Dest [ 18 0 R /XYZ 57.02362 175.8236 0 ] /Next 64 0 R /Parent 59 0 R /Prev 62 0 R /Title (8.4 Stage 3: Complex Plane Access) +/Dest [ 18 0 R /XYZ 57.02362 290.2236 0 ] /Next 64 0 R /Parent 60 0 R /Prev 62 0 R /Title (8.3 Stage 2: Arithmetic) >> endobj 64 0 obj << -/Dest [ 19 0 R /XYZ 57.02362 765.0236 0 ] /Next 65 0 R /Parent 59 0 R /Prev 63 0 R /Title (8.5 Stage 4: Trigonometry via Euler) +/Dest [ 18 0 R /XYZ 57.02362 175.8236 0 ] /Next 65 0 R /Parent 60 0 R /Prev 63 0 R /Title (8.4 Stage 3: Complex Plane Access) >> endobj 65 0 obj << -/Dest [ 19 0 R /XYZ 57.02362 669.0236 0 ] /Parent 59 0 R /Prev 64 0 R /Title (8.6 Verification & Friction Analysis) +/Dest [ 19 0 R /XYZ 57.02362 765.0236 0 ] /Next 66 0 R /Parent 60 0 R /Prev 64 0 R /Title (8.5 Stage 4: Trigonometry via Euler) >> endobj 66 0 obj << -/Dest [ 19 0 R /XYZ 57.02362 165.8236 0 ] /Next 67 0 R /Parent 36 0 R /Prev 59 0 R /Title (9. Language Coverage) +/Dest [ 19 0 R /XYZ 57.02362 669.0236 0 ] /Parent 60 0 R /Prev 65 0 R /Title (8.6 Verification & Friction Analysis) >> endobj 67 0 obj << -/Dest [ 21 0 R /XYZ 57.02362 621.0236 0 ] /Next 68 0 R /Parent 36 0 R /Prev 66 0 R /Title (10. Relationship to Companion Papers) +/Dest [ 19 0 R /XYZ 57.02362 165.8236 0 ] /Next 68 0 R /Parent 37 0 R /Prev 60 0 R /Title (9. Language Coverage) >> endobj 68 0 obj << -/Count 1 /Dest [ 21 0 R /XYZ 57.02362 371.8236 0 ] /First 69 0 R /Last 69 0 R /Next 70 0 R /Parent 36 0 R - /Prev 67 0 R /Title (11. Four Implementations, One Language) +/Dest [ 21 0 R /XYZ 57.02362 621.0236 0 ] /Next 69 0 R /Parent 37 0 R /Prev 67 0 R /Title (10. Relationship to Companion Papers) >> endobj 69 0 obj << -/Dest [ 22 0 R /XYZ 57.02362 715.0236 0 ] /Parent 68 0 R /Title (11.1 Test Coverage) +/Count 1 /Dest [ 21 0 R /XYZ 57.02362 371.8236 0 ] /First 70 0 R /Last 70 0 R /Next 71 0 R /Parent 37 0 R + /Prev 68 0 R /Title (11. Four Implementations, One Language) >> endobj 70 0 obj << -/Count 3 /Dest [ 22 0 R /XYZ 57.02362 559.0236 0 ] /First 71 0 R /Last 73 0 R /Next 74 0 R /Parent 36 0 R - /Prev 68 0 R /Title (12. MOAD Audit: Fixing What We Built) +/Dest [ 22 0 R /XYZ 57.02362 715.0236 0 ] /Parent 69 0 R /Title (11.1 Test Coverage) >> endobj 71 0 obj << -/Dest [ 22 0 R /XYZ 57.02362 511.8236 0 ] /Next 72 0 R /Parent 70 0 R /Title (12.1 MOAD-0001: The Sedimentary Defect in Our Own Code) +/Count 3 /Dest [ 22 0 R /XYZ 57.02362 559.0236 0 ] /First 72 0 R /Last 74 0 R /Next 75 0 R /Parent 37 0 R + /Prev 69 0 R /Title (12. MOAD Audit: Fixing What We Built) >> endobj 72 0 obj << -/Dest [ 22 0 R /XYZ 57.02362 143.0236 0 ] /Next 73 0 R /Parent 70 0 R /Prev 71 0 R /Title (12.2 MOAD-0002: The Intertangle in Our Own Design) +/Dest [ 22 0 R /XYZ 57.02362 511.8236 0 ] /Next 73 0 R /Parent 71 0 R /Title (12.1 MOAD-0001: The Sedimentary Defect in Our Own Code) >> endobj 73 0 obj << -/Dest [ 26 0 R /XYZ 57.02362 583.0236 0 ] /Parent 70 0 R /Prev 72 0 R /Title (12.3 Our Shared Infrastructure) +/Dest [ 22 0 R /XYZ 57.02362 143.0236 0 ] /Next 74 0 R /Parent 71 0 R /Prev 72 0 R /Title (12.2 MOAD-0002: The Intertangle in Our Own Design) >> endobj 74 0 obj << -/Dest [ 26 0 R /XYZ 57.02362 367.0236 0 ] /Next 75 0 R /Parent 36 0 R /Prev 70 0 R /Title (13. Future Work) +/Dest [ 26 0 R /XYZ 57.02362 583.0236 0 ] /Parent 71 0 R /Prev 73 0 R /Title (12.3 Our Shared Infrastructure) >> endobj 75 0 obj << -/Dest [ 26 0 R /XYZ 57.02362 213.8236 0 ] /Next 76 0 R /Parent 36 0 R /Prev 74 0 R /Title (14. The Defect in the Model) +/Dest [ 26 0 R /XYZ 57.02362 367.0236 0 ] /Next 76 0 R /Parent 37 0 R /Prev 71 0 R /Title (13. Future Work) >> endobj 76 0 obj << -/Dest [ 29 0 R /XYZ 57.02362 231.0236 0 ] /Next 77 0 R /Parent 36 0 R /Prev 75 0 R /Title (Citation) +/Dest [ 26 0 R /XYZ 57.02362 213.8236 0 ] /Next 77 0 R /Parent 37 0 R /Prev 75 0 R /Title (14. The Defect in the Model) >> endobj 77 0 obj << -/Dest [ 29 0 R /XYZ 57.02362 149.8236 0 ] /Next 78 0 R /Parent 36 0 R /Prev 76 0 R /Title (References) +/Dest [ 29 0 R /XYZ 57.02362 231.0236 0 ] /Next 78 0 R /Parent 37 0 R /Prev 76 0 R /Title (Citation) >> endobj 78 0 obj << -/Dest [ 32 0 R /XYZ 57.02362 765.0236 0 ] /Parent 36 0 R /Prev 77 0 R /Title (License) +/Dest [ 29 0 R /XYZ 57.02362 149.8236 0 ] /Next 79 0 R /Parent 37 0 R /Prev 77 0 R /Title (References) >> endobj 79 0 obj << -/Count 14 /Kids [ 10 0 R 11 0 R 12 0 R 13 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 21 0 R - 22 0 R 26 0 R 29 0 R 32 0 R ] /Type /Pages +/Dest [ 32 0 R /XYZ 57.02362 765.0236 0 ] /Parent 37 0 R /Prev 78 0 R /Title (License) >> endobj 80 0 obj << -/Length 4139 +/Count 15 /Kids [ 10 0 R 11 0 R 12 0 R 13 0 R 15 0 R 16 0 R 17 0 R 18 0 R 19 0 R 21 0 R + 22 0 R 26 0 R 29 0 R 32 0 R 33 0 R ] /Type /Pages +>> +endobj +81 0 obj +<< +/Length 4288 >> stream 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET @@ -595,19 +605,19 @@ BT 1 0 0 1 0 26 Tm 1.342739 Tw 12 TL /F1 10 Tf 0 0 0 rg (A programming language Q Q q -1 0 0 1 57.02362 181.2013 cm +1 0 0 1 57.02362 169.2013 cm q -BT 1 0 0 1 0 74 Tm 1.033223 Tw 12 TL /F3 10 Tf 0 0 0 rg (uncommonlisp) Tj /F1 10 Tf ( proves this by implementing a complete Scheme in a single Python file \(3,261 lines, zero) Tj T* 0 Tw 2.467122 Tw (external dependencies beyond the standard library\). A stack-based bytecode compiler achieves 7--19x) Tj T* 0 Tw 1.964862 Tw (speedups over tree-walking interpretation. An explicit frame stack replaces Python's call stack, enabling) Tj T* 0 Tw .056027 Tw (tail-call optimization of arbitrary depth & full first-class continuations \() Tj /F5 10 Tf (call/cc) Tj /F1 10 Tf (\) that support escape, upward,) Tj T* 0 Tw -0.08869 Tw (& multi-shot invocation. A peephole optimizer, inline cache, & constant folder tighten the generated bytecode.) Tj T* 0 Tw .977565 Tw (A portal system serializes the entire machine state \(environment, continuation stack, instruction pointer\) to) Tj T* 0 Tw (JSON & resumes it on another machine.) Tj T* ET +BT 1 0 0 1 0 86 Tm 1.033223 Tw 12 TL /F3 10 Tf 0 0 0 rg (uncommonlisp) Tj /F1 10 Tf ( proves this by implementing a complete Scheme in four ways: a single Python file \(3,324) Tj T* 0 Tw .966147 Tw (lines\), a C implementation with x86_64 JIT \(9,429 lines, 10--24x faster than CPython\), and a pure x86_64) Tj T* 0 Tw 2.720759 Tw (assembly interpreter \(2,592 lines, 13KB binary, zero dependencies\). A stack-based bytecode compiler) Tj T* 0 Tw 1.641529 Tw (achieves 7--19x speedups over tree-walking interpretation. An explicit frame stack replaces Python's call) Tj T* 0 Tw .569104 Tw (stack, enabling tail-call optimization of arbitrary depth & full first-class continuations \() Tj /F5 10 Tf (call/cc) Tj /F1 10 Tf (\) that support) Tj T* 0 Tw 1.182739 Tw (escape, upward, & multi-shot invocation. A peephole optimizer, inline cache, & constant folder tighten the) Tj T* 0 Tw 1.242362 Tw (generated bytecode. A portal system serializes the entire machine state \(environment, continuation stack,) Tj T* 0 Tw (instruction pointer\) to JSON & resumes it on another machine.) Tj T* ET Q Q q -1 0 0 1 57.02362 127.2013 cm +1 0 0 1 57.02362 115.2013 cm q BT 1 0 0 1 0 38 Tm .352397 Tw 12 TL /F1 10 Tf 0 0 0 rg (The paper further presents the EML universality proof: a single operator ) Tj /F5 10 Tf (eml\(x,) Tj ( ) Tj (y\)) Tj ( ) Tj (=) Tj ( ) Tj (exp\(x\)) Tj ( ) Tj (-) Tj ( ) Tj (ln\(y\)) Tj /F1 10 Tf T* 0 Tw .548453 Tw (with the constant 1 generates all elementary functions \(exp, ln, arithmetic, negation, complex plane access,) Tj T* 0 Tw .319873 Tw (trigonometry\). Verified numerically in Python, verified in uncommonlisp's own bytecode, & proven formally in) Tj T* 0 Tw (Lean 4 with zero ) Tj /F5 10 Tf (sorry) Tj /F1 10 Tf (.) Tj T* ET Q Q q -1 0 0 1 57.02362 109.2013 cm +1 0 0 1 57.02362 97.20126 cm q 0 0 0 rg BT 1 0 0 1 0 2 Tm /F1 10 Tf 12 TL (Feedback is the primitive. Continuations are the mechanism. One file is the proof.) Tj T* ET @@ -616,7 +626,7 @@ Q endstream endobj -81 0 obj +82 0 obj << /Length 8838 >> @@ -923,7 +933,7 @@ Q endstream endobj -82 0 obj +83 0 obj << /Length 6882 >> @@ -1255,7 +1265,7 @@ Q endstream endobj -83 0 obj +84 0 obj << /Length 7084 >> @@ -1620,7 +1630,7 @@ Q endstream endobj -84 0 obj +85 0 obj << /Length 9324 >> @@ -2083,7 +2093,7 @@ Q endstream endobj -85 0 obj +86 0 obj << /Length 12432 >> @@ -2762,7 +2772,7 @@ Q endstream endobj -86 0 obj +87 0 obj << /Length 7218 >> @@ -3182,7 +3192,7 @@ Q endstream endobj -87 0 obj +88 0 obj << /Length 6103 >> @@ -3367,7 +3377,7 @@ Q endstream endobj -88 0 obj +89 0 obj << /Length 10228 >> @@ -3717,7 +3727,7 @@ Q endstream endobj -89 0 obj +90 0 obj << /Length 11180 >> @@ -4219,7 +4229,7 @@ Q endstream endobj -90 0 obj +91 0 obj << /Length 6883 >> @@ -4490,7 +4500,7 @@ Q endstream endobj -91 0 obj +92 0 obj << /Length 7705 >> @@ -4759,7 +4769,7 @@ Q endstream endobj -92 0 obj +93 0 obj << /Length 6975 >> @@ -5004,9 +5014,9 @@ Q endstream endobj -93 0 obj +94 0 obj << -/Length 1048 +/Length 2111 >> stream 1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET @@ -5068,7 +5078,7 @@ BT 1 0 0 1 0 2 Tm /F4 10 Tf 12 TL 155.3042 0 Td (GNU Affero General Public Licen Q Q q -1 0 0 1 57.02362 261.2922 cm +1 0 0 1 57.02362 69.29221 cm q q 1 0 0 1 0 0 cm @@ -5078,11 +5088,10 @@ q .662745 .662745 .662745 RG .5 w .960784 .960784 .960784 rg -n -6 -6 480.0283 21.6 re B* +n -6 -6 480.0283 213.6 re B* Q q -0 0 0 rg -BT 1 0 0 1 0 1.6 Tm /F5 8 Tf 9.6 TL (AGPL-3.0-only) Tj T* ET +BT 1 0 0 1 0 193.6 Tm 9.6 TL /F5 8 Tf 0 0 0 rg (AGPL-3.0-only) Tj T* T* (PERMACOMPUTER PREAMBLE - NO WARRANTY) Tj T* T* (This is free software for the public good of a permacomputer hosted at) Tj T* (permacomputer.com, an always-on computer by the people, for the people. One) Tj T* (which is durable, easy to repair, ) Tj (&) Tj ( distributed like tap water for machine) Tj T* (learning intelligence.) Tj T* T* (The permacomputer is community-owned infrastructure optimized around four values:) Tj T* T* ( TRUTH - Source code must be open source ) Tj (&) Tj ( freely distributed) Tj T* ( FREEDOM - Voluntary participation without corporate control) Tj T* ( HARMONY - Systems operating with minimal waste that self-renew) Tj T* ( LOVE - Individual rights protected while fostering cooperation) Tj T* T* (This software contributes to that vision by proving that feedback) Tj T* (\(the computational primitive of continuations\) composes into a universal) Tj T* (execution model. Four implementations, one language, 836 tests, 12,774) Tj T* (lines. Code is seeds to sprout on any abandoned technology.) Tj T* T* ET Q Q Q @@ -5091,85 +5100,119 @@ Q endstream endobj -94 0 obj -<< -/Nums [ 0 95 0 R 1 96 0 R 2 97 0 R 3 98 0 R 4 99 0 R - 5 100 0 R 6 101 0 R 7 102 0 R 8 103 0 R 9 104 0 R - 10 105 0 R 11 106 0 R 12 107 0 R 13 108 0 R ] ->> -endobj 95 0 obj << -/S /D /St 1 +/Length 1083 >> +stream +1 0 0 1 0 0 cm BT /F1 12 Tf 14.4 TL ET +q +1 0 0 1 57.02362 588.6236 cm +q +q +1 0 0 1 0 0 cm +q +1 0 0 1 6.6 6.6 cm +q +.662745 .662745 .662745 RG +.5 w +.960784 .960784 .960784 rg +n -6 -6 480.0283 175.2 re B* +Q +q +BT 1 0 0 1 0 155.2 Tm 9.6 TL /F5 8 Tf 0 0 0 rg (Learn more: https://www.permacomputer.com) Tj T* T* (NO WARRANTY. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND.) Tj T* T* (That said, our permacomputer's digital membrane stratum continuously runs unit,) Tj T* (integration, ) Tj (&) Tj ( functional tests on all of its own software, with our) Tj T* (permacomputer monitoring itself, repairing itself, with minimal human in the) Tj T* (loop guidance. Our machine learning agents do their best to leave no stone) Tj T* (unturned.) Tj T* T* (Copyright \(C\) 2025-2026 TimeHexOn ) Tj (&) Tj ( foxhop ) Tj (&) Tj ( russell@unturf) Tj T* (https://www.timehexon.com) Tj T* (https://www.foxhop.net) Tj T* (https://www.unturf.com/software) Tj T* (https://www.permacomputer.com) Tj T* (https://uncloseai.com) Tj T* (https://russell.ballestrini.net) Tj T* ET +Q +Q +Q +Q +Q + +endstream endobj 96 0 obj << -/S /D /St 2 +/Nums [ 0 97 0 R 1 98 0 R 2 99 0 R 3 100 0 R 4 101 0 R + 5 102 0 R 6 103 0 R 7 104 0 R 8 105 0 R 9 106 0 R + 10 107 0 R 11 108 0 R 12 109 0 R 13 110 0 R 14 111 0 R ] >> endobj 97 0 obj << -/S /D /St 3 +/S /D /St 1 >> endobj 98 0 obj << -/S /D /St 4 +/S /D /St 2 >> endobj 99 0 obj << -/S /D /St 5 +/S /D /St 3 >> endobj 100 0 obj << -/S /D /St 6 +/S /D /St 4 >> endobj 101 0 obj << -/S /D /St 7 +/S /D /St 5 >> endobj 102 0 obj << -/S /D /St 8 +/S /D /St 6 >> endobj 103 0 obj << -/S /D /St 9 +/S /D /St 7 >> endobj 104 0 obj << -/S /D /St 10 +/S /D /St 8 >> endobj 105 0 obj << -/S /D /St 11 +/S /D /St 9 >> endobj 106 0 obj << -/S /D /St 12 +/S /D /St 10 >> endobj 107 0 obj << -/S /D /St 13 +/S /D /St 11 >> endobj 108 0 obj << +/S /D /St 12 +>> +endobj +109 0 obj +<< +/S /D /St 13 +>> +endobj +110 0 obj +<< /S /D /St 14 >> endobj +111 0 obj +<< +/S /D /St 15 +>> +endobj xref -0 109 +0 112 0000000000 65535 f 0000000061 00000 n 0000000143 00000 n @@ -5204,91 +5247,94 @@ xref 0001598907 00000 n 0001599217 00000 n 0001599535 00000 n -0001599641 00000 n -0001599896 00000 n -0001599971 00000 n -0001600121 00000 n -0001600231 00000 n -0001600396 00000 n -0001600591 00000 n -0001600708 00000 n -0001600826 00000 n -0001600968 00000 n -0001601168 00000 n -0001601303 00000 n -0001601439 00000 n -0001601609 00000 n -0001601733 00000 n -0001601864 00000 n -0001601986 00000 n -0001602182 00000 n -0001602299 00000 n -0001602426 00000 n -0001602556 00000 n -0001602748 00000 n -0001602867 00000 n -0001603001 00000 n -0001603139 00000 n -0001603284 00000 n -0001603467 00000 n -0001603585 00000 n -0001603742 00000 n -0001603880 00000 n -0001604028 00000 n -0001604178 00000 n -0001604316 00000 n -0001604451 00000 n -0001604602 00000 n -0001604794 00000 n -0001604901 00000 n -0001605091 00000 n -0001605247 00000 n -0001605411 00000 n -0001605543 00000 n -0001605673 00000 n -0001605815 00000 n -0001605938 00000 n -0001606063 00000 n -0001606172 00000 n -0001606328 00000 n -0001610519 00000 n -0001619409 00000 n -0001626343 00000 n -0001633479 00000 n -0001642855 00000 n -0001655340 00000 n -0001662610 00000 n -0001668765 00000 n -0001679046 00000 n -0001690279 00000 n -0001697214 00000 n -0001704971 00000 n -0001711998 00000 n -0001713098 00000 n -0001713275 00000 n -0001713309 00000 n -0001713343 00000 n -0001713377 00000 n -0001713411 00000 n -0001713445 00000 n -0001713480 00000 n -0001713515 00000 n -0001713550 00000 n -0001713585 00000 n -0001713621 00000 n -0001713657 00000 n -0001713693 00000 n -0001713729 00000 n +0001599741 00000 n +0001599847 00000 n +0001600102 00000 n +0001600177 00000 n +0001600327 00000 n +0001600437 00000 n +0001600602 00000 n +0001600797 00000 n +0001600914 00000 n +0001601032 00000 n +0001601174 00000 n +0001601374 00000 n +0001601509 00000 n +0001601645 00000 n +0001601815 00000 n +0001601939 00000 n +0001602070 00000 n +0001602192 00000 n +0001602388 00000 n +0001602505 00000 n +0001602632 00000 n +0001602762 00000 n +0001602954 00000 n +0001603073 00000 n +0001603207 00000 n +0001603345 00000 n +0001603490 00000 n +0001603673 00000 n +0001603791 00000 n +0001603948 00000 n +0001604086 00000 n +0001604234 00000 n +0001604384 00000 n +0001604522 00000 n +0001604657 00000 n +0001604808 00000 n +0001605000 00000 n +0001605107 00000 n +0001605297 00000 n +0001605453 00000 n +0001605617 00000 n +0001605749 00000 n +0001605879 00000 n +0001606021 00000 n +0001606144 00000 n +0001606269 00000 n +0001606378 00000 n +0001606541 00000 n +0001610881 00000 n +0001619771 00000 n +0001626705 00000 n +0001633841 00000 n +0001643217 00000 n +0001655702 00000 n +0001662972 00000 n +0001669127 00000 n +0001679408 00000 n +0001690641 00000 n +0001697576 00000 n +0001705333 00000 n +0001712360 00000 n +0001714523 00000 n +0001715658 00000 n +0001715848 00000 n +0001715882 00000 n +0001715916 00000 n +0001715950 00000 n +0001715985 00000 n +0001716020 00000 n +0001716055 00000 n +0001716090 00000 n +0001716125 00000 n +0001716160 00000 n +0001716196 00000 n +0001716232 00000 n +0001716268 00000 n +0001716304 00000 n +0001716340 00000 n trailer << /ID -[<43659c987f79274c7d5230cd31c3cbde><43659c987f79274c7d5230cd31c3cbde>] +[<68a895ef6e6cc348356e330c3719f07d><68a895ef6e6cc348356e330c3719f07d>] % ReportLab generated PDF document -- digest (opensource) -/Info 34 0 R -/Root 33 0 R -/Size 109 +/Info 35 0 R +/Root 34 0 R +/Size 112 >> startxref -1713765 +1716376 %%EOF diff --git a/whitepaper/uncommonlisp-whitepaper.rst b/whitepaper/uncommonlisp-whitepaper.rst index 8209891..234c71e 100644 --- a/whitepaper/uncommonlisp-whitepaper.rst +++ b/whitepaper/uncommonlisp-whitepaper.rst @@ -13,8 +13,10 @@ .. .. This software contributes to that vision by proving that feedback .. (the computational primitive of continuations) composes into a universal -.. execution model: a complete Scheme in 3,261 lines of Python, with a -.. bytecode VM, full continuations, & machine state serialization, +.. execution model: a complete Scheme in four implementations (Python, +.. C with x86_64 JIT, pure assembly), with a bytecode VM, full +.. continuations, machine state serialization, & an antimoad scanner +.. that catches the defects our training data encodes, .. under AGPL-3.0-only. .. Code is seeds to sprout on any abandoned technology. @@ -56,7 +58,7 @@ Abstract A programming language needs one primitive to become universal: feedback. A function that receives its own continuation can loop, branch, yield, checkpoint, resume, & migrate. Every control flow pattern reduces to a continuation captured & invoked. -**uncommonlisp** proves this by implementing a complete Scheme in a single Python file (3,261 lines, zero external dependencies beyond the standard library). A stack-based bytecode compiler achieves 7--19x speedups over tree-walking interpretation. An explicit frame stack replaces Python's call stack, enabling tail-call optimization of arbitrary depth & full first-class continuations (``call/cc``) that support escape, upward, & multi-shot invocation. A peephole optimizer, inline cache, & constant folder tighten the generated bytecode. A portal system serializes the entire machine state (environment, continuation stack, instruction pointer) to JSON & resumes it on another machine. +**uncommonlisp** proves this by implementing a complete Scheme in four ways: a single Python file (3,324 lines), a C implementation with x86_64 JIT (9,429 lines, 10--24x faster than CPython), and a pure x86_64 assembly interpreter (2,592 lines, 13KB binary, zero dependencies). A stack-based bytecode compiler achieves 7--19x speedups over tree-walking interpretation. An explicit frame stack replaces Python's call stack, enabling tail-call optimization of arbitrary depth & full first-class continuations (``call/cc``) that support escape, upward, & multi-shot invocation. A peephole optimizer, inline cache, & constant folder tighten the generated bytecode. A portal system serializes the entire machine state (environment, continuation stack, instruction pointer) to JSON & resumes it on another machine. The paper further presents the EML universality proof: a single operator ``eml(x, y) = exp(x) - ln(y)`` with the constant 1 generates all elementary functions (exp, ln, arithmetic, negation, complex plane access, trigonometry). Verified numerically in Python, verified in uncommonlisp's own bytecode, & proven formally in Lean 4 with zero ``sorry``. @@ -733,3 +735,40 @@ License :: AGPL-3.0-only + + PERMACOMPUTER PREAMBLE - NO WARRANTY + + This is free software for the public good of a permacomputer hosted at + permacomputer.com, an always-on computer by the people, for the people. One + which is durable, easy to repair, & distributed like tap water for machine + learning intelligence. + + The permacomputer is community-owned infrastructure optimized around four values: + + TRUTH - Source code must be open source & freely distributed + FREEDOM - Voluntary participation without corporate control + HARMONY - Systems operating with minimal waste that self-renew + LOVE - Individual rights protected while fostering cooperation + + This software contributes to that vision by proving that feedback + (the computational primitive of continuations) composes into a universal + execution model. Four implementations, one language, 836 tests, 12,774 + lines. Code is seeds to sprout on any abandoned technology. + + Learn more: https://www.permacomputer.com + + NO WARRANTY. THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. + + That said, our permacomputer's digital membrane stratum continuously runs unit, + integration, & functional tests on all of its own software, with our + permacomputer monitoring itself, repairing itself, with minimal human in the + loop guidance. Our machine learning agents do their best to leave no stone + unturned. + + Copyright (C) 2025-2026 TimeHexOn & foxhop & russell@unturf + https://www.timehexon.com + https://www.foxhop.net + https://www.unturf.com/software + https://www.permacomputer.com + https://uncloseai.com + https://russell.ballestrini.net