From 45b701707fcda5ec00f2965ad4c45cdfac36b5e4 Mon Sep 17 00:00:00 2001 From: sharno Date: Sun, 13 Sep 2026 09:12:26 -0400 Subject: [PATCH 01/13] feat: add Haskell support --- README.md | 2 +- docs/docs/languages/haskell.mdx | 95 +++++++++++++++ docs/src/components/LanguageSliders.tsx | 1 + docs/src/components/TemplateList.tsx | 1 + e2e/specs/starter.spec.ts | 20 +++ functions/vendors/templates.js | 3 +- scripts/build.js | 2 + server/php/inc/starter-templates.json | 3 +- src/livecodes/UI/command-menu-actions.ts | 1 + src/livecodes/assets/templates/haskell.svg | 1 + src/livecodes/html/language-info.html | 28 +++++ .../locales/en/language-info.lokalise.json | 12 ++ .../i18n/locales/en/language-info.ts | 5 + .../i18n/locales/en/translation.lokalise.json | 4 + src/livecodes/i18n/locales/en/translation.ts | 1 + .../haskell/__tests__/runner.spec.ts | 114 ++++++++++++++++++ src/livecodes/languages/haskell/index.ts | 1 + .../languages/haskell/lang-haskell-script.ts | 84 +++++++++++++ .../languages/haskell/lang-haskell-worker.ts | 90 ++++++++++++++ .../languages/haskell/lang-haskell.ts | 20 +++ src/livecodes/languages/haskell/models.ts | 12 ++ src/livecodes/languages/haskell/runner.ts | 85 +++++++++++++ src/livecodes/languages/languages.ts | 2 + src/livecodes/models.ts | 2 + .../templates/starter/haskell-starter.ts | 55 +++++++++ src/livecodes/templates/starter/index.ts | 2 + src/livecodes/vendors.ts | 12 ++ src/sdk/models.ts | 3 + storybook/_stories/EmbedOptions/template.ts | 1 + .../stories/EmbedOptions/template.stories.ts | 1 + .../stories/EmbedOptions/template.stories.ts | 1 + .../stories/EmbedOptions/template.stories.ts | 1 + .../stories/EmbedOptions/template.stories.ts | 1 + .../stories/EmbedOptions/template.stories.ts | 1 + .../stories/EmbedOptions/template.stories.ts | 1 + vendor-licenses.md | 4 + 36 files changed, 669 insertions(+), 3 deletions(-) create mode 100644 docs/docs/languages/haskell.mdx create mode 100644 src/livecodes/assets/templates/haskell.svg create mode 100644 src/livecodes/languages/haskell/__tests__/runner.spec.ts create mode 100644 src/livecodes/languages/haskell/index.ts create mode 100644 src/livecodes/languages/haskell/lang-haskell-script.ts create mode 100644 src/livecodes/languages/haskell/lang-haskell-worker.ts create mode 100644 src/livecodes/languages/haskell/lang-haskell.ts create mode 100644 src/livecodes/languages/haskell/models.ts create mode 100644 src/livecodes/languages/haskell/runner.ts create mode 100644 src/livecodes/templates/starter/haskell-starter.ts diff --git a/README.md b/README.md index fa069a694..2caaf1e9b 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,7 @@ A [feature-rich](https://livecodes.io/docs/features/), open-source, **client-sid [![LiveCodes: npm version](https://img.shields.io/npm/v/livecodes)](https://www.npmjs.com/package/livecodes) [![LiveCodes: npm downloads](https://img.shields.io/npm/dm/livecodes)](https://www.npmjs.com/package/livecodes) [![LiveCodes: jsdelivr downloads](https://data.jsdelivr.com/v1/package/npm/livecodes/badge?style=rounded)](https://www.jsdelivr.com/package/npm/livecodes) -[![LiveCodes: languages](https://img.shields.io/badge/languages-102-blue)](https://livecodes.io/docs/languages/) +[![LiveCodes: languages](https://img.shields.io/badge/languages-103-blue)](https://livecodes.io/docs/languages/) [![LiveCodes: docs](https://img.shields.io/badge/Documentation-575757?logo=gitbook&logoColor=white)](https://livecodes.io/docs/) [![LiveCodes: llms.txt](https://img.shields.io/badge/llms.txt-575757?logo=googledocs&logoColor=white)](https://livecodes.io/docs/llms.txt) [![LiveCodes: llms-full.txt](https://img.shields.io/badge/llms--full.txt-575757?logo=googledocs&logoColor=white)](https://livecodes.io/docs/llms-full.txt) diff --git a/docs/docs/languages/haskell.mdx b/docs/docs/languages/haskell.mdx new file mode 100644 index 000000000..28d5209e2 --- /dev/null +++ b/docs/docs/languages/haskell.mdx @@ -0,0 +1,95 @@ +# Haskell + +[Haskell](https://www.haskell.org/) is a statically typed, purely functional language with lazy evaluation. +LiveCodes uses [GHC in the browser](https://github.com/haskell-wasm/ghc-in-browser) to compile and run Haskell entirely client-side using WebAssembly. + +## Usage + +Write a Haskell module with a `main :: IO ()` entry point in the script editor: + +```haskell +fibs :: [Integer] +fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) + +main :: IO () +main = do + putStrLn "Hello, Haskell!" + print (take 10 fibs) +``` + +Output and compiler diagnostics appear in the console. The compiler runs in a web worker to keep the page responsive. + +import LiveCodes from '../../src/components/LiveCodes.tsx'; + + + +### Communication with JavaScript + +JavaScript in the markup editor can access `livecodes.haskell`: + +- `loaded`: a promise that resolves after the initial execution completes, or rejects if loading or execution fails. Compiler warnings do not reject it. +- `output`: the latest standard output as a string. +- `error`: the latest compiler/runtime diagnostics as a string (empty when there are none). +- `exitCode`: the exit code from the latest run (`0` for success). +- `run()`: runs the current Haskell source again and returns a promise resolving to `{ output, error, exitCode }`. Calls are queued, because GHC's interactive session cannot execute concurrently. + +For example, display the initial output in the page: + +```html +

+
+```
+
+### Limitations
+
+- The first run downloads approximately 49 MB of compressed compiler and library data, plus the WebAssembly archive extractor. Initialization can take some time.
+- This integration uses GHC 9.14.0.20251031 and the libraries bundled with that build. Installing Cabal/Hackage packages is not supported.
+- Haskell runs in a worker, without direct access to the DOM or the page's JavaScript variables.
+- Interactive standard input is not supported (stdin is empty).
+- Output is line-buffered. Compiler diagnostics and program stderr share the `error` field, including warnings.
+- Initialization has a five-minute timeout; each compilation/execution has a two-minute timeout. A timeout discards the worker, and a later run starts a new one.
+
+## Language Info
+
+### Name
+
+`haskell`
+
+### Alias
+
+`hs`
+
+### Extension
+
+`.hs`
+
+### Editor
+
+`script`
+
+### Compiler
+
+[GHC in the browser](https://github.com/haskell-wasm/ghc-in-browser)
+
+### Code Formatting
+
+Not currently supported.
+
+### Starter Template
+
+https://livecodes.io/?template=haskell
+
+### Links
+
+- [Haskell](https://www.haskell.org/)
+- [GHC documentation](https://www.haskell.org/ghc/documentation.html)
+- [GHC in the browser](https://github.com/haskell-wasm/ghc-in-browser)
diff --git a/docs/src/components/LanguageSliders.tsx b/docs/src/components/LanguageSliders.tsx
index 218b897f9..669d2bf3a 100644
--- a/docs/src/components/LanguageSliders.tsx
+++ b/docs/src/components/LanguageSliders.tsx
@@ -89,6 +89,7 @@ export default function Sliders() {
       { name: 'cpp', title: 'C++' },
       { name: 'cpp-wasm', title: 'C++ (Wasm)' },
       { name: 'rust-wasm', title: 'Rust (Wasm)' },
+      { name: 'haskell', title: 'Haskell' },
       { name: 'zig-wasm', title: 'Zig (Wasm)' },
       { name: 'java', title: 'Java' },
       { name: 'csharp-wasm', title: 'C# (Wasm)' },
diff --git a/docs/src/components/TemplateList.tsx b/docs/src/components/TemplateList.tsx
index 0cd91bbec..db721a94c 100644
--- a/docs/src/components/TemplateList.tsx
+++ b/docs/src/components/TemplateList.tsx
@@ -48,6 +48,7 @@ const templates = [
   { name: 'cpp', title: 'C++ Starter', thumbnail: 'cpp.svg' },
   { name: 'cpp-wasm', title: 'C++ (Wasm) Starter', thumbnail: 'cpp.svg' },
   { name: 'rust-wasm', title: 'Rust (Wasm) Starter', thumbnail: 'rust.svg' },
+  { name: 'haskell', title: 'Haskell Starter', thumbnail: 'haskell.svg' },
   { name: 'zig-wasm', title: 'Zig (Wasm) Starter', thumbnail: 'zig.svg' },
   { name: 'java', title: 'Java Starter', thumbnail: 'java.svg' },
   { name: 'csharp-wasm', title: 'C# (Wasm)', thumbnail: 'csharp.svg' },
diff --git a/e2e/specs/starter.spec.ts b/e2e/specs/starter.spec.ts
index 8fe814fe2..273809621 100644
--- a/e2e/specs/starter.spec.ts
+++ b/e2e/specs/starter.spec.ts
@@ -270,6 +270,26 @@ test.describe('Starter Templates from UI', () => {
     await expect(getResult().locator('text=You clicked')).toHaveText('You clicked 3 times.');
   });
 
+  test('haskell Starter', async ({ page, getTestUrl }) => {
+    test.setTimeout(480_000);
+    await page.goto(getTestUrl({ template: 'haskell' }));
+    const { getResult, waitForResultUpdate } = await getLoadedApp(page);
+    await waitForResultUpdate({ timeout: 420_000 });
+    await expect(getResult().locator('#output')).toHaveText(
+      'Hello, Haskell!\nThe first 10 Fibonacci numbers:\n[0,1,1,2,3,5,8,13,21,34]',
+      { timeout: 420_000 },
+    );
+    const run = (code: string) =>
+      getResult().evaluate(async (source) => {
+        document.querySelector('script[type="text/haskell"]')!.textContent = source;
+        return (window as any).livecodes.haskell.run();
+      }, code);
+    const failure = await run('main = missingValue');
+    expect(failure.error).toContain('missingValue');
+    const recovered = await run('main = print (sum [1..10])');
+    expect(recovered).toEqual({ output: '55\n', error: '', exitCode: 0 });
+  });
+
   test('d3 Starter', async ({ page, getTestUrl, editor }) => {
     test.slow();
 
diff --git a/functions/vendors/templates.js b/functions/vendors/templates.js
index 4e7b01a08..b0e4149fd 100644
--- a/functions/vendors/templates.js
+++ b/functions/vendors/templates.js
@@ -47,6 +47,7 @@ export const starterTemplates = {
   "cpp": "C++ Starter",
   "cpp-wasm": "C++ (Wasm) Starter",
   "rust-wasm": "Rust (Wasm) Starter",
+  "haskell": "Haskell Starter",
   "zig-wasm": "Zig (Wasm) Starter",
   "java": "Java Starter",
   "csharp-wasm": "C# (Wasm) Starter",
@@ -72,4 +73,4 @@ export const starterTemplates = {
   "minizinc": "MiniZinc Starter",
   "blockly": "Blockly Starter",
   "diagrams": "Diagrams Starter"
-}
\ No newline at end of file
+}
diff --git a/scripts/build.js b/scripts/build.js
index 9baae3708..92c84814a 100644
--- a/scripts/build.js
+++ b/scripts/build.js
@@ -237,6 +237,8 @@ const iifeBuild = () =>
       'languages/fsharp/lang-fsharp-compiler.ts',
       'languages/fsharp-wasm/lang-fsharp-wasm-script.ts',
       'languages/haml/lang-haml-compiler.ts',
+      'languages/haskell/lang-haskell-script.ts',
+      'languages/haskell/lang-haskell-worker.ts',
       'languages/handlebars/lang-handlebars-compiler.ts',
       'languages/imba/lang-imba-compiler.ts',
       'languages/jinja/lang-jinja-compiler.ts',
diff --git a/server/php/inc/starter-templates.json b/server/php/inc/starter-templates.json
index 230756f39..504a2fe3d 100644
--- a/server/php/inc/starter-templates.json
+++ b/server/php/inc/starter-templates.json
@@ -47,6 +47,7 @@
   "cpp": "C++ Starter",
   "cpp-wasm": "C++ (Wasm) Starter",
   "rust-wasm": "Rust (Wasm) Starter",
+  "haskell": "Haskell Starter",
   "zig-wasm": "Zig (Wasm) Starter",
   "java": "Java Starter",
   "csharp-wasm": "C# (Wasm) Starter",
@@ -72,4 +73,4 @@
   "minizinc": "MiniZinc Starter",
   "blockly": "Blockly Starter",
   "diagrams": "Diagrams Starter"
-}
\ No newline at end of file
+}
diff --git a/src/livecodes/UI/command-menu-actions.ts b/src/livecodes/UI/command-menu-actions.ts
index fdd62f649..4e76dfa06 100644
--- a/src/livecodes/UI/command-menu-actions.ts
+++ b/src/livecodes/UI/command-menu-actions.ts
@@ -303,6 +303,7 @@ export const getCommandMenuActions = ({
         'cpp',
         'cpp-wasm',
         'rust-wasm',
+        'haskell',
         'zig-wasm',
         'java',
         'csharp-wasm',
diff --git a/src/livecodes/assets/templates/haskell.svg b/src/livecodes/assets/templates/haskell.svg
new file mode 100644
index 000000000..2b993f1aa
--- /dev/null
+++ b/src/livecodes/assets/templates/haskell.svg
@@ -0,0 +1 @@
+
diff --git a/src/livecodes/html/language-info.html b/src/livecodes/html/language-info.html
index a32dd9146..945ae26dd 100644
--- a/src/livecodes/html/language-info.html
+++ b/src/livecodes/html/language-info.html
@@ -1137,6 +1137,34 @@ 

Nunjucks

+
+

Haskell

+
+

+ Haskell is a statically typed, purely functional programming language with lazy evaluation. +

+

LiveCodes runs GHC in the browser using WebAssembly.

+
+ +
+

Rust (Wasm)

diff --git a/src/livecodes/i18n/locales/en/language-info.lokalise.json b/src/livecodes/i18n/locales/en/language-info.lokalise.json index 8db6f3dc8..28099fd7c 100644 --- a/src/livecodes/i18n/locales/en/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/en/language-info.lokalise.json @@ -360,6 +360,18 @@ "notes": "", "translation": "Handlebars" }, + "haskell.desc": { + "notes": "### ###\n

\n\n### ###\n

\n\n", + "translation": " Haskell is a statically typed, purely functional programming language with lazy evaluation. LiveCodes runs GHC in the browser using WebAssembly." + }, + "haskell.link": { + "notes": "### ###\n

  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n", + "translation": "Haskell GHC in the browser Haskell in LiveCodes Starter Template " + }, + "haskell.name": { + "notes": "", + "translation": "Haskell" + }, "imba.desc": { "notes": "", "translation": "The friendly full-stack language." diff --git a/src/livecodes/i18n/locales/en/language-info.ts b/src/livecodes/i18n/locales/en/language-info.ts index d273855ed..5f44b424c 100644 --- a/src/livecodes/i18n/locales/en/language-info.ts +++ b/src/livecodes/i18n/locales/en/language-info.ts @@ -161,6 +161,11 @@ const languageInfo = { link: '<1><2>Official website <3> <4>LiveCodes Documentations ', name: 'Handlebars', }, + haskell: { + desc: '<1> Haskell is a statically typed, purely functional programming language with lazy evaluation. <2>LiveCodes runs GHC in the browser using WebAssembly.', + link: '<1><2>Haskell <3> <4>GHC in the browser <5> <6>Haskell in LiveCodes <7> <8>Starter Template ', + name: 'Haskell', + }, imba: { desc: 'The friendly full-stack language.', link: '<1><2>Official website', diff --git a/src/livecodes/i18n/locales/en/translation.lokalise.json b/src/livecodes/i18n/locales/en/translation.lokalise.json index ab7991964..af0ab9632 100644 --- a/src/livecodes/i18n/locales/en/translation.lokalise.json +++ b/src/livecodes/i18n/locales/en/translation.lokalise.json @@ -2640,6 +2640,10 @@ "notes": "", "translation": "Go (Wasm) Starter" }, + "templates.starter.haskell": { + "notes": "", + "translation": "Haskell Starter" + }, "templates.starter.heading": { "notes": "", "translation": "Starter Templates" diff --git a/src/livecodes/i18n/locales/en/translation.ts b/src/livecodes/i18n/locales/en/translation.ts index 3786a4b68..e1d5fc38d 100644 --- a/src/livecodes/i18n/locales/en/translation.ts +++ b/src/livecodes/i18n/locales/en/translation.ts @@ -1006,6 +1006,7 @@ const translation = { gleam: 'Gleam Starter', go: 'Go Starter', 'go-wasm': 'Go (Wasm) Starter', + haskell: 'Haskell Starter', heading: 'Starter Templates', imba: 'Imba Starter', java: 'Java Starter', diff --git a/src/livecodes/languages/haskell/__tests__/runner.spec.ts b/src/livecodes/languages/haskell/__tests__/runner.spec.ts new file mode 100644 index 000000000..b9dfa9e31 --- /dev/null +++ b/src/livecodes/languages/haskell/__tests__/runner.spec.ts @@ -0,0 +1,114 @@ +import type { HaskellResponse } from '../models'; +import { createHaskellRunner } from '../runner'; + +describe('Haskell runner', () => { + const setup = () => { + const workers: Worker[] = []; + const createWorker = jest.fn(() => { + const worker = { + postMessage: jest.fn(), + terminate: jest.fn(), + onmessage: null, + onerror: null, + } as unknown as Worker; + workers.push(worker); + return worker; + }); + const respond = (data: HaskellResponse) => { + const worker = workers[workers.length - 1]; + worker.onmessage!.call(worker, { data } as MessageEvent); + }; + return { runner: createHaskellRunner(createWorker), workers, respond, createWorker }; + }; + + beforeEach(() => jest.useFakeTimers()); + afterEach(() => jest.useRealTimers()); + + test('rejects stalled initialization and allows retry', async () => { + const { runner, workers, respond } = setup(); + const init = runner.init(); + const rejection = expect(init).rejects.toThrow('timed out'); + jest.advanceTimersByTime(300_000); + await rejection; + expect(workers[0].terminate).toHaveBeenCalledTimes(1); + const retry = runner.init(); + respond({ type: 'ready' }); + await retry; + expect(workers).toHaveLength(2); + expect(jest.getTimerCount()).toBe(0); + }); + + test('settles initialization errors and starts a fresh worker', async () => { + const { runner, workers, respond } = setup(); + const init = runner.init(); + respond({ type: 'error', message: 'Download failed' }); + await expect(init).rejects.toThrow('Download failed'); + expect(workers[0].terminate).toHaveBeenCalledTimes(1); + const retry = runner.init(); + respond({ type: 'ready' }); + await retry; + expect(workers).toHaveLength(2); + }); + + test('serializes executions and preserves stdout and diagnostics', async () => { + const { runner, workers, respond } = setup(); + const init = runner.init(); + respond({ type: 'ready' }); + await init; + const first = runner.run('main = print 1'); + const second = runner.run('main = print 2'); + await Promise.resolve(); + await Promise.resolve(); + expect(workers[0].postMessage).toHaveBeenCalledTimes(2); + respond({ type: 'result', result: { output: '1\n', error: 'warning', exitCode: 0 } }); + await expect(first).resolves.toEqual({ output: '1\n', error: 'warning', exitCode: 0 }); + await Promise.resolve(); + expect(workers[0].postMessage).toHaveBeenLastCalledWith({ + type: 'run', + code: 'main = print 2', + }); + respond({ type: 'result', result: { output: '2\n', error: '', exitCode: 0 } }); + await expect(second).resolves.toEqual({ output: '2\n', error: '', exitCode: 0 }); + expect(jest.getTimerCount()).toBe(0); + }); + + test('keeps the worker alive after a Haskell error', async () => { + jest.useRealTimers(); + const { runner, workers, respond } = setup(); + const init = runner.init(); + respond({ type: 'ready' }); + await init; + const failure = runner.run('main = missingValue'); + await new Promise((resolve) => setTimeout(resolve, 0)); + respond({ type: 'result', result: { output: '', error: 'missingValue', exitCode: 1 } }); + await expect(failure).resolves.toEqual({ output: '', error: 'missingValue', exitCode: 1 }); + const retry = runner.run('main = print 42'); + await new Promise((resolve) => setTimeout(resolve, 0)); + respond({ type: 'result', result: { output: '42\n', error: '', exitCode: 0 } }); + await expect(retry).resolves.toEqual({ output: '42\n', error: '', exitCode: 0 }); + expect(workers).toHaveLength(1); + }); + + test('rejects a timed-out run and recovers on the next run', async () => { + const { runner, workers, respond } = setup(); + const init = runner.init(); + respond({ type: 'ready' }); + await init; + const first = runner.run('main = main'); + const rejection = expect(first).rejects.toThrow('timed out'); + await Promise.resolve(); + await Promise.resolve(); + jest.advanceTimersByTime(120_000); + await rejection; + expect(workers[0].terminate).toHaveBeenCalledTimes(1); + const retry = runner.run('main = print 42'); + await Promise.resolve(); + respond({ type: 'ready' }); + await Promise.resolve(); + await Promise.resolve(); + await Promise.resolve(); + respond({ type: 'result', result: { output: '42\n', error: '', exitCode: 0 } }); + await expect(retry).resolves.toEqual({ output: '42\n', error: '', exitCode: 0 }); + expect(workers).toHaveLength(2); + }); +}); diff --git a/src/livecodes/languages/haskell/index.ts b/src/livecodes/languages/haskell/index.ts new file mode 100644 index 000000000..255bbeaef --- /dev/null +++ b/src/livecodes/languages/haskell/index.ts @@ -0,0 +1 @@ +export * from './lang-haskell'; diff --git a/src/livecodes/languages/haskell/lang-haskell-script.ts b/src/livecodes/languages/haskell/lang-haskell-script.ts new file mode 100644 index 000000000..bd2020561 --- /dev/null +++ b/src/livecodes/languages/haskell/lang-haskell-script.ts @@ -0,0 +1,84 @@ +import { getErrorMessage } from '../../utils'; +import type { HaskellResult } from './models'; +import { createHaskellRunner } from './runner'; + +declare const window: Window & { + livecodes: { + haskell: { + loaded?: Promise; + output?: string; + error?: string; + exitCode?: number; + run?: () => Promise; + runner?: ReturnType; + }; + }; +}; + +const workerUrl = new URL( + '{{hash:lang-haskell-worker.js}}', + (document.currentScript as HTMLScriptElement).src, +).href; +window.livecodes.haskell ??= {}; +const haskell = window.livecodes.haskell; +haskell.runner ??= createHaskellRunner(() => { + const url = URL.createObjectURL( + new Blob([`importScripts(${JSON.stringify(workerUrl)});`], { type: 'text/javascript' }), + ); + try { + return new Worker(url); + } finally { + URL.revokeObjectURL(url); + } +}); + +haskell.run = async () => { + const code = Array.from(document.querySelectorAll('script[type="text/haskell"]')) + .map((script) => script.textContent) + .join('\n'); + if (!code.trim()) { + haskell.output = ''; + haskell.error = ''; + haskell.exitCode = 0; + return { output: '', error: '', exitCode: 0 }; + } + parent.postMessage({ type: 'loading', payload: true }, '*'); + try { + const result = await haskell.runner!.run(code); + haskell.output = result.output; + haskell.error = result.error; + haskell.exitCode = result.exitCode; + if (result.output) { + // eslint-disable-next-line no-console + console.log(result.output); + } + if (result.error) { + // eslint-disable-next-line no-console + console.error(result.error); + } + return result; + } catch (err) { + haskell.output = ''; + haskell.error = getErrorMessage(err); + haskell.exitCode = 1; + // eslint-disable-next-line no-console + console.error(haskell.error); + return { output: '', error: haskell.error, exitCode: 1 }; + } finally { + parent.postMessage({ type: 'loading', payload: false }, '*'); + } +}; + +haskell.loaded = new Promise((resolve, reject) => { + window.addEventListener( + 'load', + async () => { + const result = await haskell.run!(); + if (result.exitCode !== 0) reject(new Error(result.error)); + else resolve(); + }, + { once: true }, + ); +}); +// Diagnostics are already displayed in the console when no consumer awaits loaded. +haskell.loaded.catch(() => undefined); diff --git a/src/livecodes/languages/haskell/lang-haskell-worker.ts b/src/livecodes/languages/haskell/lang-haskell-worker.ts new file mode 100644 index 000000000..c99cbefca --- /dev/null +++ b/src/livecodes/languages/haskell/lang-haskell-worker.ts @@ -0,0 +1,90 @@ +import { getErrorMessage, handleFetchError } from '../../utils/utils'; +import { bsdtarWasmUrl, ghcBrowserBaseUrl, ghcRootfsUrl, haskellWasiShimUrl } from '../../vendors'; +import type { HaskellRequest, HaskellResponse } from './models'; + +let run: ((args: string, source: string) => Promise) | undefined; +let output = ''; +let error = ''; + +const reply = (message: HaskellResponse) => self.postMessage(message); + +const init = async () => { + const [{ ConsoleStdout, File, OpenFile, PreopenDirectory, WASI }, { DyLDBrowserHost, main }] = + await Promise.all([import(haskellWasiShimUrl), import(ghcBrowserBaseUrl + 'dyld.mjs')]); + const rootfs = new PreopenDirectory('/', []); + const wasi = new WASI( + ['bsdtar.wasm', '-x'], + [], + [ + new OpenFile(new File(new Uint8Array(), { readonly: true })), + ConsoleStdout.lineBuffered(() => undefined), + ConsoleStdout.lineBuffered((message: string) => { + error += message + '\n'; + }), + rootfs, + ], + { debug: false }, + ); + const [wasm, archive] = await Promise.all([ + fetch(bsdtarWasmUrl) + .then(handleFetchError) + .then((res) => res.arrayBuffer()), + fetch(ghcRootfsUrl) + .then(handleFetchError) + .then((res) => res.arrayBuffer()), + ]); + const { instance } = await WebAssembly.instantiate(wasm, { + wasi_snapshot_preview1: wasi.wasiImport, + }); + wasi.fds[0] = new OpenFile(new File(new Uint8Array(archive), { readonly: true })); + if (wasi.start(instance) !== 0) throw new Error(error); + + const dyld = await main({ + rpc: new DyLDBrowserHost({ + rootfs, + stdout: (message: string) => { + output += message + '\n'; + }, + stderr: (message: string) => { + error += message + '\n'; + }, + }), + searchDirs: ['/tmp/clib', '/tmp/hslib/lib/wasm32-wasi-ghc-9.14.0.20251031-inplace'], + mainSoPath: '/tmp/libplayground001.so', + args: ['libplayground001.so', '+RTS', '-c', '-RTS'], + isIserv: false, + }); + run = await dyld.exportFuncs.myMain('/tmp/hslib/lib'); +}; + +self.onmessage = async ({ data }: MessageEvent) => { + if (data.type === 'init') { + try { + await init(); + reply({ type: 'ready' }); + } catch (err) { + reply({ + type: 'error', + message: [error.trim(), getErrorMessage(err)].filter(Boolean).join('\n'), + }); + } + return; + } + + try { + if (!run) throw new Error('Haskell runtime is not initialized.'); + output = ''; + error = ''; + await run('-v0', data.code); + reply({ type: 'result', result: { output, error, exitCode: 0 } }); + } catch (err) { + reply({ + type: 'result', + result: { + output, + error: [error.trim(), getErrorMessage(err)].filter(Boolean).join('\n'), + exitCode: 1, + }, + }); + } +}; diff --git a/src/livecodes/languages/haskell/lang-haskell.ts b/src/livecodes/languages/haskell/lang-haskell.ts new file mode 100644 index 000000000..e6561f571 --- /dev/null +++ b/src/livecodes/languages/haskell/lang-haskell.ts @@ -0,0 +1,20 @@ +import type { LanguageSpecs } from '../../models'; +import { monacoLanguagesBaseUrl } from '../../vendors'; + +export const haskell: LanguageSpecs = { + name: 'haskell', + title: 'Haskell', + compiler: { + factory: () => async (code) => code, + scripts: ({ baseUrl }) => [baseUrl + '{{hash:lang-haskell-script.js}}'], + scriptType: 'text/haskell', + compiledCodeLanguage: 'haskell', + liveReload: true, + }, + extensions: ['hs'], + editor: 'script', + editorSupport: { + monaco: { languageSupport: monacoLanguagesBaseUrl + 'haskell.js', language: 'haskell' }, + }, + largeDownload: true, +}; diff --git a/src/livecodes/languages/haskell/models.ts b/src/livecodes/languages/haskell/models.ts new file mode 100644 index 000000000..805cdd693 --- /dev/null +++ b/src/livecodes/languages/haskell/models.ts @@ -0,0 +1,12 @@ +export interface HaskellResult { + output: string; + error: string; + exitCode: number; +} + +export type HaskellRequest = { type: 'init' } | { type: 'run'; code: string }; + +export type HaskellResponse = + | { type: 'ready' } + | { type: 'result'; result: HaskellResult } + | { type: 'error'; message: string }; diff --git a/src/livecodes/languages/haskell/runner.ts b/src/livecodes/languages/haskell/runner.ts new file mode 100644 index 000000000..cd39aa4e0 --- /dev/null +++ b/src/livecodes/languages/haskell/runner.ts @@ -0,0 +1,85 @@ +import type { HaskellRequest, HaskellResponse, HaskellResult } from './models'; + +// GHC and its libraries are downloaded on first use (~49 MB compressed). +const BOOT_TIMEOUT_MS = 300_000; +const RUN_TIMEOUT_MS = 120_000; + +export const createHaskellRunner = (createWorker: () => Worker) => { + let worker: Worker | undefined; + let ready: Promise | undefined; + let pending: + | { + resolve: (response: HaskellResponse) => void; + reject: (error: Error) => void; + timer: ReturnType; + } + | undefined; + let queue: Promise = Promise.resolve(); + + const fail = (error: Error) => { + worker?.terminate(); + worker = undefined; + ready = undefined; + if (pending) { + clearTimeout(pending.timer); + pending.reject(error); + pending = undefined; + } + }; + + const request = (message: HaskellRequest, timeout: number) => + new Promise((resolve, reject) => { + pending = { + resolve, + reject, + timer: setTimeout(() => fail(new Error('Haskell execution timed out.')), timeout), + }; + try { + worker!.postMessage(message); + } catch (err) { + fail(err as Error); + } + }); + + const init = (): Promise => { + if (ready) return ready; + try { + worker = createWorker(); + worker.onerror = (event) => fail(new Error(event.message)); + worker.onmessageerror = () => fail(new Error('Invalid Haskell worker response.')); + worker.onmessage = ({ data }: MessageEvent) => { + if (data.type === 'error') { + fail(new Error(data.message)); + return; + } + if (!pending) return; + clearTimeout(pending.timer); + pending.resolve(data); + pending = undefined; + }; + ready = request({ type: 'init' }, BOOT_TIMEOUT_MS) + .then(() => undefined) + .catch((err) => { + ready = undefined; + throw err; + }); + return ready; + } catch (err) { + return Promise.reject(err); + } + }; + + const run = (code: string): Promise => { + const result = queue.then(async () => { + await init(); + const response = await request({ type: 'run', code }, RUN_TIMEOUT_MS); + if (response.type !== 'result') throw new Error('Invalid Haskell worker response.'); + return response.result; + }); + // GHC's interactive session must not be entered concurrently. + queue = result.catch(() => undefined); + return result; + }; + + return { init, run }; +}; diff --git a/src/livecodes/languages/languages.ts b/src/livecodes/languages/languages.ts index 7ae04b272..8ab045d53 100644 --- a/src/livecodes/languages/languages.ts +++ b/src/livecodes/languages/languages.ts @@ -28,6 +28,7 @@ import { go } from './go'; import { goWasm } from './go-wasm'; import { haml } from './haml'; import { handlebars } from './handlebars'; +import { haskell } from './haskell'; import { html } from './html'; import { imba } from './imba'; import { java } from './java'; @@ -155,6 +156,7 @@ export const languages: LanguageSpecs[] = [ cpp, cppWasm, rustWasm, + haskell, zigWasm, java, csharpWasm, diff --git a/src/livecodes/models.ts b/src/livecodes/models.ts index d22c84c47..1cd982ebe 100644 --- a/src/livecodes/models.ts +++ b/src/livecodes/models.ts @@ -195,6 +195,7 @@ export interface Compiler { | 'text/php-wasm' | 'text/cpp' | 'text/rust-wasm' + | 'text/haskell' | 'text/zig-wasm' | 'text/java' | 'text/csharp-wasm' @@ -251,6 +252,7 @@ export type TemplateAlias = | 'fs-wasm' | 'rust' | 'rs' + | 'hs' | 'pl' | 'lisp' | 'cljs' diff --git a/src/livecodes/templates/starter/haskell-starter.ts b/src/livecodes/templates/starter/haskell-starter.ts new file mode 100644 index 000000000..6647780ac --- /dev/null +++ b/src/livecodes/templates/starter/haskell-starter.ts @@ -0,0 +1,55 @@ +import type { Template } from '../../models'; + +export const haskellStarter: Template = { + name: 'haskell', + aliases: ['hs'], + title: window.deps.translateString('templates.starter.haskell', 'Haskell Starter'), + thumbnail: 'assets/templates/haskell.svg', + activeEditor: 'script', + markup: { + language: 'html', + content: `

    Haskell in the browser

    +
    Loading GHC...
    + + +`, + }, + style: { + language: 'css', + content: `body { + font-family: system-ui, sans-serif; + padding: 2rem; + color: #453a62; +} + +pre { + padding: 1rem; + background: #f4f1f8; + white-space: pre-wrap; +} +`, + }, + script: { + language: 'haskell', + content: `-- A lazy, infinite list of Fibonacci numbers. +fibs :: [Integer] +fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) + +main :: IO () +main = do + putStrLn "Hello, Haskell!" + putStrLn "The first 10 Fibonacci numbers:" + print (take 10 fibs) +`, + }, +}; diff --git a/src/livecodes/templates/starter/index.ts b/src/livecodes/templates/starter/index.ts index dd6711e6c..5ab932d0a 100644 --- a/src/livecodes/templates/starter/index.ts +++ b/src/livecodes/templates/starter/index.ts @@ -24,6 +24,7 @@ import { fsharpWasmStarter } from './fsharp-wasm-starter'; import { gleamStarter } from './gleam-starter'; import { goStarter } from './go-starter'; import { goWasmStarter } from './go-wasm-starter'; +import { haskellStarter } from './haskell-starter'; import { imbaStarter } from './imba-starter'; import { javaStarter } from './java-starter'; import { javascriptStarter } from './javascript-starter'; @@ -123,6 +124,7 @@ export const starterTemplates = [ cppStarter, cppWasmStarter, rustWasmStarter, + haskellStarter, zigWasmStarter, javaStarter, csharpWasmStarter, diff --git a/src/livecodes/vendors.ts b/src/livecodes/vendors.ts index 1556615cf..3ff336717 100644 --- a/src/livecodes/vendors.ts +++ b/src/livecodes/vendors.ts @@ -438,6 +438,18 @@ export const rustWasmUrl = /* @__PURE__ */ getUrl( ); export const wasmRustcBaseUrl = /* @__PURE__ */ getUrl('@live-codes/wasm-rustc@0.2.0/'); +export const ghcBrowserBaseUrl = /* @__PURE__ */ getUrl( + 'https://cdn.jsdelivr.net/gh/haskell-wasm/ghc-in-browser@c57d8b6e37737d662aed05cab88f867918307053/', +); +export const ghcRootfsUrl = /* @__PURE__ */ getUrl( + 'https://raw.githubusercontent.com/haskell-wasm/ghc-in-browser/c57d8b6e37737d662aed05cab88f867918307053/rootfs.tar.zst', +); +export const bsdtarWasmUrl = /* @__PURE__ */ getUrl( + 'https://haskell-wasm.github.io/bsdtar-wasm/bsdtar.wasm', +); +export const haskellWasiShimUrl = /* @__PURE__ */ getUrl( + 'https://esm.sh/gh/haskell-wasm/browser_wasi_shim@2f86b49dce50916e2984029c535321e34b234229', +); export const snackbarUrl = /* @__PURE__ */ getUrl('@snackbar/core@1.7.0/dist/snackbar.css'); export const spacingJsUrl = /* @__PURE__ */ getUrl('spacingjs@1.0.7/dist/bundle.js'); diff --git a/src/sdk/models.ts b/src/sdk/models.ts index 3fbce38be..5511a91ca 100644 --- a/src/sdk/models.ts +++ b/src/sdk/models.ts @@ -193,6 +193,8 @@ export type Language = | 'rust-wasm' | 'rs-wasm' | 'wasm.rs' + | 'haskell' + | 'hs' | 'perl' | 'pl' | 'pm' @@ -414,6 +416,7 @@ export type TemplateName = | 'fsharp-wasm' | 'rust-wasm' | 'zig-wasm' + | 'haskell' | 'perl' | 'lua' | 'lua-wasm' diff --git a/storybook/_stories/EmbedOptions/template.ts b/storybook/_stories/EmbedOptions/template.ts index 2f6d51305..ca55f99f4 100644 --- a/storybook/_stories/EmbedOptions/template.ts +++ b/storybook/_stories/EmbedOptions/template.ts @@ -48,6 +48,7 @@ const storyDef: StoryDef = { Cpp: { props: { template: 'cpp' } }, CppWasm: { props: { template: 'cpp-wasm' } }, RustWasm: { props: { template: 'rust-wasm' } }, + Haskell: { props: { template: 'haskell' } }, ZigWasm: { props: { template: 'zig-wasm' } }, Java: { props: { template: 'java' } }, CSharpWasm: { props: { template: 'csharp-wasm' } }, diff --git a/storybook/preact/stories/EmbedOptions/template.stories.ts b/storybook/preact/stories/EmbedOptions/template.stories.ts index dc5973001..c0d3f5b8b 100644 --- a/storybook/preact/stories/EmbedOptions/template.stories.ts +++ b/storybook/preact/stories/EmbedOptions/template.stories.ts @@ -61,6 +61,7 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' }); PHPWasm.storyName = 'PHP Wasm'; export const Cpp = livecodesStory({ template: 'cpp' }); export const CppWasm = livecodesStory({ template: 'cpp-wasm' }); +export const Haskell = livecodesStory({ template: 'haskell' }); export const Java = livecodesStory({ template: 'java' }); export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); diff --git a/storybook/react/stories/EmbedOptions/template.stories.ts b/storybook/react/stories/EmbedOptions/template.stories.ts index dc5973001..c0d3f5b8b 100644 --- a/storybook/react/stories/EmbedOptions/template.stories.ts +++ b/storybook/react/stories/EmbedOptions/template.stories.ts @@ -61,6 +61,7 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' }); PHPWasm.storyName = 'PHP Wasm'; export const Cpp = livecodesStory({ template: 'cpp' }); export const CppWasm = livecodesStory({ template: 'cpp-wasm' }); +export const Haskell = livecodesStory({ template: 'haskell' }); export const Java = livecodesStory({ template: 'java' }); export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); diff --git a/storybook/solid/stories/EmbedOptions/template.stories.ts b/storybook/solid/stories/EmbedOptions/template.stories.ts index dc5973001..c0d3f5b8b 100644 --- a/storybook/solid/stories/EmbedOptions/template.stories.ts +++ b/storybook/solid/stories/EmbedOptions/template.stories.ts @@ -61,6 +61,7 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' }); PHPWasm.storyName = 'PHP Wasm'; export const Cpp = livecodesStory({ template: 'cpp' }); export const CppWasm = livecodesStory({ template: 'cpp-wasm' }); +export const Haskell = livecodesStory({ template: 'haskell' }); export const Java = livecodesStory({ template: 'java' }); export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); diff --git a/storybook/svelte/stories/EmbedOptions/template.stories.ts b/storybook/svelte/stories/EmbedOptions/template.stories.ts index dc5973001..c0d3f5b8b 100644 --- a/storybook/svelte/stories/EmbedOptions/template.stories.ts +++ b/storybook/svelte/stories/EmbedOptions/template.stories.ts @@ -61,6 +61,7 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' }); PHPWasm.storyName = 'PHP Wasm'; export const Cpp = livecodesStory({ template: 'cpp' }); export const CppWasm = livecodesStory({ template: 'cpp-wasm' }); +export const Haskell = livecodesStory({ template: 'haskell' }); export const Java = livecodesStory({ template: 'java' }); export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); diff --git a/storybook/vue/stories/EmbedOptions/template.stories.ts b/storybook/vue/stories/EmbedOptions/template.stories.ts index dc5973001..c0d3f5b8b 100644 --- a/storybook/vue/stories/EmbedOptions/template.stories.ts +++ b/storybook/vue/stories/EmbedOptions/template.stories.ts @@ -61,6 +61,7 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' }); PHPWasm.storyName = 'PHP Wasm'; export const Cpp = livecodesStory({ template: 'cpp' }); export const CppWasm = livecodesStory({ template: 'cpp-wasm' }); +export const Haskell = livecodesStory({ template: 'haskell' }); export const Java = livecodesStory({ template: 'java' }); export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); diff --git a/storybook/web-components/stories/EmbedOptions/template.stories.ts b/storybook/web-components/stories/EmbedOptions/template.stories.ts index dc5973001..c0d3f5b8b 100644 --- a/storybook/web-components/stories/EmbedOptions/template.stories.ts +++ b/storybook/web-components/stories/EmbedOptions/template.stories.ts @@ -61,6 +61,7 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' }); PHPWasm.storyName = 'PHP Wasm'; export const Cpp = livecodesStory({ template: 'cpp' }); export const CppWasm = livecodesStory({ template: 'cpp-wasm' }); +export const Haskell = livecodesStory({ template: 'haskell' }); export const Java = livecodesStory({ template: 'java' }); export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); diff --git a/vendor-licenses.md b/vendor-licenses.md index faae2c537..7cc6f7834 100644 --- a/vendor-licenses.md +++ b/vendor-licenses.md @@ -32,6 +32,10 @@ browser_wasi_shim: [MIT License](https://github.com/bjorn3/browser_wasi_shim/blo BrowserFS: [MIT License](https://github.com/jvilk/BrowserFS/blob/76fd5122fcf3ad6bff3315550aafb041cfb6a72e/license.md) +bsdtar-wasm: [BSD licenses](https://github.com/haskell-wasm/bsdtar-wasm/blob/master/LICENSE) + +GHC: [BSD-3-Clause and bundled component licenses](https://gitlab.haskell.org/ghc/ghc/-/blob/master/LICENSE) + brython: [BSD-3-Clause license](https://github.com/brython-dev/brython/blob/c579e26d7e24c37c77f00fc345af0248ca6be8eb/LICENCE.txt) chai: [MIT License](https://github.com/chaijs/chai/blob/1a8247f30dbe0f54268a9748ae673caec75d6bfe/LICENSE) From 774a710669687fe9e0fc8e1e8b6458f03754e93d Mon Sep 17 00:00:00 2001 From: sharno Date: Sun, 13 Sep 2026 09:19:31 -0400 Subject: [PATCH 02/13] fix: address Haskell security findings --- .../languages/haskell/lang-haskell-script.ts | 7 +++++-- .../languages/haskell/lang-haskell-worker.ts | 11 ++++++++--- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/livecodes/languages/haskell/lang-haskell-script.ts b/src/livecodes/languages/haskell/lang-haskell-script.ts index bd2020561..9e75c37b5 100644 --- a/src/livecodes/languages/haskell/lang-haskell-script.ts +++ b/src/livecodes/languages/haskell/lang-haskell-script.ts @@ -19,6 +19,9 @@ const workerUrl = new URL( '{{hash:lang-haskell-worker.js}}', (document.currentScript as HTMLScriptElement).src, ).href; +const parentOrigin = + window.location.ancestorOrigins?.[0] || + (document.referrer ? new URL(document.referrer).origin : window.location.origin); window.livecodes.haskell ??= {}; const haskell = window.livecodes.haskell; haskell.runner ??= createHaskellRunner(() => { @@ -42,7 +45,7 @@ haskell.run = async () => { haskell.exitCode = 0; return { output: '', error: '', exitCode: 0 }; } - parent.postMessage({ type: 'loading', payload: true }, '*'); + parent.postMessage({ type: 'loading', payload: true }, parentOrigin); try { const result = await haskell.runner!.run(code); haskell.output = result.output; @@ -65,7 +68,7 @@ haskell.run = async () => { console.error(haskell.error); return { output: '', error: haskell.error, exitCode: 1 }; } finally { - parent.postMessage({ type: 'loading', payload: false }, '*'); + parent.postMessage({ type: 'loading', payload: false }, parentOrigin); } }; diff --git a/src/livecodes/languages/haskell/lang-haskell-worker.ts b/src/livecodes/languages/haskell/lang-haskell-worker.ts index c99cbefca..3918d7597 100644 --- a/src/livecodes/languages/haskell/lang-haskell-worker.ts +++ b/src/livecodes/languages/haskell/lang-haskell-worker.ts @@ -7,6 +7,8 @@ let output = ''; let error = ''; const reply = (message: HaskellResponse) => self.postMessage(message); +// GHC runs against an in-memory WASI filesystem; these are not host /tmp paths. +const ghcRuntimeDirectory = '/tmp'; // NOSONAR const init = async () => { const [{ ConsoleStdout, File, OpenFile, PreopenDirectory, WASI }, { DyLDBrowserHost, main }] = @@ -49,12 +51,15 @@ const init = async () => { error += message + '\n'; }, }), - searchDirs: ['/tmp/clib', '/tmp/hslib/lib/wasm32-wasi-ghc-9.14.0.20251031-inplace'], - mainSoPath: '/tmp/libplayground001.so', + searchDirs: [ + `${ghcRuntimeDirectory}/clib`, + `${ghcRuntimeDirectory}/hslib/lib/wasm32-wasi-ghc-9.14.0.20251031-inplace`, + ], + mainSoPath: `${ghcRuntimeDirectory}/libplayground001.so`, args: ['libplayground001.so', '+RTS', '-c', '-RTS'], isIserv: false, }); - run = await dyld.exportFuncs.myMain('/tmp/hslib/lib'); + run = await dyld.exportFuncs.myMain(`${ghcRuntimeDirectory}/hslib/lib`); }; self.onmessage = async ({ data }: MessageEvent) => { From e0f57ee68540869da9050029f3b4fddc1ebf2b08 Mon Sep 17 00:00:00 2001 From: sharno Date: Sun, 13 Sep 2026 09:23:20 -0400 Subject: [PATCH 03/13] docs: document Haskell runner --- src/livecodes/languages/haskell/runner.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/livecodes/languages/haskell/runner.ts b/src/livecodes/languages/haskell/runner.ts index cd39aa4e0..da1072d32 100644 --- a/src/livecodes/languages/haskell/runner.ts +++ b/src/livecodes/languages/haskell/runner.ts @@ -4,6 +4,7 @@ import type { HaskellRequest, HaskellResponse, HaskellResult } from './models'; const BOOT_TIMEOUT_MS = 300_000; const RUN_TIMEOUT_MS = 120_000; +/** Creates a serialized GHC worker runner that recovers after boot or execution failures. */ export const createHaskellRunner = (createWorker: () => Worker) => { let worker: Worker | undefined; let ready: Promise | undefined; From 7bc76830315c4b8f7cfe429f4a9c343abae11c2e Mon Sep 17 00:00:00 2001 From: sharno Date: Sun, 13 Sep 2026 09:28:10 -0400 Subject: [PATCH 04/13] fix: address Haskell review findings --- .../i18n/locales/en/translation.lokalise.json | 8 +++++++ src/livecodes/i18n/locales/en/translation.ts | 4 ++++ .../languages/haskell/lang-haskell-worker.ts | 22 +++++++++++++++++-- .../templates/starter/haskell-starter.ts | 7 ++++-- src/livecodes/vendors.ts | 1 + 5 files changed, 38 insertions(+), 4 deletions(-) diff --git a/src/livecodes/i18n/locales/en/translation.lokalise.json b/src/livecodes/i18n/locales/en/translation.lokalise.json index af0ab9632..ee4fc74ec 100644 --- a/src/livecodes/i18n/locales/en/translation.lokalise.json +++ b/src/livecodes/i18n/locales/en/translation.lokalise.json @@ -2524,6 +2524,14 @@ "notes": "", "translation": "Sync started..." }, + "templates.haskell.heading": { + "notes": "", + "translation": "Haskell in the browser" + }, + "templates.haskell.loading": { + "notes": "", + "translation": "Loading GHC..." + }, "templates.heading": { "notes": "", "translation": "New Project" diff --git a/src/livecodes/i18n/locales/en/translation.ts b/src/livecodes/i18n/locales/en/translation.ts index e1d5fc38d..e1ce8319e 100644 --- a/src/livecodes/i18n/locales/en/translation.ts +++ b/src/livecodes/i18n/locales/en/translation.ts @@ -972,6 +972,10 @@ const translation = { syncStarted: 'Sync started...', }, templates: { + haskell: { + heading: 'Haskell in the browser', + loading: 'Loading GHC...', + }, heading: 'New Project', noUserTemplates: { desc: 'You can save a project as a template from <1>(App menu > Save as > Template).', diff --git a/src/livecodes/languages/haskell/lang-haskell-worker.ts b/src/livecodes/languages/haskell/lang-haskell-worker.ts index 3918d7597..2a15c5a87 100644 --- a/src/livecodes/languages/haskell/lang-haskell-worker.ts +++ b/src/livecodes/languages/haskell/lang-haskell-worker.ts @@ -1,5 +1,11 @@ import { getErrorMessage, handleFetchError } from '../../utils/utils'; -import { bsdtarWasmUrl, ghcBrowserBaseUrl, ghcRootfsUrl, haskellWasiShimUrl } from '../../vendors'; +import { + bsdtarWasmSha256, + bsdtarWasmUrl, + ghcBrowserBaseUrl, + ghcRootfsUrl, + haskellWasiShimUrl, +} from '../../vendors'; import type { HaskellRequest, HaskellResponse } from './models'; let run: ((args: string, source: string) => Promise) | undefined; @@ -10,6 +16,17 @@ const reply = (message: HaskellResponse) => self.postMessage(message); // GHC runs against an in-memory WASI filesystem; these are not host /tmp paths. const ghcRuntimeDirectory = '/tmp'; // NOSONAR +const verifyBsdtarWasm = async (wasm: ArrayBuffer) => { + const digest = await crypto.subtle.digest('SHA-256', wasm); + const sha256 = Array.from(new Uint8Array(digest), (byte) => + byte.toString(16).padStart(2, '0'), + ).join(''); + if (sha256 !== bsdtarWasmSha256) { + throw new Error('bsdtar.wasm integrity check failed.'); + } + return wasm; +}; + const init = async () => { const [{ ConsoleStdout, File, OpenFile, PreopenDirectory, WASI }, { DyLDBrowserHost, main }] = await Promise.all([import(haskellWasiShimUrl), import(ghcBrowserBaseUrl + 'dyld.mjs')]); @@ -30,7 +47,8 @@ const init = async () => { const [wasm, archive] = await Promise.all([ fetch(bsdtarWasmUrl) .then(handleFetchError) - .then((res) => res.arrayBuffer()), + .then((res) => res.arrayBuffer()) + .then(verifyBsdtarWasm), fetch(ghcRootfsUrl) .then(handleFetchError) .then((res) => res.arrayBuffer()), diff --git a/src/livecodes/templates/starter/haskell-starter.ts b/src/livecodes/templates/starter/haskell-starter.ts index 6647780ac..ae35e46af 100644 --- a/src/livecodes/templates/starter/haskell-starter.ts +++ b/src/livecodes/templates/starter/haskell-starter.ts @@ -1,5 +1,8 @@ import type { Template } from '../../models'; +const heading = window.deps.translateString('templates.haskell.heading', 'Haskell in the browser'); +const loading = window.deps.translateString('templates.haskell.loading', 'Loading GHC...'); + export const haskellStarter: Template = { name: 'haskell', aliases: ['hs'], @@ -8,8 +11,8 @@ export const haskellStarter: Template = { activeEditor: 'script', markup: { language: 'html', - content: `

    Haskell in the browser

    -
    Loading GHC...
    + content: `

    ${heading}

    +
    ${loading}
    -`, +`.trimStart(), }, style: { language: 'css', - content: `body { - font-family: system-ui, sans-serif; - padding: 2rem; - color: #453a62; + content: ` +.container, +.container button { + text-align: center; + font: 1em sans-serif; } - -pre { - padding: 1rem; - background: #f4f1f8; - white-space: pre-wrap; +.logo { + width: 100px; } -`, +`.trimStart(), }, script: { language: 'haskell', - content: `-- A lazy, infinite list of Fibonacci numbers. -fibs :: [Integer] -fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) - + content: ` main :: IO () main = do - putStrLn "Hello, Haskell!" - putStrLn "The first 10 Fibonacci numbers:" - print (take 10 fibs) -`, + putStrLn "Haskell" + input <- getLine + let count = case reads input of + [(n, "")] -> n + 1 + _ -> 0 + print (count :: Int) +`.trimStart(), }, }; diff --git a/src/livecodes/templates/starter/index.ts b/src/livecodes/templates/starter/index.ts index 5ab932d0a..7fd81339b 100644 --- a/src/livecodes/templates/starter/index.ts +++ b/src/livecodes/templates/starter/index.ts @@ -88,6 +88,7 @@ export const starterTemplates = [ solidStarter, litStarter, stencilStarter, + markdownStarter, mdxStarter, tailwindcssStarter, shadcnuiStarter, @@ -124,24 +125,23 @@ export const starterTemplates = [ cppStarter, cppWasmStarter, rustWasmStarter, - haskellStarter, zigWasmStarter, javaStarter, csharpWasmStarter, fsharpStarter, fsharpWasmStarter, + haskellStarter, + schemeStarter, + commonlispStarter, + clojurescriptStarter, + gleamStarter, perlStarter, luaStarter, luaWasmStarter, tealStarter, fennelStarter, juliaStarter, - schemeStarter, - commonlispStarter, - clojurescriptStarter, - gleamStarter, tclStarter, - markdownStarter, assemblyscriptStarter, watStarter, sqlStarter, diff --git a/src/livecodes/vendors.ts b/src/livecodes/vendors.ts index cc87d31bc..2799b7937 100644 --- a/src/livecodes/vendors.ts +++ b/src/livecodes/vendors.ts @@ -40,6 +40,10 @@ export const blocklyCdnBaseUrl = /* @__PURE__ */ getUrl('blockly@11.1.1/'); export const browserfsUrl = /* @__PURE__ */ getUrl('browserfs@1.4.3/dist/browserfs.min.js'); +export const browserHaskellBaseUrl = /* @__PURE__ */ getUrl( + '@live-codes/browser-haskell@0.1.0/dist/', +); + export const browserJestUrl = /* @__PURE__ */ getUrl( '@live-codes/browser-jest@0.0.3/dist/browser-jest.umd.js', ); @@ -90,7 +94,7 @@ export const codeiumProviderUrl = /* @__PURE__ */ getUrl( '@live-codes/monaco-codeium-provider@0.2.2/dist/index.js', ); -export const codeMirrorBaseUrl = /* @__PURE__ */ getUrl('@live-codes/codemirror@0.4.0/build/'); +export const codeMirrorBaseUrl = /* @__PURE__ */ getUrl('@live-codes/codemirror@0.4.1/build/'); export const codemirrorMinimapUrl = /* @__PURE__ */ getUrl( '@replit/codemirror-minimap@0.5.2/dist/index.js', @@ -438,17 +442,6 @@ export const rustWasmUrl = /* @__PURE__ */ getUrl( ); export const wasmRustcBaseUrl = /* @__PURE__ */ getUrl('@live-codes/wasm-rustc@0.2.0/'); -export const ghcBrowserBaseUrl = /* @__PURE__ */ getUrl( - 'https://cdn.jsdelivr.net/gh/haskell-wasm/ghc-in-browser@c57d8b6e37737d662aed05cab88f867918307053/', -); -export const ghcRootfsUrl = /* @__PURE__ */ getUrl( - 'https://raw.githubusercontent.com/haskell-wasm/ghc-in-browser/c57d8b6e37737d662aed05cab88f867918307053/rootfs.tar.zst', -); -export const ghcRootfsSha256 = '35f68f56fdb72111f150ba05ad31efed2f6fc77ee7026fb4b197ae7901a67adf'; -export const bsdtarWasmSha256 = 'e13ebb15ca0971f6629a6313bc043c532dd9be3a0e6bb0b7f8a395de835ad0c0'; -export const haskellWasiShimUrl = /* @__PURE__ */ getUrl( - 'https://esm.sh/gh/haskell-wasm/browser_wasi_shim@2f86b49dce50916e2984029c535321e34b234229', -); export const snackbarUrl = /* @__PURE__ */ getUrl('@snackbar/core@1.7.0/dist/snackbar.css'); export const spacingJsUrl = /* @__PURE__ */ getUrl('spacingjs@1.0.7/dist/bundle.js'); diff --git a/src/sdk/models.ts b/src/sdk/models.ts index 5511a91ca..8bd5ad5cd 100644 --- a/src/sdk/models.ts +++ b/src/sdk/models.ts @@ -193,8 +193,6 @@ export type Language = | 'rust-wasm' | 'rs-wasm' | 'wasm.rs' - | 'haskell' - | 'hs' | 'perl' | 'pl' | 'pm' @@ -208,6 +206,9 @@ export type Language = | 'fnl' | 'julia' | 'jl' + | 'haskell' + | 'hs' + | 'lhs' | 'scheme' | 'scm' | 'commonlisp' @@ -416,13 +417,13 @@ export type TemplateName = | 'fsharp-wasm' | 'rust-wasm' | 'zig-wasm' - | 'haskell' | 'perl' | 'lua' | 'lua-wasm' | 'teal' | 'fennel' | 'julia' + | 'haskell' | 'scheme' | 'commonlisp' | 'clojurescript' @@ -815,6 +816,7 @@ export type CustomSettings = Partial< | 'text/commonlisp' | 'text/tcl' | 'text/prolog' + | 'text/haskell' | 'text/minizinc' | 'text/go-wasm' | 'text/zig-wasm' diff --git a/vendor-licenses.md b/vendor-licenses.md index 5fa20ad34..f91a4c4b4 100644 --- a/vendor-licenses.md +++ b/vendor-licenses.md @@ -32,10 +32,6 @@ browser_wasi_shim: [MIT License](https://github.com/bjorn3/browser_wasi_shim/blo BrowserFS: [MIT License](https://github.com/jvilk/BrowserFS/blob/76fd5122fcf3ad6bff3315550aafb041cfb6a72e/license.md) -bsdtar-wasm: [BSD licenses](https://github.com/haskell-wasm/bsdtar-wasm/blob/012117de366c13285036f37b4fcd9a59d1a06fbb/LICENSE) - -GHC: [BSD-3-Clause and bundled component licenses](https://gitlab.haskell.org/ghc/ghc/-/blob/master/LICENSE) - brython: [BSD-3-Clause license](https://github.com/brython-dev/brython/blob/c579e26d7e24c37c77f00fc345af0248ca6be8eb/LICENCE.txt) chai: [MIT License](https://github.com/chaijs/chai/blob/1a8247f30dbe0f54268a9748ae673caec75d6bfe/LICENSE) @@ -160,6 +156,8 @@ mhsdesign/jit-browser-tailwindcss: [MIT License](https://github.com/mhsdesign/ji MDX: [MIT License](https://github.com/mdx-js/mdx/blob/7fd1d9a4272754951e70dbaecff07a0ae402e13e/license) +MicroHs: [Apache License 2.0](https://github.com/augustss/MicroHs/blob/455782164e75998b140d869c1b7cdde0c8a21508/LICENSE) (the Haskell packages bundled with it keep their own upstream licences) + minizinc-js: [MPL-2.0 License](https://github.com/MiniZinc/minizinc-js/blob/3f7c34f0549195e5a66cf0f2d6f34cb5bce867f4/LICENSE) Miri: [MIT License](https://github.com/rust-lang/miri/blob/92ea60bf0effd37aea533cd19c9702c43b90abe7/LICENSE-MIT) OR [Apache License 2.0](https://github.com/rust-lang/miri/blob/92ea60bf0effd37aea533cd19c9702c43b90abe7/LICENSE-APACHE) From 841873dff42e04af5643631bfb77dabf964dad6d Mon Sep 17 00:00:00 2001 From: Hatem Hosny Date: Wed, 16 Sep 2026 01:39:59 +0300 Subject: [PATCH 10/13] Merge branch 'develop' into pr/sharno/1035 --- .agents/skills/livecodes/SKILL.md | 7 +- .../skills/livecodes/configuration/SKILL.md | 9 +- .../skills/livecodes/display-modes/SKILL.md | 9 +- .../livecodes/framework-wrappers/SKILL.md | 9 +- .../skills/livecodes/getting-started/SKILL.md | 9 +- .agents/skills/livecodes/gh-action/SKILL.md | 9 +- .../skills/livecodes/headless-mode/SKILL.md | 9 +- .../skills/livecodes/import-export/SKILL.md | 9 +- .../livecodes/language-support/SKILL.md | 9 +- .../language-support/references/languages.md | 1 + .../livecodes/markdown-integration/SKILL.md | 9 +- .../livecodes/module-resolution/SKILL.md | 9 +- .../skills/livecodes/sdk-embedding/SKILL.md | 9 +- .agents/skills/livecodes/sdk-methods/SKILL.md | 9 +- .../skills/livecodes/self-hosting/SKILL.md | 9 +- .agents/skills/livecodes/testing/SKILL.md | 9 +- docs/docs/languages/haskell.mdx | 174 ++++++++++++------ docs/src/components/LanguageSliders.tsx | 9 +- docs/src/components/TemplateList.tsx | 9 +- functions/vendors/templates.js | 11 +- server/php/inc/starter-templates.json | 11 +- storybook/_stories/EmbedOptions/template.ts | 10 +- .../stories/EmbedOptions/template.stories.ts | 14 +- .../stories/EmbedOptions/template.stories.ts | 14 +- .../stories/EmbedOptions/template.stories.ts | 14 +- .../stories/EmbedOptions/template.stories.ts | 14 +- .../stories/EmbedOptions/template.stories.ts | 14 +- .../stories/EmbedOptions/template.stories.ts | 14 +- 28 files changed, 270 insertions(+), 172 deletions(-) diff --git a/.agents/skills/livecodes/SKILL.md b/.agents/skills/livecodes/SKILL.md index b1d952dc6..564c96bd2 100644 --- a/.agents/skills/livecodes/SKILL.md +++ b/.agents/skills/livecodes/SKILL.md @@ -4,9 +4,10 @@ description: >- Open-source, client-side code playground supporting 90+ languages/frameworks. Runs entirely in the browser with SDK for embedding. Entry point for all LiveCodes skills. -type: core -library: livecodes -library_version: 0.13.0 +metadata: + type: core + library: livecodes + library_version: 0.13.0 --- # LiveCodes Overview diff --git a/.agents/skills/livecodes/configuration/SKILL.md b/.agents/skills/livecodes/configuration/SKILL.md index 294e1f2c3..e0b901fae 100644 --- a/.agents/skills/livecodes/configuration/SKILL.md +++ b/.agents/skills/livecodes/configuration/SKILL.md @@ -1,12 +1,13 @@ --- -name: livecodes/configuration +name: configuration description: > Configure playground behavior through Config object, query parameters, EmbedOptions, editor settings, processors, external resources, and custom settings. Load this skill when setting up project content, configuring CSS processors, or customizing display. -type: core -library: livecodes -library_version: 0.13.0 +metadata: + type: core + library: livecodes + library_version: 0.13.0 sources: - live-codes/livecodes:docs/docs/configuration/configuration-object.mdx - live-codes/livecodes:docs/docs/configuration/query-params.mdx diff --git a/.agents/skills/livecodes/display-modes/SKILL.md b/.agents/skills/livecodes/display-modes/SKILL.md index d918019f0..240a2bebf 100644 --- a/.agents/skills/livecodes/display-modes/SKILL.md +++ b/.agents/skills/livecodes/display-modes/SKILL.md @@ -1,12 +1,13 @@ --- -name: livecodes/display-modes +name: display-modes description: > Configure how the playground is displayed: full, focus, simple, lite, editor, codeblock, and result modes. Load this skill when choosing display mode for embeddings, configuring read-only views, or showing only result or editor. -type: core -library: livecodes -library_version: 0.13.0 +metadata: + type: core + library: livecodes + library_version: 0.13.0 requires: - configuration sources: diff --git a/.agents/skills/livecodes/framework-wrappers/SKILL.md b/.agents/skills/livecodes/framework-wrappers/SKILL.md index 220c55751..4bfa16922 100644 --- a/.agents/skills/livecodes/framework-wrappers/SKILL.md +++ b/.agents/skills/livecodes/framework-wrappers/SKILL.md @@ -1,12 +1,13 @@ --- -name: livecodes/framework-wrappers +name: framework-wrappers description: > Use SDK with React, Vue, Svelte, Solid, Preact, and Web Components. sdkReady callback pattern, reactive props, and framework-specific setup. Load this skill when embedding LiveCodes in a framework application. -type: framework -library: livecodes -library_version: 0.13.0 +metadata: + type: framework + library: livecodes + library_version: 0.13.0 requires: - sdk-embedding - sdk-methods diff --git a/.agents/skills/livecodes/getting-started/SKILL.md b/.agents/skills/livecodes/getting-started/SKILL.md index 0631c4852..09b7bdb84 100644 --- a/.agents/skills/livecodes/getting-started/SKILL.md +++ b/.agents/skills/livecodes/getting-started/SKILL.md @@ -1,11 +1,12 @@ --- -name: livecodes/getting-started +name: getting-started description: > Quick start for standalone app at livecodes.io, embedding playgrounds with CDN or npm, and self-hosting basics. Load this skill for initial setup and basic usage patterns. -type: lifecycle -library: livecodes -library_version: 0.13.0 +metadata: + type: lifecycle + library: livecodes + library_version: 0.13.0 sources: - live-codes/livecodes:README.md - live-codes/livecodes:docs/docs/getting-started.mdx diff --git a/.agents/skills/livecodes/gh-action/SKILL.md b/.agents/skills/livecodes/gh-action/SKILL.md index 629f6f1de..29490a7d9 100644 --- a/.agents/skills/livecodes/gh-action/SKILL.md +++ b/.agents/skills/livecodes/gh-action/SKILL.md @@ -1,11 +1,12 @@ --- -name: livecodes/gh-action +name: gh-action description: > Use the "Preview in LiveCodes" GitHub Action to generate preview playground links for pull request code changes. Automates playground creation and PR comments. -type: composition -library: livecodes -library_version: 0.13.0 +metadata: + type: composition + library: livecodes + library_version: 0.13.0 requires: [] sources: - live-codes/preview-in-livecodes:README.md diff --git a/.agents/skills/livecodes/headless-mode/SKILL.md b/.agents/skills/livecodes/headless-mode/SKILL.md index e68c614e6..afb4609a6 100644 --- a/.agents/skills/livecodes/headless-mode/SKILL.md +++ b/.agents/skills/livecodes/headless-mode/SKILL.md @@ -1,12 +1,13 @@ --- -name: livecodes/headless-mode +name: headless-mode description: > Run playground without visible UI using SDK methods directly. Load this skill when building Markdown compilers, code formatters, or tools that need compiled output without display. -type: core -library: livecodes -library_version: 0.13.0 +metadata: + type: core + library: livecodes + library_version: 0.13.0 requires: - sdk-embedding - sdk-methods diff --git a/.agents/skills/livecodes/import-export/SKILL.md b/.agents/skills/livecodes/import-export/SKILL.md index 8f723e1cb..47438bee8 100644 --- a/.agents/skills/livecodes/import-export/SKILL.md +++ b/.agents/skills/livecodes/import-export/SKILL.md @@ -1,12 +1,13 @@ --- -name: livecodes/import-export +name: import-export description: > Import code from GitHub gists/files/repos, GitLab, URLs, DOM, and local files. Export projects as HTML, JSON, ZIP, or to external services. Load this skill when loading projects from external sources or exporting project state. -type: core -library: livecodes -library_version: 0.13.0 +metadata: + type: core + library: livecodes + library_version: 0.13.0 sources: - live-codes/livecodes:docs/docs/features/import.mdx - live-codes/livecodes:docs/docs/features/export.mdx diff --git a/.agents/skills/livecodes/language-support/SKILL.md b/.agents/skills/livecodes/language-support/SKILL.md index 6f783cd14..c2eb781c7 100644 --- a/.agents/skills/livecodes/language-support/SKILL.md +++ b/.agents/skills/livecodes/language-support/SKILL.md @@ -1,13 +1,14 @@ --- -name: livecodes/language-support +name: language-support description: > Work with 90+ supported languages, compilers, CSS processors, and WASM-compiled languages for markup, style, and script editors. Load this skill when configuring languages, setting up CSS processors, or working with WASM-based languages like Python, Ruby, or Go. -type: core -library: livecodes -library_version: 0.13.0 +metadata: + type: core + library: livecodes + library_version: 0.13.0 sources: - live-codes/livecodes:docs/docs/languages/index.mdx - live-codes/livecodes:docs/docs/languages/_template.mdx diff --git a/.agents/skills/livecodes/language-support/references/languages.md b/.agents/skills/livecodes/language-support/references/languages.md index 039f77062..cec069dc5 100644 --- a/.agents/skills/livecodes/language-support/references/languages.md +++ b/.agents/skills/livecodes/language-support/references/languages.md @@ -131,6 +131,7 @@ Enabled via `processors` config: | ClojureScript | `clojurescript`, `clojure`, `cljs`, `clj` | Clojure | | Perl | `perl`, `pl`, `pm` | Perl runtime | | Gleam | `gleam` | Gleam language | +| Haskell | `haskell`, `hs`, `lhs` | MicroHs (not GHC) | | Tcl | `tcl` | Tcl interpreter | | WebAssembly | `wat`, `wast`, `wasm`, `webassembly` | WAT format | diff --git a/.agents/skills/livecodes/markdown-integration/SKILL.md b/.agents/skills/livecodes/markdown-integration/SKILL.md index b6fc3b913..c20916c1d 100644 --- a/.agents/skills/livecodes/markdown-integration/SKILL.md +++ b/.agents/skills/livecodes/markdown-integration/SKILL.md @@ -1,12 +1,13 @@ --- -name: livecodes/markdown-integration +name: markdown-integration description: > Integrate LiveCodes with documentation sites using remark-livecodes, markdown-it-livecodes, gatsby-remark-livecodes, or marked-livecodes for Docusaurus, Astro, VitePress, Next.js, and Storybook. -type: composition -library: livecodes -library_version: 0.13.0 +metadata: + type: composition + library: livecodes + library_version: 0.13.0 requires: - sdk-embedding sources: diff --git a/.agents/skills/livecodes/module-resolution/SKILL.md b/.agents/skills/livecodes/module-resolution/SKILL.md index c24dc34da..d3ebb61de 100644 --- a/.agents/skills/livecodes/module-resolution/SKILL.md +++ b/.agents/skills/livecodes/module-resolution/SKILL.md @@ -1,13 +1,14 @@ --- -name: livecodes/module-resolution +name: module-resolution description: > Import npm, deno.land/x, jsr, and GitHub modules without build steps using automatic CDN resolution, custom import maps, and CDN provider prefixes. Load this skill when using bare module imports, configuring CDN providers, or resolving import conflicts. -type: core -library: livecodes -library_version: 0.13.0 +metadata: + type: core + library: livecodes + library_version: 0.13.0 sources: - live-codes/livecodes:docs/docs/features/module-resolution.mdx - live-codes/livecodes:src/livecodes/compiler/import-map.ts diff --git a/.agents/skills/livecodes/sdk-embedding/SKILL.md b/.agents/skills/livecodes/sdk-embedding/SKILL.md index ae2937eb7..ebfa806ad 100644 --- a/.agents/skills/livecodes/sdk-embedding/SKILL.md +++ b/.agents/skills/livecodes/sdk-embedding/SKILL.md @@ -1,13 +1,14 @@ --- -name: livecodes/sdk-embedding +name: sdk-embedding description: > Create and configure embedded playgrounds using createPlayground(), EmbedOptions, container setup, loading modes (eager/lazy/click), and appUrl for self-hosted instances. Load this skill when embedding LiveCodes in web pages, configuring playground containers, or setting up SDK integration. -type: core -library: livecodes -library_version: 0.13.0 +metadata: + type: core + library: livecodes + library_version: 0.13.0 sources: - live-codes/livecodes:docs/docs/sdk/js-ts.mdx - live-codes/livecodes:src/sdk/index.ts diff --git a/.agents/skills/livecodes/sdk-methods/SKILL.md b/.agents/skills/livecodes/sdk-methods/SKILL.md index 764067630..0ae96ac2a 100644 --- a/.agents/skills/livecodes/sdk-methods/SKILL.md +++ b/.agents/skills/livecodes/sdk-methods/SKILL.md @@ -1,13 +1,14 @@ --- -name: livecodes/sdk-methods +name: sdk-methods description: > Use SDK methods to interact with playgrounds: run, getCode, setConfig, getConfig, watch, runTests, format, getShareUrl, show, destroy. Load this skill when programmatically controlling embedded playgrounds, reacting to code changes, or retrieving compiled output. -type: core -library: livecodes -library_version: 0.13.0 +metadata: + type: core + library: livecodes + library_version: 0.13.0 requires: - sdk-embedding sources: diff --git a/.agents/skills/livecodes/self-hosting/SKILL.md b/.agents/skills/livecodes/self-hosting/SKILL.md index 9ae8746a9..958933410 100644 --- a/.agents/skills/livecodes/self-hosting/SKILL.md +++ b/.agents/skills/livecodes/self-hosting/SKILL.md @@ -1,12 +1,13 @@ --- -name: livecodes/self-hosting +name: self-hosting description: > Deploy LiveCodes to static servers, GitHub Pages, or Docker. Configure SDK appUrl, BASE_URL for subdirectories, and handle share/broadcast services. Load this skill when self-hosting LiveCodes or using a custom app URL. -type: composition -library: livecodes -library_version: 0.13.0 +metadata: + type: composition + library: livecodes + library_version: 0.13.0 requires: - sdk-embedding sources: diff --git a/.agents/skills/livecodes/testing/SKILL.md b/.agents/skills/livecodes/testing/SKILL.md index 97e65fecb..37a3ba6ca 100644 --- a/.agents/skills/livecodes/testing/SKILL.md +++ b/.agents/skills/livecodes/testing/SKILL.md @@ -1,12 +1,13 @@ --- -name: livecodes/testing +name: testing description: > Write and run automated tests with Jest and Testing Library in the browser. Import code from script editor, use watch mode, and run tests programmatically. Load this skill when writing tests for playground code or running tests via SDK. -type: core -library: livecodes -library_version: 0.13.0 +metadata: + type: core + library: livecodes + library_version: 0.13.0 sources: - live-codes/livecodes:docs/docs/features/tests.mdx --- diff --git a/docs/docs/languages/haskell.mdx b/docs/docs/languages/haskell.mdx index 28d5209e2..da51ef0c9 100644 --- a/docs/docs/languages/haskell.mdx +++ b/docs/docs/languages/haskell.mdx @@ -1,62 +1,99 @@ # Haskell -[Haskell](https://www.haskell.org/) is a statically typed, purely functional language with lazy evaluation. -LiveCodes uses [GHC in the browser](https://github.com/haskell-wasm/ghc-in-browser) to compile and run Haskell entirely client-side using WebAssembly. +[Haskell](https://www.haskell.org/) is a statically typed, purely functional programming language. -## Usage +LiveCodes runs Haskell in the browser using [MicroHs](https://github.com/augustss/MicroHs), an extended subset of Haskell implemented with combinators. -Write a Haskell module with a `main :: IO ()` entry point in the script editor: +## Basic Demo -```haskell -fibs :: [Integer] -fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) +import LiveCodes from '../../src/components/LiveCodes.tsx'; +export const params = { + haskell: `module Main where\n main :: IO () main = do - putStrLn "Hello, Haskell!" + putStrLn "Hello from MicroHs!" print (take 10 fibs) -``` + print (sum [1 .. 100])\n +fibs :: [Integer] +fibs = 0 : 1 : zipWith (+) fibs (tail fibs) +`, + console: 'full', +}; -Output and compiler diagnostics appear in the console. The compiler runs in a web worker to keep the page responsive. + -import LiveCodes from '../../src/components/LiveCodes.tsx'; +See below for more examples. + +## Usage + +By default the code is run on page load and the output is logged to the integrated console. +In addition, helper methods are available to run the code from JavaScript. + +### Usage from JavaScript + +Helper methods are available in the browser global `livecodes.haskell` object: + +- `livecodes.haskell.loaded`: A promise that resolves after the run has completed. Useful + for waiting before interacting with the output. +- `livecodes.haskell.run`: A method that compiles and runs the current editor code. It optionally + accepts a `string` that is provided to the program as `stdin` (see below), and returns a promise + that resolves to `{ output, error, exitCode }`. +- `livecodes.haskell.input`: The input string passed to the next run. +- `livecodes.haskell.output`: The `stdout` of the last run (or `null`). +- `livecodes.haskell.error`: The compile error / exception of the last run (or `null`). +- `livecodes.haskell.exitCode`: `0` on success, `1` on error, `124` on timeout. + +#### Example + + + +## Input (stdin) + +MicroHs's WebAssembly build has no usable standard input, so input is injected as source instead: + +1. `lcInput :: String`, `lcInputLines :: [String]` and `lcInputWords :: [String]` are always + available when input is passed, without any imports. +2. The Prelude's `getLine`, `readLn`, `getContents` and `interact` are shadowed with equivalents + that consume the same input, so ordinary programs work unchanged: - +```haskell +main :: IO () +main = do + [n, k] <- fmap (map read . words) getLine + print (n + k :: Int) +``` -### Communication with JavaScript +The starter template passes a value from the page to `livecodes.haskell.run`. -JavaScript in the markup editor can access `livecodes.haskell`: +## Modules -- `loaded`: a promise that resolves after the initial execution completes, or rejects if loading or execution fails. Compiler warnings do not reject it. -- `output`: the latest standard output as a string. -- `error`: the latest compiler/runtime diagnostics as a string (empty when there are none). -- `exitCode`: the exit code from the latest run (`0` for success). -- `run()`: runs the current Haskell source again and returns a promise resolving to `{ output, error, exitCode }`. Calls are queued, because GHC's interactive session cannot execute concurrently. +`import` works as usual. Library modules are fetched on demand, so only the packages a program +actually imports are downloaded: -For example, display the initial output in the page: +```haskell +import qualified Data.Map as M -```html -
    
    -
    +main :: IO ()
    +main = print (M.toList (M.fromList [(2, "b"), (1, "a")]))
     ```
     
    -### Limitations
    +`Data.Text`, `Data.ByteString`, `Data.Sequence` and more are embedded in the compiler, while
    +`containers`, `mtl`, `transformers`, `array`, `parsec`, `pretty`, `time`, `random`, `HUnit`,
    +`QuickCheck` and `hspec` are loaded from packages on first import. The
    +[browser-haskell repository](https://github.com/live-codes/browser-haskell/blob/main/PACKAGES.md)
    +lists every supported module and explains why some are not available. Imports that cannot be
    +satisfied are reported *before* anything is compiled, with the reason:
    +
    +```text
    +Not available in this playground:
    +  Data.Aeson — not bundled with this playground
    +  Language.Haskell.TH — Template Haskell is not supported by MicroHs (only its types, via ghc-compat)
    +```
     
    -- The first run downloads approximately 49 MB of compressed compiler and library data, plus the WebAssembly archive extractor. Initialization can take some time.
    -- This integration uses GHC 9.14.0.20251031 and the libraries bundled with that build. Installing Cabal/Hackage packages is not supported.
    -- Haskell runs in a worker, without direct access to the DOM or the page's JavaScript variables.
    -- Interactive standard input is not supported (stdin is empty).
    -- Output is line-buffered. Compiler diagnostics and program stderr share the `error` field, including warnings.
    -- Initialization has a five-minute timeout; each compilation/execution has a two-minute timeout. A timeout discards the worker, and a later run starts a new one.
    +A program is compiled as a single `Main` module, so your own code cannot be split across several
    +source files. Keep helper types and functions in the same editor, optionally with an explicit
    +`module Main where` header.
     
     ## Language Info
     
    @@ -64,32 +101,61 @@ For example, display the initial output in the page:
     
     `haskell`
     
    -### Alias
    -
    -`hs`
    -
    -### Extension
    +### Aliases
     
    -`.hs`
    +`hs`, `lhs`
     
     ### Editor
     
     `script`
     
    -### Compiler
    +## Compiler
    +
    +[MicroHs](https://github.com/augustss/MicroHs), an extended subset of Haskell implemented with combinators, packaged as
    +[`@live-codes/browser-haskell`](https://www.npmjs.com/package/@live-codes/browser-haskell).
    +
    +The bundle (plus the `base` and `canvhs` packages) is downloaded once per result page.
    +Additional library packages (`containers`, `mtl`, `parsec`, `QuickCheck`, `hspec`, …) are fetched
    +on demand, only for the modules a program actually imports.
    +
    +### Version
    +
    +MicroHs `0.16.6.0`
    +
    +## Code Formatting
    +
    +Not supported.
    +
    +## Live Reload
    +
    +By default, new code changes are sent to the result page for re-evaluation without a full page reload, avoiding the need to reinitialize the environment. This behavior can be disabled by adding the code comment `-- __livecodes_reload__` to the Haskell code, which forces a full page reload.
    +
    +This comment can be added in the `hiddenContent` property of the editor for embedded playgrounds.
     
    -[GHC in the browser](https://github.com/haskell-wasm/ghc-in-browser)
    +## Limitations
     
    -### Code Formatting
    +Please note that **MicroHs is not GHC**. It is a much smaller implementation, and the following
    +are important differences:
     
    -Not currently supported.
    +- **No Template Haskell, type families or `DeriveGeneric`** (though GADTs, `RankNTypes`,
    +  `TypeApplications`, `OverloadedStrings` and record dot syntax all work).
    +- **Not all ecosystem packages are available.** `megaparsec`, `vector`, `lens` and `aeson` cannot
    +  be provided. Modules that were deliberately withheld (e.g. `Data.Binary`, whose reader hangs)
    +  are reported with a reason instead of a bare "module not found".
    +- **Terse diagnostics**, in MicroHs's own format (`"Data/List.hs",389:11`) rather than GHC's.
    +- **Extensions are always on**, and many things that GHC would reject still compile.
    +- **Execution is REPL-based**, so even a trivial program costs roughly a second.
    +- **No interrupt.** A program that loops forever blocks the main thread and freezes the result
    +  iframe; there is no way to interrupt it. A run that merely takes too long fails with exit code
    +  `124`. Add `__livecodes_reload__` to the code to force a full reload of the result page.
     
    -### Starter Template
    +## Starter Template
     
     https://livecodes.io/?template=haskell
     
    -### Links
    +## Links
     
    -- [Haskell](https://www.haskell.org/)
    -- [GHC documentation](https://www.haskell.org/ghc/documentation.html)
    -- [GHC in the browser](https://github.com/haskell-wasm/ghc-in-browser)
    +- [Haskell official website](https://www.haskell.org/)
    +- [MicroHs on GitHub](https://github.com/augustss/MicroHs)
    +- [MicroHs language support](https://github.com/augustss/MicroHs/wiki/Language)
    +- [@live-codes/browser-haskell](https://www.npmjs.com/package/@live-codes/browser-haskell)
    diff --git a/docs/src/components/LanguageSliders.tsx b/docs/src/components/LanguageSliders.tsx
    index 669d2bf3a..05ace4b3c 100644
    --- a/docs/src/components/LanguageSliders.tsx
    +++ b/docs/src/components/LanguageSliders.tsx
    @@ -95,16 +95,17 @@ export default function Sliders() {
           { name: 'csharp-wasm', title: 'C# (Wasm)' },
           { name: 'fsharp', title: 'F#' },
           { name: 'fsharp-wasm', title: 'F# (Wasm)' },
    +      { name: 'haskell', title: 'Haskell' },
    +      { name: 'scheme', title: 'Scheme' },
    +      { name: 'commonlisp', title: 'Lisp' },
    +      { name: 'clojurescript', title: 'CLJS' },
    +      { name: 'gleam', title: 'Gleam' },
           { name: 'perl', title: 'Perl' },
           { name: 'lua', title: 'Lua' },
           { name: 'lua-wasm', title: 'Lua (Wasm)' },
           { name: 'teal', title: 'Teal' },
           { name: 'fennel', title: 'Fennel' },
           { name: 'julia', title: 'Julia' },
    -      { name: 'scheme', title: 'Scheme' },
    -      { name: 'commonlisp', title: 'Lisp' },
    -      { name: 'clojurescript', title: 'CLJS' },
    -      { name: 'gleam', title: 'Gleam' },
           { name: 'tcl', title: 'Tcl' },
           { name: 'assemblyscript', title: 'AssemblyScript' },
           { name: 'wat', title: 'WAT' },
    diff --git a/docs/src/components/TemplateList.tsx b/docs/src/components/TemplateList.tsx
    index db721a94c..6894843ac 100644
    --- a/docs/src/components/TemplateList.tsx
    +++ b/docs/src/components/TemplateList.tsx
    @@ -54,16 +54,17 @@ const templates = [
       { name: 'csharp-wasm', title: 'C# (Wasm)', thumbnail: 'csharp.svg' },
       { name: 'fsharp', title: 'F# Starter', thumbnail: 'fsharp.svg' },
       { name: 'fsharp-wasm', title: 'F# (Wasm) Starter', thumbnail: 'fsharp.svg' },
    +  { name: 'haskell', title: 'Haskell Starter', thumbnail: 'haskell.svg' },
    +  { name: 'scheme', title: 'Scheme Starter', thumbnail: 'scheme.svg' },
    +  { name: 'commonlisp', title: 'Common Lisp Starter', thumbnail: 'commonlisp.svg' },
    +  { name: 'clojurescript', title: 'ClojureScript Starter', thumbnail: 'cljs.svg' },
    +  { name: 'gleam', title: 'Gleam Starter', thumbnail: 'gleam.svg' },
       { name: 'perl', title: 'Perl Starter', thumbnail: 'perl.svg' },
       { name: 'lua', title: 'Lua Starter', thumbnail: 'lua.svg' },
       { name: 'lua-wasm', title: 'Lua (wasm) Starter', thumbnail: 'lua.svg' },
       { name: 'teal', title: 'Teal Starter', thumbnail: 'teal.png' },
       { name: 'fennel', title: 'Fennel Starter', thumbnail: 'fennel.svg' },
       { name: 'julia', title: 'Julia Starter', thumbnail: 'julia.svg' },
    -  { name: 'scheme', title: 'Scheme Starter', thumbnail: 'scheme.svg' },
    -  { name: 'commonlisp', title: 'Common Lisp Starter', thumbnail: 'commonlisp.svg' },
    -  { name: 'clojurescript', title: 'ClojureScript Starter', thumbnail: 'cljs.svg' },
    -  { name: 'gleam', title: 'Gleam Starter', thumbnail: 'gleam.svg' },
       { name: 'tcl', title: 'Tcl Starter', thumbnail: 'tcl.svg' },
       { name: 'markdown', title: 'Markdown Starter', thumbnail: 'markdown.svg' },
       { name: 'assemblyscript', title: 'AssemblyScript Starter', thumbnail: 'assemblyscript.svg' },
    diff --git a/functions/vendors/templates.js b/functions/vendors/templates.js
    index b0e4149fd..74e274159 100644
    --- a/functions/vendors/templates.js
    +++ b/functions/vendors/templates.js
    @@ -11,6 +11,7 @@ export const starterTemplates = {
       "solid": "Solid Starter",
       "lit": "Lit Starter",
       "stencil": "Stencil Starter",
    +  "markdown": "Markdown Starter",
       "mdx": "MDX Starter",
       "tailwindcss": "Tailwind CSS Starter",
       "shadcn-ui": "shadcn/ui Starter",
    @@ -53,18 +54,18 @@ export const starterTemplates = {
       "csharp-wasm": "C# (Wasm) Starter",
       "fsharp": "F# Starter",
       "fsharp-wasm": "F# (Wasm) Starter",
    +  "haskell": "Haskell Starter",
    +  "scheme": "Scheme Starter",
    +  "commonlisp": "Common Lisp Starter",
    +  "clojurescript": "ClojureScript Starter",
    +  "gleam": "Gleam Starter",
       "perl": "Perl Starter",
       "lua": "Lua Starter",
       "lua-wasm": "Lua (Wasm) Starter",
       "teal": "Teal Starter",
       "fennel": "Fennel Starter",
       "julia": "Julia Starter",
    -  "scheme": "Scheme Starter",
    -  "commonlisp": "Common Lisp Starter",
    -  "clojurescript": "ClojureScript Starter",
    -  "gleam": "Gleam Starter",
       "tcl": "Tcl Starter",
    -  "markdown": "Markdown Starter",
       "assemblyscript": "AssemblyScript Starter",
       "wat": "WebAssembly Text Starter",
       "sql": "SQL Starter",
    diff --git a/server/php/inc/starter-templates.json b/server/php/inc/starter-templates.json
    index 504a2fe3d..48639cfaa 100644
    --- a/server/php/inc/starter-templates.json
    +++ b/server/php/inc/starter-templates.json
    @@ -11,6 +11,7 @@
       "solid": "Solid Starter",
       "lit": "Lit Starter",
       "stencil": "Stencil Starter",
    +  "markdown": "Markdown Starter",
       "mdx": "MDX Starter",
       "tailwindcss": "Tailwind CSS Starter",
       "shadcn-ui": "shadcn/ui Starter",
    @@ -53,18 +54,18 @@
       "csharp-wasm": "C# (Wasm) Starter",
       "fsharp": "F# Starter",
       "fsharp-wasm": "F# (Wasm) Starter",
    +  "haskell": "Haskell Starter",
    +  "scheme": "Scheme Starter",
    +  "commonlisp": "Common Lisp Starter",
    +  "clojurescript": "ClojureScript Starter",
    +  "gleam": "Gleam Starter",
       "perl": "Perl Starter",
       "lua": "Lua Starter",
       "lua-wasm": "Lua (Wasm) Starter",
       "teal": "Teal Starter",
       "fennel": "Fennel Starter",
       "julia": "Julia Starter",
    -  "scheme": "Scheme Starter",
    -  "commonlisp": "Common Lisp Starter",
    -  "clojurescript": "ClojureScript Starter",
    -  "gleam": "Gleam Starter",
       "tcl": "Tcl Starter",
    -  "markdown": "Markdown Starter",
       "assemblyscript": "AssemblyScript Starter",
       "wat": "WebAssembly Text Starter",
       "sql": "SQL Starter",
    diff --git a/storybook/_stories/EmbedOptions/template.ts b/storybook/_stories/EmbedOptions/template.ts
    index ca55f99f4..4e63d86f7 100644
    --- a/storybook/_stories/EmbedOptions/template.ts
    +++ b/storybook/_stories/EmbedOptions/template.ts
    @@ -13,6 +13,7 @@ const storyDef: StoryDef = {
       Solid: { props: { template: 'solid' } },
       Lit: { props: { template: 'lit' } },
       Stencil: { props: { template: 'stencil' } },
    +  Markdown: { props: { template: 'markdown' } },
       MDX: { props: { template: 'mdx' } },
       TailwindCSS: { props: { template: 'tailwindcss' } },
       ShadcnUI: { props: { template: 'shadcn-ui' } },
    @@ -48,23 +49,22 @@ const storyDef: StoryDef = {
       Cpp: { props: { template: 'cpp' } },
       CppWasm: { props: { template: 'cpp-wasm' } },
       RustWasm: { props: { template: 'rust-wasm' } },
    -  Haskell: { props: { template: 'haskell' } },
       ZigWasm: { props: { template: 'zig-wasm' } },
       Java: { props: { template: 'java' } },
       CSharpWasm: { props: { template: 'csharp-wasm' } },
       FSharp: { props: { template: 'fsharp' } },
       FSharpWasm: { props: { template: 'fsharp-wasm' } },
    +  Haskell: { props: { template: 'haskell' } },
    +  Scheme: { props: { template: 'scheme' } },
    +  CommonLisp: { props: { template: 'commonlisp' } },
    +  ClojureScript: { props: { template: 'clojurescript' }, storyName: 'ClojureScript' },
       Perl: { props: { template: 'perl' } },
       Lua: { props: { template: 'lua' } },
       LuaWasm: { props: { template: 'lua-wasm' } },
       Teal: { props: { template: 'teal' } },
       Fennel: { props: { template: 'fennel' } },
       Julia: { props: { template: 'julia' } },
    -  Scheme: { props: { template: 'scheme' } },
    -  CommonLisp: { props: { template: 'commonlisp' } },
    -  ClojureScript: { props: { template: 'clojurescript' }, storyName: 'ClojureScript' },
       Tcl: { props: { template: 'tcl' } },
    -  Markdown: { props: { template: 'markdown' } },
       AssemblyScript: { props: { template: 'assemblyscript' }, storyName: 'AssemblyScript' },
       WebAssemblyText: { props: { template: 'wat' }, storyName: 'WebAssembly Text' },
       SQL: { props: { template: 'sql' } },
    diff --git a/storybook/preact/stories/EmbedOptions/template.stories.ts b/storybook/preact/stories/EmbedOptions/template.stories.ts
    index c0d3f5b8b..19daaabef 100644
    --- a/storybook/preact/stories/EmbedOptions/template.stories.ts
    +++ b/storybook/preact/stories/EmbedOptions/template.stories.ts
    @@ -22,6 +22,7 @@ export const Svelte = livecodesStory({ template: 'svelte' });
     export const Solid = livecodesStory({ template: 'solid' });
     export const Lit = livecodesStory({ template: 'lit' });
     export const Stencil = livecodesStory({ template: 'stencil' });
    +export const Markdown = livecodesStory({ template: 'markdown' });
     export const MDX = livecodesStory({ template: 'mdx' });
     export const TailwindCSS = livecodesStory({ template: 'tailwindcss' });
     export const ShadcnUI = livecodesStory({ template: 'shadcn-ui' });
    @@ -61,23 +62,24 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' });
     PHPWasm.storyName = 'PHP Wasm';
     export const Cpp = livecodesStory({ template: 'cpp' });
     export const CppWasm = livecodesStory({ template: 'cpp-wasm' });
    -export const Haskell = livecodesStory({ template: 'haskell' });
    +export const RustWasm = livecodesStory({ template: 'rust-wasm' });
    +export const ZigWasm = livecodesStory({ template: 'zig-wasm' });
     export const Java = livecodesStory({ template: 'java' });
     export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' });
     export const FSharp = livecodesStory({ template: 'fsharp' });
     export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' });
    +export const Haskell = livecodesStory({ template: 'haskell' });
    +export const Scheme = livecodesStory({ template: 'scheme' });
    +export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    +export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    +ClojureScript.storyName = 'ClojureScript';
     export const Perl = livecodesStory({ template: 'perl' });
     export const Lua = livecodesStory({ template: 'lua' });
     export const LuaWasm = livecodesStory({ template: 'lua-wasm' });
     export const Teal = livecodesStory({ template: 'teal' });
     export const Fennel = livecodesStory({ template: 'fennel' });
     export const Julia = livecodesStory({ template: 'julia' });
    -export const Scheme = livecodesStory({ template: 'scheme' });
    -export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    -export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    -ClojureScript.storyName = 'ClojureScript';
     export const Tcl = livecodesStory({ template: 'tcl' });
    -export const Markdown = livecodesStory({ template: 'markdown' });
     export const AssemblyScript = livecodesStory({ template: 'assemblyscript' });
     AssemblyScript.storyName = 'AssemblyScript';
     export const WebAssemblyText = livecodesStory({ template: 'wat' });
    diff --git a/storybook/react/stories/EmbedOptions/template.stories.ts b/storybook/react/stories/EmbedOptions/template.stories.ts
    index c0d3f5b8b..19daaabef 100644
    --- a/storybook/react/stories/EmbedOptions/template.stories.ts
    +++ b/storybook/react/stories/EmbedOptions/template.stories.ts
    @@ -22,6 +22,7 @@ export const Svelte = livecodesStory({ template: 'svelte' });
     export const Solid = livecodesStory({ template: 'solid' });
     export const Lit = livecodesStory({ template: 'lit' });
     export const Stencil = livecodesStory({ template: 'stencil' });
    +export const Markdown = livecodesStory({ template: 'markdown' });
     export const MDX = livecodesStory({ template: 'mdx' });
     export const TailwindCSS = livecodesStory({ template: 'tailwindcss' });
     export const ShadcnUI = livecodesStory({ template: 'shadcn-ui' });
    @@ -61,23 +62,24 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' });
     PHPWasm.storyName = 'PHP Wasm';
     export const Cpp = livecodesStory({ template: 'cpp' });
     export const CppWasm = livecodesStory({ template: 'cpp-wasm' });
    -export const Haskell = livecodesStory({ template: 'haskell' });
    +export const RustWasm = livecodesStory({ template: 'rust-wasm' });
    +export const ZigWasm = livecodesStory({ template: 'zig-wasm' });
     export const Java = livecodesStory({ template: 'java' });
     export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' });
     export const FSharp = livecodesStory({ template: 'fsharp' });
     export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' });
    +export const Haskell = livecodesStory({ template: 'haskell' });
    +export const Scheme = livecodesStory({ template: 'scheme' });
    +export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    +export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    +ClojureScript.storyName = 'ClojureScript';
     export const Perl = livecodesStory({ template: 'perl' });
     export const Lua = livecodesStory({ template: 'lua' });
     export const LuaWasm = livecodesStory({ template: 'lua-wasm' });
     export const Teal = livecodesStory({ template: 'teal' });
     export const Fennel = livecodesStory({ template: 'fennel' });
     export const Julia = livecodesStory({ template: 'julia' });
    -export const Scheme = livecodesStory({ template: 'scheme' });
    -export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    -export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    -ClojureScript.storyName = 'ClojureScript';
     export const Tcl = livecodesStory({ template: 'tcl' });
    -export const Markdown = livecodesStory({ template: 'markdown' });
     export const AssemblyScript = livecodesStory({ template: 'assemblyscript' });
     AssemblyScript.storyName = 'AssemblyScript';
     export const WebAssemblyText = livecodesStory({ template: 'wat' });
    diff --git a/storybook/solid/stories/EmbedOptions/template.stories.ts b/storybook/solid/stories/EmbedOptions/template.stories.ts
    index c0d3f5b8b..19daaabef 100644
    --- a/storybook/solid/stories/EmbedOptions/template.stories.ts
    +++ b/storybook/solid/stories/EmbedOptions/template.stories.ts
    @@ -22,6 +22,7 @@ export const Svelte = livecodesStory({ template: 'svelte' });
     export const Solid = livecodesStory({ template: 'solid' });
     export const Lit = livecodesStory({ template: 'lit' });
     export const Stencil = livecodesStory({ template: 'stencil' });
    +export const Markdown = livecodesStory({ template: 'markdown' });
     export const MDX = livecodesStory({ template: 'mdx' });
     export const TailwindCSS = livecodesStory({ template: 'tailwindcss' });
     export const ShadcnUI = livecodesStory({ template: 'shadcn-ui' });
    @@ -61,23 +62,24 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' });
     PHPWasm.storyName = 'PHP Wasm';
     export const Cpp = livecodesStory({ template: 'cpp' });
     export const CppWasm = livecodesStory({ template: 'cpp-wasm' });
    -export const Haskell = livecodesStory({ template: 'haskell' });
    +export const RustWasm = livecodesStory({ template: 'rust-wasm' });
    +export const ZigWasm = livecodesStory({ template: 'zig-wasm' });
     export const Java = livecodesStory({ template: 'java' });
     export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' });
     export const FSharp = livecodesStory({ template: 'fsharp' });
     export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' });
    +export const Haskell = livecodesStory({ template: 'haskell' });
    +export const Scheme = livecodesStory({ template: 'scheme' });
    +export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    +export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    +ClojureScript.storyName = 'ClojureScript';
     export const Perl = livecodesStory({ template: 'perl' });
     export const Lua = livecodesStory({ template: 'lua' });
     export const LuaWasm = livecodesStory({ template: 'lua-wasm' });
     export const Teal = livecodesStory({ template: 'teal' });
     export const Fennel = livecodesStory({ template: 'fennel' });
     export const Julia = livecodesStory({ template: 'julia' });
    -export const Scheme = livecodesStory({ template: 'scheme' });
    -export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    -export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    -ClojureScript.storyName = 'ClojureScript';
     export const Tcl = livecodesStory({ template: 'tcl' });
    -export const Markdown = livecodesStory({ template: 'markdown' });
     export const AssemblyScript = livecodesStory({ template: 'assemblyscript' });
     AssemblyScript.storyName = 'AssemblyScript';
     export const WebAssemblyText = livecodesStory({ template: 'wat' });
    diff --git a/storybook/svelte/stories/EmbedOptions/template.stories.ts b/storybook/svelte/stories/EmbedOptions/template.stories.ts
    index c0d3f5b8b..19daaabef 100644
    --- a/storybook/svelte/stories/EmbedOptions/template.stories.ts
    +++ b/storybook/svelte/stories/EmbedOptions/template.stories.ts
    @@ -22,6 +22,7 @@ export const Svelte = livecodesStory({ template: 'svelte' });
     export const Solid = livecodesStory({ template: 'solid' });
     export const Lit = livecodesStory({ template: 'lit' });
     export const Stencil = livecodesStory({ template: 'stencil' });
    +export const Markdown = livecodesStory({ template: 'markdown' });
     export const MDX = livecodesStory({ template: 'mdx' });
     export const TailwindCSS = livecodesStory({ template: 'tailwindcss' });
     export const ShadcnUI = livecodesStory({ template: 'shadcn-ui' });
    @@ -61,23 +62,24 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' });
     PHPWasm.storyName = 'PHP Wasm';
     export const Cpp = livecodesStory({ template: 'cpp' });
     export const CppWasm = livecodesStory({ template: 'cpp-wasm' });
    -export const Haskell = livecodesStory({ template: 'haskell' });
    +export const RustWasm = livecodesStory({ template: 'rust-wasm' });
    +export const ZigWasm = livecodesStory({ template: 'zig-wasm' });
     export const Java = livecodesStory({ template: 'java' });
     export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' });
     export const FSharp = livecodesStory({ template: 'fsharp' });
     export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' });
    +export const Haskell = livecodesStory({ template: 'haskell' });
    +export const Scheme = livecodesStory({ template: 'scheme' });
    +export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    +export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    +ClojureScript.storyName = 'ClojureScript';
     export const Perl = livecodesStory({ template: 'perl' });
     export const Lua = livecodesStory({ template: 'lua' });
     export const LuaWasm = livecodesStory({ template: 'lua-wasm' });
     export const Teal = livecodesStory({ template: 'teal' });
     export const Fennel = livecodesStory({ template: 'fennel' });
     export const Julia = livecodesStory({ template: 'julia' });
    -export const Scheme = livecodesStory({ template: 'scheme' });
    -export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    -export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    -ClojureScript.storyName = 'ClojureScript';
     export const Tcl = livecodesStory({ template: 'tcl' });
    -export const Markdown = livecodesStory({ template: 'markdown' });
     export const AssemblyScript = livecodesStory({ template: 'assemblyscript' });
     AssemblyScript.storyName = 'AssemblyScript';
     export const WebAssemblyText = livecodesStory({ template: 'wat' });
    diff --git a/storybook/vue/stories/EmbedOptions/template.stories.ts b/storybook/vue/stories/EmbedOptions/template.stories.ts
    index c0d3f5b8b..19daaabef 100644
    --- a/storybook/vue/stories/EmbedOptions/template.stories.ts
    +++ b/storybook/vue/stories/EmbedOptions/template.stories.ts
    @@ -22,6 +22,7 @@ export const Svelte = livecodesStory({ template: 'svelte' });
     export const Solid = livecodesStory({ template: 'solid' });
     export const Lit = livecodesStory({ template: 'lit' });
     export const Stencil = livecodesStory({ template: 'stencil' });
    +export const Markdown = livecodesStory({ template: 'markdown' });
     export const MDX = livecodesStory({ template: 'mdx' });
     export const TailwindCSS = livecodesStory({ template: 'tailwindcss' });
     export const ShadcnUI = livecodesStory({ template: 'shadcn-ui' });
    @@ -61,23 +62,24 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' });
     PHPWasm.storyName = 'PHP Wasm';
     export const Cpp = livecodesStory({ template: 'cpp' });
     export const CppWasm = livecodesStory({ template: 'cpp-wasm' });
    -export const Haskell = livecodesStory({ template: 'haskell' });
    +export const RustWasm = livecodesStory({ template: 'rust-wasm' });
    +export const ZigWasm = livecodesStory({ template: 'zig-wasm' });
     export const Java = livecodesStory({ template: 'java' });
     export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' });
     export const FSharp = livecodesStory({ template: 'fsharp' });
     export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' });
    +export const Haskell = livecodesStory({ template: 'haskell' });
    +export const Scheme = livecodesStory({ template: 'scheme' });
    +export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    +export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    +ClojureScript.storyName = 'ClojureScript';
     export const Perl = livecodesStory({ template: 'perl' });
     export const Lua = livecodesStory({ template: 'lua' });
     export const LuaWasm = livecodesStory({ template: 'lua-wasm' });
     export const Teal = livecodesStory({ template: 'teal' });
     export const Fennel = livecodesStory({ template: 'fennel' });
     export const Julia = livecodesStory({ template: 'julia' });
    -export const Scheme = livecodesStory({ template: 'scheme' });
    -export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    -export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    -ClojureScript.storyName = 'ClojureScript';
     export const Tcl = livecodesStory({ template: 'tcl' });
    -export const Markdown = livecodesStory({ template: 'markdown' });
     export const AssemblyScript = livecodesStory({ template: 'assemblyscript' });
     AssemblyScript.storyName = 'AssemblyScript';
     export const WebAssemblyText = livecodesStory({ template: 'wat' });
    diff --git a/storybook/web-components/stories/EmbedOptions/template.stories.ts b/storybook/web-components/stories/EmbedOptions/template.stories.ts
    index c0d3f5b8b..19daaabef 100644
    --- a/storybook/web-components/stories/EmbedOptions/template.stories.ts
    +++ b/storybook/web-components/stories/EmbedOptions/template.stories.ts
    @@ -22,6 +22,7 @@ export const Svelte = livecodesStory({ template: 'svelte' });
     export const Solid = livecodesStory({ template: 'solid' });
     export const Lit = livecodesStory({ template: 'lit' });
     export const Stencil = livecodesStory({ template: 'stencil' });
    +export const Markdown = livecodesStory({ template: 'markdown' });
     export const MDX = livecodesStory({ template: 'mdx' });
     export const TailwindCSS = livecodesStory({ template: 'tailwindcss' });
     export const ShadcnUI = livecodesStory({ template: 'shadcn-ui' });
    @@ -61,23 +62,24 @@ export const PHPWasm = livecodesStory({ template: 'php-wasm' });
     PHPWasm.storyName = 'PHP Wasm';
     export const Cpp = livecodesStory({ template: 'cpp' });
     export const CppWasm = livecodesStory({ template: 'cpp-wasm' });
    -export const Haskell = livecodesStory({ template: 'haskell' });
    +export const RustWasm = livecodesStory({ template: 'rust-wasm' });
    +export const ZigWasm = livecodesStory({ template: 'zig-wasm' });
     export const Java = livecodesStory({ template: 'java' });
     export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' });
     export const FSharp = livecodesStory({ template: 'fsharp' });
     export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' });
    +export const Haskell = livecodesStory({ template: 'haskell' });
    +export const Scheme = livecodesStory({ template: 'scheme' });
    +export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    +export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    +ClojureScript.storyName = 'ClojureScript';
     export const Perl = livecodesStory({ template: 'perl' });
     export const Lua = livecodesStory({ template: 'lua' });
     export const LuaWasm = livecodesStory({ template: 'lua-wasm' });
     export const Teal = livecodesStory({ template: 'teal' });
     export const Fennel = livecodesStory({ template: 'fennel' });
     export const Julia = livecodesStory({ template: 'julia' });
    -export const Scheme = livecodesStory({ template: 'scheme' });
    -export const CommonLisp = livecodesStory({ template: 'commonlisp' });
    -export const ClojureScript = livecodesStory({ template: 'clojurescript' });
    -ClojureScript.storyName = 'ClojureScript';
     export const Tcl = livecodesStory({ template: 'tcl' });
    -export const Markdown = livecodesStory({ template: 'markdown' });
     export const AssemblyScript = livecodesStory({ template: 'assemblyscript' });
     AssemblyScript.storyName = 'AssemblyScript';
     export const WebAssemblyText = livecodesStory({ template: 'wat' });
    
    From 9a76d15b909d159153673a37ea8e4846741a530c Mon Sep 17 00:00:00 2001
    From: Hatem Hosny 
    Date: Wed, 16 Sep 2026 01:41:19 +0300
    Subject: [PATCH 11/13] fix
    
    ---
     functions/vendors/templates.js        | 3 +--
     server/php/inc/starter-templates.json | 3 +--
     2 files changed, 2 insertions(+), 4 deletions(-)
    
    diff --git a/functions/vendors/templates.js b/functions/vendors/templates.js
    index 74e274159..c906652b9 100644
    --- a/functions/vendors/templates.js
    +++ b/functions/vendors/templates.js
    @@ -48,7 +48,6 @@ export const starterTemplates = {
       "cpp": "C++ Starter",
       "cpp-wasm": "C++ (Wasm) Starter",
       "rust-wasm": "Rust (Wasm) Starter",
    -  "haskell": "Haskell Starter",
       "zig-wasm": "Zig (Wasm) Starter",
       "java": "Java Starter",
       "csharp-wasm": "C# (Wasm) Starter",
    @@ -74,4 +73,4 @@ export const starterTemplates = {
       "minizinc": "MiniZinc Starter",
       "blockly": "Blockly Starter",
       "diagrams": "Diagrams Starter"
    -}
    +}
    \ No newline at end of file
    diff --git a/server/php/inc/starter-templates.json b/server/php/inc/starter-templates.json
    index 48639cfaa..b09835e02 100644
    --- a/server/php/inc/starter-templates.json
    +++ b/server/php/inc/starter-templates.json
    @@ -48,7 +48,6 @@
       "cpp": "C++ Starter",
       "cpp-wasm": "C++ (Wasm) Starter",
       "rust-wasm": "Rust (Wasm) Starter",
    -  "haskell": "Haskell Starter",
       "zig-wasm": "Zig (Wasm) Starter",
       "java": "Java Starter",
       "csharp-wasm": "C# (Wasm) Starter",
    @@ -74,4 +73,4 @@
       "minizinc": "MiniZinc Starter",
       "blockly": "Blockly Starter",
       "diagrams": "Diagrams Starter"
    -}
    +}
    \ No newline at end of file
    
    From 537271f36c37eeba879974e8b529cd1a5d9ea31d Mon Sep 17 00:00:00 2001
    From: Hatem Hosny 
    Date: Wed, 16 Sep 2026 03:10:23 +0300
    Subject: [PATCH 12/13] clean ups
    
    ---
     .../language-support/references/languages.md  |   1 +
     README.md                                     |   2 +-
     docs/docs/languages/haskell-wasm.mdx          | 109 +++++++++
     docs/src/components/LanguageSliders.tsx       |   2 +-
     docs/src/components/TemplateList.tsx          |   2 +-
     functions/vendors/templates.js                |   1 +
     scripts/build.js                              |   1 +
     server/php/inc/starter-templates.json         |   1 +
     src/livecodes/UI/command-menu-actions.ts      |   1 +
     src/livecodes/assets/wasm/bsdtar.wasm         | Bin 1240004 -> 0 bytes
     src/livecodes/html/language-info.html         |  34 +++
     .../locales/en/language-info.lokalise.json    |  12 +
     .../i18n/locales/en/language-info.ts          |   5 +
     .../i18n/locales/en/translation.lokalise.json |   4 +
     src/livecodes/i18n/locales/en/translation.ts  |   1 +
     src/livecodes/languages/haskell-wasm/index.ts |   1 +
     .../haskell-wasm/lang-haskell-wasm-script.ts  | 211 ++++++++++++++++++
     .../lang-haskell-wasm-worker.raw.js}          |  60 +++--
     .../haskell-wasm/lang-haskell-wasm.ts         |  25 +++
     .../haskell/__tests__/runner.spec.ts          | 123 ----------
     src/livecodes/languages/haskell/models.ts     |  12 -
     src/livecodes/languages/haskell/runner.ts     |  95 --------
     src/livecodes/languages/languages.ts          |   2 +
     src/livecodes/models.ts                       |   2 +
     .../templates/starter/haskell-wasm-starter.ts |  78 +++++++
     src/livecodes/templates/starter/index.ts      |   2 +
     src/livecodes/vendors.ts                      |   6 +
     src/sdk/models.ts                             |   6 +
     storybook/_stories/EmbedOptions/template.ts   |   1 +
     .../stories/EmbedOptions/template.stories.ts  |   1 +
     .../stories/EmbedOptions/template.stories.ts  |   1 +
     .../stories/EmbedOptions/template.stories.ts  |   1 +
     .../stories/EmbedOptions/template.stories.ts  |   1 +
     .../stories/EmbedOptions/template.stories.ts  |   1 +
     .../stories/EmbedOptions/template.stories.ts  |   1 +
     tsconfig.json                                 |   3 +-
     vendor-licenses.md                            |   4 +
     37 files changed, 544 insertions(+), 269 deletions(-)
     create mode 100644 docs/docs/languages/haskell-wasm.mdx
     delete mode 100644 src/livecodes/assets/wasm/bsdtar.wasm
     create mode 100644 src/livecodes/languages/haskell-wasm/index.ts
     create mode 100644 src/livecodes/languages/haskell-wasm/lang-haskell-wasm-script.ts
     rename src/livecodes/languages/{haskell/lang-haskell-worker.ts => haskell-wasm/lang-haskell-wasm-worker.raw.js} (57%)
     create mode 100644 src/livecodes/languages/haskell-wasm/lang-haskell-wasm.ts
     delete mode 100644 src/livecodes/languages/haskell/__tests__/runner.spec.ts
     delete mode 100644 src/livecodes/languages/haskell/models.ts
     delete mode 100644 src/livecodes/languages/haskell/runner.ts
     create mode 100644 src/livecodes/templates/starter/haskell-wasm-starter.ts
    
    diff --git a/.agents/skills/livecodes/language-support/references/languages.md b/.agents/skills/livecodes/language-support/references/languages.md
    index cec069dc5..ef36376c5 100644
    --- a/.agents/skills/livecodes/language-support/references/languages.md
    +++ b/.agents/skills/livecodes/language-support/references/languages.md
    @@ -132,6 +132,7 @@ Enabled via `processors` config:
     | Perl          | `perl`, `pl`, `pm`                        | Perl runtime            |
     | Gleam         | `gleam`                                   | Gleam language          |
     | Haskell       | `haskell`, `hs`, `lhs`                    | MicroHs (not GHC)       |
    +| Haskell (Wasm) | `haskell-wasm`, `hs-wasm`, `wasm.hs`, `hswasm` | GHC WASM             |
     | Tcl           | `tcl`                                     | Tcl interpreter         |
     | WebAssembly   | `wat`, `wast`, `wasm`, `webassembly`      | WAT format              |
     
    diff --git a/README.md b/README.md
    index 2caaf1e9b..a6e50f056 100644
    --- a/README.md
    +++ b/README.md
    @@ -13,7 +13,7 @@ A [feature-rich](https://livecodes.io/docs/features/), open-source, **client-sid
     [![LiveCodes: npm version](https://img.shields.io/npm/v/livecodes)](https://www.npmjs.com/package/livecodes)
     [![LiveCodes: npm downloads](https://img.shields.io/npm/dm/livecodes)](https://www.npmjs.com/package/livecodes)
     [![LiveCodes: jsdelivr downloads](https://data.jsdelivr.com/v1/package/npm/livecodes/badge?style=rounded)](https://www.jsdelivr.com/package/npm/livecodes)
    -[![LiveCodes: languages](https://img.shields.io/badge/languages-103-blue)](https://livecodes.io/docs/languages/)
    +[![LiveCodes: languages](https://img.shields.io/badge/languages-104-blue)](https://livecodes.io/docs/languages/)
     [![LiveCodes: docs](https://img.shields.io/badge/Documentation-575757?logo=gitbook&logoColor=white)](https://livecodes.io/docs/)
     [![LiveCodes: llms.txt](https://img.shields.io/badge/llms.txt-575757?logo=googledocs&logoColor=white)](https://livecodes.io/docs/llms.txt)
     [![LiveCodes: llms-full.txt](https://img.shields.io/badge/llms--full.txt-575757?logo=googledocs&logoColor=white)](https://livecodes.io/docs/llms-full.txt)
    diff --git a/docs/docs/languages/haskell-wasm.mdx b/docs/docs/languages/haskell-wasm.mdx
    new file mode 100644
    index 000000000..b2fcebf11
    --- /dev/null
    +++ b/docs/docs/languages/haskell-wasm.mdx
    @@ -0,0 +1,109 @@
    +# Haskell (Wasm)
    +
    +[Haskell](https://www.haskell.org/) is a statically typed, purely functional programming language with lazy evaluation.
    +
    +LiveCodes compiles and runs Haskell in the browser using [GHC in the browser](https://github.com/haskell-wasm/ghc-in-browser),
    +a WebAssembly build of the [Glasgow Haskell Compiler (GHC)](https://www.haskell.org/ghc/) and its libraries.
    +The compiler runs in a web worker, so no backend is involved.
    +
    +## Basic Demo
    +
    +import LiveCodes from '../../src/components/LiveCodes.tsx';
    +
    +export const params = {
    +  'haskell-wasm': `-- A lazy, infinite list of Fibonacci numbers.
    +fibs :: [Integer]
    +fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs)
    +
    +main :: IO ()
    +main = do
    +  putStrLn "Hello, Haskell!"
    +  print (take 10 fibs)
    +  print (sum [1 .. 100])
    +`,
    +  console: 'full',
    +};
    +
    +
    +
    +See below for more examples.
    +
    +## Usage
    +
    +By default the code is run on page load and the output is logged to the integrated console.
    +In addition, helper methods are available to run the code from JavaScript.
    +
    +### Communication with JavaScript
    +
    +Helper methods are available in the browser global `livecodes.haskellWasm` object:
    +
    +- `livecodes.haskellWasm.loaded`: A promise that resolves after the initial execution completes,
    +  or rejects if loading or execution fails. Compiler warnings do not reject it.
    +- `livecodes.haskellWasm.run`: A method that runs the current editor code again and returns a
    +  promise that resolves to `{ output, error, exitCode }`. Calls are queued, because GHC's
    +  interactive session cannot execute concurrently.
    +- `livecodes.haskellWasm.output`: The `stdout` of the last run.
    +- `livecodes.haskellWasm.error`: The compiler/runtime diagnostics of the last run (empty when there
    +  are none).
    +- `livecodes.haskellWasm.exitCode`: `0` on success, a non-zero value on error.
    +
    +Example:
    +
    +
    +
    +## Language Info
    +
    +### Name
    +
    +`haskell-wasm`
    +
    +### Aliases / Extensions
    +
    +`haskell-wasm`, `hs-wasm`, `wasm.hs`, `hswasm`
    +
    +### Editor
    +
    +`script`
    +
    +## Compiler
    +
    +[GHC in the browser](https://github.com/haskell-wasm/ghc-in-browser), a WebAssembly build of GHC.
    +
    +The compiler and its bundled libraries (about 49 MB compressed) are downloaded on first use, and
    +are then cached by the browser.
    +
    +### Version
    +
    +GHC `9.14.0.20251031`
    +
    +## Code Formatting
    +
    +Not supported.
    +
    +## Live Reload
    +
    +By default, new code changes are sent to the result page for re-evaluation without a full page reload, avoiding the need to reinitialize the GHC WebAssembly environment. This behavior can be disabled by adding the code comment `-- __livecodes_reload__` to the Haskell code, which forces a full page reload.
    +
    +This comment can be added in the `hiddenContent` property of the editor for embedded playgrounds.
    +
    +## Limitations
    +
    +- The first run downloads approximately 49 MB of compressed compiler and library data.
    +- This integration uses GHC `9.14.0.20251031` and the libraries bundled with that build. Installing
    +  Cabal/Hackage packages is not supported.
    +- Haskell runs in a worker, without direct access to the DOM or the page's JavaScript variables.
    +- Interactive standard input is not supported (stdin is empty).
    +- Output is line-buffered. Compiler diagnostics and program stderr share the `error` field, including
    +  warnings.
    +- Initialization has a five-minute timeout; each compilation/execution has a two-minute timeout. A
    +  timeout discards the worker, and a later run starts a new one.
    +
    +## Starter Template
    +
    +https://livecodes.io/?template=haskell-wasm
    +
    +## Links
    +
    +- [Haskell](https://www.haskell.org/)
    +- [GHC documentation](https://www.haskell.org/ghc/documentation.html)
    +- [GHC in the browser](https://github.com/haskell-wasm/ghc-in-browser)
    diff --git a/docs/src/components/LanguageSliders.tsx b/docs/src/components/LanguageSliders.tsx
    index 05ace4b3c..e4c56c7a2 100644
    --- a/docs/src/components/LanguageSliders.tsx
    +++ b/docs/src/components/LanguageSliders.tsx
    @@ -90,12 +90,12 @@ export default function Sliders() {
           { name: 'cpp-wasm', title: 'C++ (Wasm)' },
           { name: 'rust-wasm', title: 'Rust (Wasm)' },
           { name: 'haskell', title: 'Haskell' },
    +      { name: 'haskell-wasm', title: 'Haskell (Wasm)' },
           { name: 'zig-wasm', title: 'Zig (Wasm)' },
           { name: 'java', title: 'Java' },
           { name: 'csharp-wasm', title: 'C# (Wasm)' },
           { name: 'fsharp', title: 'F#' },
           { name: 'fsharp-wasm', title: 'F# (Wasm)' },
    -      { name: 'haskell', title: 'Haskell' },
           { name: 'scheme', title: 'Scheme' },
           { name: 'commonlisp', title: 'Lisp' },
           { name: 'clojurescript', title: 'CLJS' },
    diff --git a/docs/src/components/TemplateList.tsx b/docs/src/components/TemplateList.tsx
    index 6894843ac..5ac3e7211 100644
    --- a/docs/src/components/TemplateList.tsx
    +++ b/docs/src/components/TemplateList.tsx
    @@ -49,12 +49,12 @@ const templates = [
       { name: 'cpp-wasm', title: 'C++ (Wasm) Starter', thumbnail: 'cpp.svg' },
       { name: 'rust-wasm', title: 'Rust (Wasm) Starter', thumbnail: 'rust.svg' },
       { name: 'haskell', title: 'Haskell Starter', thumbnail: 'haskell.svg' },
    +  { name: 'haskell-wasm', title: 'Haskell (Wasm) Starter', thumbnail: 'haskell.svg' },
       { name: 'zig-wasm', title: 'Zig (Wasm) Starter', thumbnail: 'zig.svg' },
       { name: 'java', title: 'Java Starter', thumbnail: 'java.svg' },
       { name: 'csharp-wasm', title: 'C# (Wasm)', thumbnail: 'csharp.svg' },
       { name: 'fsharp', title: 'F# Starter', thumbnail: 'fsharp.svg' },
       { name: 'fsharp-wasm', title: 'F# (Wasm) Starter', thumbnail: 'fsharp.svg' },
    -  { name: 'haskell', title: 'Haskell Starter', thumbnail: 'haskell.svg' },
       { name: 'scheme', title: 'Scheme Starter', thumbnail: 'scheme.svg' },
       { name: 'commonlisp', title: 'Common Lisp Starter', thumbnail: 'commonlisp.svg' },
       { name: 'clojurescript', title: 'ClojureScript Starter', thumbnail: 'cljs.svg' },
    diff --git a/functions/vendors/templates.js b/functions/vendors/templates.js
    index c906652b9..f42650170 100644
    --- a/functions/vendors/templates.js
    +++ b/functions/vendors/templates.js
    @@ -54,6 +54,7 @@ export const starterTemplates = {
       "fsharp": "F# Starter",
       "fsharp-wasm": "F# (Wasm) Starter",
       "haskell": "Haskell Starter",
    +  "haskell-wasm": "Haskell (Wasm) Starter",
       "scheme": "Scheme Starter",
       "commonlisp": "Common Lisp Starter",
       "clojurescript": "ClojureScript Starter",
    diff --git a/scripts/build.js b/scripts/build.js
    index 4044a0a45..3ff359933 100644
    --- a/scripts/build.js
    +++ b/scripts/build.js
    @@ -239,6 +239,7 @@ const iifeBuild = () =>
           'languages/haml/lang-haml-compiler.ts',
           'languages/handlebars/lang-handlebars-compiler.ts',
           'languages/haskell/lang-haskell-script.ts',
    +      'languages/haskell-wasm/lang-haskell-wasm-script.ts',
           'languages/imba/lang-imba-compiler.ts',
           'languages/jinja/lang-jinja-compiler.ts',
           'languages/julia/lang-julia-script.ts',
    diff --git a/server/php/inc/starter-templates.json b/server/php/inc/starter-templates.json
    index b09835e02..38d33774d 100644
    --- a/server/php/inc/starter-templates.json
    +++ b/server/php/inc/starter-templates.json
    @@ -54,6 +54,7 @@
       "fsharp": "F# Starter",
       "fsharp-wasm": "F# (Wasm) Starter",
       "haskell": "Haskell Starter",
    +  "haskell-wasm": "Haskell (Wasm) Starter",
       "scheme": "Scheme Starter",
       "commonlisp": "Common Lisp Starter",
       "clojurescript": "ClojureScript Starter",
    diff --git a/src/livecodes/UI/command-menu-actions.ts b/src/livecodes/UI/command-menu-actions.ts
    index 6f179212e..0a8005e9a 100644
    --- a/src/livecodes/UI/command-menu-actions.ts
    +++ b/src/livecodes/UI/command-menu-actions.ts
    @@ -310,6 +310,7 @@ export const getCommandMenuActions = ({
             'fsharp',
             'fsharp-wasm',
             'haskell',
    +        'haskell-wasm',
             'scheme',
             'commonlisp',
             'clojurescript',
    diff --git a/src/livecodes/assets/wasm/bsdtar.wasm b/src/livecodes/assets/wasm/bsdtar.wasm
    deleted file mode 100644
    index 5a9996dbd7b2eff69f8937087565cb6fc3d1d08c..0000000000000000000000000000000000000000
    GIT binary patch
    literal 0
    HcmV?d00001
    
    literal 1240004
    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≪weAAZT(;nT{ixbC-M?hPrJX+jFun;4=lfT$c? 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 z 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 z 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 P*p>7uyakhMZff{DYWd6M diff --git a/src/livecodes/html/language-info.html b/src/livecodes/html/language-info.html index e4f4753c4..735e7e7e8 100644 --- a/src/livecodes/html/language-info.html +++ b/src/livecodes/html/language-info.html @@ -724,6 +724,40 @@

    Haskell

  • +
    +

    Haskell (Wasm)

    +
    + Haskell is compiled and run in the browser by + GHC in the browser, a WebAssembly build of GHC, running entirely client-side. +
    + +

    Imba

    The friendly full-stack language.
    diff --git a/src/livecodes/i18n/locales/en/language-info.lokalise.json b/src/livecodes/i18n/locales/en/language-info.lokalise.json index 550cfa6a2..d5dc3b956 100644 --- a/src/livecodes/i18n/locales/en/language-info.lokalise.json +++ b/src/livecodes/i18n/locales/en/language-info.lokalise.json @@ -372,6 +372,18 @@ "notes": "", "translation": "Haskell" }, + "haskellWasm.desc": { + "notes": "### ###\n\n\n", + "translation": "Haskell is compiled and run in the browser by GHC in the browser, a WebAssembly build of GHC, running entirely client-side." + }, + "haskellWasm.link": { + "notes": "### ###\n
  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n### ###\n
  • \n\n### ###\n\n\n", + "translation": " Haskell official website GHC documentation GHC in the browser LiveCodes Documentation Load starter template " + }, + "haskellWasm.name": { + "notes": "", + "translation": "Haskell (Wasm)" + }, "imba.desc": { "notes": "", "translation": "The friendly full-stack language." diff --git a/src/livecodes/i18n/locales/en/language-info.ts b/src/livecodes/i18n/locales/en/language-info.ts index 246c290b3..bd1c1f5bd 100644 --- a/src/livecodes/i18n/locales/en/language-info.ts +++ b/src/livecodes/i18n/locales/en/language-info.ts @@ -166,6 +166,11 @@ const languageInfo = { link: '<1> <2>Haskell official website <3> <4>MicroHs on GitHub <5> <6>LiveCodes Documentations <7> <8>Load starter template ', name: 'Haskell', }, + haskellWasm: { + desc: 'Haskell is compiled and run in the browser by <1>GHC in the browser, a WebAssembly build of GHC, running entirely client-side.', + link: '<1> <2>Haskell official website <3> <4>GHC documentation <5> <6>GHC in the browser <7> <8>LiveCodes Documentation <9> <10>Load starter template ', + name: 'Haskell (Wasm)', + }, imba: { desc: 'The friendly full-stack language.', link: '<1><2>Official website', diff --git a/src/livecodes/i18n/locales/en/translation.lokalise.json b/src/livecodes/i18n/locales/en/translation.lokalise.json index af0ab9632..85fa70786 100644 --- a/src/livecodes/i18n/locales/en/translation.lokalise.json +++ b/src/livecodes/i18n/locales/en/translation.lokalise.json @@ -2644,6 +2644,10 @@ "notes": "", "translation": "Haskell Starter" }, + "templates.starter.haskell-wasm": { + "notes": "", + "translation": "Haskell (Wasm) Starter" + }, "templates.starter.heading": { "notes": "", "translation": "Starter Templates" diff --git a/src/livecodes/i18n/locales/en/translation.ts b/src/livecodes/i18n/locales/en/translation.ts index e1d5fc38d..74d078ece 100644 --- a/src/livecodes/i18n/locales/en/translation.ts +++ b/src/livecodes/i18n/locales/en/translation.ts @@ -1007,6 +1007,7 @@ const translation = { go: 'Go Starter', 'go-wasm': 'Go (Wasm) Starter', haskell: 'Haskell Starter', + 'haskell-wasm': 'Haskell (Wasm) Starter', heading: 'Starter Templates', imba: 'Imba Starter', java: 'Java Starter', diff --git a/src/livecodes/languages/haskell-wasm/index.ts b/src/livecodes/languages/haskell-wasm/index.ts new file mode 100644 index 000000000..bc10af9f8 --- /dev/null +++ b/src/livecodes/languages/haskell-wasm/index.ts @@ -0,0 +1 @@ +export * from './lang-haskell-wasm'; diff --git a/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-script.ts b/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-script.ts new file mode 100644 index 000000000..973296941 --- /dev/null +++ b/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-script.ts @@ -0,0 +1,211 @@ +import { getErrorMessage } from '../../utils/utils'; +import { ghcBrowserBaseUrl, haskellWasiShimUrl } from '../../vendors'; +// @ts-ignore +// eslint-disable-next-line import/no-unresolved +import workerContent from './lang-haskell-wasm-worker.raw.js?raw'; + +interface HaskellWasmResult { + output: string; + error: string; + exitCode: number; +} + +type HaskellWasmResponse = + | { type: 'ready' } + | { type: 'result'; result: HaskellWasmResult } + | { type: 'error'; message: string }; + +declare const window: Window & { + livecodes: { + haskellWasm: { + loaded?: Promise; + output?: string; + error?: string; + exitCode?: number; + run?: () => Promise; + runner?: ReturnType; + }; + }; +}; + +// GHC and its libraries are downloaded on first use (~49 MB compressed). +const BOOT_TIMEOUT_MS = 300_000; +const RUN_TIMEOUT_MS = 120_000; + +const createHaskellWorker = () => { + const config = [ + `self.bsdtarUrl = ${JSON.stringify(ghcBrowserBaseUrl + 'bsdtar.wasm')};`, + `self.ghcBrowserBaseUrl = ${JSON.stringify(ghcBrowserBaseUrl)};`, + `self.ghcRootfsUrl = ${JSON.stringify(ghcBrowserBaseUrl + 'rootfs.tar.zst')};`, + `self.haskellWasiShimUrl = ${JSON.stringify(haskellWasiShimUrl)};`, + ].join('\n'); + const workerUrl = `data:text/javascript;charset=UTF-8;base64,${btoa( + `${config}\n\n${workerContent}`, + )}`; + return new Worker(workerUrl); +}; + +/** Creates a serialized GHC worker runner that recovers after boot or execution failures. */ +const createRunner = (createWorker: () => Worker) => { + let worker: Worker | undefined; + let ready: Promise | undefined; + let pending: + | { + resolve: (response: HaskellWasmResponse) => void; + reject: (error: Error) => void; + timer: ReturnType; + } + | undefined; + let queue: Promise = Promise.resolve(); + + const fail = (error: Error) => { + worker?.terminate(); + worker = undefined; + ready = undefined; + if (pending) { + clearTimeout(pending.timer); + pending.reject(error); + pending = undefined; + } + }; + + const request = ( + message: { type: 'init' } | { type: 'run'; code: string }, + timeout: number, + timeoutMessage: string, + ) => + new Promise((resolve, reject) => { + pending = { + resolve, + reject, + timer: setTimeout(() => fail(new Error(timeoutMessage)), timeout), + }; + try { + worker!.postMessage(message); + } catch (err) { + fail(new Error(getErrorMessage(err))); + } + }); + + const init = (): Promise => { + if (ready) return ready; + try { + worker = createWorker(); + worker.onerror = (event) => fail(new Error(event.message)); + worker.onmessageerror = () => fail(new Error('Invalid Haskell worker response.')); + worker.onmessage = ({ data }: MessageEvent) => { + if (data.type === 'error') { + fail(new Error(data.message)); + return; + } + if (!pending) return; + clearTimeout(pending.timer); + pending.resolve(data); + pending = undefined; + }; + ready = request({ type: 'init' }, BOOT_TIMEOUT_MS, 'Haskell initialization timed out.') + .then(() => undefined) + .catch((err) => { + ready = undefined; + throw err; + }); + return ready; + } catch (err) { + return Promise.reject(err); + } + }; + + const run = (code: string): Promise => { + const result = queue.then(async () => { + await init(); + const response = await request( + { type: 'run', code }, + RUN_TIMEOUT_MS, + 'Haskell execution timed out.', + ); + if (response.type !== 'result') throw new Error('Invalid Haskell worker response.'); + return response.result; + }); + // GHC's interactive session must not be entered concurrently. + queue = result.catch(() => undefined); + return result; + }; + + return { init, run }; +}; + +const parentOrigin = + window.parent === window + ? window.location.origin + : window.location.ancestorOrigins?.[0] || + (() => { + if (!document.referrer) return '*'; + try { + return new URL(document.referrer).origin; + } catch { + // Ignore malformed referrers and use the wildcard fallback below. + return '*'; + } + })(); + +window.livecodes.haskellWasm ??= {}; +const haskellWasm = window.livecodes.haskellWasm; +haskellWasm.runner ??= createRunner(createHaskellWorker); + +let activeRuns = 0; + +const postLoading = (payload: boolean) => { + activeRuns += payload ? 1 : -1; + parent.postMessage({ type: 'loading', payload: activeRuns > 0 }, parentOrigin); // NOSONAR - fallback is safe with source/origin checks in the parent. +}; + +haskellWasm.run = async () => { + const code = Array.from(document.querySelectorAll('script[type="text/haskell-wasm"]')) + .map((script) => script.textContent) + .join('\n'); + if (!code.trim()) { + haskellWasm.output = ''; + haskellWasm.error = ''; + haskellWasm.exitCode = 0; + return { output: '', error: '', exitCode: 0 }; + } + postLoading(true); + try { + const result = await haskellWasm.runner!.run(code); + haskellWasm.output = result.output; + haskellWasm.error = result.error; + haskellWasm.exitCode = result.exitCode; + if (result.output) { + // eslint-disable-next-line no-console + console.log(result.output); + } + if (result.error) { + // eslint-disable-next-line no-console + console.error(result.error); + } + return result; + } catch (err) { + haskellWasm.output = ''; + haskellWasm.error = getErrorMessage(err); + haskellWasm.exitCode = 1; + // eslint-disable-next-line no-console + console.error(haskellWasm.error); + return { output: '', error: haskellWasm.error, exitCode: 1 }; + } finally { + postLoading(false); + } +}; + +haskellWasm.loaded = new Promise((resolve, reject) => { + window.addEventListener( + 'load', + async () => { + const result = await haskellWasm.run!(); + if (result.exitCode !== 0) reject(new Error(result.error)); + else resolve(); + }, + { once: true }, + ); +}); +// Diagnostics are already displayed in the console when no consumer awaits loaded. +haskellWasm.loaded.catch(() => undefined); diff --git a/src/livecodes/languages/haskell/lang-haskell-worker.ts b/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-worker.raw.js similarity index 57% rename from src/livecodes/languages/haskell/lang-haskell-worker.ts rename to src/livecodes/languages/haskell-wasm/lang-haskell-wasm-worker.raw.js index 5c52e7eef..684be07e8 100644 --- a/src/livecodes/languages/haskell/lang-haskell-worker.ts +++ b/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-worker.raw.js @@ -1,33 +1,28 @@ -import { getErrorMessage, handleFetchError } from '../../utils/utils'; -import { - bsdtarWasmSha256, - ghcBrowserBaseUrl, - ghcRootfsSha256, - ghcRootfsUrl, - haskellWasiShimUrl, -} from '../../vendors'; -import type { HaskellRequest, HaskellResponse } from './models'; +// @ts-nocheck +// Runs GHC in the browser (https://github.com/haskell-wasm/ghc-in-browser) inside a Web Worker. +// The asset URLs are injected by the main thread when the worker is created. -let run: ((args: string, source: string) => Promise) | undefined; +let run; let output = ''; let error = ''; -const reply = (message: HaskellResponse) => self.postMessage(message); -// GHC runs against an in-memory WASI filesystem; these are not host /tmp paths. -const ghcRuntimeDirectory = '/tmp'; // NOSONAR +const reply = (message) => self.postMessage(message); -const verifySha256 = async (data: ArrayBuffer, expectedSha256: string, assetName: string) => { - const digest = await crypto.subtle.digest('SHA-256', data); - const sha256 = Array.from(new Uint8Array(digest), (byte) => - byte.toString(16).padStart(2, '0'), - ).join(''); - if (sha256 !== expectedSha256) { - throw new Error(`${assetName} integrity check failed.`); +// GHC runs against an in-memory WASI filesystem; this is not a host path. +const ghcRuntimeDirectory = '/tmp'; + +const getErrorMessage = (err) => (err && err.message) || String(err); + +const fetchArrayBuffer = async (url, assetName) => { + const response = await fetch(url); + if (!response.ok) { + throw new Error(`Failed to fetch ${assetName}: ${response.status}`); } - return data; + return response.arrayBuffer(); }; -const init = async (bsdtarUrl: string) => { +const init = async () => { + const { bsdtarUrl, ghcBrowserBaseUrl, ghcRootfsUrl, haskellWasiShimUrl } = self; const [{ ConsoleStdout, File, OpenFile, PreopenDirectory, WASI }, { DyLDBrowserHost, main }] = await Promise.all([import(haskellWasiShimUrl), import(ghcBrowserBaseUrl + 'dyld.mjs')]); const rootfs = new PreopenDirectory('/', []); @@ -37,22 +32,17 @@ const init = async (bsdtarUrl: string) => { [ new OpenFile(new File(new Uint8Array(), { readonly: true })), ConsoleStdout.lineBuffered(() => undefined), - ConsoleStdout.lineBuffered((message: string) => { + ConsoleStdout.lineBuffered((message) => { error += message + '\n'; }), rootfs, ], { debug: false }, ); + // bsdtar extracts the GHC rootfs archive into the in-memory filesystem. const [wasm, archive] = await Promise.all([ - fetch(bsdtarUrl) - .then(handleFetchError) - .then((res) => res.arrayBuffer()) - .then((data) => verifySha256(data, bsdtarWasmSha256, 'bsdtar.wasm')), - fetch(ghcRootfsUrl) - .then(handleFetchError) - .then((res) => res.arrayBuffer()) - .then((data) => verifySha256(data, ghcRootfsSha256, 'GHC rootfs')), + fetchArrayBuffer(bsdtarUrl, 'bsdtar.wasm'), + fetchArrayBuffer(ghcRootfsUrl, 'GHC rootfs'), ]); const { instance } = await WebAssembly.instantiate(wasm, { wasi_snapshot_preview1: wasi.wasiImport, @@ -63,10 +53,10 @@ const init = async (bsdtarUrl: string) => { const dyld = await main({ rpc: new DyLDBrowserHost({ rootfs, - stdout: (message: string) => { + stdout: (message) => { output += message + '\n'; }, - stderr: (message: string) => { + stderr: (message) => { error += message + '\n'; }, }), @@ -81,10 +71,10 @@ const init = async (bsdtarUrl: string) => { run = await dyld.exportFuncs.myMain(`${ghcRuntimeDirectory}/hslib/lib`); }; -self.onmessage = async ({ data }: MessageEvent) => { +self.onmessage = async ({ data }) => { if (data.type === 'init') { try { - await init(data.bsdtarUrl); + await init(); reply({ type: 'ready' }); } catch (err) { reply({ diff --git a/src/livecodes/languages/haskell-wasm/lang-haskell-wasm.ts b/src/livecodes/languages/haskell-wasm/lang-haskell-wasm.ts new file mode 100644 index 000000000..bc4d68785 --- /dev/null +++ b/src/livecodes/languages/haskell-wasm/lang-haskell-wasm.ts @@ -0,0 +1,25 @@ +import { codemirrorLegacy } from '../../editor/codemirror/utils'; +import type { LanguageSpecs } from '../../models'; +import { codeMirrorBaseUrl, monacoLanguagesBaseUrl } from '../../vendors'; + +export const haskellWasm: LanguageSpecs = { + name: 'haskell-wasm', + title: 'Haskell (Wasm)', + compiler: { + factory: () => async (code) => code, + scripts: ({ baseUrl }) => [baseUrl + '{{hash:lang-haskell-wasm-script.js}}'], + scriptType: 'text/haskell-wasm', + compiledCodeLanguage: 'haskell', + liveReload: true, + }, + extensions: ['wasm.hs', 'hs-wasm', 'hswasm'], + editor: 'script', + editorSupport: { + monaco: { languageSupport: monacoLanguagesBaseUrl + 'haskell.js', language: 'haskell' }, + codemirror: { + languageSupport: async () => + codemirrorLegacy((await import(codeMirrorBaseUrl + 'codemirror-lang-haskell.js')).haskell), + }, + }, + largeDownload: true, +}; diff --git a/src/livecodes/languages/haskell/__tests__/runner.spec.ts b/src/livecodes/languages/haskell/__tests__/runner.spec.ts deleted file mode 100644 index 5f6feb7ef..000000000 --- a/src/livecodes/languages/haskell/__tests__/runner.spec.ts +++ /dev/null @@ -1,123 +0,0 @@ -import type { HaskellResponse } from '../models'; -import { createHaskellRunner } from '../runner'; - -describe('Haskell runner', () => { - const setup = () => { - const workers: Worker[] = []; - const createWorker = jest.fn(() => { - const worker = { - postMessage: jest.fn(), - terminate: jest.fn(), - onmessage: null, - onerror: null, - } as unknown as Worker; - workers.push(worker); - return worker; - }); - const respond = (data: HaskellResponse) => { - const worker = workers[workers.length - 1]; - worker.onmessage!.call(worker, { data } as MessageEvent); - }; - return { - runner: createHaskellRunner(createWorker, 'https://example.test/bsdtar.wasm'), - workers, - respond, - createWorker, - }; - }; - - beforeEach(() => jest.useFakeTimers()); - afterEach(() => jest.useRealTimers()); - - test('rejects stalled initialization and allows retry', async () => { - const { runner, workers, respond } = setup(); - const init = runner.init(); - expect(workers[0].postMessage).toHaveBeenCalledWith({ - type: 'init', - bsdtarUrl: 'https://example.test/bsdtar.wasm', - }); - const rejection = expect(init).rejects.toThrow('Haskell initialization timed out.'); - jest.advanceTimersByTime(300_000); - await rejection; - expect(workers[0].terminate).toHaveBeenCalledTimes(1); - const retry = runner.init(); - respond({ type: 'ready' }); - await retry; - expect(workers).toHaveLength(2); - expect(jest.getTimerCount()).toBe(0); - }); - - test('settles initialization errors and starts a fresh worker', async () => { - const { runner, workers, respond } = setup(); - const init = runner.init(); - respond({ type: 'error', message: 'Download failed' }); - await expect(init).rejects.toThrow('Download failed'); - expect(workers[0].terminate).toHaveBeenCalledTimes(1); - const retry = runner.init(); - respond({ type: 'ready' }); - await retry; - expect(workers).toHaveLength(2); - }); - - test('serializes executions and preserves stdout and diagnostics', async () => { - const { runner, workers, respond } = setup(); - const init = runner.init(); - respond({ type: 'ready' }); - await init; - const first = runner.run('main = print 1'); - const second = runner.run('main = print 2'); - await Promise.resolve(); - await Promise.resolve(); - expect(workers[0].postMessage).toHaveBeenCalledTimes(2); - respond({ type: 'result', result: { output: '1\n', error: 'warning', exitCode: 0 } }); - await expect(first).resolves.toEqual({ output: '1\n', error: 'warning', exitCode: 0 }); - await Promise.resolve(); - expect(workers[0].postMessage).toHaveBeenLastCalledWith({ - type: 'run', - code: 'main = print 2', - }); - respond({ type: 'result', result: { output: '2\n', error: '', exitCode: 0 } }); - await expect(second).resolves.toEqual({ output: '2\n', error: '', exitCode: 0 }); - expect(jest.getTimerCount()).toBe(0); - }); - - test('keeps the worker alive after a Haskell error', async () => { - jest.useRealTimers(); - const { runner, workers, respond } = setup(); - const init = runner.init(); - respond({ type: 'ready' }); - await init; - const failure = runner.run('main = missingValue'); - await new Promise((resolve) => setTimeout(resolve, 0)); - respond({ type: 'result', result: { output: '', error: 'missingValue', exitCode: 1 } }); - await expect(failure).resolves.toEqual({ output: '', error: 'missingValue', exitCode: 1 }); - const retry = runner.run('main = print 42'); - await new Promise((resolve) => setTimeout(resolve, 0)); - respond({ type: 'result', result: { output: '42\n', error: '', exitCode: 0 } }); - await expect(retry).resolves.toEqual({ output: '42\n', error: '', exitCode: 0 }); - expect(workers).toHaveLength(1); - }); - - test('rejects a timed-out run and recovers on the next run', async () => { - const { runner, workers, respond } = setup(); - const init = runner.init(); - respond({ type: 'ready' }); - await init; - const first = runner.run('main = main'); - const rejection = expect(first).rejects.toThrow('Haskell execution timed out.'); - await Promise.resolve(); - await Promise.resolve(); - jest.advanceTimersByTime(120_000); - await rejection; - expect(workers[0].terminate).toHaveBeenCalledTimes(1); - const retry = runner.run('main = print 42'); - await Promise.resolve(); - respond({ type: 'ready' }); - await Promise.resolve(); - await Promise.resolve(); - await Promise.resolve(); - respond({ type: 'result', result: { output: '42\n', error: '', exitCode: 0 } }); - await expect(retry).resolves.toEqual({ output: '42\n', error: '', exitCode: 0 }); - expect(workers).toHaveLength(2); - }); -}); diff --git a/src/livecodes/languages/haskell/models.ts b/src/livecodes/languages/haskell/models.ts deleted file mode 100644 index fe000a944..000000000 --- a/src/livecodes/languages/haskell/models.ts +++ /dev/null @@ -1,12 +0,0 @@ -export interface HaskellResult { - output: string; - error: string; - exitCode: number; -} - -export type HaskellRequest = { type: 'init'; bsdtarUrl: string } | { type: 'run'; code: string }; - -export type HaskellResponse = - | { type: 'ready' } - | { type: 'result'; result: HaskellResult } - | { type: 'error'; message: string }; diff --git a/src/livecodes/languages/haskell/runner.ts b/src/livecodes/languages/haskell/runner.ts deleted file mode 100644 index 443752fe4..000000000 --- a/src/livecodes/languages/haskell/runner.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { getErrorMessage } from '../../utils/utils'; -import type { HaskellRequest, HaskellResponse, HaskellResult } from './models'; - -// GHC and its libraries are downloaded on first use (~49 MB compressed). -const BOOT_TIMEOUT_MS = 300_000; -const RUN_TIMEOUT_MS = 120_000; - -/** Creates a serialized GHC worker runner that recovers after boot or execution failures. */ -export const createHaskellRunner = (createWorker: () => Worker, bsdtarUrl: string) => { - let worker: Worker | undefined; - let ready: Promise | undefined; - let pending: - | { - resolve: (response: HaskellResponse) => void; - reject: (error: Error) => void; - timer: ReturnType; - } - | undefined; - let queue: Promise = Promise.resolve(); - - const fail = (error: Error) => { - worker?.terminate(); - worker = undefined; - ready = undefined; - if (pending) { - clearTimeout(pending.timer); - pending.reject(error); - pending = undefined; - } - }; - - const request = (message: HaskellRequest, timeout: number, timeoutMessage: string) => - new Promise((resolve, reject) => { - pending = { - resolve, - reject, - timer: setTimeout(() => fail(new Error(timeoutMessage)), timeout), - }; - try { - worker!.postMessage(message); - } catch (err) { - fail(new Error(getErrorMessage(err))); - } - }); - - const init = (): Promise => { - if (ready) return ready; - try { - worker = createWorker(); - worker.onerror = (event) => fail(new Error(event.message)); - worker.onmessageerror = () => fail(new Error('Invalid Haskell worker response.')); - worker.onmessage = ({ data }: MessageEvent) => { - if (data.type === 'error') { - fail(new Error(data.message)); - return; - } - if (!pending) return; - clearTimeout(pending.timer); - pending.resolve(data); - pending = undefined; - }; - ready = request( - { type: 'init', bsdtarUrl }, - BOOT_TIMEOUT_MS, - 'Haskell initialization timed out.', - ) - .then(() => undefined) - .catch((err) => { - ready = undefined; - throw err; - }); - return ready; - } catch (err) { - return Promise.reject(err); - } - }; - - const run = (code: string): Promise => { - const result = queue.then(async () => { - await init(); - const response = await request( - { type: 'run', code }, - RUN_TIMEOUT_MS, - 'Haskell execution timed out.', - ); - if (response.type !== 'result') throw new Error('Invalid Haskell worker response.'); - return response.result; - }); - // GHC's interactive session must not be entered concurrently. - queue = result.catch(() => undefined); - return result; - }; - - return { init, run }; -}; diff --git a/src/livecodes/languages/languages.ts b/src/livecodes/languages/languages.ts index 2a71b37f8..f87667b48 100644 --- a/src/livecodes/languages/languages.ts +++ b/src/livecodes/languages/languages.ts @@ -29,6 +29,7 @@ import { goWasm } from './go-wasm'; import { haml } from './haml'; import { handlebars } from './handlebars'; import { haskell } from './haskell'; +import { haskellWasm } from './haskell-wasm'; import { html } from './html'; import { imba } from './imba'; import { java } from './java'; @@ -162,6 +163,7 @@ export const languages: LanguageSpecs[] = [ fsharp, fsharpWasm, haskell, + haskellWasm, scheme, commonlisp, clojurescript, diff --git a/src/livecodes/models.ts b/src/livecodes/models.ts index a30d202bf..b0651e571 100644 --- a/src/livecodes/models.ts +++ b/src/livecodes/models.ts @@ -206,6 +206,7 @@ export interface Compiler { | 'text/tcl' | 'text/prolog' | 'text/haskell' + | 'text/haskell-wasm' | 'text/minizinc' | 'text/go-wasm' | 'application/json' @@ -253,6 +254,7 @@ export type TemplateAlias = | 'rust' | 'rs' | 'hs' + | 'hs-wasm' | 'pl' | 'lisp' | 'cljs' diff --git a/src/livecodes/templates/starter/haskell-wasm-starter.ts b/src/livecodes/templates/starter/haskell-wasm-starter.ts new file mode 100644 index 000000000..19ff6e4ed --- /dev/null +++ b/src/livecodes/templates/starter/haskell-wasm-starter.ts @@ -0,0 +1,78 @@ +import type { Template } from '../../models'; + +export const haskellWasmStarter: Template = { + name: 'haskell-wasm', + aliases: ['hs-wasm'], + title: window.deps.translateString('templates.starter.haskell-wasm', 'Haskell (Wasm) Starter'), + thumbnail: 'assets/templates/haskell.svg', + activeEditor: 'script', + markup: { + language: 'html', + content: ` +
    +

    Hello, Haskell!

    + +
    Loading GHC...
    + +
    + + +`.trimStart(), + }, + style: { + language: 'css', + content: ` +.container, +.container button { + text-align: center; + font: 1em sans-serif; +} +.logo { + width: 100px; +} +pre { + padding: 1rem; + background: #f4f1f8; + text-align: left; + white-space: pre-wrap; +} +`.trimStart(), + }, + script: { + language: 'haskell-wasm', + content: ` +-- A lazy, infinite list of Fibonacci numbers. +fibs :: [Integer] +fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) + +main :: IO () +main = do + putStrLn "Hello, Haskell!" + putStrLn "The first 10 Fibonacci numbers:" + print (take 10 fibs) +`.trimStart(), + }, +}; diff --git a/src/livecodes/templates/starter/index.ts b/src/livecodes/templates/starter/index.ts index 7fd81339b..4f806cc05 100644 --- a/src/livecodes/templates/starter/index.ts +++ b/src/livecodes/templates/starter/index.ts @@ -25,6 +25,7 @@ import { gleamStarter } from './gleam-starter'; import { goStarter } from './go-starter'; import { goWasmStarter } from './go-wasm-starter'; import { haskellStarter } from './haskell-starter'; +import { haskellWasmStarter } from './haskell-wasm-starter'; import { imbaStarter } from './imba-starter'; import { javaStarter } from './java-starter'; import { javascriptStarter } from './javascript-starter'; @@ -131,6 +132,7 @@ export const starterTemplates = [ fsharpStarter, fsharpWasmStarter, haskellStarter, + haskellWasmStarter, schemeStarter, commonlispStarter, clojurescriptStarter, diff --git a/src/livecodes/vendors.ts b/src/livecodes/vendors.ts index 2799b7937..5abe5bc9f 100644 --- a/src/livecodes/vendors.ts +++ b/src/livecodes/vendors.ts @@ -254,6 +254,8 @@ export const fscreenUrl = /* @__PURE__ */ getUrl('fscreen@1.2.0/dist/fscreen.esm export const fsharpWasmBaseUrl = /* @__PURE__ */ getUrl('@live-codes/fsharp-wasm@0.3.0/'); +export const ghcBrowserBaseUrl = /* @__PURE__ */ getUrl('unpkg:@live-codes/ghc-in-browser@0.1.0/'); + export const githubMarkdownCss = /* @__PURE__ */ getUrl( 'github-markdown-css@5.1.0/github-markdown.css', ); @@ -266,6 +268,10 @@ export const graphreCdnUrl = /* @__PURE__ */ getUrl('graphre@0.1.3/dist/graphre. export const handlebarsBaseUrl = /* @__PURE__ */ getUrl('handlebars@4.7.8/dist/'); +export const haskellWasiShimUrl = /* @__PURE__ */ getUrl( + 'https://esm.sh/gh/haskell-wasm/browser_wasi_shim@2f86b49dce50916e2984029c535321e34b234229', +); + export const highlightjsUrl = /* @__PURE__ */ getModuleUrl('highlight.js@11.11.1'); export const highlightjsStylesUrl = /* @__PURE__ */ getUrl( 'highlight.js@11.11.1/styles/github.min.css', diff --git a/src/sdk/models.ts b/src/sdk/models.ts index 8bd5ad5cd..079506f51 100644 --- a/src/sdk/models.ts +++ b/src/sdk/models.ts @@ -209,6 +209,10 @@ export type Language = | 'haskell' | 'hs' | 'lhs' + | 'haskell-wasm' + | 'hs-wasm' + | 'wasm.hs' + | 'hswasm' | 'scheme' | 'scm' | 'commonlisp' @@ -424,6 +428,7 @@ export type TemplateName = | 'fennel' | 'julia' | 'haskell' + | 'haskell-wasm' | 'scheme' | 'commonlisp' | 'clojurescript' @@ -817,6 +822,7 @@ export type CustomSettings = Partial< | 'text/tcl' | 'text/prolog' | 'text/haskell' + | 'text/haskell-wasm' | 'text/minizinc' | 'text/go-wasm' | 'text/zig-wasm' diff --git a/storybook/_stories/EmbedOptions/template.ts b/storybook/_stories/EmbedOptions/template.ts index 4e63d86f7..8cb755bbd 100644 --- a/storybook/_stories/EmbedOptions/template.ts +++ b/storybook/_stories/EmbedOptions/template.ts @@ -55,6 +55,7 @@ const storyDef: StoryDef = { FSharp: { props: { template: 'fsharp' } }, FSharpWasm: { props: { template: 'fsharp-wasm' } }, Haskell: { props: { template: 'haskell' } }, + HaskellWasm: { props: { template: 'haskell-wasm' } }, Scheme: { props: { template: 'scheme' } }, CommonLisp: { props: { template: 'commonlisp' } }, ClojureScript: { props: { template: 'clojurescript' }, storyName: 'ClojureScript' }, diff --git a/storybook/preact/stories/EmbedOptions/template.stories.ts b/storybook/preact/stories/EmbedOptions/template.stories.ts index 19daaabef..59039bec2 100644 --- a/storybook/preact/stories/EmbedOptions/template.stories.ts +++ b/storybook/preact/stories/EmbedOptions/template.stories.ts @@ -69,6 +69,7 @@ export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' }); export const Haskell = livecodesStory({ template: 'haskell' }); +export const HaskellWasm = livecodesStory({ template: 'haskell-wasm' }); export const Scheme = livecodesStory({ template: 'scheme' }); export const CommonLisp = livecodesStory({ template: 'commonlisp' }); export const ClojureScript = livecodesStory({ template: 'clojurescript' }); diff --git a/storybook/react/stories/EmbedOptions/template.stories.ts b/storybook/react/stories/EmbedOptions/template.stories.ts index 19daaabef..59039bec2 100644 --- a/storybook/react/stories/EmbedOptions/template.stories.ts +++ b/storybook/react/stories/EmbedOptions/template.stories.ts @@ -69,6 +69,7 @@ export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' }); export const Haskell = livecodesStory({ template: 'haskell' }); +export const HaskellWasm = livecodesStory({ template: 'haskell-wasm' }); export const Scheme = livecodesStory({ template: 'scheme' }); export const CommonLisp = livecodesStory({ template: 'commonlisp' }); export const ClojureScript = livecodesStory({ template: 'clojurescript' }); diff --git a/storybook/solid/stories/EmbedOptions/template.stories.ts b/storybook/solid/stories/EmbedOptions/template.stories.ts index 19daaabef..59039bec2 100644 --- a/storybook/solid/stories/EmbedOptions/template.stories.ts +++ b/storybook/solid/stories/EmbedOptions/template.stories.ts @@ -69,6 +69,7 @@ export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' }); export const Haskell = livecodesStory({ template: 'haskell' }); +export const HaskellWasm = livecodesStory({ template: 'haskell-wasm' }); export const Scheme = livecodesStory({ template: 'scheme' }); export const CommonLisp = livecodesStory({ template: 'commonlisp' }); export const ClojureScript = livecodesStory({ template: 'clojurescript' }); diff --git a/storybook/svelte/stories/EmbedOptions/template.stories.ts b/storybook/svelte/stories/EmbedOptions/template.stories.ts index 19daaabef..59039bec2 100644 --- a/storybook/svelte/stories/EmbedOptions/template.stories.ts +++ b/storybook/svelte/stories/EmbedOptions/template.stories.ts @@ -69,6 +69,7 @@ export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' }); export const Haskell = livecodesStory({ template: 'haskell' }); +export const HaskellWasm = livecodesStory({ template: 'haskell-wasm' }); export const Scheme = livecodesStory({ template: 'scheme' }); export const CommonLisp = livecodesStory({ template: 'commonlisp' }); export const ClojureScript = livecodesStory({ template: 'clojurescript' }); diff --git a/storybook/vue/stories/EmbedOptions/template.stories.ts b/storybook/vue/stories/EmbedOptions/template.stories.ts index 19daaabef..59039bec2 100644 --- a/storybook/vue/stories/EmbedOptions/template.stories.ts +++ b/storybook/vue/stories/EmbedOptions/template.stories.ts @@ -69,6 +69,7 @@ export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' }); export const Haskell = livecodesStory({ template: 'haskell' }); +export const HaskellWasm = livecodesStory({ template: 'haskell-wasm' }); export const Scheme = livecodesStory({ template: 'scheme' }); export const CommonLisp = livecodesStory({ template: 'commonlisp' }); export const ClojureScript = livecodesStory({ template: 'clojurescript' }); diff --git a/storybook/web-components/stories/EmbedOptions/template.stories.ts b/storybook/web-components/stories/EmbedOptions/template.stories.ts index 19daaabef..59039bec2 100644 --- a/storybook/web-components/stories/EmbedOptions/template.stories.ts +++ b/storybook/web-components/stories/EmbedOptions/template.stories.ts @@ -69,6 +69,7 @@ export const CSharpWasm = livecodesStory({ template: 'csharp-wasm' }); export const FSharp = livecodesStory({ template: 'fsharp' }); export const FSharpWasm = livecodesStory({ template: 'fsharp-wasm' }); export const Haskell = livecodesStory({ template: 'haskell' }); +export const HaskellWasm = livecodesStory({ template: 'haskell-wasm' }); export const Scheme = livecodesStory({ template: 'scheme' }); export const CommonLisp = livecodesStory({ template: 'commonlisp' }); export const ClojureScript = livecodesStory({ template: 'clojurescript' }); diff --git a/tsconfig.json b/tsconfig.json index 9a5a12239..6c0bc06f9 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -53,7 +53,8 @@ "include": [ "src/**/*.ts", "src/sdk/react.tsx", - "src/livecodes/languages/fsharp-wasm/lang-fsharp-wasm-worker.raw.js" + "src/livecodes/languages/fsharp-wasm/lang-fsharp-wasm-worker.raw.js", + "src/livecodes/languages/haskell-wasm/lang-haskell-wasm-worker.raw.js" ], "exclude": ["**/node_modules/**", "src/livecodes/i18n/locales/**"] } diff --git a/vendor-licenses.md b/vendor-licenses.md index f91a4c4b4..1cd543c5b 100644 --- a/vendor-licenses.md +++ b/vendor-licenses.md @@ -34,6 +34,8 @@ BrowserFS: [MIT License](https://github.com/jvilk/BrowserFS/blob/76fd5122fcf3ad6 brython: [BSD-3-Clause license](https://github.com/brython-dev/brython/blob/c579e26d7e24c37c77f00fc345af0248ca6be8eb/LICENCE.txt) +bsdtar-wasm: [BSD licenses](https://github.com/haskell-wasm/bsdtar-wasm/blob/012117de366c13285036f37b4fcd9a59d1a06fbb/LICENSE) + chai: [MIT License](https://github.com/chaijs/chai/blob/1a8247f30dbe0f54268a9748ae673caec75d6bfe/LICENSE) Cherry: [EPL-1.0 License](https://github.com/squint-cljs/cherry/blob/60adcf6e3a8fb940a80c6a193599da0272fe3058/epl-v10.html) @@ -94,6 +96,8 @@ flow-remove-types: [MIT License](https://github.com/facebook/flow/blob/3ebee9f08 Fscreen: [MIT License](https://github.com/rafgraph/fscreen/blob/04244204efff724253df24f78336c9a2b7bc6505/LICENSE) +GHC: [BSD-3-Clause and bundled component licenses](https://gitlab.haskell.org/ghc/ghc/-/blob/master/LICENSE) + github-markdown-css: [MIT License](https://github.com/sindresorhus/github-markdown-css/blob/888d5a03223a2c14a8d3eb40e90a22f62469a46b/license) Gleam: [Apache License 2.0](https://github.com/gleam-lang/gleam/blob/55a4e5881923e5679dde57cf950de389d6e04be4/LICENCE) From a6aa2e9fbd26bc52ee515a4ab8cb1a8cf608fa3e Mon Sep 17 00:00:00 2001 From: Hatem Hosny Date: Wed, 16 Sep 2026 03:40:34 +0300 Subject: [PATCH 13/13] add stdin --- docs/docs/languages/haskell-wasm.mdx | 23 +++++-- .../haskell-wasm/lang-haskell-wasm-script.ts | 17 +++-- .../lang-haskell-wasm-worker.raw.js | 8 ++- .../templates/starter/haskell-wasm-starter.ts | 68 +++++++++++-------- src/livecodes/vendors.ts | 2 +- 5 files changed, 76 insertions(+), 42 deletions(-) diff --git a/docs/docs/languages/haskell-wasm.mdx b/docs/docs/languages/haskell-wasm.mdx index b2fcebf11..aee8a6060 100644 --- a/docs/docs/languages/haskell-wasm.mdx +++ b/docs/docs/languages/haskell-wasm.mdx @@ -39,9 +39,10 @@ Helper methods are available in the browser global `livecodes.haskellWasm` objec - `livecodes.haskellWasm.loaded`: A promise that resolves after the initial execution completes, or rejects if loading or execution fails. Compiler warnings do not reject it. -- `livecodes.haskellWasm.run`: A method that runs the current editor code again and returns a - promise that resolves to `{ output, error, exitCode }`. Calls are queued, because GHC's - interactive session cannot execute concurrently. +- `livecodes.haskellWasm.run`: A method that runs the current editor code again, optionally with + new input, and returns a promise that resolves to `{ output, error, exitCode }`. Calls are queued, + because GHC's interactive session cannot execute concurrently. +- `livecodes.haskellWasm.input`: The input provided to the program as `stdin` (see below). - `livecodes.haskellWasm.output`: The `stdout` of the last run. - `livecodes.haskellWasm.error`: The compiler/runtime diagnostics of the last run (empty when there are none). @@ -51,6 +52,21 @@ Example: +## Input (stdin) + +The input string is provided to the program as standard input, so ordinary Haskell works unchanged: + +```haskell +main :: IO () +main = do + name <- getLine + putStrLn ("Hello, " ++ name ++ "!") +``` + +Set `livecodes.haskellWasm.input` before the first run, or pass the input to +`livecodes.haskellWasm.run(input)` for subsequent runs. The input is fed once per run, and reading +past its end returns end-of-file. + ## Language Info ### Name @@ -92,7 +108,6 @@ This comment can be added in the `hiddenContent` property of the editor for embe - This integration uses GHC `9.14.0.20251031` and the libraries bundled with that build. Installing Cabal/Hackage packages is not supported. - Haskell runs in a worker, without direct access to the DOM or the page's JavaScript variables. -- Interactive standard input is not supported (stdin is empty). - Output is line-buffered. Compiler diagnostics and program stderr share the `error` field, including warnings. - Initialization has a five-minute timeout; each compilation/execution has a two-minute timeout. A diff --git a/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-script.ts b/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-script.ts index 973296941..4bf5f38ba 100644 --- a/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-script.ts +++ b/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-script.ts @@ -19,10 +19,11 @@ declare const window: Window & { livecodes: { haskellWasm: { loaded?: Promise; + input?: string; output?: string; error?: string; exitCode?: number; - run?: () => Promise; + run?: (input?: string) => Promise; runner?: ReturnType; }; }; @@ -70,7 +71,7 @@ const createRunner = (createWorker: () => Worker) => { }; const request = ( - message: { type: 'init' } | { type: 'run'; code: string }, + message: { type: 'init' } | { type: 'run'; code: string; stdin: string }, timeout: number, timeoutMessage: string, ) => @@ -115,11 +116,11 @@ const createRunner = (createWorker: () => Worker) => { } }; - const run = (code: string): Promise => { + const run = (code: string, stdin: string): Promise => { const result = queue.then(async () => { await init(); const response = await request( - { type: 'run', code }, + { type: 'run', code, stdin }, RUN_TIMEOUT_MS, 'Haskell execution timed out.', ); @@ -151,6 +152,7 @@ const parentOrigin = window.livecodes.haskellWasm ??= {}; const haskellWasm = window.livecodes.haskellWasm; haskellWasm.runner ??= createRunner(createHaskellWorker); +haskellWasm.input ??= ''; let activeRuns = 0; @@ -159,10 +161,11 @@ const postLoading = (payload: boolean) => { parent.postMessage({ type: 'loading', payload: activeRuns > 0 }, parentOrigin); // NOSONAR - fallback is safe with source/origin checks in the parent. }; -haskellWasm.run = async () => { +haskellWasm.run = async (input?: string) => { const code = Array.from(document.querySelectorAll('script[type="text/haskell-wasm"]')) .map((script) => script.textContent) .join('\n'); + haskellWasm.input = input ?? haskellWasm.input ?? ''; if (!code.trim()) { haskellWasm.output = ''; haskellWasm.error = ''; @@ -171,7 +174,7 @@ haskellWasm.run = async () => { } postLoading(true); try { - const result = await haskellWasm.runner!.run(code); + const result = await haskellWasm.runner!.run(code, haskellWasm.input); haskellWasm.output = result.output; haskellWasm.error = result.error; haskellWasm.exitCode = result.exitCode; @@ -200,7 +203,7 @@ haskellWasm.loaded = new Promise((resolve, reject) => { window.addEventListener( 'load', async () => { - const result = await haskellWasm.run!(); + const result = await haskellWasm.run!(haskellWasm.input); if (result.exitCode !== 0) reject(new Error(result.error)); else resolve(); }, diff --git a/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-worker.raw.js b/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-worker.raw.js index 684be07e8..019d51f51 100644 --- a/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-worker.raw.js +++ b/src/livecodes/languages/haskell-wasm/lang-haskell-wasm-worker.raw.js @@ -2,6 +2,7 @@ // Runs GHC in the browser (https://github.com/haskell-wasm/ghc-in-browser) inside a Web Worker. // The asset URLs are injected by the main thread when the worker is created. +let dyld; let run; let output = ''; let error = ''; @@ -50,7 +51,7 @@ const init = async () => { wasi.fds[0] = new OpenFile(new File(new Uint8Array(archive), { readonly: true })); if (wasi.start(instance) !== 0) throw new Error(error); - const dyld = await main({ + dyld = await main({ rpc: new DyLDBrowserHost({ rootfs, stdout: (message) => { @@ -89,6 +90,11 @@ self.onmessage = async ({ data }) => { if (!run) throw new Error('Haskell runtime is not initialized.'); output = ''; error = ''; + // `setStdin` is provided by the patched runtime to back fd 0 with the + // current input; without it the program reads an empty stdin (EOF). + if (typeof dyld.setStdin === 'function') { + dyld.setStdin(typeof data.stdin === 'string' ? data.stdin : ''); + } await run('-v0', data.code); reply({ type: 'result', result: { output, error, exitCode: 0 } }); } catch (err) { diff --git a/src/livecodes/templates/starter/haskell-wasm-starter.ts b/src/livecodes/templates/starter/haskell-wasm-starter.ts index 19ff6e4ed..feb6b9d71 100644 --- a/src/livecodes/templates/starter/haskell-wasm-starter.ts +++ b/src/livecodes/templates/starter/haskell-wasm-starter.ts @@ -12,32 +12,49 @@ export const haskellWasmStarter: Template = {

    Hello, Haskell!

    -
    Loading GHC...
    - +

    You clicked 0 times.

    +
    `.trimStart(), @@ -53,26 +70,19 @@ export const haskellWasmStarter: Template = { .logo { width: 100px; } -pre { - padding: 1rem; - background: #f4f1f8; - text-align: left; - white-space: pre-wrap; -} `.trimStart(), }, script: { language: 'haskell-wasm', content: ` --- A lazy, infinite list of Fibonacci numbers. -fibs :: [Integer] -fibs = 0 : 1 : zipWith (+) fibs (drop 1 fibs) - main :: IO () main = do - putStrLn "Hello, Haskell!" - putStrLn "The first 10 Fibonacci numbers:" - print (take 10 fibs) + putStrLn "Haskell" + input <- getLine + let count = case reads input of + [(n, "")] -> n + 1 + _ -> 0 + print (count :: Int) `.trimStart(), }, }; diff --git a/src/livecodes/vendors.ts b/src/livecodes/vendors.ts index 5abe5bc9f..6ddc4a68d 100644 --- a/src/livecodes/vendors.ts +++ b/src/livecodes/vendors.ts @@ -254,7 +254,7 @@ export const fscreenUrl = /* @__PURE__ */ getUrl('fscreen@1.2.0/dist/fscreen.esm export const fsharpWasmBaseUrl = /* @__PURE__ */ getUrl('@live-codes/fsharp-wasm@0.3.0/'); -export const ghcBrowserBaseUrl = /* @__PURE__ */ getUrl('unpkg:@live-codes/ghc-in-browser@0.1.0/'); +export const ghcBrowserBaseUrl = /* @__PURE__ */ getUrl('@live-codes/ghc-in-browser@0.2.0/'); export const githubMarkdownCss = /* @__PURE__ */ getUrl( 'github-markdown-css@5.1.0/github-markdown.css',