ToDo:
CVS MAIN trunkへまめにバックポートが行われてますが、 ほとんどは ISO C99対応、POSIX等の C libraryの呼び出し仕様を 満足するための修正です。なんか、Tru64の C compilerは ISO C99対応みたいですが、POSIX等の仕様が古いままで printfがらみの新しいフォーマット文字列が未サポートのようですが 主にデバック出力関連な上、消え行くプラットフォームなので 気にしないように...
ただ、EPICS library linkageの更新では、build framework側の デフォルトをEPICS base-3.14.9に切替えているので、 USE_KEKB_EPICS=YESを使っている場合は、sad.confの 最後を新しいsad.conf.sampleの物と入れ換えないと 上手く動作しません。
あと、一部の64bit環境でプラットフォーム依存の拡張機能を 使って SADを動かすためのhackを入れてありますが、 使用を推奨するものではないのでデフォルトはOFFに してあります。必要なかたは、src/sim/unix_memory_.cを 熟読の上で自己責任で御利用下さい。
Instance functionの定義評価は、当該Instance functionの最初のシンボル解決まで遅延される
つまり、環境依存(Instance symbolの評価値依存など)な定義は、 Instance function symbolの最初のシンボル解決時のコンテキストで評価される。
さらに言えば、関数呼び出しでは無くシンボル解決時なので 初期化シーケンス中にデバック目的でシンボル解決を行なうと状態が変わってしまうので要注意。
代表例は、Packages/CaSad2c.nのCaMonitor実装など
Runtimeでの条件分岐を減らす意味では有効だが、 シンボル解決時の暗黙のコンテキスト依存を使った実装は、 シンボル評価順序依存が入りデバックしにくくなる。
Symbol rebindingによる Singleton実装の方が可読性は高いと思われる。 (内部動作的には、Class.nが同等のことを行なう訳で大きなパフォーマンスメリットがあるとは思えない)
rlist pointerのrange更新コードを追加したので、添字検査を有効にして試してみたが、色々あってまともに添字検査が出来ない罠
一応、typo等に伴う無効参照等のバグが何件かかかっているので、無駄ではないがすぐに修正出来ない部分のrange checkを無効化するコストが高いのが難
カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記