@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.
Files changed (3) hide show
  1. package/README.md +4 -3
  2. package/llms.txt +2 -2
  3. 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
  [![npm version](https://img.shields.io/npm/v/@zakkster/lite-signal.svg?style=for-the-badge&color=latest)](https://www.npmjs.com/package/@zakkster/lite-signal)
6
+ ![Zero-GC](https://img.shields.io/badge/Zero--GC-Engine-00C853?style=for-the-badge&logo=leaf&logoColor=white)
6
7
  [![bundle size](https://img.shields.io/badge/min%2Bgz-~3.2KB-blue?style=flat-square)](https://bundlephobia.com/package/@zakkster/lite-signal)
7
8
  [![npm downloads](https://img.shields.io/npm/dm/@zakkster/lite-signal?style=for-the-badge&color=blue)](https://www.npmjs.com/package/@zakkster/lite-signal)
8
9
  [![npm total downloads](https://img.shields.io/npm/dt/@zakkster/lite-signal?style=for-the-badge&color=blue)](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 × 12 outer invocations (median reported). Newer/faster machines shift all libs up proportionally; the relative ordering between libs is what matters.
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 × 12 invocations)
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",
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": [