diff --git a/scripts/vscode-package.py b/scripts/vscode-package.py index 541a713..d3f5fa1 100644 --- a/scripts/vscode-package.py +++ b/scripts/vscode-package.py @@ -66,7 +66,8 @@ def modify_vsix(): # webview print("") copy_dir('./resources/dide-netlist/view', os.path.join(extract_folder, 'extension', 'resources', 'dide-netlist', 'view')) - copy_dir('./resources/dide-netlist/static', os.path.join(extract_folder, 'extension', 'resources', 'dide-viewer', 'static')) + copy_dir('./resources/dide-netlist/static/share', os.path.join(extract_folder, 'extension', 'resources', 'dide-viewer', 'static', 'share')) + copy_file('./resources/dide-netlist/static/yosys.wasm', os.path.join(extract_folder, 'extension', 'resources', 'dide-viewer', 'static', 'yosys.wasm')) print("") copy_dir('./resources/dide-viewer/view', os.path.join(extract_folder, 'extension', 'resources', 'dide-viewer', 'view')) diff --git a/src/function/dide-netlist/index.ts b/src/function/dide-netlist/index.ts index 9b5dd67..30600b2 100644 --- a/src/function/dide-netlist/index.ts +++ b/src/function/dide-netlist/index.ts @@ -81,7 +81,7 @@ class Netlist { } const wasm = this.wasm; - const wasi = this.makeWasi(targetYs); + const { wasi, fd } = this.makeWasi(targetYs); const netlistPayloadFolder = hdlPath.join(opeParam.prjInfo.prjPath, 'netlist'); const targetJson = hdlPath.join(netlistPayloadFolder, moduleName + '.json'); @@ -111,7 +111,7 @@ class Netlist { return; } - this.create(moduleName); + this.create(moduleName, fd); } private getSynthMode(): SynthMode { @@ -166,7 +166,7 @@ class Netlist { hdlFile.removeFile(logFilePath); const logFd = fs.openSync(logFilePath, 'a'); - return new WASI({ + const wasi = new WASI({ version: 'preview1', args: [ 'yosys', @@ -185,6 +185,8 @@ class Netlist { // stderr: logFd, env: process.env }); + + return { wasi, fd: logFd }; } private async loadWasm() { @@ -198,7 +200,7 @@ class Netlist { return wasm; } - private create(moduleName: string) { + private create(moduleName: string, fd: number) { // Create panel this.panel = vscode.window.createWebviewPanel( 'Netlist', @@ -212,7 +214,7 @@ class Netlist { ); this.panel.onDidDispose(() => { - + fs.closeSync(fd); }); this.panel.webview.onDidReceiveMessage(message => {