お前ら全員、こっぱミトコンドリア!

04/20(木)

_ NetBSD build on FreeBSD 11-stable

続き
いろいろ検索しまして、結果
ports/lang/gcc5 にあるパッチ を NetBSD ソースの external/gpl3/gcc/dist/gcc に対して当てます。 これで、
export HOST_CC=clang
export HOST_CXX=clang++
の FreeBSD側コンパイラ clang を使う指定でも、toolsは通ります。 releaseで通るかどうかはまだ未確認。 (release通らなければ、さらに続く

- 広告 -


04/19(水)

_ NetBSD build on FreeBSD 11-stable

NetBSD build がうまくない。
tools の gcc作成あたりでこける。 例のごとく、NetBSD の Makefileあたりが壊れたのではないかと探すも、 全然わからない。 どうもname spaceあたりで不一致がおきてる。マクロがぶつかってるのかもしれない。 そのうち、gccどころか、nbmakeもビルドできなくなり、こちらは SIZE_MAX の定義ヘッダが違うんで、 これはtwitterでつぶやいたら直った。便利だ(まて
ホスト側の問題じゃないか?と考えるようになり、そういや、 先日 FreeBSD に SA でたので、SA でたらアップグレードの方針に従い、 カーネル,ユーザランドともにアップグレードしたわ。
そのタイミングあたりで、 NetBSD build が動かなくなってるわ。とようやく気がついた。 結局よくわからないので、ports からインストールした gcc5.4 を使うことにする。 *1 build.shを叩くシェルスクリプトにて
export HOST_CC=gcc5
export HOST_CXX=g++5
export HOST_CFLAGS=-Wl,-rpath=/usr/local/lib/gcc5
export HOST_CXXFLAGS=-Wl,-rpath=/usr/local/lib/gcc5
を追加。 NetBSDビルドが通ることを確認。まずは一安心。 portsからの新しいバージョンのclangでも試すか。と、まずシステム側のclangのバージョンを調べようとして
% clang --version
FreeBSD clang version 4.0.0 (tags/RELEASE_400/final 297347) (based on LLVM 4.0.0)
Target: x86_64-unknown-freebsd11.0
Thread model: posix
InstalledDir: /usr/bin
はい?なんで4なの?3.9じゃなかったっけ?とここで、 ようやくシステム側のclangのバージョンが上がっていたのに気がついた。原因はこれか。
*1: ports gccのデフォルトは最近5.4になった。

03/30(木)

_ [Go] golang go-hns

Goで hnfレンダラ作ってみました。
元は以前つくった JavaScript で動く hnfレンダラ (^_^;;
このサーバには TeaJS(JavaScript apache mod)入ってなくて、 *1 fcgiで動いています。 perlで動いている本家との違いは、私が使ってない部分で
  • Unagi,Namazu,Calendar, PIM, 掲示板
  • ユーザ変数
  • MARKコマンド
  • しらんかった系 ALIAS, RLIN系, P, /P, リンク拡張
あたり
*1: JSエンジンであるv8がports上で昔のバージョンのまま放置されてて、 それでやる気がでないので、サーバ引っ越しのときにTeaJS作らなかった

03/25()

_ [Go] golang RFC1123 GMT

fcgiで時刻データ渡すのに、RFC1123フォーマットで渡さないといけないのだけど、 go で
time.Now().UTC().Format(time.RFC1123)
ってな感じでやると、"UTC"って出てくる。 それがイヤなら、time.RFC1123Z使ってね。ということらしいのだが、 そのfcgiでDate: のところ、ちゃんとGMTってでてるやん。ということで、 ソース を見ると
time.Now().UTC().Format(http.TimeFormat)
という具合に、RFC1123フォーマットとして http.TimeFormat が定義されているのでありました。

03/12()

_ [Go] しびれる golang

hugo からみから golang ちょっとはやろう。ということで、積ん読になっていた プログラミング言語Goを片手にいろいろ書いてみたりして、 なかなかしびれる言語であることがわかってきたので、わかった範囲でちょっと

go-iconv

まずはお礼から
矢田さんによるgo-iconvインターフェースUnlicence の条項を追加していただきました。ありがとうございました。
さて、package C で関数値の2番目を error型で返す場合、errno を元に使うのですが、 Cライブラリとしての errno はエラーが起きたときのみに値が設定され、 正常処理の場合、値が設定されません。エラーが起きてるかどうかの判断は各関数ごとに異なり、 関数仕様を読む以外にありません。 github には go-iconv インターフェースが他にもあるのですが、このあたりがうまくない プログラムが多く、ちゃんとしてるのが矢田さんによるものしか見つからない状態でした。

みんながんばれ

というか、複数値を関数値として返すことができるgolangからすると、 Cライブラリのエラー値の返し方がさまざまでどーしよーもない。 というのが信じられないように見えちゃうのかな? と思ってます。

他の言語知ってるひとむけ

package はディレクトリで管理する
相対ディレクトリでpackage指定が可能
package名は全小文字
export されるのは、識別子の最初の1文字が大文字
メソッドはexportしておいた方が無難?しておくべき?する必要がある?
package の初期化は func init() で可能。ファイルごとにinit()が持てる
gdb は version7.x が利用可能。go build -gcflags "-N -l" 〜〜 な感じでデバッグビルド
スタートは package main の func main()
FreeBSD だけか? GOPATH 設定しないと ~/go になるようだ?
golangライブラリpackageは github によくいて、たとえば 前述のiconvは
go get github.com/s-yata/go-iconv
でインストール。このpackageを利用するにはgolangプログラム内で
import "github.com/s-yata/go-iconv"
する。このあたりとってもうまい仕様。
しびれるところまで行かなかった。次回はラブラブ interface{} に、ラブラブ リフレクションです。 次回あるのか?

以上、5 日分です。

早起き生活
Powered by 早起き生活

こりゅう こんな顔で出ています
twitter id は a_rin

Powered by hns-2.10-beta9, HyperNikkiSystem Project

いままでのものはこちら

2014年 <5月> <4月> <3月> <2月> <1月>
2013年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2012年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2011年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2010年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2009年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2008年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2007年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2006年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2005年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2004年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2003年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2002年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2001年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
2000年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月> <1月>
1999年hns <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月>
1999年 <3月> <2月> <1月>
1998年 <12月> <11月> <10月> <9月> <8月> <7月> <6月> <5月> <4月> <3月> <2月>


~a.rin/ にもどる
こんな感じ?