From: <ls...@us...> - 2009-02-21 15:42:10
|
Revision: 5053 http://jnode.svn.sourceforge.net/jnode/?rev=5053&view=rev Author: lsantha Date: 2009-02-21 15:42:04 +0000 (Sat, 21 Feb 2009) Log Message: ----------- Decreased the size of boot image. Modified Paths: -------------- trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java Modified: trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java =================================================================== --- trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java 2009-02-21 15:36:49 UTC (rev 5052) +++ trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java 2009-02-21 15:42:04 UTC (rev 5053) @@ -927,6 +927,14 @@ return true; } + for (String s : compileHighOptLevelPackages) { + if (s.endsWith("*")) { + if (name.startsWith(s.substring(0, s.length() - 1))) { + return true; + } + } + } + return false; } @@ -1033,6 +1041,15 @@ load = true; } else if (preloadPackages.contains(pkg)) { load = true; + } else { + for (String s : compileHighOptLevelPackages) { + if (s.endsWith("*")) { + if (cName.startsWith(s.substring(0, s.length() - 1))) { + load = true; + break; + } + } + } } if (load) { @@ -1277,27 +1294,73 @@ } protected void setupCompileHighOptLevelPackages() { - addCompileHighOptLevel("java.io"); + addCompileHighOptLevel("java.io.Data*"); + addCompileHighOptLevel("java.io.String*"); + addCompileHighOptLevel("java.io.ByteArray*"); + addCompileHighOptLevel("java.io.CharArray*"); + addCompileHighOptLevel("java.io.Print*"); + addCompileHighOptLevel("java.io.Reader"); + addCompileHighOptLevel("java.io.Input*"); + addCompileHighOptLevel("java.io.Buffered*"); + addCompileHighOptLevel("java.io.Writer"); + addCompileHighOptLevel("java.io.Output*"); + addCompileHighOptLevel("java.io.Filter*"); + addCompileHighOptLevel("java.io.IOException"); + addCompileHighOptLevel("java.io.ObjectStreamField"); + addCompileHighOptLevel("java.io.ObjectStreamClass"); + addCompileHighOptLevel("java.lang"); addCompileHighOptLevel("java.lang.ref"); // addCompileHighOptLevel("java.lang.reflect"); //<- produces inconsistent bootimage - addCompileHighOptLevel("java.net"); - addCompileHighOptLevel("java.nio"); - addCompileHighOptLevel("java.security"); - addCompileHighOptLevel("java.util"); + + addCompileHighOptLevel("java.net.URL"); + + addCompileHighOptLevel("java.nio.Buffer"); + addCompileHighOptLevel("java.nio.ByteBuffer*"); + addCompileHighOptLevel("java.nio.DirectByteBuffer*"); + addCompileHighOptLevel("java.nio.ByteOrder"); + + addCompileHighOptLevel("java.security.ProtectionDomain"); + addCompileHighOptLevel("java.security.AccessController"); + addCompileHighOptLevel("java.security.AccessControlContext"); + addCompileHighOptLevel("java.security.AccessControlException"); + addCompileHighOptLevel("java.security.Permission"); + addCompileHighOptLevel("java.security.PrivilegedAction"); + addCompileHighOptLevel("java.security.PrivilegedActionException"); + addCompileHighOptLevel("java.security.PrivilegedExceptionAction"); + addCompileHighOptLevel("java.security.PermissionCollection"); + addCompileHighOptLevel("java.security.CodeSource"); + addCompileHighOptLevel("java.security.Policy"); + addCompileHighOptLevel("java.security.AllPermission"); + addCompileHighOptLevel("java.security.Permissions"); + addCompileHighOptLevel("java.security.Security"); + addCompileHighOptLevel("java.security.SecurityPermission"); + addCompileHighOptLevel("java.security.BasicPermission"); + + addCompileHighOptLevel("java.util.Collection*"); + addCompileHighOptLevel("java.util.Map*"); + addCompileHighOptLevel("java.util.List*"); + addCompileHighOptLevel("java.util.Set*"); + addCompileHighOptLevel("java.util.Iterator*"); + addCompileHighOptLevel("java.util.Array*"); + addCompileHighOptLevel("java.util.Abstract*"); + addCompileHighOptLevel("java.util.Hash*"); + addCompileHighOptLevel("java.util.TreeMap*"); + addCompileHighOptLevel("java.util.TreeSet*"); + addCompileHighOptLevel("java.util.Linked*"); + addCompileHighOptLevel("java.util.Vector*"); + addCompileHighOptLevel("java.util.Locale*"); + addCompileHighOptLevel("java.util.WeakHashMap*"); + addCompileHighOptLevel("java.util.Properties*"); + addCompileHighOptLevel("java.util.Dictionary*"); + addCompileHighOptLevel("java.util.StringTokenizer*"); + addCompileHighOptLevel("java.util.Property*"); + addCompileHighOptLevel("java.util.Enum*"); + addCompileHighOptLevel("java.util.jar"); addCompileHighOptLevel("java.util.zip"); - addCompileHighOptLevel("javax.isolate"); - addCompileHighOptLevel("javax.naming"); - addCompileHighOptLevel("gnu.classpath"); - addCompileHighOptLevel("gnu.java.io"); - addCompileHighOptLevel("gnu.java.io.decode"); - addCompileHighOptLevel("gnu.java.io.encode"); - addCompileHighOptLevel("gnu.java.lang"); - addCompileHighOptLevel("gnu.java.lang.reflect"); - addCompileHighOptLevel("gnu.java.locale"); addCompileHighOptLevel("org.jnode.assembler"); addCompileHighOptLevel("org.jnode.boot"); @@ -1305,8 +1368,6 @@ addCompileHighOptLevel("org.jnode.plugin"); addCompileHighOptLevel("org.jnode.plugin.manager"); addCompileHighOptLevel("org.jnode.plugin.model"); - addCompileHighOptLevel("org.jnode.protocol.plugin"); - addCompileHighOptLevel("org.jnode.protocol.system"); addCompileHighOptLevel("org.jnode.security"); addCompileHighOptLevel("org.jnode.system"); addCompileHighOptLevel("org.jnode.system.event"); @@ -1325,10 +1386,10 @@ addCompileHighOptLevel("org.jnode.vm.memmgr"); addCompileHighOptLevel("org.jnode.vm.memmgr.def"); - addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk"); - addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk.genrc"); - addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk.nogc"); - addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk.ms"); +// addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk"); +// addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk.genrc"); +// addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk.nogc"); +// addCompileHighOptLevel("org.jnode.vm.memmgr.mmtk.ms"); //todo review for boot image size reduction // addCompileHighOptLevel("sun.misc"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <cr...@us...> - 2010-10-02 13:42:58
|
Revision: 5758 http://jnode.svn.sourceforge.net/jnode/?rev=5758&view=rev Author: crawley Date: 2010-10-02 13:42:51 +0000 (Sat, 02 Oct 2010) Log Message: ----------- Some refactoring of code that uses 'compileHighOptLevelPackages'. Modified Paths: -------------- trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java Modified: trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java =================================================================== --- trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java 2010-10-02 09:48:09 UTC (rev 5757) +++ trunk/builder/src/builder/org/jnode/build/AbstractBootImageBuilder.java 2010-10-02 13:42:51 UTC (rev 5758) @@ -995,18 +995,16 @@ * @return {@code true} if it should, {@code false} if not. */ protected boolean isCompileHighOptLevel(VmType<?> vmClass) { - if (vmClass.isArray()) { - return true; - } - - final String name = vmClass.getName(); + return vmClass.isArray() || isCompileHighOptLevel(vmClass.getName()); + } + + private boolean isCompileHighOptLevel(String name) { if (compileHighOptLevelPackages.contains(name)) { return true; } final int lastDotIdx = name.lastIndexOf('.'); - final String pkg = (lastDotIdx > 0) ? name.substring(0, lastDotIdx) - : ""; + final String pkg = (lastDotIdx > 0) ? name.substring(0, lastDotIdx) : ""; if (compileHighOptLevelPackages.contains(pkg)) { return true; @@ -1022,6 +1020,8 @@ return false; } + + /** * Link all undefined symbols from the kernel native code. @@ -1110,39 +1110,14 @@ if (eName.endsWith(".class")) { final String cName = eName.substring(0, eName.length() - ".class".length()).replace('/', '.'); - boolean load = false; - - if (compileHighOptLevelPackages.contains(cName)) { - load = true; - } else if (preloadPackages.contains(cName)) { - load = true; - } - final int lastDotIdx = cName.lastIndexOf('.'); - final String pkg = (lastDotIdx > 0) ? cName.substring(0, - lastDotIdx) : ""; - - if (compileHighOptLevelPackages.contains(pkg)) { - load = true; - } else if (preloadPackages.contains(pkg)) { - load = true; - } else { - for (String s : compileHighOptLevelPackages) { - if (s.endsWith("*")) { - if (cName.startsWith(s.substring(0, s.length() - 1))) { - load = true; - break; - } - } - } - } - - if (load) { + final String pkg = (lastDotIdx > 0) ? cName.substring(0, lastDotIdx) : ""; + if (isCompileHighOptLevel(cName) || + preloadPackages.contains(cName) || preloadPackages.contains(pkg)) { loadClass(cName, true); } } } - } protected abstract void logStatistics(NativeStream os); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |