トップ 追記

Orz日記 by Akio Morita

ToDo:

  • 15 SAD Fit[]回りの障害事例の解析
  • 10 smart pointer版PEGクラスの再実装(Left Recursionまわり)
2006|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|06|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|07|08|09|10|11|12|
2013|01|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|06|07|08|10|12|
2016|01|02|03|05|06|08|10|11|
2017|01|02|03|04|05|06|07|09|10|11|12|
2018|01|02|03|04|06|07|08|09|10|11|12|
2019|01|03|04|05|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|12|
2025|01|02|03|04|05|

2025-05-22 [長年日記]

_ [雑記]CGI backend Ruby更新

Ruby3.3へ移行に伴いtDiaryにパッチ当て

最新のrackup v2.2.1を入れるとCGI版でエラーが出るので、GitHub上の開発版からリリースに含まれない対応パッチを吸い出してきた

まあ、Gemfileに手を入れてrackupをv2.2.0に抑えた方が簡単か…


2025-05-20 [長年日記]

_ [FreeBSD]ZFS on SN770

掲示板でも不安定報告がある組み合わせだが、手元でも安定しない環境が出る模様

  • Intel N305 + WD SN770 + FreeBSD 14.3-STABLEは安定している
  • Ryzen 7950X + WD SN770 + FreeBSD 14.3-STABLEは微妙に不安定(buildworldは出来ているが、長時間動作でZFSの書き込み系でスタックする模様)
  • Ryzen 7950X + WD SN850X + FreeBSD 14.3-STABLEは安定している

SATA SSD時代もZFSだと安定しないSSDがあったのでファームに癖があるのか? それとも、Cache抜きの廉価版なのがいかんのか?

流石に人知れずハングするのは遠隔運用に難有りなので、時間が出来たら予備のSN850Xに換装予定


2025-05-07 [長年日記]

_ [FreeBSD]14.3-BETA1

14.3系のリリースエンジニアリングが本格化した

これが終わると次は年末に予定の15.0の作業が…

drm的にはさっさと15系に切り替えたいところだが、いろいろ検証が必要か?


2025-04-10 [長年日記]

_ [SAD]Stringのエンコード操作

現状の実装方針

  • Code-point表現はUnicodeベースとし、CSI実装にはしない
    • 現用環境では、UCS-4でもメモリサイズ的に実用に耐える
    • 最近の外部のエンコードライブラリは、UCS-4実装が主なのでCSI化するメリットが薄い
  • ToCharacterCode, FromCharacterCode, Characters, StringLengthを再実装し、エンコードオプションをサポートする
    • デフォルトエンコードは、Unibyteとする (0x00-0xff ⇆ U+0000-U+00FFを1対1にマッピング)
    • デフォルトエンコードをUTF-8化した変種を用意する
      • ToUCS, FromUTF8 (UTF-8 → UCS-4)
      • FromUCS, ToUTF8 (UCS-4 → UTF-8)
      • UTF8s (UTF-8文字列の分かち書き)
  • エンコードモジュールが見つからない場合は、当面エラー扱いとする
    • 二次開発で、iconvバックエンドの実装を行う
      • 一旦、UCS-4-INTERNALバッファに貯めることで、ステートフルエンコードもサポート可能に(ISO-2022系とか)
    • StringEncode - Stringのエンコード変換の実装も二次開発項目
      • UCS-4経由であれば、FromCharacterCode[ToCharacterCode[s, Encoding->from], Encoding->to]相当

2025-04-08 [長年日記]

_ [SAD]文字列Encodeの扱い

やはり、Encodeオプションのような形で、String処理時のEncodeを指定できる方がスマートな気がする…

その場合、サポートするEncode名とバックエンドの関係を定義するframeworkを実装すべきか?

現在の状況では、実用的なコードポイント集合はUnicode(UCS-4)になるので、CSI実装をする必要は無いと思われる

基本的なPrimitiveは、multibyte bufferからコードポイントを拾う・multibyte bufferへコードポイントを書き出す辺りか?

ISO-2022系のような状態遷移を持つ系はどうするのが良いのだろう… (一旦、UCS-4列にパックしてからiconvだと一時領域を割り当てる必要がある)

現時点での改修案

  • String encodingを扱いFrameworkを実装する
    • 外部化するCode PointはUnicode(UCS-4)とし、CSI実装にはしない
    • iconv(3)による変換サポートを実装(UCS-4-INTERNALへ正規化後に変換するフロー)
    • 1-character単位の変換が可能なEncodingに関しては、put/get手続きを実装し、methodテーブルに登録する形にする
      • Encode名・1文字put・1文字get・1文字String生成(分かち書き用)・内部分類コード (backend routineの共用化用との識別符号)
  • 現行実装済みのUTF-8サポートは、Encode/Unicode等の符号化サポートモジュールの形に再実装する
  • API/StringUtilsからは、上記Frameworkを経由してEncodeサポートを行う
    • Encodeオプション付きのToUCS, FromUCSを汎用APIとして整備する
      • Default Encodeは、Unibyteとして ToCharacterCode, FromCharacterCodeと互換を取る
      • ToCharacterCode, FromCharacterCodeを別名化する余地あり
      • 派生する文字への分かち書き・文字数カウントAPIは、UCSsUCSLength辺り?
        • もしくは、Characters及びStringLengthEncodeオプションを持ち込む
    • ToUTF8, FromUTF8に関しては、特化APIとして残す?(外部との入出力の取扱いで頻度が多いはず)

2025-03-31 [長年日記]

_ [買いもの]アルドノア・ゼロBD BOX

個人的には評価が高い作品だったので、BOX化ということで限定生産版を購入したのだが、置き配された密林さんの箱が異様に大きい… なにこれ?

中身は、厚み薄いけどLD BOXサイズの箱だった

場所取るのがいやでBOXにしているので、LD BOXサイズだとDVD・BD前提の収納スペースへの収まりが非常に悪い罠 Orz

流石にLD BOXほど重くないのが唯一の救いか…


2025-03-28 [長年日記]

_ [SAD]開発検討すべきString Utility

使用頻度がそれなりにありSADScript上での実行コストが高そうなString Primitive

  • StringEscape (実装 rev.8018)
  • StringUnescape (実装 rev.8017)
  • ToUTF8 (UCS4 array → UTF8 String/実装 rev.8016)
  • FromUTF8(UTF8 string → UCS4 array/実装 rev.8023)
    • Invalid UTF8シーケンス(デコード不能な符号列・不正な符号列)の扱いは?
      • 初期実装は削除動作で実装
      • 汎用性を考えると、UTF-8レベルの不正規符号化を受け入れる不正な符号列の取扱いをオプションで指定可能にすべきか…
  • UTF8s (UTF8 string → UTF8 character array/文字単位の分かち書き/実装 rev.8023)
    • 当面はMap[ToUTF8, FromUTF8[...]]による実装
    • FromUTF8の実装が安定したら、出力形式バリアントとして実装する?

現行のUnicode運用ではUCS2を考慮する必要は薄いが、UTF16は必要になる可能性が有り得るので、関数名は ToUTF8(UCS4 → UTF8)・FromUTF8(UTF8 → UCS4)辺り

内部実装用に未初期化なStringオブジェクトを割り当てるhelper functionを用意した方が良さそう…


2025-03-17 [長年日記]

_ [FreeBSD]drm driver on Meteor Lake

手持ちのMeteor Lake-P (vendor=0x8086 device=0x7d55 subvendor=0x10f7 subdevice=0x8338 on Let'snote FV5)での動作状況まとめ

テスト環境は、stable/14に pull requestに上がっていた linuxkpiパッチを個別に取り込んだ環境

  • Ver 6.6
    • VT console表示は崩れる
    • X11 modesetting driverは問題なく動く

今のところ、Ver 6.8に drm/i915: Disable DSB usage specifically for LUTs当てて、xdmで使う(VT consoleを使わない)が実用上の落としどころか?


2025-03-13 [長年日記]

_ [SAD]Module errata対応

Optics/Orbit Server運用にて利用頻度が高いPackage実装修正の残作業

  • Tkinter.n - Block workaround(StringEscape 2箇所・Font Substitution 1箇所)を除き修正完了 r8001
  • FileDialog.n (修正完了 r7997)
  • KBMainFrame.n
    • KBF$PageSetupDialog - KBFOptionDialogへ渡す変数シンボル
    • KBF$PrinterChooser - KBFOptionDialogへ渡す変数シンボル
    • KBFComponentFrame - オプションリスト展開格納シンボル
    • KBF$ArrangeComponents - 局所変数
    • KBF$ArrangeTabComponents - 局所変数
    • KBF$HardCopy - 局所変数
  • OptionDialog.n - KBFrameのUpSetDelayedバインダー (再突入を考慮するとBlock(大域シンボル)は使えない)
  • TabFrame.n - AddTabメソッド実装の局所変数 (複数の状態変数の受け渡しがあり、標準形への書き直しには手間取りそう…)
  • Library.n (修正完了 r8006)

Canvas, Plotまわりは量が多い上に解析めんどそうなので後回し (Optics ServerでMatching系の操作をしなければ影響なし)


2025-03-11 [長年日記]

_ [FreeBSD]lang/python27 2.7.18_4

x11-toolkits/bltがインストールされていると、_tkinter.soのリンケージで失敗する (blt由来のシンボル混入・libjpegシンボルの参照混入) おそらくconfigure scriptが bltを自動検知しているが、build側で正しくlibrary linkageが出来ていない


カテゴリー: Admin | Emacs | EPICS | Fortran | FreeBSD | GCC | hgsubversion | IPv6 | KEKB | LHC | Lisp | LLVM | MADX | Ryzen | SAD | samba | tDiary | unix | WWW | YaSAI | お仕事 | イベント | 出張 | 宴会 | 数学 | 艦これ | 買いもの | 追記 | 雑記