@smoothbricks/lmao 0.1.2 → 0.1.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/dist/allocator.wasm +0 -0
- package/dist/es.d.ts.map +1 -1
- package/dist/es.js +1 -0
- package/dist/lib/archive/chunkCompaction.d.ts.map +1 -1
- package/dist/lib/archive/chunkCompaction.js +2 -0
- package/dist/lib/archive/chunkEnvelope.d.ts.map +1 -1
- package/dist/lib/archive/chunkRouting.d.ts.map +1 -1
- package/dist/lib/archive/chunkRouting.js +3 -0
- package/dist/lib/archive/chunkStats.d.ts.map +1 -1
- package/dist/lib/archive/chunkStats.js +1 -0
- package/dist/lib/arrow/capacityStats.d.ts.map +1 -1
- package/dist/lib/arrow/capacityStats.js +1 -0
- package/dist/lib/bufferStrategy.d.ts.map +1 -1
- package/dist/lib/capacityTuning.d.ts.map +1 -1
- package/dist/lib/capacityTuning.js +1 -0
- package/dist/lib/cleanupDiagnostics.d.ts +4 -0
- package/dist/lib/cleanupDiagnostics.d.ts.map +1 -0
- package/dist/lib/cleanupDiagnostics.js +42 -0
- package/dist/lib/codegen/evaluatorGenerator.d.ts.map +1 -1
- package/dist/lib/codegen/evaluatorGenerator.js +1 -0
- package/dist/lib/codegen/fixedPositionWriterGenerator.d.ts.map +1 -1
- package/dist/lib/codegen/fixedPositionWriterGenerator.js +1 -0
- package/dist/lib/codegen/spanLoggerGenerator.d.ts.map +1 -1
- package/dist/lib/codegen/spanLoggerGenerator.js +3 -0
- package/dist/lib/convertToArrow.d.ts.map +1 -1
- package/dist/lib/convertToArrow.js +6 -0
- package/dist/lib/defineOpContext.d.ts +5 -0
- package/dist/lib/defineOpContext.d.ts.map +1 -1
- package/dist/lib/defineOpContext.js +11 -1
- package/dist/lib/errors/Blocked.d.ts.map +1 -1
- package/dist/lib/errors/Transient.d.ts.map +1 -1
- package/dist/lib/errors/retry-policy.d.ts.map +1 -1
- package/dist/lib/flushScheduler.d.ts.map +1 -1
- package/dist/lib/flushScheduler.js +12 -0
- package/dist/lib/library.d.ts +5 -0
- package/dist/lib/library.d.ts.map +1 -1
- package/dist/lib/library.js +6 -0
- package/dist/lib/op.d.ts.map +1 -1
- package/dist/lib/op.js +2 -0
- package/dist/lib/opContext/createOpGroup.d.ts.map +1 -1
- package/dist/lib/opContext/createOpGroup.js +5 -0
- package/dist/lib/opContext/defineOp.d.ts.map +1 -1
- package/dist/lib/opContext/defineOp.js +5 -0
- package/dist/lib/result.d.ts.map +1 -1
- package/dist/lib/result.js +3 -0
- package/dist/lib/schema/builder.d.ts.map +1 -1
- package/dist/lib/schema/builder.js +1 -0
- package/dist/lib/schema/defineFeatureFlags.d.ts.map +1 -1
- package/dist/lib/schema/defineLogSchema.d.ts.map +1 -1
- package/dist/lib/schema/defineLogSchema.js +1 -0
- package/dist/lib/schema/evaluator.d.ts.map +1 -1
- package/dist/lib/schema/systemSchema.d.ts.map +1 -1
- package/dist/lib/schema/systemSchema.js +1 -0
- package/dist/lib/spanBuffer.d.ts.map +1 -1
- package/dist/lib/spanBuffer.js +8 -0
- package/dist/lib/spanBufferHelpers.d.ts.map +1 -1
- package/dist/lib/spanBufferHelpers.js +1 -0
- package/dist/lib/spanBufferStats.d.ts.map +1 -1
- package/dist/lib/spanContext.d.ts +8 -0
- package/dist/lib/spanContext.d.ts.map +1 -1
- package/dist/lib/spanContext.js +35 -0
- package/dist/lib/sqlite/index.d.ts +1 -0
- package/dist/lib/sqlite/index.d.ts.map +1 -1
- package/dist/lib/sqlite/sqlite-async-writer.d.ts.map +1 -1
- package/dist/lib/sqlite/sqlite-async-writer.js +16 -0
- package/dist/lib/sqlite/sqlite-common.d.ts.map +1 -1
- package/dist/lib/sqlite/sqlite-common.js +5 -1
- package/dist/lib/sqlite/sqlite-writer.d.ts.map +1 -1
- package/dist/lib/sqlite/sqlite-writer.js +22 -0
- package/dist/lib/testing/bun-harness.d.ts.map +1 -1
- package/dist/lib/testing/bun-harness.js +21 -0
- package/dist/lib/threadId.d.ts.map +1 -1
- package/dist/lib/threadId.js +2 -0
- package/dist/lib/traceId.d.ts.map +1 -1
- package/dist/lib/traceId.js +1 -0
- package/dist/lib/traceRoot.d.ts.map +1 -1
- package/dist/lib/traceRoot.es.d.ts.map +1 -1
- package/dist/lib/traceRoot.es.js +3 -0
- package/dist/lib/traceRoot.js +2 -0
- package/dist/lib/traceRoot.node.d.ts.map +1 -1
- package/dist/lib/traceRoot.node.js +1 -0
- package/dist/lib/tracer.d.ts.map +1 -1
- package/dist/lib/tracer.js +2 -0
- package/dist/lib/tracers/ArrayQueueTracer.d.ts.map +1 -1
- package/dist/lib/tracers/CompositeTracer.d.ts.map +1 -1
- package/dist/lib/tracers/CompositeTracer.js +6 -0
- package/dist/lib/tracers/NoOpTracer.d.ts.map +1 -1
- package/dist/lib/tracers/NoOpTracer.js +1 -0
- package/dist/lib/tracers/SQLiteTracer.d.ts.map +1 -1
- package/dist/lib/tracers/SQLiteTracer.js +11 -0
- package/dist/lib/tracers/StdioTracer.d.ts.map +1 -1
- package/dist/lib/tracers/StdioTracer.js +1 -0
- package/dist/lib/tracers/TestTracer.d.ts.map +1 -1
- package/dist/lib/tracers/TestTracer.js +1 -0
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/utf8Cache.d.ts.map +1 -1
- package/dist/lib/utf8Cache.js +1 -0
- package/dist/lib/wasm/WasmBufferStrategy.d.ts.map +1 -1
- package/dist/lib/wasm/WasmBufferStrategy.js +2 -0
- package/dist/lib/wasm/wasmAllocator.d.ts +2 -0
- package/dist/lib/wasm/wasmAllocator.d.ts.map +1 -1
- package/dist/lib/wasm/wasmSpanBuffer.d.ts.map +1 -1
- package/dist/lib/wasm/wasmTraceRoot.d.ts.map +1 -1
- package/dist/node.d.ts.map +1 -1
- package/dist/node.js +1 -0
- package/package.json +9 -6
- package/src/es.ts +2 -0
- package/src/lib/archive/chunkCompaction.ts +2 -0
- package/src/lib/archive/chunkEnvelope.ts +2 -0
- package/src/lib/archive/chunkRouting.ts +4 -0
- package/src/lib/archive/chunkStats.ts +2 -0
- package/src/lib/arrow/capacityStats.ts +2 -0
- package/src/lib/bufferStrategy.ts +2 -0
- package/src/lib/capacityTuning.ts +2 -0
- package/src/lib/cleanupDiagnostics.ts +52 -0
- package/src/lib/codegen/evaluatorGenerator.ts +2 -0
- package/src/lib/codegen/fixedPositionWriterGenerator.ts +2 -0
- package/src/lib/codegen/spanLoggerGenerator.ts +4 -0
- package/src/lib/convertToArrow.ts +6 -0
- package/src/lib/defineOpContext.ts +17 -1
- package/src/lib/errors/Blocked.ts +2 -0
- package/src/lib/errors/Transient.ts +2 -0
- package/src/lib/errors/retry-policy.ts +2 -0
- package/src/lib/flushScheduler.ts +12 -0
- package/src/lib/library.ts +7 -0
- package/src/lib/op.ts +8 -0
- package/src/lib/opContext/createOpGroup.ts +6 -0
- package/src/lib/opContext/defineOp.ts +6 -0
- package/src/lib/result.ts +4 -0
- package/src/lib/schema/builder.ts +2 -0
- package/src/lib/schema/defineFeatureFlags.ts +2 -0
- package/src/lib/schema/defineLogSchema.ts +2 -0
- package/src/lib/schema/evaluator.ts +2 -0
- package/src/lib/schema/systemSchema.ts +2 -0
- package/src/lib/spanBuffer.ts +10 -0
- package/src/lib/spanBufferHelpers.ts +2 -0
- package/src/lib/spanBufferStats.ts +2 -0
- package/src/lib/spanContext.ts +48 -1
- package/src/lib/sqlite/__tests__/sqlite-common.test.ts +40 -1
- package/src/lib/sqlite/index.ts +1 -0
- package/src/lib/sqlite/sqlite-async-writer.ts +8 -0
- package/src/lib/sqlite/sqlite-common.ts +5 -1
- package/src/lib/sqlite/sqlite-writer.ts +6 -0
- package/src/lib/testing/bun-harness.ts +21 -0
- package/src/lib/threadId.ts +2 -0
- package/src/lib/traceId.ts +4 -0
- package/src/lib/traceRoot.es.ts +4 -0
- package/src/lib/traceRoot.node.ts +2 -0
- package/src/lib/traceRoot.ts +4 -0
- package/src/lib/tracer.ts +4 -0
- package/src/lib/tracers/ArrayQueueTracer.ts +2 -0
- package/src/lib/tracers/CompositeTracer.ts +7 -0
- package/src/lib/tracers/NoOpTracer.ts +2 -0
- package/src/lib/tracers/SQLiteTracer.ts +11 -0
- package/src/lib/tracers/StdioTracer.ts +2 -0
- package/src/lib/tracers/TestTracer.ts +2 -0
- package/src/lib/types.ts +2 -0
- package/src/lib/utf8Cache.ts +2 -0
- package/src/lib/wasm/WasmBufferStrategy.ts +4 -0
- package/src/lib/wasm/allocator.zig +4 -1
- package/src/lib/wasm/wasmAllocator.ts +5 -0
- package/src/lib/wasm/wasmSpanBuffer.ts +4 -0
- package/src/lib/wasm/wasmTraceRoot.ts +4 -0
- package/src/node.ts +2 -0
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cleanupDebug } from '../cleanupDiagnostics.js';
|
|
1
2
|
import type { OpContextBinding } from '../opContext/types.js';
|
|
2
3
|
import { Tracer, type TracerOptions } from '../tracer.js';
|
|
3
4
|
import type { SpanBuffer } from '../types.js';
|
|
@@ -19,6 +20,7 @@ export interface CompositeTracerOptions<B extends OpContextBinding = OpContextBi
|
|
|
19
20
|
* Useful when you want multiple outputs from a single trace run,
|
|
20
21
|
* for example Stdio + SQLite.
|
|
21
22
|
*/
|
|
23
|
+
//#region smoo/lmao!n/tracer-implementations.composite
|
|
22
24
|
export class CompositeTracer<B extends OpContextBinding = OpContextBinding> extends Tracer<B> {
|
|
23
25
|
private readonly delegates: Tracer<B>[];
|
|
24
26
|
|
|
@@ -59,7 +61,9 @@ export class CompositeTracer<B extends OpContextBinding = OpContextBinding> exte
|
|
|
59
61
|
|
|
60
62
|
override async flush(): Promise<void> {
|
|
61
63
|
for (const tracer of this.delegates) {
|
|
64
|
+
cleanupDebug('compositeTracer.flush:delegate:start', { tracer: tracer.constructor.name });
|
|
62
65
|
await tracer.flush();
|
|
66
|
+
cleanupDebug('compositeTracer.flush:delegate:end', { tracer: tracer.constructor.name });
|
|
63
67
|
}
|
|
64
68
|
}
|
|
65
69
|
|
|
@@ -68,9 +72,12 @@ export class CompositeTracer<B extends OpContextBinding = OpContextBinding> exte
|
|
|
68
72
|
if (hasClose(tracer)) {
|
|
69
73
|
const { close } = tracer;
|
|
70
74
|
if (close) {
|
|
75
|
+
cleanupDebug('compositeTracer.close:delegate:start', { tracer: tracer.constructor.name });
|
|
71
76
|
await close.call(tracer);
|
|
77
|
+
cleanupDebug('compositeTracer.close:delegate:end', { tracer: tracer.constructor.name });
|
|
72
78
|
}
|
|
73
79
|
}
|
|
74
80
|
}
|
|
75
81
|
}
|
|
76
82
|
}
|
|
83
|
+
//#endregion smoo/lmao!n/tracer-implementations.composite
|
|
@@ -35,6 +35,7 @@ import type { SpanBuffer } from '../types.js';
|
|
|
35
35
|
*
|
|
36
36
|
* @typeParam B - OpContextBinding type
|
|
37
37
|
*/
|
|
38
|
+
//#region smoo/lmao!n/tracer-implementations.noop
|
|
38
39
|
export class NoOpTracer<B extends OpContextBinding = OpContextBinding> extends Tracer<B> {
|
|
39
40
|
/**
|
|
40
41
|
* No-op hook for trace start.
|
|
@@ -71,3 +72,4 @@ export class NoOpTracer<B extends OpContextBinding = OpContextBinding> extends T
|
|
|
71
72
|
// No-op
|
|
72
73
|
}
|
|
73
74
|
}
|
|
75
|
+
//#endregion smoo/lmao!n/tracer-implementations.noop
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { cleanupDebug } from '../cleanupDiagnostics.js';
|
|
1
2
|
import type { OpContextBinding } from '../opContext/types.js';
|
|
2
3
|
import { SQLiteAsyncTraceWriter } from '../sqlite/sqlite-async-writer.js';
|
|
3
4
|
import type { AsyncSQLiteDatabase, SyncSQLiteDatabase } from '../sqlite/sqlite-db.js';
|
|
@@ -20,6 +21,7 @@ export interface SQLiteAsyncTracerOptions<
|
|
|
20
21
|
/**
|
|
21
22
|
* Tracer that persists completed root traces to SQLite synchronously.
|
|
22
23
|
*/
|
|
24
|
+
//#region smoo/lmao!n/tracer-implementations.sqlite
|
|
23
25
|
export class SQLiteTracer<B extends OpContextBinding = OpContextBinding> extends Tracer<B> {
|
|
24
26
|
private readonly writer: SQLiteTraceWriter;
|
|
25
27
|
|
|
@@ -33,7 +35,9 @@ export class SQLiteTracer<B extends OpContextBinding = OpContextBinding> extends
|
|
|
33
35
|
}
|
|
34
36
|
|
|
35
37
|
onTraceEnd(rootBuffer: SpanBuffer<B['logBinding']['logSchema']>): void {
|
|
38
|
+
cleanupDebug('sqliteTracer.onTraceEnd:flush:start', { rows: rootBuffer._writeIndex });
|
|
36
39
|
this.writer.flush(rootBuffer);
|
|
40
|
+
cleanupDebug('sqliteTracer.onTraceEnd:flush:end');
|
|
37
41
|
}
|
|
38
42
|
|
|
39
43
|
onSpanStart(_childBuffer: SpanBuffer<B['logBinding']['logSchema']>): void {
|
|
@@ -49,9 +53,12 @@ export class SQLiteTracer<B extends OpContextBinding = OpContextBinding> extends
|
|
|
49
53
|
}
|
|
50
54
|
|
|
51
55
|
async close(): Promise<void> {
|
|
56
|
+
cleanupDebug('sqliteTracer.close:start');
|
|
52
57
|
this.writer.close();
|
|
58
|
+
cleanupDebug('sqliteTracer.close:end');
|
|
53
59
|
}
|
|
54
60
|
}
|
|
61
|
+
//#endregion smoo/lmao!n/tracer-implementations.sqlite
|
|
55
62
|
|
|
56
63
|
/**
|
|
57
64
|
* Tracer that persists completed root traces to SQLite asynchronously.
|
|
@@ -96,6 +103,7 @@ export class SQLiteAsyncTracer<B extends OpContextBinding = OpContextBinding> ex
|
|
|
96
103
|
}
|
|
97
104
|
|
|
98
105
|
override async flush(): Promise<void> {
|
|
106
|
+
cleanupDebug('sqliteAsyncTracer.flush:start');
|
|
99
107
|
await this.pendingWrites;
|
|
100
108
|
if (this.pendingErrors.length > 0) {
|
|
101
109
|
const errors = this.pendingErrors;
|
|
@@ -105,11 +113,14 @@ export class SQLiteAsyncTracer<B extends OpContextBinding = OpContextBinding> ex
|
|
|
105
113
|
}
|
|
106
114
|
throw new AggregateError(errors, `SQLiteAsyncTracer flush failed for ${errors.length} trace writes`);
|
|
107
115
|
}
|
|
116
|
+
cleanupDebug('sqliteAsyncTracer.flush:end');
|
|
108
117
|
}
|
|
109
118
|
|
|
110
119
|
async close(): Promise<void> {
|
|
120
|
+
cleanupDebug('sqliteAsyncTracer.close:start');
|
|
111
121
|
await this.flush();
|
|
112
122
|
const writer = await this.writerPromise;
|
|
113
123
|
await writer.close();
|
|
124
|
+
cleanupDebug('sqliteAsyncTracer.close:end');
|
|
114
125
|
}
|
|
115
126
|
}
|
|
@@ -204,6 +204,7 @@ export interface StdioTracerOptions<
|
|
|
204
204
|
* - Human-readable timestamps and durations
|
|
205
205
|
* - Exceptions go to stderr
|
|
206
206
|
*/
|
|
207
|
+
//#region smoo/lmao!n/tracer-implementations.stdio
|
|
207
208
|
export class StdioTracer<B extends OpContextBinding = OpContextBinding> extends Tracer<B> {
|
|
208
209
|
/**
|
|
209
210
|
* Per-trace indent levels for concurrent-safe nesting.
|
|
@@ -378,3 +379,4 @@ export class StdioTracer<B extends OpContextBinding = OpContextBinding> extends
|
|
|
378
379
|
);
|
|
379
380
|
}
|
|
380
381
|
}
|
|
382
|
+
//#endregion smoo/lmao!n/tracer-implementations.stdio
|
|
@@ -81,6 +81,7 @@ export interface StatsSnapshot<T extends LogSchema = LogSchema> {
|
|
|
81
81
|
* expect(tracer.statsSnapshots.length).toBeGreaterThan(0);
|
|
82
82
|
* ```
|
|
83
83
|
*/
|
|
84
|
+
//#region smoo/lmao!n/tracer-implementations.test
|
|
84
85
|
export class TestTracer<B extends OpContextBinding = OpContextBinding> extends Tracer<B> {
|
|
85
86
|
/**
|
|
86
87
|
* All completed root trace buffers.
|
|
@@ -144,3 +145,4 @@ export class TestTracer<B extends OpContextBinding = OpContextBinding> extends T
|
|
|
144
145
|
}
|
|
145
146
|
}
|
|
146
147
|
}
|
|
148
|
+
//#endregion smoo/lmao!n/tracer-implementations.test
|
package/src/lib/types.ts
CHANGED
|
@@ -74,6 +74,7 @@ export type { AnyColumnBuffer, ColumnBuffer, ColumnValueType, TypedArray };
|
|
|
74
74
|
*
|
|
75
75
|
* @see SpanBuffer<T> for schema-typed version with index signatures
|
|
76
76
|
*/
|
|
77
|
+
//#region smoo/lmao!n/spanbuffer-layout.interface
|
|
77
78
|
export interface AnySpanBuffer extends AnyColumnBuffer {
|
|
78
79
|
// ===========================================================================
|
|
79
80
|
// System Memory (cache-aligned, per specs/lmao/01b1)
|
|
@@ -414,6 +415,7 @@ export interface AnySpanBuffer extends AnyColumnBuffer {
|
|
|
414
415
|
*/
|
|
415
416
|
copyParentThreadIdTo(dest: Uint8Array, offset: number): void;
|
|
416
417
|
}
|
|
418
|
+
//#endregion smoo/lmao!n/spanbuffer-layout.interface
|
|
417
419
|
|
|
418
420
|
// ============================================================================
|
|
419
421
|
// Schema Type Helpers
|
package/src/lib/utf8Cache.ts
CHANGED
|
@@ -39,6 +39,7 @@ type Utf8CacheStats = { hits: number; misses: number; hitRate: number; size: num
|
|
|
39
39
|
* The cache is safe to use in async contexts since JS awaits don't
|
|
40
40
|
* allow concurrent access to the same cache instance.
|
|
41
41
|
*/
|
|
42
|
+
//#region smoo/lmao!n/buffer-perf-utf8-cache
|
|
42
43
|
export class Utf8Cache implements Utf8Encoder {
|
|
43
44
|
private readonly cache: SieveCache<string, Uint8Array>;
|
|
44
45
|
private readonly encoder = new TextEncoder();
|
|
@@ -199,3 +200,4 @@ export const globalUtf8Cache = new Utf8Cache();
|
|
|
199
200
|
export function createUtf8Cache(maxSize?: number): Utf8Cache {
|
|
200
201
|
return new Utf8Cache(maxSize);
|
|
201
202
|
}
|
|
203
|
+
//#endregion smoo/lmao!n/buffer-perf-utf8-cache
|
|
@@ -30,6 +30,9 @@ import {
|
|
|
30
30
|
type WasmSpanBufferInstance,
|
|
31
31
|
} from './wasmSpanBuffer.js';
|
|
32
32
|
|
|
33
|
+
// Spec link (88): realizes specs/lmao/01q_wasm_memory_architecture.md#smoo/lmao!n/wasm-mem (OpContext integration + trace completion).
|
|
34
|
+
//#region smoo/lmao!n/wasm-mem.strategy
|
|
35
|
+
|
|
33
36
|
function requireWasmSpanBuffer(buffer: AnySpanBuffer): WasmSpanBufferInstance {
|
|
34
37
|
if (!isWasmSpanBufferInstance(buffer)) {
|
|
35
38
|
throw new Error('Expected WASM-backed span buffer');
|
|
@@ -217,3 +220,4 @@ export class WasmBufferStrategy<T extends LogSchema = LogSchema> implements Buff
|
|
|
217
220
|
};
|
|
218
221
|
}
|
|
219
222
|
}
|
|
223
|
+
//#endregion smoo/lmao!n/wasm-mem.strategy
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
//
|
|
7
7
|
// Memory Layout:
|
|
8
8
|
// ┌─────────────────────────────────────────────────────────────────────────────┐
|
|
9
|
-
// │ Header (
|
|
9
|
+
// │ Header (192 bytes, 3 cache lines) │
|
|
10
10
|
// ├─────────────────────────────────────────────────────────────────────────────┤
|
|
11
11
|
// │ Allocated Blocks (spans + columns) │
|
|
12
12
|
// ├─────────────────────────────────────────────────────────────────────────────┤
|
|
@@ -22,7 +22,9 @@
|
|
|
22
22
|
//
|
|
23
23
|
// Freelist: Zero-overhead, uses block's memory for next pointer + cascading stats when free.
|
|
24
24
|
//
|
|
25
|
+
// Spec link (88): realizes specs/lmao/01q_wasm_memory_architecture.md#smoo/lmao!n/wasm-mem (the Zig allocator region).
|
|
25
26
|
|
|
27
|
+
//#region smoo/lmao!n/wasm-mem.allocator
|
|
26
28
|
const std = @import("std");
|
|
27
29
|
|
|
28
30
|
// =============================================================================
|
|
@@ -943,3 +945,4 @@ export fn read_col_is_valid(col_offset: u32, row_idx: u32) u8 {
|
|
|
943
945
|
const bit: u8 = @as(u8, 1) << @intCast(row_idx & 7);
|
|
944
946
|
return if ((byte & bit) != 0) 1 else 0;
|
|
945
947
|
}
|
|
948
|
+
//#endregion smoo/lmao!n/wasm-mem.allocator
|
|
@@ -10,8 +10,12 @@
|
|
|
10
10
|
* - Blocks are organized by tier (capacity 8, 16, 32, 64, 128, 256, 512)
|
|
11
11
|
* - When freelist is empty, splits from larger tier
|
|
12
12
|
* - When freeing, merges with adjacent blocks if both are free (address-based buddy merge)
|
|
13
|
+
*
|
|
14
|
+
* Spec link (88): realizes specs/lmao/01q_wasm_memory_architecture.md#smoo/lmao!n/wasm-mem (TS allocator wrapper).
|
|
13
15
|
*/
|
|
14
16
|
|
|
17
|
+
//#region smoo/lmao!n/wasm-mem.ts-allocator
|
|
18
|
+
|
|
15
19
|
// =============================================================================
|
|
16
20
|
// Types
|
|
17
21
|
// =============================================================================
|
|
@@ -467,3 +471,4 @@ export function createWasmAllocatorSync(wasmModule: WebAssembly.Module, options?
|
|
|
467
471
|
|
|
468
472
|
return wrapWasmInstance(instance, memory, capacity);
|
|
469
473
|
}
|
|
474
|
+
//#endregion smoo/lmao!n/wasm-mem.ts-allocator
|
|
@@ -20,6 +20,9 @@ import type { ITraceRoot } from '../traceRoot.js';
|
|
|
20
20
|
import type { AnySpanBuffer } from '../types.js';
|
|
21
21
|
import type { WasmAllocator } from './wasmAllocator.js';
|
|
22
22
|
|
|
23
|
+
// Spec link (88): realizes specs/lmao/01q_wasm_memory_architecture.md#smoo/lmao!n/wasm-mem (SpanBuffer + SpanLogger codegen).
|
|
24
|
+
//#region smoo/lmao!n/wasm-mem.spanbuffer
|
|
25
|
+
|
|
23
26
|
// =============================================================================
|
|
24
27
|
// Types
|
|
25
28
|
// =============================================================================
|
|
@@ -1012,3 +1015,4 @@ export function createWasmOverflowBuffer(
|
|
|
1012
1015
|
|
|
1013
1016
|
return overflow;
|
|
1014
1017
|
}
|
|
1018
|
+
//#endregion smoo/lmao!n/wasm-mem.spanbuffer
|
|
@@ -16,6 +16,9 @@ import type { ITraceRoot, TracerLifecycleHooks } from '../traceRoot.js';
|
|
|
16
16
|
import type { AnySpanBuffer } from '../types.js';
|
|
17
17
|
import type { WasmAllocator } from './wasmAllocator.js';
|
|
18
18
|
|
|
19
|
+
// Spec link (88): realizes specs/lmao/01q_wasm_memory_architecture.md#smoo/lmao!n/wasm-mem (span lifecycle writer).
|
|
20
|
+
//#region smoo/lmao!n/wasm-mem.trace-root
|
|
21
|
+
|
|
19
22
|
// =============================================================================
|
|
20
23
|
// WASM Buffer Detection
|
|
21
24
|
// =============================================================================
|
|
@@ -313,3 +316,4 @@ export function createWasmTraceRootFactory(allocator: WasmAllocator) {
|
|
|
313
316
|
return new WasmTraceRoot(allocator, createTraceId(trace_id), tracer);
|
|
314
317
|
};
|
|
315
318
|
}
|
|
319
|
+
//#endregion smoo/lmao!n/wasm-mem.trace-root
|
package/src/node.ts
CHANGED
|
@@ -7,4 +7,6 @@
|
|
|
7
7
|
export * from './index.js';
|
|
8
8
|
|
|
9
9
|
// Export Node.js-specific TraceRoot factory for Tracer construction
|
|
10
|
+
//#region smoo/lmao!n/trace-root-timestamps.entry-points #node
|
|
10
11
|
export { createTraceRoot } from './lib/traceRoot.node.js';
|
|
12
|
+
//#endregion smoo/lmao!n/trace-root-timestamps.entry-points
|