The meeting of the Haifa Linux Club took place this Monday as usual. This time we had an English speaker who did not know Hebrew well, so the lecture was given in English. That's the first time I remember that was the case.
I thought it was funny that they kept a workaround for a compiler's bug in the code, instead of telling people to upgrade to a new compiler. I personally would never do such a thing.
In any case, I finally was able to get acquainated with the famous (or perhaps notorious) Nadav Har'El. Adir Abraham suggested we wage the "Technion - good or bad" war in real-life there, but I decided to skip it.
Implementation of the log function
One side-effect of the lecture was the Muli and Guy said they would like to test their code on an SMP machine. This reminded me that I'd also like to make sure IP-Noise is SMP-safe, so the day afterwards I e-mailed Orr Dunkelman, Muli and Guy that I'd like to share the session with them. This sparced a small discussion which I will not detail here, but everybody agreed that I could do that.
In parallel, I tried to find an SMP machine in the Computer Networks Lab. All I could find was an old Dual-Processor SPARC station. There is no problem installing Linux on it, but the IP-Noise code uses an i386-assembler coded implementation of log(x), so I had to adapt it to the SPARC. I tried to look at glibc (from which I took the i386 routine), but could not make heads or tails of it. So I made a post to Linux-IL which sparced (pardon the pun) a very big discussion. It turns out the SPARC's floating-point unit does not have an internal implementation of the log function and one has to code iteratively.
With some help and input from the Linux-IL'ers, I coded a log() implementation in Perl and then converted it to C. You can find it here. It is not very optimized but it is fast enough for our needs.
I think it would be a good idea to have a central repository of kernel-compatible C and C++ source code, that kernel developers can use in their modules. That way, the wheel would not need to be coded times and again.