Hi Tomas,

> Have you tried to "rerun" your solution and what improvement
> (trans/min) did you achieve?

Unfortunately not ... Actually, my compagnon Josef Bartl wrote it
initially. He urged that we participate. I did some tuning then, and he
did the testing. After that, both of us were busy, so we did not try
again. It is also a bit tedious, the system has to be set up, and
certain functions in "lib/http.l" need to be redefined to suit that
client simulator.

I must confess that in the beginning I did not want to participate in
that c't contest, as was never interested in optimizing PicoLisp for
speed, and always favored simplicity over fancy optimizations.

Actually, the error was minuscule. We submitted "picoLisp-2.2.1.pre",
which still had - in "src/io.c" - the code

      for (x = data(c1); isCell(x); x = cdr(x))
         if (!isNeg(caar(x)) && (n=(int)unDig(caar(x))/2)!=fd && 
FD_ISSET(n,&fdSet)) {
            Push(at,val(At)),  val(At) = caar(x);
            val(At) = Pop(at);

Unfortunately, it was not before "picoLisp-2.2.3" that it was fixed. By
simply removing the 'break'! :-(

- Alex

Reply via email to