The Man Who Fell From The Wrong Side Of The Sky:2008年12月分

[最新版] [一覧] [前月] [今月] [翌月]

2008/12/1(Mon)

今日

胃の調子が悪化、夜中に何度も吐いて頭グルグルで1回休み。
燃調逝かれてインジェクション暴走プラグ被りまくりという状態か。

まったく食欲が…メシウマ状態AAが憎い…

OpenBSD + Citrus patchの 最新版
いちおi386でmake buildが通るまでは確認したので自己責任でどうぞ。

熱も出てきてフラフラしとる。

某スレ書けないのでこっち書いとく。
最近のWAPBLはspecial inodeをlog fileとして使用可能なので、disk切り直しは不要です。
FFSv1の場合、super blockのみFFSv2 format化する必要があるので
fsck_ffs -c 4 ちゅうおまじないをsingle user modeでやっておくべし。
あとはfstab書いときゃ、mount時によろしくやってくれるはずです。
log file sizeはtunefs -lで明示的に設定可能だけど、最適値とかよくワカンネ。

ちなみにあんまり安定してないのでうちではoffにしてます。


2008/12/2(Tue)

今日

相変わらず体調不良で2回休み、どうやら出血がまた始まった様子。
そりゃあんだけ胃液がガバガバ出てりゃ胃壁も溶けるわ。

なんという エクストリーム・逮捕
ちゅうかゴルゴ13の注文でいつも特殊な銃弾作らされて愚痴る職人さんを思い出した。

「〜というわけでこの特殊薬莢を造るのに〜の苦労が(ブツブツ)」
「…報酬に不満でも?」

多分科捜研の中の人もそんな気分じゃないのかな。

そもそも ガス漏れでBB弾すらマトモに撃てないらしい。
科捜研の技術力は世界一ィィィィ!

new locale db for 5.0のしょぼいバグ潰した。
LANG=POSIXとした場合、Cと帰ってくるというテラ修行が足りないミス。

ちゅうか最近の-current、LD_PRELOAD=libc.soするとマトモに動いてない風味。
libpthreadからの_lwp_ctl() syscall呼出でMemory Fault起こすな、なんぞこれ。

multi-localeの実装、Darwinのソースのライセンスの問題があるので
MacOS Xの実機からリバースせんとならんのだけど、実機用意するのに
MacMiniで8〜9万か、そもそも今月末払いの奨学金すら厳しいのに無理だな…

WEB系の仕事と最近無縁なので、現場にもMacとかないしなー、どうすんべ。


2008/12/3(Wed)

[NetBSD] IBM Codepage

IBM-943、NetBSD/Citrus iconvの場合↓のような感じです。

CP932 (=MSCP932, 932)
・US-ASCII
・JISX0201 カナ
・Microsoft版JISX0208
・NEC特殊文字
・NEC選定IBM拡張文字
・IBM拡張文字
・ユーザ定義文字

CP943 (=IBM943, 943)
・JISX0201 ローマ字 (※IBM943Cの場合US-ASCII)
・JISX0201 カナ
・JISX0208:1997
・NEC特殊文字
・NEC選定IBM拡張文字
・IBM拡張文字
・ユーザ定義文字

ちゅーことでCP932とCP943の違いは

とゆー整理になっとります *1

だいぶ昔に

IBM932	= IBM943, 943
MS932	= CP932, 932, Windows-31J

ちゅー整理にしようとも考えたのですがMakefile直すのがめんどくさい(ぉ
というアレな理由で放置したまま忘れてました、そういや。

この手のgdgdってタイ語のcodepageにもあって

ibm874 ≠ windows-874
ibm1162 = windows-874

という状態なので

874	cp874 ibm874
1162	cp1162 ibm1162 mscp874 windows-874

とalias切ってあったりもするので、932もやらんとダメなのかも。

オマケ、CP943の親戚にはCP942というものがありますが、こちらは

CP943 (=IBM943, 943)
・JISX0201 ローマ字 (※IBM943Cの場合US-ASCII)
・JISX0201 カナ
・JISX0208:1997
・NEC特殊文字
・NEC選定IBM拡張文字
・IBM拡張文字
・ユーザ定義文字

CP942 (=IBM942, 942)
・JISX0201 ローマ字 (※IBM942Cの場合US-ASCII)
・JISX0201 カナ
・JISX0208:1997	… ただし旧JIS(JIS78)と同じ並び順
・IBM拡張文字	… ↑との兼ね合いで、昂(U+6602)と昂(U+663B)の入替
・ユーザ定義文字

といった整理となってます。
ただこの変換表書いたとき一箇所自信ない部分があるのだけれども *2
一部の変換表(Sun Javaとか)だと、0xE086(63区70点)にU+7199を割り振ってるんだけど
JIS78 -> JIS83で変更ないはずなんだよな、ちゅうことでU+7155のまま。


*1:Java方面のドキュメントにCP942はCP932のスーパーセットとあるのは変だと思われ。
*2:しかし俺みたいな「昂」と「供廚函巉紂廚龍菠未つかないアレが
この手の変換テーブルをメンテしてるのがなんともアレだ。



2008/12/4(Thu)

今日

tgen氏ってDragonFlyBSDの人?
まぁCSIならきっとdieも扱えるよ!聞いたことないCESだけど。

よーしパパi386をはじめ全部のport-* MLにマルチで

what the One True CPU arch is?
use i386, x86_64 or die!

とか投げちゃうぞ(やめなさい

die is a cool CPU.

Suggested Ports

死んだはずのNetBSDつまりアンデッドですね、わかります。

花屋、白いバラ。

revive softdepなpatch(笑)
とりあえずsoftdepが完全にNukeされるか、WAPBLが安定するまでは
しばらくこいつで逃げることにした。


2008/12/5(Fri)

今日

本業、旧システムと来年カットオーバーを迎える新システム間のデータ移行方式検討会。
新システムの担当者が「文字コードはShift_JISで」とかゆっとったので
要件定義に CP932(旧システム) → Shift_JIS(新システム) 変換を追加しておいたからな!
(まさに外道.jpg略

マリ○ナおいしかったです、というネタはさておき

どちらも同じ検挙実績、予算おいしいです| ^p^ |とか…あれ誰だこんな時あsdfghjkl

最近もエアガン拳銃認定ではい「銃器800丁押収実績!」てあったような気がする。
チャカおいしいです。

「それは不審死」「いいえ、自殺です」もそうなんだけど
どうにも楽な仕事に転んでるようにみえなくなくなくなくなくなくもない。
頑張れ警察。

まぁ自分はソースコードの行末のスペースを削除する作業で
コの業界でメシウマしたいなーと思ってますが。

[NetBSD] new locale db for 5.0

うーむ、今のsetlocale.cにあるlocale.alias周りの実装って動作がちと変だ。

	/* (1) non-aliased file */
	if (!load_locale_sub(category, new_categories[category], 0))
		goto success;

	/* (2) lookup locname/catname type alias */
	(void)snprintf(aliaspath, sizeof(aliaspath),
		       "%s/" _LOCALE_ALIAS_NAME, _PathLocale);
	(void)snprintf(loccat, sizeof(loccat), "%s/%s",
		       new_categories[category], categories[category]);
	alias = _lookup_alias(aliaspath, loccat, buf, sizeof(buf),
			      _LOOKUP_CASE_SENSITIVE);
	if (!load_locale_sub(category, alias, 1))
		goto success;

	/* (3) lookup locname type alias */
	alias = _lookup_alias(aliaspath, new_categories[category],
			      buf, sizeof(buf), _LOOKUP_CASE_SENSITIVE);
	if (!load_locale_sub(category, alias, 1))
		goto success;

これcitrus_lookup.hで定義されてる_lookup_alias(file, key, buf, bufsiz, flags)の動作が
file中にkeyに対応するaliasが存在しない場合は、keyをそのまま返すという仕様なので
例えばこれ、setlocale(LC_MESSAGES, "Kuma-")とか呼んだ場合には

(1) → /usr/share/locale/Kuma-/LC_MESSAGES が存在しないので失敗する
(2) → locale.alias中には"Kuma-"のaliasは存在しないので、_lookup_alias()はそのまま返却する
	よって無駄なことに/usr/share/locale/Kuma-/LC_MESSAGESの読込(2回目)が発生する
(3) → locale.alias中には"Kuma-/LC_MESSAGES"のaliasも存在しないので、_lookup_alias(以下略
	よって無駄なことに/usr/share/locale/Kuma-/LC_MESSAGES/LC_MESSAGEを探しにいって失敗する

ちゅーことになっとるわ、これnew locale db for 5.0のコードも修正しとかんとな。

OpenBSDの場合、locale.alias関連のコードは未mergeなのな。
そうすっと今LC_MESSAGES=PigってOpenBSDで動いてないんじゃないかな。


2008/12/6(Sat)

今日

ホンダF1撤退。
原油高騰とサブプライムによる経済クラッシュを契機に、今後は
時代に即した車の開発に邁進する所存です。
ヒャッハー!


2008/12/7(Sun)

週末

昨日のネタ、豚の糞から作ったメタンガスで走るエコカーwは
マッドマックス2じゃなくて3のサンダードームだったっけ、リンク間違えちまったよ。

某所から謎の催促メール来てるんだが、脳内をメールチェック前のスナップショットに戻して
近所の自然公園でチルアウト、 紅葉がきれい!

去年の夏にすっころんで痛めた左手首が治ったとオモタら
今度は右手首が 大貫腱鞘炎気味なので、カメラ振り回すのキツイわ。
ちゅうかこれ悪化させたら日常生活かなり困る悪寒。
湿布貼ってガチガチにテーピングして様子見るか。

[NetBSD] nvi-1.81

今日の-current(5.99.4)にしたら、PageUp押すとAbort(core dumped)でお亡くなり。
gtag関連のバグ修正?でデグったな?

ちゅうかWARN=4というメッセージと共に結構なcommitがはいっとる。
wchar_t 32bit cleanのpatchをHEADにcommitしたとして
その後pullup requestかけるの大変そうだな…これはもう俺オワタ。


2008/12/8(Mon)

[NetBSD] monolithic locale db?

最近Fedoraなんかだとglibcのlocale dbは/usr/lib/locale/locale-archiveちゅう
モノリシックなファイルを使うようになってて、/usr/lib/locale/*/LC_*といった
個別ファイルはもはやインスコされないのよね、んでこうした理由は「性能の為」ちゅう説明
みたいなんだが、これどっか比較した結果ないんだろけ?そんなに差が出るのかいな。
つかlocaleなんて一度に全部使うわけじゃないからモノリシックの方が無駄な気がしてならないのだけど *1

NetBSDでも同様のことするとすれば、/usr/share/locale/*から、/var/lib/locale.cache作るとかか。
インストーラーが推奨する/varの容量的にもちとお断りしたいアイデアではあるけど
確かにNetBSDのlocale dbは/usr/share/localeに置かれたMIなファイルなので、どうしてもbyteorder(3)分の
コストがかかってくるので、こういう仕組みも将来的には検討が必要かもしれない。

ただ今の私の実装ではメモリ上のlocale cacheは、queue(3)のSIMPLEQ_*をそのまま使う
簡素なシロモノなのでmmap(2)した/var/lib/locale.cacheをそのまま使えない罠。

まぁ何にせよ今は時間的にしこんなもの突っ込む余裕ないし、後からも変更できるので忘れませう。


*1:mmap(2)しとくだけっても…ねぇ?


2008/12/9(Tue)

今日

やっぱ改変コピペむずいわ。

彼氏がIPv4使ってた。別れたい…

IPv4だと2011年にアドレス枯渇しなくても恥ずかしいww

下向いちゃうしww

男にはせめてIPv6使って欲しい・・・ 

キャリアグレードNATとかいわれたら・・・・もう最悪ww 

せめて普通にセッション数制限せずにネット使わせて欲しい。

常識的に考えて欲しいだけなんです!

未使用グローバルIPアドレスを回収、とかいわれた時の恥ずかしさとか分かる?

あのね?たとえば去年末20〜30万くらいでBGP表とかいってるでしょ? 

それでも古いルーターとかで困ってるわけじゃない?

みんな普通に最小割り振りサイズ変更にも先ずルーティング爆発を心配するわけでしょ?

経路ブチブチにしてフラップさせたら大恥かくでしょうがww

つかこんなもの書いてる時間があるなら(以下略

[NetBSD] nvi-1.81

nviが落ちる件、調べたらあまりにも酷いことになってて噴いた。
要するに↓のよなnot handled in switchの警告が出ないように

/usr/src/dist/nvi/common/db.c: In function 'update_cache':
/usr/src/dist/nvi/common/db.c:646: warning: enumeration value 'LINE_APPEND' not handled in switch
/usr/src/dist/nvi/common/db.c:659: warning: enumeration value 'LINE_APPEND' not handled in switch
/usr/src/dist/nvi/common/db.c:659: warning: enumeration value 'LINE_RESET' not handled in switch

コードを↓のよにいじっとる。

@@ -650,6 +653,8 @@ update_cache(SCR *sp, lnop_t op, db_recn
 			if (lno == scrp->c_lno)
 				scrp->c_lno = OOBLNO;
 			break;
+		case LINE_APPEND:
+			abort();
 		}
 
 	if (ep->c_nlines != OOBLNO)
@@ -660,6 +665,9 @@ update_cache(SCR *sp, lnop_t op, db_recn
 		case LINE_DELETE:
 			--ep->c_nlines;
 			break;
+		case LINE_APPEND:
+		case LINE_RESET:
+			abort();
 		}
 }

そりゃAbortするわwww

ちゅうわけで patch、通報しといたのでそのうち直るでしょ >>192


2008/12/10(Wed)

[NetBSD] nvi-1.81

nviに続々とsend-prがきとるな、動いてるものを壊してしまう典型か。
やぱしlint(1)とかCoverityとかvarglindちゅーツールは扱い方次第ではevilだわさ。
debian opensslしかり。

vi -r hoge fuga した場合に :n! で落ちる障害報告は
pkgsrc/editors/nviも一緒みたいなので、WARN=4で壊したわけではないっぽい。
気が向いたら調べる、まぁ先に誰かが片付けそうだけど。

それと読めねぇrecoverファイルが時々作られるんだがなんぞこれ。

ああrecover fileがberkeley dbのversionが8になっとる。

hypnosis$ file /var/tmp/vi.recover/vi.15114b
/var/tmp/vi.recover/vi.15114b: Berkeley DB (Btree, version 8, native byte-order)

pkgsrc/editors/nviの方はbdb3、src/dist/nviの方はlibcのbdb1を使ってるから
互換性がなくなっとるわけだ、混ぜるな危険。

pkgsrcの方もbdb1を使えそうな気がするんだが、まぁこれも放置しとこう。


2008/12/11(Thu)

昨日

手柄→恩賞→やる気(笑)ドリブンの組織なんつーものは遅かれ早かれ
恩賞のインフレーションで行き詰まる、マンモンの悪魔はいつでもそこにいるよ。
Devil's been busy in your back yard.

忘年会そのいち、会費4.5kもとられたけどそこらの安居酒屋の鍋レベルでがっくし。
呑みニュケーション(笑)とかもはや意味を成さないメンツなので、メシマズは困る。
体調悪いのでお酒も断ってるしな。

某家電量販店。
イーストマンコ ダックのEPRが今月限りで販売終了なので、30本ほど買いしめといた。
んでEPPパッケージ変更になったのね、こっちはしばらくは残ると考えていいの鴨。

そいとUltra Color 100 UCも販売終了、後釜にEktar100が年明けより出回るらしい。
しかしほんまに旧Ektar25と同等の粒状性なのかね? 実は100UCと大差ないとか
ラベルだけとっかえたレベルとかだとがっくしなんですが。
そういや一足先にリニューアルしたT-MAXってどうなんだっけ?
Tri-Xより現像料高いしで使ってないからわからんwww

んで110フィルム(ポケットインスマタチック)も今月で販売終了だっけか。
生産中止発表はフジより前で、販売終了は先ちゅーのがいかにもやね。
んでまだ伊フェラ ニアが細々作ってるかと思ったら、こっちもとっくに在庫処分モードだった模様。
つまりは「絶滅した!」ちゅーこと。

PENTAX AUTO 110とかMinolta 110 ZOOM SLRをコレクションして使ってますなんて層は
自分でフィルムをカットして空き殻に詰めるとかやりそうな猛者だからまだいいんだろけど
トイカメで110フィルム使うやつ(キーホルダー型とか)とかまだ雑貨屋とかで売ってるのにーとも思うけど。

でもやっぱり後者の場合、オマケについてきた1本を現像した後
もういっかい使おうという気にならんよな写真しかとれないのだろね。
結局は誰も困らないというオチなのかもしれない。


2008/12/12(Fri)

[C1X] char16_t/char32_t

kbkさんとこ、私の めもの方はファイルの中身の文字コードを変換しつつ
よみかき そろばんできるfgetwc(3)/fputwc(3)があれば基本みんな
mbrtowc(3)とかiconv(3)でbrain damagedになることもないよね、という話と
wchar_tの内部表現がUnicodeと仮定するなという話であって、微妙に違うっぽいです。

ざっと読んだところ、ワイド文字版fopenがうんたらとあるので「ファイル名に日本語が使えるか」という話っすね。
実はコレfopen(3)すなわちコンパイラ/ライブラリ問題もあるんですけど
われらがNetBSD developerのsodaさんがフォローしているように
open(2)つまりシステムコール/ファイルシステム問題も含む話なので意外と根の深い問題なんですよ。

まぁこのめもがきにしばしば断片的にこの手の話題は取り上げてるんだけど
総集編的に↓のような文章でも書いたほうが良さそうだね。

[予定]

tnozakiの次回作にご期待ください(死亡フラグ)。

まぁその前にtech-userlevelへのアレ書いた後だけどね。


2008/12/13(Sat)

今日

BOMをZWNBSPと見抜ける人でないと(Unicodeを使うのは)難しい

って今はZWNBSPはdeprecatedでZWNJの方を使えなのだっけ、ひどい話だなー(棒読み)


2008/12/14(Sun)

週末

僕の考えた必殺技

ウインターマニックディプレッションラウダーザンボム

一瞬で週末の予定を吹き飛ばし頭痛を悪化させる
相手は死ぬ

つーわけで爆弾低気圧?な雨でもう体調最悪なわけですお。
例のpatchの件で how soon is now?といわれとる件をカタしたいんだが、頭が働かん。
still illでも歌いながら モリッシー踊りでもすっか。

ちなみにうちの現場のPMは顔はモリッシーで横幅は森元首相な感じ。


2008/12/15(Mon)

今日

出勤途中でリス2匹がエサ探してウロウロしてるのに遭遇、冬毛なので尻尾ふわふわ。
なぜか常時持ち歩いてる(…)RF Rokkor 500mm 1:8で狙ったけど動きが速くてMFじゃ無理すぐる。
やっぱ SAL500F80欲しいけどそんなお金はないずら。

このレンズは サギ対策にgetしたんだけど、付属品の後玉につける専用フィルタが欠品だったのよな。
赤橙黄はモノクロ用なので無くても我慢できるけど、NDx4だけは日食撮影なんかでガチ困る。
まぁ前球に汎用品の82mmつければいいのかもしれんけど。

(追記) NDx4とかNDx8だけで太陽見ちゃだめよ、NDx400あたりとの組み合わせでつかうのが目的。
いまだとND10000使ったほうがいいのかも。

リフレックス(Duran Duranに非ず)特有のリングボケ2線ボケを生かして、冬の木漏れ日撮るのもおもろい。
RF ROKKOR 250mm 1:5.6 の方も欲しいんだけどこっちは玉数少ないので高いんだよな。

[pcc] cgram.y

pcc-listでgccの__attribute__をcgram.yでやるのムズいちゅう話してるな。
C1Xではgccの__attribute__だけでなくMSVCの__declspecも入るんだっけ?
私はそもそもyacc/lexが大の苦手なので役立たず。
バッカスなうあ〜日高義樹のワシントン・リポート。

前々からBSDLなxgettext(1)実装するのにpccのcgram.y使えるかなーとか
思ってたんだが、最近のGNUのxgettext(1)って

Choice of input file language:
  -L, --language=NAME         recognise the specified language
                                (C, C++, ObjectiveC, PO, Shell, Python, Lisp,
                                EmacsLisp, librep, Scheme, Smalltalk, Java,
                                JavaProperties, C#, awk, YCP, Tcl, Perl, PHP,
                                GCC-source, NXStringTable, RST, Glade)

ちゅー状態なことに気づき、ぽっかぽかレモン吸ってむせた。
これは手を出したら死亡フラグだ…


2008/12/16(Tue)

今日

忘年会パートII@ 太陽と戦慄月とすっぽん京急川崎店。

うちの現場の海釣り野郎共が納得する魚の鮮度と量。
つかこれでコース4200円は安いわ、どんな仕入れしてんだこれ。
刺身盛り合わせの飾りの真鯛の御頭があまりにもったいないので
お願いしたら煮付けにしてくれたんだがこれがまたメシウマ状態。

某家電量販店のジャンク箱からOLMPUS-PEN EEを保護してきた。


2008/12/17(Wed)

wchar_t != Unicode(UCS2/4) その1

本業の方で障害発生ガッシボッカなので、あんま長文書いてる時間ないので細切れにね。
wchar_tは決してUnicode(UCS2/4)ではないよというお話の第1回目。

そんなん 仕様を読めば一目瞭然です罠。

wchar_t
    Integer type whose range of values can represent distinct wide-character codes for all members of the
    largest character set specified among the locales supported by the compilation environment: the null
    character has the code value 0 and each member of the portable character set has a code value equal to
    its value when used as the lone character in an integer character constant.

読めば判るとおり、wchar_tの決まり事は

  1. 数値型であること
  2. wchar_t1文字でその文字集合の全ての文字を表せること
  3. nul文字は(wchar_t)0であること
  4. PCSの文字はwchar_t == charであること(つまり L'A' == 'A'であること)

これだけしか決まってません。

ふつーC言語で「未定義」といやー「実装依存」であるわけで、これ以外の挙動
例えばwchar_tの値を直に参照(例えば if (wc == 0x1234)とか)するとそれはすなわち
死亡フラグちゅーことです。

そもそもこの4.の条件があるので、EBCDICなどISO646と互換性の無い
文字コードを使用する 夜王ホストなどの世界においては、wchar_t == UCS2/4を採用すると
たちまちwchar_t == charの仕様を満たせなくなりますやね(UCS2/4はISO646-US互換なので)。
つまりは元々wchar_tをUCS2/4のコードポイントとして実装すること自体無理があるわけで *1

しかーし一方でC99には事前定義マクロ__STDC_ISO_10646__というものがネジ込まれております。

__STDC_ISO_10646__
    An integer constant of the form yyyymmL (for example, 199712L). If this symbol is defined, then
    every character in the "Unicode required set", when stored in an object of type wchar_t, has the
    same value as the short identifier of that character. The "Unicode required set" consists of all the
    characters that are defined by ISO/IEC 10646, along with all amendments and technical corrigenda,
    as of the specified year and month. 

この事前定義マクロが定義されている場合は常に

wchar_t == ISO10646(=Unicode) codepoint

を保証するというとってもアレなシロモノです。

ちゅーわけでこのエントリは正確には

	wchar_t != Unicode(UCS2/4)
	※但し事前定義マクロ__STDC_ISO_10646__が定義されていない場合

ですな、まぁでもwchar_t == Unicodeを期待したコードは移植性が無いちゅうことには何ら変わりはないんだけど。
んで移植性のないコードを書いたのなら

#if !defined(__STDC_ISO_10646__)
#error "U.C.S!! U.C.S!!"
#endif

とでも書いといて「お前の姉ちゃん次世代CCSだな」でないプラットフォームでは
エラー出すようにするのがマナーでございます。

ユージュアリーフォースユニコード

非__STDC_ISO_10646__環境でも常にwchar_t == Unicodeを想定したコードを書いて
Linux/Windowsでは動くがSolarisや*BSDでは確実にクラッシュし、あのOSは不安定だと
初心者に思わせるキラーアプリ。ports/pkgsrc developerは死ぬ

まぁ具体的にそれぞれのOSがwchar_tをどーゆー実装してるかはまた次回以降で。

話を戻してじゃぁ__STDC_ISO_10646__の場合、前述のEBCDICはどうすんのよ?
ちゅう疑問が沸いてきますがそこは技術力より政治力(笑)
4.の条件について DR#279ちゅーバグレポが上がってきた際、どーどーと改悪しとりやすね。
これTC 2を読むと上記の4.の条件は削除され以下のよなコメントが書かれておりやす。

C90 specifies the rule that L'x' == 'x' for any member x of the basic character set. The
Committee discussed whether to relax or tighten this rule. In AMD1, this rule is preserved
without any changes. Applying the rule to all single-byte characters, however, imposes an
unnecessary constraint on implementations with regard to wide-character encodings. It prohibits
an implementation from having a common wide-character encoding for multiple multibyte
encodings. It also prohibits an implementation from having a wide-character encoding based on
a different standard than its single byte encoding (e.g., ISO 10646 and EBCDIC).

これ困ったことにソース互換性がC90AMD1→C99で失われちまうのだけどね。

	wchar_t wc = L'A';
	int c = 'A';

	if (wc == c) {
		...
	}

みたいなコードを書いた場合、C90AMD1まではPCSの範囲ならこの条件分岐はOKだったのに
C99TC2以降はこのコードはnul文字以外では場合は未定義動作となってしまったという。
これコンパイラでも警告だせないような変更だし困るのですが…にんともかんとも。
(追記) DR#321の件を忘れてました、 ここ参照。

まぁさらっと見ただけでも__STDC_ISO_10646__って技術的に無理を通してるのが判りますが
問題点はこれだけにはとどまりません。

そのへんの話は既にitojunさんの paper
「なぜUnicodeでは足りんのか?(Why Unicode is not enough?)」として語られていますので
今更私が書いても「余計なもの(-1)」になる気もしますが、これも次回以降にて説明したいと思います。


*1:UTF-EBCDICちゅーのは試行錯誤した結果なのかな?よう知らんけど。
つかstylesheetが気に入らんので読んでないw


[NetBSD] nvi-1.81 + zh_CN.GB18030 locale

wchar_t == Unicodeの話書いてて気づいたんだが、'x' == L'x'で比較できんとならん件について
以前zh_CN.GB18030 localeとnvi-1.81で発覚した wchar_t negative value問題対策として
wchar_tをunsigned intにしよーぜとか考えてた件、あれ完全にアウトですな。
なぜならsigned int と unsigned intの比較はコンパイラによる警告の対象になっちまうから。
ぎゃぁぁぁぁぁぁぁぁぁぁぁぁ。


2008/12/19(Fri)

昨日

人によっては忘年会Part3、おいらは花屋とかでショッピング。

いろいろ開き直ってOLYMPUS-PEN EEの修理に着手、かんにんしておくれやす。
露出計は動いてるんだけど赤ベロ(露出の警告マーク)が動いてない。
軍艦部開けて、巻上ダイアル前のネジ二本で止まってるスライド部を掃除 & 注油、それでもいまいち動きがシヴい。
どうやらシャッターバーが若干曲がってるせいでそれが可動部にストレスになってる様子、矯正したら快調に動くぜいえー。
この状態でセレンと露出計の調子と光線漏れの有無確認がてらフィルム一本撮ってみるか。

wchar_t != Unicode(UCS2/UCS4) その1への補足

えーっと 前回でひとつ補足、 DR#321の存在を失念しとりやした。
私が書いたように'x' == L'x'を想定したコードが動かなくなるちゅー問題に気がついて
「__STDC_MB_MIGHT_NEQ_WC__事前定義マクロが定義されてる場合は」とC99 TC3で再変更されてます。
まぁどっちにしろportableにコード書くなら'x' == L'x'を仮定したコードは書けなくなったのだけどねw
事前定義マクロ乱発し杉。

その2はしばしお待ちを、ところで何故俺は YASHICA ELECTRO 35 GXなぞを分解してるのでしょう…


2008/12/21(Sun)

昨日

月命日、季節は巡れど冬の日だまりでまどろむ猫の姿無し。

某所からもう時間ありませんメールきてるので
ちょーっと待って プレイバックメール投げた。

ちゅうか誰かにレビューして貰えって…
あのplain textな実装ですらok出るレビューですかそうですか。
やっぱり単純に5.0では今のうんこ実装をNukeする方向で進めて
6.0でいろいろまとめてちゅう方針にすりゃ良かった。

結局ほとんどの人が興味ない分野なので、某所にpatch投げても
テストしてくれる人もいないので、自分でちびちびテストするしか
ないのだが、時間に追われてまでやりたくないのよな…

the Replacementsのリマスタ再発喜んでたら、じつは知らない間に
Alex Chilton率いるBig Starが 新作出してて、しかもライブで交通事故で亡くなってる
Chris Bellの ソロから i am the cosmos演ってることに気づいて全俺が失禁した。

げ、しかもthe Replacementsのドラム亡くなってる…

[NetBSD] new locale db for 5.0

つうわけでブツは nbftpに置いた
これからメール書く、下書きどこ置いたっけか。
まぁ書いたところでまた何の反応も無いだろうから、返事無けりゃクリスマス明け
にでもcommitするお、とでも書いとくかね。

kernelを5.99.5に入換えたら死んだ、スイーツ(笑)
もういや。

これだな。

お次はathのHAL importでbuildコケる。
もういや。

あぁ、次はkernel_malloc.cだ…
もう寝る。


2008/12/22(Mon)

今日

VMWare上の5.0_BETAでbuild test仕掛けて、寝て起きたらVistaごと死んでた。
何を言ってるのか わからねーと思うが(以下略
もうこれは俺の背後霊かスタンドが「関わるな」と警告してるに違いない。

年俸制なのでボーナスとか都市伝説、景気に左右されず常時ラブユー貧乏。

アサカメ買ってきた。

511 :名無しさん脚:2008/12/19(金) 21:37:36 ID:bg4cCrB/
    今年も岩合さんの猫カレンダーを買ってしまったが、相変わらず
    アサヒカメラとかいうでっかい付録が付いてくるんだな。
    邪魔だったらありゃしない。 

528 :名無しさん脚:2008/12/20(土) 23:18:43 ID:3QniWpuV
    猫のカレンダーが欲しかったのに、付録の表が裸だった

皆同じこと考えてんだなw
しかしカレンダー6月のネコ一家かわゆすなぁ、父ちゃんの表情いい。

謎の修理用にエナメル線買ってきたのだけど(小学生以来だ…)昔と違って
茶色くないなーとおもたら最近はホルマル線といって被膜の材質が違うのね。

ヨドバシで売ってた古いカメラで使われるMR-9電池のの代替品、VARTA P625Uが
直輸入? でなくなって、共栄産業とかいう代理店経由での仕入れになったのだけど
(パケ変更されてるけど中身同じ)なんと値段が以前の105円から400円になってやがんの。
こりゃ関東カメラのアダプタ買った方がマシだわwwwオワタwww

そもそもVARTAを使う場合、1.35V vs 1.5Vの関係で露出計が振れ過ぎるとか
水銀 VS アルカリの特性の違いであんまり長く使えないちゅー問題がある訳で
そこらを目を瞑れるだけの「安さ」がメリットだったのにねぇ。

アダプタは高価なSR-43しか使えない電圧変換型じゃなしに無変換型を買って

と使い分けるのがよさげ。

更にKodak EPRを10本買い増しして現在在庫40本、財布さむい。

OLYMPUS 35DCの修理完了w
単にセルフタイマーとシャッターが噛んでただけなので
底蓋空けてちょこちょこ突いてみたら動くようになった、つまらん。


2008/12/24(Wed)

クリスマスイヴ

季節ネタ、 赤い服のおじさんが踊る映像を貼ってみる。

sprintfはMT-safeか?
POSIX的には断り書きが無い限りMT-safeは必須ですお。

All functions required by IEEE Std 1003.1-2001 need to be thread-safe.

んで strtokなんかには

The strtok() function need not be reentrant.

と注釈ありますな。

async-signal-safeは逆に この例外リスト以外は全部アウトちゅーdefault denyですが。

まぁ現実問題としてちょっと古めの*BSD系のlibc実装では、printf(3)の内部実装で使われる
浮動小数変換関数のdtoa()がreentrantでなかったりしてMT-safeでなかったりとか
注意が必要な実装も結構あったりするのが悩みどころ。

一番謎なのがSolaris10、sn?printf(3)はMT-safeどころかasync-signal-safeなんだよな。
どんな地獄のチューニングしてやがるんだ…


2008/12/25(Thu)

クリスマス

開国シテクダサーイ LAZONA川崎で福引など、全部ハズレ。
それにしてもぺスター並みの人出で凄いねこりゃ、さすがコンビナート。

会議とか、やっと年内の仕事の整理がついた。
ちゅうか年明けの予定だった仕事が急に年内前倒しになったので慌しい年末だった。

これでやとこさ某作業に復帰できる、つかrelengからメールきてるにゃ、ごめんよ…

しかし Joy Divison届いてしまったのでアンウンガタちこめる。

PENTAX K-m white見て α-8700iミール思い出して懐かしい気分になった。
次は 漆塗りいってみよう。


2008/12/26(Fri)

今日

なんという無限ループ。

fix tyop の検索結果 約 6,200 件中 1 - 10 件目 (0.20 秒)

出勤途中にちょくちょく見かけたリス、車に轢かれとった。
ガケップチマンションが乱立したお陰で緑地が急速に減っているので
エサ確保に移動すんのも大変だなーと心配してたのだけど。
これは凹む…


2008/12/28(Sun)

昨日

東急ハンズ、なぜか1Fでレコファンが中古CDフェアやってたので
以前紛失してしもうた Diamond Dogsby David BowieのRyko盤買ってきた。
一緒に同タイトルとZiggy Stardust Motion Pictureの30th Anniversary版が
安く売ってたんだがCopy Controlがアレなのでスルー。
あとトートバッグ買った。

えー Delaney Bramlettお亡くなりになったのか…死ぬほど聴いたよ…R.I.P
Duaneによろしくね…あ、あとGeorgeも。

げ、 Mitch Mitchell先月亡くなってたのか… Buddy Milesも年初めに亡くなってるのに。
JimiとNoelによろしくね…

Neu!/La DusseldorfのKlaus Dinger、the ReplacementsのSteve Foley
そしてウガンダにドラマー受難の年や…

Shine A Lightえらく評判いいな。
Rolling Stonesのライブ映像とか、 Hyde Park 1969で一瞬だけ映る
水辺の眼鏡っ子がノーブラ+白いブラウスが(以下略 しか見るべきものないし *1
全米が泣いたくらいに信用してないけどな>>評論家。
まぁでも一応 Last Waltzのスコセッシだからなー、見に行ったほうがいいのかな。


*1:Altamountだとポロリがあったっけ?


2008/12/30(Tue)

昨日

我在横浜中華街
ウイング関帝廟そばの店で牛筋を煮込んだようなものを食す。

ベイブリッジ → 大黒埠頭
みなとみらいと富士山をシルエットに夕焼けをみる。
月齢1.6の細い月+金星+木星の合、電飾した遊覧船の軌跡ちゅーボーナスもあって
しばし言葉を忘れる、しかしこういうときに限ってフィルム切れという不始末。
アパム、アパーム!

昨日の日没が16:37月没が18:04なので、だいたい1時間半くらいの差があると
夕日にかかる月が見れる訳だな、メモメモ。

鍋うまうま。


[ホームへ] [ページトップへ]