@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.
- package/README.md +31 -9
- 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
|
|
59
|
-
the segments the pager keeps
|
|
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
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
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.
|
|
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.
|
|
35
|
+
"@elaraai/east": "1.0.86"
|
|
36
36
|
},
|
|
37
37
|
"optionalDependencies": {
|
|
38
|
-
"@elaraai/east-c-cli-linux-x64": "1.0.
|
|
39
|
-
"@elaraai/east-c-cli-linux-arm64": "1.0.
|
|
40
|
-
"@elaraai/east-c-cli-darwin-arm64": "1.0.
|
|
41
|
-
"@elaraai/east-c-cli-darwin-x64": "1.0.
|
|
42
|
-
"@elaraai/east-c-cli-win32-x64": "1.0.
|
|
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
|
}
|