Kazunori Ueda
Kazunori Ueda
fix/101 に修正案を置きました.
lib/slimoptimizer は15期生岩澤くんの修論の成果ですね.いまは使われていないので,以前のバージョンから参照可能であれば削除する手もありますが,当座は最適化器構築の参考になるかもしれない.いずれにせよ岩澤君の仕事であるという情報を残しておきたい気はします.
以下も、いずれも問題なくコンパイルできました。 init($x) :- int($x) | (a(X), a(Y)), $x[X], $x[Y]. init($x) :- int($x) | (a(X), a(Y), $x[X], $x[Y]). init($x) :- int($x) | a($x), a($x). とりあえず実害はないと思うけど、ルール右辺を括る括弧が必要になることはあるかしら?
たしかに、ある部分構文木の中にリンク名が2回出現したらその構文木の局所リンクと みなすという流儀は考えられます。
hyperlinkがらみのuniqのテスト例題をいくつかコメントにぶら下げてもらえますか?
どのような仕様がよいですか.二種類考えられます. 1. N個(不特定多数)の引数に同じアトム(またはグラフ)を接続したい 2. 固定個(静的にわかる個数)の引数に,異なる引数を接続したい 前者は現在のAPIの拡張,後者は既存のアトムからファンクタ名の変更で作る(機能を提供する)のが簡単そうです.
前者は簡単なので作りましょうか.指定できるのはunaryアトム限定でもよいかも.
最新版 https://github.com/google/tcmalloc だと Mac も大丈夫かしら? いずれにせよ最新版を試す価値はありそうです.
【clang】 MacBook Pro (M1, 2020, Sonoma 14.0, clang 15.0) でも bus error 現象を確認しました.(bison, ruby, [email protected] は brew で別途導入) また,test/system_check/testsuite/hyperlink の case5 は,bus error の前に segmentation fault します. (参考)Ubuntu22.04 PCで clang++-15...
通常実行と非決定実行,両方の -t が対象ですね. 2022年度導入のデバッガ機能との関連も検討の価値がありそう.