fix module stuff (at last)

debugger should call goal_expansion in spycalls.


git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@679 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
This commit is contained in:
vsc 2002-11-12 00:33:48 +00:00
parent f56a874e3b
commit 6c626484f0
3 changed files with 15 additions and 11 deletions

View File

@ -822,7 +822,10 @@ InitCodes(void)
heap_regs->char_conversion_table2 = NULL; heap_regs->char_conversion_table2 = NULL;
heap_regs->number_of_cpreds = 0; heap_regs->number_of_cpreds = 0;
heap_regs->number_of_cmpfuncs = 0; heap_regs->number_of_cmpfuncs = 0;
heap_regs->no_of_modules = 1; /*
don't initialise this here, this is initialised by _YAP_InitModules!!!!
heap_regs->no_of_modules = 1;
*/
heap_regs->primitives_module = 0; heap_regs->primitives_module = 0;
heap_regs->user_module = 1; heap_regs->user_module = 1;
heap_regs->db_queues = NULL; heap_regs->db_queues = NULL;

View File

@ -50,9 +50,11 @@ LookupModule(Term a)
{ {
unsigned int i; unsigned int i;
for (i = 0; i < NoOfModules; ++i) for (i = 0; i < NoOfModules; ++i) {
if (ModuleName[i] == a) if (ModuleName[i] == a) {
return (i); return (i);
}
}
ModuleName[i = NoOfModules++] = a; ModuleName[i = NoOfModules++] = a;
if (NoOfModules == MaxModules) { if (NoOfModules == MaxModules) {
_YAP_Error(SYSTEM_ERROR,a,"number of modules overflowed"); _YAP_Error(SYSTEM_ERROR,a,"number of modules overflowed");
@ -65,24 +67,18 @@ _YAP_LookupModule(Term a)
{ {
return(LookupModule(a)); return(LookupModule(a));
} }
static Int static Int
p_current_module(void) p_current_module(void)
{ /* $current_module(Old,New) */ { /* $current_module(Old,New) */
Term t; Term t;
unsigned int i;
if (!_YAP_unify_constant(ARG1, ModuleName[CurrentModule])) if (!_YAP_unify_constant(ARG1, ModuleName[CurrentModule]))
return (0); return (0);
t = Deref(ARG2); t = Deref(ARG2);
if (IsVarTerm(t) || !IsAtomTerm(t)) if (IsVarTerm(t) || !IsAtomTerm(t))
return (0); return (0);
for (i = 0; i < NoOfModules; ++i) CurrentModule = LookupModule(t);
if (ModuleName[i] == t) {
CurrentModule = i;
return (TRUE);
}
CurrentModule = NoOfModules;
ModuleName[NoOfModules++] = t;
return (TRUE); return (TRUE);
} }

View File

@ -381,6 +381,11 @@ debugging :-
'$spycalls'(Mod:G,_,Res) :- '$spycalls'(Mod:G,_,Res) :-
!, !,
'$spycalls'(G,Mod,Res). '$spycalls'(G,Mod,Res).
'$spycalls'(G,Mod,Res) :-
'$pred_goal_expansion_on',
% make sure we do not try to expand conjs, etc...
user:goal_expansion(G,Mod,GF), !,
'$spycalls'(GF,Mod,Res).
'$spycalls'(\+ G,Mod,Res) :- '$spycalls'(\+ G,Mod,Res) :-
!, !,
CP is '$last_choice_pt', CP is '$last_choice_pt',