タグ

2022年1月21日のブックマーク (2件)

  • コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み

    Kernel/VM探検隊はカーネルや仮想マシンなどを代表とした、低レイヤーな話題でワイワイ盛り上がるマニアックな勉強会です。植山氏は、制作中のリンカである「mold」について発表しました。全2回。前半は、リンカの概要について話しました。 LLVMのリンカ「lld」オリジナルの作者 植山類氏:植山類です。今僕が作っているmoldというリンカについて発表します。 今回の発表の概要です。リンカが何かを知っている人はそんなにたくさんいないと思うので、まず説明します。次に、「mold」のポイントは速いことなのですが、速いと何がうれしいのかを説明します。そのあと、どれくらい速いのかを説明した上で、どう実現されているのか、概要を紹介します。詳細になると何時間あっても終わらないので、かなりハイレベルな話をします。 自己紹介のスライドを入れていませんが、僕はリンカを何度か作ったことがあって、LLVMのlld

    コンパイラが作ったバイナリをつなぎ合わせるプログラム 「lld」の作者が語る、リンカの仕組み
    castaneai
    castaneai 2022/01/21
  • Rustで構造体を実体化して返す際のコスト - ビットハイブ

    Rustで構造体を実体化して返す際のコスト 最近、勉強がてらちょこちょことRustで遊んでいます。そこで以前から少し気になっていたのは、構造体を実体化(instanciate)して返す場合のコストです。 公式のドキュメント https://doc.rust-lang.org/book/ch05-01-defining-structs.html などを見ると、構造体を実体化して返す例として以下のようなコードが挙げられています(Listing 5-4: A build_user function that takes an email and username and returns a User instanceより)。 fn build_user(email: String, username: String) -> User { User { email: email, username

    castaneai
    castaneai 2022/01/21
    RustのRVOについて、呼び出し元に領域を予め作っておいて、そこに直接構築するようになっているのか