libera/#sicl - IRC Chatlog
Search
15:36:35
yitzi
Any language lawyers want to weigh in on CLHS 6.1.1.5.1? The AND keyword is supposed to permit parallel initialization and stepping according to it. There is a test in ansi-tests for parallel stepping but none seem to address parallel initialization.
15:44:32
beach
I think it means that expansion should use a LET for the initialization, as opposed to a LET*.
15:45:51
beach
So it means that the variable to be initialized can not use any previously initialized variables in its initialization form.
15:47:44
yitzi
To fix this along with the AND in stepping I think the prologue/step-form are gonna need the equivalent of psetq in the subclauses.
15:49:32
yitzi
To be fair, I'm only about 80% there on understanding the details of your LOOP expansion code.
15:51:36
yitzi
Oh, I think it is just fine. It just takes me a bit sometimes. I gotta break and fix things a few times to completely understand. That is just me.
15:53:46
yitzi
It might have been on freenode. I couldn't find anything on libera's logs. I do see the issue on SICL though.
15:54:50
yitzi
Test LOOP.17.21 is the last test that Khazern is failing on, so that is probably enough to go on. Provided that second test I wrote is correct I'll add it the regression tests and fix it also.
15:59:08
yitzi
Cool, much appreciated. Just surprising that there is no variation in the behavior of the various implementations. I don't know if CLISP is using MIT LOOP, but it is usually different then the rest.
16:00:54
beach
MIT LOOP also has this issue that the iteration variables may go outside the range of what the loop indicates, so you can't give them a correct type.
16:04:09
yitzi
Yes, Khazern does it correctly. The tests in the ANSI suite for SBCL fail in various places b.c. of the MIT behavior.