On Wed, Oct 26, 2011 at 12:41 AM, Will Dietz <span dir="ltr"><<a href="mailto:wdietz2@illinois.edu">wdietz2@illinois.edu</a>></span> wrote:<br><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
Inlined below.<br>
<br>
This patch does raise the following question:<br>
<br>
When precompiling, is the goal/claim that *every* class offered from<br>
the boot classpath is compiled?<br></blockquote><div><br></div><div>No. And yes :) The classes are actually not compiled. All classes are just stored in binary in the generated executable. The reason for doing that is that you avoid parsing a zip file at startup, so startup is faster.</div>
<div>  </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
If not, then this patch makes sense--if so, then I have some work to do :).<br></blockquote><div><br></div><div>I think you have some work to do :) But you should know the boot classpath when compiling J3 right?</div><div>
 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<br>
~Will<br>
<br>
>From 8f6b60cc84257f808a11e888394f710180924bae Mon Sep 17 00:00:00 2001<br>
From: Will Dietz <<a href="mailto:w@wdtz.org">w@wdtz.org</a>><br>
Date: Tue, 25 Oct 2011 17:36:21 -0500<br>
Subject: [PATCH] Always use bootClasspathEnv regardless of precompiled.<br>
<br>
---<br>
 lib/J3/VMCore/JnjvmClassLoader.cpp |    8 ++++----<br>
 1 files changed, 4 insertions(+), 4 deletions(-)<br>
<br>
diff --git a/lib/J3/VMCore/JnjvmClassLoader.cpp<br>
b/lib/J3/VMCore/JnjvmClassLoader.cpp<br>
index acea822..dc8d0af 100644<br>
--- a/lib/J3/VMCore/JnjvmClassLoader.cpp<br>
+++ b/lib/J3/VMCore/JnjvmClassLoader.cpp<br>
@@ -72,13 +72,13 @@<br>
JnjvmBootstrapLoader::JnjvmBootstrapLoader(mvm::BumpPtrAllocator&<br>
Alloc,<br>
   if (dlLoad) {<br>
     bootLoaded = Precompiled::Init(this);<br>
   }<br>
-<br>
+<br>
+  // Analyze the boot classpath<br>
+  analyseClasspathEnv(bootClasspathEnv);<br></blockquote><div><br></div><div>This should really stay in the if (!bootLoaded) test. It actually parses the zip files on the boot classpath, which does have an impact on startup time.</div>
<div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
+<br>
   if (!bootLoaded) {<br>
     classes = new(allocator, "ClassMap") ClassMap();<br>
     hashUTF8 = new(allocator, "UTF8Map") UTF8Map(allocator);<br>
-    // Analyze the boot classpath, we know bootstrap classes are not in the<br>
-    // executable.<br>
-    analyseClasspathEnv(bootClasspathEnv);<br>
<br>
     // Allocate the interfaces array for array classes, so that VT construction<br>
     // can use it right away.<br>
<font color="#888888">--<br>
1.7.5.1<br>
_______________________________________________<br>
vmkit-commits mailing list<br>
<a href="mailto:vmkit-commits@cs.uiuc.edu">vmkit-commits@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/vmkit-commits" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/vmkit-commits</a><br>
</font></blockquote></div><br>