今日したこと
- gaucheの補完のelispを改良
- cachefileを作成することにした
- 1回目以降は読み込みがはやくなった。
- (存在する場合は)定義してあるファイルに飛べるようにした
- cachefileを作成することにした
- pipeとforkの使いかたを知った
- rubyのforkはblock内が子プロセス
pipeとfork
自分の出力をフィルタする - Gaucheクックブック
理解しているかどうか怪しかったのでrubyで同じような処理を書いた。
class A def initialize @n = 0 end def say x puts "#{@n}: #{x}" @n += 1 end end a = A.new pi = IO.pipe #pi.first = in, pi.last = out fork do pi.last.close pi.first.each { |x| a.say x} pi.first.close exit 0 end pi.first.close $stdout = pi.last puts "test" puts "foo" puts "bar" # >> 0: test # >> 1: foo # >> 2: bar