last patch had broken include.
fix multiple initializations. get rid of debugging messages.
This commit is contained in:
parent
18fee4eee1
commit
d5ce9a1376
@ -133,7 +133,7 @@ absolute_file_name(File0,File) :-
|
|||||||
'$absolute_file_name'(File0,[access(none),file_type(txt),file_errors(fail),solutions(first)],File,absolute_file_name(File0,File)).
|
'$absolute_file_name'(File0,[access(none),file_type(txt),file_errors(fail),solutions(first)],File,absolute_file_name(File0,File)).
|
||||||
|
|
||||||
'$full_filename'(F0, F, G) :-
|
'$full_filename'(F0, F, G) :-
|
||||||
'$absolute_file_name'(F0,[access(read),file_type(prolog),file_errors(fail),solutions(first),expand(true)],F,G).
|
'$absolute_file_name'(F0,[access(read),file_type(prolog),file_errors(fail),solutions(first),expand(true)],F,G).
|
||||||
|
|
||||||
'$absolute_file_name'(File, _Opts, _TrueFileName, G) :- var(File), !,
|
'$absolute_file_name'(File, _Opts, _TrueFileName, G) :- var(File), !,
|
||||||
'$do_error'(instantiation_error, G).
|
'$do_error'(instantiation_error, G).
|
||||||
|
@ -839,7 +839,7 @@ db_files(Fs) :-
|
|||||||
'$msg_level'( TOpts, Verbosity),
|
'$msg_level'( TOpts, Verbosity),
|
||||||
'$full_filename'(X, Y , ( :- include(X)) ),
|
'$full_filename'(X, Y , ( :- include(X)) ),
|
||||||
'$lf_opt'(stream, TOpts, OldStream),
|
'$lf_opt'(stream, TOpts, OldStream),
|
||||||
source_location(Y, L),
|
source_location(OldY, L),
|
||||||
'$current_module'(Mod),
|
'$current_module'(Mod),
|
||||||
( open(Y, read, Stream) ->
|
( open(Y, read, Stream) ->
|
||||||
true ;
|
true ;
|
||||||
@ -847,9 +847,9 @@ db_files(Fs) :-
|
|||||||
),
|
),
|
||||||
'$set_current_loop_stream'(OldStream, Stream),
|
'$set_current_loop_stream'(OldStream, Stream),
|
||||||
H0 is heapused, '$cputime'(T0,_),
|
H0 is heapused, '$cputime'(T0,_),
|
||||||
'$full_filename'(X, Y,include(X) ),
|
working_directory(Dir, Dir),
|
||||||
'$loaded'(Y, X, Mod, L, include, _, Y, _Dir, []),
|
'$loaded'(Y, X, Mod, OldY, L, include, _, Dir, []),
|
||||||
( '$nb_getval'('$included_file', OY, fail ) -> true ; OY = [] ),
|
( '$nb_getval'('$included_file', OY, fail ) -> true ; OY = [] ),
|
||||||
'$lf_opt'(encoding, TOpts, Encoding),
|
'$lf_opt'(encoding, TOpts, Encoding),
|
||||||
'$set_encoding'(Stream, Encoding),
|
'$set_encoding'(Stream, Encoding),
|
||||||
nb_setval('$included_file', Y),
|
nb_setval('$included_file', Y),
|
||||||
@ -867,7 +867,7 @@ db_files(Fs) :-
|
|||||||
% reconsult at startup...
|
% reconsult at startup...
|
||||||
%
|
%
|
||||||
'$do_startup_reconsult'(_X) :-
|
'$do_startup_reconsult'(_X) :-
|
||||||
'$init_win_graphics',
|
'$init_win_graphics',
|
||||||
fail.
|
fail.
|
||||||
'$do_startup_reconsult'(X) :-
|
'$do_startup_reconsult'(X) :-
|
||||||
( '$access_yap_flags'(15, 0) ->
|
( '$access_yap_flags'(15, 0) ->
|
||||||
@ -1011,14 +1011,9 @@ prolog_load_context(term_position, Position) :-
|
|||||||
!,
|
!,
|
||||||
'$import_to_current_module'(F, M, Imports, _, TOpts).
|
'$import_to_current_module'(F, M, Imports, _, TOpts).
|
||||||
|
|
||||||
'$ensure_file_loaded'(F, _M, F1) :-
|
|
||||||
recorded('$source_file','$source_file'(F1, _, _),_),
|
|
||||||
recorded('$module','$module'(F1,_NM,_Source,_P,_),_),
|
|
||||||
same_file(F1, F), !.
|
|
||||||
|
|
||||||
'$ensure_file_loaded'(F, M) :-
|
'$ensure_file_loaded'(F, M) :-
|
||||||
% loaded from the same module, but does not define a module.
|
% loaded from the same module, but does not define a module.
|
||||||
recorded('$source_file','$source_file'(F, _Age, NM), _R),
|
recorded('$source_file','$source_file'(F, _Age, NM), _R),
|
||||||
% make sure: it either defines a new module or it was loaded in the same context
|
% make sure: it either defines a new module or it was loaded in the same context
|
||||||
( M == NM -> true ; recorded('$module','$module'(F,NM,_Source,_P,_),_) ), !.
|
( M == NM -> true ; recorded('$module','$module'(F,NM,_Source,_P,_),_) ), !.
|
||||||
|
|
||||||
@ -1032,7 +1027,7 @@ prolog_load_context(term_position, Position) :-
|
|||||||
% module can be reexported.
|
% module can be reexported.
|
||||||
'$ensure_file_unchanged'(F, M) :-
|
'$ensure_file_unchanged'(F, M) :-
|
||||||
% loaded from the same module, but does not define a module.
|
% loaded from the same module, but does not define a module.
|
||||||
recorded('$source_file','$source_file'(F, Age, NM), R), writeln(M:NM),
|
recorded('$source_file','$source_file'(F, Age, NM), R),
|
||||||
% make sure: it either defines a new module or it was loaded in the same context
|
% make sure: it either defines a new module or it was loaded in the same context
|
||||||
'$file_is_unchanged'(F, R, Age),
|
'$file_is_unchanged'(F, R, Age),
|
||||||
( M == NM -> true ; recorded('$module','$module'(F,NM,_Source,_P,_),_) ), !.
|
( M == NM -> true ; recorded('$module','$module'(F,NM,_Source,_P,_),_) ), !.
|
||||||
@ -1073,7 +1068,8 @@ prolog_load_context(term_position, Position) :-
|
|||||||
Reconsult = Reconsult0
|
Reconsult = Reconsult0
|
||||||
),
|
),
|
||||||
( F == user_input -> Age = 0 ; time_file64(F, Age) ),
|
( F == user_input -> Age = 0 ; time_file64(F, Age) ),
|
||||||
% modules are logically loaded only once
|
% modules are logically loaded only once
|
||||||
|
|
||||||
( recorded('$module','$module'(F,_DonorM,_SourceF, _AllExports, _Line),_) -> true ;
|
( recorded('$module','$module'(F,_DonorM,_SourceF, _AllExports, _Line),_) -> true ;
|
||||||
recordaifnot('$source_file','$source_file'( F, Age, M), _) -> true ;
|
recordaifnot('$source_file','$source_file'( F, Age, M), _) -> true ;
|
||||||
true ),
|
true ),
|
||||||
@ -1442,7 +1438,8 @@ Similar to initialization/1, but allows for specifying when
|
|||||||
|
|
||||||
*/
|
*/
|
||||||
initialization(G,OPT) :-
|
initialization(G,OPT) :-
|
||||||
'$initialization'(G,OPT).
|
( '$initialization'(G,OPT) -> fail ).
|
||||||
|
initialization(_G,_OPT).
|
||||||
|
|
||||||
'$initialization'(G,OPT) :-
|
'$initialization'(G,OPT) :-
|
||||||
(
|
(
|
||||||
@ -1458,29 +1455,27 @@ initialization(G,OPT) :-
|
|||||||
->
|
->
|
||||||
'$do_error'(type_error(callable,G),initialization(G,OPT))
|
'$do_error'(type_error(callable,G),initialization(G,OPT))
|
||||||
;
|
;
|
||||||
var(OPT)
|
OPT == now
|
||||||
->
|
->
|
||||||
'$do_error'(instantiation_error,initialization(G,OPT))
|
fail
|
||||||
;
|
;
|
||||||
atom(OPT)
|
OPT == after_load
|
||||||
->
|
->
|
||||||
(
|
fail
|
||||||
OPT == now
|
|
||||||
->
|
|
||||||
fail
|
|
||||||
;
|
|
||||||
OPT == after_load
|
|
||||||
->
|
|
||||||
fail
|
|
||||||
;
|
|
||||||
OPT == restore
|
|
||||||
->
|
|
||||||
fail
|
|
||||||
;
|
|
||||||
'$do_error'(domain_error(initialization,OPT),initialization(OPT))
|
|
||||||
)
|
|
||||||
;
|
;
|
||||||
'$do_error'(type_error(OPT),initialization(G,OPT))
|
OPT == restore
|
||||||
|
->
|
||||||
|
fail
|
||||||
|
;
|
||||||
|
var(OPT)
|
||||||
|
->
|
||||||
|
'$do_error'(instantiation_error,initialization(G,OPT))
|
||||||
|
;
|
||||||
|
atom(OPT)
|
||||||
|
->
|
||||||
|
'$do_error'(domain_error(initialization,OPT),initialization(OPT))
|
||||||
|
;
|
||||||
|
'$do_error'(type_error(atom,OPT),initialization(OPT))
|
||||||
).
|
).
|
||||||
'$initialization'(G,now) :-
|
'$initialization'(G,now) :-
|
||||||
( call(G) -> true ;
|
( call(G) -> true ;
|
||||||
@ -1514,7 +1509,7 @@ compilation is to simplify writing portable code.
|
|||||||
|
|
||||||
|
|
||||||
Note that these directives can only be appear as separate terms in the
|
Note that these directives can only be appear as separate terms in the
|
||||||
input. Typical usage scenarios include:
|
input. Typical usage scenarios include:
|
||||||
|
|
||||||
|
|
||||||
Load different libraries on different dialects
|
Load different libraries on different dialects
|
||||||
@ -1542,7 +1537,7 @@ section_else.
|
|||||||
|
|
||||||
/** @pred if( : _Goal_)
|
/** @pred if( : _Goal_)
|
||||||
|
|
||||||
Compile subsequent code only if _Goal_ succeeds. For enhanced
|
Compile subsequent code only if _Goal_ succeeds. For enhanced
|
||||||
portability, _Goal_ is processed by `expand_goal/2` before execution.
|
portability, _Goal_ is processed by `expand_goal/2` before execution.
|
||||||
If an error occurs, the error is printed and processing proceeds as if
|
If an error occurs, the error is printed and processing proceeds as if
|
||||||
_Goal_ has failed.
|
_Goal_ has failed.
|
||||||
|
Reference in New Issue
Block a user