@elaraai/east-c-cli 1.0.83 → 1.0.85

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 (2) hide show
  1. package/README.md +30 -10
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -43,23 +43,43 @@ dict or fold it emits into), and where to write the output and a typed
43
43
  result: the outcome (`ok`, or `failed` with the message and its source
44
44
  locations), the peak memory, and the time spent loading, compiling, executing
45
45
  and writing. Paths in a unit may be relative to its file, so a unit and the
46
- files it names replay wherever they are moved together. It exits 0 when the
47
- outcome is `ok` and 1 when the result records a failure; `-v` prints where the
48
- time went and the peak memory.
46
+ files it names replay wherever they are moved together. A run unit says how its
47
+ inputs are read (`decode`, below). It exits 0 when the outcome is `ok` and 1
48
+ when the result records a failure; `-v` prints where the time went and the peak
49
+ memory.
50
+
51
+ ### How inputs are read
52
+
53
+ A collection input opens lazily, whatever it weighs: an indexed beast2 file is
54
+ mapped, and a read decodes only the segments it reaches — its size, a keyed
55
+ read and the `$.for` loop decode a segment at a time, and an operation the
56
+ pager cannot serve decodes the input whole, once, when it first needs it. A
57
+ loop holds only the segment it walks. Keyed reads keep the segments they
58
+ decode, up to 256 MiB of decoded weight per input (`EAST_PAGED_CACHE_BYTES`;
59
+ `1` keeps one segment), and reads in key order keep about two.
60
+ `--decode whole` decodes every input before the program runs instead, which
61
+ suits a program that reads at random across more than that, or loops over an
62
+ input more than once: lazily, a read beyond the segments the pager keeps
63
+ decodes its segment again. `exec` reads the same choice from its unit's
64
+ `decode`. A value that is not a collection, and a collection whose elements
65
+ hold a Ref or a function, is decoded whole either way.
49
66
 
50
- ### Large inputs
67
+ ```bash
68
+ east-c run task.beast2 -i rows.beast2 --decode whole -o out.beast2
69
+ ```
51
70
 
52
- An indexed beast2 collection input of `EAST_LAZY_INPUT_BYTES` bytes or more
53
- (64 MiB unless set; `0` turns it off) opens lazily: the file is mapped, and a
54
- read decodes only the segments it reaches. With `-v` the runner says which
55
- inputs opened lazily and how many of their segments it decoded.
71
+ With `-v` the runner says how each input opened, and what reading it came to:
72
+ the segments a lazy input decoded, or what an input decoded whole holds in
73
+ memory — the growth in resident memory across its decode, beside the size it
74
+ weighs on disk, since a nested collection decodes at many times that size.
75
+ Reads that decode segments again are said to, with what decoding the input
76
+ whole would do instead.
56
77
 
57
78
  A collection input may also be a manifest directory, the form e3 stages a
58
79
  stored collection in: the input file holds a manifest, and each segment it
59
80
  names is a standalone blob in `<file>.segments/<sha256>.beast2`. It opens
60
81
  over those files — lazily, a read opening only the segments it reaches, or
61
- whole — and counts as the size of its segments when the runner decides
62
- whether to open it lazily.
82
+ whole — and weighs its segments in the `-v` account.
63
83
 
64
84
  ### Exiting with the parent
65
85
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/east-c-cli",
3
- "version": "1.0.83",
3
+ "version": "1.0.85",
4
4
  "description": "Provides the `east-c` bin. A tiny launcher resolves the native binary for your platform from the matching per-platform package (@elaraai/east-c-cli-<target>), pulled in via optional dependencies.",
5
5
  "bin": {
6
6
  "east-c": "bin/east-c.mjs"
@@ -32,14 +32,14 @@
32
32
  "node": ">=18.0.0"
33
33
  },
34
34
  "devDependencies": {
35
- "@elaraai/east": "1.0.83"
35
+ "@elaraai/east": "1.0.85"
36
36
  },
37
37
  "optionalDependencies": {
38
- "@elaraai/east-c-cli-linux-x64": "1.0.83",
39
- "@elaraai/east-c-cli-linux-arm64": "1.0.83",
40
- "@elaraai/east-c-cli-darwin-arm64": "1.0.83",
41
- "@elaraai/east-c-cli-darwin-x64": "1.0.83",
42
- "@elaraai/east-c-cli-win32-x64": "1.0.83"
38
+ "@elaraai/east-c-cli-linux-x64": "1.0.85",
39
+ "@elaraai/east-c-cli-linux-arm64": "1.0.85",
40
+ "@elaraai/east-c-cli-darwin-arm64": "1.0.85",
41
+ "@elaraai/east-c-cli-darwin-x64": "1.0.85",
42
+ "@elaraai/east-c-cli-win32-x64": "1.0.85"
43
43
  },
44
44
  "scripts": {}
45
45
  }