I've been just exploring the latest starlisp-dho-7-5-v1 and,
much to my surprise, it compiled a parallel function for me.
I thought that it doesn't have a compiler yet. How am I to understand
what is happening here:
> (defun add-mult!! (a b c)
(*!! (+!! a b) c))
ADD-MULT!!
> (compile 'add-mult!!)
ADD-MULT!!
> (describe 'add-mult!!)
ADD-MULT!! is a symbol. Its home package is *LISP5.
Its global function definition is #<Compiled-Function ADD-MULT!! 197754E>.
#<Compiled-Function ADD-MULT!! 197754E> is a compiled function.
Its argument list is (A B C).
The code for this function is 92 bytes long.
The function definition for ADD-MULT!! is at top level.
It has the following property list elements:
For indicator LUCID-COMMON-LISP:SOURCE-CODE the value #<Interpreted-Function
(LUCID-COMMON-LISP:NAMED-LAMBDA ADD-MULT!! (A B C) (BLOCK ADD-MULT!! (*!! # C)))
196DE2E>.
>
--
Zdzislaw Gustav Meglicki, ······@arp.anu.edu.au,
Automated Reasoning Program - CISR, and Plasma Theory Group - RSPhysS,
The Australian National University, G.P.O. Box 4, Canberra, A.C.T., 2601,
Australia, fax: (Australia)-6-249-0747, tel: (Australia)-6-249-0158
In article <············@manuel.anu.edu.au> ······@arp.anu.edu.au (Zdzislaw Meglicki) writes:
>I've been just exploring the latest starlisp-dho-7-5-v1 and,
>much to my surprise, it compiled a parallel function for me.
>I thought that it doesn't have a compiler yet. How am I to understand
>what is happening here:
When we refer to the "*Lisp compiler", we're talking about a module that
optimizes the parallel code in ways specific to the Connection Machine. We
do this by patching the CL compiler to make it pass the code through the
*Lisp transformer. Your example just compiled the sequential front-end
code, using the unmodified Common Lisp compiler, and the resulting code
contains full calls to CM functions.
--
Barry Margolin
System Manager, Thinking Machines Corp.
······@think.com {uunet,harvard}!think!barmar