[Ecls-list] Latest fixes

Juan Jose Garcia-Ripoll juanjose.garciaripoll at googlemail.com
Sun Nov 15 18:12:08 UTC 2009


On Sun, Nov 15, 2009 at 5:10 PM, Gabriel Dos Reis
<gdr at integrable-solutions.net> wrote:
> On Sun, Nov 15, 2009 at 4:07 AM, Juan Jose Garcia-Ripoll
> <juanjose.garciaripoll at googlemail.com> wrote:
>> * APPEND must not copy the last argument.
>>
>> * MULTIPLE-VALUE-BIND is replaced with a LET form when it only defines
>> a single variable. This leads to faster and simpler code.
>
> I have a related question.  What is the "cost" of using LET forms as
> opposed to applying LAMBDAs?
>
> (The reason I'm asking is that I believe CCL turns LET forms into LAMBDA forms).
> I was under the impression that LET forms were more efficient than application
> of LAMBDAs but, I would actually welcome a clarification.

CCL and SBCL probably used a compilation technique called continuation
passing, or something like that, where every form is basically turned
into a concatenated series of functions that receive an environment
and performs a computation. In this format applying LAMBDAs is natural
(it is the underlying representation), and LET is not.

It think it is a cultural preference. There are many code
transformations that have been developed for that representation and
which are now being shown to exist, for instance, for SSA
representations. I personally find continuation passing formalism
unintuitive and prefer plain code graphs, but I am just an old timer
and have not received the proper education in that field.

Juanjo


-- 
Instituto de Física Fundamental, CSIC
c/ Serrano, 113b, Madrid 28006 (Spain)
http://juanjose.garciaripoll.googlepages.com




More information about the ecl-devel mailing list