Newsgroups: comp.lang.prolog
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!gatech!newsxfer.itd.umich.edu!nntp.cs.ubc.ca!news.bc.net!newsserver.sfu.ca!fornax!cs.sfu.ca!serge
From: serge@cs.sfu.ca (Serge Le Huitouze)
Subject: Re: Death to Arity!
In-Reply-To: tom@kwi.com's message of Fri, 9 Dec 1994 23:09:53 GMT
Message-ID: <SERGE.94Dec12100202@maroilles.cs.sfu.ca>
Sender: news@cs.sfu.ca
Organization: School of Computing Science, Simon Fraser University
References: <1994Dec5.215606.15801@bnlux1.bnl.gov> <3c0qom$eb4@hobbes.cc.uga.edu>
	<TOM.94Dec9150953@heather.kwi.com>
Date: 12 Dec 1994 18:02:02 GMT
Lines: 54




In article <TOM.94Dec9150953@heather.kwi.com> tom@kwi.com (Tom Howland) writes:

   I really hate Arity Prolog. Some of the reasons include

...stuff deleted

   ** doesn't have dynamic stack expansion, nor does it have a garbage
   collector. For example, a seasoned Arity Prolog programmer would *never*
   call sort/2 -- he's afraid of running out of stack space! Here is a
   typical atrocity I came across


I totally agree that it a shame not to have a garbage collector in a Prolog
system.

I also totally disagree with your statement that lack of dynamic stack
expansion is a pain.
I remember having used Quintus compiled code about 10 years ago. At that time,
Quintus was undoubtly the fastest Prolog system. I think it had no garbage
collector (or a very poor one, a la Lisp ?) but had a dynamic expansion
policy. The clear consequence of that was that Quintus was the fastest Prolog
to crash a Unix system (moreover, it was sometimes necessary to reboot the
machine because of a bug in the Unix OS, but that's another point !)

More generally, I don't know any good solution to the dynamic expansion
problem on our modern virtaul memory systems: when do you decide to stop
allocating and tell the user there is a memory overflow ?
This is a very tough issue, because you have to consider many parameter, both
internal to your application (i.e. the Prolog code) and external (i.e. the
other processes running on the same memory system).

Anyone has a convincing solution to this problem ?


-- Serge
--------------------------------------------------
A bird in the bush is better than two in the hand.

Serge Le Huitouze                       School of Computing Science
email: serge@cs.sfu.ca                  Simon Fraser University
tel: (604) 291-5423                     Burnaby, British Columbia
fax: (604) 291-3045                     V5A 1S6 Canada
--
--------------------------------------------------
A bird in the bush is better than two in the hand.

Serge Le Huitouze                       School of Computing Science
email: serge@cs.sfu.ca                  Simon Fraser University
tel: (604) 291-5423                     Burnaby, British Columbia
fax: (604) 291-3045                     V5A 1S6 Canada

