You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@harmony.apache.org by ap...@apache.org on 2006/11/15 11:40:04 UTC
svn commit: r475189 [3/3] - in /incubator/harmony/standard/site: docs/
docs/documentation/ docs/subcomponents/buildtest/
docs/subcomponents/classlibrary/ docs/subcomponents/drlvm/
docs/subcomponents/jchevm/ docs/subcomponents/stresstest/ xdocs/styleshe...
Modified: incubator/harmony/standard/site/docs/subcomponents/classlibrary/index.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/subcomponents/classlibrary/index.html?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/docs/subcomponents/classlibrary/index.html (original)
+++ incubator/harmony/standard/site/docs/subcomponents/classlibrary/index.html Wed Nov 15 02:40:02 2006
@@ -204,25 +204,18 @@
</ul>
</td>
<td width="80%" valign="top"><a name="top"></a>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Apache Harmony Class Library">Apache Harmony Class Library</a>
- </h1>
- </td></tr>
- <tr><td>
- <p>
+ <h1>
+ <a name="Apache Harmony Class Library">Apache Harmony Class Library</a>
+ </h1>
+ <p>
The following documentation links are specific to the class library effort underway at Apache Harmony.
</p>
-
- <tr><td>
- <h2>
- <a name="Developing and Building the Code">Developing and Building the Code</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <ul>
+
+ <h2>
+ <a name="Developing and Building the Code">Developing and Building the Code</a>
+ </h2>
+
+ <ul>
<li>
<a href="../../quickhelp_contributors.html">Getting Started For Contributors</a>
<br />
@@ -245,18 +238,13 @@
</li>
</ul>
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="Project Conventions">Project Conventions</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <ul>
+
+
+ <h2>
+ <a name="Project Conventions">Project Conventions</a>
+ </h2>
+
+ <ul>
<li><a href="pkgnaming.html">Java Package Naming Guidelines</a>
<br />
Guidelines for Harmony package naming convention.
@@ -293,18 +281,13 @@
</li>
</ul>
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="Architecture and Guides">Architecture and Guides</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <ul>
+
+
+ <h2>
+ <a name="Architecture and Guides">Architecture and Guides</a>
+ </h2>
+
+ <ul>
<li>
<a href="asn1_framework.html">Harmony ASN1 Framework</a>
@@ -346,13 +329,8 @@
</li>
</ul>
-
- </td></tr>
-
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
+
+ <p><a href="#top">Back to top</a></p>
</td>
</tr>
Modified: incubator/harmony/standard/site/docs/subcomponents/classlibrary/pkgnaming.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/subcomponents/classlibrary/pkgnaming.html?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/docs/subcomponents/classlibrary/pkgnaming.html (original)
+++ incubator/harmony/standard/site/docs/subcomponents/classlibrary/pkgnaming.html Wed Nov 15 02:40:02 2006
@@ -204,69 +204,57 @@
</ul>
</td>
<td width="80%" valign="top"><a name="top"></a>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Package Naming Conventions Used in the Apache Harmony Class Library">Package Naming Conventions Used in the Apache Harmony Class Library</a>
- </h1>
- </td></tr>
- <tr><td>
- <p>
+ <h1>
+ <a name="Package Naming Conventions Used in the Apache Harmony Class Library">Package Naming Conventions Used in the Apache Harmony Class Library</a>
+ </h1>
+ <p>
<small><em>This section is inspired by, and derived from,
<a href="http://wiki.eclipse.org/index.php/Naming_Conventions">the Eclipse package naming convention</a>
documentation.</em></small>
</p>
- <p>
+ <p>
The Harmony class library code is organized into Java packages comprising the
public API (packages such as <code>java.lang</code>, <code>org.omg.CORBA</code>
and so on) and internal implementation packages that all begin
<code>org.apache.harmony</code>.
</p>
- <p>
+ <p>
The public APIs are defined by the JSE specification, and as such as managed beyond
the direct control of the Apache Harmony project. The other packages are managed
by the project development team, and as such the project attributes the following
meaning to package names.
</p>
-
- <tr><td>
- <h2>
- <a name="All Packages Belong to a Specific Module">All Packages Belong to a Specific Module</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+
+ <h2>
+ <a name="All Packages Belong to a Specific Module">All Packages Belong to a Specific Module</a>
+ </h2>
+
+ <p>
Each Java package is owned by a specific module of the Harmony class library.
The module name immediately follows the <code>org.apache.harmony</code> prefix.</p>
- <pre>org.apache.harmony.<b><module></b></pre>
- <p class="example">
+ <pre>org.apache.harmony.<b><module></b></pre>
+ <p class="example">
Example
</p>
- <p class="exampletext">
+ <p class="exampletext">
<pre>org.apache.harmony.luni
org.apache.harmony.security</pre>
</p>
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="Package Names within a Module">Package Names within a Module</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+
+
+ <h2>
+ <a name="Package Names within a Module">Package Names within a Module</a>
+ </h2>
+
+ <p>
Modules are free to use whatever package names they choose with the
prefix <code>org.apache.harmony.<b><modulename></b></code>.
</p>
- <p>
+ <p>
The following package name segements are <b>reserved</b> to indicate the meanings
defined below:</p>
- <ul>
+ <ul>
<li><code>org.apache.harmony.<modulename>.<b>internal</b></code>
<p>
Packages with this prefix are implementation packages for use within
@@ -293,7 +281,7 @@
be referenced from any module.
</p></li>
</ul>
- <p>
+ <p>
In practice, this means that module developers are free to change the code within an
<code>internal</code> package without expecting any consequences beyond the module
itself. However, module developers who modify code that is not in an
@@ -301,13 +289,8 @@
<a href="http://java.sun.com/docs/books/jls/second_edition/html/binaryComp.doc.html">
Java binary compatibility</a>.
</p>
-
- </td></tr>
-
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
+
+ <p><a href="#top">Back to top</a></p>
</td>
</tr>
Modified: incubator/harmony/standard/site/docs/subcomponents/classlibrary/ser_testing.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/subcomponents/classlibrary/ser_testing.html?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/docs/subcomponents/classlibrary/ser_testing.html (original)
+++ incubator/harmony/standard/site/docs/subcomponents/classlibrary/ser_testing.html Wed Nov 15 02:40:02 2006
@@ -204,38 +204,31 @@
</ul>
</td>
<td width="80%" valign="top"><a name="top"></a>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Framework for Testing Serialization">Framework for Testing Serialization</a>
- </h1>
- </td></tr>
- <tr><td>
- <p>
+ <h1>
+ <a name="Framework for Testing Serialization">Framework for Testing Serialization</a>
+ </h1>
+ <p>
<big><em>The framework for testing serialization is currently PROPOSED and being
discussed on the development mailing list <code>harmony-dev@incubator.apache.org</code>.
Please direct comments and questions there.</em></big>
</p>
- <p>
+ <p>
The framework for testing serialization is intended to simplify and formalize
development of serialization tests. This document contains guidelines for
creating tests and <a href="#conventions">conventions</a> for resource files.
</p>
-
- <tr><td>
- <h2>
- <a name="Guidelines for Developing Serialization Tests">Guidelines for Developing Serialization Tests</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+
+ <h2>
+ <a name="Guidelines for Developing Serialization Tests">Guidelines for Developing Serialization Tests</a>
+ </h2>
+
+ <p>
The testing framework provides the support class
<code>org.apache.harmony.testframework.serialization.SerializationTest</code>
for serialization testing.
</p>
- <h3>Compatibility Testing</h3>
- <p>Verifies that an object serialized on certified implementation is
+ <h3>Compatibility Testing</h3>
+ <p>Verifies that an object serialized on certified implementation is
correctly deserialized on Harmony implementation.<br />
The support class provides four methods for compatibility testing:
<ul><code>
@@ -244,14 +237,14 @@
<li>verifyGolden(TestCase, Object[])</li>
<li>verifyGolden(TestCase, Object[], <a href="#assert">SerializableAssert</a>)</li>
</code></ul></p>
- <p>The first parameter <code>TestCase</code> is used to locate resource
+ <p>The first parameter <code>TestCase</code> is used to locate resource
file(s) that contains serialized object(s).<br />
The second parameter is an object
or an array of objects to be compared with object(s) deserialized from
resource file(s).<br />
The third parameter is optional.</p>
- <p>To create a <em>compatibility</em> test for selected class, a developer should:</p>
- <ul>
+ <p>To create a <em>compatibility</em> test for selected class, a developer should:</p>
+ <ul>
<li>
Serialize object(s) on certified implementation, store serialized
form(s) in resource file(s) and place it(them) according to the <a href="#conventions">
@@ -265,28 +258,28 @@
Invoke one of the methods, mentioned above, with corresponding arguments
</li>
</ul>
- <p class="example">Example</p>
- <pre>
+ <p class="example">Example</p>
+ <pre>
public void testSerializationCompatibility()
throws Exception {
SerializationTest.verifyGolden(this, new SomeSerializableClass());
}
</pre>
- <h3>Self-Testing</h3>
- <p>Verifies that an object can be smoothly serialized and deserialized on
+ <h3>Self-Testing</h3>
+ <p>Verifies that an object can be smoothly serialized and deserialized on
Harmony implementation.<br />
The support class provides four methods for self-testing:</p>
- <ul><code>
+ <ul><code>
<li>verifySelf(Object)</li>
<li>verifySelf(Object, <a href="#assert">SerializableAssert</a>)</li>
<li>verifySelf(Object[])</li>
<li>verifySelf(Object[], <a href="#assert">SerializableAssert</a>)</li>
</code></ul>
- <p>The provided object(s) is(are) serialized/deserialized and compared with
+ <p>The provided object(s) is(are) serialized/deserialized and compared with
initial object(s).</p>
- <p>To create a <em>self</em> test for a selected class, a developer should:</p>
- <ul>
+ <p>To create a <em>self</em> test for a selected class, a developer should:</p>
+ <ul>
<li>
Add the <code>testSerializationSelf</code> method to a unit test
</li>
@@ -295,36 +288,31 @@
Invoke one of the methods with corresponding arguments
</li>
</ul>
- <p class="example">Example</p>
- <pre>
+ <p class="example">Example</p>
+ <pre>
public void testSerializationSelf() throws Exception {
SerializationTest.verifySelf(new SomeSerializableClass(),
new MyComparator());
}
</pre>
- <h3>Negative Testing</h3>
- <big><em>TBD</em></big>
- <p class="class">Interface <a name="assert"><code>SerializableAssert</code></a></p>
- <p> If a class of object(s) to be compared does not have
+ <h3>Negative Testing</h3>
+ <big><em>TBD</em></big>
+ <p class="class">Interface <a name="assert"><code>SerializableAssert</code></a></p>
+ <p> If a class of object(s) to be compared does not have
equals(Object) method or the testing framework can not find appropriate comparator, a
test has to implement the interface. The interface has only
one method to be implemented:</p>
- <pre>void assertDeserialized(Serializable reference, Serializable test);</pre>
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="Placement and Naming Conventions for Resource Files">Placement and Naming Conventions for Resource Files</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+ <pre>void assertDeserialized(Serializable reference, Serializable test);</pre>
+
+
+ <h2>
+ <a name="Placement and Naming Conventions for Resource Files">Placement and Naming Conventions for Resource Files</a>
+ </h2>
+
+ <p>
The resource files should follow the next <a name="conventions">conventions</a>:</p>
- <ul>
+ <ul>
<li>Root folder for resource files is <code><module root>/src/test/resources/serialization</code>
</li>
@@ -376,13 +364,8 @@
</pre></li>
</ul>
-
- </td></tr>
-
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
+
+ <p><a href="#top">Back to top</a></p>
</td>
</tr>
Modified: incubator/harmony/standard/site/docs/subcomponents/classlibrary/status.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/subcomponents/classlibrary/status.html?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/docs/subcomponents/classlibrary/status.html (original)
+++ incubator/harmony/standard/site/docs/subcomponents/classlibrary/status.html Wed Nov 15 02:40:02 2006
@@ -204,14 +204,10 @@
</ul>
</td>
<td width="80%" valign="top"><a name="top"></a>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Class Library Component Status">Class Library Component Status</a>
- </h1>
- </td></tr>
- <tr><td>
- <p>
+ <h1>
+ <a name="Class Library Component Status">Class Library Component Status</a>
+ </h1>
+ <p>
Stuart Ballard of the Kaffe project is generously creating automated coverage comparisons
of
<a href="http://www.kaffe.org/~stuart/japi/htmlout/h-jdk14-harmony.html">JDK 1.4</a>
@@ -220,10 +216,7 @@
against the
<a href="http://cvs.apache.org/dist/incubator/harmony/snapshots/">Harmony class library snapshots.</a>
</p>
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
+ <p><a href="#top">Back to top</a></p>
</td>
</tr>
Modified: incubator/harmony/standard/site/docs/subcomponents/classlibrary/testing.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/subcomponents/classlibrary/testing.html?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/docs/subcomponents/classlibrary/testing.html (original)
+++ incubator/harmony/standard/site/docs/subcomponents/classlibrary/testing.html Wed Nov 15 02:40:02 2006
@@ -204,77 +204,65 @@
</ul>
</td>
<td width="80%" valign="top"><a name="top"></a>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Testing Conventions Used in the Apache Harmony Class Library">Testing Conventions Used in the Apache Harmony Class Library</a>
- </h1>
- </td></tr>
- <tr><td>
- <p>
+ <h1>
+ <a name="Testing Conventions Used in the Apache Harmony Class Library">Testing Conventions Used in the Apache Harmony Class Library</a>
+ </h1>
+ <p>
This document describes PROPOSED placement and package naming conventions for
different types of Harmony class library tests.
</p>
- <p>
+ <p>
The Harmony class library code is organized into modules that might have their own
specifics. This document provides general guidlines and recomendations that might be
adapted/modified to reflect module specifics.
</p>
- <p>
+ <p>
See also: <a href="ser_testing.html">Framework for Testing Serialization</a>
</p>
-
- <tr><td>
- <h2>
- <a name="Location of the Tests in the Directory Tree">Location of the Tests in the Directory Tree</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+
+ <h2>
+ <a name="Location of the Tests in the Directory Tree">Location of the Tests in the Directory Tree</a>
+ </h2>
+
+ <p>
Each Java class belongs to a specific module of the Harmony class library. Tests against
classes belonging to a module belong to the same module. Tests, their resources, and support
classes are located under: </p>
- <pre><modulename>/src/test</pre>
- <p>Tests that are specific for Harmony, testing Harmony implementation details, and may fail
+ <pre><modulename>/src/test</pre>
+ <p>Tests that are specific for Harmony, testing Harmony implementation details, and may fail
on RI or other compliant implementations are separated from the imlpementation-independent
tests that must pass on RI and all conformant implementations.</p>
- <pre><modulename>/src/test/<b>impl</b> - Harmony specific tests<br />
+ <pre><modulename>/src/test/<b>impl</b> - Harmony specific tests<br />
<modulename>/src/test/<b>api</b> - Implementation-independent tests</pre>
- <p>Special-purpose tests like stress tests or tests that require special configuration are
+ <p>Special-purpose tests like stress tests or tests that require special configuration are
separated from general-purpose tests.</p>
- <pre><modulename>/src/test/<b>stress</b></pre>
- <p>Tests are not separated by functionality under test, for example, tests against <code>clone()</code>
+ <pre><modulename>/src/test/<b>stress</b></pre>
+ <p>Tests are not separated by functionality under test, for example, tests against <code>clone()</code>
methods are <b>not</b> separated from tests against <code>equals()</code> methods.
Classpath tests are separated from bootclasspath tests on a directory level:</p>
- <pre><modulename>/src/test/api/<b>java</b> - Classpath tests<br />
+ <pre><modulename>/src/test/api/<b>java</b> - Classpath tests<br />
<modulename>/src/test/api/<b>java.injected</b> - Bootclasspath tests</pre>
- <p> Find more details <a href="#Package and Class Names for Different Types of the Tests">
+ <p> Find more details <a href="#Package and Class Names for Different Types of the Tests">
below</a>.</p>
- <p>Some modules might have platform specific tests that are in the case separated on a directory
+ <p>Some modules might have platform specific tests that are in the case separated on a directory
level:</p>
- <pre><modulename>/src/test/api/<b>common</b><br />
+ <pre><modulename>/src/test/api/<b>common</b><br />
<modulename>/src/test/api/<b>windows</b><br />
<modulename>/src/test/api/<b>linux</b></pre>
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="Package and Class Names for Different Types of the Tests">Package and Class Names for Different Types of the Tests</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+
+
+ <h2>
+ <a name="Package and Class Names for Different Types of the Tests">Package and Class Names for Different Types of the Tests</a>
+ </h2>
+
+ <p>
If the test is designed to be run from bootclasspath, then its package is the same
as the package of the class under the test.
</p>
- <p>
+ <p>
If the test is designed to be run from classpath then:</p>
- <ol>
+ <ol>
<li>If the package under test belongs to a public package, for example, it
is a part of the API specification, then the test's package is:
<pre>org.apache.harmony.<modulename>.tests.<b><package under test></b></pre>
@@ -295,23 +283,18 @@
<code>org.apache.harmony.luni.tests.internal.net.www.protocol</code> - package for the test</p>
</li></ol>
- <p>
+ <p>
To avoid collision of test results for various type of tests, reflect a test type in a test name.</p>
- <p class="example">Example</p>
- <p class="notetext">To separate the <code>impl</code> test results from
+ <p class="example">Example</p>
+ <p class="notetext">To separate the <code>impl</code> test results from
the <code>api</code> ones, the <code>impl</code> test names end with
<code>_ImplTest</code>:<br />
<code>javax.crypto.<b>CipherTest</b></code> - Implementation independent bootclasspath
test for <code>javax.crypto.Cipher</code><br />
<code>javax.crypto.<b>Cipher_ImplTest</b></code> - Implementation specific bootclasspath
test for <code>javax.crypto.Cipher</code></p>
-
- </td></tr>
-
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
+
+ <p><a href="#top">Back to top</a></p>
</td>
</tr>
Modified: incubator/harmony/standard/site/docs/subcomponents/drlvm/emguide.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/subcomponents/drlvm/emguide.html?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/docs/subcomponents/drlvm/emguide.html (original)
+++ incubator/harmony/standard/site/docs/subcomponents/drlvm/emguide.html Wed Nov 15 02:40:02 2006
@@ -204,39 +204,27 @@
</ul>
</td>
<td width="80%" valign="top"><a name="top"></a>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Guide to Execution Manager Configuration">Guide to Execution Manager Configuration</a>
- </h1>
- </td></tr>
- <tr><td>
-
- <tr><td>
- <h2>
- <a name="Contents">Contents</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <ol>
+ <h1>
+ <a name="Guide to Execution Manager Configuration">Guide to Execution Manager Configuration</a>
+ </h1>
+
+ <h2>
+ <a name="Contents">Contents</a>
+ </h2>
+
+ <ol>
<li><a href="#1. What is EM?">What is EM?</a></li>
<li><a href="#2. EM Configuration File">EM Configuration File</a></li>
<li><a href="#3. EM Tracing Options">EM tracing options</a></li>
<li><a href="#4. More EM Configuration Samples">More EM Configuration Samples</a></li>
</ol>
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="1. What is EM?">1. What is EM?</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+
+
+ <h2>
+ <a name="1. What is EM?">1. What is EM?</a>
+ </h2>
+
+ <p>
Execution Manager (EM) is a component in DRLVM that controls
profile collection and recompilation processes.
<br />
@@ -244,18 +232,13 @@
<a href="http://svn.apache.org/viewcvs.cgi/*checkout*/incubator/harmony/enhanced/drlvm/trunk/vm/doc/DeveloperGuide.htm#EM">
DRLVM Developers Guide</a>
</p>
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="2. EM Configuration File">2. EM Configuration File</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+
+
+ <h2>
+ <a name="2. EM Configuration File">2. EM Configuration File</a>
+ </h2>
+
+ <p>
The set of JIT compilers and profile collectors used at run time and their
relations is stored in the <i>EM configuration file</i>.
During the VM initialization phase, EM uses hard-coded configuration or reads
@@ -268,13 +251,13 @@
or <br />
<code>-Dem.properties=<configuration.file.path></code>
</p>
- <p>
+ <p>
The following is a line-by-line description of the default EM configuration.
These configuration settings can be used as a prototype to create
new custom EM configuration files.
The default configuration is:
</p>
- <p><pre>
+ <p><pre>
chains=chain1,chain2
chain1.jits=JET_CLINIT
@@ -295,22 +278,22 @@
JET_DPGO_PROFILE.entryThreshold=10000
JET_DPGO_PROFILE.backedgeThreshold=100000
</pre></p>
- <p>A line-by-line description of the settings follows. </p>
- <pre>
+ <p>A line-by-line description of the settings follows. </p>
+ <pre>
chains=chain1,chain2
</pre>
- <p>
+ <p>
Every EM configuration file must define the <code>chains</code> property
to indicate sequences of JIT compilers to be used to compile and/or recompile
a method. In this example, two recompilation chains are set for the system:
<code>chain1</code> and <code>chain2</code>. EM analyzes chains until it has
chosen the chain for the method.
</p>
- <pre>
+ <pre>
chain1.jits=JET_CLINIT
chain2.jits=JET_DPGO,OPT
</pre>
- <p>
+ <p>
In this case, <code>chain1</code> has one JIT compiler
<code>JET_CLINIT</code>, and <code>chain2</code> has
two compilers: <code>JET_DPGO</code> and <code>OPT</code>.
@@ -319,17 +302,17 @@
A compiler instance can use its name to distinguish between
its own properties and those of other JITs. <br />
</p>
- <p>
+ <p>
<b>Note:</b> Jitrino, the current default DRLVM JIT compiler,
selects Jitrino.JET (fast, non-optimizing compiler) if the name
starts with the <code>JET</code> prefix. Otherwise, the JIT
instance is treated as Jitrino.OPT.
</p>
- <pre>
+ <pre>
chain1.filter=+::<clinit>
chain1.filter=-
</pre>
- <p>
+ <p>
Method filters are used to select methods that will be compiled
by the first JIT in a chain.
In this example, the first line configures <code>chain1</code>
@@ -349,8 +332,8 @@
<br />
Here is a format of all currently supported method filters.
</p>
- <br />
- <table>
+ <br />
+ <table>
<tr>
<td class="TableCell" colspan="" rowspan="" >
@@ -438,28 +421,28 @@
</td>
</tr>
</table>
- <br />
- <p>
+ <br />
+ <p>
<b>Note:</b> The sequential method number could be changed from run
to run in multithreaded environments.
</p>
- <p><pre>
+ <p><pre>
JET_CLINIT.file=<path to dll>
JET_DPGO.file=<path to dll>
OPT.file=<path to dll>
</pre></p>
- <p>
+ <p>
For every JIT, the configuration file must define the location of the library
file location.
Multiple JIT compilers can be associated with the same library.
For example, all paths can point to the same jit.dll file.
</p>
- <p><pre>
+ <p><pre>
JET_DPGO.genProfile=JET_DPGO_PROFILE
JET_DPGO_PROFILE.profilerType=ENTRY_BACKEDGE_PROFILER
OPT.useProfile=JET_DPGO_PROFILE
</pre></p>
- <p>
+ <p>
These settings define profile collection and recompilation event
configuration for two JIT compilers: <code>JET_DPGO</code>
and <code>OPT</code>.
@@ -483,12 +466,12 @@
<li>Registers the profile collector as active. </li>
</ol>
</p>
- <p><pre>
+ <p><pre>
JET_DPGO_PROFILE. mode=SYNC
JET_DPGO_PROFILE.entryThreshold=10000
JET_DPGO_PROFILE.backedgeThreshold=100000
</pre></p>
- <p>
+ <p>
The last 4 lines contain the configuration of the <code>JET_DPGO_PROFILE</code>
profiler. These properties are specific for every profile collector type.
The first option runs entry-backedge profile mode in the SYNC mode: counters
@@ -497,18 +480,13 @@
threshold. Once the profile is ready, EM dispatches the method for
recompilation with the next JIT in the current chain.
</p>
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="3. EM Tracing Options">3. EM Tracing Options</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+
+
+ <h2>
+ <a name="3. EM Tracing Options">3. EM Tracing Options</a>
+ </h2>
+
+ <p>
Use the following command-line options to trace EM events:
<br />
<code>-verbose:em</code> dumps all EM events.<br />
@@ -517,10 +495,10 @@
<code>-verbose:em.profiler.PROFILER_NAME</code> dumps only profiler
"<code>PROFILER_NAME</code>" related events.<br />
</p>
- <p class="example">
+ <p class="example">
Example
</p>
- <p class="exampletext">
+ <p class="exampletext">
For the default EM configuration file,
<br /><code>
-verbose:em.OPT
@@ -528,15 +506,15 @@
Jitrino.OPT. According to the configuration details, these methods
are hot methods.
</p>
- <p class="exampletext">Alternatively, you can get almost the same information by using
+ <p class="exampletext">Alternatively, you can get almost the same information by using
the following:
<br /><code>
-verbose:em.profiler.JET_DPGO_PROFILE
</code><br /> additionally dumps information about hot method profiles.
</p>
- <p class="example">Examples of output:</p>
- <br />
- <code>
+ <p class="example">Examples of output:</p>
+ <br />
+ <code>
C:\tools\decapo>c:\tools\harmony0706\bin\java.exe -verbose:em.OPT -jar dacapo-beta051009.jar xalan<br />
EM: recompile start:[OPT n=1] java/io/ByteArrayOutputStream::write(I)V<br />
EM: recompile done:[OPT n=1] java/io/ByteArrayOutputStream::write(I)V<br />
@@ -555,19 +533,14 @@
EM: profiler[JET_DPGO_PROFILE] profile is ready [e:10000 b:0] java/util/HashMap::getModuloHash(Ljava/lang/Object;)I<br />
... <br />
</code>
- <br />
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="4. More EM Configuration Samples">4. More EM Configuration Samples</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+ <br />
+
+
+ <h2>
+ <a name="4. More EM Configuration Samples">4. More EM Configuration Samples</a>
+ </h2>
+
+ <p>
DRLVM has several EM configurations supplied in the following files:
<code>client.emconf</code> (the default), <code>opt.emconf</code>, <code>jet.emconf</code>,
<code>server.emconf</code> and <code>server_static.emconf</code>.<br />
@@ -577,33 +550,33 @@
prefix in the name is a Jitrino.JET instance. <br />
Another difference in these configurations are options passed to the JIT compiler.
</p>
- <p><i>These configurations have only one JIT and no profile collection or recompilation.</i></p>
- <p><b>
+ <p><i>These configurations have only one JIT and no profile collection or recompilation.</i></p>
+ <p><b>
<code>-Xem:jet</code> - the baseline compiler mode configuration</b></p>
- <p><pre>
+ <p><pre>
chains=chain1
chain1.jits=JET
JET.file=<path to dll>
</pre></p>
- <p><b>
+ <p><b>
<code>-Xem:opt</code> - the client-static mode configuration</b></p>
- <p><pre>
+ <p><pre>
chains=chain1
chain1.jits=CS_OPT
OPT.file=<path to dll>
</pre></p>
- <p><b>
+ <p><b>
<code>-Xem:server_static</code> - the server-static mode configuration</b></p>
- <p><pre>
+ <p><pre>
chains=chain1
chain1.jits=SS_OPT
OPT.file=<path to dll>
</pre></p>
- <br />
- <p><i>These configurations use recompilation and collect profiles.</i></p>
- <p><b>
+ <br />
+ <p><i>These configurations use recompilation and collect profiles.</i></p>
+ <p><b>
<code>-Xem:client</code> - the default configuration, or client dynamic</b></p>
- <p><pre>
+ <p><pre>
chains=chain1,chain2
chain1.jits=JET_CLINIT
chain2.jits=JET_DPGO,CD_OPT
@@ -629,9 +602,9 @@
EB_PROF.entryThreshold=10000
EB_PROF.backedgeThreshold=100000
</pre></p>
- <p><b>
+ <p><b>
<code>-Xem:server</code> - the server mode configuration, or server dynamic</b></p>
- <p><pre>
+ <p><pre>
chains=chain1,chain2
chain1.jits=JET_CLINIT
chain2.jits=SD1_OPT,SD2_OPT
@@ -653,18 +626,13 @@
SD1_OPT.genProfile=EDGE_PROF
SD2_OPT.useProfile=EDGE_PROF
</pre></p>
- <p class="note">Note</p>
- <p class="notetext">To run VM in the intereter mode, use the <code>-Xint</code>
+ <p class="note">Note</p>
+ <p class="notetext">To run VM in the intereter mode, use the <code>-Xint</code>
command-line option to override any other EM settings. Currently, DRLVM does
not support the mixed mode of the JIT compiler plus interpreter.
</p>
-
- </td></tr>
-
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
+
+ <p><a href="#top">Back to top</a></p>
</td>
</tr>
Modified: incubator/harmony/standard/site/docs/subcomponents/drlvm/index.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/subcomponents/drlvm/index.html?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/docs/subcomponents/drlvm/index.html (original)
+++ incubator/harmony/standard/site/docs/subcomponents/drlvm/index.html Wed Nov 15 02:40:02 2006
@@ -204,21 +204,17 @@
</ul>
</td>
<td width="80%" valign="top"><a name="top"></a>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="DRLVM">DRLVM</a>
- </h1>
- </td></tr>
- <tr><td>
- <p>
+ <h1>
+ <a name="DRLVM">DRLVM</a>
+ </h1>
+ <p>
DRLVM stands for Dynamic Runtime Layer Virtual Machine, a clean-room implementation of the J2SE 1.5.0
virtual machine.
</p>
- <p>
+ <p>
Key goals of DRL include the following:
</p>
- <ul>
+ <ul>
<li><em>Modularity:</em> Functionality is grouped into a limited number of
coarse-grained modules with well defined interfaces. </li>
<li><em>Pluggability:</em> Module implementations can be replaced at compile time or run time.
@@ -226,19 +222,16 @@
<li><em>Consistency:</em> Interfaces are consistent across platforms. </li>
<li><em>Performance:</em> Interfaces fully enable implementation of modules optimized for specific target platforms.</li>
</ul>
- <p>
+ <p>
The following documentation links are specific to the DRLVM virtual machine
effort underway at Apache Harmony.
</p>
-
- <tr><td>
- <h2>
- <a name="Developing and Building the code">Developing and Building the code</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <ul>
+
+ <h2>
+ <a name="Developing and Building the code">Developing and Building the code</a>
+ </h2>
+
+ <ul>
<li>
<a href="https://svn.apache.org/viewcvs.cgi/*checkout*/incubator/harmony/enhanced/drlvm/trunk/README.txt" target="_blank">README</a>
<br />
@@ -275,18 +268,13 @@
</li>
</ul>
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="Architecture and Component Documentation">Architecture and Component Documentation</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <ul>
+
+
+ <h2>
+ <a name="Architecture and Component Documentation">Architecture and Component Documentation</a>
+ </h2>
+
+ <ul>
<li>
<a href="developers_guide.html">Developer's Guide</a>
@@ -321,13 +309,8 @@
</ul>
</ul>
-
- </td></tr>
-
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
+
+ <p><a href="#top">Back to top</a></p>
</td>
</tr>
Modified: incubator/harmony/standard/site/docs/subcomponents/jchevm/index.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/subcomponents/jchevm/index.html?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/docs/subcomponents/jchevm/index.html (original)
+++ incubator/harmony/standard/site/docs/subcomponents/jchevm/index.html Wed Nov 15 02:40:02 2006
@@ -204,20 +204,13 @@
</ul>
</td>
<td width="80%" valign="top"><a name="top"></a>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Apache Harmony Class Library">Apache Harmony Class Library</a>
- </h1>
- </td></tr>
- <tr><td>
- <p>
+ <h1>
+ <a name="Apache Harmony Class Library">Apache Harmony Class Library</a>
+ </h1>
+ <p>
Lets talk about JCHE VM
</p>
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
+ <p><a href="#top">Back to top</a></p>
</td>
</tr>
Modified: incubator/harmony/standard/site/docs/subcomponents/stresstest/index.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/subcomponents/stresstest/index.html?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/docs/subcomponents/stresstest/index.html (original)
+++ incubator/harmony/standard/site/docs/subcomponents/stresstest/index.html Wed Nov 15 02:40:02 2006
@@ -204,19 +204,15 @@
</ul>
</td>
<td width="80%" valign="top"><a name="top"></a>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Test Design">Test Design</a>
- </h1>
- </td></tr>
- <tr><td>
- <p>
+ <h1>
+ <a name="Test Design">Test Design</a>
+ </h1>
+ <p>
<big><em>The following guidelines are currently PROPOSED and being discussed on the
development mailing list <code>harmony-dev@incubator.apache.org</code>. Please
direct comments and questions there.</em></big>
</p>
- <P>
+ <P>
<UL>
<LI>Stress tests are built from simple building blocks according to configuration strings.
</LI>
@@ -234,18 +230,11 @@
</LI>
</UL>
</P>
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Further Steps">Further Steps</a>
- </h1>
- </td></tr>
- <tr><td>
- <P>
+ <p><a href="#top">Back to top</a></p>
+ <h1>
+ <a name="Further Steps">Further Steps</a>
+ </h1>
+ <P>
<UL>
<LI>Stress tests are expected to generate relevant bugs. Since
usually stress behavior is unspecified, we need to introduce something
@@ -257,38 +246,31 @@
</LI>
</UL>
</P>
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Comparative Approach">Comparative Approach</a>
- </h1>
- </td></tr>
- <tr><td>
- <P>
+ <p><a href="#top">Back to top</a></p>
+ <h1>
+ <a name="Comparative Approach">Comparative Approach</a>
+ </h1>
+ <P>
The simplest example of comparative apporach is the following.
</P>
- <BLOCKQUOTE>
+ <BLOCKQUOTE>
Tester: My test fails on Harmony VM and passes on RI. Please,
fix Harmony VM.
</BLOCKQUOTE>
- <P>
+ <P>
This usually does not work for stress tests.
</P>
- <BLOCKQUOTE>
+ <BLOCKQUOTE>
Developer: Who told you that OutOfMemoryError should be thrown
in your thread? My finalizer thread is just a normal java thread, like
yours, and it can fail as well. You have a bug in your test.
</BLOCKQUOTE>
- <P>
+ <P>
There are multiple reasons why we always will have such bugs in the
tests.
</P>
- <UL>
+ <UL>
<LI>These bugs keep showing up. The time to fix all these bugs
regularly is too high.
</LI>
@@ -301,20 +283,20 @@
<LI>Sometimes Java is not rich enough.
</LI>
</UL>
- <P>
+ <P>
How can we have a maintainable test product takung all this limitation
into account? We need to learn how to live with occasional failures of
the stress tests. This means, instead of fail, the test should better
report how good it is on Harmony VM compared to RI:
</P>
- <UL>
+ <UL>
<LI>Failures with the worst relative metric can be evaluated first</LI>
<LI>We can detect that a relative metric for a test worsened on the recent build</LI>
</UL>
- <P>
+ <P>
Developers are better convinsed to fix "the worst issue" or "dergadation" instead of "some issue".
</P>
- <P>
+ <P>
Several metrics for each test:
<UL>
@@ -335,10 +317,7 @@
</LI>
</UL>
</P>
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
+ <p><a href="#top">Back to top</a></p>
</td>
</tr>
Modified: incubator/harmony/standard/site/docs/svn.html
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/docs/svn.html?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/docs/svn.html (original)
+++ incubator/harmony/standard/site/docs/svn.html Wed Nov 15 02:40:02 2006
@@ -204,14 +204,10 @@
</ul>
</td>
<td width="80%" valign="top"><a name="top"></a>
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="Apache Harmony Source Code">Apache Harmony Source Code</a>
- </h1>
- </td></tr>
- <tr><td>
- <p>
+ <h1>
+ <a name="Apache Harmony Source Code">Apache Harmony Source Code</a>
+ </h1>
+ <p>
The Harmony project uses the
<a href="http://subversion.tigris.org/">Subversion</a> version control
system. If you're new to Subversion, you can check out the
@@ -219,62 +215,49 @@
Note that we are currently using Subversion 1.1.x (there are separate
versions of the book covering 1.0 and 1.1).
</p>
-
- <tr><td>
- <h2>
- <a name="Web Access to Subversion">Web Access to Subversion</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>
+
+ <h2>
+ <a name="Web Access to Subversion">Web Access to Subversion</a>
+ </h2>
+
+ <p>
If you just want to browse the source code, you can use the
<a href="http://svn.apache.org/viewcvs.cgi/incubator/harmony/?root=Apache-SVN">ViewCVS
web interface</a> to Subversion. This is current at all times.
</p>
-
- </td></tr>
-
-
- <tr><td>
- <h2>
- <a name="Normal Subversion Access">Normal Subversion Access</a>
- </h2>
- </td></tr>
- <tr><td>
-
- <p>Anyone can check code out of Subversion. You only need to specify a
+
+
+ <h2>
+ <a name="Normal Subversion Access">Normal Subversion Access</a>
+ </h2>
+
+ <p>Anyone can check code out of Subversion. You only need to specify a
username and password in order to update the Subversion repository, and only
Harmony committers have the permissions to do that. We run Subversion
over standard HTTPS, so hopefully you won't have problems with intervening
firewalls.</p>
- <strong>Check out from Subversion</strong>
- <p>Again, anyone can do this. Use a command like:</p>
- <pre>svn checkout https://svn.apache.org/repos/asf/incubator/harmony</pre>
- <strong>Commit Changes to Subversion</strong>
- <p>
+ <strong>Check out from Subversion</strong>
+ <p>Again, anyone can do this. Use a command like:</p>
+ <pre>svn checkout https://svn.apache.org/repos/asf/incubator/harmony</pre>
+ <strong>Commit Changes to Subversion</strong>
+ <p>
Any Harmony committer should have a shell account on
<tt>svn.apache.org</tt>. Before you can commit, you'll need to set a
Subversion password for yourself. To do that, log in to
<tt>svn.apache.org</tt> and run the command <i>svnpasswd</i>.
</p>
- <p>
+ <p>
Once your password is set, you can use a command like this to commit:
</p>
- <pre>svn commit</pre>
- <p>If Subversion can't figure out your username, you can tell it
+ <pre>svn commit</pre>
+ <p>If Subversion can't figure out your username, you can tell it
explicitly:</p>
- <pre>svn --username you commit</pre>
- <p>Subversion will prompt you for a password, and once you enter it once, it
+ <pre>svn --username you commit</pre>
+ <p>Subversion will prompt you for a password, and once you enter it once, it
will remember it for you. Note this is the password you configured with
<tt>svnpasswd</tt>, not your shell or other password.</p>
-
- </td></tr>
-
-
- </td></tr>
- </table>
- <p><a href="#top">Back to top</a></p>
+
+ <p><a href="#top">Back to top</a></p>
</td>
</tr>
Modified: incubator/harmony/standard/site/xdocs/stylesheets/site.vsl
URL: http://svn.apache.org/viewvc/incubator/harmony/standard/site/xdocs/stylesheets/site.vsl?view=diff&rev=475189&r1=475188&r2=475189
==============================================================================
--- incubator/harmony/standard/site/xdocs/stylesheets/site.vsl (original)
+++ incubator/harmony/standard/site/xdocs/stylesheets/site.vsl Wed Nov 15 02:40:02 2006
@@ -113,26 +113,21 @@
#macro ( subsection $subsection)
- <tr><td>
- <h2>
- <a name="$subsection.getAttributeValue("name")">$subsection.getAttributeValue("name")</a>
- </h2>
- </td></tr>
- <tr><td>
-
- #foreach ( $items in $subsection.getChildren() )
- #if ($items.getName().equals("img"))
- #image ($items)
- #elseif ($items.getName().equals("source"))
- #source ($items)
- #elseif ($items.getName().equals("table"))
- #table ($items)
- #else
- $items
- #end
+ <h2>
+ <a name="$subsection.getAttributeValue("name")">$subsection.getAttributeValue("name")</a>
+ </h2>
+
+ #foreach ( $items in $subsection.getChildren() )
+ #if ($items.getName().equals("img"))
+ #image ($items)
+ #elseif ($items.getName().equals("source"))
+ #source ($items)
+ #elseif ($items.getName().equals("table"))
+ #table ($items)
+ #else
+ $items
#end
-
- </td></tr>
+ #end
#end
@@ -144,29 +139,22 @@
#end
#macro ( section $section)
- <table cellspacing="0" cellpadding="2" width="100%">
- <tr><td>
- <h1>
- <a name="$section.getAttributeValue("name")">$section.getAttributeValue("name")</a>
- </h1>
- </td></tr>
- <tr><td>
- #foreach ( $items in $section.getChildren() )
- #if ($items.getName().equals("img"))
- #image ($items)
- #elseif ($items.getName().equals("source"))
- #source ($items)
- #elseif ($items.getName().equals("table"))
- #table ($items)
- #elseif ($items.getName().equals("subsection"))
- #subsection ($items)
- #else
- $items
- #end
+ <h1>
+ <a name="$section.getAttributeValue("name")">$section.getAttributeValue("name")</a>
+ </h1>
+ #foreach ( $items in $section.getChildren() )
+ #if ($items.getName().equals("img"))
+ #image ($items)
+ #elseif ($items.getName().equals("source"))
+ #source ($items)
+ #elseif ($items.getName().equals("table"))
+ #table ($items)
+ #elseif ($items.getName().equals("subsection"))
+ #subsection ($items)
+ #else
+ $items
#end
-
- </td></tr>
- </table>
+ #end
<p><a href="#top">Back to top</a></p>
#end