another try for use_module/3.
This commit is contained in:
parent
cd5f44f762
commit
323386e34b
@ -378,17 +378,26 @@ use_module(M,F,Is) :-
|
|||||||
'$use_module'(M,F,Is) :-
|
'$use_module'(M,F,Is) :-
|
||||||
var(Is), !,
|
var(Is), !,
|
||||||
'$use_module'(M,F,all).
|
'$use_module'(M,F,all).
|
||||||
'$use_module'(M,F,Is) :- nonvar(M), !,
|
'$use_module'(M,F,Is) :-
|
||||||
|
nonvar(F), !,
|
||||||
|
strip_module(F, M0, F0),
|
||||||
|
'$load_files'(M0:F0, [if(not_loaded),must_be_module(true),imports(Is)], use_module(M,F,Is)),
|
||||||
|
( var(M) -> true
|
||||||
|
;
|
||||||
|
absolute_file_name( F0, F1, [expand(true),file_type(prolog)] ),
|
||||||
|
recorded('$module','$module'(F1,M,_,_),_)
|
||||||
|
).
|
||||||
|
'$use_module'(M,F,Is) :-
|
||||||
|
nonvar(M), !,
|
||||||
|
strip_module(F, M0, F0),
|
||||||
(
|
(
|
||||||
recorded('$module','$module'(F1,M,_,_),_)
|
recorded('$module','$module'(F1,M,_,_),_)
|
||||||
->
|
->
|
||||||
'$load_files'(F1, [if(not_loaded),must_be_module(true),imports(Is)], use_module(M,F,Is))
|
'$load_files'(M0:F1, [if(not_loaded),must_be_module(true),imports(Is)], use_module(M,F,Is))
|
||||||
),
|
),
|
||||||
strip_module(F, _, F0),
|
(var(F0) -> F0 = F1 ; absolute_file_name( F1, F2, [expand(true),file_type(prolog)] ) -> F2 = F0 ).
|
||||||
(var(F0) -> F0 = F1 ; absolute_file_name( F1, F0, [file_type(prolog)] ) ).
|
|
||||||
'$use_module'(M,F,Is) :-
|
'$use_module'(M,F,Is) :-
|
||||||
strip_module(F, M0, F0),
|
'$do_error'(instantiation_error,use_module(M,F,Is)).
|
||||||
'$load_files'(F0, [if(not_loaded),'$context_module'(M0),must_be_module(true),imports(Is)], use_module(M,F,Is)).
|
|
||||||
|
|
||||||
'$csult'(Fs, M) :-
|
'$csult'(Fs, M) :-
|
||||||
'$extract_minus'(Fs, MFs), !,
|
'$extract_minus'(Fs, MFs), !,
|
||||||
|
Reference in New Issue
Block a user