[kaffe] JDK API compatibility

Dalibor Topic robilad@yahoo.com
Wed, 26 Jun 2002 19:32:18 -0700 (PDT)


--0-1203243635-1025145138=:12512
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline

Hi,

I played with japitools 0.8 today. I created japi
files for jdk 1.0.2, 1.2 and 1.3. Jdk 1.4 can't be
japized due to a bug in jode. Overall, I must say that
japitools are quite nice.

Current (as in what's in CVS right now) kaffe's stats:

vs Java 1.0 API:

Packages: none missing, 7 good.
Classes: 1 missing, 1 bad, 170 good.
Interfaces: none missing, none bad, 18 good.
Fields: 4 missing, 5 bad, 446 good.
Constructors: 2 missing, none bad, 317 good.
Methods: 29 missing, 10 bad, 4799 good.
Total Errors: 52.
Meaningless API coverage score: 2.17% missing, 0.27%
bad, 97.56% good.

vs Java 1.1 API

Packages: 1 missing, 21 good.
Classes: 3 missing, 1 bad, 384 good.
Interfaces: 1 missing, none bad, 80 good.
Fields: 1 missing, 49 bad, 1376 good.
Constructors: 3 missing, 1 bad, 645 good.
Methods: 13 missing, 16 bad, 10486 good.
Total Errors: 88.
Meaningless API coverage score: 1.63% missing, 0.51%
bad, 97.86% good.

vs Java 1.2 API

Packages: 27 missing, 26 good.
Classes: 73 missing, 14 bad, 476 good.
Interfaces: 26 missing, none bad, 110 good.
Fields: 141 missing, 51 bad, 1793 good.
Constructors: 25 missing, 2 bad, 857 good.
Methods: 515 missing, 26 bad, 14157 good.
Total Errors: 879.
Meaningless API coverage score: 18.93% missing, 0.43%
bad, 80.64% good.

vs Java 1.3 API

Packages: 40 missing, 26 good.
Classes: 120 missing, 35 bad, 461 good.
Interfaces: 35 missing, none bad, 113 good.
Fields: 152 missing, 53 bad, 1775 good.
Constructors: 32 missing, 2 bad, 865 good.
Methods: 578 missing, 27 bad, 14264 good.
Total Errors: 1043.
Meaningless API coverage score: 29.59% missing, 0.47%
bad, 69.94% good.

What do the numbers tell us? We are pretty close to
having an implementation of the full Java 1.0 API. The
errors pointed out by japitools seem to be easily
fixable. For Java 1.1 API, the situation is similar.
The missing package is java.security.acl, containing
only interfaces and exceptions, so that should be
easy. Unfortunately, we are quite far away from full
1.2, and even further from full 1.3 API.

That being said, our implementation of the essential
packages (io, lang, net, util) seems to have only a
few remaining things missing for 1.2 compliance. Most
of that will come with 1.2 class loading, once it's
done.

I'm off to fix the JDK 1.0 issues ...

dali

__________________________________________________
Do You Yahoo!?
Yahoo! - Official partner of 2002 FIFA World Cup
http://fifaworldcup.yahoo.com
--0-1203243635-1025145138=:12512
Content-Type: application/octet-stream; name="japitools-0.8-results-only.tgz"
Content-Transfer-Encoding: base64
Content-Description: japitools-0.8-results-only.tgz
Content-Disposition: attachment; filename="japitools-0.8-results-only.tgz"

H4sIAJR1Gj0AA+xda3PiONaez/srUpXd2mxVhhfItfebAUM8DZixobtnurYo
xyhBE2N7fUk68+tXku/GGOtieuatSVV3gvF5Hl2PjqSjoxfj6Qn82OveeWbv
x1f/x982L+jTD0J/ur1u9/b6+odut3t9dd0lv++65DP66SHy2x+6dzf4nete
r4/ev7q7vvnhTHAyqn9CPzC8s7MfAseFZs170qT/4wN8g/4pEnW6nycIrM3Z
b8ar0bEM+7mjv/sB2J0DzzuD/pnt2E/QNqwzaJ+hltHr9ju/GS48ewyDs/SL
F9yEyPO/HUBDL4kDc9DrAtBGTvhogfOZMl9/kqYrGWOajo1agx2c9Tv9/k33
7ur+5h796nd71/KPV937Kq5U5rrzAb3Uvy7x7kCwdQrZAGboweB9ZtjGM/DO
zS0wXxae4wIveJdME/j+Re7twIP282X5wb9Q/oOzDUA5BZsSo2kZvp8jXM2V
LwgfA9dI5dNpvAWdobNzHRvYwfkGWPAVePIr+nCRfk8+/oulJg4zPYNg6FiO
N3MQ50VdHg9jWNAPeETJc+h0FqiYA1TYwNiJRbuEuNxoEO3AQO955y76FaQE
flYXE89wt9D0aWDhDrW+zgJ+AxYSf3xE+KgdB6FPVXgRSlZp56TC4e/ggjQN
F/UxaFY1DNdzAmAGdY0X4y/BtyzH53EfNT0QgCpQ49EPPMMMjiS6CIoanQ4s
khb8RZTw9ligY8v25gQsOhrXWsxNi2XlkyxcoMYe9ZX2OCTLai0PUQntK242
NjLMeKEZOF5GqeDed17bYXPDHpYYI2UyAyglpn/+hP6m6Oo4OxJSYGg099FQ
VZm7Y7qtnBrP2KEhWP0kr4crTVc1iuQkOo9b4+wDw83AeJ4a78jSOJ+AIPpL
sZ+ci32lTKvN99Bn0NZx6iugq4VwQijKuEg4k75MNGWkK78WDZ5ev964QRY8
DY2VppRmoNs60ATnphPagYIsPbqRSDc9x7IeDQ93vQXqFwruYztssxyposqu
tXQc6wUG9Z1rr4vEQojYCMAgDALHzio2+syONzTsVyM36kefOfCw4fnofMsh
xk/4MWfADnEd7mMn3/Bw4HZyUWo37HgjaFjOc4YXfWbHG0NrDzN7xoGLteVF
UXmyo02NR2Rjp1+SjxxoqbFLwNAndizcQjIs/IkPa2B4RTj0gA+x2LL5W/TC
sPN1QT6yo6Wa8GJfObKjJsN/Bpo84cMc43GkCEoeNRzi8Nwq9LePhvmi2G4Y
z7HOXfRsgJ7VgCzQ12iY8P+NJ7DgbAd9H1swZ3dnz46z6fxtiGci+Ote9l3v
7NHYoF933fglxQ6A92SY+zDkU/T2ffwyyRd68Tp76yZ65fr6NmHNBiP0Zr8K
76qXJHFGShe/9yGXxm6MeffhQ/ze0gnQLFz2PAJ608eSho3etvCagLRQ0ECP
ZvioNM580/EAAuz07v6RYXY7ffSRwH6469zc/iMG/t6rV3/98P68VK3/9sRy
1K//9ru3vdz67+0dWf+97f61/nuKH3HLfr2/Vv2ErvodRvzsQTTqiEX7TquS
bjQIR7h+vDLeMUwr/36pdWG0IgpMRuESzhB4AXyCJjI1mq2Xp5LKBuUF/cEo
ppuOS0upw2dUnLTzVOnzknTJ870uygdEFnXUx9+AmS3CFddWcjVyaGmltEaQ
UkjDpaLO1/Ineb5czyT949k//bPg3QUl7K+WYz//52zjgGjnYmcE5jZHcPYV
Je0/h2lGP6305QyTtE01VGcLdX4apvlSUuay1jrTWB2u9NZZlKU8a53ko/xL
6xwzdaXLJ2KZqSfpQEv5S/sN+rMyH6mf26IBmKPzEbzHvedB0tar+Ugeoy40
KiyBdisUW/rl7c3N1U29douYFng0jLgWqJsu11NJXxZ47ru9Oqb7bv/I0EtG
7Z+cx9qV7wbamXqrLYfJums0NBDgwvEh3qGq3noRwHJ8P08YSd12nkiSmt08
ATTtFVSDvTwxFAe38vjhS622vXwU29QpeKJm1SJT803Q42Sse6DlROLladzq
Z9CGu3BHtt8opz8JxMIDT8DzwIYF5A+2oxotEuPFZzSnQzhRAhgHF6btWvop
ReQTRpYPyKwC51taYOPokBWBjYQ6I+LxPQB7VsRhmvVA1Uaydio2bJG1xoWn
Fpo6bRt/Pfq41h8kZPS1zvSgTB6m6F/rZbaeLk9IdqLSa7WxjWT941JdtIav
zE+kD8pEbWuEPb5Wq0mZj9VWwdtN/kyer1oFbzf589VsPVSnqqa3RqEPUVef
DqT2GmyrJUSWKNrXvEWadiudcKW9vH2qVhmi1Z2W4dtWuTELf0H9/3N5+w5u
5HSzBG8HO2h29Qq8ztR5jt1DBpoij4sOkLXLfz1K/E+yNlD10pmSWobyol81
gwZ2KMMaeDqPN87w/BN+K/D4oZ0TqeOM6IrvNsiksQHeg2FvLLL5x5+MWuce
7DiHWIKtDvCkFDfYPMu/G+0PHoMcbo0i7M09K65fmcz/44bbS+L1HS1mGECr
8zt0O5NflUXeWQp/Xs+kiTIsMFzd3PZu6peq78pr4plTVc5rqt8ru1Rd7blU
Xd1fV7hU9ar8n+67JX+q3FvXH2Kfq6u7ao+qfebb65uyO1Uv/9ZtjNi9vr+t
9Ke6vz/uT9Xr3F4V/Kluepk/1f139Keq9P/pi+Wo9f/p93t3N93E/6ffu7oh
/j8313/5/5zi57CniLHZECUR9Qq84AlskPMpjfa7Kl5hc0xBdMkhSKTr7GdQ
ZHxEHczvVL/RCuHe6UvxKTAdAykME5DtwpzjTLI1ern3hI2H1pOL+fwmsI1H
C+SahH/xiIxKVHBsCX+CHigWeN3J2NhbpfyAjfoZBANklW9y1aIhMAPreGZE
bjc3ghF/UD2I/jfijVRGtBEq3aXhob/YMR4AfN5yyJP2gv3Jok1IHpSo1Wng
vyHwA7opSAFs6phRwWab7g6zAx/exi2c8BpBNEfzId1ZoALeZ7gJtozZ2xr+
2DEpJ2iZOPRH0Hct4x13dWaMKW4ybzwNB/qqa6B6/sth9M/iMJogulEsglyH
LY1Me5YFx9jnoRnzKzilIRMxntaWOc55AnPGPzA47b+a+5aZKjdypS9s7E0n
e94wRkbRm7nKM4HxdHYGWrWKxXAyOQNEWdqkpSHl3GtYHLjLYDxjnnincCxk
Yrup7BGeK8D9ZY88xLeO/4aafQcNWk+dXWgFkAqq5Fwe9RvJdS1sc8AAknXK
Or/tfClF0mNgBKEHRsj496CLGg0azVJPksaj0iEsP+eWQmt/F7VCEVQDxiZS
kDmVgoiwK1En+kIEDRlehPIo9gZ8A5tquvhL4ZlrQsqb1dziXkIaeI7vAqyI
zpXJXNXktTSdrgeyNCc7uZxYymwmjxRpKfMjYjfmhkmrKtwc0pMV+tuhYW5B
c5v2EMzYc3YxVFYhZNmSAxnPJdHTLIJEhkqjtSPkTyBwsOkdjdh66LqORxYz
il80Gv2rRUSkB8/ci98cNn2orDsW0nzuY314yaQX2WkpB+g6OjR/S2pqP1CY
CILImDxJc6ocW5GqhM82XiZhGk32OsbJzeK69Bxa0hLUMehIhXUMdlqmjlFN
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


--0-1203243635-1025145138=:12512--