sloop



On Sep 8, 2009, at 2:26 PM, Raymond Toy wrote:

> ?iga Lenar?i? wrote:
>> The contents of sloop.lisp in src is :
>>
>> (in-package :cl-sloop)
>> (defmacro sloop (&rest body) `(loop , at body))
>>
>> So 'sloop' is the same 'loop' which is in cl hyperspec. I guess sloop
>> used to be something different until GCL got proper 'loop'
>> implementation (or something like that)..
>>
>> So it will work correctly if you put 'loop' instead of 'sloop'
>> because that's how 'sloop' is currently defined.
>>
>> It wouldn't change or break anything.
>>
> Normally, I would say if it ain't broke, don't fix it.  IIRC, sloop  
> was
> very subtly different from ANSI loop, so it's not clear if changing
> sloop to loop is harmless.
>
> From what you way, nowhere in src is sloop still used, but's still  
> used
> in the share packages.  Since I consider the share packages as (very
> useful) add-ons contributed by users, I would say it's up to the
> contributors to update their code appropriately if they so desire.
>
> It's really harmless for us to keep sloop around.
>
> Ray
>

Of course it's harmless: all 'sloop's are replaced by 'loop's by the  
compiler (that's what that macro does). No code needs updating,  
because current sloop is in no way different from 'loop'. It's a  
redundant macro (and a package). Looking at CVS there was a clean-up  
where most of 'sloop's got changed into loops, but it wasn't removed  
completely.

Having sloop around just creates confusion... It's harmless from the  
user's perspective, but from developers perspective it's not (it's  
unnecessary confusion)... I see that it's a common thing among  
maxima's developers - don't touch or change anything. Everything  
merely gets bolted on in a non cohesive way (excluding some additions  
of special functions which are really well done) - for instance  
lapack, minpack, quadpack, linearalgebra, many functions in src that  
are covering the same functionality...

my 2c

Regards,
Ziga