Older blog entries for sab39 (starting at number 65)

Japi New Year!

Thanks Casey for tackling the 7 java.security.cert issues. 1/1/10+2!

Syndicated 2007-01-01 19:31:43 from sab39 ... Blog

A Deathly Hallow is definitely...

... another name for a Horcrux.

You can quote me on that.

Syndicated 2006-12-30 02:36:39 from sab39 ... Blog

Japi Holidays to all!

Nearly a month since I blogged about Japi progress. I must be slipping.

Since then with respect to 1.4:

  • As Andrew mentioned in that chat log, he fixed the remaining beancontext issues on December 1st. As far as I know he's still looking for anyone, anywhere, who actually has any code that uses those methods.
  • Roman implemented two in datatransfer and one in print on December 11th.
  • And two in imageio.stream on December 12th.
  • On Christmas Eve Andrew eliminated the last two java.io errors.
This brings us down to 1/1/17+2 missing methods versus 1.2, 1.3, 1.4. That's almost cut the 1.4 errors in half again this month! They break down as follows:
  • The 1.2/1.3 error is in java.text. Mario is working on this one, I believe. As I understand it, it exposed some deeper Unicode-related issues that need to be addressed first - and will presumably result in improvements elsewhere too.
  • Seven in java.security.cert. Not a clue.
  • Six more in javax.imageio.stream.
  • Two methods, two constructors (and three serialversionuid minor issues) in javax.security.auth.kerberos.
  • One more to go (drag'n'drop related) in Swing.
  • And since I'm mentioning minor issues, even though I'm not including them in the count: a few more serialversionuid issues in external code that we inherit from the upstream distributors, specifically dom and sax. I believe these have been reported to the upstream suppliers of the code with no results, which is disappointing. Perhaps these won't be fixed until OpenJDK code can be pulled in...
Why am I still so fixated on the 1.2/1.3/1.4 results even though the current version is now JDK6? Because I like the idea of being able to say something is finished. For a long time - embarrassingly long, in fact, especially if you tried to advocate Classpath to a Java developer - we were "nearly 1.1". It doesn't matter if you also say "and a whole lot of 1.2, 1.3 and 1.4, and some of 1.5", the fact that we couldn't claim that even 1.1 was finished was what (a certain subset of) people heard. Now we're "nearly 1.2, nearly 1.3, nearly 1.4". Coverage of 1.5 and 6 are making good progress, but those things would sound a lot better if the sentence started with "1.4 is finished".

There are certainly also things from 1.4 that lie outside of API coverage that aren't finished. I'm not sure whether there's any definitive list of those things; it's a lot harder to know what they are when you can't write an easy tool like japitools to list them. I think those things are important too - I'm just not in a position to blog what they are. One I encountered in my own development was jks keystore format support.

None of that, though, detracts from the fact that excellent work is being done on 1.5 and 6 support as well, by Andrew and others. The percentage changes don't seem terribly impressive (at the beginning of the month Classpath's generics branch was at 95.5% good, 4.4% missing versus 1.5, and 88.72% good, 11.03% missing versus 6. Now Classpath IS the generics branch and those numbers are 95.56% good, 4.31% missing versus 1.5 and 88.93% good, 10.87% missing versus 6). However, the Java platform these days is HUGE. An improvement of 0.21% reflects quite a lot of work, especially considering that it was all methods in existing classes, and the way Japi weights things, those don't count for much compared to a whole new class, even if the class is small.

Syndicated 2006-12-30 02:32:48 from sab39 ... Blog

Making a Japi face - Classpath hackers are awesome

(03:15:01 PM) mjw: BTW. I am going to create the 0.93 branch now.
(03:15:22 PM) mjw: Unless there is something that really, really, really needs to go in in the next 30 minutes.
(03:15:46 PM) sab39: mjw: well clearly we really really need those last 6 beancontext methods and the one in java.text ;)
(03:16:19 PM) mjw: sab39, That is OK. You still have 28 minutes.
(03:16:40 PM) sab39: mjw: well my way of fixing japi errors is to poke other people until they do it
(03:16:52 PM) sab39: mjw: so... wonder how long till my new blog post hits planet ;)
(03:17:03 PM) ***mjw adds a note to keep out of reach of sab39
(03:17:14 PM) sab39: mjw: you're not immune, remember RCSID? ;)
(03:17:20 PM) mjw: sab39, It's there now
(03:17:31 PM) ***sab39 must have timed posting it well
(03:17:36 PM) tromey: your blog showed up on mugshot just now
(03:19:13 PM) neugens: sab39. ping
(03:19:23 PM) neugens: hehe, I've read your blog
(03:19:33 PM) sab39: neugens: pong
(03:19:43 PM) neugens: sab39: I'll try to take care of the missing error for the text package
(03:19:52 PM) sab39: neugens: cool :)
(03:20:00 PM) neugens: sab39: not sure it will be in the 0.93 release though :(
(03:20:06 PM) rkennke: sab39: hey it works!
(03:20:16 PM) sab39: rkennke: never fails
(03:20:31 PM) sab39: neugens: what, you can't get it working in 30 mins? ;)
(03:20:40 PM) neugens: 30 minutes?
(03:20:41 PM) neugens: ouch!
(03:20:50 PM) neugens: I need to push a fix for decimal format first!
(03:20:54 PM) ***neugens rush
(03:20:59 PM) ***neugens is away: I'm busy
(03:21:10 PM) rkennke: lol
(03:21:34 PM) sab39: :)
(03:21:34 PM) mjw: O boy.
(03:22:09 PM) mjw: I can pick up fixes on the release branch later also.
(03:24:01 PM) gnu_andrew: sab39, the problem with fixing those beancontext ones is that I've not seen any real testcases
(03:24:15 PM) gnu_andrew: sab39, I can throw something in but won't be 100% as to whether it's right
(03:24:37 PM) gnu_andrew: sab39, e.g. the proxy ones would intuitively suggest that you have a provider which you call
(03:25:35 PM) ***sab39 is giggling like an evil maniac right now. It really does never fail ;)
(03:26:01 PM) rkennke: sab39: haha
(03:26:23 PM) rkennke: gnu_andrew: I'd say throw it in. As long as noone complains ... B-)
(03:26:50 PM) robilad: rkennke: you're talking to the guy who talked me into starting to merge in classpath into kaffe back in 2003. ;)
(03:27:14 PM) sab39: gnu_andrew: I imagine if there are problems with an implementation you're more likely to get decent bug reports if it's an attempted implementation than if it's just entirely missing, too
(03:27:59 PM) sab39: I don't know whether to feel proud or guilty that the net effect of my gently and not-so-gently nudging other people to do stuff is so vastly disproportionately higher than the amount of actual work I've done myself ;)
(03:28:26 PM) tromey: sab39: arguably motivating other people is harder and more useful than doign the actual work :)
(03:28:26 PM) rkennke: robilad: hehe
(03:29:11 PM) gnu_andrew: sab39, good point, I'll hack something together and stick it in
(03:29:17 PM) sab39: robilad: well your starting that also prompted me to un-abandon japi after 2 years of not having touched it... not that that compares with the amount of work you did of course :)
(03:29:24 PM) gnu_andrew: sab39, no-one has even cried about them being missing yet...
(03:29:30 PM) mjw: sab39, The trick is to create your own reality-distortion-field in which you actually believe all the work was really yours anyway.
(03:29:36 PM) sab39: gnu_andrew: I have ;)
(03:30:00 PM) sab39: tromey: thanks, that's a heck of an ego boost ;)
(03:30:59 PM) robilad: sab39: you're good, and we like you ;)
(03:31:10 PM) sab39: mjw: I'm not sure even steve jobs could create *that* big a reality distortion field
(03:31:14 PM) sab39: robilad: aww, thanks
(03:31:19 PM) robilad: we also like casey very much, but he seems to not be around tonight.
(03:31:31 PM) sab39: <robilad promiscuous=true>/me hugs</robilad>
(03:31:46 PM) sab39: (that never gets old ;) )
(03:32:21 PM) gnu_andrew: sab39, I meant in terms of actually using it of course... ;)
(03:32:33 PM) gnu_andrew: seems sab39 is the Classpath cheerleader... :)
(03:32:43 PM) ***robilad hugs sab39 back .. thanks god it's friday! and heads out for a beer
(03:32:51 PM) robilad: later, mates
(03:32:52 PM) ***sab39 waves his pompoms
(03:32:59 PM) sab39: (now there's a disturbing picture)
(03:33:16 PM) sab39: bye robilad
(03:33:36 PM) sab39: (I'm so blogging this conversation btw)
(03:34:21 PM) Stephmw: I'm sooooo happy I didn't make any sarky comments then
(03:34:25 PM) Stephmw: wooops.

Syndicated 2006-12-01 20:46:23 from sab39 ... Blog

Japi Seven

(I'd never heard of "Happy Seven" but Google showed that it's in fact some kind of anime thing while I was hunting for a title for this post)

So here's the progress in the last week or so:

  • David Gilbert eliminated three more errors in beancontext on Thursday.
  • Roman Kennke took out the last two from dnd on Friday.
  • Mario Torre took out some 1.5-only errors in java.text on Saturday.
  • Andrew John Hughes eliminated another six from beancontext on Sunday.
  • Roman Kennke killed the last five in font on Monday.
  • Yesterday, Roman eliminated the last missing html method (for 1.4) which coincidentally required implementing frames. Then for good measure implemented form submission too to complete html for 1.5 while he was at it.
The upshot of all this is that we're now at 7/7/30+2 missing methods versus 1.2, 1.3, 1.4. Classpath 0.93 will be released real soon and I'm very curious to see whether those last seven 1.3 errors will be wiped out first. They break down into six in beancontext (Andrew? David?) and one in java.text (Mario?)...

Syndicated 2006-12-01 20:12:07 from sab39 ... Blog

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...

Syndicated 2006-11-24 00:34:45 from sab39 ... Blog

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!

Syndicated 2006-11-16 14:57:08 from sab39 ... Blog

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, japitools-list@nongnu.org. See the mailing lists page for more information.

3) That Japitools has a new homepage, http://sab39.netreach.com/japi/. 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!

Syndicated 2006-11-14 05:00:51 from sab39 ... Blog


f(x) = 6x walks into a bar and asks for a sandwich. "Sorry," says the barman, "we don't cater for functions."

This isn't quite plagiarized from marnanel, but its derivative, I admit.

Syndicated 2006-11-08 15:57:00 from sab39 ... Blog


I've added category support to my blog and gone through at least the most recent few items adding categories. Planet Classpath readers, I hope that updating a whole bunch of posts all at once isn't going to force all my entries to the top. If it does, I apologize...

Syndicated 2006-11-06 01:27:08 from sab39 ... Blog

56 older entries...

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!