トップ 追記

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|

2025-04-08 [長年日記]

_ [SAD]文字列Encodeの扱い

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

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

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

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

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


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が出来ていない


2025-02-28 [長年日記]

_ [FreeBSD][Emacs]japanese/lookup壊れた

Emacs 30.1に更新したら、japanese/lookupが壊れたぽぃ

M-x lookupで単語検索すると

Looking up `foo'... (検索対象の辞書名...)
lookup-dictionary-search-cache-get: Wrong type argument: obarrayp, [nil nil nil nil nil nil nil nil nil nil ...]

で結果が戻ってこない

scratch bufferで実行したログ(2025/03/04追記)

UIにバインドされている関数lookup-find-patternを追いかけて、入力パターンを受けて実行される部分をscratch buffer上で評価して詳細なエラーログを取得してみた

(lookup-search-pattern (lookup-current-module) "test") C-j

Debugger entered--Lisp error: (wrong-type-argument obarrayp [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...])
  intern("test" [nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil nil ...])
  lookup-dictionary-search-cache-get(#s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/readers" :options (:alias "readers") :id "ndeb:/usr/local/share/dict/cdrom/readers") :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/readers/readers") #s(lookup-query :method regexp :string "test" :pattern "test"))
  lookup-dictionary-search-internal(#s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/readers" :options (:alias "readers") :id "ndeb:/usr/local/share/dict/cdrom/readers") :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/readers/readers") #s(lookup-query :method regexp :string "test" :pattern "test"))
  #f(compiled-function (query) #<bytecode -0x4b416b1ee2a9b0>)(#s(lookup-query :method regexp :string "test" :pattern "test"))
  mapcar(#f(compiled-function (query) #<bytecode -0x4b416b1ee2a9b0>) (#s(lookup-query :method regexp :string "test" :pattern "test")))
  lookup-dictionary-search-multiple(#s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/readers" :options (:alias "readers") :id "ndeb:/usr/local/share/dict/cdrom/readers") :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/readers/readers") (#s(lookup-query :method regexp :string "test" :pattern "test")))
  lookup-dictionary-search(#s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/readers" :options (:alias "readers") :id "ndeb:/usr/local/share/dict/cdrom/readers") :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/readers/readers") #s(lookup-query :method default :string "test" :pattern "test"))
  lookup-search-query(#s(lookup-module :name "scrup" :dictionaries (#s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/readers" :options ... :id "ndeb:/usr/local/share/dict/cdrom/readers") :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/readers/readers") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/NaturalScienceEtoJ" :options ... :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceEtoJ") :name "body" :options nil :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceEtoJ/body") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/NaturalScienceJtoE" :options ... :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceJtoE") :name "body" :options nil :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceJtoE/body") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "kojien" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/kojien") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/readers") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "wachu5" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/wachu5") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "kanjigen" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/kanjigen") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "gn06ep01" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/gn06ep01") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "jyukugo" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/jyukugo") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "katakana" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/katakana") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "screen" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/screen")) :bookmarks nil :priority-alist ((#s(lookup-dictionary :agent ... :name "body" :options nil :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceEtoJ/body") . t) (#s(lookup-dictionary :agent ... :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/readers/readers") . t) (#s(lookup-dictionary :agent ... :name "screen" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/screen") . t) (#s(lookup-dictionary :agent ... :name "katakana" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/katakana") . t) (#s(lookup-dictionary :agent ... :name "jyukugo" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/jyukugo") . t) (#s(lookup-dictionary :agent ... :name "gn06ep01" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/gn06ep01") . t) (#s(lookup-dictionary :agent ... :name "kanjigen" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/kanjigen") . t) (#s(lookup-dictionary :agent ... :name "wachu5" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/wachu5") . t) (#s(lookup-dictionary :agent ... :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/readers") . t) (#s(lookup-dictionary :agent ... :name "kojien" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/kojien") . t) (#s(lookup-dictionary :agent ... :name "body" :options nil :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceJtoE/body") . t))) #s(lookup-query :method default :string "test" :pattern "test"))
  lookup-search-pattern(#s(lookup-module :name "scrup" :dictionaries (#s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/readers" :options ... :id "ndeb:/usr/local/share/dict/cdrom/readers") :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/readers/readers") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/NaturalScienceEtoJ" :options ... :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceEtoJ") :name "body" :options nil :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceEtoJ/body") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/NaturalScienceJtoE" :options ... :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceJtoE") :name "body" :options nil :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceJtoE/body") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "kojien" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/kojien") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/readers") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "wachu5" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/wachu5") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "kanjigen" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/kanjigen") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "gn06ep01" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/gn06ep01") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "jyukugo" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/jyukugo") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "katakana" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/katakana") #s(lookup-dictionary :agent #s(lookup-agent :class ndeb :location "/usr/local/share/dict/cdrom/SuperDic2006" :options ... :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006") :name "screen" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/screen")) :bookmarks nil :priority-alist ((#s(lookup-dictionary :agent ... :name "body" :options nil :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceEtoJ/body") . t) (#s(lookup-dictionary :agent ... :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/readers/readers") . t) (#s(lookup-dictionary :agent ... :name "screen" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/screen") . t) (#s(lookup-dictionary :agent ... :name "katakana" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/katakana") . t) (#s(lookup-dictionary :agent ... :name "jyukugo" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/jyukugo") . t) (#s(lookup-dictionary :agent ... :name "gn06ep01" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/gn06ep01") . t) (#s(lookup-dictionary :agent ... :name "kanjigen" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/kanjigen") . t) (#s(lookup-dictionary :agent ... :name "wachu5" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/wachu5") . t) (#s(lookup-dictionary :agent ... :name "readers" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/readers") . t) (#s(lookup-dictionary :agent ... :name "kojien" :options nil :id "ndeb:/usr/local/share/dict/cdrom/SuperDic2006/kojien") . t) (#s(lookup-dictionary :agent ... :name "body" :options nil :id "ndeb:/usr/local/share/dict/cdrom/NaturalScienceJtoE/body") . t))) "test")
  (progn (lookup-search-pattern (lookup-current-module) "test"))
  eval((progn (lookup-search-pattern (lookup-current-module) "test")) t)
  elisp--eval-last-sexp(t)
  #f(compiled-function () #<bytecode 0x1842a8d95a4a>)()
  handler-bind-1(#f(compiled-function () #<bytecode 0x1842a8d95a4a>) (error) eval-expression--debug)
  eval-last-sexp(t)
  eval-print-last-sexp(nil)
  funcall-interactively(eval-print-last-sexp nil)
  call-interactively(eval-print-last-sexp nil nil)
  command-execute(eval-print-last-sexp)

当然だが、Emacs 29.4上では発生しない…なんだこれ?

なんか、(lookup-current-module)の評価値が、Emacs 29.4環境とEmacs 30.1環境で違うような… .emacs回りの再現性は要確認か?


2025-02-07 [長年日記]

_ [雑記]電動ドライバー

Panasonic 充電ミニドライバー EZ1D11Sを購入

充電端子がUSB-Cなのだが、USB A-Cケーブルでの充電はできるが、USB C-Cケーブル経由でUSB PD充電器(Anker Wall Charger 65W)に繋ぐと充電できない

USB BC充電専用か?まあ、ドライバーの充電でUSB PDの制御系をフル実装するのはコスト高なのでわからんでもない。

マニュアルにも、USB Type-Cの記述はあってもUSB PDの記述はないのだから、 USB PD充電にならないところまでは納得のゆく話だが…

しかし、USB Type-C接続のUSB PD充電器ってPDのネゴシエーションに失敗するとBC充電すら有効にならないのは規格意図通りなのかなぁ?(たしかに安全側に倒してあるのだが…パッシブなUSB BC充電目的でType-Cコネクタを実装するのもアリと言えばアリのはず)


2025-02-04 [長年日記]

_ [Ryzen][FreeBSD]math/openblas on Ryzen 9950X続報

openblasのコンパイルエラーの件だが、openblas-0.3.29にてcpuid_x86.cに識別コードが追加され解消した模様


2025-01-18 [長年日記]

_ [雑記]UPS更新

先日のAPCのUPSバッテリーの劣化警告が出た件だが、先ごろ10分近い停電もあったので容量増強のため、玉突き更新を選択

新規にOMRON BW120Tを調達し、サーバー系で使っているBW100Tをリプレース実施

余ったOMRON BW100TでAPC BR550G-JPをリプレース実施

APCとリプレースしたOMRON BW100Tは、QNAP NAS側でも問題なく認識された

鉛蓄電池入りのAPC UPSは、OMRONの引き取りサービスに回収してもらうつもりだが、運搬用に佐川急便の発送伝票を手に入れる必要があるが、最寄り営業所がバス停から遠いぞ… Orz

あと、忘れないんうちに新規購入のBW120Tのユーザー登録を行うこと!


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