From owner-freebsd-java Fri Apr 30 0:16:51 1999 Delivered-To: freebsd-java@freebsd.org Received: from ns.mt.sri.com (sri-gw.MT.net [206.127.105.141]) by hub.freebsd.org (Postfix) with ESMTP id 2E36C1508D for ; Fri, 30 Apr 1999 00:16:47 -0700 (PDT) (envelope-from nate@mt.sri.com) Received: from mt.sri.com (rocky.mt.sri.com [206.127.76.100]) by ns.mt.sri.com (8.8.8/8.8.8) with SMTP id BAA08665 for ; Fri, 30 Apr 1999 01:16:47 -0600 (MDT) (envelope-from nate@rocky.mt.sri.com) Received: by mt.sri.com (SMI-8.6/SMI-SVR4) id BAA18710; Fri, 30 Apr 1999 01:16:47 -0600 Date: Fri, 30 Apr 1999 01:16:47 -0600 Message-Id: <199904300716.BAA18710@mt.sri.com> From: Nate Williams MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit To: freebsd-java@FreeBSD.org Subject: TODO list of project for FreeBSD/Java X-Mailer: VM 6.34 under 19.16 "Lille" XEmacs Lucid Sender: owner-freebsd-java@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org [ Unfortunately, there's nothing here specific to Java2, but all of the changes would be applicable to that codebase in a separate form as well. ] We need people who are willing to get the source code to JDK1 and provide the following features for FreeBSD. 0) Get SUN to release sources to JDK1.1.8, instead of Motif and ODBC drivers. [ This one is tongue-in-cheek, but Sun really screwed up when they built the JDK1.1.8 source tarball. It doesn't contain any sources to the JDK, and they aren't replying to my followup faxes. :( ] Now, onto the 'real' tasks. The pre-requisites to these tasks are: 0) You must have the JDK sources from Sun, preferably JDK1.1.7, although *IF* they release JDK1.1.8 I suspect that the patches on the WWW page should work fine for it as well. (Although, some of the JDK1.1.8 fixes may not be in the resulting binaries created from it.) 1) You must know how to develop programs on unix using the C-compiler, debugger, as well as the ability to read and understand Makefiles. (The JDK build environment uses gmake). 2) A bit of free disk space. 200-300MB should be overkill, but it's better to have too much rather than too little. 3) Some free time to spend working it. Good intentions are great, but if you are way too busy now, chances are pretty good that you won't find enough free time to get anything specific done unless you set some aside for this task. 4) You must have a rudimentary knowledge of Java programming. Enough to be able to build very simple 'hello world' applications to test things out. 5) You need to be pretty good at messing around with software and tracking down where things are defined in a big project. Things like find . -name '*.[ch]' -print | xargs fgrep symbolName shouldn't scare you. Otherwise, you're going to get frustrated real quick trying to figure out where things are defined when problems crop up. 6) You must not require a whole lot of hand-holding. I'm willing to help, but I don't have the time to teach you how to debug C or Java programs. Things that are helpful: +++++++++++++++++++++++ 1) An understanding how dynamic linking/loading works. You don't necessarily need to understand the internals, but you need to understand what's going on a bit, since the JDK makes extensive use of them. 2) Some Java applications/applets you can test against. This is less important, but sometimes it's nice to have some 'significant' code so you can do your own local testing. 3) Self-motivation to figure out 'how' things work by using the code and alot of bogus assumptions. ;) What is not required: +++++++++++++++++++++ 1) The immediate ability to re-write the FreeBSD kernel. 2) The understanding of everything in the FreeBSD kernel. 3) The ability to program C code in your sleep. 4) The ability to program Java code in your sleep. 5) A complete understanding of the best use of the 'volatile' keyword, or how to best design a piece of software. We're just 'porting' an existing application to FreeBSD, not re-designing it from scratch. With the existing JDK1 patches, it's not rocket science anymore. The tasks are: ++++++++++++++ * We need patches to convert the JDK to use 'poll' instead of select on 3.X/4.X systems. Currently, the JDK is setup to use select only, and I believe that by using poll we could remove some of the 'file-descriptor' limits that exist in the current sources. * We need patches to make the 'select' code in the JDK not rely on a hard-coded limit on the number of file descriptors. There were code snippets posted to one of the FreeBSD mailing lists a while back that implemented some code that might be converted to do this. However, my very simple attempt at doing this failed, and I haven't had the time to go back and fix it. * We need someone to modify the JDK sources to make the assembly Java intepreter work. For some reason, it doesn't work. The last patch set on the WWW page contains a pretty good start on it, but I couldn't get it to work right. Someone needs to spend some time in a debugger and figure out what's going on inside the assembly code. * Figure out a patch to allow FreeBSD 3.0 systems to work 'out of the box' without requring them to install a new runtime loader (which apparently doesn't always work right). [ I think the Java team is going to do this one, but if someone wants to beat us to it we'd be more than willing to accept it. ] [ The above tasks will also greatly aid us doing the Java2 port ] * Sending us tested patches to add-in bugfixes from other JDK ports, most notably Linux. Steve makes the Linux diffs available, and there are *LOTS* of bugfixes in there that are equally applicable to FreeBSD, but we haven't taken the time to break them out and test them. Feel free to take the ones you understand out, apply and test them, and submit them along with a description of what they do. * Apparently the Japanese Locale support is broken. Unfortunately, I don't know how to fix it, nor do I have any way of even testing to see that it's broken. Someone else who experiences the problem will need to find and fix it. (It used to work in JDK1.1.6, but Sun changed it's locale support in 1.1.7 when it added Euro support.) [ These next task should be doable by about anyone, so jump on here. ] * 'Port' setups for the two FreeBSD-supported JIT compilers that work with the Sun JDK. Archie Cobb has done the Kaffe port, but it would be nice to also have ports for TYA and ShuJIT in the tree that installed themselves in 'appropriate' places to integrate with the JDK port. This would certainly make it easier for folks to have a 'faster' Java runtime environment without having to configure it for themselves. * Test, test, and more test. If you see a bug, report it. We may say it's a Sun bug and defer it to later, but you'll never know unless you report it. * Modifying the FreeBSD/Java WWW to look more 'sexy', or contain more information that is useful to users. I'm a good programmer, which means I never write documentation. I also can barely do HTTP, and I am horrendous at layouts. If you got suggestions, download the html source and hack on it. Send the results to this mailing list and see what others think about it. I've got no pride in this, re-write it from scratch for all I care. Make it 10 pages. Make it one page. (The only stipulation I have is don't do anything illegal, like adding any 'licensed' icons like Duke that we are not allowed to use.) Resources available to you: +++++++++++++++++++++++++++ o The FreeBSD Java WWW page has a pointer to the patches we used to build the release. http://www.freebsd.org/java o If you don't have Motif, LessTif works well enough to make a working JDK. The 'official' NetBSD JDK uses LessTif, so it work 'pretty well'. http://www.lesstif.org o The FreeBSD Java team. We're willing to help out any way we can, but *ONLY* to folks who are showing both a willingness to help and have demonstrated that they are doing something. Remember, we don't get paid, and any time we spend helping others is time spent away from doing something else (like family, work, porting to Java2, or fun stuff). java-port@FreeBSD.org o This mailing list. If you think I'm being a butt-head and would rather keep things open, I will understand. Leave the complete discussion on the mailing list, but do realize that the reason we've taken it 'offline' is due to the licensing restrictions Sun has made. Nate To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-java" in the body of the message