Marc Battyani wrote:
>Oops sorry. I really thought it was up to date. I will change it.
Thanks.
>I have an email from you dated 20 december 2005. Is that the
>latest one?
That day, I just forwarded the June version.
>Also I added some patches sent by Fare in the cl-pdf version.
They are not in what I sent you (bug was not known in June).
Feel free to change the one delete -> (remove nil temps)
It's clearly a bug.
During holidays I revisited the two other changes.
In remove-clause: (delete entry index)
-> (setq index (delete entry index))
I decided *not* to leave that in the code (but add a comment) because
(setq index ...) is a noop: index is local variable, and the function is just about to exit, so nobody cares about it's value.
The code depends on non-guaranted behaviour of DELETE, basically that it implements the naive / canonical operation: RPLACD the previous CDR.
Adding (setq index ...) would gain nothing in a Lisp which would provide another implementation of DELETE.
E.g. (setf (fdefinition 'delete) #'remove) -- REMOVE is AFAIK a legal implementation of DELETE. Remove-clause would break.
As I have not yet seen such other implementation, I've not bothered to write MY-DELETE to guarantee the behaviour needed by Iterate, or implement a different approach.
If somebody yells that's not acceptable, please do so. I might change my opinion.
Faré, since you reported that it's sbcl who pointed you to delete in Iterate, I'd like to know which version you used. I could not reproduce a warning with sbcl-0.9.2 (as found in Ubuntu/Breezy).
Regards,
Jörg Höhle.