ToDo:
管理を請け負っているSAD Release Informationの自動更新スクリプトに手元のコンテンツの更新をチェックするコードを加えた
普通は、ftp mirror側で何とかすべき話なのだが、うp先の FTP Serverが、タイムスタンプの制御をサポートしてくれない orz
SADで RFSWとRADをONにしたTrackingを 実行するとTraclkingの中で実現する平衡分布が z方向へずれるという謎現象があるのですが、ヒントを得ました。
どんなヒントかといえば、トラッキングのために KEKBOpticsをロード(自動的にCALCが走る)した後、 事前にファイルに保存してある粒子分布を読み出し TrackParticles[]へ突っ込んだ場合(1)と、 その場で粒子分布を生成して TrackParticles[]へ突っ込んだ場合(2)で、 粒子分布の重心運動が異なるというものです。 (1)で事前に用意した粒子分布自体は、(2)で生成した 分布をファイルに書き出したものなわけで... File I/Oが破滅的にイカレてない限り粒子分布は 同じものになります。念のため、TrackParticles[]直前で 擬似乱数列も初期化しているので、プログラム的には まったく同じ出力を返すべきところですが、z方向に 30mm謎のドリフトをしてくれます。
注目すべきは、Opticsロードから TrackParticles[]開始までの 粒子分布生成の方法しか違わない点で、分布生成に Emittance[]の吐き出す座標変換行列を使っているので、 TrackParticles[]の直前に Emittance[]を差し込んだ所、 謎のドリフトが消失...トラッキングルーチンで Emittance[]が書き出す大域変数を参照している ようです。そんな仕様、聞いてないよ Orz
NORADにした場合でも、謎のドリフトは発生する。
hiki-1.0.0ベースに手を入れてRuby2.7環境で動く状態になった物でRuby3.1対応を試している
一応、閲覧回りは動くようになったが、Ruby3.1だとページ更新でエラーになるのでゴソゴソ調査してみた
どうやらメソッド呼び出し時のキーワード引数とハッシュの自動変換回りの挙動がRuby3.0で変更になっているのが原因の模様
githubにあるHiki側のコードも見てみたけど、hiki/db/flatfile.rbの移動先のコードlib/hiki/storage/flatfile.rbも暗黙のハッシュ→キーワード引数展開を期待するメソッド呼び出しが残っている
あと、hiki-1.0.0ベースのコードだとハッシュの書き方が旧い模様
FileUtils.copy(textdir(page), backupdir(page), { :preserve => true })
に現れるシンボルに対するハッシュ要素 :preserve => trueは、Ruby1.9以降ではpreserve: trueと記述できる
Hikiの改修だとこの辺
hiki-1.0.0からフォークしたコードベースで、ページ閲覧・ページ更新が出来るところまで修正完了
現時点までは、Ruby 2.7とも互換性を維持している
後は、添付ファイルのアップロード系の機能確認を行ったら、本番環境に反映予定
アップロード系のcgiに関しても改修すべき点があるが、それは後ほどか…
カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記