goscript 0.2.4 → 0.2.6
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 +8 -8
- package/cmd/go_js_wasm_exec/main.go +1 -1
- package/cmd/go_js_wasm_exec/main_test.go +1 -1
- package/cmd/goscript/cmd-compile.go +9 -1
- package/cmd/goscript/cmd-test.go +1 -1
- package/cmd/goscript/cmd_compile_test.go +44 -0
- package/cmd/goscript/deps.go +1 -1
- package/cmd/goscript-wasm/main.go +2 -2
- package/compiler/compile-request.go +19 -0
- package/compiler/compile_bench_test.go +121 -0
- package/compiler/compliance_test.go +17 -1
- package/compiler/config.go +2 -0
- package/compiler/gotest/result.go +1 -1
- package/compiler/gotest/runner.go +2 -2
- package/compiler/gotest/runner_test.go +4 -7
- package/compiler/index.test.ts +28 -0
- package/compiler/index.ts +32 -16
- package/compiler/lowering.go +1238 -194
- package/compiler/lowering_bench_test.go +4 -0
- package/compiler/override-facts.go +1 -1
- package/compiler/package-graph.go +92 -0
- package/compiler/package-graph_test.go +113 -0
- package/compiler/runtime-contract.go +1 -1
- package/compiler/semantic-model.go +32 -0
- package/compiler/skeleton_test.go +241 -15
- package/compiler/wasm/compile.go +1 -1
- package/compiler/wasm/compile_test.go +1 -1
- package/dist/compiler/index.d.ts +4 -0
- package/dist/compiler/index.js +26 -15
- package/dist/compiler/index.js.map +1 -1
- package/dist/gs/database/sql/driver/index.d.ts +165 -0
- package/dist/gs/database/sql/driver/index.js +432 -0
- package/dist/gs/database/sql/driver/index.js.map +1 -0
- package/dist/gs/encoding/binary/index.d.ts +71 -0
- package/dist/gs/encoding/binary/index.js +778 -0
- package/dist/gs/encoding/binary/index.js.map +1 -0
- package/dist/gs/fmt/fmt.js +156 -57
- package/dist/gs/fmt/fmt.js.map +1 -1
- package/dist/gs/github.com/klauspost/cpuid/v2/index.d.ts +11 -0
- package/dist/gs/github.com/klauspost/cpuid/v2/index.js +28 -0
- package/dist/gs/github.com/klauspost/cpuid/v2/index.js.map +1 -0
- package/dist/gs/github.com/pkg/errors/errors.d.ts +0 -2
- package/dist/gs/github.com/pkg/errors/errors.js.map +1 -1
- package/dist/gs/github.com/pkg/errors/index.d.ts +2 -1
- package/dist/gs/github.com/pkg/errors/index.js +1 -1
- package/dist/gs/github.com/pkg/errors/index.js.map +1 -1
- package/dist/gs/github.com/pkg/errors/stack.d.ts +8 -19
- package/dist/gs/github.com/pkg/errors/stack.js +26 -61
- package/dist/gs/github.com/pkg/errors/stack.js.map +1 -1
- package/dist/gs/golang.org/x/crypto/cryptobyte/asn1/index.d.ts +19 -0
- package/dist/gs/golang.org/x/crypto/cryptobyte/asn1/index.js +25 -0
- package/dist/gs/golang.org/x/crypto/cryptobyte/asn1/index.js.map +1 -0
- package/dist/gs/golang.org/x/crypto/cryptobyte/index.d.ts +104 -0
- package/dist/gs/golang.org/x/crypto/cryptobyte/index.js +1107 -0
- package/dist/gs/golang.org/x/crypto/cryptobyte/index.js.map +1 -0
- package/dist/gs/golang.org/x/crypto/internal/alias/index.d.ts +3 -0
- package/dist/gs/golang.org/x/crypto/internal/alias/index.js +39 -0
- package/dist/gs/golang.org/x/crypto/internal/alias/index.js.map +1 -0
- package/dist/gs/runtime/runtime.d.ts +6 -1
- package/dist/gs/runtime/runtime.js +15 -8
- package/dist/gs/runtime/runtime.js.map +1 -1
- package/dist/gs/runtime/trace/index.d.ts +8 -5
- package/dist/gs/runtime/trace/index.js +324 -23
- package/dist/gs/runtime/trace/index.js.map +1 -1
- package/dist/gs/slices/slices.d.ts +2 -1
- package/dist/gs/slices/slices.js +9 -3
- package/dist/gs/slices/slices.js.map +1 -1
- package/dist/gs/sort/search.gs.d.ts +3 -1
- package/dist/gs/sort/search.gs.js +18 -53
- package/dist/gs/sort/search.gs.js.map +1 -1
- package/dist/gs/sync/sync.d.ts +1 -1
- package/dist/gs/sync/sync.js +3 -0
- package/dist/gs/sync/sync.js.map +1 -1
- package/dist/gs/time/time.d.ts +22 -29
- package/dist/gs/time/time.js +111 -32
- package/dist/gs/time/time.js.map +1 -1
- package/dist/gs/unsafe/unsafe.d.ts +3 -2
- package/dist/gs/unsafe/unsafe.js.map +1 -1
- package/go.mod +7 -5
- package/go.sum +12 -26
- package/gs/database/sql/driver/index.test.ts +88 -0
- package/gs/database/sql/driver/index.ts +675 -0
- package/gs/database/sql/driver/meta.json +3 -0
- package/gs/database/sql/driver/parity.json +144 -0
- package/gs/encoding/binary/index.test.ts +239 -0
- package/gs/encoding/binary/index.ts +999 -0
- package/gs/encoding/binary/meta.json +9 -0
- package/gs/encoding/binary/parity.json +72 -0
- package/gs/fmt/fmt.test.ts +28 -0
- package/gs/fmt/fmt.ts +198 -61
- package/gs/fmt/meta.json +2 -1
- package/gs/github.com/klauspost/cpuid/v2/index.ts +38 -0
- package/gs/github.com/klauspost/cpuid/v2/meta.json +3 -0
- package/gs/github.com/pkg/errors/errors.ts +1 -2
- package/gs/github.com/pkg/errors/index.ts +2 -1
- package/gs/github.com/pkg/errors/stack.ts +34 -62
- package/gs/golang.org/x/crypto/cryptobyte/asn1/index.test.ts +19 -0
- package/gs/golang.org/x/crypto/cryptobyte/asn1/index.ts +29 -0
- package/gs/golang.org/x/crypto/cryptobyte/index.test.ts +255 -0
- package/gs/golang.org/x/crypto/cryptobyte/index.ts +1441 -0
- package/gs/golang.org/x/crypto/cryptobyte/meta.json +3 -0
- package/gs/golang.org/x/crypto/internal/alias/index.test.ts +40 -0
- package/gs/golang.org/x/crypto/internal/alias/index.ts +40 -0
- package/gs/runtime/runtime.test.ts +16 -0
- package/gs/runtime/runtime.ts +17 -9
- package/gs/runtime/trace/index.test.ts +113 -14
- package/gs/runtime/trace/index.ts +384 -34
- package/gs/runtime/trace/meta.json +1 -0
- package/gs/slices/slices.test.ts +24 -1
- package/gs/slices/slices.ts +14 -4
- package/gs/sort/meta.json +1 -0
- package/gs/sort/search.gs.ts +20 -5
- package/gs/sync/sync.ts +4 -1
- package/gs/time/time.test.ts +79 -2
- package/gs/time/time.ts +133 -33
- package/gs/unsafe/unsafe.ts +4 -2
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../gs/golang.org/x/crypto/cryptobyte/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import * as $ from '@goscript/builtin/index.js';
|
|
2
|
+
// AnyOverlap reports whether x and y share memory at any (not necessarily
|
|
3
|
+
// corresponding) index. The memory beyond the slice length is ignored.
|
|
4
|
+
//
|
|
5
|
+
// This mirrors the upstream pointer comparison without reflect or unsafe by
|
|
6
|
+
// using GoScript synthetic byte addresses. Those addresses are stride separated
|
|
7
|
+
// per backing array, so slices over distinct backings can never compare as
|
|
8
|
+
// overlapping and slices over a shared backing compare by element offset, which
|
|
9
|
+
// reproduces the Go semantics the crypto cipher modes rely on.
|
|
10
|
+
export function AnyOverlap(x, y) {
|
|
11
|
+
const xLen = $.len(x);
|
|
12
|
+
const yLen = $.len(y);
|
|
13
|
+
if (xLen === 0 || yLen === 0) {
|
|
14
|
+
return false;
|
|
15
|
+
}
|
|
16
|
+
const xFirst = $.indexByteAddress(x, 0, 1);
|
|
17
|
+
const xLast = $.indexByteAddress(x, xLen - 1, 1);
|
|
18
|
+
const yFirst = $.indexByteAddress(y, 0, 1);
|
|
19
|
+
const yLast = $.indexByteAddress(y, yLen - 1, 1);
|
|
20
|
+
return xFirst <= yLast && yFirst <= xLast;
|
|
21
|
+
}
|
|
22
|
+
// InexactOverlap reports whether x and y share memory at any non-corresponding
|
|
23
|
+
// index. The memory beyond the slice length is ignored. Note that x and y can
|
|
24
|
+
// have different lengths and still not have any inexact overlap.
|
|
25
|
+
//
|
|
26
|
+
// InexactOverlap can be used to implement the requirements of the crypto/cipher
|
|
27
|
+
// AEAD, Block, BlockMode and Stream interfaces.
|
|
28
|
+
export function InexactOverlap(x, y) {
|
|
29
|
+
const xLen = $.len(x);
|
|
30
|
+
const yLen = $.len(y);
|
|
31
|
+
if (xLen === 0 || yLen === 0) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
if ($.indexByteAddress(x, 0, 1) === $.indexByteAddress(y, 0, 1)) {
|
|
35
|
+
return false;
|
|
36
|
+
}
|
|
37
|
+
return AnyOverlap(x, y);
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../gs/golang.org/x/crypto/internal/alias/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,4BAA4B,CAAA;AAE/C,0EAA0E;AAC1E,uEAAuE;AACvE,EAAE;AACF,4EAA4E;AAC5E,gFAAgF;AAChF,2EAA2E;AAC3E,gFAAgF;AAChF,+DAA+D;AAC/D,MAAM,UAAU,UAAU,CAAC,CAAU,EAAE,CAAU;IAC/C,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACrB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACrB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,MAAM,MAAM,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAChD,MAAM,MAAM,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAA;IAC1C,MAAM,KAAK,GAAG,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,CAAA;IAChD,OAAO,MAAM,IAAI,KAAK,IAAI,MAAM,IAAI,KAAK,CAAA;AAC3C,CAAC;AAED,+EAA+E;AAC/E,8EAA8E;AAC9E,iEAAiE;AACjE,EAAE;AACF,gFAAgF;AAChF,gDAAgD;AAChD,MAAM,UAAU,cAAc,CAAC,CAAU,EAAE,CAAU;IACnD,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACrB,MAAM,IAAI,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAA;IACrB,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;QAC7B,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,gBAAgB,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC;QAChE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,OAAO,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AACzB,CAAC"}
|
|
@@ -42,13 +42,18 @@ export declare class MemStats {
|
|
|
42
42
|
Alloc: number;
|
|
43
43
|
TotalAlloc: number;
|
|
44
44
|
Sys: number;
|
|
45
|
+
HeapAlloc: number;
|
|
46
|
+
HeapSys: number;
|
|
47
|
+
HeapInuse: number;
|
|
48
|
+
StackInuse: number;
|
|
49
|
+
StackSys: number;
|
|
45
50
|
Lookups: number;
|
|
46
51
|
Mallocs: number;
|
|
47
52
|
Frees: number;
|
|
48
53
|
constructor();
|
|
49
54
|
private updateMemoryStats;
|
|
50
55
|
}
|
|
51
|
-
export declare function ReadMemStats(m: MemStats): void;
|
|
56
|
+
export declare function ReadMemStats(m: MemStats | $.VarRef<MemStats> | null): void;
|
|
52
57
|
export interface Error {
|
|
53
58
|
Error(): string;
|
|
54
59
|
}
|
|
@@ -142,6 +142,11 @@ export class MemStats {
|
|
|
142
142
|
Alloc = 0; // bytes allocated and not yet freed
|
|
143
143
|
TotalAlloc = 0; // bytes allocated (even if freed)
|
|
144
144
|
Sys = 0; // bytes obtained from system
|
|
145
|
+
HeapAlloc = 0; // bytes allocated and not yet freed on the heap
|
|
146
|
+
HeapSys = 0; // bytes obtained from system for the heap
|
|
147
|
+
HeapInuse = 0; // bytes in in-use heap spans
|
|
148
|
+
StackInuse = 0; // bytes in stack spans
|
|
149
|
+
StackSys = 0; // bytes obtained from system for stacks
|
|
145
150
|
Lookups = 0; // number of pointer lookups
|
|
146
151
|
Mallocs = 0; // number of mallocs
|
|
147
152
|
Frees = 0; // number of frees
|
|
@@ -151,24 +156,26 @@ export class MemStats {
|
|
|
151
156
|
this.updateMemoryStats();
|
|
152
157
|
}
|
|
153
158
|
updateMemoryStats() {
|
|
154
|
-
|
|
155
|
-
if (typeof performance !== 'undefined' && performance.memory) {
|
|
156
|
-
const mem = performance.memory;
|
|
157
|
-
this.Alloc = mem.usedJSHeapSize || 0;
|
|
158
|
-
this.Sys = mem.totalJSHeapSize || 0;
|
|
159
|
-
this.TotalAlloc = this.Alloc; // Simplified
|
|
160
|
-
}
|
|
159
|
+
updateMemoryStats(this);
|
|
161
160
|
}
|
|
162
161
|
}
|
|
163
162
|
// ReadMemStats populates m with memory allocator statistics
|
|
164
163
|
export function ReadMemStats(m) {
|
|
165
|
-
|
|
164
|
+
m = $.pointerValue(m);
|
|
165
|
+
updateMemoryStats(m);
|
|
166
|
+
}
|
|
167
|
+
function updateMemoryStats(m) {
|
|
166
168
|
if (typeof performance !== 'undefined' && performance.memory) {
|
|
167
169
|
const mem = performance.memory;
|
|
168
170
|
m.Alloc = mem.usedJSHeapSize || 0;
|
|
169
171
|
m.Sys = mem.totalJSHeapSize || 0;
|
|
170
172
|
m.TotalAlloc = m.Alloc; // Simplified
|
|
171
173
|
}
|
|
174
|
+
m.HeapAlloc = m.Alloc;
|
|
175
|
+
m.HeapSys = m.Sys;
|
|
176
|
+
m.HeapInuse = m.Alloc;
|
|
177
|
+
m.StackInuse = 0;
|
|
178
|
+
m.StackSys = 0;
|
|
172
179
|
}
|
|
173
180
|
// TypeAssertionError represents a failed type assertion
|
|
174
181
|
export class TypeAssertionError {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../gs/runtime/runtime.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"runtime.js","sourceRoot":"","sources":["../../../gs/runtime/runtime.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,13 +7,16 @@ export declare class Task {
|
|
|
7
7
|
End(): void;
|
|
8
8
|
}
|
|
9
9
|
export declare class Region {
|
|
10
|
+
private task;
|
|
11
|
+
private name;
|
|
12
|
+
constructor(task?: number, name?: string);
|
|
10
13
|
End(): void;
|
|
11
14
|
}
|
|
12
|
-
export declare function NewTask(pctx: context.Context | null,
|
|
13
|
-
export declare function Log(
|
|
14
|
-
export declare function Logf(
|
|
15
|
-
export declare function WithRegion(
|
|
16
|
-
export declare function StartRegion(
|
|
15
|
+
export declare function NewTask(pctx: context.Context | null, taskType: string): [context.Context | null, Task];
|
|
16
|
+
export declare function Log(ctx: context.Context | null, category: string, message: string): void;
|
|
17
|
+
export declare function Logf(ctx: context.Context | null, category: string, format: string, ...args: unknown[]): void;
|
|
18
|
+
export declare function WithRegion(ctx: context.Context | null, regionType: string, fn: (() => void) | null): void;
|
|
19
|
+
export declare function StartRegion(ctx: context.Context | null, regionType: string): Region;
|
|
17
20
|
export declare function IsEnabled(): boolean;
|
|
18
21
|
export declare function Start(w: io.Writer | $.VarRef<io.Writer> | null): $.GoError;
|
|
19
22
|
export declare function Stop(): void;
|
|
@@ -1,50 +1,351 @@
|
|
|
1
1
|
import * as $ from '@goscript/builtin/index.js';
|
|
2
2
|
import * as context from '@goscript/context/index.js';
|
|
3
3
|
import * as errors from '@goscript/errors/index.js';
|
|
4
|
+
import * as fmt from '@goscript/fmt/index.js';
|
|
5
|
+
// traceContextKey keys the active *Task stored in a context by NewTask.
|
|
4
6
|
class traceContextKey {
|
|
5
7
|
}
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
const
|
|
8
|
+
// Go execution trace v2 event type codes (iota order from the runtime spec).
|
|
9
|
+
// GoScript emits only the user-task subset plus the minimal proc/goroutine
|
|
10
|
+
// status needed for the upstream trace reader to bind a running context.
|
|
11
|
+
const evEventBatch = 1;
|
|
12
|
+
const evStrings = 4;
|
|
13
|
+
const evString = 5;
|
|
14
|
+
const evFrequency = 8;
|
|
15
|
+
const evProcStatus = 13;
|
|
16
|
+
const evGoStatus = 25;
|
|
17
|
+
const evUserTaskBegin = 40;
|
|
18
|
+
const evUserTaskEnd = 41;
|
|
19
|
+
const evUserRegionBegin = 42;
|
|
20
|
+
const evUserRegionEnd = 43;
|
|
21
|
+
const evUserLog = 44;
|
|
22
|
+
// procRunning and goRunning are the running status codes for the synthetic P
|
|
23
|
+
// and G that own every GoScript user event (GoScript has no real scheduler).
|
|
24
|
+
const procRunning = 1;
|
|
25
|
+
const goRunning = 2;
|
|
26
|
+
// traceGen, traceProc, and traceGoroutine are the fixed generation, P, and G
|
|
27
|
+
// identities for the single synthetic GoScript execution context.
|
|
28
|
+
const traceGen = 1;
|
|
29
|
+
const traceMID = 0;
|
|
30
|
+
const traceProc = 0;
|
|
31
|
+
const traceGoroutine = 1;
|
|
32
|
+
// traceFreqHz is the timestamp frequency reported to the reader. GoScript
|
|
33
|
+
// records nanosecond timestamps, so the frequency is one billion ticks/sec
|
|
34
|
+
// and the reader's tick->nanosecond conversion is the identity.
|
|
35
|
+
const traceFreqHz = 1_000_000_000;
|
|
36
|
+
// maxBatchData bounds the post-header data block of every per-M batch. The
|
|
37
|
+
// trace v2 reader rejects any batch whose declared size exceeds 64 KiB
|
|
38
|
+
// (tracev2.MaxBatchSize = 64<<10), so a realistic capture must split its string
|
|
39
|
+
// and event records across multiple batches. The cap sits below the hard limit
|
|
40
|
+
// to leave margin for the next record, which is written in full before the size
|
|
41
|
+
// is rechecked.
|
|
42
|
+
const maxBatchData = 60 * 1024;
|
|
43
|
+
// maxEventBytes is a safe upper bound on the encoded size of one user event
|
|
44
|
+
// (kind byte plus a handful of base-128 varints; strings are interned, so no
|
|
45
|
+
// inline payload). The event loop flushes the current batch before its data
|
|
46
|
+
// block can grow within this margin of maxBatchData.
|
|
47
|
+
const maxEventBytes = 128;
|
|
48
|
+
// recEvent kinds.
|
|
49
|
+
const kindTaskBegin = 0;
|
|
50
|
+
const kindTaskEnd = 1;
|
|
51
|
+
const kindRegionBegin = 2;
|
|
52
|
+
const kindRegionEnd = 3;
|
|
53
|
+
const kindLog = 4;
|
|
54
|
+
function newRecorder() {
|
|
55
|
+
return { enabled: false, writer: null, startTs: 0, events: [] };
|
|
56
|
+
}
|
|
57
|
+
// rec is the active capture. nextTaskID is process-global and monotonic like
|
|
58
|
+
// the Go runtime task counter, so it persists across Start/Stop cycles.
|
|
59
|
+
let rec = newRecorder();
|
|
60
|
+
let nextTaskID = 0;
|
|
61
|
+
// nowNs reads the high-resolution monotonic clock in nanoseconds, the same
|
|
62
|
+
// source that backs time.Time monotonic readings.
|
|
63
|
+
function nowNs() {
|
|
64
|
+
if (typeof performance !== 'undefined' && performance.now) {
|
|
65
|
+
return performance.now() * 1_000_000;
|
|
66
|
+
}
|
|
67
|
+
return globalThis.Date.now() * 1_000_000;
|
|
68
|
+
}
|
|
69
|
+
function contextKey() {
|
|
70
|
+
return $.interfaceValue($.markAsStructValue(new traceContextKey()), 'trace.traceContextKey');
|
|
71
|
+
}
|
|
72
|
+
// taskIDFromContext returns the active task ID carried by ctx, or 0 when ctx
|
|
73
|
+
// carries no task (the background task).
|
|
74
|
+
function taskIDFromContext(ctx) {
|
|
75
|
+
if (ctx == null) {
|
|
76
|
+
return 0;
|
|
77
|
+
}
|
|
78
|
+
const value = ctx.Value(contextKey());
|
|
79
|
+
if (value instanceof Task) {
|
|
80
|
+
return value.id;
|
|
81
|
+
}
|
|
82
|
+
return 0;
|
|
83
|
+
}
|
|
84
|
+
function record(kind, task, parent, s0, s1) {
|
|
85
|
+
rec.events.push({ kind, ts: nowNs(), task, parent, s0, s1 });
|
|
86
|
+
}
|
|
10
87
|
export class Task {
|
|
11
88
|
id;
|
|
12
89
|
constructor(id = 0) {
|
|
13
90
|
this.id = id;
|
|
14
91
|
}
|
|
15
|
-
End() {
|
|
92
|
+
End() {
|
|
93
|
+
if (rec.enabled) {
|
|
94
|
+
record(kindTaskEnd, this.id, 0, '', '');
|
|
95
|
+
}
|
|
96
|
+
}
|
|
16
97
|
}
|
|
17
98
|
export class Region {
|
|
18
|
-
|
|
99
|
+
task;
|
|
100
|
+
name;
|
|
101
|
+
constructor(task = 0, name = '') {
|
|
102
|
+
this.task = task;
|
|
103
|
+
this.name = name;
|
|
104
|
+
}
|
|
105
|
+
End() {
|
|
106
|
+
if (rec.enabled) {
|
|
107
|
+
record(kindRegionEnd, this.task, 0, this.name, '');
|
|
108
|
+
}
|
|
109
|
+
}
|
|
19
110
|
}
|
|
20
|
-
export function NewTask(pctx,
|
|
111
|
+
export function NewTask(pctx, taskType) {
|
|
21
112
|
const parent = pctx ?? context.Background();
|
|
22
|
-
const task = new Task(++
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
];
|
|
113
|
+
const task = new Task(++nextTaskID);
|
|
114
|
+
if (rec.enabled) {
|
|
115
|
+
record(kindTaskBegin, task.id, taskIDFromContext(pctx), taskType, '');
|
|
116
|
+
}
|
|
117
|
+
return [context.WithValue(parent, contextKey(), task), task];
|
|
27
118
|
}
|
|
28
|
-
export function Log(
|
|
29
|
-
|
|
30
|
-
|
|
119
|
+
export function Log(ctx, category, message) {
|
|
120
|
+
if (rec.enabled) {
|
|
121
|
+
record(kindLog, taskIDFromContext(ctx), 0, category, message);
|
|
122
|
+
}
|
|
31
123
|
}
|
|
32
|
-
export function Logf(
|
|
33
|
-
|
|
34
|
-
|
|
124
|
+
export function Logf(ctx, category, format, ...args) {
|
|
125
|
+
if (rec.enabled) {
|
|
126
|
+
Log(ctx, category, fmt.Sprintf(format, ...args));
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export function WithRegion(ctx, regionType, fn) {
|
|
130
|
+
const task = taskIDFromContext(ctx);
|
|
131
|
+
if (rec.enabled) {
|
|
132
|
+
record(kindRegionBegin, task, 0, regionType, '');
|
|
133
|
+
}
|
|
134
|
+
try {
|
|
135
|
+
fn?.();
|
|
136
|
+
}
|
|
137
|
+
finally {
|
|
138
|
+
if (rec.enabled) {
|
|
139
|
+
record(kindRegionEnd, task, 0, regionType, '');
|
|
140
|
+
}
|
|
141
|
+
}
|
|
35
142
|
}
|
|
36
|
-
export function StartRegion(
|
|
37
|
-
|
|
143
|
+
export function StartRegion(ctx, regionType) {
|
|
144
|
+
const task = taskIDFromContext(ctx);
|
|
145
|
+
if (rec.enabled) {
|
|
146
|
+
record(kindRegionBegin, task, 0, regionType, '');
|
|
147
|
+
}
|
|
148
|
+
return new Region(task, regionType);
|
|
38
149
|
}
|
|
39
150
|
export function IsEnabled() {
|
|
40
|
-
return
|
|
151
|
+
return rec.enabled;
|
|
41
152
|
}
|
|
42
153
|
export function Start(w) {
|
|
43
154
|
const writer = $.pointerValueOrNil(w);
|
|
44
155
|
if (writer == null) {
|
|
45
156
|
return errors.New('runtime/trace: nil trace writer');
|
|
46
157
|
}
|
|
47
|
-
|
|
158
|
+
if (rec.enabled) {
|
|
159
|
+
return errors.New('runtime/trace: tracing already enabled');
|
|
160
|
+
}
|
|
161
|
+
rec = newRecorder();
|
|
162
|
+
rec.enabled = true;
|
|
163
|
+
rec.writer = writer;
|
|
164
|
+
rec.startTs = nowNs();
|
|
165
|
+
return null;
|
|
166
|
+
}
|
|
167
|
+
export function Stop() {
|
|
168
|
+
if (!rec.enabled) {
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
const writer = rec.writer;
|
|
172
|
+
const buffered = rec;
|
|
173
|
+
rec = newRecorder();
|
|
174
|
+
const payload = encodeTrace(buffered);
|
|
175
|
+
if (writer != null) {
|
|
176
|
+
writer.Write(payload);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
// putUvarint appends value to out as a base-128 varint. It uses arithmetic
|
|
180
|
+
// rather than bit operations so values above 2^32 (nanosecond timestamps)
|
|
181
|
+
// encode correctly.
|
|
182
|
+
function putUvarint(out, value) {
|
|
183
|
+
let v = Math.floor(value);
|
|
184
|
+
if (v < 0) {
|
|
185
|
+
v = 0;
|
|
186
|
+
}
|
|
187
|
+
while (v >= 0x80) {
|
|
188
|
+
out.push((v % 0x80) + 0x80);
|
|
189
|
+
v = Math.floor(v / 0x80);
|
|
190
|
+
}
|
|
191
|
+
out.push(v);
|
|
192
|
+
}
|
|
193
|
+
function utf8Bytes(s) {
|
|
194
|
+
if (typeof TextEncoder !== 'undefined') {
|
|
195
|
+
return new TextEncoder().encode(s);
|
|
196
|
+
}
|
|
197
|
+
const out = new Uint8Array(s.length);
|
|
198
|
+
for (let i = 0; i < s.length; i++) {
|
|
199
|
+
out[i] = s.charCodeAt(i) & 0xff;
|
|
200
|
+
}
|
|
201
|
+
return out;
|
|
202
|
+
}
|
|
203
|
+
// appendBatch frames data as a trace v2 per-M batch (EvEventBatch header plus
|
|
204
|
+
// the generation, M, base timestamp, and length prefix).
|
|
205
|
+
function appendBatch(out, data) {
|
|
206
|
+
out.push(evEventBatch);
|
|
207
|
+
putUvarint(out, traceGen);
|
|
208
|
+
putUvarint(out, traceMID);
|
|
209
|
+
putUvarint(out, 0);
|
|
210
|
+
putUvarint(out, data.length);
|
|
211
|
+
for (const b of data) {
|
|
212
|
+
out.push(b);
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
// encodeTrace serializes the buffered user events as a single-generation Go
|
|
216
|
+
// trace v2 byte stream containing only the user-task subset.
|
|
217
|
+
function encodeTrace(r) {
|
|
218
|
+
const out = [];
|
|
219
|
+
// Header: "go 1.22 trace\x00\x00\x00". The reader selects the Go 1.22 event
|
|
220
|
+
// table, whose final event is EvUserLog, covering every event GoScript emits.
|
|
221
|
+
const header = 'go 1.22 trace\x00\x00\x00';
|
|
222
|
+
for (let i = 0; i < header.length; i++) {
|
|
223
|
+
out.push(header.charCodeAt(i) & 0xff);
|
|
224
|
+
}
|
|
225
|
+
// Frequency batch (required): ticks per second.
|
|
226
|
+
const freq = [evFrequency];
|
|
227
|
+
putUvarint(freq, traceFreqHz);
|
|
228
|
+
appendBatch(out, freq);
|
|
229
|
+
// Intern the strings referenced by user events.
|
|
230
|
+
const stringIDs = new Map();
|
|
231
|
+
const internedStrings = [];
|
|
232
|
+
const intern = (s) => {
|
|
233
|
+
let id = stringIDs.get(s);
|
|
234
|
+
if (id === undefined) {
|
|
235
|
+
id = internedStrings.length + 1;
|
|
236
|
+
stringIDs.set(s, id);
|
|
237
|
+
internedStrings.push(s);
|
|
238
|
+
}
|
|
239
|
+
return id;
|
|
240
|
+
};
|
|
241
|
+
for (const ev of r.events) {
|
|
242
|
+
if (ev.kind === kindTaskBegin ||
|
|
243
|
+
ev.kind === kindRegionBegin ||
|
|
244
|
+
ev.kind === kindRegionEnd) {
|
|
245
|
+
intern(ev.s0);
|
|
246
|
+
}
|
|
247
|
+
else if (ev.kind === kindLog) {
|
|
248
|
+
intern(ev.s0);
|
|
249
|
+
intern(ev.s1);
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
// Strings batches. The reader concatenates the string dictionary across every
|
|
253
|
+
// EvStrings batch in the generation, so a large table splits into multiple
|
|
254
|
+
// batches whose data blocks each stay under maxBatchData. Each EvString record
|
|
255
|
+
// (tag, id, length, bytes) stays whole within one batch.
|
|
256
|
+
if (internedStrings.length > 0) {
|
|
257
|
+
let strings = [evStrings];
|
|
258
|
+
for (let i = 0; i < internedStrings.length; i++) {
|
|
259
|
+
const bytes = utf8Bytes(internedStrings[i]);
|
|
260
|
+
const recordSize = 1 + 10 + 10 + bytes.length;
|
|
261
|
+
if (strings.length > 1 && strings.length + recordSize > maxBatchData) {
|
|
262
|
+
appendBatch(out, strings);
|
|
263
|
+
strings = [evStrings];
|
|
264
|
+
}
|
|
265
|
+
strings.push(evString);
|
|
266
|
+
putUvarint(strings, i + 1);
|
|
267
|
+
putUvarint(strings, bytes.length);
|
|
268
|
+
for (const b of bytes) {
|
|
269
|
+
strings.push(b);
|
|
270
|
+
}
|
|
271
|
+
}
|
|
272
|
+
appendBatch(out, strings);
|
|
273
|
+
}
|
|
274
|
+
// Event batches: synthetic running P and G, then any user events in order. The
|
|
275
|
+
// running context is emitted even with no user events, so every capture is a
|
|
276
|
+
// complete single-generation trace the reader accepts rather than a bare
|
|
277
|
+
// header plus frequency batch. User events split across multiple per-M batches
|
|
278
|
+
// so no data block exceeds maxBatchData. The reader resets its delta clock to
|
|
279
|
+
// each batch's base timestamp (0 here), so flushing resets lastTs to 0 and the
|
|
280
|
+
// first event of every batch re-emits its absolute offset as the delta.
|
|
281
|
+
let data = [];
|
|
282
|
+
let lastTs = 0;
|
|
283
|
+
const emitDelta = (ts) => {
|
|
284
|
+
const offset = Math.max(0, Math.floor(ts - r.startTs));
|
|
285
|
+
const dt = Math.max(0, offset - lastTs);
|
|
286
|
+
lastTs = offset;
|
|
287
|
+
putUvarint(data, dt);
|
|
288
|
+
};
|
|
289
|
+
const flushEventBatch = () => {
|
|
290
|
+
appendBatch(out, data);
|
|
291
|
+
data = [];
|
|
292
|
+
lastTs = 0;
|
|
293
|
+
};
|
|
294
|
+
// EvProcStatus(dt, p, status): bind the running P to the context.
|
|
295
|
+
data.push(evProcStatus);
|
|
296
|
+
putUvarint(data, 0);
|
|
297
|
+
putUvarint(data, traceProc);
|
|
298
|
+
putUvarint(data, procRunning);
|
|
299
|
+
// EvGoStatus(dt, g, m, status): bind the running G to the context.
|
|
300
|
+
data.push(evGoStatus);
|
|
301
|
+
putUvarint(data, 0);
|
|
302
|
+
putUvarint(data, traceGoroutine);
|
|
303
|
+
putUvarint(data, traceMID);
|
|
304
|
+
putUvarint(data, goRunning);
|
|
305
|
+
for (const ev of r.events) {
|
|
306
|
+
if (data.length + maxEventBytes > maxBatchData) {
|
|
307
|
+
flushEventBatch();
|
|
308
|
+
}
|
|
309
|
+
switch (ev.kind) {
|
|
310
|
+
case kindTaskBegin:
|
|
311
|
+
data.push(evUserTaskBegin);
|
|
312
|
+
emitDelta(ev.ts);
|
|
313
|
+
putUvarint(data, ev.task);
|
|
314
|
+
putUvarint(data, ev.parent);
|
|
315
|
+
putUvarint(data, intern(ev.s0));
|
|
316
|
+
putUvarint(data, 0);
|
|
317
|
+
break;
|
|
318
|
+
case kindTaskEnd:
|
|
319
|
+
data.push(evUserTaskEnd);
|
|
320
|
+
emitDelta(ev.ts);
|
|
321
|
+
putUvarint(data, ev.task);
|
|
322
|
+
putUvarint(data, 0);
|
|
323
|
+
break;
|
|
324
|
+
case kindRegionBegin:
|
|
325
|
+
data.push(evUserRegionBegin);
|
|
326
|
+
emitDelta(ev.ts);
|
|
327
|
+
putUvarint(data, ev.task);
|
|
328
|
+
putUvarint(data, intern(ev.s0));
|
|
329
|
+
putUvarint(data, 0);
|
|
330
|
+
break;
|
|
331
|
+
case kindRegionEnd:
|
|
332
|
+
data.push(evUserRegionEnd);
|
|
333
|
+
emitDelta(ev.ts);
|
|
334
|
+
putUvarint(data, ev.task);
|
|
335
|
+
putUvarint(data, intern(ev.s0));
|
|
336
|
+
putUvarint(data, 0);
|
|
337
|
+
break;
|
|
338
|
+
case kindLog:
|
|
339
|
+
data.push(evUserLog);
|
|
340
|
+
emitDelta(ev.ts);
|
|
341
|
+
putUvarint(data, ev.task);
|
|
342
|
+
putUvarint(data, intern(ev.s0));
|
|
343
|
+
putUvarint(data, intern(ev.s1));
|
|
344
|
+
putUvarint(data, 0);
|
|
345
|
+
break;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
flushEventBatch();
|
|
349
|
+
return new Uint8Array(out);
|
|
48
350
|
}
|
|
49
|
-
export function Stop() { }
|
|
50
351
|
//# sourceMappingURL=index.js.map
|