Skip to content

Commit 7f8dcb0

Browse files
committed
Cleanup
1 parent f2702cf commit 7f8dcb0

File tree

7 files changed

+20
-25
lines changed

7 files changed

+20
-25
lines changed

src/pyodide/helpers.bzl

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -323,8 +323,6 @@ def _python_bundle(version, *, pyodide_asm_wasm = None, pyodide_asm_js = None, p
323323
internal_data_modules = [
324324
_out_path("python_stdlib.zip", version),
325325
_out_path("pyodide.asm.wasm", version),
326-
],
327-
internal_modules = [
328326
_out_path("emscriptenSetup.js", version),
329327
],
330328
deps = [
@@ -341,7 +339,7 @@ def _python_bundle(version, *, pyodide_asm_wasm = None, pyodide_asm_js = None, p
341339
srcs = [
342340
":pyodide@%s.capnp" % version,
343341
"//src/workerd/jsg:modules.capnp",
344-
_ts_bundle_out(import_name + "-internal_", "emscriptenSetup", version),
342+
_ts_bundle_out(import_name + "-internal_", "emscriptenSetup.js", version),
345343
_ts_bundle_out(import_name + "-internal_", "pyodide.asm.wasm", version),
346344
_ts_bundle_out(import_name + "-internal_", "python_stdlib.zip", version),
347345
],

src/pyodide/internal/pool/builtin_wrappers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ function prepareStackTrace(
206206
try {
207207
const funcName = stack[2].getFunctionName();
208208
const fileName = stack[2].getFileName();
209-
if (fileName !== 'pyodideRuntime-internal:emscriptenSetup') {
209+
if (fileName !== 'pyodide-internal:generated/emscriptenSetup') {
210210
return [false, funcName];
211211
}
212212
return [

src/pyodide/internal/pool/emscriptenSetup.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ function getPrepareFileSystem(pythonStdlib: ArrayBuffer): PreRunHook {
110110
function getInstantiateWasm(
111111
pyodideWasmModule: WebAssembly.Module
112112
): EmscriptenSettings['instantiateWasm'] {
113-
const sentinelImportPromise = getSentinelImport(UnsafeEval);
113+
const sentinelImportPromise = getSentinelImport();
114114
return function instantiateWasm(
115115
wasmImports: WebAssembly.Imports,
116116
successCallback: (
@@ -229,9 +229,7 @@ export async function instantiateEmscriptenModule(
229229
isWorkerd: boolean,
230230
pythonStdlib: ArrayBuffer,
231231
wasmModule: WebAssembly.Module,
232-
unsafeEval: any
233232
): Promise<Module> {
234-
UnsafeEval = unsafeEval;
235233
setUnsafeEval(UnsafeEval);
236234
const emscriptenSettings = getEmscriptenSettings(
237235
isWorkerd,
@@ -248,6 +246,7 @@ export async function instantiateEmscriptenModule(
248246

249247
// Wait until we've executed all the preRun hooks before proceeding
250248
const emscriptenModule = await emscriptenSettings.readyPromise;
249+
emscriptenModule.setUnsafeEval = setUnsafeEval;
251250
emscriptenModule.setGetRandomValues = setGetRandomValues;
252251
emscriptenModule.setSetTimeout = setSetTimeout;
253252
finishSetup();

src/pyodide/internal/python.ts

Lines changed: 6 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,7 @@ import {
2222
* emscripten seperately from this code in another context.
2323
* The underlying code for it can be found in pool/emscriptenSetup.ts.
2424
*/
25-
import { instantiateEmscriptenModule } from 'pyodideRuntime-internal:emscriptenSetup';
26-
import pythonStdlib from 'pyodideRuntime-internal:python_stdlib.zip';
27-
import wasmSource from 'pyodideRuntime-internal:pyodide.asm.wasm';
25+
import { default as SetupEmscripten } from 'internal:setup-emscripten';
2826

2927
import { default as UnsafeEval } from 'internal:unsafe-eval';
3028
import { reportError } from 'pyodide-internal:util';
@@ -116,24 +114,21 @@ function validatePyodideVersion(pyodide: Pyodide): void {
116114
}
117115
}
118116

119-
export async function loadPyodide(
117+
export function loadPyodide(
120118
isWorkerd: boolean,
121119
lockfile: PackageLock,
122120
indexURL: string
123-
): Promise<Pyodide> {
121+
): Pyodide {
124122
try {
125-
const wasmModule = UnsafeEval.newWasmModule(wasmSource);
126-
const Module = await instantiateEmscriptenModule(
127-
true,
128-
pythonStdlib,
129-
wasmModule,
130-
UnsafeEval
123+
const Module = enterJaegerSpan('instantiate_emscripten', () =>
124+
SetupEmscripten.getModule()
131125
);
132126
Module.API.config.jsglobals = globalThis;
133127
if (isWorkerd) {
134128
Module.API.config.indexURL = indexURL;
135129
Module.API.config.resolveLockFilePromise!(lockfile);
136130
}
131+
Module.setUnsafeEval(UnsafeEval);
137132
Module.setGetRandomValues(getRandomValues);
138133
Module.setSetTimeout(setTimeout, clearTimeout, setInterval, clearInterval);
139134

src/pyodide/types/emscripten.d.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,7 @@ interface Module {
9999
addRunDependency(x: string): void;
100100
removeRunDependency(x: string): void;
101101
noInitialRun: boolean;
102+
setUnsafeEval(mod: typeof import('internal:unsafe-eval').default): void;
102103
setGetRandomValues(
103104
func: typeof import('pyodide-internal:topLevelEntropy/lib').getRandomValues
104105
): void;

src/workerd/api/pyodide/setup-emscripten.c++

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,8 @@ EmscriptenRuntime EmscriptenRuntime::initialize(
8181
pyodideAsmWasmReader = module.getData();
8282
}
8383
}
84+
js.setAllowEval(true);
85+
KJ_DEFER(js.setAllowEval(false));
8486
auto module = loadEmscriptenSetupModule(js, KJ_ASSERT_NONNULL(emsciptenSetupJsReader));
8587
instantiateEmscriptenSetupModule(js, module);
8688
auto instantiateEmscriptenModule = getInstantiateEmscriptenModule(js, module);

src/workerd/server/workerd-api.c++

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -712,13 +712,13 @@ void WorkerdApi::compileModules(jsg::Lock& lockParam,
712712
auto version = getPythonBundleName(pythonRelease);
713713
auto bundle = retrievePyodideBundle(impl->pythonConfig, version);
714714
// Inject SetupEmscripten module
715-
// {
716-
// auto emscriptenRuntime =
717-
// api::pyodide::EmscriptenRuntime::initialize(lockParam, true, bundle);
718-
// modules->addBuiltinModule("internal:setup-emscripten",
719-
// jsg::alloc<SetupEmscripten>(kj::mv(emscriptenRuntime)),
720-
// workerd::jsg::ModuleRegistry::Type::INTERNAL);
721-
// }
715+
{
716+
auto emscriptenRuntime =
717+
api::pyodide::EmscriptenRuntime::initialize(lockParam, true, bundle);
718+
modules->addBuiltinModule("internal:setup-emscripten",
719+
jsg::alloc<SetupEmscripten>(kj::mv(emscriptenRuntime)),
720+
workerd::jsg::ModuleRegistry::Type::INTERNAL);
721+
}
722722

723723
// Inject Pyodide bundle
724724
modules->addBuiltinBundle(bundle, kj::none);

0 commit comments

Comments
 (0)