2019-01-01から1年間の記事一覧
このブログも始めてから5年が経った。 年末年始なので、今年一年はどうだったかな、ということでまとめてみよう。 今年の元旦には、こんな目標を立てていたのだった。 msyksphinz.hatenablog.com 2019年始に立てた目標 引き続きRISC-Vをベースとしたエコシス…
前回のLowerTypeの実装では、多次元配列に関する処理が抜けていた。このため、以下のようなFIRのコードをコンパイルするとエラーが発生する。 VecBundle.fir circuit VecBundle : module VecBundle : input in: UInt<32>[3][4] input sel: UInt<2> output ou…
Chisel-Testers2のアナウンスが流れていた。時間が経っていたが試してみようと思う。 ChiselにはすでにIOTestersというテスト環境があるが、ぶっちゃけこれはあまり使いやすくない。 chisel-testers2は以下の改良(というか特徴)が加わっており、使いやすくな…
年末ですね。年末に技術っぽいことを書いても誰も見ていないので、どうでもいいことを書こうと思います。 皆さん技術書は好きですか?好きですよね。読みもしないのに技術書典なんかに大挙して押しかけて、結局積読が増えていく。積んでいるとなんか落ち着く…
LowerTypeの調査を続けている、前回の記事からずいぶんと時間が経ってしまったが、Bundleを分解する方法について調査している。つまり、FIRRTLで以下のように記述されているコードを、Vectorを分解せずにBundleのみ分解するということである。 circuit VecBu…
LowerTypeの調査を続けている、前回の記事からずいぶんと時間が経ってしまったが、Bundleを分解する方法について調査している。つまり、FIRRTLで以下のように記述されているコードを、Vectorを分解せずにBundleのみ分解するということである。 circuit VecBu…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の25日目の記事です。 25日目 最後のまとめ ここまで、24回に分けて一からビルドツールの開発に挑戦してきました。 DSLの勉強のために、Rubyのメタプログラミングについて一から勉強…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の24日目の記事です。 24日目 EmacsプロジェクトをRumyでコンパイルしてみる試行 ~ひたすらルールファイルを書く~ 前回に引き続き、ひたすらMakefileをRumyファイルに移していきま…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の23日目の記事です。 23日目 EmacsプロジェクトをRumyでコンパイルしてみる試行 ~必要な機能は何か~ もうすこし大きなプロジェクトをビルドしてみたいと思います。いろいろと調べ…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の22日目の記事です。 22日目 gitコマンドに埋め込む1 最近のビルドツールには、gitによるバージョン管理と融合し、リポジトリの管理の補助をしてくれる機能が当たりします。Rumy-Ma…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の20日目の記事です。 21日目 Rumy-Templateでお手軽プロジェクトテンプレート作成 例えばRustのパッケージ管理・ビルドツールであるCargoには、Rustプロジェクトを立ち上げるための…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の20日目の記事です。 20日目 Rumy-Makeのテスト結果を綺麗に管理しよう 前回でテストを実行する環境が整いましたが、ただ単にテストを流すだけで結果を綺麗に表示したり、リグレッ…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の19日目の記事です。 19日目 Rumy-Makeでテストを制御しよう 最近のビルドツール、例えばCMakeやCargoでは、テストに関するルールや機能が追加されています。CMakeではctestという…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の18日目の記事です。 18日目 コマンドラインの整備 これまで、Rumy-Makeを起動するために基本的に以下のようなコマンドを実行していました。 RUBYLIB=${HOME}/work/rumy-make/src .…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の17日目の記事です。 17日目 ビルドルールをYAMLに書きたい 2. YAMLルールをもう少し便利に 前回、ビルドルールにYAMLルールを導入してみたのですが、いろいろと実装が途中までにな…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の16日目の記事です。 16日目 ビルドルールをYAMLに書きたい これまでで、Rubyベースのビルトツールを作って、独自構文を定義してビルドルールを定義できるようにしてきました。 こ…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の15日目の記事です。 15日目 環境変数・ディレクトリに依存しないビルドを実現したい ビルドツールと言えば、チームで作業しているときに自分の環境ではビルドできるのに他人の環境…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の14日目の記事です。 14日目 並列実行についての検討 Makeには並列実行の機能があります。つまり、make -j32などと並列数を指定すると、それだけ分のコアを使用してビルド処理を行…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の13日目の記事です。 13日目 Rumyルールから外部Rumyルールを呼ぶ 今回実プロジェクトにRumy-Makeを適用したときに、もう一つ追加したい機能がありました。それは、外部のRumy-Make…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の12日目の記事です。 12日目 C++プロジェクトビルド用のラッパーを作ろう 前回、実際に実プロジェクトにRumy-Makeを適用して問題が把握できてきました。まず、C++ファイルをコンパ…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の11日目の記事です。 11日目 Rumy-Makeを実際のプロジェクトに適用してみる ここまで、Rumy-Makeの開発行ってきて基本的な機能は実装できたように思います。しかし、まだ足りないと…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の10日目の記事です。 10日目 もっとデバッグしやすくしたい! これまでにRumy-Makeにいろんな機能を付けてきましたが、さて実際にこれまでMakefileなどを使用してきた経験で困った…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の9日目の記事です。 9日目 テストについて考える これまで、テストはなんとなくサンプルプログラムを作って動かしていました。しかしだんだんテストの量も増えてきて、1つ1つコマン…
非常に出遅れてしまったのだが、SC19でCerebrasのWafer Scale Computingに関する資料が出てきた。 https://secureservercdn.net/198.12.145.239/a7b.fcb.myftpupload.com/wp-content/uploads/2019/11/Cerebras_for_SC19.pdf https://secureservercdn.net/198…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の8日目の記事です。 8日目 cleanコマンドを作る テストの実行方法をちょっと修正 これまで、rumy-exec.rbをロードする方法が分からずに直接./srcディレクトリに移ったうえで../test…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の7日目の記事です。 7日目 タイムスタンプでルール実行をスキップする いよいよビルドツールの本命ともいえる機能です。タイムスタンプを使用して、更新のないファイルに対sるビル…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の6日目の記事です。 6日目 細かな調整2 前回だけではやりたい調整が終わりませんでした。まだまだ直したい部分があります。 同一ターゲット内で複数のexecutesコマンドを受け付ける…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の5日目の記事です。 5日目 細かな調整 Rumy-Makeの実装を進める前に、少し細かな調整をします。あまり本来のビルドツールとは関係ない、使いやすさの部分で少し改良を加えていくこ…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の4日目の記事です。 4日目 ターゲットの依存関係を作ろう Makefileでは、ルールに対する依存関係を記述することができます。あるルールを実行するためには、まずは依存する別のルー…
この記事は「Qiita Advent Calendar 2019 DSLで自作ビルドツールを作ろう」の3日目の記事です。 3日目 ターゲットを実行する 前回、ターゲットを作ったので、次はターゲットを実行するためのルールを追加します。ターゲットを実行するために、exec_target関…