PROLOG-REQUEST@SUSHI.STANFORD.EDU (Chuck Restivo, The Moderator) (07/14/87)
PROLOG Digest Tuesday, 14 Jul 1987 Volume 5 : Issue 43 Today's Topics: Query - Transputer & Program Wanted, Implementation - Stack Overflow & WAM ---------------------------------------------------------------------- Date: 5 Jul 87 15:38:00 GMT From: mcvax!unido!iaoobelix!wagner@seismo.css.gov Subject: Transputer & Prolog Has anybody out there heard of transputer machines with PROLOG? Are there any publications in this field? Thank you. -- Juergen Wagner ------------------------------ Date: 9 Jul 87 17:28:38 GMT From: Armand Prieditis <purple.rutgers.edu!priediti@rutgers.rutgers.edu> Subject: Symbolic Integration Program Wanted I'm looking for a symbolic integration program written in Prolog. Does anyone know where I could get one? Thank you. --Armand Prieditis ------------------------------ Date: 27 Jun 87 04:40:10 GMT From: Sundar Iyengar <pyramid!uccba!hal!cwruecmp!sundar@decwrl.dec.com> Subject: Global Stack Overflow Recently someone asked how to circumvent the global stack overflow problem. A simple solution is to increase its size using command line switches. For example, the following command, cprolog -g 1000 allocates 1000K for the global stack. However, this may cause your program to run slower. CProlog allocates all the space it needs first before starting. This means, you must have sufficient disk space to swap in and swap out pages. On Apollo nodes on which I run C-Prolog, this causes great slow down in the program run time performance. I have a related question to Prolog Experts. According to David Warren's thesis, global stack is an area reserved for global variables. The lifetime of these variables is supposed end on backtracking past the procedure head in which they appear. Theoretically the space is supposed to be recovered. For some reason, this is not happening in our C-Prolog. I have experimented with using cuts to remove all unnecessary choice points for almost all procedures in the program, but still I can't seem to stop the global stack from growing for ever (right now, I am getting by with 4M sized global stack, which seems to be bit too much). I am not sure if I am doing anything wrong. Could some one please help? We are running C-Prolog 1.5 with mods from Caltech. Thanks. -- Sundar R. Iyengar ------------------------------ Date: Sun, 28 Jun 87 01:06:04 PDT From: Fernando Pereira <pereira@stinson.ai.sri.com> Subject: C-Prolog out of stack problems In C-Prolog 1.4 and later versions, it is possible to set the sizes of various working areas with command line switches. Refer to the manual for details. On earlier versions of C-Prolog, this is not possible, and the only remedy is to recompile C-Prolog with larger storage allocations (defined in the file parms.c, I think). If you are not using C-Prolog 1.4 or later, you should try to get the latest version from Edinburgh, since many bugs and limitations were corrected in the later versions. -- Fernando Pereira ------------------------------ Date: 26 Jun 87 12:22:00 GMT From: mcvax!unido!iaoobelix!wagner@seismo.css.gov Subject: Out of Stack - (nf) This is in response to Lan See Chen's <dalcs!chen@seismo.css.gov> article of June 22nd, 1987: You can call vanilla CProlog with the following options: -H N heap allocation is N K bytes -G N global stack allocation is N K bytes -L N local stack allocation is N K bytes -T N trail allocation is N K bytes -A N atom area allocation is N K bytes -X N auxiliary stack allocation is N K bytes -q don't print name of restored file An optional last argument specifies the CProlog saved state to restore. If you are working with CProlog+ (i.e. CProlog plus dynamic loading) you may have a slightly different invocation syntax. How far you can go with head, global stack and local stack depends on the amount of swapping space available on your machine. I think, before you reach any of the limits stated in CProlog, your Prolog will crash due to insufficient swapping space. -- Juergen Wagner ------------------------------ End of PROLOG Digest ********************