@fraczak/k 6.1.1 → 6.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/.codex +0 -0
  2. package/Code-derivation-tests/pattern-envelope.mjs +26 -0
  3. package/DOCS/BIG_PICTURE.md +10 -10
  4. package/DOCS/DIVERGENCE_DETECTION.md +1 -1
  5. package/DOCS/REPL.md +33 -0
  6. package/DOCS/TYPE_DERIVATION.md +12 -12
  7. package/DOCS/a.html +398 -0
  8. package/DOCS/book/01-introduction.md +2 -2
  9. package/DOCS/book/02-syntax-and-values.md +8 -8
  10. package/DOCS/book/03-types-as-finite-automata.md +2 -2
  11. package/DOCS/book/04-partial-functions-and-composition.md +2 -2
  12. package/DOCS/book/05-typing-filters-and-normalization.md +3 -3
  13. package/DOCS/book/06-values-in-memory.md +3 -3
  14. package/DOCS/book/07-the-partial-function-abi.md +1 -1
  15. package/DOCS/book/08-operational-semantics-and-execution.md +1 -1
  16. package/DOCS/book/09-compiler-architecture.md +2 -2
  17. package/DOCS/book/appendix-b-incorporating-external-predefined-types-and-functions.md +1 -0
  18. package/DOCS/dependency-graph.html +140 -0
  19. package/DOCS/dependency-graph.md +144 -0
  20. package/NAT.k~ +452 -0
  21. package/README.md +7 -8
  22. package/UU/ta.k +1 -0
  23. package/UU/ta.k~ +0 -0
  24. package/UU/tb.k +0 -0
  25. package/UU/tc.k +0 -0
  26. package/a.k +138 -0
  27. package/a.klib +1 -0
  28. package/codecs/BINARY_FORMAT.html +471 -0
  29. package/codecs/BINARY_FORMAT.md +1 -1
  30. package/codecs/POLYMORPHIC_BINARY_FORMAT.html +355 -0
  31. package/codecs/POLYMORPHIC_BINARY_FORMAT.md +1 -1
  32. package/codecs/ieee.mjs +19 -4
  33. package/codecs/int.mjs +11 -4
  34. package/codecs/json.mjs +7 -4
  35. package/codecs/k-parse.mjs +7 -4
  36. package/codecs/k-print.mjs +7 -4
  37. package/codecs/runtime/cli-entry.mjs +13 -0
  38. package/codecs/show.mjs +7 -4
  39. package/codecs/unit.mjs +23 -8
  40. package/codecs/utf16.mjs +27 -5
  41. package/codecs/utf8.mjs +27 -5
  42. package/codes.mjs +14 -33
  43. package/core.json +1 -0
  44. package/core.klib +1 -0
  45. package/core.klib~ +0 -0
  46. package/export.mjs +3 -3
  47. package/ieee.klib +1 -0
  48. package/k-vscode/package-lock.json +4176 -0
  49. package/kkk.k +197 -0
  50. package/kkk.klib +0 -0
  51. package/kkk.klib~ +0 -0
  52. package/nak.klib +1 -0
  53. package/nak2.klib +1 -0
  54. package/nat.k +10 -0
  55. package/nat2.k +9 -0
  56. package/object.mjs +20 -7
  57. package/p.json +5475 -0
  58. package/package.json +3 -2
  59. package/repl-codecs.mjs +173 -0
  60. package/repl.mjs +215 -5
  61. package/run.mjs +16 -2
  62. package/scripts/benchmark-idempotency.mjs +72 -0
  63. package/test-ieee-arithmetic.mjs +93 -0
  64. package/test-k-object.mjs +19 -0
  65. package/test-repl.mjs +60 -1
  66. package/tests.sh +10 -1
  67. package/type_registry/registry.mjs~ +105 -0
  68. package/type_registry/typeParser.jison~ +132 -0
  69. package/.idea/codeStyles/codeStyleConfig.xml +0 -5
  70. package/.idea/copilot.data.migration.agent.xml +0 -6
  71. package/.idea/copilot.data.migration.ask.xml +0 -6
  72. package/.idea/copilot.data.migration.ask2agent.xml +0 -6
  73. package/.idea/copilot.data.migration.edit.xml +0 -6
  74. package/.idea/k.iml +0 -9
  75. package/.idea/misc.xml +0 -6
  76. package/.idea/modules.xml +0 -8
  77. package/.idea/vcs.xml +0 -6
  78. package/k_compiler/runtime.c +0 -205
  79. package/k_compiler/runtime.h +0 -34
@@ -44,8 +44,8 @@ computation in a concise and understandable way.
44
44
 
45
45
  There is another concept in the language, called **filters**.
46
46
  Filters play a role in the process of reasoning about types of partial functions.
47
- Filters have been added to the syntax of the language as they allow explicit annotations
48
- of "polymorphic" expressions, i.e., expressions which make sense in different contexts.
47
+ Filters have been added to the syntax of the language because they allow explicit annotations
48
+ of "polymorphic" expressions, i.e., expressions that make sense in different contexts.
49
49
  Filters are similar to *type classes* in other languages.
50
50
 
51
51
  ---
@@ -10,7 +10,7 @@ $ type_name = ...type_expression... ;
10
10
  function_name = ...expression... ;
11
11
  ```
12
12
 
13
- The definitions are followed in the file by the *main expression*; it represents the partial function defined by the program as a whole.
13
+ The definitions are followed in the file by the *main expression*, which represents the partial function defined by the program as a whole.
14
14
 
15
15
  There is no syntax for values.
16
16
  Every syntactic form in an expression describes a **function** -- possibly a constant function that always returns the same value.
@@ -48,22 +48,22 @@ Every type denotes a finite tree automaton whose accepted trees are the possible
48
48
 
49
49
  ## **2.4 Projections**
50
50
 
51
- **Dot** notation, e.g.,
51
+ **Dot** notation, e.g.,
52
52
 
53
53
  ```k
54
54
  . field_name
55
55
  ```
56
56
 
57
57
  is used for extracting the value of a field from a record (product type value).
58
- **Div** notation, e.g.,
58
+ **Div** notation, e.g.,
59
59
 
60
60
  ```k
61
61
  / variant_name
62
62
  ```
63
63
 
64
64
  is used for asserting a particular variant of a union and extracting its value.
65
- Product type `{ T₁ l₁, T₂ l₂, … , Tₙ lₙ }` naturally defines `n` partial functions: `.l₁, .l₂, … , .lₙ`,
66
- and union type `< T₁ l₁, T₂ l₂, … , Tₙ lₙ >` naturally defines `n` partial functions `/l₁, /l₂, … , /lₙ`.
65
+ A product type `{ T₁ l₁, T₂ l₂, … , Tₙ lₙ }` naturally defines `n` partial functions: `.l₁, .l₂, … , .lₙ`,
66
+ and a union type `< T₁ l₁, T₂ l₂, … , Tₙ lₙ >` naturally defines `n` partial functions `/l₁, /l₂, … , /lₙ`.
67
67
  Those partial functions are called **projections** and they constitute the basis for the definition
68
68
  of all other partial functions in the `k` language.
69
69
 
@@ -81,10 +81,10 @@ Expressions combine partial functions using the following operators:
81
81
  Parentheses around a composition may be omitted except for the empty composition `()` — the identity function.
82
82
  Empty product, `{ }`, defines a constant function (ignoring its input) returning *unit*.
83
83
 
84
- It is important to notice that after the three markers: `dot (.)`, `div (/)`, or `pipe (|)`, there must be a constant label literal. For that reason, it is possible and advised not to leave any blanks after the marker, e.g.:
84
+ It is important to notice that after the three markers `dot (.)`, `div (/)`, or `pipe (|)`, there must be a constant label literal. For that reason, it is possible and recommended not to leave any blanks after the marker, e.g.:
85
85
 
86
86
  ```k-lang
87
- .field /'a-tag' |"strange and long tag name ✅"
87
+ .field /'a-tag' |"strange and long tag name ✅"
88
88
  ```
89
89
 
90
90
  ---
@@ -105,7 +105,7 @@ This defines a "two-variant" union type and three functions: two constants and o
105
105
  ## **2.7 Summary**
106
106
 
107
107
  * All types describe tree shapes.
108
- * As type expression, `{}` is the empty product type (with one value, called *unit*).
108
+ * As a type expression, `{}` is the empty product type (with one value, called *unit*).
109
109
  * Functions, not values, are the only expressions in `k`.
110
110
 
111
111
  ---
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## **3.1 Motivation**
4
4
 
5
- A type in `k` describes a set of finite labeled trees, which can be recognized by a finite tree automaton (FTA). Equivalently, a type definition can be seen as a Context-Free Grammar (CFG), where the values of the type are the derivation trees of the grammar.
5
+ A type in `k` describes a set of finite labeled trees, which can be recognized by a finite tree automaton (FTA). Equivalently, a type definition can be seen as a context-free grammar (CFG), where the values of the type are the derivation trees of the grammar.
6
6
 
7
7
  For example, the recursive type definition of a `list`:
8
8
 
@@ -31,7 +31,7 @@ A value of type `list` is a derivation tree of this grammar. For instance, a lis
31
31
  -- (rule 1) --> {} |true
32
32
  ```
33
33
 
34
- This derivation tree corresponds to the value generated by constant function: `{ {} |true head, {} |nil tail } |cons`.
34
+ This derivation tree corresponds to the value generated by the constant function `{ {} |true head, {} |nil tail } |cons`.
35
35
 
36
36
  Representing types as automata (or CFGs) provides each type with a well-defined structure, independent of the names used in the source code. This allows for canonical normal forms and for comparing types for equality by structure alone.
37
37
 
@@ -91,7 +91,7 @@ Here, `true_bool` and `false_bool` are constant functions. They are also **total
91
91
 
92
92
  ---
93
93
 
94
- ## **4.6 Projection and Variant Value constructor**
94
+ ## **4.6 Projection and variant value constructors**
95
95
 
96
96
  Projection selects a field or a variant from a product or union.
97
97
  It is written with a leading dot `.` or a leading slash `/`, respectively:
@@ -141,6 +141,6 @@ The empty product `{}` is the constant function returning the unit value.
141
141
  * **Product composition** `{...}` runs functions in parallel and gathers their results.
142
142
  * **Union composition** `<...>` tries functions in order, returning the first successful result.
143
143
  * **Projections** (`.x`, `/x`) are fundamental building blocks for accessing data structures.
144
- * **Variant constructor** (`|tag`) allows lifting a value into a variant type value.
144
+ * **Variant constructors** (`|tag`) allow lifting a value into a variant type value.
145
145
 
146
146
  ---
@@ -87,13 +87,13 @@ Here:
87
87
 
88
88
  ## **5.6 Type inference and normalization**
89
89
 
90
- Every `k` program can be analyzed to assign an input and an output filter to every sub-expression. This process is called type inference abd normalization.
90
+ Every `k` program can be analyzed to assign an input and an output filter to every sub-expression. This process is called type inference and normalization.
91
91
 
92
- Type inference and normalization proceeds as follows:
92
+ Type inference and normalization proceed as follows:
93
93
 
94
94
  1. Build a graph of all type references appearing explicitly and implicitly in the program.
95
95
  2. Annotate each expression node with a pair of (input filter, output filter).
96
- 3. Replace filters that match a single, concrete type with that type expression, adding any newly-discovered types to the graph.
96
+ 3. Replace filters that match a single, concrete type with that type expression, adding any newly discovered types to the graph.
97
97
  4. Repeat until a fixed point is reached and no more changes occur.
98
98
  5. Compute canonical forms for all newly introduced types.
99
99
 
@@ -138,7 +138,7 @@ The value `{}|_|0|1` or in JSON-like notation `{1:{0:{_:{}}}}` (binary 10₂ = d
138
138
  01 00 10
139
139
  ```
140
140
 
141
- This represents the left-most derivation of `{}|_|0|1` from `C0`.
141
+ This represents the leftmost derivation of `{}|_|0|1` from `C0`.
142
142
 
143
143
  #### **Prefix-free property**
144
144
 
@@ -304,7 +304,7 @@ Without DAG: Each "Engineering" string encoded separately
304
304
  - 1000 records × 30 bytes/record = 30KB
305
305
 
306
306
  With DAG: "Engineering" string shared via back-references
307
- - 1 × "Engineering" (11 bytes) + 800 × back-reference (3 bytes) = 2.4KB
307
+ - 1 × "Engineering" (11 bytes) + 800 × back-reference (3 bytes) = 2.4 KB
308
308
  - Compression ratio: ~12.5×
309
309
  ```
310
310
 
@@ -1061,7 +1061,7 @@ The final encoding strategy balances theoretical optimality with practical hardw
1061
1061
  - **Decode performance**: 5-10× faster than bit-level encoding
1062
1062
  - **Cache behavior**: Excellent (word-aligned, sequential access)
1063
1063
  - **SIMD compatibility**: Yes (bulk discriminator processing)
1064
- - **Architecture agnostic**: Optimized for x86-64 and ARM64
1064
+ - **Architecture-agnostic**: Optimized for x86-64 and ARM64
1065
1065
 
1066
1066
  **Performance characteristics**:
1067
1067
 
@@ -3,7 +3,7 @@
3
3
  ## **7.1 Purpose**
4
4
 
5
5
  The **application binary interface (ABI)** defines how partial functions in `k` are represented and invoked at runtime.
6
- Its goal is to make all functions - whether user-defined or compiled - compatible with the same calling convention and data layout.
6
+ Its goal is to make all functions, whether user-defined or compiled, compatible with the same calling convention and data layout.
7
7
 
8
8
  Every compiled `k` function receives a single argument (a runtime value) and may either produce a result or remain undefined.
9
9
  The ABI provides a uniform way to express both outcomes.
@@ -133,7 +133,7 @@ otherwise it is an identity
133
133
  ⟨ ?F , v ⟩ ⇓ v
134
134
  ```
135
135
 
136
- Filters therefore act as compile time annotations for type checking only.
136
+ Filters therefore act as compile-time annotations for type checking only.
137
137
  As operations they are identities at run time, unless they lead to fully typed
138
138
  expressions (i.e., can be replaced by a type). Their pattern information may
139
139
  still be present on the runtime value because values can carry codec patterns.
@@ -44,7 +44,7 @@ Each stage transforms one representation of the program into another, simpler on
44
44
 
45
45
  A minimal compiler can be viewed as three connected modules:
46
46
 
47
- * **Front end** — reads source code, builds the AST, performs type analysis.
47
+ * **Front end** — reads source code, builds the AST, and performs type analysis.
48
48
  * **Middle** — resolves all references, normalizes types, and simplifies expressions.
49
49
  * **Back end** — produces the executable form.
50
50
 
@@ -107,7 +107,7 @@ For `k`, the IR mirrors the structure of partial functions:
107
107
 
108
108
  | Concept in k | IR operation |
109
109
  | --------------------- | -------------------------------- |
110
- | Projection `.x` '/x' | `PROJECT label_id` |
110
+ | Projection `.x` `/x` | `PROJECT label_id` |
111
111
  | Composition `(f g)` | `CALL f; CALL g` |
112
112
  | Union `<f,g>` | `TRY f; IF undefined THEN TRY g` |
113
113
  | Product `{.x f, .y g}` | `PRODUCT_CALL (f, g); COMBINE` |
@@ -1,4 +1,5 @@
1
1
  # Appendix B — Incorporating External Predefined Types and Functions
2
+
2
3
  ## **B.1 Purpose**
3
4
 
4
5
  The k language is intentionally minimal.
@@ -0,0 +1,140 @@
1
+ <h1 id="project-dependency-graph">Project Dependency Graph</h1>
2
+ <p><em>Auto-generated by scripts/generate-dependency-graph.mjs.</em></p>
3
+ <pre class="mermaid"><code>graph TD
4
+ classDef default fill:#fff,stroke:#333,stroke-width:2px,color:#000;
5
+
6
+ Graph_mjs[&quot;Graph.mjs (1.9 KB)&lt;br/&gt;██&quot;]
7
+ TypeGraph_mjs[&quot;TypeGraph.mjs (1.1 KB)&lt;br/&gt;█&quot;]
8
+ TypePatternGraph_mjs[&quot;TypePatternGraph.mjs (8.0 KB)&lt;br/&gt;████████&quot;]
9
+ Value_mjs[&quot;Value.mjs (5.4 KB)&lt;br/&gt;█████&quot;]
10
+ augmentation_mjs[&quot;augmentation.mjs (6.9 KB)&lt;br/&gt;███████&quot;]
11
+ codecs_example_pipeline_mjs[&quot;codecs/example-pipeline.mjs (5.1 KB)&lt;br/&gt;█████&quot;]
12
+ codecs_ieee_mjs[&quot;codecs/ieee.mjs (4.3 KB)&lt;br/&gt;████&quot;]
13
+ codecs_int_mjs[&quot;codecs/int.mjs (3.5 KB)&lt;br/&gt;████&quot;]
14
+ codecs_json_codec_mjs[&quot;codecs/json-codec.mjs (6.2 KB)&lt;br/&gt;██████&quot;]
15
+ codecs_json_mjs[&quot;codecs/json.mjs (1.5 KB)&lt;br/&gt;██&quot;]
16
+ codecs_k_parse_mjs[&quot;codecs/k-parse.mjs (3.0 KB)&lt;br/&gt;███&quot;]
17
+ codecs_k_print_mjs[&quot;codecs/k-print.mjs (1.5 KB)&lt;br/&gt;██&quot;]
18
+ codecs_runtime_codec_mjs[&quot;codecs/runtime/codec.mjs (25.7 KB)&lt;br/&gt;████████████████████&quot;]
19
+ codecs_runtime_ieee_pattern_mjs[&quot;codecs/runtime/ieee-pattern.mjs (1.1 KB)&lt;br/&gt;█&quot;]
20
+ codecs_runtime_pattern_json_mjs[&quot;codecs/runtime/pattern-json.mjs (3.5 KB)&lt;br/&gt;███&quot;]
21
+ codecs_runtime_prefix_codec_mjs[&quot;codecs/runtime/prefix-codec.mjs (13.7 KB)&lt;br/&gt;██████████████&quot;]
22
+ codecs_runtime_show_value_mjs[&quot;codecs/runtime/show-value.mjs (2.1 KB)&lt;br/&gt;██&quot;]
23
+ codecs_runtime_test_codec_mjs[&quot;codecs/runtime/test-codec.mjs (3.0 KB)&lt;br/&gt;███&quot;]
24
+ codecs_runtime_typeFromValue_mjs[&quot;codecs/runtime/typeFromValue.mjs (0.9 KB)&lt;br/&gt;█&quot;]
25
+ codecs_runtime_unicode_string_mjs[&quot;codecs/runtime/unicode-string.mjs (7.5 KB)&lt;br/&gt;████████&quot;]
26
+ codecs_show_mjs[&quot;codecs/show.mjs (1.5 KB)&lt;br/&gt;██&quot;]
27
+ codecs_string_codec_mjs[&quot;codecs/string-codec.mjs (4.5 KB)&lt;br/&gt;█████&quot;]
28
+ codecs_unit_mjs[&quot;codecs/unit.mjs (1.6 KB)&lt;br/&gt;██&quot;]
29
+ codecs_utf16_mjs[&quot;codecs/utf16.mjs (2.2 KB)&lt;br/&gt;██&quot;]
30
+ codecs_utf8_mjs[&quot;codecs/utf8.mjs (1.3 KB)&lt;br/&gt;█&quot;]
31
+ codes_mjs[&quot;codes.mjs (9.9 KB)&lt;br/&gt;██████████&quot;]
32
+ compiler_mjs[&quot;compiler.mjs (3.9 KB)&lt;br/&gt;████&quot;]
33
+ convergence_mjs[&quot;convergence.mjs (6.5 KB)&lt;br/&gt;██████&quot;]
34
+ export_mjs[&quot;export.mjs (5.2 KB)&lt;br/&gt;█████&quot;]
35
+ hash_mjs[&quot;hash.mjs (1.1 KB)&lt;br/&gt;█&quot;]
36
+ index_mjs[&quot;index.mjs (1.9 KB)&lt;br/&gt;██&quot;]
37
+ k_mjs[&quot;k.mjs (2.7 KB)&lt;br/&gt;███&quot;]
38
+ object_mjs[&quot;object.mjs (26.3 KB)&lt;br/&gt;████████████████████&quot;]
39
+ pretty_mjs[&quot;pretty.mjs (5.6 KB)&lt;br/&gt;██████&quot;]
40
+ repl_mjs[&quot;repl.mjs (29.3 KB)&lt;br/&gt;████████████████████&quot;]
41
+ run_mjs[&quot;run.mjs (14.4 KB)&lt;br/&gt;██████████████&quot;]
42
+ symbol_table_mjs[&quot;symbol-table.mjs (2.7 KB)&lt;br/&gt;███&quot;]
43
+ typing_mjs[&quot;typing.mjs (4.9 KB)&lt;br/&gt;█████&quot;]
44
+ unification_mjs[&quot;unification.mjs (5.4 KB)&lt;br/&gt;█████&quot;]
45
+ valueIO_mjs[&quot;valueIO.mjs (1.8 KB)&lt;br/&gt;██&quot;]
46
+
47
+ TypePatternGraph_mjs --&gt; Graph_mjs
48
+ TypePatternGraph_mjs --&gt; unification_mjs
49
+ TypePatternGraph_mjs --&gt; TypeGraph_mjs
50
+ augmentation_mjs --&gt; codes_mjs
51
+ codecs_example_pipeline_mjs --&gt; codecs_runtime_codec_mjs
52
+ codecs_example_pipeline_mjs --&gt; codecs_runtime_prefix_codec_mjs
53
+ codecs_example_pipeline_mjs --&gt; codecs_runtime_pattern_json_mjs
54
+ codecs_example_pipeline_mjs --&gt; Value_mjs
55
+ codecs_example_pipeline_mjs --&gt; hash_mjs
56
+ codecs_ieee_mjs --&gt; Value_mjs
57
+ codecs_ieee_mjs --&gt; codecs_runtime_prefix_codec_mjs
58
+ codecs_ieee_mjs --&gt; codecs_runtime_ieee_pattern_mjs
59
+ codecs_int_mjs --&gt; Value_mjs
60
+ codecs_int_mjs --&gt; codecs_runtime_prefix_codec_mjs
61
+ codecs_json_codec_mjs --&gt; Value_mjs
62
+ codecs_json_codec_mjs --&gt; codecs_string_codec_mjs
63
+ codecs_json_codec_mjs --&gt; codecs_runtime_ieee_pattern_mjs
64
+ codecs_json_mjs --&gt; codecs_runtime_prefix_codec_mjs
65
+ codecs_json_mjs --&gt; codecs_json_codec_mjs
66
+ codecs_k_parse_mjs --&gt; index_mjs
67
+ codecs_k_parse_mjs --&gt; valueIO_mjs
68
+ codecs_k_parse_mjs --&gt; codecs_runtime_codec_mjs
69
+ codecs_k_parse_mjs --&gt; codecs_runtime_pattern_json_mjs
70
+ codecs_k_parse_mjs --&gt; codecs_runtime_prefix_codec_mjs
71
+ codecs_k_print_mjs --&gt; codecs_runtime_prefix_codec_mjs
72
+ codecs_runtime_codec_mjs --&gt; Value_mjs
73
+ codecs_runtime_codec_mjs --&gt; TypePatternGraph_mjs
74
+ codecs_runtime_codec_mjs --&gt; typing_mjs
75
+ codecs_runtime_codec_mjs --&gt; codes_mjs
76
+ codecs_runtime_codec_mjs --&gt; codecs_runtime_pattern_json_mjs
77
+ codecs_runtime_ieee_pattern_mjs --&gt; codes_mjs
78
+ codecs_runtime_ieee_pattern_mjs --&gt; codecs_runtime_codec_mjs
79
+ codecs_runtime_ieee_pattern_mjs --&gt; codecs_runtime_pattern_json_mjs
80
+ codecs_runtime_prefix_codec_mjs --&gt; Value_mjs
81
+ codecs_runtime_prefix_codec_mjs --&gt; codecs_runtime_codec_mjs
82
+ codecs_runtime_prefix_codec_mjs --&gt; codecs_runtime_pattern_json_mjs
83
+ codecs_runtime_prefix_codec_mjs --&gt; codecs_runtime_unicode_string_mjs
84
+ codecs_runtime_show_value_mjs --&gt; Value_mjs
85
+ codecs_runtime_test_codec_mjs --&gt; codecs_runtime_codec_mjs
86
+ codecs_runtime_test_codec_mjs --&gt; codecs_runtime_prefix_codec_mjs
87
+ codecs_runtime_test_codec_mjs --&gt; codecs_runtime_pattern_json_mjs
88
+ codecs_runtime_test_codec_mjs --&gt; Value_mjs
89
+ codecs_runtime_test_codec_mjs --&gt; hash_mjs
90
+ codecs_runtime_typeFromValue_mjs --&gt; Value_mjs
91
+ codecs_runtime_unicode_string_mjs --&gt; Value_mjs
92
+ codecs_show_mjs --&gt; codecs_runtime_prefix_codec_mjs
93
+ codecs_show_mjs --&gt; codecs_runtime_show_value_mjs
94
+ codecs_string_codec_mjs --&gt; codecs_runtime_codec_mjs
95
+ codecs_string_codec_mjs --&gt; codecs_runtime_prefix_codec_mjs
96
+ codecs_string_codec_mjs --&gt; codecs_runtime_pattern_json_mjs
97
+ codecs_string_codec_mjs --&gt; codecs_runtime_unicode_string_mjs
98
+ codecs_unit_mjs --&gt; Value_mjs
99
+ codecs_unit_mjs --&gt; codecs_runtime_prefix_codec_mjs
100
+ codecs_utf16_mjs --&gt; codecs_string_codec_mjs
101
+ codecs_utf8_mjs --&gt; codecs_string_codec_mjs
102
+ codes_mjs --&gt; hash_mjs
103
+ compiler_mjs --&gt; hash_mjs
104
+ compiler_mjs --&gt; TypePatternGraph_mjs
105
+ compiler_mjs --&gt; Graph_mjs
106
+ compiler_mjs --&gt; codes_mjs
107
+ compiler_mjs --&gt; augmentation_mjs
108
+ compiler_mjs --&gt; export_mjs
109
+ compiler_mjs --&gt; convergence_mjs
110
+ convergence_mjs --&gt; pretty_mjs
111
+ convergence_mjs --&gt; typing_mjs
112
+ export_mjs --&gt; hash_mjs
113
+ export_mjs --&gt; pretty_mjs
114
+ index_mjs --&gt; Value_mjs
115
+ index_mjs --&gt; valueIO_mjs
116
+ index_mjs --&gt; compiler_mjs
117
+ index_mjs --&gt; run_mjs
118
+ index_mjs --&gt; codes_mjs
119
+ k_mjs --&gt; index_mjs
120
+ k_mjs --&gt; codecs_runtime_prefix_codec_mjs
121
+ k_mjs --&gt; object_mjs
122
+ object_mjs --&gt; index_mjs
123
+ object_mjs --&gt; run_mjs
124
+ object_mjs --&gt; codes_mjs
125
+ object_mjs --&gt; TypePatternGraph_mjs
126
+ object_mjs --&gt; pretty_mjs
127
+ pretty_mjs --&gt; TypePatternGraph_mjs
128
+ repl_mjs --&gt; index_mjs
129
+ repl_mjs --&gt; run_mjs
130
+ repl_mjs --&gt; codes_mjs
131
+ repl_mjs --&gt; Value_mjs
132
+ repl_mjs --&gt; pretty_mjs
133
+ repl_mjs --&gt; object_mjs
134
+ repl_mjs --&gt; codecs_runtime_show_value_mjs
135
+ run_mjs --&gt; Value_mjs
136
+ run_mjs --&gt; codecs_runtime_codec_mjs
137
+ run_mjs --&gt; codecs_runtime_pattern_json_mjs
138
+ symbol_table_mjs --&gt; hash_mjs
139
+ typing_mjs --&gt; TypePatternGraph_mjs
140
+ valueIO_mjs --&gt; Value_mjs</code></pre>
@@ -0,0 +1,144 @@
1
+ # Project Dependency Graph
2
+
3
+ _Auto-generated by scripts/generate-dependency-graph.mjs._
4
+
5
+ ```mermaid
6
+ graph TD
7
+ classDef default fill:#fff,stroke:#333,stroke-width:2px,color:#000;
8
+
9
+ Graph_mjs["Graph.mjs (1.9 KB)<br/>██"]
10
+ TypeGraph_mjs["TypeGraph.mjs (1.1 KB)<br/>█"]
11
+ TypePatternGraph_mjs["TypePatternGraph.mjs (8.0 KB)<br/>████████"]
12
+ Value_mjs["Value.mjs (5.4 KB)<br/>█████"]
13
+ augmentation_mjs["augmentation.mjs (6.9 KB)<br/>███████"]
14
+ codecs_example_pipeline_mjs["codecs/example-pipeline.mjs (5.1 KB)<br/>█████"]
15
+ codecs_ieee_mjs["codecs/ieee.mjs (4.3 KB)<br/>████"]
16
+ codecs_int_mjs["codecs/int.mjs (3.5 KB)<br/>████"]
17
+ codecs_json_codec_mjs["codecs/json-codec.mjs (6.2 KB)<br/>██████"]
18
+ codecs_json_mjs["codecs/json.mjs (1.5 KB)<br/>██"]
19
+ codecs_k_parse_mjs["codecs/k-parse.mjs (3.0 KB)<br/>███"]
20
+ codecs_k_print_mjs["codecs/k-print.mjs (1.5 KB)<br/>██"]
21
+ codecs_runtime_codec_mjs["codecs/runtime/codec.mjs (25.7 KB)<br/>████████████████████"]
22
+ codecs_runtime_ieee_pattern_mjs["codecs/runtime/ieee-pattern.mjs (1.1 KB)<br/>█"]
23
+ codecs_runtime_pattern_json_mjs["codecs/runtime/pattern-json.mjs (3.5 KB)<br/>███"]
24
+ codecs_runtime_prefix_codec_mjs["codecs/runtime/prefix-codec.mjs (13.7 KB)<br/>██████████████"]
25
+ codecs_runtime_show_value_mjs["codecs/runtime/show-value.mjs (2.1 KB)<br/>██"]
26
+ codecs_runtime_test_codec_mjs["codecs/runtime/test-codec.mjs (3.0 KB)<br/>███"]
27
+ codecs_runtime_typeFromValue_mjs["codecs/runtime/typeFromValue.mjs (0.9 KB)<br/>█"]
28
+ codecs_runtime_unicode_string_mjs["codecs/runtime/unicode-string.mjs (7.5 KB)<br/>████████"]
29
+ codecs_show_mjs["codecs/show.mjs (1.5 KB)<br/>██"]
30
+ codecs_string_codec_mjs["codecs/string-codec.mjs (4.5 KB)<br/>█████"]
31
+ codecs_unit_mjs["codecs/unit.mjs (1.6 KB)<br/>██"]
32
+ codecs_utf16_mjs["codecs/utf16.mjs (2.2 KB)<br/>██"]
33
+ codecs_utf8_mjs["codecs/utf8.mjs (1.3 KB)<br/>█"]
34
+ codes_mjs["codes.mjs (9.9 KB)<br/>██████████"]
35
+ compiler_mjs["compiler.mjs (3.9 KB)<br/>████"]
36
+ convergence_mjs["convergence.mjs (6.5 KB)<br/>██████"]
37
+ export_mjs["export.mjs (5.2 KB)<br/>█████"]
38
+ hash_mjs["hash.mjs (1.1 KB)<br/>█"]
39
+ index_mjs["index.mjs (1.9 KB)<br/>██"]
40
+ k_mjs["k.mjs (2.7 KB)<br/>███"]
41
+ object_mjs["object.mjs (26.3 KB)<br/>████████████████████"]
42
+ pretty_mjs["pretty.mjs (5.6 KB)<br/>██████"]
43
+ repl_mjs["repl.mjs (29.3 KB)<br/>████████████████████"]
44
+ run_mjs["run.mjs (14.4 KB)<br/>██████████████"]
45
+ symbol_table_mjs["symbol-table.mjs (2.7 KB)<br/>███"]
46
+ typing_mjs["typing.mjs (4.9 KB)<br/>█████"]
47
+ unification_mjs["unification.mjs (5.4 KB)<br/>█████"]
48
+ valueIO_mjs["valueIO.mjs (1.8 KB)<br/>██"]
49
+
50
+ TypePatternGraph_mjs --> Graph_mjs
51
+ TypePatternGraph_mjs --> unification_mjs
52
+ TypePatternGraph_mjs --> TypeGraph_mjs
53
+ augmentation_mjs --> codes_mjs
54
+ codecs_example_pipeline_mjs --> codecs_runtime_codec_mjs
55
+ codecs_example_pipeline_mjs --> codecs_runtime_prefix_codec_mjs
56
+ codecs_example_pipeline_mjs --> codecs_runtime_pattern_json_mjs
57
+ codecs_example_pipeline_mjs --> Value_mjs
58
+ codecs_example_pipeline_mjs --> hash_mjs
59
+ codecs_ieee_mjs --> Value_mjs
60
+ codecs_ieee_mjs --> codecs_runtime_prefix_codec_mjs
61
+ codecs_ieee_mjs --> codecs_runtime_ieee_pattern_mjs
62
+ codecs_int_mjs --> Value_mjs
63
+ codecs_int_mjs --> codecs_runtime_prefix_codec_mjs
64
+ codecs_json_codec_mjs --> Value_mjs
65
+ codecs_json_codec_mjs --> codecs_string_codec_mjs
66
+ codecs_json_codec_mjs --> codecs_runtime_ieee_pattern_mjs
67
+ codecs_json_mjs --> codecs_runtime_prefix_codec_mjs
68
+ codecs_json_mjs --> codecs_json_codec_mjs
69
+ codecs_k_parse_mjs --> index_mjs
70
+ codecs_k_parse_mjs --> valueIO_mjs
71
+ codecs_k_parse_mjs --> codecs_runtime_codec_mjs
72
+ codecs_k_parse_mjs --> codecs_runtime_pattern_json_mjs
73
+ codecs_k_parse_mjs --> codecs_runtime_prefix_codec_mjs
74
+ codecs_k_print_mjs --> codecs_runtime_prefix_codec_mjs
75
+ codecs_runtime_codec_mjs --> Value_mjs
76
+ codecs_runtime_codec_mjs --> TypePatternGraph_mjs
77
+ codecs_runtime_codec_mjs --> typing_mjs
78
+ codecs_runtime_codec_mjs --> codes_mjs
79
+ codecs_runtime_codec_mjs --> codecs_runtime_pattern_json_mjs
80
+ codecs_runtime_ieee_pattern_mjs --> codes_mjs
81
+ codecs_runtime_ieee_pattern_mjs --> codecs_runtime_codec_mjs
82
+ codecs_runtime_ieee_pattern_mjs --> codecs_runtime_pattern_json_mjs
83
+ codecs_runtime_prefix_codec_mjs --> Value_mjs
84
+ codecs_runtime_prefix_codec_mjs --> codecs_runtime_codec_mjs
85
+ codecs_runtime_prefix_codec_mjs --> codecs_runtime_pattern_json_mjs
86
+ codecs_runtime_prefix_codec_mjs --> codecs_runtime_unicode_string_mjs
87
+ codecs_runtime_show_value_mjs --> Value_mjs
88
+ codecs_runtime_test_codec_mjs --> codecs_runtime_codec_mjs
89
+ codecs_runtime_test_codec_mjs --> codecs_runtime_prefix_codec_mjs
90
+ codecs_runtime_test_codec_mjs --> codecs_runtime_pattern_json_mjs
91
+ codecs_runtime_test_codec_mjs --> Value_mjs
92
+ codecs_runtime_test_codec_mjs --> hash_mjs
93
+ codecs_runtime_typeFromValue_mjs --> Value_mjs
94
+ codecs_runtime_unicode_string_mjs --> Value_mjs
95
+ codecs_show_mjs --> codecs_runtime_prefix_codec_mjs
96
+ codecs_show_mjs --> codecs_runtime_show_value_mjs
97
+ codecs_string_codec_mjs --> codecs_runtime_codec_mjs
98
+ codecs_string_codec_mjs --> codecs_runtime_prefix_codec_mjs
99
+ codecs_string_codec_mjs --> codecs_runtime_pattern_json_mjs
100
+ codecs_string_codec_mjs --> codecs_runtime_unicode_string_mjs
101
+ codecs_unit_mjs --> Value_mjs
102
+ codecs_unit_mjs --> codecs_runtime_prefix_codec_mjs
103
+ codecs_utf16_mjs --> codecs_string_codec_mjs
104
+ codecs_utf8_mjs --> codecs_string_codec_mjs
105
+ codes_mjs --> hash_mjs
106
+ compiler_mjs --> hash_mjs
107
+ compiler_mjs --> TypePatternGraph_mjs
108
+ compiler_mjs --> Graph_mjs
109
+ compiler_mjs --> codes_mjs
110
+ compiler_mjs --> augmentation_mjs
111
+ compiler_mjs --> export_mjs
112
+ compiler_mjs --> convergence_mjs
113
+ convergence_mjs --> pretty_mjs
114
+ convergence_mjs --> typing_mjs
115
+ export_mjs --> hash_mjs
116
+ export_mjs --> pretty_mjs
117
+ index_mjs --> Value_mjs
118
+ index_mjs --> valueIO_mjs
119
+ index_mjs --> compiler_mjs
120
+ index_mjs --> run_mjs
121
+ index_mjs --> codes_mjs
122
+ k_mjs --> index_mjs
123
+ k_mjs --> codecs_runtime_prefix_codec_mjs
124
+ k_mjs --> object_mjs
125
+ object_mjs --> index_mjs
126
+ object_mjs --> run_mjs
127
+ object_mjs --> codes_mjs
128
+ object_mjs --> TypePatternGraph_mjs
129
+ object_mjs --> pretty_mjs
130
+ pretty_mjs --> TypePatternGraph_mjs
131
+ repl_mjs --> index_mjs
132
+ repl_mjs --> run_mjs
133
+ repl_mjs --> codes_mjs
134
+ repl_mjs --> Value_mjs
135
+ repl_mjs --> pretty_mjs
136
+ repl_mjs --> object_mjs
137
+ repl_mjs --> codecs_runtime_show_value_mjs
138
+ run_mjs --> Value_mjs
139
+ run_mjs --> codecs_runtime_codec_mjs
140
+ run_mjs --> codecs_runtime_pattern_json_mjs
141
+ symbol_table_mjs --> hash_mjs
142
+ typing_mjs --> TypePatternGraph_mjs
143
+ valueIO_mjs --> Value_mjs
144
+ ```