2015-01-01から1年間の記事一覧

CollectionType,SequenceTypeのmap()

前回Optional型のmap()を読んだのに続いて、今回はCollectionTypeとSequenceTypeのmap()を見てみることにします。 プロトコルの定義は次のとおりです。 func map<T>(@noescape transform: (Self.Generator.Element) throws -> T) rethrows -> [T] これらはstdli</t>…

OptionalのmapとflatMapを読み解く

Swiftがオープンソース化されたことにより、私たちでも標準ライブラリの実装を読むことができるようになりました。そこで、今回はOptional型のmap()とflatMap()の2つを読んでみて、どういう違いがあるのかを実装面から考えてみようと思います。 Optional型の…

mapに渡せるのはクロージャだけではない

map()では、transform引数にクロージャを渡します。たとえばInt型の配列を文字列化する処理を考えた場合、次のように書けます。 let foo = [1,2,3,4,5,6].map{ String($0) } // ["1", "2", "3", "4", "5", "6"] ですが、このような初期化を伴う処理は次のよ…

mapを学ぶ

さて、少しずつSwiftにも触れていきます。 巷では「Swiftなら関数型プログラミングだよ」「map/flatMapはSwiftのたしなみ」のようなことが言われていて、実際のところ有名どころのライブラリは、こうした考え方を活用して作られています。ですが、正直なとこ…

Cutter+Jenkinsを使ったC++のテスト(3)

前々回、前回の続きです。ここまでにcutterのインストール方法や使い方、cutterのXML出力をxUnitの出力形式に変換する方法を見てきました。今回は、一連の作業の最後に、実際にジョブとしてビルドスクリプトを設定します。 swiftlife.hatenablog.jp swiftlif…

Cutter+Jenkinsを使ったC++のテスト(2)

前回の続きで、cutterとJenkinsを連携させる方法についてです。 swiftlife.hatenablog.jp cutterは--xml-report=出力先ファイル名とオプション指定することでテスト結果をXMLに出力できます。ですがこの内容は独自のルールで、JenkinsのxUnit Pluginで管理で…

Jenkinsの成功/失敗の判断

新しいジョブをフリースタイル・プロジェクトを作成しビルド手順で「シェルの実行」を選ぶと、ビルド時に実行するシェルスクリプトを入力できます。 Jenkinsは、このスクリプトが返す値(終了コード)によってビルドの成功・失敗を判断します。 終了コードが0:…

linuxカーネルビルド時のコマンドを確認する

カーネルビルド時に、どういうコンパイルオプションでgccが実行されているかを確認する必要がありましたので、メモを残しておきます。 方法は、makeにV=1を付けるだけ。 % make V=1 uImage 2>&1 | tee build.log このVは、kernel.orgのREADMEによるとVerbose…

Jenkinsにプラグイン導入

インストールしたままの素のJenkinsでは色々と不便そうなので、プラグインを導入しました。 ひとまず入れたのは以下のとおり。C++向けテストに使えるものを、と選びました。 Git Plugin - Jenkins - Jenkins Wiki: gitをSCMとして扱うためのプラグイン。こ…

Cutter+Jenkinsを使ったC++のテスト(1)

前回までにインストールしたJenkinsを使い、C++のテスト環境を整えてみます(本当は早くXcode+swift+gitの環境を整えたいけれど、準備が大事)。 swiftlife.hatenablog.jp C++のテストツールは、内輪で評判のいい「cutter」を使ってみます。Jenkinsとの連携…

Jenkinsで作成したジョブの実体はどこにあるか

Jenkinsの基本設定や、新しくジョブを作成したときに、それらのデータはどこに保存されるのだろう?と調べてみました。 そうしたら、なんのことはない、~/.jenkins下に保存されていました。各ジョブは~/.jenkins/jobsの下に、ジョブ名のままでディレクトリが…

OS X El CapitanにJenkinsをインストール(3)

前回の続きです。ここまでにJenkinsのインストールが済んだものの、大量の警告やエラーログが出力されていて使い物にならない状態になっていたのを、DNSマルチキャストを切って問題回避しました。 swiftlife.hatenablog.jp 今回は、ログインと同時にJenkins…

OS X El CapitanにJenkinsをインストール(2)

前回の続きです。Jenkinsをインストールして動かしてみたところ、とりあえず動くもののログが延々と出続けるという問題に遭遇しました。今回はそれを回避するところまで。 swiftlife.hatenablog.jp ログにあるメッセージで issues.jenkins-ci.org を調べてみ…

OS X El CapitanにJenkinsをインストール(1)

Home-brewを使い、OS X El CapitanにJenkinsをインストールしました。 OS X El Capitan MacBook Pro (Retina, 13-inch, Early 2015) 2.9 GHz Intel Core i5 16 GB 1867 MHz DDR3 Homebrewはインストール済み 0. とりあえずインストールしようとしてみる まず…