微妙に昨日の続きというか.
改行を "," の代わりに使えるようにするのはどうですかねぇ.
h = { a: 1 b: 2 c: 3 } ary = [ 1 2 3 ] foo( a: 1 b: 2 c: 3 ) bar( 1 2 3 ) baz( a: 1 b: 2 c: {x: 1 y: 2 z: 3} ) # 混ぜるとキモイ ary = [1, 2, 3, [4, 5] 6 7]
こんなふうに使える.今は,(思いつくところでは)Syntax Error になるので,互換性的な問題はないと思うんだけど.
ハッシュでなんか書かせるとき,"," が鬱陶しかったから,こうなると嬉しいなあ.
やり過ぎかなぁ.
ああ,括弧無しメソッド呼び出しだと曖昧になっちゃうか.
foo bar(1) bar(2) bar(3)
ちゃんと,括弧(とかブレースとか)で囲んでいるとき限定の表記です,というのはどうなんだろうな.
Hash 構築に "," を使いたく無い,という無駄な努力.
class HashMaker def initialize @h = {} end attr_reader :h def method_missing sel, arg @h[sel] = arg end def self.make &b hm = self.new hm.instance_eval(&b) hm.h end end p HashMaker.make{ a 1 b 2 c 3 } #=> {:a=>1, :b=>2, :c=>3}
CoffeeScript はこれ採用してますね。 http://jashkenas.github.com/coffee-script/#objects_and_arrays
おお,なるほど!
postfix で secondly DNS を設定したところ,relay_domains を relaydomains と書いてしまっていて動かなかった.
これは,「正しくない設定(存在しない設定)」をしても,単に無視する,ということではまってしまった話だと思う.
shell script や ruby なんかで直接設定を書くような場合,こういうことは起こりやすいと思う.問題を狭めて,Ruby なんかで直接設定を書かせるとき,こういう間違いを起こさないような設定の書き方には,どんなものがあるか?
そもそも,Ruby で設定ファイルを書かせる,ってのにやり方はどれくらいあるか.
定数は,継承できるから便利だったので(継承させて使ってるのは俺だけのような気もするが).
1〜3,どれも知らないオプションを指定されたら怒るって作ることは出来るが,1,3 は任意の Ruby コードを書けるので自分用の定数,インスタンス変数を定義する可能性はあるんだよな.そういう意味で,制限させやすいのは 2 のような気がする.でも,Ruby の Hash リテラルは,カンマを要求するので書きづらそうな気がする.line separated な Hash リテラルって作ってくれないかな.
setting = %h{ a: 1 b: 2 c: 3 }
うーん,イマイチ.
誰か,メソッド定義させるってのはあるかな.それは面倒だよな.def とか設定者に書かせるの.
普通に設定用メソッドを呼ばせるってのはあるなぁ.
set option1: 1 set option2: 2 set option3: 3
みたいな.set が邪魔ですな.
option1 1 option2 2 option3 3
でもいいかもしれない.設定名 == メソッド名.これなら間違いようがない.適当に method_missing で拾ってやれば,実装も楽そうだし.
こういう設計の設定ファイルってあるのかしら.見たこと無い.
うーん,これは良いものな気がしてきたぞ.次作るときはこれにしようか.
西山さんに「エディタで色づけすればすぐにわかるのに」という指摘を頂いた.確かに.
milter managerってやつはメソッドです。
vm3_gc のベンチマーク結果を weekly でまとめてみた.
http://www.atdot.net/fp_store/f.jejk5l/file.g.png
さて,2009/07/06-2009/07/13 の間になにが起きた? gc.c 関連の修正は行われてはいるが.
loop
http://www.atdot.net/fp_store/f.xujk5l/file.g.png
generator は 2010/05/17 になぜか速くなってるな.何かあったんだろうか.あれ,Fiber のやつを入れたのこの時期だっけ?
他のループは軒並み遅くなってる.これは,VM の基本性能が微妙に遅くなっていることを示している.まぁ,1割2割なんだけど.
たまには休んでくださいよ