... indistinguishable from magic
effing the ineffable since 1977


Show All

Recent Posts


Japi Go Lucky


My theory that blogging about Japi progress makes the results improve faster seems to be proving correct. A month ago yesterday I mentioned that the status versus 1.2/1.3/1.4 was 62/63/88ish+2, plus one entire class. A month later, the scores now stand at 24/24/47+2. That's one class and about 40 methods down. Keep up this rate of progress and we'll be celebrating the new year with 1.4 API perfection!

Credit for the latest batch of gains:

  • Andrew John Hughes took out six in beancontext.
  • Roman Kennke nailed eleven in awt.font.
  • David Gilbert spotted that a couple of beancontext methods were marked as not implemented even though they were actually implemented just fine.

Also Roman's work on HTML continued with this amazing screenshot. Apparently it's still too slow to be really usable, which is good because it means I don't (yet) have to make good on my pledge to redo the HTML to be nice and clean and not use 1x1 spacer gifs. I'm not going to take away such a handy stress-test for the HTML code until it can pass it...


Japi Gilmore


David Gilbert is now vying with Roman for the title of Japi King, having knocked out no less than seven of the beancontext errors. And Roman vaporized one more in Swing to bring the totals now to 43/43/66+2 (that's missing methods (plus two 1.4 constructors) for those of you following along at home, but the results pages don't show the last five of David's fixes yet).

Roman, on the other hand, has achieved the one thing cooler than awesome Japi results: an HTML implementation that can render awesome Japi results!


Japitools 0.9.7 released

I'm thrilled to be able to announce four things:

1) After far too long a wait, Japitools 0.9.7 "Life, liberty and the pursuit of Japiness" has been released.

This release includes the following improvements over 0.9.5:

- Almost complete 1.5 language support, including generics, enums and varargs methods. The only missing feature for full language support (and the only blocker for a 1.0 release) is annotations. Big thanks to Jeroen Frijters for doing the heavy lifting of teaching Japitools to parse these features in .class files.

- The ability to mark methods as not implemented by adding "NotImplementedException" to the throws clause. This allows Japitools to give results that more accurately match reality when parts of an API are known to have been "stubbed out" rather than actually being implemented.

- The ability to traverse packages non-recursively (thanks to a contribution from Jaroslav Tuloch), making it easier to correctly specify the packages that are part of a public API, especially when that API is large. The new japiextractpkgs tool allows the list of packages to be extracted from Javadoc documentation.

- An Ant task for running Japitools, thanks again to Jaroslav.

- Too many bug fixes and minor enhancements to name, including a lot of changes that eliminate false positives and false negatives from the results. Thanks to many people for bug reports, feature suggestions and help in testing.

2) That there is now a Japitools mailing list, See the mailing lists page for more information.

3) That Japitools has a new homepage, It's ugly, and it's still a work in progress - some sections are still missing content, and others still have content that hasn't entirely been updated to match the current state of reality. I didn't want to delay any further getting the new release into people's hands. I'll continue working on filling out the content.

4) That Sun are AWESOME today!


I'm so Japi, 'cause today I found my friend

I'm running out of song titles, but I think that particular lyric is famous enough to use :)

This post is just for the sole purpose of pointing out that Roman continues to play the role of Japi Error Squasher Extraordinaire, having knocked out another five from the html package, bringing the numbers down to 50/51/74+2.

Some other ways of looking at the numbers:
  • We're three missing methods away from perfect coverage of 1.4 Swing
  • We're five methods away from covering all of 1.3 except awt.font and beans.beancontext (two in dnd, two in html and one in java.text)
  • font and beancontext are also the only packages with double-digits of errors in 1.4
I'm not quite sure how it happened, but Harmony is getting surprisingly good scores on 1.5 these days and beginning to give Classpath a run for its money there (assuming they don't have a lot of stubbed methods - I have no information on whether they do or not). But it's not even close to Classpath on those 1.4 numbers. The competition is heating up - let's hope that it's good for both sides :)


Japi Japi Joy Joy

The DefaultTextUI bug went away with upgrading the computer doing the Japi runs to Edgy. So I'm not worried about it - seems to be some weird bug in the version of gcj in Dapper that's been fixed since. There's still an issue with the -generics results though: it looks like the -generics build has been broken since October 18th with an EnumSet bug, so the generics results are two weeks old. Can't wait to see if we hit 96% of 1.5 when that gets fixed :)

In the meantime David Fu's implementation of HTMLWriter got checked in so that 1.2, 1.3 and 1.4 all report NO classes missing, and Roman Kennke has annihilated no less than seven missing methods across datatransfer, dnd and html in the past couple of days. This leaves the missing method counts versus 1.2, 1.3 and 1.4 at 55/56/79+2 constructors. And coincidentally puts all three at only 0.06% missing.