@mark1russell7/coeval 0.4.2 → 0.5.0
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/README.md +6 -4
- package/build/index.d.ts +94 -10
- package/build/index.d.ts.map +1 -1
- package/build/index.js +495 -118
- package/build/index.js.map +1 -1
- package/package.json +1 -1
- package/src/agree.ts +8 -2
- package/src/doc.ts +26 -8
- package/src/errors.ts +4 -2
- package/src/evaluate.ts +27 -20
- package/src/formula.ts +45 -3
- package/src/generate.ts +37 -8
- package/src/index.ts +3 -2
- package/src/parts.ts +59 -3
- package/src/reference.ts +157 -18
- package/src/static.ts +17 -16
- package/src/stdlib.ts +180 -27
package/README.md
CHANGED
|
@@ -24,16 +24,18 @@ A plan evaluates many times without a trace. `evaluate(machine, doc)` gives the
|
|
|
24
24
|
|
|
25
25
|
| Part | Exports | What it does |
|
|
26
26
|
| --- | --- | --- |
|
|
27
|
-
| Documents | `isEnvelope`, `stored`, `typePath`, `docEquals` | The envelope, the keys of a store beside it, and the equality of documents |
|
|
27
|
+
| Documents | `isEnvelope`, `stored`, `typePath`, `docEquals` | The envelope, the keys of a store beside it, and the equality of documents. A host value, for example a date, is equal only to itself |
|
|
28
|
+
| Parts | `partsOf`, `splitParts` | The kind and the parts of one document, with the declared type for a bare value. The plan, the reference and the static kit use it |
|
|
28
29
|
| World | `lookupKind`, `Kind`, `Namespace`, `PartShape`, `ScopeRule`, `CapsRule` | The kinds, with their contracts: the shape of the parts, the type of the data, the kinds that a position permits, the names that a kind binds, the capabilities that it gives its parts, and its effects. A namespace can have a fallback kind |
|
|
29
30
|
| Ladder | `ask` | The evaluator of a verb: the own entry, then the kind, then the default |
|
|
30
31
|
| References | `resolve`, `HostThing`, `Navigator` | A path from a root of the context: `self`, `names`, `world`, `event` or `caps`. A step document can have computed parts, and a walker can give the code of its failure |
|
|
31
32
|
| Plans | `prepare`, `planner`, `evaluate`, `run` | A document compiles one time into code. An evaluator is a function or a compiler |
|
|
32
33
|
| The run side | `run`, `Runner`, `permits`, `narrow`, `partCaps` | Effects in order, parts at the same time, capabilities that only narrow, and an abort. The kernel narrows the capabilities of each part by the contract of its kind |
|
|
33
34
|
| Errors | `Result`, `EvalError`, `Failure`, `failures` | An error value has a code, a reason, a place and a cause. An evaluation does not throw |
|
|
34
|
-
| The static kit | `walk`, `refsOf`, `mapRefs`, `check` | The documents of a document in linear time, its free references, and its problems before a run, each with its place and its JSON path. A check narrows the capabilities as a run does |
|
|
35
|
-
|
|
|
36
|
-
|
|
|
35
|
+
| The static kit | `walk`, `refsOf`, `mapRefs`, `check` | The documents of a document in linear time, its free references, and its problems before a run, each with its place and its JSON path. A check narrows the capabilities as a run does. The hook `known` of a machine names the unknown operations |
|
|
36
|
+
| Trees | `STD_WORLD` (`panel`, `box`), `nearestWalker` | The decorated tree: each field of a node is an attribute that evaluates on demand, one time in an evaluation. A sibling is a path through the parent, and a cycle gives `#CYCLE!` with its chain |
|
|
37
|
+
| The formula kit | `formulaMachine`, `FormulaProfile`, `formulaKnown` | The shared constructs `lit`, `ref`, `record`, `list`, `let`, `fn`, `call`, `if`, `and`, `or`, and the namespaces `ops` and `ext`. A profile gives the rules of a language, for example how the errors of two parts combine. An address gives a thing, not its value |
|
|
38
|
+
| One meaning | `agree`, `reference`, `formulaDefinitions`, `STD_DEFINITIONS`, `generate` | A reference interpreter that compiles nothing, and `agree`, which compares a plan with it and with the second tier of a language. `generate` builds random documents from the kind contracts |
|
|
37
39
|
|
|
38
40
|
Each rule has an ID in [`docs/SPEC.md`](https://github.com/mark1russell7/coeval/blob/main/docs/SPEC.md), and each ID has a test. [The site](https://mark1russell7.github.io/coeval/) explains each idea with a live diagram.
|
|
39
41
|
|
package/build/index.d.ts
CHANGED
|
@@ -142,9 +142,17 @@ export declare function toJson(doc: Envelope): JsonRecord;
|
|
|
142
142
|
*/
|
|
143
143
|
export declare function fromJson(value: unknown): Envelope | undefined;
|
|
144
144
|
/**
|
|
145
|
-
* This function tells if two
|
|
146
|
-
* the same items in the same order, and the same fields. The order of the fields
|
|
147
|
-
*
|
|
145
|
+
* This function tells if two values are equal. Plain JSON compares by its structure. Equal values have the same
|
|
146
|
+
* texts, numbers and truth values, the same items in the same order, and the same fields. The order of the fields
|
|
147
|
+
* does not matter. Each leaf compares with `Object.is`, thus `-0` is not `0`, and `NaN` is `NaN`.
|
|
148
|
+
*
|
|
149
|
+
* Only lists and plain records (`isRecord`) compare by their items and fields. Each other object compares by
|
|
150
|
+
* identity: a date, a map, a function and an instance of a class are equal only to themselves. Thus an early cutoff
|
|
151
|
+
* with this function does not keep a stale host value.
|
|
152
|
+
*
|
|
153
|
+
* The function does not use the stack for the depth, thus a deep document cannot overflow it. A cycle of lists or
|
|
154
|
+
* records does not make it loop. `sameValue` of `agree` uses the same rules, and it adds rules for closures and for
|
|
155
|
+
* a rule of the caller.
|
|
148
156
|
*
|
|
149
157
|
* @param a - The first value.
|
|
150
158
|
* @param b - The second value.
|
|
@@ -848,6 +856,42 @@ type Split = {
|
|
|
848
856
|
* @returns The parts and a way to fill their places, or the reason why the value does not have the shape.
|
|
849
857
|
*/
|
|
850
858
|
export declare function splitParts(shape: Shape | undefined, value: Json): Split;
|
|
859
|
+
/**
|
|
860
|
+
* The kind and the parts of one document: what `partsOf` gives. `ok` is `false` only when the value is not a
|
|
861
|
+
* document: it has no envelope, and its position declares no type. A value without the shape of its kind gives a
|
|
862
|
+
* failed `split`.
|
|
863
|
+
*/
|
|
864
|
+
type DocParts = {
|
|
865
|
+
readonly ok: true;
|
|
866
|
+
/** The document. A bare value gets the type that its position declares. */
|
|
867
|
+
readonly doc: Envelope;
|
|
868
|
+
/** `true` when the type came from the position and not from an envelope. */
|
|
869
|
+
readonly declared: boolean;
|
|
870
|
+
/** The kind, or `undefined` when the world has no kind for the type. Then the value is data. */
|
|
871
|
+
readonly kind: Kind | undefined;
|
|
872
|
+
/** The keys of the kind after each alias, or `undefined` without a kind. */
|
|
873
|
+
readonly typePath: readonly Key[] | undefined;
|
|
874
|
+
/**
|
|
875
|
+
* The split of the value by the shape of the kind. The reason of a failed split is the reason of the `#VALUE!`
|
|
876
|
+
* of an evaluation: it names the kind. Its `at` gives the keys from the value to the problem.
|
|
877
|
+
*/
|
|
878
|
+
readonly split: Split;
|
|
879
|
+
} | {
|
|
880
|
+
readonly ok: false;
|
|
881
|
+
readonly code: "#PART?";
|
|
882
|
+
readonly reason: string;
|
|
883
|
+
};
|
|
884
|
+
/**
|
|
885
|
+
* This function reads one document by the contracts of the world. It finds the kind of the type. A bare value gets
|
|
886
|
+
* the type that its position declares. Then the function splits the value by the shape of the kind. The plan, the
|
|
887
|
+
* reference interpreter and the static kit read each document with this function. Thus they see the same parts.
|
|
888
|
+
*
|
|
889
|
+
* @param world - The world of the kinds.
|
|
890
|
+
* @param value - The document, or a bare value.
|
|
891
|
+
* @param declaredType - The type that the position of a bare value declares.
|
|
892
|
+
* @returns The document, its kind and its parts, or the reason why the value is not a document.
|
|
893
|
+
*/
|
|
894
|
+
export declare function partsOf(world: World, value: unknown, declaredType?: string): DocParts;
|
|
851
895
|
/**
|
|
852
896
|
* This function tells if the path of a part matches a pattern of a scope rule. The key `"*"` of a pattern matches
|
|
853
897
|
* each key.
|
|
@@ -1197,6 +1241,7 @@ type Runner = RunFn | CompiledRunner;
|
|
|
1197
1241
|
*
|
|
1198
1242
|
* - `maxDepth`: the deepest nesting of documents. The default is 1000.
|
|
1199
1243
|
* - `permits`: the rule of the host for an effect. The default is the function `permits` on the capabilities.
|
|
1244
|
+
* - `known`: the names that the evaluators know, for `check`. Without it, `check` does not check such names.
|
|
1200
1245
|
*/
|
|
1201
1246
|
interface Machine extends Navigator {
|
|
1202
1247
|
readonly evaluators: Readonly<Record<string, Evaluator>>;
|
|
@@ -1204,6 +1249,16 @@ interface Machine extends Navigator {
|
|
|
1204
1249
|
readonly runners?: Readonly<Record<string, Runner>>;
|
|
1205
1250
|
readonly maxDepth?: number;
|
|
1206
1251
|
readonly permits?: (caps: readonly Cap[], kind: readonly Key[], context: Context) => boolean;
|
|
1252
|
+
/**
|
|
1253
|
+
* This function tells if an evaluator knows the name in the path of a kind. An example is the operation
|
|
1254
|
+
* `["ops", "add"]` of a formula language: a fallback kind names it, and the evaluator finds it in a table.
|
|
1255
|
+
* `check` asks it for each document with an evaluator. The function must be pure.
|
|
1256
|
+
*
|
|
1257
|
+
* @param path - The keys of the kind of the document, after each alias.
|
|
1258
|
+
* @param evaluator - The name of the evaluator that the ladder gives the document.
|
|
1259
|
+
* @returns `true` when the evaluator knows the name, or else the reason of the `#NAME?` that a run gives.
|
|
1260
|
+
*/
|
|
1261
|
+
readonly known?: (path: readonly Key[], evaluator: string) => true | string;
|
|
1207
1262
|
}
|
|
1208
1263
|
/** One evaluation in a trace. The children are the evaluations of its parts, in the order that they started. */
|
|
1209
1264
|
interface TraceNode {
|
|
@@ -1646,7 +1701,8 @@ interface CheckOptions {
|
|
|
1646
1701
|
* - `#PART?`: a value without a type.
|
|
1647
1702
|
* - `#DEPTH!`: too much nesting.
|
|
1648
1703
|
* - `#REF!` and `#STEP?`: a bad path.
|
|
1649
|
-
* - `#NAME?`: a name that nothing binds.
|
|
1704
|
+
* - `#NAME?`: a name that nothing binds. With the hook `known` of the machine, also a name that the language does not
|
|
1705
|
+
* have, for example an operation.
|
|
1650
1706
|
* - `#CAP!`: an effect that the capabilities of its document do not permit. A kind around the document can narrow them.
|
|
1651
1707
|
*
|
|
1652
1708
|
* @param machine - The world and the code of the evaluators.
|
|
@@ -1733,9 +1789,21 @@ export declare function formulaKinds(): Readonly<Record<string, WorldEntry>>;
|
|
|
1733
1789
|
* @returns The evaluators, by their name.
|
|
1734
1790
|
*/
|
|
1735
1791
|
export declare function formulaEvaluators(profile?: FormulaProfile): Readonly<Record<string, Evaluator>>;
|
|
1792
|
+
/**
|
|
1793
|
+
* This function makes the hook `known` of the formula kit for one profile (STATIC.KNOWN). The evaluator
|
|
1794
|
+
* `formula.op` knows an operation of `lazy` or of `ops`. A profile whose `ops` is a function answers through a call
|
|
1795
|
+
* of that function. A function that throws counts as an answer, because the run then gives `#CALC!`. The evaluator
|
|
1796
|
+
* `formula.ext` knows an extension of `ext` and each standard extension. The hook knows each name of the other
|
|
1797
|
+
* evaluators.
|
|
1798
|
+
*
|
|
1799
|
+
* @param profile - The operations and the extensions of the language.
|
|
1800
|
+
* @returns The hook: `true`, or the reason of the `#NAME?` that the evaluator gives in a run.
|
|
1801
|
+
*/
|
|
1802
|
+
export declare function formulaKnown(profile?: FormulaProfile): (path: readonly Key[], evaluator: string) => true | string;
|
|
1736
1803
|
/**
|
|
1737
1804
|
* This function makes a machine for a formula language. The machine has the kinds and the evaluators of the
|
|
1738
|
-
* formula kit. It also has the kinds, the evaluators and the walkers that the language adds.
|
|
1805
|
+
* formula kit. It also has the kinds, the evaluators and the walkers that the language adds. Its hook `known` comes
|
|
1806
|
+
* from the profile (`formulaKnown`). A hook `known` of the language answers each name that the kit knows.
|
|
1739
1807
|
*
|
|
1740
1808
|
* @param profile - The operations and the rules of the language.
|
|
1741
1809
|
* @param more - The parts of a machine that the language adds. Its kinds win over the kinds of the kit.
|
|
@@ -1773,6 +1841,11 @@ interface ReferenceOptions {
|
|
|
1773
1841
|
* @returns The result.
|
|
1774
1842
|
*/
|
|
1775
1843
|
export declare function reference(machine: Machine, doc: unknown, context?: Context, options?: ReferenceOptions): Result;
|
|
1844
|
+
/**
|
|
1845
|
+
* The definitions of the reference for the evaluators of the standard machine that need their own reading. The
|
|
1846
|
+
* reference uses them for the standard evaluators, also without the option `definitions`. It holds `tree.node`.
|
|
1847
|
+
*/
|
|
1848
|
+
export declare const STD_DEFINITIONS: Definitions;
|
|
1776
1849
|
/**
|
|
1777
1850
|
* This function gives the definitions of the formula kit for one profile. Each construct is a function evaluator in
|
|
1778
1851
|
* the most direct style. It shares no code with the compilers of `formulaEvaluators`, thus the two readings of the
|
|
@@ -1851,8 +1924,14 @@ type Agreement = {
|
|
|
1851
1924
|
/**
|
|
1852
1925
|
* This function tells if two values are the same for `agree`. Lists and plain records compare item by item and field
|
|
1853
1926
|
* by field, and the order of the fields does not matter. Each other leaf compares with `Object.is`, thus `-0` is not
|
|
1854
|
-
* `0`, and `NaN` is `NaN`.
|
|
1855
|
-
*
|
|
1927
|
+
* `0`, and `NaN` is `NaN`. The identity of a list or of a plain record is not compared.
|
|
1928
|
+
*
|
|
1929
|
+
* Two closures of `fn` are the same when they have the same parameters. Two `Held` values are the same when their
|
|
1930
|
+
* errors have the same code and place. Each other object is the same only as itself, unless the rule of the caller
|
|
1931
|
+
* tells otherwise.
|
|
1932
|
+
*
|
|
1933
|
+
* `docEquals` uses the same rules for lists, plain records and the other objects. It has no rules for closures, for
|
|
1934
|
+
* `Held` values and for a rule of the caller. Thus two closures are equal there only when they are the same function.
|
|
1856
1935
|
*
|
|
1857
1936
|
* @param a - The first value.
|
|
1858
1937
|
* @param b - The second value.
|
|
@@ -1929,6 +2008,10 @@ interface GenerateOptions {
|
|
|
1929
2008
|
readonly own?: readonly string[];
|
|
1930
2009
|
/** The keys for the steps of a path after its root and its name. */
|
|
1931
2010
|
readonly keys?: readonly Key[];
|
|
2011
|
+
/** The roots that a path can start at. The default is each root. */
|
|
2012
|
+
readonly roots?: readonly Root[];
|
|
2013
|
+
/** The most steps of a path after its root and its name. The default is 2. */
|
|
2014
|
+
readonly steps?: number;
|
|
1932
2015
|
}
|
|
1933
2016
|
/**
|
|
1934
2017
|
* This function lists the types of a world: each kind and each alias, also in a namespace. A namespace with a
|
|
@@ -1941,8 +2024,9 @@ export declare function typesOf(world: World): readonly (readonly Key[])[];
|
|
|
1941
2024
|
/**
|
|
1942
2025
|
* This function builds a random document for a world from the contracts of its kinds. It reads the shapes of the
|
|
1943
2026
|
* parts, the declared types, the permitted kinds and the names that the scope rules bind. Some choices are malformed
|
|
1944
|
-
* on purpose
|
|
1945
|
-
* nothing binds. The depth and the size have
|
|
2027
|
+
* on purpose, for example an unknown kind or an unknown name under a namespace with a fallback. Other examples are a
|
|
2028
|
+
* value without its shape, a bare value without a type and a name that nothing binds. The depth and the size have
|
|
2029
|
+
* limits.
|
|
1946
2030
|
*
|
|
1947
2031
|
* @param world - The world.
|
|
1948
2032
|
* @param options - The seed, the types, the limits and the data of the leaves.
|
|
@@ -1950,5 +2034,5 @@ export declare function typesOf(world: World): readonly (readonly Key[])[];
|
|
|
1950
2034
|
*/
|
|
1951
2035
|
export declare function generate(world: World, options: GenerateOptions): unknown;
|
|
1952
2036
|
//#endregion
|
|
1953
|
-
export type { AgreeOptions, Agreement, Alias, AllOptions, Answer, AskOptions, Cap, CapsRule, CheckOptions, Classification, Closure, Code, CompileInput, CompiledEvaluator, CompiledPart, CompiledRunner, Construct, Context, Part as ContextPart, Definitions, DerefCode, DocVisit, Edge, Effect, Envelope, ErrorCode, EvalError, EvalFn, EvalInput, EvalOptions, Evaluator, ExtFn, Failed, FormulaProfile, GenerateOptions, Give, Header, Hop, HopBy, HostThing, Issue, Json, JsonRecord, KernelCode, Key, Kind, KindSource, LazyOp, Lookup, Machine, NamesSource, Namespace, Navigator, NearestOptions, OpFn, OrderProblem, Outcome, Part$1 as Part, PartInfo, Shape as PartShape, PartSlot, PartsSpec, Perform, Plan, PrepareOptions, Random, RefUse, ReferenceOptions, Resolution, ResolveCode, ResolveOptions, Result, Root, Run, RunCode, RunFn, RunInput, RunOptions, RunPart, Rung, Runner, Runtime, ScopeRule, Shape$1 as Shape, Side, Split, Step, StepSpec, Steps, StopSignal, Stored, Thing, Tier, TierResult, TraceNode, TypeRef, Use, WalkInput, WalkOptions, WalkProblem, WalkResult, Walker, World, WorldEntry };
|
|
2037
|
+
export type { AgreeOptions, Agreement, Alias, AllOptions, Answer, AskOptions, Cap, CapsRule, CheckOptions, Classification, Closure, Code, CompileInput, CompiledEvaluator, CompiledPart, CompiledRunner, Construct, Context, Part as ContextPart, Definitions, DerefCode, DocParts, DocVisit, Edge, Effect, Envelope, ErrorCode, EvalError, EvalFn, EvalInput, EvalOptions, Evaluator, ExtFn, Failed, FormulaProfile, GenerateOptions, Give, Header, Hop, HopBy, HostThing, Issue, Json, JsonRecord, KernelCode, Key, Kind, KindSource, LazyOp, Lookup, Machine, NamesSource, Namespace, Navigator, NearestOptions, OpFn, OrderProblem, Outcome, Part$1 as Part, PartInfo, Shape as PartShape, PartSlot, PartsSpec, Perform, Plan, PrepareOptions, Random, RefUse, ReferenceOptions, Resolution, ResolveCode, ResolveOptions, Result, Root, Run, RunCode, RunFn, RunInput, RunOptions, RunPart, Rung, Runner, Runtime, ScopeRule, Shape$1 as Shape, Side, Split, Step, StepSpec, Steps, StopSignal, Stored, Thing, Tier, TierResult, TraceNode, TypeRef, Use, WalkInput, WalkOptions, WalkProblem, WalkResult, Walker, World, WorldEntry };
|
|
1954
2038
|
//# sourceMappingURL=index.d.ts.map
|
package/build/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["Shape","Part"],"sources":["../src/doc.ts","../src/errors.ts","../src/deref.ts","../src/world.ts","../src/ladder.ts","../src/classify.ts","../src/parts.ts","../src/evaluate.ts","../src/stdlib.ts","../src/order.ts","../src/context.ts","../src/static.ts","../src/formula.ts","../src/reference.ts","../src/agree.ts","../src/generate.ts"],"mappings":";;KACY,mDAAmD;YAAmC,cAAA;;;KAGtF;YAAuC,cAAA;;;KAGvC;;;;;;;;;;;KAYA,4BAA4B;WAAmB;WAAsB,gBAAgB;;;;;;KAMrF;;WAED,MAAM;;WAEN,OAAO;;WAEP;;WAEA,MAAM,SAAS;;;qBAIb;;;;;;;;wBASG,SAAS,iBAAiB,SAAS;;;;;;;;wBAanC,MAAM,QAAQ,YAAY,cAAc;;;;;;;wBAUxC,MAAM,iBAAiB,SAAS;;;;;;;;wBAWhC,UAAU,iBAAiB,SAAS;;;;;;;wBAcpC,SAAS,MAAM,mBAAmB;;;;;;;wBAalC,SAAS,MAAM;;;;;;;;;wBAqBf,WAAW,iBAAiB,SAAS,aAAa;;UAUjD;WACN,UAAU;;WAEV,QAAQ,SAAS,eAAe;;;;;;;;;;wBAW3B,OAAO,gBAAgB,4BAA4B;;;;;;;;;wBAqBnD,MAAM,MAAM,SAAS,OAAO,MAAM;WAAmB;WAAwB,MAAM;IAAgC;;;;;;;wBAUnH,OAAO,eAAe,SAAS;;;;;;;wBAU/B,OAAO,KAAK,WAAW;;;;;;;wBAevB,SAAS,iBAAiB
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["Shape","Part"],"sources":["../src/doc.ts","../src/errors.ts","../src/deref.ts","../src/world.ts","../src/ladder.ts","../src/classify.ts","../src/parts.ts","../src/evaluate.ts","../src/stdlib.ts","../src/order.ts","../src/context.ts","../src/static.ts","../src/formula.ts","../src/reference.ts","../src/agree.ts","../src/generate.ts"],"mappings":"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"}
|