トップ «前の日記(2006-02-17) 最新 次の日記(2006-02-19)» 編集

日々の破片

著作一覧

2006-02-18

_ ASRのコンパイラを変更する予定

現在、VS6でビルドしてMSVCRT6と一緒にASRを作成しているけど、次からはVS2005でビルドすることにします。

除外ライセンスについての規定が

再頒布可能コードのソースコードを改変または再頒布すること

と明示的に限定されているからです。ASRのソースコードにはATLを継承したものは含まれていますが、それは「ソースコード形式で改変し」とは異なることは明らかです。

と、一応、書いておく。

の使い#ライセンスを読むとバイナリー(msvcrtをスタティックリンクしたものを含む)をWINEなどのWindowsプラットフォーム以外のプラットフォームでの実行を目的としての配布はできない(やらないけど)。

#でも、メインマシンには当分インストールできそうにない。どうしようかな。

#実際にはMSのライセンスには抵触していなくてもGPL2には抵触している(少なくても付随条項の追加が必要であるが無視している)ということは一応書いておく。というか、付随条項を入れれば良いのか。

_ 迷彩

迷彩記憶を開いて何か間違えたかなとすぐ閉じてしまって後でまだ読んでないことに気付いて開きなおしたり。使ってる人を見ないのでなんとなく自分専用のような意識になってたようだ。

_ ネストメソッド

こういうことかな?
#!/usr/bin/env ruby -Ks
class Calculator
  def initialize()
    change_behavior(?+)
  end
  def change_behavior(o)
    if o == ?+
      def calc(x,y)
        x + y
      end
    elsif o == ?-
      def calc(x,y)
        x - y
      end
    end
  end
end
 
c = Calculator.new
p c.calc(1, 5)
c.change_behavior(?-)
p c.calc(1, 5)
c.change_behavior(?+)
p c.calc(1, 5)
動かすと
C:\tmp>ruby calc.rb 
6
-4
6

こうやるとインスタンスではなくクラスの振る舞いに影響するのか。

c.change_behavior(?-)
p c.calc(1, 5)
c2 = Calculator.new
p c.calc(1, 5)
とすると、c2のためにinitialize()が走り、cのcalcが元の動作に戻る。

_ 尻尾を咥えようとする蛇のゲーム

defを呼ぶのが先か、メソッドを呼ぶのが先か、微妙な処理順によってうまく動いたりmethod_missingになったり。もちろんmethod_missingになったらゲームオーバー。(defするスレッドと呼び出すスレッドのレースゲーム)


2003|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|09|10|11|12|
2009|01|02|03|04|05|06|07|08|09|10|11|12|
2010|01|02|03|04|05|06|07|08|09|10|11|12|
2011|01|02|03|04|05|06|07|08|09|10|11|12|
2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|06|07|08|09|10|11|

ジェズイットを見習え