]> Repositorios git - scryer-prolog.git/commitdiff
Move g_caused_exception/2 dynamic directive to toplevel.pl
authorJ.J. Tolton <[email protected]>
Sun, 9 Nov 2025 17:16:02 +0000 (12:16 -0500)
committerJ.J. Tolton <[email protected]>
Sun, 9 Nov 2025 17:44:48 +0000 (12:44 -0500)
- Add dynamic directive in toplevel.pl with other module-level directives
- Update test files to reference it as '':g_caused_exception/2
- Remove redundant dynamic directives from test files
- All tests passing

src/tests/custom_toplevel.pl
src/toplevel.pl
tests/scryer/cli/fixtures/toplevel_test_helper.pl

index 83001b55fe7e3ba23a53a647b220b4a6e1984115..7e15fbc786969f008686ab710d0ee00e17594851 100644 (file)
@@ -15,10 +15,8 @@ test_predicate :-
     format("Test predicate executed~n", []).
 
 % Test predicates for g_caused_exception/2
-:- dynamic(g_caused_exception/2).
-
 check_for_exception :-
-    (   g_caused_exception(_Goal, Exception) ->
+    (   '$toplevel':g_caused_exception(_Goal, Exception) ->
         format("Exception occurred: ~w~n", [Exception]),
         halt(1)
     ;   format("No exception~n", []),
@@ -31,15 +29,15 @@ test("custom toplevel functionality is tested via CLI tests", (
 )).
 
 test("g_caused_exception/2 is not asserted when no exception occurs", (
-    retractall(g_caused_exception(_, _)),
-    \+ g_caused_exception(_, _)
+    retractall('$toplevel':g_caused_exception(_, _)),
+    \+ '$toplevel':g_caused_exception(_, _)
 )).
 
 test("g_caused_exception/2 can be checked from custom toplevel", (
     % This tests the predicate structure; actual exception handling
     % is tested via CLI tests since it requires -g and -t flags
-    retractall(g_caused_exception(_, _)),
-    asserta(g_caused_exception(test_goal, test_error)),
-    g_caused_exception(test_goal, test_error),
-    retractall(g_caused_exception(_, _))
+    retractall('$toplevel':g_caused_exception(_, _)),
+    asserta('$toplevel':g_caused_exception(test_goal, test_error)),
+    '$toplevel':g_caused_exception(test_goal, test_error),
+    retractall('$toplevel':g_caused_exception(_, _))
 )).
index 3b49ce043d8c33666638eaea0409efb420c7f675..5b27832bdfffda73cfcb2451b25efb595ef0562d 100644 (file)
@@ -17,6 +17,7 @@
 :- dynamic(disabled_init_file/0).
 :- dynamic(started/0).
 :- dynamic(custom_toplevel/1).
+:- dynamic(g_caused_exception/2).
 
 load_scryerrc :-
     (  '$home_directory'(HomeDir) ->
@@ -180,7 +181,7 @@ run_goals([g(Gs0)|Goals]) :- !,
               (   write_term(Goal, [variable_names(VNs),double_quotes(DQ)]),
                   write(' causes: '),
                   write_term(Exception, [double_quotes(DQ)]), nl,
-                  asserta(user:g_caused_exception(Goal, Exception))
+                  asserta(g_caused_exception(Goal, Exception))
               )
         ) -> true
     ;   write('% Warning: initialization failed for: '),
index a4e4106b81f34819b3490ca3a11ef4d2eded190e..3ded55dca298df7c9262155f88023589358342c9 100644 (file)
@@ -29,10 +29,8 @@ helper_predicate :-
     format("Helper predicate works~n", []).
 
 % g_caused_exception/2 testing predicates
-:- dynamic(g_caused_exception/2).
-
 check_exception_halt_1 :-
-    (   g_caused_exception(Goal, Exception) ->
+    (   '$toplevel':g_caused_exception(Goal, Exception) ->
         format("EXCEPTION_CAUGHT~n", []),
         format("Goal: ~w~n", [Goal]),
         format("Exception: ~w~n", [Exception]),
@@ -42,7 +40,7 @@ check_exception_halt_1 :-
     ).
 
 check_exception_halt_0 :-
-    (   g_caused_exception(_, _) ->
+    (   '$toplevel':g_caused_exception(_, _) ->
         format("UNEXPECTED_EXCEPTION~n", []),
         halt(1)
     ;   format("SUCCESS_NO_EXCEPTION~n", []),