トップ 追記

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


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に識別コードが追加され解消した模様


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