トップ «前の日記(2021-07-08) 最新 次の日記(2021-07-10)» 編集

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|

2021-07-08 [長年日記]

_ [SAD]Intersection/Complement再実装完了

一応、sort_utils.hとseq_utils.hを使ったIntersection/Complement実装が完了

これで、Sort/Union/Intersection/Complementに関しては、SADインタプリタスタックに依存せずに処理可能になったはず

_ [SAD]sequence utility

とりあえず、基本機能は実装完了

  • alloc/free/delete
  • List containerとの相互変換
  • sequenceのsort/union操作
  • 整列済みsequenceに対するbsearch

実装途中で整理が必要なのは

  • concat系 - catとncatに分けて整理する?

実用上必要なのが、

  • duplicate (alloc + catでも代用可能だけど、コーディング的には欲しい)
  • insert等の挿入操作系
  • 整列済みsequenceへの挿入点検索に必要なlower_bound系
  • Null頭部の展開付きのconcat系
    • stkall系の置き換え用途
      • Map実装を考えると insert系も必要か?
    • 再帰ありと再帰なしを個別に実装すべきかは、use caseを調べる
  • Map/Scan系の実装用途に container iterator

実用上、Join/Map関連が再実装できると、長いリストが気軽に扱える用になってGood

_ [SAD]stringbuf

実装の整理を目的にAPIよstring-buffer構造体の中身と動作の調査を開始…

コンソール向けに出力幅制御関連の妙な仕掛けが多く、関連コードが散らかっている・パラメータがilist配列のインデックスのみで無名なので、意味論の解読に骨が折れる Orz

_ [SAD]アイデアメモ(zero argument stack)

一部のイケてない実装 (arguemnt数確認前にstackを読み出すおバカさん)のために、関数コール前に zero arguement時に Nullを積み込んでいる実装の副作用で引数エラー回りの処理が面倒になっているので解決したい

アイデア段階だけど、次のような手順で直せばいいのでは?

  • Phase.1 - Nullをputするけど stack pointerは増やさない
    • まともなコードは、zero argumentとして認識する
    • イケてない実装は、Nullを読み出しエラーにはならない
  • Phase.2 - Nullの代わりに、参照解決時に必ずCoredumpするオブジェクトを積んでおく
    • ランタイムにイケてない実装コードを捕まえる実装
    • 最低1引数だと思って、isp - 1にアクセスするバカは何か変なものを食べる

_ [FreeBSD][IPv6]Load to IPv6 gateway

とりあえず、NPTv6の予備的な試験でipfwのcrashを見つけた int_prefix/nなprefixlen付き表記を使うと落ちる

ipfw nptv6 foo create ext_if em0 int_prefix ####::/64

int_prefixにprefixlenを含めず、別途prefixlenパラメータを指定するのはOK

sbin/ipfw/nptv6.cnptv6_createのバグで、nptv6_parse_prefixでデコードした結果にprefixlenが含まれる際にgoto check_prefix;でprefixlenの範囲を検査するコードに委譲するのだが、先方はprefixlenオプション直後のchar pointer pの指す内容も検査しているため、未初期化ポインタによる参照でcrashする

とりあえず、check_prefixラベルの前後にポインタ検査とplenの検査を分離して解決

やはり、main(14-CURRENT)も治ってないぽぃ

あまり使ったという話が流れてないので、誰も使ってないのかなぁ・・・

IPv6 LAN向けの検証作業

  • NPTv6
  • IPv6 gateway
  • unbound over IPv6
    • 設定の仕込み
    • 自動設定ツールのIPv6サポート
  • LAN側 RA および DNS cache server告知

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