SICStus Prolog には、そのような機能を提供するものはありません。
大きな問題は、現在の Prolog が動的すぎて、make/0 のようなものが非常に単純な場合を除いて確実に機能しないことです。用語展開、ロード中に実行されるゴール (一般的なファイル ロード ゴールを含む) などの機能では、ファイルを確実に再ロードする方法を知ることはできません。私はそれを詳しく見ていませんが、おそらく SWI Prolog の make/0 にも同じ問題があります。
私は通常、Prolog プロセスを再起動して、「メイン」ファイル、つまり必要なものすべてをロードするファイルを再度ロードします。
PS。コメントでコードのフォーマットを取得できなかったので、代わりにここに置きました: make/0 が current_module/2 からのファイルとして「ユーザー」に対してガードする必要がある理由の例:
| ?- [user].
% compiling user...
| :- module(m,[p/0]). p. end_of_file.
% module m imported into user
% compiled user in module m, 0 msec 752 bytes
yes
| ?- current_module(M, F), F==user.
F = user,
M = m ? ;
no
| ?-