Skip to main content

Notice: this Wiki will be going read only early in 2024 and edits will no longer be possible. Please see: https://gitlab.eclipse.org/eclipsefdn/helpdesk/-/wikis/Wiki-shutdown-plan for the plan.

Jump to: navigation, search

Difference between revisions of "TPTP-AG-20080205"

Line 14: Line 14:
 
* Mikhail Loenko
 
* Mikhail Loenko
 
* Mr. Levchenko  
 
* Mr. Levchenko  
 +
* Joe Toomey
  
 
== Topic ==
 
== Topic ==
Line 36: Line 37:
  
 
* Design:
 
* Design:
** Repackage a static binary library ('verifier') provided by the Apache Harmony project with the BCI classes in TPTP.
+
** Repackage a static binary library (verifier.lib) provided by the Apache Harmony project with the BCI classes in TPTP.
 +
** Static binary library checked-in to CVS and used in the TPTP build process and no need to ship with the product.
 
** The verifier and BCI classes need to communicate through a set of abstract interfaces, defined in the Apache Harmony project.
 
** The verifier and BCI classes need to communicate through a set of abstract interfaces, defined in the Apache Harmony project.
 
** TPTP implements these abstract interfaces in the BCI engine.
 
** TPTP implements these abstract interfaces in the BCI engine.
 +
** The TPTP BCI engines contains 85% of the neccessary inforaiton for implementing these abstract interfaces
 +
<insert image>
 +
** Challenge: When the verifier runs, it requires method and class information available in the class file.  However, there is other information not available in the class file or from TPTP BCI engine.  Uses JNI/JVMTI to resolve this information (is class A is a superclass of class B, is class B is a superclass of class C, and etc., so you need to walk the inheritance chain since the ProbeInstrumentator.exe instruments one class file at a time).  ProbeKit Agent and JVMTI run in the JVM so no problem,  ProbeInstrumentator.exe must create a JVM instance.
 +
 +
Question: What is the importance ProbeInstrumentor.exe to IBM?  Web application environment and problem determination with customer support.
 +
 +
Make ProbeInstrumentor.exe a Java application.
  
 
== Questions/Answers ==
 
== Questions/Answers ==
Line 52: Line 61:
  
 
* '''Q:''' What is the arrangement/agreement with the Apache Harmony project?  For example, coordinated design/implementation, synchronized release schedules, contacts, implementation split, etc.  For TPTP to benefit from this arrangement, we would need to modularize the code in the Harmony project and then request Eclipse legal approval for that module.
 
* '''Q:''' What is the arrangement/agreement with the Apache Harmony project?  For example, coordinated design/implementation, synchronized release schedules, contacts, implementation split, etc.  For TPTP to benefit from this arrangement, we would need to modularize the code in the Harmony project and then request Eclipse legal approval for that module.
* '''A:'''  
+
* '''A:''' The Apache Harmony project
  
 
* '''Q:''' Have you contact the Eclipse JDT Team about using their solution.  This code would be relatively easy to access and under the same license.
 
* '''Q:''' Have you contact the Eclipse JDT Team about using their solution.  This code would be relatively easy to access and under the same license.

Revision as of 11:43, 5 February 2008

Date

  • February 5, 2008

Attendees

  • Present:
  • Paul Slauenwhite
  • Joel Cayne
  • Asaf Yaffe
  • Alexander Alexeev
  • Chris Elford
  • Mikhail Loenko
  • Mr. Levchenko
  • Joe Toomey

Topic

Minutes

  • Overview:
    • Java 6 introduced a class file format (60) and a new attribute (StackMapTable) for verifying the method table.
    • Generated during compilation and used to verify type correctness.
    • The TPTP BCI engine changes the byte code of a function needs to recalculate this attribute based on the new control/data flow after the BCI.
    • Java 6 is backward compatible in that if the attribute is incorrect, it falls back to the Java 5 process.
    • However, this backward compatibility is not guaranteed post-Java 1.6.
    • Apache Harmony has a verifier to recalculate the attribute after the BCI.
  • Requirements:
    • Regenerate the attribute correctly.
    • Maintain backward compatibility (disabling regeneration) for instrumented older class file formats (<50).
  • Design:
    • Repackage a static binary library (verifier.lib) provided by the Apache Harmony project with the BCI classes in TPTP.
    • Static binary library checked-in to CVS and used in the TPTP build process and no need to ship with the product.
    • The verifier and BCI classes need to communicate through a set of abstract interfaces, defined in the Apache Harmony project.
    • TPTP implements these abstract interfaces in the BCI engine.
    • The TPTP BCI engines contains 85% of the neccessary inforaiton for implementing these abstract interfaces

<insert image>

    • Challenge: When the verifier runs, it requires method and class information available in the class file. However, there is other information not available in the class file or from TPTP BCI engine. Uses JNI/JVMTI to resolve this information (is class A is a superclass of class B, is class B is a superclass of class C, and etc., so you need to walk the inheritance chain since the ProbeInstrumentator.exe instruments one class file at a time). ProbeKit Agent and JVMTI run in the JVM so no problem, ProbeInstrumentator.exe must create a JVM instance.

Question: What is the importance ProbeInstrumentor.exe to IBM? Web application environment and problem determination with customer support.

Make ProbeInstrumentor.exe a Java application.

Questions/Answers

  • Q:
  • A:
  • Q:
  • A:
  • Q:
  • A:
  • Q: What is the arrangement/agreement with the Apache Harmony project? For example, coordinated design/implementation, synchronized release schedules, contacts, implementation split, etc. For TPTP to benefit from this arrangement, we would need to modularize the code in the Harmony project and then request Eclipse legal approval for that module.
  • A: The Apache Harmony project
  • Q: Have you contact the Eclipse JDT Team about using their solution. This code would be relatively easy to access and under the same license.
  • A: Asaf spent some time looking at the JDT source code. It seems that the StackMapTable computation implementation is built into the compilation process and cannot be easily decoupled (for example, the process heavily depends on many data structures and types used by the Java compiler). Things are different in Harmony, where the verification process is quite modular and depends only on abstract interfaces which can be easily implemented on top of the Probekit BCI engine.
  • Q: TPTP should redistribute the binaries for the Harmony module to keep the component separate and reduce built and support costs.
  • A: The Apache Harmony Verification code will be consumed by TPTP as a binary static library which will be linked with the Probekit BCI engine code.
  • Q: Does Apache Harmony support the same platforms as TPTP?
  • A: Apache Harmony currently supports 32/64 bit Windows and Linux. In this sense, it supports the same platforms currently supported by the TPTP JVMTI-based collectors (including the new JVMTI-based Probekit).

Back to the top