On Sun, May 19, 2002 at 01:39:30AM -0400, Melvin Smith wrote: > Filled in some missing holes: > -Implement PMC inc/dec functions and add ops to engine. > 'inc P0, 5' is faster than 'set P0, P1, 5' which uses a vtable. > -Corrected 'inc Nx, Ny' to 'inc Nx, Iy' as per the PDD > -Added missing 'add Nx, Ny, Iz' op
Good. :-) > Updated mops_p.pasm to use dec op, however, the intent was > not to optimize mops_p benchmark, but to optimize for a very > common operation, which mops_p just happens to do. We now need > to re-evaluate mops_p and how to accurately represent a cross-section > of operations and not a specific case. Good. :-) > Er, hmm we might need a few new tests, I was too lazy to write them, Bad. :-( > I did fix the existing ones for the erroneous inc Nx, Ny op. Good. :-) > Btw, mops_p runs 20% faster, for now, but I wouldn't get too excited since > it only uses 2 specific ops. Good. :-) Net result is Good. [If it wasn't clear, thanks for this, thanks for all the other good work you've done on parrot] Seriously though - is it possible to automate testing how many ops don't have tests? That way we could have a test that looked for untested ops, and failed if any weren't tested. I guess it couldn't easily be very sophisticated, in that it would really only have to verify that all ops were mentioned somewhere in the body of a test, but I think it could be quite useful. Otherwise useful op patches will go it with the honest intent to have tests follow shortly, but there will inevitably be some occasions where the tests themselves are forgotten, and then the fact that the tests still need to be written will be forgotten, and then we'll have some untested ops in the core that will get broken without anyone realising. I'm not suggesting that we do this all the time, but it might be a good rule for any official release - for release all ops must have tests. Nicholas Clark -- Even better than the real thing: http://nms-cgi.sourceforge.net/