ブックマーク / wasabiz.hatenablog.com (4)

  • Scalaでハードウェアを書く - wasabizの日記

    2015-07-08 Scalaでハードウェアを書く Scalaでハードウェアを書けるChiselについて紹介します。 Chisel: Constructing Hardware in an Scala Embedded Language Chisel 2.2.0 Manual Chiselとは Chiselとはハードウェア記述用のためのライブラリでありScalaのDSLとして実装されています。最近巷で話題のRISC-Vというアーキテクチャがありますが、その実装であるRocket CoreがChiselで記述されています。Chiselは単なるScalaのライブラリなので、.scalaなファイルの中でimportして使います。そして回路の仕様をScalaで記述してコンパイルするとその仕様に従ったVerilogを出力する実行ファイルが出来ます。以下のコードはChiselのトップページから引用し

    Scalaでハードウェアを書く - wasabizの日記
    koyancya
    koyancya 2015/07/08
  • libc非依存の言語処理系(もしくは、自作CPUへの移植の苦労話) - wasabizの日記

    2015-02-03 libc非依存の言語処理系(もしくは、自作CPUへの移植の苦労話) 自作CPUへの移植が大変だったのでメモ。 まず、今回ターゲットにする環境の特徴を軽く説明しておくと CPUが自作 ISAも独自 uccという自作Cコンパイラ(開発中で不完全、c89のサブセット)とMLコンパイラがある 浮動小数点数はIEEE single floatのみサポート メモリは4MB IOはRS232Cしかない そこそこ安定したシミュレータがある。 Cコンパイラと入っても不完全なので、cファイルはコンパイルできてもlibcに相当するものはまだない。C89(C90)のサブセットしかサポートしていないので、ビットフィールドが無かったり、charが32bitだったり、構造体渡し・構造体返し・構造体代入がなかったりする。最終的にはこいつでOSをコンパイルする予定なのだけれど、OSもよそから持ってきた

    libc非依存の言語処理系(もしくは、自作CPUへの移植の苦労話) - wasabizの日記
    koyancya
    koyancya 2015/02/04
  • とあるプログラミング言語処理系のセルフホスティング化に携わった - wasabizの日記

    2013-12-15 とあるプログラミング言語処理系のセルフホスティング化に携わった (この記事はJSX Advent Calendar 2013の一部として書かれました。) 僕がJSXというプログラミング言語の開発に携わってこの冬で早1年半になります。コンパイラとしてのjsxにはこの1年半で幾多の出来事がありましたが、その中でも一番巨大なものがセルフホスティングでしょう。つまりJSXのコンパイラをJSX自身で書きなおすということです。 メインラインのコードをまるまる入れ替えるこのセルフホスティングは大きな苦労を伴いました。実際、通常のポーティングとは違いコンパイラそのものを入れ替えてしまうわけですから、バグの出方などもなかなか味わい深いものです。 JSXセルフホスティングを行ってから既に1年が経過しようとしています。今までこの作業の苦労について外で話したことは無かったのですが、「プログラ

    koyancya
    koyancya 2013/12/16
  • mrubyにnan-boxingを実装した話 - wasabizの日記

    2013-08-07 mrubyにnan-boxingを実装した話 mrubyというluaみたいなruby処理系があるのは有名だと思うけれどそれにnan-boxingを実装した。 開発につかったブランチ https://github.com/wasabiz/mruby/tree/full-nan-boxing mrubyへのpull-req https://github.com/mruby/mruby/pull/1441 ただし完全なフルスクラッチの実装というわけではない。僕がハックを始めたその時点で既にmrubyにはnan-boxingが搭載されていた。 NaN Boxing https://github.com/mruby/mruby/commit/7d02df3016b0c6eb3f4ee945198772cf4ebca3fa この実装はdoubleの上位32ビットをtt(type

    koyancya
    koyancya 2013/09/04
  • 1