Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Scala to WebAssembly #scala_waiwai
Search
Rikito Taniguchi
February 27, 2024
2k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Scala to WebAssembly #scala_waiwai
https://scala-tokyo.connpass.com/event/307069/
Rikito Taniguchi
February 27, 2024
More Decks by Rikito Taniguchi
See All by Rikito Taniguchi
GC言語のWasm化とComponent Modelサポートの実践と課題 - Scalaの場合
tanishiking
0
240
Capture Checking / Separation Checking 入門
tanishiking
0
730
Implementing and Evaluating a High-Level Language with WasmGC and the Wasm Component Model: Scala’s Case
tanishiking
0
840
Scala meets WebAssembly
tanishiking
0
1.1k
Why Wasm+WASI for Scala
tanishiking
0
160
Scala to WebAssembly: Exploring the How and Why
tanishiking
1
1.9k
Scala Days Madrid 2023 参加レポート
tanishiking
0
120
Tooling for Scala3
tanishiking
0
460
API-Based Code Search
tanishiking
0
120
Featured
See All Featured
What’s in a name? Adding method to the madness
productmarketing
PRO
24
4.2k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
580
How Software Deployment tools have changed in the past 20 years
geshan
2
35k
How People are Using Generative and Agentic AI to Supercharge Their Products, Projects, Services and Value Streams Today
helenjbeal
2
370
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
530
Java REST API Framework Comparison - PWX 2021
mraible
34
9.8k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
Agile that works and the tools we love
rasmusluckow
331
22k
Building the Perfect Custom Keyboard
takai
2
910
Transcript
Scala to WebAssembly: How and Why Scala わいわい勉強会 #2 tanishiking
What is WebAssembly (Wasm)? - ブラウザで実行可能な、高速・安全・ポータブルで、 サイズとロードが高効率なプログラム形式 - 最近は WASI
(WebAssembly System Interface) によりブラウ ザ外でも活躍 - 様々な言語から Wasm へコンパイル可能 - C/C++, Rust, Go, Kotlin, Dart, Swift, OCaml, Haskell, etc…
Scala -> Wasm へコンパイラバックエンド開発中 https://github.com/scala-js/scala-js/issues/4928
Why Wasm is important for Scala? ブラウザでScalaを実行するだけなら Scala.js があるじゃん? •
高効率なロードと実行・安全性 • (将来的に) ブラウザ外での活用 ◦ Cloud computing (Spin, kruslet) ◦ Edge computing (Cloudflare Workers, fastly edge) ◦ Plugin systems (Istio plugin, shopify function) ◦ Smart Contract (Ethereum Wasm, Near Protocol) • Wasm Component で他言語との interop
https://www.youtube.com/watch?v=QsOHofFJpig 実はかなり前から検討はされていた (2019/06)
Lack of Garbage Collection JVMと違ってWasm(Engine)にGCはない(なかった) GC言語をWasmにポートするには • VM自体をWasmに変換してその上でプログラムを実行 ◦ Ruby,
Python, JS (QuickJS), Java (CheerPJ) ◦ VMを含んでいるので Wasm module が巨大 • GCコードをWasm moduleに組み込む ◦ Swift, Java(TeaVM), AssemblyScript, Go(?) ◦ (実装によるが)非効率・is GC portable?・ホスト環境(JSなど)を介した参 照をトラックできない
WasmGC WebAssembly に GC managed なデータ構造を導入する proposal。Wasm EngineがGC管理してくれる V8, SpiderMonkey,
JavaScriptCore(未リリース?) などで実。 wasmtime などの pure WASI runtime も実装中 Kotlin, Dart OCaml, Java(j2cl)
Demo (時間あれば)
将来の展望 • まずはブラウザで動くWasmに変換を目指す ◦ Scala.js の標準ライブラリは JS 資産利用のまま • (pure)
WASI サポート ◦ そもそも pure Wasm runtime がまだ WasmGC 未対応 ◦ Scala の標準ライブラリもWASIスタックの上で再実装 ◦ 各種 third party library も WASI 向けに再実装する必要がある... ▪ 直接 WASI利用しなければそれほど難しくないはず...(?)
参考 • A new way to bring garbage collected programming
languages efficiently to WebAssembly • Scala.js and WebAssembly, a tale of the dangers of the sea - Sébastien Doeraene • n月刊ラムダノート Vol.4