@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.
- package/.codex +0 -0
- package/Code-derivation-tests/pattern-envelope.mjs +26 -0
- package/DOCS/BIG_PICTURE.md +10 -10
- package/DOCS/DIVERGENCE_DETECTION.md +1 -1
- package/DOCS/REPL.md +33 -0
- package/DOCS/TYPE_DERIVATION.md +12 -12
- package/DOCS/a.html +398 -0
- package/DOCS/book/01-introduction.md +2 -2
- package/DOCS/book/02-syntax-and-values.md +8 -8
- package/DOCS/book/03-types-as-finite-automata.md +2 -2
- package/DOCS/book/04-partial-functions-and-composition.md +2 -2
- package/DOCS/book/05-typing-filters-and-normalization.md +3 -3
- package/DOCS/book/06-values-in-memory.md +3 -3
- package/DOCS/book/07-the-partial-function-abi.md +1 -1
- package/DOCS/book/08-operational-semantics-and-execution.md +1 -1
- package/DOCS/book/09-compiler-architecture.md +2 -2
- package/DOCS/book/appendix-b-incorporating-external-predefined-types-and-functions.md +1 -0
- package/DOCS/dependency-graph.html +140 -0
- package/DOCS/dependency-graph.md +144 -0
- package/NAT.k~ +452 -0
- package/README.md +7 -8
- package/UU/ta.k +1 -0
- package/UU/ta.k~ +0 -0
- package/UU/tb.k +0 -0
- package/UU/tc.k +0 -0
- package/a.k +138 -0
- package/a.klib +1 -0
- package/codecs/BINARY_FORMAT.html +471 -0
- package/codecs/BINARY_FORMAT.md +1 -1
- package/codecs/POLYMORPHIC_BINARY_FORMAT.html +355 -0
- package/codecs/POLYMORPHIC_BINARY_FORMAT.md +1 -1
- package/codecs/ieee.mjs +19 -4
- package/codecs/int.mjs +11 -4
- package/codecs/json.mjs +7 -4
- package/codecs/k-parse.mjs +7 -4
- package/codecs/k-print.mjs +7 -4
- package/codecs/runtime/cli-entry.mjs +13 -0
- package/codecs/show.mjs +7 -4
- package/codecs/unit.mjs +23 -8
- package/codecs/utf16.mjs +27 -5
- package/codecs/utf8.mjs +27 -5
- package/codes.mjs +14 -33
- package/core.json +1 -0
- package/core.klib +1 -0
- package/core.klib~ +0 -0
- package/export.mjs +3 -3
- package/ieee.klib +1 -0
- package/k-vscode/package-lock.json +4176 -0
- package/kkk.k +197 -0
- package/kkk.klib +0 -0
- package/kkk.klib~ +0 -0
- package/nak.klib +1 -0
- package/nak2.klib +1 -0
- package/nat.k +10 -0
- package/nat2.k +9 -0
- package/object.mjs +20 -7
- package/p.json +5475 -0
- package/package.json +3 -2
- package/repl-codecs.mjs +173 -0
- package/repl.mjs +215 -5
- package/run.mjs +16 -2
- package/scripts/benchmark-idempotency.mjs +72 -0
- package/test-ieee-arithmetic.mjs +93 -0
- package/test-k-object.mjs +19 -0
- package/test-repl.mjs +60 -1
- package/tests.sh +10 -1
- package/type_registry/registry.mjs~ +105 -0
- package/type_registry/typeParser.jison~ +132 -0
- package/.idea/codeStyles/codeStyleConfig.xml +0 -5
- package/.idea/copilot.data.migration.agent.xml +0 -6
- package/.idea/copilot.data.migration.ask.xml +0 -6
- package/.idea/copilot.data.migration.ask2agent.xml +0 -6
- package/.idea/copilot.data.migration.edit.xml +0 -6
- package/.idea/k.iml +0 -9
- package/.idea/misc.xml +0 -6
- package/.idea/modules.xml +0 -8
- package/.idea/vcs.xml +0 -6
- package/k_compiler/runtime.c +0 -205
- 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
|
|
48
|
-
of "polymorphic" expressions, i.e., expressions
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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.
|
|
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
|
|
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
|
|
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
|
|
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`
|
|
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` |
|
|
@@ -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["Graph.mjs (1.9 KB)<br/>██"]
|
|
7
|
+
TypeGraph_mjs["TypeGraph.mjs (1.1 KB)<br/>█"]
|
|
8
|
+
TypePatternGraph_mjs["TypePatternGraph.mjs (8.0 KB)<br/>████████"]
|
|
9
|
+
Value_mjs["Value.mjs (5.4 KB)<br/>█████"]
|
|
10
|
+
augmentation_mjs["augmentation.mjs (6.9 KB)<br/>███████"]
|
|
11
|
+
codecs_example_pipeline_mjs["codecs/example-pipeline.mjs (5.1 KB)<br/>█████"]
|
|
12
|
+
codecs_ieee_mjs["codecs/ieee.mjs (4.3 KB)<br/>████"]
|
|
13
|
+
codecs_int_mjs["codecs/int.mjs (3.5 KB)<br/>████"]
|
|
14
|
+
codecs_json_codec_mjs["codecs/json-codec.mjs (6.2 KB)<br/>██████"]
|
|
15
|
+
codecs_json_mjs["codecs/json.mjs (1.5 KB)<br/>██"]
|
|
16
|
+
codecs_k_parse_mjs["codecs/k-parse.mjs (3.0 KB)<br/>███"]
|
|
17
|
+
codecs_k_print_mjs["codecs/k-print.mjs (1.5 KB)<br/>██"]
|
|
18
|
+
codecs_runtime_codec_mjs["codecs/runtime/codec.mjs (25.7 KB)<br/>████████████████████"]
|
|
19
|
+
codecs_runtime_ieee_pattern_mjs["codecs/runtime/ieee-pattern.mjs (1.1 KB)<br/>█"]
|
|
20
|
+
codecs_runtime_pattern_json_mjs["codecs/runtime/pattern-json.mjs (3.5 KB)<br/>███"]
|
|
21
|
+
codecs_runtime_prefix_codec_mjs["codecs/runtime/prefix-codec.mjs (13.7 KB)<br/>██████████████"]
|
|
22
|
+
codecs_runtime_show_value_mjs["codecs/runtime/show-value.mjs (2.1 KB)<br/>██"]
|
|
23
|
+
codecs_runtime_test_codec_mjs["codecs/runtime/test-codec.mjs (3.0 KB)<br/>███"]
|
|
24
|
+
codecs_runtime_typeFromValue_mjs["codecs/runtime/typeFromValue.mjs (0.9 KB)<br/>█"]
|
|
25
|
+
codecs_runtime_unicode_string_mjs["codecs/runtime/unicode-string.mjs (7.5 KB)<br/>████████"]
|
|
26
|
+
codecs_show_mjs["codecs/show.mjs (1.5 KB)<br/>██"]
|
|
27
|
+
codecs_string_codec_mjs["codecs/string-codec.mjs (4.5 KB)<br/>█████"]
|
|
28
|
+
codecs_unit_mjs["codecs/unit.mjs (1.6 KB)<br/>██"]
|
|
29
|
+
codecs_utf16_mjs["codecs/utf16.mjs (2.2 KB)<br/>██"]
|
|
30
|
+
codecs_utf8_mjs["codecs/utf8.mjs (1.3 KB)<br/>█"]
|
|
31
|
+
codes_mjs["codes.mjs (9.9 KB)<br/>██████████"]
|
|
32
|
+
compiler_mjs["compiler.mjs (3.9 KB)<br/>████"]
|
|
33
|
+
convergence_mjs["convergence.mjs (6.5 KB)<br/>██████"]
|
|
34
|
+
export_mjs["export.mjs (5.2 KB)<br/>█████"]
|
|
35
|
+
hash_mjs["hash.mjs (1.1 KB)<br/>█"]
|
|
36
|
+
index_mjs["index.mjs (1.9 KB)<br/>██"]
|
|
37
|
+
k_mjs["k.mjs (2.7 KB)<br/>███"]
|
|
38
|
+
object_mjs["object.mjs (26.3 KB)<br/>████████████████████"]
|
|
39
|
+
pretty_mjs["pretty.mjs (5.6 KB)<br/>██████"]
|
|
40
|
+
repl_mjs["repl.mjs (29.3 KB)<br/>████████████████████"]
|
|
41
|
+
run_mjs["run.mjs (14.4 KB)<br/>██████████████"]
|
|
42
|
+
symbol_table_mjs["symbol-table.mjs (2.7 KB)<br/>███"]
|
|
43
|
+
typing_mjs["typing.mjs (4.9 KB)<br/>█████"]
|
|
44
|
+
unification_mjs["unification.mjs (5.4 KB)<br/>█████"]
|
|
45
|
+
valueIO_mjs["valueIO.mjs (1.8 KB)<br/>██"]
|
|
46
|
+
|
|
47
|
+
TypePatternGraph_mjs --> Graph_mjs
|
|
48
|
+
TypePatternGraph_mjs --> unification_mjs
|
|
49
|
+
TypePatternGraph_mjs --> TypeGraph_mjs
|
|
50
|
+
augmentation_mjs --> codes_mjs
|
|
51
|
+
codecs_example_pipeline_mjs --> codecs_runtime_codec_mjs
|
|
52
|
+
codecs_example_pipeline_mjs --> codecs_runtime_prefix_codec_mjs
|
|
53
|
+
codecs_example_pipeline_mjs --> codecs_runtime_pattern_json_mjs
|
|
54
|
+
codecs_example_pipeline_mjs --> Value_mjs
|
|
55
|
+
codecs_example_pipeline_mjs --> hash_mjs
|
|
56
|
+
codecs_ieee_mjs --> Value_mjs
|
|
57
|
+
codecs_ieee_mjs --> codecs_runtime_prefix_codec_mjs
|
|
58
|
+
codecs_ieee_mjs --> codecs_runtime_ieee_pattern_mjs
|
|
59
|
+
codecs_int_mjs --> Value_mjs
|
|
60
|
+
codecs_int_mjs --> codecs_runtime_prefix_codec_mjs
|
|
61
|
+
codecs_json_codec_mjs --> Value_mjs
|
|
62
|
+
codecs_json_codec_mjs --> codecs_string_codec_mjs
|
|
63
|
+
codecs_json_codec_mjs --> codecs_runtime_ieee_pattern_mjs
|
|
64
|
+
codecs_json_mjs --> codecs_runtime_prefix_codec_mjs
|
|
65
|
+
codecs_json_mjs --> codecs_json_codec_mjs
|
|
66
|
+
codecs_k_parse_mjs --> index_mjs
|
|
67
|
+
codecs_k_parse_mjs --> valueIO_mjs
|
|
68
|
+
codecs_k_parse_mjs --> codecs_runtime_codec_mjs
|
|
69
|
+
codecs_k_parse_mjs --> codecs_runtime_pattern_json_mjs
|
|
70
|
+
codecs_k_parse_mjs --> codecs_runtime_prefix_codec_mjs
|
|
71
|
+
codecs_k_print_mjs --> codecs_runtime_prefix_codec_mjs
|
|
72
|
+
codecs_runtime_codec_mjs --> Value_mjs
|
|
73
|
+
codecs_runtime_codec_mjs --> TypePatternGraph_mjs
|
|
74
|
+
codecs_runtime_codec_mjs --> typing_mjs
|
|
75
|
+
codecs_runtime_codec_mjs --> codes_mjs
|
|
76
|
+
codecs_runtime_codec_mjs --> codecs_runtime_pattern_json_mjs
|
|
77
|
+
codecs_runtime_ieee_pattern_mjs --> codes_mjs
|
|
78
|
+
codecs_runtime_ieee_pattern_mjs --> codecs_runtime_codec_mjs
|
|
79
|
+
codecs_runtime_ieee_pattern_mjs --> codecs_runtime_pattern_json_mjs
|
|
80
|
+
codecs_runtime_prefix_codec_mjs --> Value_mjs
|
|
81
|
+
codecs_runtime_prefix_codec_mjs --> codecs_runtime_codec_mjs
|
|
82
|
+
codecs_runtime_prefix_codec_mjs --> codecs_runtime_pattern_json_mjs
|
|
83
|
+
codecs_runtime_prefix_codec_mjs --> codecs_runtime_unicode_string_mjs
|
|
84
|
+
codecs_runtime_show_value_mjs --> Value_mjs
|
|
85
|
+
codecs_runtime_test_codec_mjs --> codecs_runtime_codec_mjs
|
|
86
|
+
codecs_runtime_test_codec_mjs --> codecs_runtime_prefix_codec_mjs
|
|
87
|
+
codecs_runtime_test_codec_mjs --> codecs_runtime_pattern_json_mjs
|
|
88
|
+
codecs_runtime_test_codec_mjs --> Value_mjs
|
|
89
|
+
codecs_runtime_test_codec_mjs --> hash_mjs
|
|
90
|
+
codecs_runtime_typeFromValue_mjs --> Value_mjs
|
|
91
|
+
codecs_runtime_unicode_string_mjs --> Value_mjs
|
|
92
|
+
codecs_show_mjs --> codecs_runtime_prefix_codec_mjs
|
|
93
|
+
codecs_show_mjs --> codecs_runtime_show_value_mjs
|
|
94
|
+
codecs_string_codec_mjs --> codecs_runtime_codec_mjs
|
|
95
|
+
codecs_string_codec_mjs --> codecs_runtime_prefix_codec_mjs
|
|
96
|
+
codecs_string_codec_mjs --> codecs_runtime_pattern_json_mjs
|
|
97
|
+
codecs_string_codec_mjs --> codecs_runtime_unicode_string_mjs
|
|
98
|
+
codecs_unit_mjs --> Value_mjs
|
|
99
|
+
codecs_unit_mjs --> codecs_runtime_prefix_codec_mjs
|
|
100
|
+
codecs_utf16_mjs --> codecs_string_codec_mjs
|
|
101
|
+
codecs_utf8_mjs --> codecs_string_codec_mjs
|
|
102
|
+
codes_mjs --> hash_mjs
|
|
103
|
+
compiler_mjs --> hash_mjs
|
|
104
|
+
compiler_mjs --> TypePatternGraph_mjs
|
|
105
|
+
compiler_mjs --> Graph_mjs
|
|
106
|
+
compiler_mjs --> codes_mjs
|
|
107
|
+
compiler_mjs --> augmentation_mjs
|
|
108
|
+
compiler_mjs --> export_mjs
|
|
109
|
+
compiler_mjs --> convergence_mjs
|
|
110
|
+
convergence_mjs --> pretty_mjs
|
|
111
|
+
convergence_mjs --> typing_mjs
|
|
112
|
+
export_mjs --> hash_mjs
|
|
113
|
+
export_mjs --> pretty_mjs
|
|
114
|
+
index_mjs --> Value_mjs
|
|
115
|
+
index_mjs --> valueIO_mjs
|
|
116
|
+
index_mjs --> compiler_mjs
|
|
117
|
+
index_mjs --> run_mjs
|
|
118
|
+
index_mjs --> codes_mjs
|
|
119
|
+
k_mjs --> index_mjs
|
|
120
|
+
k_mjs --> codecs_runtime_prefix_codec_mjs
|
|
121
|
+
k_mjs --> object_mjs
|
|
122
|
+
object_mjs --> index_mjs
|
|
123
|
+
object_mjs --> run_mjs
|
|
124
|
+
object_mjs --> codes_mjs
|
|
125
|
+
object_mjs --> TypePatternGraph_mjs
|
|
126
|
+
object_mjs --> pretty_mjs
|
|
127
|
+
pretty_mjs --> TypePatternGraph_mjs
|
|
128
|
+
repl_mjs --> index_mjs
|
|
129
|
+
repl_mjs --> run_mjs
|
|
130
|
+
repl_mjs --> codes_mjs
|
|
131
|
+
repl_mjs --> Value_mjs
|
|
132
|
+
repl_mjs --> pretty_mjs
|
|
133
|
+
repl_mjs --> object_mjs
|
|
134
|
+
repl_mjs --> codecs_runtime_show_value_mjs
|
|
135
|
+
run_mjs --> Value_mjs
|
|
136
|
+
run_mjs --> codecs_runtime_codec_mjs
|
|
137
|
+
run_mjs --> codecs_runtime_pattern_json_mjs
|
|
138
|
+
symbol_table_mjs --> hash_mjs
|
|
139
|
+
typing_mjs --> TypePatternGraph_mjs
|
|
140
|
+
valueIO_mjs --> 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
|
+
```
|