concurrent-c-node 0.5.0__tar.gz → 0.7.0__tar.gz

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.
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: concurrent-c-node
3
- Version: 0.5.0
3
+ Version: 0.7.0
4
4
  Summary: JavaScript and npm packages from Python over the Concurrent-C bridge: one spawned Node child per domain, host-controlled lifetime.
5
5
  License: MIT
6
6
  Project-URL: Repository, https://github.com/sreekotay/concurrent-c
@@ -61,6 +61,11 @@ Import stays `import cc_node`. Examples ship in the wheel. The mirror of
61
61
  the handle ledger and `release()` drops one early; `destroy()` is
62
62
  idempotent, every door answers `bridge is closed` after, and the
63
63
  child dies with the bridge (and on host exit, via stdin EOF).
64
+ Teardown is **cooperative** (farewell `close` + drain, then wait /
65
+ kill-fallback): in-flight calls may still return a correct value.
66
+ Hard child death (`SIGKILL`, `process.abort`) is a different contract —
67
+ in-flight ops must reject. See
68
+ [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md).
64
69
 
65
70
  ## Async is free
66
71
 
@@ -124,8 +129,8 @@ Run Python in your project, get your project's packages: `npm install`
124
129
  next to your program is the whole setup.
125
130
 
126
131
  (Writing Concurrent-C itself rather than Python? There is a zero-IPC
127
- tier: `cc_js_host_new(&a)` boots libnode *inside* your CC program — see
128
- [`examples/recipe_js_host.ccs`](https://github.com/sreekotay/concurrent-c/blob/main/examples/recipe_js_host.ccs).)
132
+ tier: `cc_js_new(false, &a)` boots libnode *inside* your CC program — see
133
+ [`examples/js/jsdemo.shcc`](https://github.com/sreekotay/concurrent-c/blob/main/examples/js/jsdemo.shcc).)
129
134
 
130
135
  ## Publishing
131
136
 
@@ -161,10 +166,11 @@ A worked tour (builtin Node modules, chains, callbacks, thenables,
161
166
  buffers — no npm install needed):
162
167
  `python -m cc_node.examples.use_node`.
163
168
 
164
- Adversarial multi-child storm (fanout, abort inject, mixed concurrent,
165
- handle-leak / RSS soaks): [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
169
+ Adversarial multi-child storm (escaped closures, cooperative
170
+ fanout-destroy, abort inject, handle-leak / RSS soaks):
171
+ [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
166
172
  — `./stress/bridge/run.sh` (`CHAOS_SCALE=full` / `soak` for bigger N).
167
- Mode catalog + status:
173
+ Mode catalog + destroy contracts:
168
174
  [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md)
169
175
  (latency demos stay in `cc_node/examples/`).
170
176
 
@@ -50,6 +50,11 @@ Import stays `import cc_node`. Examples ship in the wheel. The mirror of
50
50
  the handle ledger and `release()` drops one early; `destroy()` is
51
51
  idempotent, every door answers `bridge is closed` after, and the
52
52
  child dies with the bridge (and on host exit, via stdin EOF).
53
+ Teardown is **cooperative** (farewell `close` + drain, then wait /
54
+ kill-fallback): in-flight calls may still return a correct value.
55
+ Hard child death (`SIGKILL`, `process.abort`) is a different contract —
56
+ in-flight ops must reject. See
57
+ [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md).
53
58
 
54
59
  ## Async is free
55
60
 
@@ -113,8 +118,8 @@ Run Python in your project, get your project's packages: `npm install`
113
118
  next to your program is the whole setup.
114
119
 
115
120
  (Writing Concurrent-C itself rather than Python? There is a zero-IPC
116
- tier: `cc_js_host_new(&a)` boots libnode *inside* your CC program — see
117
- [`examples/recipe_js_host.ccs`](https://github.com/sreekotay/concurrent-c/blob/main/examples/recipe_js_host.ccs).)
121
+ tier: `cc_js_new(false, &a)` boots libnode *inside* your CC program — see
122
+ [`examples/js/jsdemo.shcc`](https://github.com/sreekotay/concurrent-c/blob/main/examples/js/jsdemo.shcc).)
118
123
 
119
124
  ## Publishing
120
125
 
@@ -150,10 +155,11 @@ A worked tour (builtin Node modules, chains, callbacks, thenables,
150
155
  buffers — no npm install needed):
151
156
  `python -m cc_node.examples.use_node`.
152
157
 
153
- Adversarial multi-child storm (fanout, abort inject, mixed concurrent,
154
- handle-leak / RSS soaks): [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
158
+ Adversarial multi-child storm (escaped closures, cooperative
159
+ fanout-destroy, abort inject, handle-leak / RSS soaks):
160
+ [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
155
161
  — `./stress/bridge/run.sh` (`CHAOS_SCALE=full` / `soak` for bigger N).
156
- Mode catalog + status:
162
+ Mode catalog + destroy contracts:
157
163
  [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md)
158
164
  (latency demos stay in `cc_node/examples/`).
159
165
 
@@ -10,7 +10,11 @@
10
10
  * Python callable crosses as {$f: id}; invoking it sends a nested `cb`
11
11
  * request and BLOCKS on a synchronous read for the answer — legal
12
12
  * because the protocol is strictly alternating, so nothing else can be
13
- * in flight. stdin EOF is the host vanishing: exit. */
13
+ * in flight. stdin EOF is the host vanishing: exit.
14
+ *
15
+ * cc/include/ccc/script/js.cch embeds this file verbatim (the CC
16
+ * isolated tier speaks the same wire); js_iso_smoke pins the two
17
+ * byte-identical, so an edit here must land there too. */
14
18
  'use strict';
15
19
 
16
20
  const fs = require('fs');
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: concurrent-c-node
3
- Version: 0.5.0
3
+ Version: 0.7.0
4
4
  Summary: JavaScript and npm packages from Python over the Concurrent-C bridge: one spawned Node child per domain, host-controlled lifetime.
5
5
  License: MIT
6
6
  Project-URL: Repository, https://github.com/sreekotay/concurrent-c
@@ -61,6 +61,11 @@ Import stays `import cc_node`. Examples ship in the wheel. The mirror of
61
61
  the handle ledger and `release()` drops one early; `destroy()` is
62
62
  idempotent, every door answers `bridge is closed` after, and the
63
63
  child dies with the bridge (and on host exit, via stdin EOF).
64
+ Teardown is **cooperative** (farewell `close` + drain, then wait /
65
+ kill-fallback): in-flight calls may still return a correct value.
66
+ Hard child death (`SIGKILL`, `process.abort`) is a different contract —
67
+ in-flight ops must reject. See
68
+ [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md).
64
69
 
65
70
  ## Async is free
66
71
 
@@ -124,8 +129,8 @@ Run Python in your project, get your project's packages: `npm install`
124
129
  next to your program is the whole setup.
125
130
 
126
131
  (Writing Concurrent-C itself rather than Python? There is a zero-IPC
127
- tier: `cc_js_host_new(&a)` boots libnode *inside* your CC program — see
128
- [`examples/recipe_js_host.ccs`](https://github.com/sreekotay/concurrent-c/blob/main/examples/recipe_js_host.ccs).)
132
+ tier: `cc_js_new(false, &a)` boots libnode *inside* your CC program — see
133
+ [`examples/js/jsdemo.shcc`](https://github.com/sreekotay/concurrent-c/blob/main/examples/js/jsdemo.shcc).)
129
134
 
130
135
  ## Publishing
131
136
 
@@ -161,10 +166,11 @@ A worked tour (builtin Node modules, chains, callbacks, thenables,
161
166
  buffers — no npm install needed):
162
167
  `python -m cc_node.examples.use_node`.
163
168
 
164
- Adversarial multi-child storm (fanout, abort inject, mixed concurrent,
165
- handle-leak / RSS soaks): [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
169
+ Adversarial multi-child storm (escaped closures, cooperative
170
+ fanout-destroy, abort inject, handle-leak / RSS soaks):
171
+ [`stress/bridge/`](https://github.com/sreekotay/concurrent-c/tree/main/stress/bridge)
166
172
  — `./stress/bridge/run.sh` (`CHAOS_SCALE=full` / `soak` for bigger N).
167
- Mode catalog + status:
173
+ Mode catalog + destroy contracts:
168
174
  [`bridge_stress.md`](https://github.com/sreekotay/concurrent-c/blob/main/stress/bridge/bridge_stress.md)
169
175
  (latency demos stay in `cc_node/examples/`).
170
176
 
@@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta"
4
4
 
5
5
  [project]
6
6
  name = "concurrent-c-node"
7
- version = "0.5.0"
7
+ version = "0.7.0"
8
8
  description = "JavaScript and npm packages from Python over the Concurrent-C bridge: one spawned Node child per domain, host-controlled lifetime."
9
9
  readme = "README.md"
10
10
  requires-python = ">=3.8"