Commit Graph

185 Commits

Author SHA1 Message Date
Vitor Santos Costa d2da5bfe26 fix setup_call_cleanup and friends. 2009-12-03 02:13:22 +00:00
Vitor Santos Costa 06d30b9fc9 Jump and Throw need to store the term away, if they try to use arena
the term will hang in the stack (#152).
2009-12-02 21:59:41 +00:00
Vítor Manuel de Morais Santos Costa 98f79484ae change throw mechanism to fit better with cleanup mechanism:
- balls are now stored off line and recovered by Prolog code when everything
is safe.
- if a ball exists, throw uses the *existing* one (be careful not to have one
laying around).
- Jump routine cleans up every cp except ones for setup_call handling, backtracking simply calls setup handlers.
2009-11-27 11:21:24 +00:00
Vítor Manuel de Morais Santos Costa 7f5da32c08 fix trail when you do a jumpenv (Ulrich Neumerkel #152) 2009-11-25 09:47:38 +00:00
Vitor Santos Costa d637451bd6 make sure to put TR correctly (fixes copying DB terms with att vars #148) 2009-11-21 00:23:03 +00:00
Vitor Santos Costa 945fff50a2 we should only recover H after we backtrack, never before. 2009-11-17 10:03:14 +00:00
Vítor Manuel de Morais Santos Costa 8f46f3d71d fix bad passing of ! destination if we were running at an exec: affected debugger. 2009-11-04 12:17:17 +00:00
Costa Vitor 869671fb1b make sure to have trail entries reset on setjump (obs from Jose Santos). 2009-07-17 19:31:20 -05:00
Costa Vitor d47560342c more fixes to call_counter: try to keep on counting system builtins. 2009-06-22 12:40:55 -05:00
Costa Vitor f5a72828a0 fix SPARC register allocation bugs (not verified) #130 2009-06-15 10:29:31 -05:00
Vitor Santos Costa b4ff9b492a make sure to recover stack before copying exception term. 2009-06-14 11:17:12 -05:00
Vitor Santos Costa 826b45d21c fix handling of out stack while throwing an exception. 2009-06-13 15:21:13 -05:00
Vitor Santos Costa 475e681907 do fetch and remove a the same time: PopFromDB 2009-06-13 13:06:02 -05:00
Vitor Santos Costa 4de6e48a33 save exception term in database, so that it is clean separate from stacks. #116 2009-06-12 14:35:15 -05:00
Costa Vitor 15519fa3cd tightenn conditions on JumpExec 2009-06-05 18:45:41 -05:00
Costa Vitor 7f54acb536 separate standard alarm from virtual alarm. timeout uses virtual alarm #112 2009-06-03 10:09:14 -05:00
Costa Vitor b72345cc97 handle correctly throws within the scope of a call_cleanup. This is implemented
by using an extra argument to verify if the catcher is the current call_cleanup.
If it is, we allow the exception to go forth.
2009-06-02 19:46:41 -05:00
Vitor Santos Costa b5e5a671a8 restore stack on JumpExec 2009-05-23 15:51:50 -05:00
Vitor Santos Costa f79d79e926 replace TYPE_ERROR_VARIABLE for attributes #57 2009-05-22 21:51:48 -05:00
Costa Vitor ec595374a6 fix allocation of temporary stack so that unification can work even for
very deep terms.
fix occur_unification_bug X = a(f(Y)).
2009-05-22 18:35:24 -05:00
Vitor Santos Costa 88b5f1a735 be careful to make sure we can hanle the interrupt. 2009-05-21 00:39:14 -05:00
Vitor Santos Costa 94e740ae31 reduce the initail amount of space for globals 2009-05-17 09:41:34 -07:00
Vitor Santos Costa de1fb3e2c5 copy exception term early on to avoid dangling pointers. 2009-05-17 08:02:34 -07:00
Vitor Santos Costa 6d8649226c fix tabling code. 2009-05-13 17:11:46 -05:00
Vitor Santos Costa 21fa27526c generate error if module is unspecified (obs from Ulrich Neumerkel). 2009-05-07 23:14:28 -04:00
Vitor Santos Costa 0cd9009132 remove debugging message. 2009-05-05 10:15:34 -05:00
Vitor Santos Costa 32b08082f7 fix clean_trail: with threads, objects may be above stack, not just below. 2009-05-05 09:56:47 -05:00
Vitor Santos Costa 10c38f8164 1. catch should not catch outside of scope!
2. when we are catching check for the first cleanup we can find; and while
   doing that going on rewinding variables, for SICStus compatibility.
2009-05-04 18:12:33 -05:00
Vitor Santos Costa ee44706d37 fix bad initialization of H0 in tabling 2009-05-01 12:09:49 -05:00
Vitor Santos Costa 5baaf79916 fix call_with_args/.. (obs from Jose Santos). 2009-04-26 11:16:40 -05:00
Vitor Santos Costa 2b79d5aada fix case where we call YAP with very large arities (obs from Ulrich Neumerkel). 2009-04-26 10:47:41 -05:00
Vitor Santos Costa 7628c875e8 make sure to be compatible with non-gcc/old gcc 2009-04-25 10:58:42 -05:00
Vitor Santos Costa 9624026beb locking fixes. 2009-04-16 11:19:26 -05:00
Vitor Santos Costa 3a213d7029 get rid of debugging message. 2009-03-27 15:28:08 +00:00
Vitor Santos Costa 2aa5aa3a26 add -A flag to ask for more attributed stack. 2009-03-27 15:15:54 +00:00
Vitor Santos Costa c9c097b32d improve implementation of call_with_args/* 2009-03-13 11:11:04 +00:00
Vitor Santos Costa 8a3978e3e1 rename BinaryTestPredFlag to BinaryPredFlag
get rid of small annoying arithmetic bugs
2009-02-09 21:56:40 +00:00
Vítor Santos Costa 331d1830dd fix throw (it should undo bindings). 2008-12-29 00:11:05 +00:00
Vitor Santos Costa b1cf60cafb moe changes to support atomic generation of atoms
support automatic generation of code walker (to find P's predicate and clause)
2008-12-24 09:04:44 +00:00
Vítor Santos de Costa 7207c18e65 fix longmp in trow not to recover trail. This way we do not need to do
copy_term/2 and we avoid losing the attributed variable stack.
2008-10-18 11:03:25 +01:00
Vítor Santos Costa 6046f9f913 more fixes to debugger: make l and s option do what they are supposed to
do.
fix k and t, they had been broken.
Ideas:
DebugOn is now in the system and can disable spypoints.
Have an extra flag to distinguish fast (t,z,k) and slow(l,s) jumping.
2008-09-02 03:48:02 +01:00
Vítor Santos Costa 8f69c35e7f optime access to execute_cpred 2008-09-01 16:48:05 +01:00
Vítor Santos Costa 1226b58d8e The debugger relied on the environment stack. To fix it:
- absmi.c now tells who called the debugger, besides who it was calling
- this is used to control whether we allow a goal to be debugged.
- I have creep to start creeping immediately, and signal_creep to tell
  the next meta-call to creep what it executes!
- The debugger uses CalledFromTheDebugger to know if it is within the
debugger. If so, we do not need to creep on leaving.
2008-08-30 02:39:36 +01:00
Vítor Santos Costa 17ba194c1e Include new instruction execute_cpred to perform tail optimisation for
builtins. Required changes:
- be careful about creeping in deallocate: it may be followed by
something that is not a cut nor a proceed.
- include new instruction in absmi.c: it is a merge of execute and
call_cpred.
- change compiler to generate execute even for C builtins.
- be careful with dexecute: it may not be done if execute_op is a C
builtin.
- if we are in execute_cpred, the garbage collector cannot trust P:
instead it must look at CP to find out the size of the current
environment. The macro gc_P receives that information.
- We don't need to change CP if we do a meta-call from within
execute_cpred (and we in fact cannot). Check places where we do
meta-calls: exec, clause in cdmgr, and lu_recorded.
2008-08-28 04:43:00 +01:00
vsc 16d0f2e749 fix TopLevelGoal to handle correctly undefined predicates. Make sure that
undefined predicated will not force the boot process to loop.


git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@2310 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2008-08-19 13:33:45 +00:00
vsc 75c72d7b7d SWI and module fixes
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@2290 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2008-07-22 23:34:50 +00:00
vsc 175a0ba6dd make sure we do trim_trail whenever we mess with B!
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@2258 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2008-06-04 14:47:18 +00:00
vsc 511181b472 debugging fixes
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@2238 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2008-05-15 18:31:02 +00:00
vsc af0fb4f4d9 SWI-portability changes
git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@2088 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2008-02-12 17:03:59 +00:00
vsc 637f381d94 valgrind it!
enable atom garbage collection.


git-svn-id: https://yap.svn.sf.net/svnroot/yap/trunk@2055 b08c6af1-5177-4d33-ba66-4b1c6b8b522a
2008-01-23 17:57:56 +00:00