Skip to content

Release 0.2.0: relative JS imports, markup else if, rx-tsc on npm - #55

Merged
ryansolid merged 3 commits into
mainfrom
claude/project-thread-k44bg2
Nov 12, 2026
Merged

ryansolid merged 3 commits into
mainfrom
claude/project-thread-k44bg2

Conversation

@ryansolid

Copy link
Copy Markdown
Member

Merging this publishes 0.2.0 of the compiler, runtime, language server and extension (with RELEASES=on). It fixes the three rough spots from a 0.1.0 user's report.

Fixes

  • Relative JS imports. import pure { f } from "./util.js" now compiles to an ES import in product builds. Before, it failed as "not in the scenario prelude", which is why a package.json #imports alias was needed. ./api is still the injected API (CP-4). This is the new MO-8c in spec/09, tested in compiler/test/node.mjs. The test fails without the fix.
  • else if in markup. It is sugar for a nested if in the else branch, in both ref/ and the crate. The grammar is updated in spec/07 and guide/reference.md, and the new scenario S-surface-4 covers it.
  • rx-tsc on npm. The language server bump to 0.2.0 publishes bin/tsc.js.

Release. Every package goes to 0.2.0, because the optimistic → guess rename (#47) is breaking. CHANGELOG.md lists everything on main since 0.1.0.

Checks

  • ref: 126 pass
  • oracle and compiled: 0 failures
  • crate agreement: 352/352
  • cargo test: pass
  • compiler node test: pass
  • language-server tests: 4/4, after rebuilding the stale local wasm. The shop failure seen earlier came from that old local build, not from main.

Generated by Claude Code

- A relative JS import is an ES import in product builds (MO-8c); `./api`
  stays the injected API. No package.json `#imports` alias needed.
- `else if` in markup control (spec/07), as a nested `if` in the else.
- Bump compiler, runtime, language server (ships rx-tsc) and the
  extension to 0.2.0; CHANGELOG.md.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0117BoWPLMLsJjr7WiwaUgvd
@cloudflare-workers-and-pages

cloudflare-workers-and-pages Bot commented Nov 12, 2026 •

Copy link
Copy Markdown

🚀 Deploying Preview to Cloudflare 🚀

Preview Deployments by commit

Status Deployment URL Commit Updated (UTC) See this deployment's details
  • Build: Failed ❌

View logs ↗
2727a05 2026-11-12T18:50:54.209Z View logs ↗
  • Build: Failed ❌

View logs ↗
586021f 2026-11-12T18:42:10.305Z View logs ↗
  • Build: Failed ❌

View logs ↗
b569203 2026-11-12T18:35:06.949Z View logs ↗

Rust 1.100.0 (released today) links crt1-reactor.o into a wasm32-wasip1
cdylib itself, so the copy build.rs adds defined `_initialize` twice and
the wasm32-wasi package failed to link. Add it only before 1.100.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0117BoWPLMLsJjr7WiwaUgvd
Rust 1.100.0 (today) breaks the wasm32-wasip1-threads package: its wasi-libc
defines __wasilibc_futex_wait_atomic_wait with a signature emnapi 1.x does
not match (an invalid module), and it links crt1-reactor.o itself. Reverts
the build.rs workaround for the second, which the first makes moot.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0117BoWPLMLsJjr7WiwaUgvd
@ryansolid
ryansolid merged commit 69ec765 into main Nov 12, 2026
17 of 18 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants