Nektarios K. Papadopoulos wrote:
Hi Dalibor,

Thanks a lot. All works fine now.
Please find attached a patch for FAQ/FAQ.classlibrary-compile to add a simple note about this.

Great! Thank you very much for the patch, patches to improve the documentation are very appreciated.


BTW, a long time ago kaffe used to have a more convenient way to define class library profiles. You had groups of associated classes organized in sub-profiles (e.g. awt.files, xml.files, security.files etc) which one could include in the top level profile file. Some months ago this functionality disappeared.

Yeah. I found myself spending a lot of time updating the profiles, and shuffling filenames around to make things work, for what I percieved as rather small benefit: the main benefit for me was being able to build the class library in several passes for machines with little memory, like my old developement box.


I eventually guessed that most people working on embedded devices can pre-compile rt.jar on a fast box with enough memory, so that they then can just use the pre-built rt.jar in the cross-compilation step. So I radically simplified the profile setup, while keeping it still useful, I hope.

Additionally, I am having a hard time tracking of new class files added and old class files removed during the (most welcomed) resync with classpath process.

What worked for me to quickly generate a profile was to take the handful of classes I was really interested in having in my profile was this:


cd kaffe-source/libraries/javalib
jikes -d /tmp/topic/mimimal-profile/ java/lang/Object.java
cd /tmp/topic/mimimal-profile/
find [cgjko]*/ -name "*.class" | grep -v "\\$" | sed 's/\.class/\.java/g' > minimal.profile


Then one needs to weed out the badly named inner classes from the profile, as some classes that should be in separate files because they are not inner classes are not (and patches to make them so would be cool for GNU Classpath).

The list I get is

*** Semantic Error: The input file "gnu/regexp/CharUnit.java" was not found.
*** Semantic Error: The input file "gnu/regexp/IntPair.java" was not found.
*** Semantic Error: The input file "java/lang/SecurityContext.java" was not found.
*** Semantic Error: The input file "java/lang/MathRandom.java" was not found.
*** Semantic Error: The input file "java/io/ValidatorAndPriority.java" was not found.
*** Semantic Error: The input file "java/io/MemberComparator.java" was not found.
*** Semantic Error: The input file "java/io/InterfaceComparator.java" was not found.
*** Semantic Error: The input file "java/util/SubList.java" was not found.
*** Semantic Error: The input file "java/util/RandomAccessSubList.java" was not found.
*** Semantic Error: The input file "java/security/PermissionsHash.java" was not found.
*** Semantic Error: The input file "java/security/AllPermissionCollection.java" was not found.
*** Semantic Error: The input file "java/security/BasicPermissionCollection.java" was not found.
*** Semantic Error: The input file "java/text/MessageFormatElement.java" was not found.


I think we should just make them static inner classes in classpath, or move them to the appropriate gnu.* utility packages. We should discuss this on the classpath mailing list.

Once one removes those annoying non-existant file names from minimal.profile it compiles with jikes into the 'interdepenant set' of classes in the profile.

You may have to add

java/lang/OutOfMemoryError.java
java/lang/ref/PhantomReference.java
java/lang/StackOverflowError.java
java/lang/ref/SoftReference.java

to your minimal.profile, because these classes are not in the inter-dependant set of java.lang.Object atm, but are nevertheless explicitely loaded by Kaffe on startup.

cheers,
dalibor topic

_______________________________________________
kaffe mailing list
kaffe@kaffe.org
http://kaffe.org/cgi-bin/mailman/listinfo/kaffe

Reply via email to