Newsgroups: gnu.misc.discuss,comp.lang.tcl,comp.lang.scheme
Path: cantaloupe.srv.cs.cmu.edu!das-news.harvard.edu!news2.near.net!MathWorks.Com!news.duke.edu!convex!cs.utexas.edu!math.ohio-state.edu!sdd.hp.com!apollo.hp.com!netnews
From: sommerfeld@apollo.hp.com (Bill Sommerfeld)
Subject: Re: Why you should not use Tcl
Sender: usenet@apollo.hp.com (Usenet News)
Message-ID: <CwvIpI.B3J@apollo.hp.com>
Date: Thu, 29 Sep 1994 04:20:06 GMT
References: <GS.94Sep26114614@dispo.ivu-berlin.de> <09Z0sc1w165w@sytex.com>
Nntp-Posting-Host: snarfblatt.ch.apollo.hp.com
Organization: Hewlett Packard, Chelmsford Site
Lines: 24
Xref: glinda.oz.cs.cmu.edu gnu.misc.discuss:18519 comp.lang.tcl:19593 comp.lang.scheme:10088

In article <09Z0sc1w165w@sytex.com>, Scott McLoughlin <smcl@sytex.com> wrote:
>        But take a look at Richard Waters article in Lisp Pointers
>IV.4 1993 "To NReverse When Consing a List ...".  He makes a good
>case for using nreverse (reverse! in scheme, non-standard but often
>there) vs rplacd (set-cdr! in scheme), looks at generated machine code
>in various lisps, times the two approaches, etc.  

If I remember correctly, all the actual "machine code" (actually
assembler code) in the paper was "hypothetical" -- it was something
similar to what a really hot lisp compiler would generate.  It claimed
to be PA assembler, but while the individual instructions were
syntactically correct, the overall code was wrong.  For one, the PA
has delay slots after branch instructions, and the hypothetical
assembler code was clearly written for a processor which didn't have
delay slots.  Also, all the test cases (the biggest one was a 10000
element list) would have fit into the 64k data cache on the PA machine
he was using...

I don't think it changes the conclusion ("it just doesn't matter very
much whether you use reverse! or set-cdr!, so write whatever's easiest
for you to get right."), but it did bug me somewhat..



