🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: comp.lang.prolog
Article #3162

Re: Strings

#3162
From: Richard A. O'Keefe
Date: Sat, 26 Mar 1988 06:55
36 lines
2383 bytes
In article <488@dcl-csvax.comp.lancs.ac.uk>, simon@comp.lancs.ac.uk (Simon Brooke) writes:
> In article <776@cresswell.quintus.UUCP> ok@quintus.UUCP (Richard A. O'Keefe) writes:
> >Xerox Lisp uses lists for bignums to this very day.
> 
> Yes, true. But please don't assume this means it is efficient.

Well, no, I didn't assume that.  I was replying to a message which claimed
that "Lisp" didn't use lists for bignums any more.

> For
> example, I recently benchmarked a Xerox 1186 running Interlisp (Koto)
> against the new Acorn Archimedes running Arthur Norman's Cambridge Lisp.
> Generally the Arch was a bit faster, reflecting the simpler lisp and
> faster processor. But running (fact 1000) it was 321 (three hundred and
> twenty one) times faster - and this must reflect grotesque inefficiency in
> Xerox' bignum code.

If it was "recently", didn't you have the Lyric release?

I am shocked to hear that the Archimedes was only "a bit faster".
As you can easily find out if you have Xerox Quintus Prolog, it is a _lot_
faster at list processing than Xerox Lisp is.  I would have expected
Cambridge Lisp on a RISC to be about as fast as XQP.  What's wrong?

The (fact 1000) test may reflect only the simple fact that the
Archimedes has a 32-bit ALU, whereas the Xerox 1186 has a basically
16-bit ALU.  It is easy to pull apart an Interlisp bignum and see what
is inside.  It is a list of FOURTEEN-bit 2-s complement integers.  It
works out at about 0.4 data bits per stored bit.  The vector approach
should get about 1 data bit per stored bit.

Another possible consideration is storage turnover.  (fact 1000) requires
over 8500 bits to represent [about 266 32-bit words, but about 610 list
cells].  The Xerox D-machines are not noted for their paging performance.
Did you make sure that all the relevant code was paged in before
measuring the performance of (fact 1000)?
Technical Details
Message-ID: <822@cresswell.quintus.UUCP>
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!husc6!cmcl2!nrl-cmf!ames!sri-spam!sri-unix!quintus!ok
References: <512@ecrcvax.UUCP> <768@cresswell.quintus.UUCP> <5348@utah-cs.UUCP> <488@dcl-csvax.comp.lancs.ac.uk>

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!mnetor!uunet!husc6!cmcl2!nrl-cmf!ames!sri-spam!sri-unix!quintus!ok
From: ok@quintus.UUCP (Richard A. O'Keefe)
Newsgroups: comp.lang.prolog
Subject: Re: Strings
Message-ID: <822@cresswell.quintus.UUCP>
Date: 26 Mar 88 06:55:17 GMT
References: <512@ecrcvax.UUCP> <768@cresswell.quintus.UUCP> <5348@utah-cs.UUCP> <488@dcl-csvax.comp.lancs.ac.uk>
Organization: Quintus Computer Systems, Mountain View, CA
Lines: 36
Keywords: bignums, vectors, lists