[comp.lang.prolog] PROLOG Digest V5 #43

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
********************