タグ

makeとprogrammingに関するraimon49のブックマーク (8)

  • Rust for Linuxでは独自のallocライブラリを使っている

    Rustを第二言語として採用してデバイスドライバなどのモジュールをRustで書けるようにする「Rust for Linux」が近々マージされる予定だともLinus氏自身が発言しています。 そんな期待のかかるRust for Linuxですが、提案された当初は期待こそされていたものの、様々な懸念点も指摘されていました。 その1つが標準ライブラリの一部であるallocクレートの設計です。 このクレートはヒープ領域を扱うBox、Vec、StringなどRustではお馴染みの構造体を提供しています。 Rustの標準ライブラリはOSのサポートを前提とした構造体も多くあります。そのため、OSそのものを書くようなベアメタルプログラミングにおいて標準ライブラリをそのまま使うことはできません。 使えるのはcoreと呼ばれる依存関係のない全く無いライブラリがありますが、allocはOSのサポートが必要なヒープ

    Rust for Linuxでは独自のallocライブラリを使っている
  • 江添亮のC++入門

    書はプログラミングの経験はあるがC++は知らない読者を対象にしたC++を学ぶためのである。書はすでに学んだことのみを使って次の知識を説明する手法で書かれた。C++コンパイラーをC++で書く場合、C++コンパイラーのソースコードをコンパイルする最初のC++コンパイラーをどうするかというブートストラップ問題がある。書はいわばC++における知識のブートストラップを目指しただ。これにより読者はを先頭から読んでいけば、まだ学んでいない概念が突如として無説明のまま使われて混乱することなく読み進むことができるだろう。 C++知識のブートストラップを意識した入門書の執筆はなかなかに難しかった。ある機能Xを教えたいが、そのためには機能Yを知っていなければならず、機能Yを理解するためには機能Zの理解が必要といった具合に、C++の機能の依存関係の解決をしなければならなかったからだ。著者自身も苦し

  • 低レイヤを知りたい人のための Cコンパイラ作成入門

    はじめに このオンラインブックは執筆中です。完成版ではありません。フィードバックフォーム このには一冊のに盛り込むにはやや欲張りな内容を詰め込みました。書では、C言語で書かれたソースコードをアセンブリ言語に変換するプログラム、つまりCコンパイラを作成します。コンパイラそのものもCを使って開発します。当面の目標はセルフホスト、すなわち自作コンパイラでそれ自身のソースコードをコンパイルできるようにすることです。 このでは、コンパイラの説明の難易度が急に上がりすぎないように、様々なトピックを書全体を通じて次第に掘り下げていくという形で説明することにしました。その理由は次のとおりです。 コンパイラは、構文解析、中間パス、コード生成といった複数のステージに概念的に分割することができます。よくある教科書的アプローチでは、それぞれのトピックについて章を立てて解説を行うことになりますが、そのよう

    raimon49
    raimon49 2018/11/01
    ゴールはセルフホスト
  • isucon7予選のアプリをRustに移植したから解説するね | κeenのHappy Hacκing Blog

    κeenです。こういう流れがあったので移植しました。 keenさんが「2028年、Rust でイケてる web application framework はこれだ!」みたいな記事を書くとと "余力" が生まれるかもしれません…!! — FUJI Goro (@__gfx__) 2018年8月28日 まずISUCONを知らない方に雑に説明しておくと、意図的に遅く作られたWebアプリケーションが与えられるので7時間くらいでどれくらい高速化できるかを競うコンテストです。 このお題のWebアプリケーションが参加者や流行りに合わせて複数言語で提供されるのですが、今年はRustが来そうだということで参加者の肩慣らしのために過去問を移植しましたというお話。 ひとまずソースコードは こちら 手元でベンチマークをしてみた限り、Pythonの2倍くらいは速いもののGoには劣るようでした。これの考察については

    isucon7予選のアプリをRustに移植したから解説するね | κeenのHappy Hacκing Blog
  • JavaScript Dependencies, Modules & Browserify

    JavaScript dependencies & modules Introduction to Browserify and how to use CommonJS/Node.js modules in the browser. We'll start with a brief look at the current landscape of handling dependencies and modules. Talk at sthlm.js 2014-01-07, http://www.meetup.com/sthlm-js/events/156429912/ Demos & code examples; https://github.com/johannilsson/sthlmjs-1401Read less

    JavaScript Dependencies, Modules & Browserify
  • chromiumの継続的インテグレーション

    最近はどうもJenkinsとかTravisCIとかいうのが話題みたいなのだが、使ったことがないのでよくわからない。だがどうも漏れ聞く話を見ていると、こういうのは継続的インテグレーション(CI)と呼ばれていて、だいたい自分の社内プロジェクトでも似たようなことをやっているらしい。そこで、Chromiumがどういう環境でCIしているか、ということを簡単にまとめてみたい。あらかじめ書いておくと、名前が違うだけでだいたい普通です。 BuildBot Chromiumは普通のクライアントプログラムなので、ビルド環境の想定がけっこう複雑だ。Windows/Mac/Linux/ChromeOS(最近はAndroidなどのモバイル環境)のようにプラットフォームは多岐にわたるし、同じプラットフォームでも様々なビルドコンフィグレーションがある。テストも数が多く、ローカルに走らせておくのは時間がかかる。 Buil

    chromiumの継続的インテグレーション
    raimon49
    raimon49 2012/09/01
    コミット前レビューを採用し、ディレクトリごとにオーナーを設定。
  • JavaScript用のアサーションを作ってみる - 檜山正幸のキマイラ飼育記 (はてなBlog)

    ここで触れたシステム、ある程度は動くので、サンプルを作り始めました。すると、あれまー、随分とバグがあるなー。 これは全面的に僕の監督責任ですわ。そもそもが、 たぶん、こうだから、 おそらく、こうすればよくて、 うまくいけば、あーなるはずだぜ。 みたいな方針しか言ってないし、「防衛コードを書くな」といったアドバイスも説明不足でうまく伝わらなかったようです。 内容: 防衛コード、うざすぎ 防衛と契約(コントラクト)は違うんだよ アサーションを使えばこうなる 安直なアサーションを作ってみる ライブラリコードとビルドシステム ●防衛コード、うざすぎ 防衛コードに関して言えば、歴戦の勇士のような職業プログラマが「俺は誰も信じねー!」みたいなコードを書くわけですよ。 function sum(x, y) { var objectUsed = false; if (x === undefined) {

    JavaScript用のアサーションを作ってみる - 檜山正幸のキマイラ飼育記 (はてなBlog)
    raimon49
    raimon49 2009/01/28
    過剰防衛してるコード
  • 自動化のためのGNU Make入門講座

    2003/01/05 石井 勝 はじめに ここでは,makeを使ってプログラマやSEが普段行なっている作業を自動化する方法を解説します. makeはプログラム開発だけでなく,いろいろな作業を自動化してくれます.自動化する作業のプラットフォームとしてmakeを活用することができます.ところが,最近はmakeを理解できる開発者が非常に少なくなってきました.普段統合開発環境を使っている人が多いことや,makeについて書かれた書籍やサイトが非常に少ないことが原因でしょう.makeについて少しは知っているけど,あまり使いこんだことがない人はこの記事を参考にしてみてください. 一口にmakeといってもいろいろな種類があり,それぞれ仕様が異なります.ここでは,僕が普段使っているGNU makeについて解説します.GNU makeは機能が豊富で他のmakeツールやAntに比べ優れています.開発環境

  • 1