@elaraai/east-c-cli 1.0.84 → 1.0.86

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 +31 -9
  2. package/package.json +7 -7
package/README.md CHANGED
@@ -53,10 +53,13 @@ memory.
53
53
  A collection input opens lazily, whatever it weighs: an indexed beast2 file is
54
54
  mapped, and a read decodes only the segments it reaches — its size, a keyed
55
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.
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.
57
60
  `--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`)
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
60
63
  decodes its segment again. `exec` reads the same choice from its unit's
61
64
  `decode`. A value that is not a collection, and a collection whose elements
62
65
  hold a Ref or a function, is decoded whole either way.
@@ -101,14 +104,33 @@ gone.
101
104
 
102
105
  ```bash
103
106
  east-c run task.beast2 -i rows.beast2 --profile
107
+ east-c exec unit.beast2 --profile
108
+ EAST_PROFILE=1 EAST_PROFILE_INTERVAL=300 east-c exec unit.beast2
104
109
  ```
105
110
 
106
- prints every East function the run called, by self time, with its call
107
- count, its total time, and where it is: the name of the Let it was bound to
108
- when the IR has one, its definition site, and — when that differs — the
109
- site of the first call that reached it, which is what tells apart helpers
110
- the TypeScript builder inlined at their call sites. Off, profiling costs
111
- one branch per call.
111
+ prints, after the work (and after a failure's error), every East function
112
+ and platform function it called, by self time, with its call count, its
113
+ total time, and where it is: the name of the Let it was bound to when the
114
+ IR has one, its definition site, and — when that differs — the site of the
115
+ first call that reached it, which is what tells apart helpers a builder
116
+ lowered to calls at their call sites. A platform function is an entry of
117
+ its own, named after it and placed by the call that reached it, so the time
118
+ spent inside it is not its caller's self time. So is a lazily read input's
119
+ decoding: each segment its reads decode, and its whole decode when an
120
+ operation the pager cannot serve needs one, is a call of one entry named
121
+ after the input as `-v` names it (`input 1`), placed by the first read that
122
+ decoded. Keyed reads at random beyond the segments the pager keeps
123
+ (`EAST_PAGED_CACHE_BYTES`), or a scan repeated, show there; the reading
124
+ function's total time keeps those decodes, and its self time does not.
125
+
126
+ `EAST_PROFILE` set to anything but `0` profiles without the flag, which is
127
+ how a task run by e3 is profiled: e3 hands its environment to the runner,
128
+ and the report lands in the task's log. `EAST_PROFILE_INTERVAL=N` (seconds)
129
+ also prints the profile so far every N seconds while the work runs, a call
130
+ still under way counted with its time so far; an interval that is not a
131
+ number of seconds is said and ignored. east-py's runner prints the same
132
+ report (the profiler is libeast-c's). Off, profiling costs one branch per
133
+ call.
112
134
 
113
135
  The `ir` toolbox (issue #627) works on IR files without running them:
114
136
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elaraai/east-c-cli",
3
- "version": "1.0.84",
3
+ "version": "1.0.86",
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.84"
35
+ "@elaraai/east": "1.0.86"
36
36
  },
37
37
  "optionalDependencies": {
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"
38
+ "@elaraai/east-c-cli-linux-x64": "1.0.86",
39
+ "@elaraai/east-c-cli-linux-arm64": "1.0.86",
40
+ "@elaraai/east-c-cli-darwin-arm64": "1.0.86",
41
+ "@elaraai/east-c-cli-darwin-x64": "1.0.86",
42
+ "@elaraai/east-c-cli-win32-x64": "1.0.86"
43
43
  },
44
44
  "scripts": {}
45
45
  }