@zakkster/lite-signal 1.0.3 → 1.0.4
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 +4 -3
- package/llms.txt +2 -2
- package/package.json +7 -7
package/README.md
CHANGED
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
> Zero-GC reactive graph for hot paths. Object-pooled nodes, versioned push-pull propagation, 32-bit modular epochs. Built for 16ms render budgets and 1MB extension bundles.
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/@zakkster/lite-signal)
|
|
6
|
+

|
|
6
7
|
[](https://bundlephobia.com/package/@zakkster/lite-signal)
|
|
7
8
|
[](https://www.npmjs.com/package/@zakkster/lite-signal)
|
|
8
9
|
[](https://www.npmjs.com/package/@zakkster/lite-signal)
|
|
@@ -365,7 +366,7 @@ These are the questions you'd ask in a code review, with the answers:
|
|
|
365
366
|
|
|
366
367
|
## Benchmarks
|
|
367
368
|
|
|
368
|
-
Honest numbers, against the same workload, with anti-DCE sinks and verified effect execution. All measurements: Node 22, **2016-era Intel MacBook Pro (4 cores, ~10 yr old hardware)**, 20K iterations × 5 inner runs ×
|
|
369
|
+
Honest numbers, against the same workload, with anti-DCE sinks and verified effect execution. All measurements: Node 22, **2016-era Intel MacBook Pro (4 cores, ~10 yr old hardware)**, 20K iterations × 5 inner runs × 50+ outer invocations (median reported). Newer/faster machines shift all libs up proportionally; the relative ordering between libs is what matters.
|
|
369
370
|
|
|
370
371
|
| Scenario | What it stresses | lite-signal | alien-signals | preact | solid-js |
|
|
371
372
|
| ---------- | -------------------------------- | ----------- | ------------- | ---------- | --------- |
|
|
@@ -382,7 +383,7 @@ On allocation pressure, `lite-signal` is alone in the zero-Δheap band: ~15 KB o
|
|
|
382
383
|
|
|
383
384
|
> Note on the +71 KB retained that lite-signal shows on KAIROS specifically: that's the pre-allocated pool sitting in memory holding the live graph (1002 nodes + ~2000 links). The pool *is* the working memory — see the [Case for object pooling](#case-for-object-pooling) section. On the other benches the graph is small enough that the same pool floats below baseline after GC.
|
|
384
385
|
|
|
385
|
-
The benchmark harness is in [`bench/benchmark.mjs`](./bench/benchmark.mjs). It:
|
|
386
|
+
The benchmark harness is in [`bench/benchmark.mjs`](./bench/benchmark.mjs); a full methodology write-up — including the anti-DCE design, workload diagrams, variance discipline, reproducibility recipe, and a self-validation procedure for the harness itself — lives in [`bench/README.md`](./bench/README.md). It:
|
|
386
387
|
|
|
387
388
|
1. Writes every effect's output to a shared `Float64Array(4096)` exposed on `globalThis` — V8 cannot prove these writes are dead.
|
|
388
389
|
2. Uses the **client** Solid runtime (`solid-js/dist/solid.js`), not the SSR stub Node resolves to by default. The default Node resolution silently no-ops effects, which is how earlier benchmarks across the ecosystem have reported Solid at ~50 GHz throughput.
|
|
@@ -584,4 +585,4 @@ MIT © Zahary Shinikchiev
|
|
|
584
585
|
|
|
585
586
|
---
|
|
586
587
|
|
|
587
|
-
> Part of the **@zakkster** zero-GC stack: [`lite-ecs`](https://www.npmjs.com/package/@zakkster/lite-ecs) · [`lite-ease`](https://www.npmjs.com/package/@zakkster/lite-ease) · [`lite-pointer-tracker`](https://www.npmjs.com/package/@zakkster/lite-pointer-tracker) · [`lite-bmfont`](https://www.npmjs.com/package/@zakkster/lite-bmfont) · [`lite-color`](https://www.npmjs.com/package/@zakkster/lite-color)
|
|
588
|
+
> Part of the **@zakkster** zero-GC stack: [`lite-ecs`](https://www.npmjs.com/package/@zakkster/lite-ecs) · [`lite-ease`](https://www.npmjs.com/package/@zakkster/lite-ease) · [`lite-pointer-tracker`](https://www.npmjs.com/package/@zakkster/lite-pointer-tracker) · [`lite-bmfont`](https://www.npmjs.com/package/@zakkster/lite-bmfont) · [`lite-color`](https://www.npmjs.com/package/@zakkster/lite-color)
|
package/llms.txt
CHANGED
|
@@ -117,7 +117,7 @@ class CapacityError extends Error {
|
|
|
117
117
|
}
|
|
118
118
|
```
|
|
119
119
|
|
|
120
|
-
## Benchmark snapshot (Node 22, 2016-era Intel MacBook Pro, 20K iter × 5 runs ×
|
|
120
|
+
## Benchmark snapshot (Node 22, 2016-era Intel MacBook Pro, 20K iter × 5 runs × 50+ invocations)
|
|
121
121
|
|
|
122
122
|
| Scenario | lite-signal | alien-signals | preact | solid |
|
|
123
123
|
| --------------------------------------- | ----------- | ------------- | -------- | -------- |
|
|
@@ -199,4 +199,4 @@ npm install @zakkster/lite-signal
|
|
|
199
199
|
|
|
200
200
|
## License
|
|
201
201
|
|
|
202
|
-
MIT
|
|
202
|
+
MIT
|
package/package.json
CHANGED
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@zakkster/lite-signal",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"description": "Zero-GC reactive graph. Monomorphic object pool, versioned push-pull propagation, 32-bit modular versioning. Built for hot paths and long-running processes.",
|
|
5
5
|
"author": "Zahary Shinikchiev <shinikchiev@yahoo.com>",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"type": "module",
|
|
8
|
-
"main": "Signal.js",
|
|
9
|
-
"module": "Signal.js",
|
|
10
|
-
"types": "Signal.d.ts",
|
|
8
|
+
"main": "./Signal.js",
|
|
9
|
+
"module": "./Signal.js",
|
|
10
|
+
"types": "./Signal.d.ts",
|
|
11
11
|
"exports": {
|
|
12
12
|
".": {
|
|
13
|
-
"types": "Signal.d.ts",
|
|
14
|
-
"import": "Signal.js",
|
|
15
|
-
"default": "Signal.js"
|
|
13
|
+
"types": "./Signal.d.ts",
|
|
14
|
+
"import": "./Signal.js",
|
|
15
|
+
"default": "./Signal.js"
|
|
16
16
|
}
|
|
17
17
|
},
|
|
18
18
|
"files": [
|