Merge remote-tracking branch 'home/v4' into v4
All checks were successful
Build / build (push) Successful in 9m52s

This commit is contained in:
2025-08-25 10:13:56 +09:00
13 changed files with 139 additions and 4 deletions

17
content/Dioxus.md Normal file
View File

@@ -0,0 +1,17 @@
まだ開発中だけど[[Blitz]]というRustで書かれた独自のネイティブHTMLレンダラの統合予定もあり
アニメーションライブラリ
[GitHub - wheregmis/dioxus-motion: A lightweight, cross-platform animation library for Dioxus, designed to bring smooth, flexible animations to your Rust web, desktop, and mobile applications.](https://github.com/wheregmis/dioxus-motion?tab=readme-ov-file)
グラフ描画ライブラリ愚直にSVG生成で実装されてる
[GitHub - dioxus-community/dioxus-charts: A simple chart components library for Dioxus](https://github.com/dioxus-community/dioxus-charts)
Rustで書かれたUIでも高速ホットリロードができるとかどうやってるんだ
[\[media\] Dioxus Subsecond Rust Hotpatch Engine + Ratatui ❤️ : r/rust](https://www.reddit.com/r/rust/comments/1j8z3yb/media_dioxus_subsecond_rust_hotpatch_engine/)

1
content/Elm.md Normal file
View File

@@ -0,0 +1 @@
#programming-language

2
content/Erlang.md Normal file
View File

@@ -0,0 +1,2 @@
#programming-language

0
content/Gleam.md Normal file
View File

28
content/Gream.md Normal file
View File

@@ -0,0 +1,28 @@
#programming-language
[[Rust]]っぽいシンタックスだが、[[Erlang]]の[[BEAM VM]]もしくは[[JavaScript]]をターゲットとして コンパイルされるスクリプティング言語。
Use構文が面白い。ちょっと[[Computation Expression]]でSeqを使った時とか、[[Koka]]のWith構文と似た仕組みと見える
[Use - The Gleam Language Tour](https://tour.gleam.run/advanced-features/use/)
```rust
pub fn with_use() -> Result(String, Nil) {
use username <- result.try(get_username())
use password <- result.try(get_password())
use greeting <- result.map(log_in(username, password))
greeting <> ", " <> username
}
pub fn without_use() -> Result(String, Nil) {
result.try(get_username(), fn(username) {
result.try(get_password(), fn(password) {
result.map(log_in(username, password), fn(greeting) {
greeting <> ", " <> username
})
})
})
}
```

19
content/Koka.md Normal file
View File

@@ -0,0 +1,19 @@
#programming-language
[The Koka Programming Language](https://koka-lang.github.io/koka/doc/index.html)
[[MicroSoft]]のチームが研究しているプログラミング言語。
名前KOKA効果のとおり、[[代数的エフェクト]]が明示的な組み込みシンタックスで扱える。
中括弧の囲みをインデントで代用できて、JSっぽくもPythonっぽくも書ける。シンタックス的に推測できれば無名関数を省略して書けたりと、かなり構文糖衣が積極的に使われている。
With構文が面白い。[[Haskell]]のIOモナドで`<-`をチェーンしていくようなやつが、単に高階関数を受け取る関数の順番を入れ替える構文として実装されてるので、ネストが深くなっていくのを避けられる。
```koka
with x <- f(e1,...,eN)
<body>
//equal to
f(e1,...,eN, fn(){ <body> })
```

18
content/Moonbit.md Normal file
View File

@@ -0,0 +1,18 @@
#programming-language
[[Rust]]っぽい構文とシステムから、メモリ管理だけはGCに任せて[[WebAssembly]]ファーストな言語を設計してみましたみたいなやつ
[MoonBit](https://www.moonbitlang.com/)
現状のコンパイラは[[OCaml]]で書かれてるっぽい。
[GitHub - moonbitlang/moonbit-compiler](https://github.com/moonbitlang/moonbit-compiler)
> 元 Meta で BuckleScript | [[ReScript]] を開発していた [[Hongbo Zhang]] 氏がチーフアーキテクト。
[自分が Moonbit 言語について知っていること](https://zenn.dev/mizchi/articles/practical-moonbit)
あ、そうなんだ

6
content/Rhai.md Normal file
View File

@@ -0,0 +1,6 @@
#programming-language
[[Rust]]で、かつRust言語のいいところを取り込んだ[[Lua]]みたいな埋め込みやすい言語を作ってみたらこうなる、みたいなやつ
[Rhai Embedded Scripting for Rust](https://rhai.rs/)

View File

@@ -2,3 +2,14 @@
date: "2023-09-01T19:08:25+0900"
---
#tools #software
## Rustから影響受けたっぽいスクリプティング言語
- [[Gluon]]
- [[Rune]]
- [[Rhai]]
- [[Moonbit]]
- [[Gream]]
[[RustでGUIを作る選択肢]]

View File

@@ -0,0 +1,26 @@
## [[egui]]
[[otopoiesis]]で使ってる。[[ImGui]]から影響を受けたimmediate GUI。WebAssemblyでもきちんと動作する全部を一つのcanvasにレンダリングする。DOMの扱いは無理
## [[iced]]
[[Elm]] のアーキテクチャに影響を受けたライブラリ。
マルチバイト文字非対応
## [[Tauri]]
Webviewベースで、フロントエンドはJSやTypeScriptで書くという、[[Electron]]のような構成のデスクトップアプリを作れるフレームワーク
生のCanvasを触ることもできる
## [[Dioxus]]
フロントエンドも含めてRustで完結するWebviewベースのライブラリ。
こちらは生Canvas触れないのがつらい
Dioxusでつくっていって、サムネイルとか必要ならWeb-sysでCanvas動かせばそれでいいのかな

View File

@@ -10,7 +10,12 @@
- 操作的意味論的にもある程度一貫性がある
- モジュール内ではシンボルの相互参照が可能(後から定義されるシンボルでも参照可能)
で、デザインチョイスのトレードオフとしては意味論を楽にしようと思うと分割コンパイルがめんどくさくなる
分割コンパイルができるということは、依存するファイルを毎回コンパイルしないでも、型情報のキャッシュが残ってれば再利用できるということ
バラバラのMIRとしてコンパイルできて、関数や定数はmonomorphizeされたユニークな名前値の対応関係が1:1で付く
デザインチョイスのトレードオフとしては意味論を楽にしようと思うと分割コンパイルがめんどくさくなる
複数のコードを合体させるときに、流用されるコードの複製が増える問題
@@ -42,7 +47,8 @@ mod modname{//ソースファイルと同じ宣言
```
```rust
mod(stage-1){//ステージの変更
mod modname{//ステージの変更
@stage = macro
//
}
```

View File

@@ -13,7 +13,7 @@ date: 2025-07-02 11:40
## 基本構文
構文のベースは [Elm](https://elm-lang.org/docs/records) である。この部分だけは Rust 風にはしない。
構文のベースは [[Elm]] である。この部分だけは Rust 風にはしない。
匿名レコード型を正の文脈で使う。

View File

@@ -121,6 +121,7 @@ ${
この、最後に閉じ括弧が溜まっていく形にしない限り、yはxを参照できなくなってしまう
→ステージは[[mimiumのモジュールシステム|モジュール]]単位で変更していくほうが都合がよさそう。
ステージ表記は相対表記がいいのかしら