タグ

Rustに関するzyzyのブックマーク (164)

  • Announcing Rust 1.53.0 | Rust Blog

    The Rust team is happy to announce a new version of Rust, 1.53.0. Rust is a programming language that is empowering everyone to build reliable and efficient software. If you have a previous version of Rust installed via rustup, getting Rust 1.53.0 is as easy as: $ rustup update stable If you don't have it already, you can get rustup from the appropriate page on our website, and check out the detai

    Announcing Rust 1.53.0 | Rust Blog
    zyzy
    zyzy 2021/06/18
    Unicodeで名前書けるように
  • Zola

    Your one-stop static site engine Forget dependencies. Everything you need in one binary. Get started No dependencies Zola comes as a single executable with Sass compilation, syntax highlighting, table of contents and many other features that traditionally require setting up a dev environment or adding some JavaScript libraries to your site. Blazing fast The average site will be generated in less t

    zyzy
    zyzy 2021/03/07
    そろそろrustちゃんと書き慣れたい
  • WASMとRustはVue.js/React.jsを打倒するのか? - JSへの侵略の歴史

    はじめに 「Typescriptの次はRustかもしれない」という記事がバズってるのを見かけました。 なかなか面白くて、PAとしてのWASMRustを比較している記事です。ちょうど最近「レガシーおじさん、SPAを始めてみた。そして限界を知る」でも書いた通り最近SPAに手を出してみたのですが、いろいろやろうとするとSSRのためのBackend for Frontend (BFF)等が必要になるとわかり「これJSでやる必要なくない?」とも感じていたのでちょうど良かったです。 こういうのを見るとRIAやGWTのように似たアプローチで廃れた技術や、登場が早すぎたMeteor、今も頑張ってるMSのBlazorなど色々頭をよぎります。といわけで歴史を俯瞰する意味でHTML + JavaScriptとそれ以外の技術のせめぎ合いの歴史やMSのBlazorRustのyewなどWebassemblyを使う

    WASMとRustはVue.js/React.jsを打倒するのか? - JSへの侵略の歴史
    zyzy
    zyzy 2020/11/02
    ちょうど知識更新の空白期間だったせいかMeteor知らなかったな……
  • 旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita

    現代のプログラミング言語ではポインタは単なるアドレスではなく,provenanceを伴った参照として扱われています. 世界は既に変わっています. 概要 ポインタは単なるアドレスではありません. ポインタにはprovenanceという,どのオブジェクト由来かの情報が含まれています. Provenanceを使うことで,最適化が効きやすくなったり,堅牢なプログラムを書きやすくなったりします. 追記: 次の英語記事を読むとprovenanceが必要な理由についてもっとよく知ることができます.クリックしよう!!!!(2020-12-15) https://www.ralfj.de/blog/2020/12/14/provenance.html ポインタはアドレスではない 次のCプログラムを見てみましょう. #include <stdio.h> #include <string.h> int main

    旧石器時代のポインタをご利用の皆様へ ~provenance入門~ - Qiita
    zyzy
    zyzy 2020/09/07
    Cは知らん間に結構変わってたんだなぁ、と3年くらい前に気付いた。如何せん隣でC++がエクストリームに変わりすぎてたので気付きにくかったが。
  • Rustの型推論の概略 - 簡潔なQ

    概要: Rustの型推論の大枠を説明する。 なお、筆者もRustの型推論の動作を詳細に把握しているわけではない。 短くまとめると Rustの型推論はHindley-Milner型推論ベースである。したがって後方の式や文の内容から手前の型が推論されることもある。しかし以下に挙げるようなRust独自の特徴をもつ。 型推論は原則として関数定義の中で閉じており、関数の引数型や戻り値型は推論されない。これは、関数を抽象化の境界とするための意図的なものである。この意味で「局所的」というのであれば間違いではない。 ただし、let多相を含む型推論を避ける意図もあるかもしれない。 関数呼び出しや一部の演算子などは、その部分の制約を立てる段階で、型の一部分が判明している必要がある。この動作は推論順序の影響を受ける。 トレイトによりオーバーロード可能になっている関数や演算子は、射影型を使っている場合、ボトムアッ

    Rustの型推論の概略 - 簡潔なQ
    zyzy
    zyzy 2020/07/09
    いじっている間に気づいては忘れることがまとまってる
  • Rustで組込みプログラミングや自作OS作成をするには

    これは以前からつくっていたErkOSという自作OSでの経験を元にして、どうやったらRustで自作組込みOSの最初の一歩を踏み出せるか、というものをドキュメントにしたものです。 このドキュメントはこの前の技術書展の告知が来たあたりから構想を練っていて、すきま時間にちまちまと書き進めていたものですが、とりあえず、プロセスの切り替えっぽいところまでの説明を終えることができたので公開しました。 組込みでRustをやる話や自作OSを書く話というのは先駆者がたくさんいて、僕自身もそれらの資料を参考にしつつ書き進めて来ました。 一応、それらの既存のものとは差別化はしているつもりではあるものの、既存のものを完全に上回るというものではないです。内容もまだまだ足りない。 以前、RustでOSを書くプロジェクトもろもろでいくつかOSを書く際に参考になりそうなプロジェクトをまとめましたが、情報も古くなってきたので

    Rustで組込みプログラミングや自作OS作成をするには
    zyzy
    zyzy 2020/05/24
    入口として。
  • Rust で DOS

    終了 最初にrコマンドで、リアルモードx86のレジスタ群を確認して見ましょう。 下記の図のようになります。 2行にわたってAX,BXをはじめとする各レジスタの値が16進数で表示されています。 注:debug コマンドでは基的に16進数を扱います。 COM 形式と EXE 形式 いよいよ DOS で物のアセンブリを入力していきますが、その前に DOS プログラムの約束事を押さえておきましょう。 DOSプログラムの実行形式には COM 形式とEXE形式があります。 ここでは、より単純な COM 形式を扱います。 COM 形式のプログラムは、アドレス 0x100 から始まる決まりになっています。 先頭の 256 バイトが空いていることに違和感を覚えるかもしれませんが、これは ELF 実行形式の ELF ヘッダーのようのものと思うと理解しやすいでしょう。 先頭のアドレス空間は PSP(Prog

    Rust で DOS
    zyzy
    zyzy 2020/04/17
    DOSが動いているのを体感しない世代がゴリゴリこういうのを書いていく時代……。
  • Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG

    こんにちは、R&Dチームの齋藤(@aznhe21)です。 さあみなさん、ついにこの時がやってまいりました。 日2019/11/8にリリースされたRust 1.39により、あらゆる環境で最高速な非同期プログラミングが可能になりました。 新たな時代に乗り遅れないよう、今のうちにRustでの非同期プログラミングをマスターしておきましょう。 なお、この記事は、先日開催したOPTiM TECH BLOG Meetupの内容を大幅に加筆修正した上でエントリに仕上げたものです。 まず最初に伝えたいこと 非同期の歴史 Rustの非同期プログラミングの歴史 Rust 1.0以前 Rust 1.0 〜Rust 1.3 Rust 1.2あたり Rust 1.11あたり Rust 1.26あたり Rust 1.36 Rust 1.39 Rustの非同期プログラミングの特徴 ゼロコスト抽象化 プラットフォーム非依

    Rustの非同期プログラミングをマスターする - OPTiM TECH BLOG
    zyzy
    zyzy 2019/11/08
    歴史的経緯が本当にカオスってたのでありがたい。
  • GitHub - bodil/higher: Your favourite Haskell type classes for Rust

    zyzy
    zyzy 2019/07/09
    高階型作る用ツール
  • その式、値ですか?場所ですか?

    他の多くの手続き型言語と同様、Rustの式も右辺値(値)か左辺値(場所)のどちらかに分類されます。この値・場所にまつわる事実を整理してみました。この区別は決して難しいわけではないですが、整理して言語化することで、今後のRustプログラミングをより快適にすることができるかもしれません。

    その式、値ですか?場所ですか?
    zyzy
    zyzy 2019/01/16
    ここまで考えたり認識したことなかった……
  • 末尾再帰をループにできないRustプログラムの例 - 簡潔なQ

    概要: 生存期間の関係で、ループでは書けないが末尾再帰では書けるアルゴリズムの例を挙げる。 単方向リンクリスト 次のような単純なリンクリストを考える。 struct List<T> { root: Option<Box<Node<T>>>, } struct Node<T> { value: T, next: Option<Box<Node<T>>>, } backの実装 単方向リンクリストの末尾要素の取得は O(n) である。これは次のように書くことができる。 impl<T> List<T> { fn back(&self) -> Option<&T> { let mut node = if let Some(ref b) = self.root { b.as_ref() } else { return None; }; while let Some(ref b) = node.next

    末尾再帰をループにできないRustプログラムの例 - 簡潔なQ
    zyzy
    zyzy 2019/01/14
    こういう事例がある事を考えるとやっぱ、LLVMが勝手に末尾再帰してくれるのに期待するの辛いよなぁ……言語仕様に入れて欲しい。
  • RustでRISC-V OS自作!はじめの一歩 - Qiita

    Deleted articles cannot be recovered. Draft of this article would be also deleted. Are you sure you want to delete this article? RustRISC-V OS自作!はじめの一歩 この記事は自作OS Advent Calendar 2018の4日目の記事として書かれました。 hello worldのコードは下記にあります。 riscv-rust-hello はじめに Rust Rustは速度、安全性、並行性の3つのゴールにフォーカスしたシステムプログラミング言語です。 いわずと知れた至高のプログラミング言語です。 2018/10にversion 1.30がリリースされ、stable (安定版)でもRISC-Vおよびno-std(ベアメタル)プログラミングができるよう

    RustでRISC-V OS自作!はじめの一歩 - Qiita
    zyzy
    zyzy 2018/12/05
    学習用途なら夜の住人になってしまっていい気がする。
  • RFC 2094 (non-lexical lifetime) の非公式訳 | ubnt-intrepid's blog

    記事は Rust Internal Advent Calendar 2017 第1日目の記事です. 今年の 9/30 に採択された non-lexical lifetimes の RFC である RFC 2094 の非公式訳です. Feature Name: (fill me in with a unique ident, my_awesome_feature)Start Date: 2017-08-02RFC PR: https://github.com/rust-lang/rfcs/pull/2094Rust Issue: https://github.com/rust-lang/rust/issues/44928概要Rust の借用システムにおける,ノンレキシカル・ライフタイム (レキシカルスコープではなく制御フローグラフに基づくライフタイム)対応への拡張. RFC では,この新

    zyzy
    zyzy 2018/11/21
    今更ながらちゃんと勉強しなおさないと。
  • Azul GUI Framework

    Objects are composed into a DOM hierarchy which only gets re-rendered when a callback returns RefreshDom. The resulting DOM tree can be styled with CSS. from azul import * class DataModel: def __init__(self, counter): self.counter = counter # model -> view def my_layout_func(data, info): label = Dom.text("{}".format(data.counter)) label.set_inline_style("font-size: 50px") button = Button("Update c

    zyzy
    zyzy 2018/10/30
    何ベースかと思ったが、Mozillaのwebレンダラベースなのか、なるほどだからrustか。
  • Rust製の分散オブジェクトストレージをOSSとして公開しました - dwango on GitHub

    はじめに ドワンゴではniconicoの配信系サービスのバックエンドで利用するために、Frugalosという名前の分散オブジェクトストレージを開発しているのですが、この度OSSとして公開することとなりましたので、この場を借りて軽く紹介させて貰います。 FrugalosはRustで実装されており、現時点では以下のリポジトリが公開されています: raftlog_protobuf: raftlogへのProtocol Buffersサポートの追加 “Frugalos"って何? “Frugal object storage"の略です。 “frugal"は日語では「倹約な」や「節約する」といった意味となり、「読み書き性能を犠牲にせずに、膨大な数のBLOB(Binary Large OBject)を、容量効率良く保持する」ことを目指して開発されているオブジェクトストレージです。 提供されている機能は

    Rust製の分散オブジェクトストレージをOSSとして公開しました - dwango on GitHub
    zyzy
    zyzy 2018/10/26
    Rustの非同期周りの環境がめまぐるしく変わっている最中に作ったのは、確かに大変だったろうな……。
  • Rust速習会2 - Speaker Deck

    The Efficiency Paradox and How to Save Yourself and the World

    Rust速習会2 - Speaker Deck
    zyzy
    zyzy 2018/10/05
    ちょっと離れて復帰すると、三つ巴のあの辺完全に忘れてる。
  • rfcs/text/2071-impl-trait-existential-types.md at master · rust-lang/rfcs

    You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session. You switched accounts on another tab or window. Reload to refresh your session. Dismiss alert

    rfcs/text/2071-impl-trait-existential-types.md at master · rust-lang/rfcs
    zyzy
    zyzy 2018/08/30
    これ来たらtrait内のexistential type駆使して高階型っぽいモドキを作るのに使えるなー、って思ってる。(いや、今でも何もかもBoxまみれにすれば出来なくはないんだけどもさ)
  • Rust で学ぶ epoll - Qiita

    Rust で学ぶ epoll 動機 Rust の futures はゼロコスト抽象化を謳っており、 Future トレイトは poll メソッドを備えている tokio の polling 戦略を知るには epoll の知識が避けて通れない - https://tokio.rs/docs/getting-started/tasks/ , https://cafbit.com/post/tokio_internals/ , epoll の例は C はたくさんあるけど Rust + nix は皆無だったのでやってみた コード extern crate nix; use nix::sys::epoll::*; use nix::sys::socket::*; use nix::unistd::close; use std::collections::HashMap; use std::os::u

    Rust で学ぶ epoll - Qiita
    zyzy
    zyzy 2018/07/06
    正直rustの非同期周りに関しては「事態が収束して標準がまとまってから呼んでくれ」ってなる……。
  • Announcing Rust 1.26 | Rust Blog

    The Rust team is happy to announce a new version of Rust, 1.26.0. Rust is a systems programming language focused on safety, speed, and concurrency. If you have a previous version of Rust installed via rustup, getting Rust 1.26.0 is as easy as: $ rustup update stable If you don't have it already, you can get rustup from the appropriate page on our website, and check out the detailed release notes f

    Announcing Rust 1.26 | Rust Blog
    zyzy
    zyzy 2018/05/14
    とうとうimpl Traitがstable!!
  • RustでクライアントサイドWebフレームワークを作っているよ - rail44 (アメミヤ)

    アメミヤです。 先日、会社でやっているポッドキャスト、ajitofmに出演しました。 (あんまり喋んなかったけど) ajito.fm id: mizchiさんをゲストに招いての収録でした!収録中も、そのあとのajitingも色々な話が聞けて楽しかったです。 で、今回の話なのですが、収録中の Rustのような言語でUIを記述するのは難しい というmizchiさんの発言に対し、そのタイミングでは首肯してしまったものの後になって、当にそうか〜?という気持ちになったため、自分で作っています。 github.com TodoMVC レベルの物が一応動くようになったのでブログを書きますよ。 アプリケーションコードの例 たとえば単純なカウンターはこんなんになる。 #![feature(proc_macro)] extern crate squark; extern crate squark_macro

    RustでクライアントサイドWebフレームワークを作っているよ - rail44 (アメミヤ)
    zyzy
    zyzy 2018/04/16
    おー、と思ったら……。macroの安定が待たれる。