Press ← or → to navigate between chapters Press S or / to search in the book Press ? to show this help Press Esc to hide this help Typechecker Zoo This is a pet project of mine I’ve been working on for a while. We’re going to create minimal implementations of the most successful static type systems of the last 50 years. This will involve making toy implementations of programming languages and the
ここの記事を更新するのは約1年ぶり。夏の間は遊んでいたり秋からは仕事が忙しくなったりの近況だった。 コロナウィルスで自宅に閉じ込められてしまったので、プログラミングの練習のためにテキストエディタを作ってみた。 得られた知見などを紹介しよう。 目標としている機能・実装 練習・教材用として十分な小ささ。 記事のネタになる。また、作っていて飽きない。ひと篭もりするプロジェクトとして適切なサイズ。 昔から、プログラマなら作ってみたいものとして、(1)コンパイラ (2)OS (3)エディタ、がよく挙げられる。コンパイラについては以前に書いた。今回はエディタにチャレンジしてみることにした。 テキストエディタを作る場合、GUIツールキットを使って作成することも考えられるが、今回はviのようにターミナル上で動作するタイプのものを作る。時間があれば、次の様な発展的な目標も検討したい。 設定変更機能を持つ(そ
はじめに Tauri v2 にバージョンが上がり、モバイル (iOS/Android) 対応が正式にサポートされた。 また、プラグインに関して大幅なサポート変更があり、Tauri のコア部分までアクセスできるものを作成できるようになった。 そして、Tauri v1 の学びから、高度なセキュリティサポートが明確になっていき、こうして Tauri v2 のセキュリティサポートは大幅な変更と対応拡張が行われたという経緯がある。 公式ドキュメント まずは公式ドキュメントをぺたり。 これを読み解きつつ、特に注意したり、自分が使うときにどう設定すればいいかを考えながらまとめていく。 トラスト境界 (Trust Boundaries) を意識する トラスト境界 (Trust Boundaries/トラストバウンダリ) は、プログラムデータや実行が「信頼」のレベルを変更する境界、または異なる機能を持つ2つ
事象 rust-toolchainを設定しているOSSなどで、まれにrust-analyzerを見つけられないことがある。直近だとBiomeで環境構築をしていた際に遭遇した。なお、筆者の環境はmacOSである。 VSCodeやZedなどは、基本的に独自のパスにrust-analyzerをインストールしているので(要出典)?、見つからないということはないようだが、Neovimというかrustaceanvimなどを使用していると、マシン自体のrust-analyzerを探しに行くっぽい(要出典; $HOME/.cargo/bin/rust-analyzerのことを言ってる) rust-toolchainではsymlinkを書き換えているのか、profileがdefaultで設定されているプロジェクトでは次のようなエラーを見かけることがある。下記のエラーが出たタイミングでは、rust-analy
Yewは最も歴史が古く、スター数も多いですが、近年は更新が少なめです。 Leptosは新しいながらもすでに16,000以上のスターを獲得しており、最も勢いがあります。 Sycamoreも精力的に更新が続けられています。 各フレームワークのサンプルを見てみましょう。 Yewのサンプル Build a sample appにあったカウンターの実装を見てみます。 use yew::prelude::*; #[function_component] fn App() -> Html { let counter = use_state(|| 0); let onclick = { let counter = counter.clone(); move |_| { let value = *counter + 1; counter.set(value); } }; html! { <div> <but
angular-tauri - Angular with Typescript, SASS, and Hot Reload. nuxtor - Nuxt 3 + Tauri 2 + UnoCSS, a starter template for building desktop apps. rust-full-stack-with-authentication-template - Yew, Tailwind CSS, Tauri, Axum, Sqlx - Starter template for full stack applications with built-in authentication. tauri-angular-template - Angular template tauri-astro-template - Astro template tauri-bishop-t
Linux Daily Topics Hector Martin、Asahi Linuxプロジェクトリーダーも辞任 Asahi Linuxのプロジェクを立ち上げ、プロジェクトリーダー(リードデベロッパ)を務めてきたHector Martinは2月14日、プロジェクトリーダーを辞任することを明らかにした。既報の通り、Martinは2月7日付けでAppleシリコンコードのアップストリームメンテナーを辞任したが、その1週間後にはみずからがローンチしたプロジェクトからも離れることとなった。 Resigning as Asahi Linux project lead -marcan.st Passing the torch on Asahi Linux -Asahi Linux 今後、Asahi LinuxはMartinからアップストリームメンテナーを引き継いだSven PeterとJanne
背景 TL;DR 要件定義 エラーに求めるもの no_stdのエラー設計は難しい 既存設計調査 StackErrorとは StackErrorの実現方法 StackErrorの利点 StackError利用時のError型サイズの考察 設計&実装 独自実装(manual) snafuを使った実装 コードサイズの比較 まとめ 補足 thiserrorはStackErrorの実装には不向き GreptimeDBの説明 私が躓いたところ snafuのErrorのサイズを減らす方法 謝辞 背景 趣味で作っている途中の、Rustで書かれたマイコン(no_std環境)で動作するJTAGデバッガアプリケーションのエラー設計を考えています。 今作っているJTAGデバッガアプリケーションでは、インターフェイス・JTAG・DAPなどの階層に分けた構造になるよう設計しています。 この設計に加えてそれぞれの階層の
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く