Malte Ubl and Claude Opus 5.5
882c87d425
process/child: void slots, listener removal by identity, signalCode
...
Three shapes from pi's process/child helpers:
1. A cleanup arrow such as `() => process.off(signal, handler)` sits in
@types/node's `Process`-returning slot. The lambda's ABI was decided
from its inferred return type before the contextual void slot was
consulted, so the arrow promised a `Process` value the lowering cannot
produce and the registration fenced. `lambdaSignature` now takes the
contextual void answer first; the adoption block further down already
computes it, so every program that compiles today keeps its IR.
2. `child.off`/`removeListener` were unimplemented. They join the
`child.on` family, are limited to the removable literals `spawn`,
`exit`, `close` and `error`, and require the listener value that was
registered — removal is by closure identity, scanning the registry
from the end as Node does. New C runtime entry points
`scr_child_off_spawn/_exit/_close/_error` release the entry and shift
the tail.
3. `child.signalCode` reads `string | null` from the recorded exit
signal, with `scr_child_has_signal_code`/`scr_child_signal_code`
behind the same typed-union wrap as `spawnRes.signal`; the IR
validator pins the `string | null` result.
The process listener registration paths (stdin events, IPC message and
disconnect, uncaughtException and uncaughtExceptionMonitor,
unhandledRejection, warning, signals, exit) now accept any discarded
expression, matching `child.on` — `resultIsDiscarded` rather than a bare
expression statement — so `handlers.push(() => process.off(…))` compiles.
Evidence: corpus 8412 (removal through `off` and `removeListener` for
all four events, `signalCode` while running, after a normal exit, after
a fatal signal and after a failed spawn, idempotent double removal) and
the `node-types` fixture plus project-config test that pins pi's exact
`() => process.off(...)` cleanup closure. Ambient declarations gain the
`signalCode` property and the four `off`/`removeListener` overloads.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com >
2026-10-28 05:38:15 -07:00
..
2026-10-12 12:25:30 -05:00
2026-10-27 10:43:05 -05:00
2026-10-27 01:35:32 -05:00
2026-10-23 15:13:36 -05:00
2026-10-27 07:17:08 -05:00
2026-10-27 07:17:08 -05:00
2026-10-26 11:41:21 -05:00
2026-10-26 11:41:21 -05:00
2026-10-26 16:54:31 -05:00
2026-10-26 11:41:21 -05:00
2026-10-26 05:39:34 -07:00
2026-10-24 08:07:52 -05:00
2026-10-27 17:53:47 -05:00
2026-10-27 16:45:14 -05:00
2026-10-27 06:53:26 -05:00
2026-09-26 19:09:54 -05:00
2026-10-05 17:51:24 -05:00
2026-10-15 02:27:13 -05:00
2026-10-24 15:19:33 -05:00
2026-10-15 02:06:23 -05:00
2026-10-18 08:17:24 -07:00
2026-10-24 12:01:26 -05:00
2026-10-23 22:57:22 -05:00
2026-10-26 05:39:34 -07:00
2026-10-25 19:48:38 -05:00
2026-10-26 05:39:34 -07:00
2026-10-25 19:48:38 -05:00
2026-10-25 05:48:27 -05:00
2026-10-24 06:29:47 -05:00
2026-10-28 05:38:15 -07:00
2026-10-28 05:38:15 -07:00
2026-10-23 05:33:14 -05:00
2026-10-22 17:18:54 -05:00
2026-10-24 08:35:30 -05:00
2026-10-24 08:35:30 -05:00
2026-10-14 04:53:07 -05:00
2026-10-26 06:45:43 -05:00
2026-10-15 01:18:54 -05:00
2026-10-26 05:39:34 -07:00
2026-10-26 02:48:03 -05:00
2026-10-15 02:06:23 -05:00
2026-10-17 11:06:47 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-22 18:05:53 -05:00
2026-10-26 02:48:03 -05:00
2026-10-21 21:55:47 -05:00
2026-10-18 09:09:03 -05:00
2026-10-23 18:01:19 -05:00
2026-10-26 14:34:49 -05:00
2026-10-15 14:15:33 -05:00
2026-10-15 02:06:23 -05:00
2026-10-26 05:39:34 -07:00
2026-10-20 21:05:19 -05:00
2026-10-20 15:56:59 -07:00
2026-10-22 05:33:28 -07:00
2026-10-22 10:30:56 -05:00
2026-10-21 21:55:47 -05:00
2026-10-22 09:08:35 -05:00
2026-10-18 13:32:40 -07:00
2026-10-27 10:00:00 -05:00
2026-10-25 18:10:32 -05:00
2026-10-22 12:31:21 -05:00
2026-10-24 20:30:36 -05:00
2026-10-27 17:53:47 -05:00
2026-10-26 05:39:34 -07:00
2026-10-15 21:43:27 -05:00
2026-10-26 10:19:57 -05:00
2026-10-22 23:52:25 -05:00
2026-10-22 23:52:25 -05:00
2026-10-27 19:20:37 -05:00
2026-10-20 19:17:05 -05:00
2026-10-21 21:55:47 -05:00
2026-10-22 02:49:33 -05:00
2026-10-21 13:56:07 -05:00
2026-10-23 19:31:34 -05:00
2026-10-24 18:55:14 -05:00
2026-10-24 18:55:14 -05:00
2026-10-22 09:48:41 -05:00
2026-10-22 09:48:41 -05:00
2026-10-20 08:47:51 -07:00
2026-10-23 05:15:45 -05:00
2026-10-18 15:15:05 -07:00
2026-10-22 06:52:18 -05:00
2026-10-25 09:42:07 -05:00
2026-10-27 16:45:35 -05:00
2026-08-16 22:59:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-15 02:06:23 -05:00
2026-10-15 23:58:50 -05:00
2026-10-15 23:58:50 -05:00
2026-10-16 21:53:32 -05:00
2026-10-16 21:06:22 -05:00
2026-10-15 23:58:50 -05:00
2026-10-22 17:05:08 -05:00
2026-10-27 10:00:00 -05:00
2026-10-25 19:48:38 -05:00
2026-10-15 07:59:19 -05:00
2026-09-28 19:01:50 -05:00
2026-10-24 12:01:26 -05:00
2026-10-14 23:20:57 -05:00
2026-10-26 05:39:34 -07:00
2026-10-24 10:06:35 -05:00
2026-10-26 22:25:51 -05:00
2026-10-26 22:25:51 -05:00
2026-10-14 08:10:02 -05:00
2026-10-24 01:13:00 -05:00
2026-10-25 19:55:14 -05:00
2026-10-25 19:48:38 -05:00
2026-10-26 19:35:52 -07:00
2026-10-24 18:55:14 -05:00
2026-10-22 08:41:08 -05:00
2026-10-15 21:44:38 -05:00
2026-10-22 08:41:08 -05:00
2026-10-15 19:59:56 -05:00
2026-10-26 09:18:53 -07:00
2026-10-26 09:18:53 -07:00
2026-10-26 16:54:31 -05:00
2026-10-25 19:48:38 -05:00
2026-10-26 09:18:53 -07:00
2026-10-27 19:20:37 -05:00
2026-10-25 13:13:02 -05:00
2026-10-26 09:18:53 -07:00
2026-10-26 13:26:29 -05:00
2026-10-08 15:40:53 -05:00
2026-10-27 15:04:45 -05:00
2026-10-27 03:28:32 -05:00
2026-10-17 23:40:06 -05:00
2026-10-22 15:48:23 -07:00
2026-10-23 17:06:16 -05:00
2026-10-22 15:48:23 -07:00
2026-10-14 11:43:44 -05:00
2026-08-23 20:16:13 -05:00
2026-10-25 13:01:23 -05:00
2026-10-22 08:07:37 -05:00
2026-10-07 19:07:02 -05:00
2026-10-07 19:07:02 -05:00
2026-10-25 05:48:40 -05:00
2026-10-23 04:50:06 -05:00
2026-10-25 05:48:40 -05:00
2026-10-27 15:26:28 -07:00
2026-10-26 09:18:53 -07:00
2026-10-17 11:06:47 -05:00
2026-10-26 09:18:53 -07:00
2026-10-18 15:19:38 -07:00
2026-10-24 18:55:14 -05:00
2026-10-24 12:01:26 -05:00
2026-08-23 20:16:13 -05:00
2026-10-26 03:57:37 -05:00
2026-10-26 03:57:37 -05:00
2026-10-23 12:52:57 -05:00
2026-10-27 17:54:43 -05:00
2026-10-23 12:52:57 -05:00
2026-10-23 12:52:57 -05:00
2026-10-26 12:50:38 -07:00
2026-10-23 12:52:57 -05:00
2026-10-18 15:55:12 -07:00
2026-10-23 22:08:02 -05:00
2026-10-06 13:07:11 -05:00
2026-10-06 13:07:11 -05:00
2026-10-06 13:07:11 -05:00
2026-10-22 10:54:02 -05:00
2026-10-15 02:06:23 -05:00
2026-10-26 05:39:34 -07:00
2026-10-24 18:55:14 -05:00
2026-10-14 11:43:44 -05:00
2026-10-23 23:52:50 -05:00
2026-10-21 00:06:54 -05:00
2026-10-16 07:27:17 -05:00
2026-10-25 09:45:21 -05:00
2026-10-22 05:46:53 -05:00
2026-08-23 20:16:13 -05:00
2026-10-26 09:18:53 -07:00
2026-10-17 17:54:52 -05:00
2026-10-25 02:28:32 -05:00
2026-10-25 22:36:11 -05:00
2026-10-25 16:05:55 -07:00
2026-10-25 16:05:55 -07:00
2026-10-19 07:51:54 -05:00
2026-10-19 07:51:54 -05:00
2026-10-17 02:10:27 -05:00
2026-10-25 01:35:28 -05:00
2026-10-19 07:51:54 -05:00
2026-10-13 07:48:24 -05:00
2026-10-27 02:44:56 -05:00
2026-10-25 13:35:04 -05:00
2026-10-27 06:35:26 -07:00
2026-10-18 06:23:44 -07:00
2026-10-21 13:04:07 -05:00
2026-10-17 11:26:12 -07:00
2026-10-24 17:38:25 -05:00
2026-10-26 23:13:34 -05:00
2026-10-22 00:18:36 -05:00
2026-10-16 00:06:31 -05:00
2026-10-16 00:06:31 -05:00
2026-10-20 00:15:31 -05:00
2026-10-18 04:11:02 -05:00
2026-10-18 04:11:02 -05:00
2026-10-18 04:11:02 -05:00
2026-10-22 01:55:38 -05:00
2026-10-27 06:53:26 -05:00
2026-10-22 17:50:29 -05:00
2026-10-27 06:53:26 -05:00
2026-10-26 05:52:57 -05:00
2026-10-25 13:00:18 -05:00
2026-10-27 02:44:56 -05:00
2026-10-25 05:58:42 -05:00
2026-10-26 05:39:34 -07:00
2026-10-15 08:35:14 -05:00
2026-10-14 17:27:02 -05:00
2026-10-19 21:06:20 -05:00
2026-10-19 07:55:06 -05:00
2026-10-24 09:05:16 -05:00
2026-10-14 17:27:02 -05:00
2026-10-03 05:38:29 -05:00
2026-10-26 23:55:27 -05:00
2026-10-26 23:41:46 -05:00
2026-10-26 23:55:27 -05:00
2026-10-18 20:20:05 -05:00
2026-10-07 19:07:02 -05:00
2026-10-23 18:01:19 -05:00
2026-10-26 05:39:34 -07:00
2026-10-24 10:06:35 -05:00
2026-10-25 18:53:50 -05:00
2026-10-25 18:53:50 -05:00
2026-10-25 18:53:50 -05:00
2026-10-14 04:53:07 -05:00
2026-10-15 02:06:23 -05:00
2026-10-24 15:38:37 -05:00
2026-10-14 17:27:02 -05:00
2026-10-14 11:30:47 -05:00
2026-10-13 19:48:11 -05:00
2026-10-24 01:13:00 -05:00
2026-10-24 01:13:00 -05:00
2026-10-26 06:45:43 -05:00
2026-10-26 05:39:34 -07:00
2026-10-20 21:52:19 -05:00
2026-10-14 17:27:02 -05:00
2026-10-26 06:45:43 -05:00
2026-10-12 12:25:30 -05:00
2026-10-21 08:52:18 -05:00
2026-10-21 11:01:40 -05:00
2026-10-20 12:50:19 -05:00
2026-10-14 11:43:44 -05:00
2026-10-15 02:06:23 -05:00
2026-10-22 05:48:30 -05:00
2026-10-22 02:52:01 -05:00
2026-10-24 08:35:30 -05:00
2026-10-22 06:59:47 -05:00
2026-10-22 03:33:29 -05:00
2026-10-27 17:53:47 -05:00
2026-08-10 12:21:11 -05:00
2026-09-29 20:54:09 -05:00
2026-10-26 05:39:34 -07:00
2026-10-27 07:17:08 -05:00
2026-10-17 12:36:51 -05:00
2026-10-17 11:06:47 -05:00
2026-10-17 11:06:47 -05:00
2026-10-23 18:01:19 -05:00
2026-10-23 18:11:49 -05:00
2026-10-26 15:12:51 -05:00
2026-10-23 18:11:49 -05:00