Files
sanspie 962c479933
ci-platforms / darwin amd64 smoke (push) Skipped
ci-platforms / darwin arm64 smoke (push) Skipped
ci-platforms / windows amd64 smoke (push) Skipped
ci / checks (push) Successful in 10m24s
ci / build (amd64, linux, ubuntu-24.04) (push) Successful in 12m13s
ci / release (push) Successful in 8m57s
web: the browser build drops the self-update core (D362 amended)
modules/update links aego/update (net/http, TLS, x509, archives) only off js; the web build gets a browser backend with the same section, settings and aego/update API, where Check and Apply fail and State stays idle. A test compares both builds' registrations.
depcheck: wasm-runtime and wasm-try variants, update in wasmDenied, wasmDeniedStd (net/http, crypto/tls, crypto/x509, archive/*) with the wasm-reaches-std rule.
wasmsize -prev: playground-size and try-size print the change since their last run.
Loaders show the compressed download size: wasmGzip in an export's files.json, aego-*-gzip and data-wasm-gzip on the site; docstool writes the .wasm.gz copies.
Demo game.wasm 33.9 -> 26.0 MB, gzip 8.07 -> 6.25 MB.
2026-10-27 20:06:16 +03:00

62 lines
2.8 KiB
HTML

<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Aego Playground</title>
<meta name="description" content="Write Aego Script in the browser and run it: console examples and small scenes, with problems and output next to the code.">
<meta property="og:type" content="website">
<meta property="og:site_name" content="Aego">
<meta property="og:title" content="Aego Playground">
<meta property="og:description" content="Write Aego Script in the browser and run it: console examples and small scenes, with problems and output next to the code.">
<link rel="icon" href="data:,">
<link rel="stylesheet" href="play.css?v=dev">
</head>
<body>
<header class="bar">
<a class="brand" href="../">Aego</a>
<span class="sep">/</span>
<span class="title">Playground</span>
<select id="examples" aria-label="Examples"><option value="">Examples…</option></select>
<label class="frames" id="frames-label">Frames <input id="frames" type="number" min="1" max="3600" value="120"></label>
<button id="run" disabled>Run <kbd>Ctrl+Enter</kbd></button>
<button id="stop" class="ghost" disabled>Stop</button>
<span id="status" class="status">Loading…</span>
</header>
<main class="layout">
<section class="editor" aria-label="Script">
<div id="loader" class="loader" role="status" aria-live="polite" data-wasm-size="0" data-wasm-gzip="0" data-version="dev">
<div class="spinner" aria-hidden="true"></div>
<div id="loader-title" class="loader-title">Loading engine…</div>
<div class="progress"><div id="loader-bar" class="progress-bar indeterminate"></div></div>
<div id="loader-detail" class="loader-detail"></div>
</div>
<div class="code">
<div id="marks" class="marks" aria-hidden="true"></div>
<pre id="highlight" class="highlight" aria-hidden="true"></pre>
<textarea id="source" spellcheck="false" autocapitalize="off" autocomplete="off" wrap="off"></textarea>
</div>
</section>
<section class="side">
<div id="game-pane" class="game">
<div class="game-view">
<canvas id="game" data-aego tabindex="0" aria-label="Game view"></canvas>
<div id="game-hint" class="game-hint">Pick an example with a scene and press Run</div>
</div>
<div class="game-bar"><span id="stats" class="stats"></span><span class="hint">Click the view to play · click outside to release</span></div>
</div>
<div class="pane">
<h2>Problems <span id="problem-count" class="count"></span></h2>
<ul id="problems" class="list"></ul>
</div>
<div class="pane grow">
<h2>Console <button id="clear" class="link">Clear</button></h2>
<ul id="console" class="list mono"></ul>
</div>
</section>
</main>
<script src="wasm_exec.js?v=dev"></script>
<script src="play.js?v=dev"></script>
</body>
</html>