diff --git a/RELEASE.md b/RELEASE.md index 044a934..3a9e5a3 100644 --- a/RELEASE.md +++ b/RELEASE.md @@ -7,5 +7,9 @@ File size reduction due to brotli compression. Change wasm compile method from compile to compileStreaming. - lazy loading monaco editor +# v1.1.1 (2024-12-18) +- change default code. +- moved the file with the code that runs on the worker to another directory. + ## v1.0.0 (2024-11-26) - Initial release diff --git a/bun.lockb b/bun.lockb index f44a881..c945e12 100644 Binary files a/bun.lockb and b/bun.lockb differ diff --git a/lib/package.json b/lib/package.json index ab16141..c6d7698 100644 --- a/lib/package.json +++ b/lib/package.json @@ -1,6 +1,6 @@ { "name": "@oligami/rustc-browser-wasi_shim", - "version": "1.1.0", + "version": "1.1.1", "type": "module", "scripts": { "dev": "vite", @@ -14,8 +14,7 @@ "@bjorn3/browser_wasi_shim": "^0.3.0", "@oligami/browser_wasi_shim-threads": "^0.1.1", "@oligami/rustc-browser-wasi_shim": "file:", - "brotli-dec-wasm": "^2.3.0", - "nanotar": "^0.1.1" + "brotli-dec-wasm": "^2.3.0" }, "private": false, "publishConfig": { @@ -52,9 +51,6 @@ "default": "./dist/rustc-browser-wasi_shim.es.js" } }, - "files": [ - "dist", - "src" - ], + "files": ["dist", "src"], "keywords": [] } diff --git a/package.json b/package.json index f58f112..9562fc5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rubrc", - "version": "1.1.0", + "version": "1.1.1", "description": "rubrc root", "private": true, "directories": { @@ -9,17 +9,18 @@ }, "author": "oligami (https://github.com/oligamiq)", "license": "MIT OR Apache-2.0", + "type": "module", "devDependencies": { "@biomejs/biome": "1.9.4", "@swc/cli": "^0.5.2", - "@swc/core": "^1.10.0", + "@swc/core": "^1.10.1", "@types/tar-stream": "^3.1.3", "autoprefixer": "^10.4.20", "better-typescript-lib": "^2.10.0", "npm-watch": "^0.13.0", "postcss": "^8.4.49", - "solid-devtools": "^0.30.1", - "tailwindcss": "^3.4.16", + "solid-devtools": "^0.31.4", + "tailwindcss": "^3.4.17", "typescript": "^5.7.2", "unplugin-swc": "^1.5.1", "vite": "^6.0.3", diff --git a/page/package.json b/page/package.json index e7eca0d..6898bac 100644 --- a/page/package.json +++ b/page/package.json @@ -1,10 +1,11 @@ { "name": "rubrc", - "version": "1.1.0", + "version": "1.1.1", "description": "rubrc example page", "private": true, "author": "oligami (https://github.com/oligamiq)", "license": "MIT OR Apache-2.0", + "type": "module", "scripts": { "start": "vite", "dev": "vite", @@ -20,7 +21,6 @@ "@xterm/addon-fit": "^0.10.0", "@xterm/addon-search": "^0.15.0", "@xterm/xterm": "^5.5.0", - "install": "^0.13.0", "nanotar": "^0.1.1", "rubrc": "file:", "solid-js": "^1.9.3", diff --git a/page/postcss.config.js b/page/postcss.config.js index 87233a4..f8bc396 100644 --- a/page/postcss.config.js +++ b/page/postcss.config.js @@ -1,4 +1,4 @@ -module.exports = { +export default { purge: ["./index.html", "./src/**/*.{vue,js,ts,jsx,tsx}"], plugins: { tailwindcss: {}, diff --git a/page/src/App.tsx b/page/src/App.tsx index eb7ffb8..2a6ac8f 100644 --- a/page/src/App.tsx +++ b/page/src/App.tsx @@ -5,7 +5,16 @@ import type { Ctx } from "./ctx"; import { default_value, rust_file } from "./config"; import { DownloadButton, RunButton } from "./btn"; import { triples } from "./sysroot"; -import { Select } from "@thisbeyond/solid-select"; + +const Select = lazy(async () => { + const selector = import("@thisbeyond/solid-select"); + const css_load = import("@thisbeyond/solid-select/style.css"); + + const [mod] = await Promise.all([selector, css_load]); + + return { default: mod.Select }; +}); + import { SharedObjectRef } from "@oligami/shared-object"; const MonacoEditor = lazy(() => import("solid-monaco").then((mod) => ({ default: mod.MonacoEditor })), diff --git a/page/src/config.ts b/page/src/config.ts index 99b0e89..3dd2e16 100644 --- a/page/src/config.ts +++ b/page/src/config.ts @@ -2,7 +2,17 @@ import { File } from "@bjorn3/browser_wasi_shim"; export const default_value = `// /main.rs fn main() { - println!("Hello, world!"); + let first_time = std::time::SystemTime::now(); + + let count = std::env::args() + .nth(1) + .map(|arg| arg.parse::().ok()) + .flatten() + .unwrap_or(10); + + (0..=count).for_each(|i| println!("{i}")); + + println!("Time: {:?}", first_time.elapsed().unwrap()); } `; diff --git a/page/src/index.tsx b/page/src/index.tsx index f454d47..641cdeb 100644 --- a/page/src/index.tsx +++ b/page/src/index.tsx @@ -4,11 +4,10 @@ import { render } from "solid-js/web"; import App from "./App"; import { gen_ctx } from "./ctx"; -import MainWorker from "./worker?worker"; +import MainWorker from "./worker_process/worker?worker"; import { parser_setup } from "./cmd_parser"; import "./monaco_worker"; import { compile_and_run_setup } from "./compile_and_run"; -import "@thisbeyond/solid-select/style.css"; const root = document.getElementById("root"); diff --git a/page/src/solid_xterm.tsx b/page/src/solid_xterm.tsx index 687f599..de8238c 100644 --- a/page/src/solid_xterm.tsx +++ b/page/src/solid_xterm.tsx @@ -1,4 +1,5 @@ // solid-xterm's code fork +// https://github.com/WVAviator/solid-xterm import { createEffect, createSignal, onCleanup } from "solid-js"; import { diff --git a/page/src/sysroot.ts b/page/src/sysroot.ts index b5db0c7..5566e39 100644 --- a/page/src/sysroot.ts +++ b/page/src/sysroot.ts @@ -18,6 +18,8 @@ export const triples = [ "riscv64gc-unknown-linux-musl", "s390x-unknown-linux-gnu", "sparcv9-sun-solaris", + "wasm32-unknown-emscripten", + "wasm32-unknown-unknown", "wasm32-wasip1-threads", "wasm32-wasip1", "x86_64-pc-windows-gnu", diff --git a/page/src/llvm.ts b/page/src/worker_process/llvm.ts similarity index 95% rename from page/src/llvm.ts rename to page/src/worker_process/llvm.ts index 62b362f..11e10c2 100644 --- a/page/src/llvm.ts +++ b/page/src/worker_process/llvm.ts @@ -1,6 +1,6 @@ import { SharedObject, SharedObjectRef } from "@oligami/shared-object"; import { WASIFarmAnimal } from "@oligami/browser_wasi_shim-threads"; -import type { Ctx } from "./ctx"; +import type { Ctx } from "../ctx"; const shared: SharedObject[] = []; @@ -28,7 +28,7 @@ globalThis.addEventListener("message", async (event) => { await ready_llvm_wasm(wasi_refs, ctx); }); -import { get_llvm_wasm } from "../../lib/src/get_llvm_wasm"; +import { get_llvm_wasm } from "../../../lib/src/get_llvm_wasm"; import { strace } from "@bjorn3/browser_wasi_shim"; let linker: WebAssembly.Instance & { exports: { memory: WebAssembly.Memory; _start: () => unknown }; diff --git a/page/src/rustc.ts b/page/src/worker_process/rustc.ts similarity index 95% rename from page/src/rustc.ts rename to page/src/worker_process/rustc.ts index 139c48c..c2293f1 100644 --- a/page/src/rustc.ts +++ b/page/src/worker_process/rustc.ts @@ -1,7 +1,7 @@ import { SharedObject, SharedObjectRef } from "@oligami/shared-object"; -import { get_rustc_wasm } from "../../lib/src/get_rustc_wasm"; +import { get_rustc_wasm } from "../../../lib/src/get_rustc_wasm"; import { WASIFarmAnimal } from "@oligami/browser_wasi_shim-threads"; -import type { Ctx } from "./ctx"; +import type { Ctx } from "../ctx"; import thread_spawn_path from "./thread_spawn.ts?worker&url"; diff --git a/page/src/thread_spawn.ts b/page/src/worker_process/thread_spawn.ts similarity index 100% rename from page/src/thread_spawn.ts rename to page/src/worker_process/thread_spawn.ts diff --git a/page/src/util_cmd.ts b/page/src/worker_process/util_cmd.ts similarity index 96% rename from page/src/util_cmd.ts rename to page/src/worker_process/util_cmd.ts index 9d809a9..e5dc716 100644 --- a/page/src/util_cmd.ts +++ b/page/src/worker_process/util_cmd.ts @@ -1,9 +1,9 @@ import { SharedObject, SharedObjectRef } from "@oligami/shared-object"; import { WASIFarmAnimal } from "@oligami/browser_wasi_shim-threads"; -import type { Ctx } from "./ctx"; -import lsr from "./wasm/lsr.wasm?url"; -import tre from "./wasm/tre.wasm?url"; -import { get_data } from "./cat"; +import type { Ctx } from "../ctx"; +import lsr from "../wasm/lsr.wasm?url"; +import tre from "../wasm/tre.wasm?url"; +import { get_data } from "../cat"; const shared: SharedObject[] = []; diff --git a/page/src/worker.ts b/page/src/worker_process/worker.ts similarity index 91% rename from page/src/worker.ts rename to page/src/worker_process/worker.ts index fa65fc7..09bf8bc 100644 --- a/page/src/worker.ts +++ b/page/src/worker_process/worker.ts @@ -2,8 +2,8 @@ import { SharedObject, SharedObjectRef } from "@oligami/shared-object"; import { get_default_sysroot_wasi_farm, load_additional_sysroot, -} from "../../lib/src/sysroot"; -import type { Ctx } from "./ctx"; +} from "../../../lib/src/sysroot"; +import type { Ctx } from "../ctx"; let terminal: (string) => Promise; let rustc_worker: Worker; @@ -56,8 +56,8 @@ globalThis.addEventListener("message", async (event) => { } }); -import util_cmd_worker from "./util_cmd.ts?worker"; -import run_llvm_worker from "./llvm.ts?worker"; +import util_cmd_worker from "./util_cmd?worker"; +import run_llvm_worker from "./llvm?worker"; const setup_util_worker = ( // biome-ignore lint/suspicious/noExplicitAny: