diff --git a/C/exec.c b/C/exec.c index ea0ca0872..6ed04403d 100755 --- a/C/exec.c +++ b/C/exec.c @@ -1931,8 +1931,8 @@ Yap_InitExecFs(void) Yap_InitCPred("cut_at", 1, p_clean_ifcp, SafePredFlag); CurrentModule = cm; Yap_InitCPred("$pred_goal_expansion_on", 0, p_pred_goal_expansion_on, SafePredFlag); - Yap_InitCPred("$restore_regs", 1, p_restore_regs, SafePredFlag); - Yap_InitCPred("$restore_regs", 2, p_restore_regs2, SafePredFlag); + Yap_InitCPred("$restore_regs", 1, p_restore_regs, NoTracePredFlag|SafePredFlag); + Yap_InitCPred("$restore_regs", 2, p_restore_regs2, NoTracePredFlag|SafePredFlag); Yap_InitCPred("$clean_ifcp", 1, p_clean_ifcp, SafePredFlag); Yap_InitCPred("qpack_clean_up_to_disjunction", 0, p_cut_up_to_next_disjunction, SafePredFlag); Yap_InitCPred("$jump_env_and_store_ball", 1, p_jump_env, 0); diff --git a/pl/consult.yap b/pl/consult.yap index a7ae93b51..8f357684f 100644 --- a/pl/consult.yap +++ b/pl/consult.yap @@ -212,9 +212,9 @@ load_files(Files,Opts) :- '$nb_getval'('$qcompile', Current, Current = never). '$lf_option'(silent, 8, _). '$lf_option'(skip_unix_header, 9, false). -'$lf_option'(compilation_mode, 10, compact) :- +'$lf_option'(compilation_mode, 10, Flag) :- '$access_yap_flags'(11,YF), - ( YF == 0 -> F = compact ; F = source ). + ( YF == 0 -> Flag = compact ; Flag = source ). '$lf_option'(consult, 11, reconsult). '$lf_option'(stream, 12, _). '$lf_option'(register, 13, true). @@ -660,7 +660,7 @@ db_files(Fs) :- '$set_current_loop_stream'(OldStream, Stream), '$swi_current_prolog_flag'(generate_debug_info, GenerateDebug), '$lf_opt'(compilation_mode, TOpts, CompMode), - '$comp_mode'(OldCompMode, CompMode), + '$comp_mode'(OldCompMode, CompMode), recorda('$initialisation','$',_), ( Reconsult \== consult -> '$start_reconsulting'(File), @@ -1619,8 +1619,9 @@ End of conditional compilation. '$if_directive'((:- endif)). -'$comp_mode'(_OldCompMode, CompMode) :- - var(CompMode), !. % just do nothing. +'$comp_mode'( OldCompMode, CompMode) :- + var(CompMode), !, + '$fetch_comp_status'( OldCompMode ). '$comp_mode'(OldCompMode, assert_all) :- '$fetch_comp_status'(OldCompMode), nb_setval('$assert_all',on). diff --git a/pl/grammar.yap b/pl/grammar.yap index 1eea03531..9a4c5dbab 100644 --- a/pl/grammar.yap +++ b/pl/grammar.yap @@ -255,9 +255,6 @@ prolog:'\\+'(A, S0, S) :- t_body(\+ A, _, last, S0, S, Goal), '$execute'(Goal). -% stolen from SWI-Prolog - - /** @} diff --git a/pl/listing.yap b/pl/listing.yap index 122194cbc..559042fef 100644 --- a/pl/listing.yap +++ b/pl/listing.yap @@ -158,7 +158,7 @@ listing(Stream, [MV|MVs]) :- !, -> format( Stream, ':- ~q.~n', [PredDef]) ; - format( Stream, '~:- ~q:~q.~n', [M,PredDef]) + format( Stream, ':- ~q:~q.~n', [M,PredDef]) ), fail. '$list_clauses'(Stream, M, Pred) :- diff --git a/pl/qly.yap b/pl/qly.yap index 662050cc7..77b6e65bb 100755 --- a/pl/qly.yap +++ b/pl/qly.yap @@ -738,8 +738,12 @@ qload_file( F0 ) :- '$exec_initialisation_goals'. '$qload_file'(S, SourceModule, F, FilePl, _F0, _ImportList) :- - recorded('$lf_loaded','$lf_loaded'( F, _Age, SourceModule), _), + recorded('$lf_loaded','$lf_loaded'( FilePl, _Age, SourceModule), _), !. +'$qload_file'(S, SourceModule, F, FilePl, _F0, _ImportList) :- + ( FilePl == user_input -> Age = 0 ; time_file64(FilePl, Age) ), + recorda('$lf_loaded','$lf_loaded'( FilePl, Age, SourceModule), _), + fail. '$qload_file'(S, _SourceModule, _File, _FilePl, _F0, _ImportList) :- '$qload_file_preds'(S), fail. diff --git a/pl/signals.yap b/pl/signals.yap index 2da822648..e627f03dd 100644 --- a/pl/signals.yap +++ b/pl/signals.yap @@ -219,7 +219,17 @@ order of dispatch. % we may be creeping outside and coming back to system mode. '$start_creep'([M|G], _) :- '$is_no_trace'(G, M), !, - '$execute0'(G, M). + ( + '$$save_by'(CP), + '$enable_debugging', + '$execute_nonstop'(G, M), + '$$save_by'(CP2), + '$disable_debugging', + (CP == CP2 -> ! ; ( true ; '$enable_debugging', fail ) ) + ; + '$disable_debugging', + fail + ). '$start_creep'([Mod|G], WhereFrom) :- CP is '$last_choice_pt', '$do_spy'(G, Mod, CP, WhereFrom).