-
-
Notifications
You must be signed in to change notification settings - Fork 6
Add built-in compiler for Fallout2 .ssl files #77
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add built-in compiler for Fallout2 .ssl files #77
Conversation
|
Interesting, I haven't considered M1. Does it not run wine? I thought there was some compatilibility layer. |
|
Actually I have no idea, but i had an impression that it was not possible to run x86/x64 apps on M1 Macbooks. Anyways, even if it is possible then it still requires some setup. Having a embedded cross-platform compiler should be better user experience in my opinion. Maybe later we can enable it by default |
|
CI fails on |
Install sslc with hash check
|
Yes, looks like it was a bug in I changed installation script, now it will check hash of downloaded release file. Just more security. With hash check it is not a big difference where this file was downloaded from |
|
I'll look it over soon. |
|
@copilot review this |
|
I'd assign Copilot to review this PR if I had permission to add reviewers. :) |
Co-authored-by: Copilot <[email protected]>
Co-authored-by: Copilot <[email protected]>
Copilot itself advised me to make that comment to request a review, apparently that didn't work :), so assigned it in GUI. |
|
Updated to use |
|
Looks like it has trouble working with symlinks. Linux build works fine too. |
|
@burner1024 Thanks, I will take a look. I have Linux and symlink too but it is relative symlink. I tested now with absolute symlink and I confirm that it needs fixing. I will try to use NODERAWFS again, very likely it fails to find path because of absolute symlink and because host FS is mounted into subfolder. About leftover |
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Pull Request Overview
This PR introduces a built-in WebAssembly-compiled compiler for Fallout2 .ssl files, enabling cross-platform support when the external compiler is unavailable. Key changes include:
- Adding a new module (ssl_compiler.ts) to integrate the built-in compiler.
- Updating settings and documentation to include a new flag (useBuiltInCompiler) and related configuration.
- Modifying the compile function in fallout.ts to conditionally use the built-in compiler.
Reviewed Changes
Copilot reviewed 10 out of 11 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
| server/src/sslc/ssl_compiler.ts | New module for invoking the built-in WebAssembly SSL compiler. |
| server/src/settings.ts | Added new boolean flag for using the built-in compiler. |
| server/src/fallout.ts | Updated compile logic to check for and fallback to the built-in compiler. |
| server/src/compile.ts | Updated call to compile to await asynchronous execution. |
| server/package.json | Version bump and dependency addition for the built-in compiler. |
| package.json | Version bump and updated settings schema for using the built-in compiler. |
| docs/settings.md | Documentation update to reflect the new built-in compiler setting. |
| docs/changelog.md | Changelog entry for the new built-in compiler feature. |
| README.md | Update to highlight the embedded cross-platform .ssl compiler. |
| .vscodeignore | Excludes built-in compiler dependency from being ignored. |
Files not reviewed (1)
- server/package-lock.json: Language not supported
Comments suppressed due to low confidence (2)
server/src/fallout.ts:598
- The variable name 'successfullCompilerPath' is misspelled; consider renaming it to 'successfulCompilerPath' for clarity.
let successfullCompilerPath: string | null = null;
server/src/fallout.ts:674
- The message 'Succesfully compiled' is misspelled; please change it to 'Successfully compiled'.
} else {
|
|
||
| cmdArgs.push(opts.inputFileName, "-o", opts.outputFileName); | ||
|
|
||
| const p = fork( |
Copilot
AI
Jun 20, 2025
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Consider handling the 'error' event on the forked child process to reject the promise in case of early failures.
|
OK, merged and released, thanks. |


Description
This PR embeds a WebAssembly-compiled
compile.exeinto this extension. It is under options flag and it is disabled by default.Having this compiler as WebAssembly build allow using this extension on non-intel processors, for example on Mac M1 or others.
Notes
Currently it uses compiled files from my repo but I will change it into sfall repo as soon as improvements PRs are merged.
I have not tested this on Windows but likely it will also work there