@elaraai/east-c-cli 1.0.83 → 1.0.84

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 +27 -10
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -43,23 +43,40 @@ 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.
57
+ `--decode whole` decodes every input before the program runs instead, which
58
+ suits a program that reads most of an input at random: lazily, a read beyond
59
+ the segments the pager keeps (64 MiB of them, `EAST_PAGED_CACHE_BYTES`)
60
+ decodes its segment again. `exec` reads the same choice from its unit's
61
+ `decode`. A value that is not a collection, and a collection whose elements
62
+ hold a Ref or a function, is decoded whole either way.
49
63
 
50
- ### Large inputs
64
+ ```bash
65
+ east-c run task.beast2 -i rows.beast2 --decode whole -o out.beast2
66
+ ```
51
67
 
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.
68
+ With `-v` the runner says how each input opened, and what reading it came to:
69
+ the segments a lazy input decoded, or what an input decoded whole holds in
70
+ memory — the growth in resident memory across its decode, beside the size it
71
+ weighs on disk, since a nested collection decodes at many times that size.
72
+ Reads that decode segments again are said to, with what decoding the input
73
+ whole would do instead.
56
74
 
57
75
  A collection input may also be a manifest directory, the form e3 stages a
58
76
  stored collection in: the input file holds a manifest, and each segment it
59
77
  names is a standalone blob in `<file>.segments/<sha256>.beast2`. It opens
60
78
  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.
79
+ whole — and weighs its segments in the `-v` account.
63
80
 
64
81
  ### Exiting with the parent
65
82
 
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.84",
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.84"
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.84",
39
+ "@elaraai/east-c-cli-linux-arm64": "1.0.84",
40
+ "@elaraai/east-c-cli-darwin-arm64": "1.0.84",
41
+ "@elaraai/east-c-cli-darwin-x64": "1.0.84",
42
+ "@elaraai/east-c-cli-win32-x64": "1.0.84"
43
43
  },
44
44
  "scripts": {}
45
45
  }