Subject: Re: data hygiene [Re: Why is Scheme not a Lisp?]
From: Erik Naggum <erik@naggum.net>
Date: Tue, 19 Mar 2002 23:59:56 GMT
Newsgroups: comp.lang.lisp
Message-ID: <3225571208798099@naggum.net>

* Paul Dietz
| *If* the running time of your algorithm is dominated by memory latency
| rather than memory bandwidth the alist search could be up to twice as
| fast, since its loads are more parallelizable.

  Are you kidding or something?

| The longest sequence of dependent loads in the alist search has length
| N+1, vs. 2N-1 for the plist.  This is assuming you have a machine that
| can have multiple loads 'in the air' at once.

  How the hell is caar+cdr any different from car+cddr?

  How do you normally set up alists and plists?  Even after a copy-tree (or
  GC) that copies cons celle so they are allocated in the order they are
  visited, the distances are _exactly_ the same.  Just work it out.

| Put another way: you can arrange the loads in the alist search so that
| there's a longer distance between the load and when the data is actually
| used, which might reduce pipeline stalls.

  Please show me how this is done.  I think you are aggressively clueless
  by now, but I am always open to refinement and even contradiction if you
  just do something smarter.

///
-- 
  In a fight against something, the fight has value, victory has none.
  In a fight for something, the fight is a loss, victory merely relief.