From 881a70961c28ee17584a2d1bebd1fb5165c10af9 Mon Sep 17 00:00:00 2001 From: Fred Sauer Date: Mon, 23 Mar 2026 23:19:40 -0700 Subject: [PATCH 1/4] Update README.md for Windows build Recommend MSYS2 `UCRT64` environment. --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 267b65e3..fafb9340 100644 --- a/README.md +++ b/README.md @@ -20,6 +20,8 @@ git clone -b master --single-branch git@github.com:sehugg/8bitworkshop.git To build the 8bitworkshop IDE: ```sh +# On Windows, use the `UCRT64` shell from https://msys2.org/ +# On Linux/macOS, just type: make ``` @@ -51,7 +53,7 @@ Copyright © 2016-2026 [Steven E. Hugg](https://github.com/sehugg). This project, unless specifically noted, is multi-licensed. You may choose to adhere to the terms of either the [GPL-3.0](https://github.com/sehugg/8bitworkshop/blob/master/LICENSE) License for the entire project or respect the individual licenses of its dependencies and included code samples, as applicable. -This project includes various dependencies, modules, and components that retain their original licenses. +This project includes various dependencies, modules, and components that retain their original licenses. For detailed licensing information for each dependency, please refer to the respective files and documentation. All included code samples located in the `presets/` directory are licensed under From 55984a34787d63674329e3f14270363dfc968ee7 Mon Sep 17 00:00:00 2001 From: Fred Sauer Date: Mon, 23 Mar 2026 23:05:04 -0700 Subject: [PATCH 2/4] Makefile uses `ipconfig` on Windows --- Makefile | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Makefile b/Makefile index 76ea6b8c..9e75e73f 100644 --- a/Makefile +++ b/Makefile @@ -57,9 +57,17 @@ distro: buildtsc rm -r $(TMP)/doc $(TMP)/scripts $(TMP)/test* $(TMP)/tools $(TMP)/.[a-z]* $(TMP)/ts*.json # $(TMP)/meta rm -f $(TMP)/javatari && mkdir -p $(TMP)/javatari && cp -p javatari.js/release/javatari/* $(TMP)/javatari/ -tsweb: submodules node_modules +getip: + @if command -v ip > /dev/null; then \ + ip addr | grep -w inet; \ + elif command -v ifconfig > /dev/null; then \ + ifconfig | grep -w inet; \ + else \ + ipconfig | grep IPv4; \ + fi + +tsweb: submodules node_modules getip npm run esbuild-clean - (ip addr || ifconfig) | grep inet trap 'kill 0' EXIT; \ make buildgrammars; \ $(TSC) -w --preserveWatchOutput & \ From b7cea553cd125cd985cce619f090b2a4adbacb78 Mon Sep 17 00:00:00 2001 From: Fred Sauer Date: Tue, 7 Apr 2026 21:42:48 -0700 Subject: [PATCH 3/4] Fix windows ability to checkout project #201 Avoid ':' in filenames by stripping 'remote:' file extension prefix: - Rename `skeleton.remote:llvm-mos` to `skeleton.llvm-mos`, which allow Windows users to once again checkout the repo. - Update `getSkeletonFile` to strip 'remote:'. --- presets/vcs/{skeleton.remote:llvm-mos => skeleton.llvm-mos} | 0 src/ide/ui.ts | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename presets/vcs/{skeleton.remote:llvm-mos => skeleton.llvm-mos} (100%) diff --git a/presets/vcs/skeleton.remote:llvm-mos b/presets/vcs/skeleton.llvm-mos similarity index 100% rename from presets/vcs/skeleton.remote:llvm-mos rename to presets/vcs/skeleton.llvm-mos diff --git a/src/ide/ui.ts b/src/ide/ui.ts index 3e016724..92485c83 100644 --- a/src/ide/ui.ts +++ b/src/ide/ui.ts @@ -489,7 +489,7 @@ function reloadProject(id: string) { } async function getSkeletonFile(fileid: string): Promise { - var ext = platform.getToolForFilename(fileid); + var ext = platform.getToolForFilename(fileid).replace(/^remote:/, ""); try { return await $.get("presets/" + getBasePlatform(platform_id) + "/skeleton." + ext, 'text'); } catch (e) { From 3efbccde92d7716f293094fc1744744e8dfaf9c2 Mon Sep 17 00:00:00 2001 From: Fred Sauer Date: Wed, 8 Apr 2026 20:54:11 -0700 Subject: [PATCH 4/4] Ensure LF line endings Fix broken C projects on Windows. Ensure C build tools that require LF line endings always get them, regardless of checked in profile file line endings and the developer's local git config. --- src/worker/builder.ts | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/worker/builder.ts b/src/worker/builder.ts index 99787948..8215ddf5 100644 --- a/src/worker/builder.ts +++ b/src/worker/builder.ts @@ -49,6 +49,14 @@ export interface BuildStep extends WorkerBuildStep { /// +export function fixLineEndings(data: any): any { + if (typeof data === 'string') { + // C build tools require LF line endings. + return data.replace(/\r\n/g, '\n'); + } + return data; +} + export class FileWorkingStore implements WorkingStore { workfs: { [path: string]: FileEntry } = {}; workerseq: number = 0; @@ -89,7 +97,7 @@ export class FileWorkingStore implements WorkingStore { let data = this.getFileData(path); if (data != null && typeof data !== 'string') throw new Error(`${path}: expected string`) - return data as string; // TODO + return fixLineEndings(data) as string; // TODO } getFileEntry(path: string): FileEntry { return this.workfs[path]; @@ -256,6 +264,7 @@ export function populateEntry(fs, path: string, entry: FileEntry, options: Build if (options && options.processFn) { data = options.processFn(path, data); } + data = fixLineEndings(data); // create subfolders var toks = path.split('/'); if (toks.length > 1) {