lmntal / slim

slim LMNtal implementation
Other
18 stars 5 forks source link

Feature/extended ground #272

Closed k-ueda closed 2 years ago

k-ueda commented 3 years ago
  1. 比較的大規模な改修を伴うブランチです.もう少し改修を切り分けることも不可能ではないですがとりあえずこの形で置きます.
  2. 簡単な例についてvalgrindでメモリリークのないことを確認しました(さまざまなメモリリークを見つけて直しました).
  3. このために多数の free および delete を追加もしくは(malloc/new に対応させるために)変更しています.
  4. また valgrind のために -g オプションでコンパイルされるように configure.ac を変更していますが,特に支障がない限り -g は入れたままにしておくことを提案します.
  5. 追いかけるのが難しいエラーがいくつも出たので,現時点では大量のデバッグプリントをコメントアウトして残してあります(これまで何度もアンコメントして再利用しました).
  6. extended ground機能(属性つきハイパーリンクのコピー/共有の制御ができるground)のマージが主目的でしたが,それと一見無関係なunify命令のバグ(通常リンクとハイパーリンクとの結合時に発生)を発見して修正しました.
  7. このバグはハイパーグラフ構造のill-formedness(ちゃんとした相棒のないリンクの存在)を引き起こすものですが,相棒リンクをたどる機会がないと出現せず,発見が遅れます.このため,-d コマンドを指定すると使われる開発者用dump_cell_devに,相棒リンク (buddy) のチェック機能を組み込みました.記号アトムとハイパーリンクアトムの各リンクについて相棒を表示し,逆写像になっていないと ILL-FORMED というメッセージが出ます.
  8. ハイパーリンクの番号を16進で出力する機能と10進で出力する機能が混在していたので,暫定的に10進に統一しました.