🌘 深入解析 Ohm 的 PEG 轉 WebAssembly 編譯器
➤ 從直譯器到 WebAssembly:構建高效能解析引擎的技術演進
https://ohmjs.org/blog/2026/03/12/peg-to-wasm
Ohm 於 v18 版本進行了核心架構的重大改寫,效能提升 50 倍且記憶體消耗降至 10%。此次升級的核心在於將解析表達式文法(PEG)直接編譯為 WebAssembly (Wasm) 模組,而非傳統的直譯器模式。透過在編譯階段將解析邏輯展開為靜態程式碼,並引入基於區域(Arena)的記憶體配置技術,Ohm 成功優化了語法樹(CST)的構建效率,實現了極致的解析性能。
+ 這簡直是解析器領域的重大突破!將 PEG 靜態編譯成 Wasm 比起傳統的 AST 直譯,執行效率的提升確實令人驚艷。
+ 使用 Bump Allocator 來管理 CST 節點的思路非常精妙,尤其是對 Terminal 節點進行標記化(Tagged)處理,這種低階優化在 JavaScript 環境下幾乎無
#編譯器技術 #WebAssembly #Ohm #效能優化 #解析器
Inside Ohm's PEG-to-Wasm compiler | Ohm

Ohm is a user-friendly parsing toolkit for JavaScript and TypeScript. You can use it to parse custom file formats or quickly build parsers, interpreters, and compilers for programming languages. Learn more

Diving into the bare-metal boot sequence of #WebAssembly on the #RP2350 reveals the critical handover from the hardware reset trampoline directly into the #Rust #embedded runtime. Before the #embeddedwasm engine can even spin up, the runtime executes this precise initialization block to systematically unlock the hardware spinlocks by writing a 1 to the SIO registers starting at 0xd0000100. In multi-core microcontrollers like the RP2350, spinlocks act as essential hardware synchronization primitives that prevent both cores from accessing the same shared data simultaneously; when one core claims a lock, the other must continuously check, or spin, in a loop until it is released. By writing to these registers to force-clear them during boot, the system guarantees a completely clean slate and prevents immediate deadlocks before executing any WebAssembly payloads. #ReverseEngineering

From map to physical object – with AI & #MapComponents 🖨️

🔍️ Tobias Weber built a browser-based app turning #OpenStreetMap data + Terrain-RGB into 3D-printable models – no backend needed!

⚙️ Powered by:
@mapcomponents/react-maplibre for 2D selection
• Three.js for rendering & export
• WebAssembly for geodata processing

💡 Even a 3MF export via Claude Opus – enabling direct import into Bambu Studio!

👉 https://www.wheregroup.com/ueber-uns/blog/3d-openstreetmap-karten-aus-dem-3d-drucker

#ThreeJS #WebAssembly #AIAgents #OSM #OpenSource

3D-#OpenStreetMap-Karten aus dem 3D‑Drucker – gebaut (fast) komplett mit KI 👀

🔍️ Tobias Weber entwickelt seit 2025 mit KI-Agenten eine Web-App: OSM-Daten + Terrain-RGB = druckfertige 3D-Modelle – komplett im Browser, kein Backend!

⚙️ Stack: MapLibre, Three.js, WebAssembly & Claude Opus für sogar 3MF-Export!

💡 Fazit: KI-Agenten sind mehr als Spielerei – eigene Produktideen umsetzen war nie realistischer.

👉 https://www.wheregroup.com/ueber-uns/blog/3d-openstreetmap-karten-aus-dem-3d-drucker

#OSM #3DDruck #ThreeJS #WebAssembly #AIAgents #GIS

But if you re hellbent on not writing js , you can try Blazor #WebAssembly with #csharp , yes #Microsoft says hello
I am still curious , how does #sourcehut do it

Как я перенес консольное приложение в Rust + WASM и выложил на GitLab Pages

Перенес консольного приложения в формат, удобный к показу по ссылке: переписал логику на Rust, собрал в WebAssembly и завернул в статичную страницу с терминальным интерфейсом на чистом HTML/CSS/JS. В статье разбираю практический пайплайн: экспорт функции из Rust в WASM ( wasm_bindgen ), инициализацию модуля в браузере через JS, вывод результата в DOM и публикацию через GitLab Pages. Отдельно показываю, как встроил .wasm в base64, чтобы страница работала даже без отдельной загрузки бинарного файла. Это кейс про то, как быстро превратить небольшую CLI-логику без системных API в наглядное web-демо, которое открывается с любого устройства без установки. Репозиторий: gitlab.com/Evgene-Kopylov/iching_wasm Демо: i-ching-wasm-c50914.gitlab.io Читать статью с картинками

https://habr.com/ru/articles/1014026/

#Rust #WebAssembly #WASM #статический_сайт #консольное_приложение #портирование #терминальный_интерфейс #безопасность #gitlab_pages #cicd

Как я перенес консольное приложение в Rust + WASM и выложил на GitLab Pages

Мне попало небольшое консольное приложение с предложением посмотреть, как работает. Вместо локального запуска я решил сразу сделать веб-версию, которую можно открыть по ссылке на демо . Вместо этого...

Хабр

Конец эпохи вероятностного ИИ: почему гонка за GPU от Nvidia — это архитектурный тупик

Индустрия генеративного искусственного интеллекта больна . Симптомы этой болезни видны невооруженным глазом: шесть пальцев на руках, нарушенная геометрия объектов в движении и рассинхрон звука с артикуляцией (AV-desync). Но вместо того, чтобы лечить причину математикой , техногиганты пытаются заглушить боль грубой силой, заливая проблему деньгами и сжигая мегаватты энергии на кластерах Nvidia H100 . Сегодня мы наблюдаем классическую архитектурную ошибку: попытку решить фундаментальный математический изъян экстенсивным наращиванием "железа". И эта гонка приведет к неизбежному краху текущей бизнес-модели монополистов.

https://habr.com/ru/articles/1014130/

#генеративный_ИИ #инференс #галлюцинации_нейросетей #архитектура_ИИ #оптимизация_вычислений #детерминированные_алгоритмы #ASIC #GPU #Nvidia #WebAssembly

Конец эпохи вероятностного ИИ: почему гонка за GPU от Nvidia — это архитектурный тупик

Индустрия генеративного искусственного интеллекта больна . Симптомы этой болезни видны невооруженным глазом: шесть пальцев на руках, нарушенная геометрия объектов в движении и рассинхрон звука с...

Хабр
Windows でしか動かない描画処理をブラウザで動かす OSS を公開した - Qiita

昔の Windows で描画を伴うソフトやゲームでは DirectX や Direct3D という グラフィックスを描画するための API が使われていました。 この DirectX / Direct3D は Microsoft が開発したものであり、基本的に Window...

Qiita

My memory isn't getting worse, it's just using exponential decay - by Matthew Kim

https://chunkofcoal.com/posts/exponential-decay/

#WebAssembly #WASM #DataStructure #Algorithm #Algorithms #Rust #RustLang

My memory isn't getting worse, it's just using exponential decay

https://github.com/friendlymatthew

chunkofcoal.com

[Перевод] Мы переписали наш парсер WASM с Rust на TypeScript — и он ускорился в три раза

Мы создали парсер openui‑lang на Rust и скомпилировали его в WASM. Логика была здравой: Rust быстрый, WASM в браузере даёт скорость, близкую к нативной, а наш парсер — разумно сложный, многоэтапный конвейер. Почему бы не захотеть его на Rust? Но оказалось, мы оптимизировали не то, что нужно.

https://habr.com/ru/articles/1013058/

#webassembly #rust #typescript #программирование

Мы переписали наш парсер WASM с Rust на TypeScript — и он ускорился в три раза

Сгенерировано ИИ Qwen3.5-Plus Мы создали парсер openui‑lang на Rust и скомпилировали его в WASM. Логика была здравой: Rust быстрый, WASM в браузере даёт скорость, близкую...

Хабр