@tracecode/harness 0.16.3 → 0.16.5
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/CHANGELOG.md +36 -0
- package/README.md +6 -4
- package/dist/{browser-runtime-provider-C53ZJH3D.js → browser-runtime-provider-POTAJULA.js} +5 -5
- package/dist/{chunk-DTLDQQHA.js → chunk-5KH5ABPQ.js} +72 -1
- package/dist/{chunk-YID2AAYD.js → chunk-GX4SGR3L.js} +64 -36
- package/dist/{chunk-DI7WIHES.js → chunk-I2JLGVMT.js} +3 -3
- package/dist/{chunk-53ROKKGU.js → chunk-JPDVJCVS.js} +3 -3
- package/dist/{chunk-BXUGUGWL.js → chunk-NHGF353L.js} +20 -11
- package/dist/{chunk-TXDHVV6B.js → chunk-OXFBZTWZ.js} +15 -31
- package/dist/{chunk-6SWX35P2.js → chunk-P5FQOYM4.js} +489 -3
- package/dist/cli.js +0 -0
- package/dist/core.cjs +19 -10
- package/dist/core.js +1 -1
- package/dist/cpp-worker-client-SKBOLX5Q.js +12 -0
- package/dist/{csharp-worker-client-S4U6MCVF.js → csharp-worker-client-GAUCDYVS.js} +4 -4
- package/dist/internal/browser.cjs +72 -0
- package/dist/internal/browser.d.cts +19 -1
- package/dist/internal/browser.d.ts +19 -1
- package/dist/internal/browser.js +3 -1
- package/dist/internal/tracekernel-workspace.cjs +19 -10
- package/dist/internal/tracekernel-workspace.js +1 -1
- package/dist/{java-project-GK6MHT3I.js → java-project-ASCLR77F.js} +2 -2
- package/dist/judge.cjs +892 -89
- package/dist/judge.d.cts +4 -0
- package/dist/judge.d.ts +4 -0
- package/dist/judge.js +236 -23
- package/dist/{project-browser-B5T7WJWP.js → project-browser-7MVLDAHN.js} +2 -2
- package/dist/{project-browser-3I5FVB5N.js → project-browser-DKMZFGCJ.js} +2 -2
- package/dist/{project-browser-ADXGG5RZ.js → project-browser-VSLHVOH4.js} +2 -2
- package/dist/{project-browser-TDL4LMJJ.js → project-browser-XKQ2MNK3.js} +2 -2
- package/dist/{project-browser-JXJ74RDZ.js → project-browser-YUBOA2Q4.js} +2 -2
- package/dist/{python-worker-client-2RF6IYIN.js → python-worker-client-R7K7HDO7.js} +4 -4
- package/dist/tracekernel.cjs +658 -68
- package/dist/tracekernel.js +4 -4
- package/package.json +43 -46
- package/runtime-assets.lock.json +77 -70
- package/workers/cpp/cpp-worker.js +53 -43
- package/workers/csharp/csharp-worker.js +150 -1
- package/workers/javascript/javascript-project-worker.js +18 -9
- package/workers/python/python-worker.js +121 -1
- package/workers/vendor/csharp/_framework/TraceCode.CSharpHost.wasm +0 -0
- package/workers/vendor/csharp/_framework/TraceCode.CSharpJudgeRuntime.wasm +0 -0
- package/workers/vendor/csharp/_framework/TraceCode.TraceClrWire.wasm +0 -0
- package/workers/vendor/csharp/_framework/dotnet.boot.js +11 -6
- package/workers/vendor/csharp/_framework/dotnet.native.wasm +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/TraceCode.CSharpHost.dll +0 -0
- package/workers/vendor/csharp/_framework/supportFiles/TraceCode.CSharpJudgeRuntime.dll +0 -0
- package/workers/vendor/csharp-runner/_framework/assemblies-02.pack +0 -0
- package/workers/vendor/csharp-runner/_framework/assemblies-03.pack +0 -0
- package/workers/vendor/csharp-runner/_framework/dotnet.boot.js +65 -65
- package/dist/cpp-worker-client-FLJ2YLSW.js +0 -12
package/dist/judge.d.cts
CHANGED
|
@@ -945,6 +945,10 @@ interface BrowserJudgeHost {
|
|
|
945
945
|
isLanguageSupported(language: Language): boolean;
|
|
946
946
|
preflightLanguage(language: Language): Promise<BrowserRuntimeReadiness>;
|
|
947
947
|
preflight(): Promise<BrowserRuntimeEnvironmentReport>;
|
|
948
|
+
prewarmLanguage(language: Language): Promise<{
|
|
949
|
+
success: boolean;
|
|
950
|
+
loadTimeMs: number;
|
|
951
|
+
}>;
|
|
948
952
|
warmLanguage(language: Language): Promise<{
|
|
949
953
|
success: boolean;
|
|
950
954
|
loadTimeMs: number;
|
package/dist/judge.d.ts
CHANGED
|
@@ -945,6 +945,10 @@ interface BrowserJudgeHost {
|
|
|
945
945
|
isLanguageSupported(language: Language): boolean;
|
|
946
946
|
preflightLanguage(language: Language): Promise<BrowserRuntimeReadiness>;
|
|
947
947
|
preflight(): Promise<BrowserRuntimeEnvironmentReport>;
|
|
948
|
+
prewarmLanguage(language: Language): Promise<{
|
|
949
|
+
success: boolean;
|
|
950
|
+
loadTimeMs: number;
|
|
951
|
+
}>;
|
|
948
952
|
warmLanguage(language: Language): Promise<{
|
|
949
953
|
success: boolean;
|
|
950
954
|
loadTimeMs: number;
|
package/dist/judge.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
var define = undefined;
|
|
2
2
|
import {
|
|
3
3
|
createCppBrowserRuntimeProvider
|
|
4
|
-
} from "./chunk-
|
|
5
|
-
import "./chunk-
|
|
4
|
+
} from "./chunk-GX4SGR3L.js";
|
|
5
|
+
import "./chunk-I2JLGVMT.js";
|
|
6
6
|
import {
|
|
7
7
|
normalizeTraceJVMRuntimeAssetBaseUrl,
|
|
8
8
|
preflightBuiltInTraceJVMRuntimeAssets,
|
|
@@ -10,20 +10,20 @@ import {
|
|
|
10
10
|
} from "./chunk-FYDQ4ZKL.js";
|
|
11
11
|
import {
|
|
12
12
|
CSharpWorkerClient
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-P5FQOYM4.js";
|
|
14
14
|
import {
|
|
15
15
|
PYTHON_RUNTIME_IMAGE_PROTOCOL_VERSION,
|
|
16
16
|
createBrowserProjectWorkspace,
|
|
17
17
|
createBrowserRuntimeAssetPreflight,
|
|
18
18
|
createBrowserRuntimeEnvironment,
|
|
19
19
|
makeTraceKernelHost
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-OXFBZTWZ.js";
|
|
21
21
|
import {
|
|
22
22
|
resolveBuiltInTraceCCRuntimeManifest
|
|
23
23
|
} from "./chunk-EJE2EJDI.js";
|
|
24
24
|
import {
|
|
25
25
|
PythonWorkerClient
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-JPDVJCVS.js";
|
|
27
27
|
import {
|
|
28
28
|
RUNTIME_TRACE_SCHEMA_VERSION,
|
|
29
29
|
createEmptyRuntimeTrace,
|
|
@@ -32,7 +32,7 @@ import {
|
|
|
32
32
|
liftCodeOutcome,
|
|
33
33
|
liftTraceOutcome,
|
|
34
34
|
runtimeWorkspaceActorPreset
|
|
35
|
-
} from "./chunk-
|
|
35
|
+
} from "./chunk-NHGF353L.js";
|
|
36
36
|
import {
|
|
37
37
|
TraceKernelControlledRuntime,
|
|
38
38
|
TraceKernelSharedSyscallServer,
|
|
@@ -55,6 +55,8 @@ import {
|
|
|
55
55
|
batchCodeResultToExecuteResult,
|
|
56
56
|
closeKernelHttpSyncServers,
|
|
57
57
|
createBrowserExecutionWorkerHost,
|
|
58
|
+
createPromotableBrowserBackgroundTask,
|
|
59
|
+
createWorkerProtocolToken,
|
|
58
60
|
executeRuntimeRequest,
|
|
59
61
|
getLanguageRuntimeProfile,
|
|
60
62
|
handleHostArtifactCacheRequest,
|
|
@@ -67,7 +69,7 @@ import {
|
|
|
67
69
|
logRuntimeDiagnostic,
|
|
68
70
|
restoreTransferredTraceEvents,
|
|
69
71
|
traceEventTransferRequest
|
|
70
|
-
} from "./chunk-
|
|
72
|
+
} from "./chunk-5KH5ABPQ.js";
|
|
71
73
|
import {
|
|
72
74
|
TaggedError,
|
|
73
75
|
_void,
|
|
@@ -795,6 +797,8 @@ var BrowserRuntimeHostImplementation = class {
|
|
|
795
797
|
environment;
|
|
796
798
|
supportedLanguages;
|
|
797
799
|
#preparedProviders = /* @__PURE__ */ new Map();
|
|
800
|
+
#providerInitializers = /* @__PURE__ */ new Map();
|
|
801
|
+
#warmEntries = /* @__PURE__ */ new Map();
|
|
798
802
|
#leases = [];
|
|
799
803
|
#leaseByLanguage = /* @__PURE__ */ new Map();
|
|
800
804
|
#readinessByLanguage = /* @__PURE__ */ new Map();
|
|
@@ -836,16 +840,25 @@ var BrowserRuntimeHostImplementation = class {
|
|
|
836
840
|
language,
|
|
837
841
|
preparedProvider
|
|
838
842
|
);
|
|
843
|
+
const safeProvider = safePreparedProvider(
|
|
844
|
+
language,
|
|
845
|
+
preparedProvider,
|
|
846
|
+
() => this.#assertActive(),
|
|
847
|
+
() => this.#ensureLanguageReady(language)
|
|
848
|
+
);
|
|
849
|
+
this.#providerInitializers.set(
|
|
850
|
+
language,
|
|
851
|
+
() => safeProvider.init()
|
|
852
|
+
);
|
|
839
853
|
this.#preparedProviders.set(
|
|
840
854
|
language,
|
|
841
|
-
withPreparedProgramReuse(
|
|
842
|
-
|
|
843
|
-
|
|
844
|
-
|
|
845
|
-
|
|
846
|
-
|
|
847
|
-
|
|
848
|
-
)
|
|
855
|
+
withPreparedProgramReuse({
|
|
856
|
+
init: () => this.#promoteLanguageWarm(language),
|
|
857
|
+
prepareProgram: async (call) => {
|
|
858
|
+
await this.#promoteLanguageWarm(language);
|
|
859
|
+
return safeProvider.prepareProgram(call);
|
|
860
|
+
}
|
|
861
|
+
})
|
|
849
862
|
);
|
|
850
863
|
this.#leaseByLanguage.set(language, lease);
|
|
851
864
|
}
|
|
@@ -892,6 +905,41 @@ var BrowserRuntimeHostImplementation = class {
|
|
|
892
905
|
throw new Error("Browser runtime host has been disposed.");
|
|
893
906
|
}
|
|
894
907
|
}
|
|
908
|
+
#warmEntry(language) {
|
|
909
|
+
const existing = this.#warmEntries.get(language);
|
|
910
|
+
if (existing) return existing;
|
|
911
|
+
const initialize = this.#providerInitializers.get(language);
|
|
912
|
+
if (!initialize) {
|
|
913
|
+
throw new Error(
|
|
914
|
+
`Prepared runtime for language "${language}" is not registered.`
|
|
915
|
+
);
|
|
916
|
+
}
|
|
917
|
+
let warmResult;
|
|
918
|
+
const task = createPromotableBrowserBackgroundTask(async () => {
|
|
919
|
+
warmResult = await initialize();
|
|
920
|
+
});
|
|
921
|
+
const result = task.wait().then(() => {
|
|
922
|
+
if (!warmResult) {
|
|
923
|
+
throw new Error(
|
|
924
|
+
`Browser runtime for ${JSON.stringify(language)} completed warmup without a result.`
|
|
925
|
+
);
|
|
926
|
+
}
|
|
927
|
+
return warmResult;
|
|
928
|
+
});
|
|
929
|
+
const entry = { task, result };
|
|
930
|
+
this.#warmEntries.set(language, entry);
|
|
931
|
+
void result.catch(() => {
|
|
932
|
+
if (this.#warmEntries.get(language) === entry) {
|
|
933
|
+
this.#warmEntries.delete(language);
|
|
934
|
+
}
|
|
935
|
+
});
|
|
936
|
+
return entry;
|
|
937
|
+
}
|
|
938
|
+
async #promoteLanguageWarm(language) {
|
|
939
|
+
const entry = this.#warmEntry(language);
|
|
940
|
+
await entry.task.promote();
|
|
941
|
+
return entry.result;
|
|
942
|
+
}
|
|
895
943
|
isLanguageSupported(language) {
|
|
896
944
|
return this.supportedLanguages.includes(language);
|
|
897
945
|
}
|
|
@@ -959,6 +1007,17 @@ var BrowserRuntimeHostImplementation = class {
|
|
|
959
1007
|
runtimes: Object.freeze(runtimes)
|
|
960
1008
|
});
|
|
961
1009
|
}
|
|
1010
|
+
prewarmLanguage(language) {
|
|
1011
|
+
this.#assertActive();
|
|
1012
|
+
if (!this.supportedLanguages.includes(language)) {
|
|
1013
|
+
return Promise.reject(
|
|
1014
|
+
new Error(
|
|
1015
|
+
`Runtime for language "${language}" is not selected in this browser environment.`
|
|
1016
|
+
)
|
|
1017
|
+
);
|
|
1018
|
+
}
|
|
1019
|
+
return this.#warmEntry(language).result;
|
|
1020
|
+
}
|
|
962
1021
|
warmLanguage(language) {
|
|
963
1022
|
this.#assertActive();
|
|
964
1023
|
if (!this.supportedLanguages.includes(language)) {
|
|
@@ -968,16 +1027,20 @@ var BrowserRuntimeHostImplementation = class {
|
|
|
968
1027
|
)
|
|
969
1028
|
);
|
|
970
1029
|
}
|
|
971
|
-
return this.#
|
|
1030
|
+
return this.#promoteLanguageWarm(language);
|
|
972
1031
|
}
|
|
973
1032
|
disposeLanguage(language) {
|
|
974
1033
|
if (this.#disposed || !this.supportedLanguages.includes(language)) return;
|
|
1034
|
+
this.#warmEntries.get(language)?.task.cancel();
|
|
1035
|
+
this.#warmEntries.delete(language);
|
|
975
1036
|
this.#preparedProviders.get(language)?.flushPreparedProgramCache();
|
|
976
1037
|
this.#leaseByLanguage.get(language)?.disposeLanguage(language);
|
|
977
1038
|
}
|
|
978
1039
|
dispose() {
|
|
979
1040
|
if (this.#disposed) return;
|
|
980
1041
|
this.#disposed = true;
|
|
1042
|
+
for (const entry of this.#warmEntries.values()) entry.task.cancel();
|
|
1043
|
+
this.#warmEntries.clear();
|
|
981
1044
|
this.#readinessByLanguage.clear();
|
|
982
1045
|
for (const provider of this.#preparedProviders.values()) {
|
|
983
1046
|
provider.flushPreparedProgramCache();
|
|
@@ -1844,8 +1907,114 @@ function createPythonRuntimeImageFactory(options) {
|
|
|
1844
1907
|
let disposed = false;
|
|
1845
1908
|
let imagePromise = null;
|
|
1846
1909
|
let activeBuildController = null;
|
|
1910
|
+
let activeBootstrapWorker = null;
|
|
1911
|
+
let activeBootstrapCancellation = null;
|
|
1912
|
+
const buildInWorker = () => new Promise((resolve, reject) => {
|
|
1913
|
+
if (!options.workerUrl) {
|
|
1914
|
+
reject(new Error("Python runtime-image bootstrap requires a worker URL."));
|
|
1915
|
+
return;
|
|
1916
|
+
}
|
|
1917
|
+
const workerFormat = options.workerFormat ?? "classic";
|
|
1918
|
+
let workerUrl = appendWorkerUrlQueryParameter(
|
|
1919
|
+
options.workerUrl,
|
|
1920
|
+
"tracecodePythonRole",
|
|
1921
|
+
"runtime-image"
|
|
1922
|
+
);
|
|
1923
|
+
if (workerFormat === "module") {
|
|
1924
|
+
workerUrl = appendWorkerUrlQueryParameter(
|
|
1925
|
+
workerUrl,
|
|
1926
|
+
"tracecodePythonWorkerFormat",
|
|
1927
|
+
"module"
|
|
1928
|
+
);
|
|
1929
|
+
}
|
|
1930
|
+
const worker = options.workerFactory ? options.workerFactory(
|
|
1931
|
+
workerUrl,
|
|
1932
|
+
workerFormat === "module" ? { type: "module" } : void 0
|
|
1933
|
+
) : new Worker(
|
|
1934
|
+
workerUrl,
|
|
1935
|
+
workerFormat === "module" ? { type: "module" } : void 0
|
|
1936
|
+
);
|
|
1937
|
+
activeBootstrapWorker = worker;
|
|
1938
|
+
const id = "python-runtime-image";
|
|
1939
|
+
const protocolToken = createWorkerProtocolToken();
|
|
1940
|
+
let requested = false;
|
|
1941
|
+
let settled = false;
|
|
1942
|
+
const finish = (operation) => {
|
|
1943
|
+
if (settled) return;
|
|
1944
|
+
settled = true;
|
|
1945
|
+
globalThis.clearTimeout(timeoutId);
|
|
1946
|
+
worker.terminate();
|
|
1947
|
+
if (activeBootstrapWorker === worker) activeBootstrapWorker = null;
|
|
1948
|
+
activeBootstrapCancellation = null;
|
|
1949
|
+
operation();
|
|
1950
|
+
};
|
|
1951
|
+
const timeoutId = globalThis.setTimeout(() => {
|
|
1952
|
+
finish(() => reject(
|
|
1953
|
+
new Error(
|
|
1954
|
+
`Python runtime image acquisition timed out after ${timeoutMs}ms.`
|
|
1955
|
+
)
|
|
1956
|
+
));
|
|
1957
|
+
}, timeoutMs);
|
|
1958
|
+
activeBootstrapCancellation = () => {
|
|
1959
|
+
finish(() => reject(
|
|
1960
|
+
new Error("Python runtime image factory was disposed while loading.")
|
|
1961
|
+
));
|
|
1962
|
+
};
|
|
1963
|
+
worker.onerror = (event) => {
|
|
1964
|
+
finish(() => reject(
|
|
1965
|
+
new Error(
|
|
1966
|
+
event.message || "Python runtime-image bootstrap Worker crashed."
|
|
1967
|
+
)
|
|
1968
|
+
));
|
|
1969
|
+
};
|
|
1970
|
+
worker.onmessage = (event) => {
|
|
1971
|
+
const message = event.data;
|
|
1972
|
+
if (message?.type === "worker-ready" && !requested) {
|
|
1973
|
+
requested = true;
|
|
1974
|
+
worker.postMessage({
|
|
1975
|
+
id,
|
|
1976
|
+
type: "build-runtime-image",
|
|
1977
|
+
protocolToken,
|
|
1978
|
+
payload: {
|
|
1979
|
+
source: "tracecode-python-runtime-image-v1",
|
|
1980
|
+
descriptor: options.descriptor
|
|
1981
|
+
}
|
|
1982
|
+
});
|
|
1983
|
+
return;
|
|
1984
|
+
}
|
|
1985
|
+
if (message?.id !== id || message.protocolToken !== protocolToken) {
|
|
1986
|
+
return;
|
|
1987
|
+
}
|
|
1988
|
+
if (message.type === "error") {
|
|
1989
|
+
finish(() => reject(
|
|
1990
|
+
new Error(
|
|
1991
|
+
message.payload?.error || "Python runtime-image bootstrap failed."
|
|
1992
|
+
)
|
|
1993
|
+
));
|
|
1994
|
+
return;
|
|
1995
|
+
}
|
|
1996
|
+
if (message.type !== "runtime-image-result") return;
|
|
1997
|
+
const image = message.payload?.runtimeImage;
|
|
1998
|
+
if (image?.protocolVersion !== PYTHON_RUNTIME_IMAGE_PROTOCOL_VERSION || !(image.compiledModule instanceof WebAssembly.Module) || !(image.snapshot instanceof Uint8Array) || image.snapshot.byteLength === 0 || typeof image.pythonHashSeed !== "string" || image.pythonHashSeed.length === 0) {
|
|
1999
|
+
finish(() => reject(
|
|
2000
|
+
new Error("Python runtime-image bootstrap returned an invalid image.")
|
|
2001
|
+
));
|
|
2002
|
+
return;
|
|
2003
|
+
}
|
|
2004
|
+
finish(() => resolve(Object.freeze(image)));
|
|
2005
|
+
};
|
|
2006
|
+
});
|
|
1847
2007
|
const build = async () => {
|
|
1848
2008
|
if (disposed) throw new Error("Python runtime image factory is disposed.");
|
|
2009
|
+
if (options.workerUrl) {
|
|
2010
|
+
const image = await buildInWorker();
|
|
2011
|
+
if (disposed) {
|
|
2012
|
+
throw new Error(
|
|
2013
|
+
"Python runtime image factory was disposed while loading."
|
|
2014
|
+
);
|
|
2015
|
+
}
|
|
2016
|
+
return image;
|
|
2017
|
+
}
|
|
1849
2018
|
const controller = new AbortController();
|
|
1850
2019
|
activeBuildController = controller;
|
|
1851
2020
|
let timeoutId;
|
|
@@ -1963,6 +2132,10 @@ function createPythonRuntimeImageFactory(options) {
|
|
|
1963
2132
|
disposed = true;
|
|
1964
2133
|
activeBuildController?.abort();
|
|
1965
2134
|
activeBuildController = null;
|
|
2135
|
+
activeBootstrapCancellation?.();
|
|
2136
|
+
activeBootstrapCancellation = null;
|
|
2137
|
+
activeBootstrapWorker?.terminate();
|
|
2138
|
+
activeBootstrapWorker = null;
|
|
1966
2139
|
imagePromise = null;
|
|
1967
2140
|
}
|
|
1968
2141
|
});
|
|
@@ -2089,9 +2262,15 @@ function createPythonBrowserRuntimeProvider(options = {}) {
|
|
|
2089
2262
|
);
|
|
2090
2263
|
}
|
|
2091
2264
|
const createRuntimeImageFactory = () => createPythonRuntimeImageFactory({
|
|
2092
|
-
descriptor: runtimeImageDescriptor
|
|
2265
|
+
descriptor: runtimeImageDescriptor,
|
|
2266
|
+
workerUrl: context.assets.pythonWorker,
|
|
2267
|
+
...workerFactory ? { workerFactory } : {},
|
|
2268
|
+
...pythonManifest?.workerFormat ? { workerFormat: pythonManifest.workerFormat } : {}
|
|
2093
2269
|
});
|
|
2094
2270
|
let runtimeImageFactory = createRuntimeImageFactory();
|
|
2271
|
+
const runtimeImageWorkerPreflight = context.preflight("python", [
|
|
2272
|
+
"worker"
|
|
2273
|
+
]);
|
|
2095
2274
|
const workerOptions = () => ({
|
|
2096
2275
|
workerUrl: context.assets.pythonWorker,
|
|
2097
2276
|
...workerFactory ? { workerFactory } : {},
|
|
@@ -2132,6 +2311,7 @@ function createPythonBrowserRuntimeProvider(options = {}) {
|
|
|
2132
2311
|
const lease = {
|
|
2133
2312
|
preparedProviders,
|
|
2134
2313
|
preflightLanguage: async () => {
|
|
2314
|
+
await runtimeImageWorkerPreflight();
|
|
2135
2315
|
await runtimeImageFactory.acquire();
|
|
2136
2316
|
},
|
|
2137
2317
|
disposeLanguage: () => {
|
|
@@ -4437,9 +4617,9 @@ var CSharpRuntimeClient = class {
|
|
|
4437
4617
|
get preparedCompiler() {
|
|
4438
4618
|
return this.preparedAuthority?.compiler ?? this.workerClient;
|
|
4439
4619
|
}
|
|
4440
|
-
async withPreparedRunner(execute) {
|
|
4620
|
+
async withPreparedRunner(tier, execute) {
|
|
4441
4621
|
if (!this.preparedAuthority) return execute(this.workerClient);
|
|
4442
|
-
const runner = this.preparedAuthority.createRunner();
|
|
4622
|
+
const runner = this.preparedAuthority.createRunner(tier);
|
|
4443
4623
|
try {
|
|
4444
4624
|
return await execute(runner);
|
|
4445
4625
|
} finally {
|
|
@@ -4447,7 +4627,7 @@ var CSharpRuntimeClient = class {
|
|
|
4447
4627
|
this.preparedAuthority.releaseRunner(runner);
|
|
4448
4628
|
}
|
|
4449
4629
|
}
|
|
4450
|
-
async withFreshPreparedRunners(inputBatch, execute, signal) {
|
|
4630
|
+
async withFreshPreparedRunners(tier, inputBatch, execute, signal) {
|
|
4451
4631
|
const concurrency = Math.min(
|
|
4452
4632
|
inputBatch.length,
|
|
4453
4633
|
this.preparedAuthority?.batchConcurrency ?? 1
|
|
@@ -4469,6 +4649,7 @@ var CSharpRuntimeClient = class {
|
|
|
4469
4649
|
const inputs = inputBatch[index];
|
|
4470
4650
|
try {
|
|
4471
4651
|
results[index] = await this.withPreparedRunner(
|
|
4652
|
+
tier,
|
|
4472
4653
|
(runner) => execute(runner, inputs, index)
|
|
4473
4654
|
);
|
|
4474
4655
|
} catch (reason) {
|
|
@@ -4572,6 +4753,17 @@ var CSharpRuntimeClient = class {
|
|
|
4572
4753
|
timings: result.timings
|
|
4573
4754
|
};
|
|
4574
4755
|
}
|
|
4756
|
+
const preparedRunnerTier = result.preparedRunnerTier;
|
|
4757
|
+
const preparedRunnerReason = result.preparedRunnerReason;
|
|
4758
|
+
if (preparedRunnerTier !== "algorithm-fast" && preparedRunnerTier !== "compatibility" || typeof preparedRunnerReason !== "string" || !preparedRunnerReason || preparedRunnerTier === "algorithm-fast" && !result.traceClrWireContract) {
|
|
4759
|
+
return {
|
|
4760
|
+
kind: "failed",
|
|
4761
|
+
error: "C# preparation completed without a valid runner-tier descriptor.",
|
|
4762
|
+
diagnosticStage: "compile",
|
|
4763
|
+
consoleOutput: result.consoleOutput ?? [],
|
|
4764
|
+
timings: result.timings
|
|
4765
|
+
};
|
|
4766
|
+
}
|
|
4575
4767
|
let artifact = Object.freeze({
|
|
4576
4768
|
mode: call.mode,
|
|
4577
4769
|
code: call.code,
|
|
@@ -4580,7 +4772,24 @@ var CSharpRuntimeClient = class {
|
|
|
4580
4772
|
...call.traceOptions ? { traceOptions: Object.freeze({ ...call.traceOptions }) } : {},
|
|
4581
4773
|
compiledArtifactKey: result.compiledArtifactKey,
|
|
4582
4774
|
compiledArtifactBase64: result.compiledArtifactBase64,
|
|
4583
|
-
compiledArtifactSha256: result.compiledArtifactSha256
|
|
4775
|
+
compiledArtifactSha256: result.compiledArtifactSha256,
|
|
4776
|
+
preparedRunnerTier,
|
|
4777
|
+
preparedRunnerReason,
|
|
4778
|
+
...result.traceClrWireContract ? {
|
|
4779
|
+
traceClrWireContract: Object.freeze({
|
|
4780
|
+
parameters: Object.freeze(
|
|
4781
|
+
result.traceClrWireContract.parameters.map(
|
|
4782
|
+
(parameter) => Object.freeze({
|
|
4783
|
+
name: parameter.name,
|
|
4784
|
+
type: Object.freeze({ ...parameter.type })
|
|
4785
|
+
})
|
|
4786
|
+
)
|
|
4787
|
+
),
|
|
4788
|
+
returnType: Object.freeze({
|
|
4789
|
+
...result.traceClrWireContract.returnType
|
|
4790
|
+
})
|
|
4791
|
+
})
|
|
4792
|
+
} : {}
|
|
4584
4793
|
});
|
|
4585
4794
|
let disposed = false;
|
|
4586
4795
|
let disposePromise;
|
|
@@ -4650,6 +4859,7 @@ var CSharpRuntimeClient = class {
|
|
|
4650
4859
|
executeIsolated: (preparedCall) => executeOwned(
|
|
4651
4860
|
preparedCall,
|
|
4652
4861
|
(preparedArtifact, forwardedCall) => this.withPreparedRunner(
|
|
4862
|
+
preparedArtifact.preparedRunnerTier,
|
|
4653
4863
|
(runner) => runner.executePreparedTrace(
|
|
4654
4864
|
preparedArtifact,
|
|
4655
4865
|
forwardedCall
|
|
@@ -4667,6 +4877,7 @@ var CSharpRuntimeClient = class {
|
|
|
4667
4877
|
return executeOwned(
|
|
4668
4878
|
preparedCall,
|
|
4669
4879
|
(preparedArtifact, forwardedCall) => this.withFreshPreparedRunners(
|
|
4880
|
+
preparedArtifact.preparedRunnerTier,
|
|
4670
4881
|
forwardedCall.inputBatch,
|
|
4671
4882
|
(runner, inputs, index) => runner.executePreparedTrace(
|
|
4672
4883
|
preparedArtifact,
|
|
@@ -4690,12 +4901,14 @@ var CSharpRuntimeClient = class {
|
|
|
4690
4901
|
executeIsolated: (preparedCall) => executeOwned(
|
|
4691
4902
|
preparedCall,
|
|
4692
4903
|
(preparedArtifact, forwardedCall) => this.withPreparedRunner(
|
|
4904
|
+
preparedArtifact.preparedRunnerTier,
|
|
4693
4905
|
(runner) => runner.executePreparedCode(preparedArtifact, forwardedCall)
|
|
4694
4906
|
)
|
|
4695
4907
|
),
|
|
4696
4908
|
executeBatchIsolated: (preparedCall) => executeOwned(
|
|
4697
4909
|
preparedCall,
|
|
4698
4910
|
(preparedArtifact, forwardedCall) => this.withFreshPreparedRunners(
|
|
4911
|
+
preparedArtifact.preparedRunnerTier,
|
|
4699
4912
|
forwardedCall.inputBatch,
|
|
4700
4913
|
(runner, inputs) => runner.executePreparedCode(preparedArtifact, {
|
|
4701
4914
|
inputs,
|
|
@@ -4934,7 +5147,6 @@ function createCSharpBrowserRuntimeProvider(options = {}) {
|
|
|
4934
5147
|
standbyWarmup = warmup;
|
|
4935
5148
|
return warmup;
|
|
4936
5149
|
};
|
|
4937
|
-
void ensureStandbyRunner().catch(() => void 0);
|
|
4938
5150
|
const preparedAuthority = preparedAuthorityEnabled ? {
|
|
4939
5151
|
compiler,
|
|
4940
5152
|
batchConcurrency: preparedBatchConcurrency,
|
|
@@ -4949,7 +5161,7 @@ function createCSharpBrowserRuntimeProvider(options = {}) {
|
|
|
4949
5161
|
loadTimeMs: performance.now() - startedAt
|
|
4950
5162
|
};
|
|
4951
5163
|
},
|
|
4952
|
-
createRunner() {
|
|
5164
|
+
createRunner(_tier) {
|
|
4953
5165
|
if (disposed) {
|
|
4954
5166
|
throw new Error("C# browser runtime provider has been disposed.");
|
|
4955
5167
|
}
|
|
@@ -9644,6 +9856,7 @@ function createBrowserJudgeHostFromRuntimeHost(host, options = {}) {
|
|
|
9644
9856
|
isLanguageSupported: host.isLanguageSupported.bind(host),
|
|
9645
9857
|
preflightLanguage: host.preflightLanguage.bind(host),
|
|
9646
9858
|
preflight: host.preflight.bind(host),
|
|
9859
|
+
prewarmLanguage: host.prewarmLanguage.bind(host),
|
|
9647
9860
|
warmLanguage: host.warmLanguage.bind(host),
|
|
9648
9861
|
disposeLanguage: host.disposeLanguage.bind(host),
|
|
9649
9862
|
createJudge: (judgeOptions) => createBrowserRuntimeJudge({
|
|
@@ -2,7 +2,7 @@ var define = undefined;
|
|
|
2
2
|
import {
|
|
3
3
|
runRuntimeProjectWorkerBridge,
|
|
4
4
|
withRuntimeProjectCommandRunnerCapabilities
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-NHGF353L.js";
|
|
6
6
|
import "./chunk-756Z7C6D.js";
|
|
7
7
|
|
|
8
8
|
// packages/runtime-python/src/project-browser.ts
|
|
@@ -35,4 +35,4 @@ function createBrowserPythonProjectRunner(workerClient, options = {}) {
|
|
|
35
35
|
export {
|
|
36
36
|
createBrowserPythonProjectRunner
|
|
37
37
|
};
|
|
38
|
-
//# sourceMappingURL=project-browser-
|
|
38
|
+
//# sourceMappingURL=project-browser-7MVLDAHN.js.map
|
|
@@ -2,7 +2,7 @@ var define = undefined;
|
|
|
2
2
|
import {
|
|
3
3
|
runRuntimeProjectWorkerBridge,
|
|
4
4
|
withRuntimeProjectCommandRunnerCapabilities
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-NHGF353L.js";
|
|
6
6
|
import "./chunk-756Z7C6D.js";
|
|
7
7
|
|
|
8
8
|
// packages/runtime-cpp/src/project-browser.ts
|
|
@@ -32,4 +32,4 @@ function createBrowserCppProjectRunner(workerClient, options = {}) {
|
|
|
32
32
|
export {
|
|
33
33
|
createBrowserCppProjectRunner
|
|
34
34
|
};
|
|
35
|
-
//# sourceMappingURL=project-browser-
|
|
35
|
+
//# sourceMappingURL=project-browser-DKMZFGCJ.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
createRuntimeProjectIoBridge,
|
|
4
4
|
runRuntimeProjectWorkerBridge,
|
|
5
5
|
withRuntimeProjectCommandRunnerCapabilities
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-NHGF353L.js";
|
|
7
7
|
import "./chunk-756Z7C6D.js";
|
|
8
8
|
|
|
9
9
|
// packages/runtime-csharp/src/project-browser.ts
|
|
@@ -79,4 +79,4 @@ function createBrowserCSharpProjectRunner(workerClient, options = {}) {
|
|
|
79
79
|
export {
|
|
80
80
|
createBrowserCSharpProjectRunner
|
|
81
81
|
};
|
|
82
|
-
//# sourceMappingURL=project-browser-
|
|
82
|
+
//# sourceMappingURL=project-browser-VSLHVOH4.js.map
|
|
@@ -3,7 +3,7 @@ import {
|
|
|
3
3
|
createRuntimeProjectIoBridge,
|
|
4
4
|
runRuntimeProjectWorkerBridge,
|
|
5
5
|
withRuntimeProjectCommandRunnerCapabilities
|
|
6
|
-
} from "./chunk-
|
|
6
|
+
} from "./chunk-NHGF353L.js";
|
|
7
7
|
import "./chunk-756Z7C6D.js";
|
|
8
8
|
|
|
9
9
|
// packages/runtime-java/src/project-browser.ts
|
|
@@ -77,4 +77,4 @@ function createBrowserJavaProjectRunner(workerClient, options = {}) {
|
|
|
77
77
|
export {
|
|
78
78
|
createBrowserJavaProjectRunner
|
|
79
79
|
};
|
|
80
|
-
//# sourceMappingURL=project-browser-
|
|
80
|
+
//# sourceMappingURL=project-browser-XKQ2MNK3.js.map
|
|
@@ -53,7 +53,7 @@ import {
|
|
|
53
53
|
runtimeKernelWriteFsErrorMessage,
|
|
54
54
|
runtimeKernelWriteTarget,
|
|
55
55
|
runtimeProjectInfrastructureFailure
|
|
56
|
-
} from "./chunk-
|
|
56
|
+
} from "./chunk-NHGF353L.js";
|
|
57
57
|
import {
|
|
58
58
|
decodeTraceKernelWatchEvent
|
|
59
59
|
} from "./chunk-LTRAP6OY.js";
|
|
@@ -10865,4 +10865,4 @@ export {
|
|
|
10865
10865
|
createBrowserTypeScriptProjectRunner,
|
|
10866
10866
|
runBrowserJavaScriptProjectRequest
|
|
10867
10867
|
};
|
|
10868
|
-
//# sourceMappingURL=project-browser-
|
|
10868
|
+
//# sourceMappingURL=project-browser-YUBOA2Q4.js.map
|
|
@@ -2,13 +2,13 @@ var define = undefined;
|
|
|
2
2
|
import {
|
|
3
3
|
PythonWorkerClient,
|
|
4
4
|
isWorkerSupported
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-JPDVJCVS.js";
|
|
6
|
+
import "./chunk-NHGF353L.js";
|
|
7
|
+
import "./chunk-5KH5ABPQ.js";
|
|
8
8
|
import "./chunk-C2RUZCIL.js";
|
|
9
9
|
import "./chunk-756Z7C6D.js";
|
|
10
10
|
export {
|
|
11
11
|
PythonWorkerClient,
|
|
12
12
|
isWorkerSupported
|
|
13
13
|
};
|
|
14
|
-
//# sourceMappingURL=python-worker-client-
|
|
14
|
+
//# sourceMappingURL=python-worker-client-R7K7HDO7.js.map
|