Giter VIP home page Giter VIP logo

vmkit's People

Contributors

dtzwill avatar gaelthomas avatar lattner avatar resistor avatar sanxiyn avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

vmkit's Issues

Make vmkit usable from the OpenJDK 'java' launcher

  • Build vmkit into libjvm.so, which means some engineering issues regarding -fPIC (particularly the assembly in nullpointerexception/stackoverflow handlers needs to be updated for this), but otherwise relatively minor.
  • Implement JVM_CreateJavaVM and related, which implies an implementation of JVM_AttachCurrentThread. Given our current assertions about thread layout (the way we do TLS among other things) makes this more or less impossible since we don't control the creation of the thread we want to attach.

For now the 'j3' launcher works, but this would go a long way towards facilitating better integration with the OpenJDK tools and make vmkit more appealing to the community perhaps.

constantpool JVM_* api not implemented

Used to implement reflective access to annotations (JDK 1.5)

This causes the tomcat, tradebeans, and tradesoap benchmarks from dacapo-9.12-bach to fail.

dacapo-2006 hsqldb fails

Output:
===== DaCapo hsqldb starting =====


  • PseudoJDBCBench v1.1 *

Scale factor value: 64
Number of clients: 20
Number of transactions per client: 40

Initializing dataset...null
java.lang.NullPointerException
»·at dacapo.hsqldb.PseudoJDBCBench.(PseudoJDBCBench.java:355)
»·at dacapo.hsqldb.PseudoJDBCBench.main(PseudoJDBCBench.java:208)
»·at dacapo.hsqldb.HsqldbHarness.iterate(HsqldbHarness.java:19)
»·at dacapo.Benchmark.run(Benchmark.java:126)
»·at dacapo.TestHarness.runBenchmark(TestHarness.java:302)
»·at dacapo.TestHarness.main(TestHarness.java:242)
»·at Harness.main(Harness.java:5)
Digest validation failed for stdout.log, expecting 0x68f2be9306913c92688b6b34f8454b6311de9310 found 0x73b485d99b573475caaaa46b3b050cdb9a1e88a6
Digest validation failed for stderr.log, expecting 0xda39a3ee5e6b4b0d3255bfef95601890afd80709 found 0x5e8ba9ecd7ad8d10a5db2b763fd0ac1e423d8190
===== DaCapo hsqldb FAILED =====
Validation FAILED for hsqldb default

dacapo-9.12 h2 fails

The benchmark doesn't run successfully.

Using default vmkit, it runs out of memory, and increasing the heapsize results in similar failure to issue #6.

Fat locks cause objects to live forever

The GC tracing logic presently assumes fat locks will be immediately deflated when the contention is gone, and so keeps objects associated with fat locks alive as long as the lock exists (no good removing object from underneath held lock).

However, as of e862ea9, we don't deflate fat locks any longer which means we keep objects associated with fat locks alive forever.

Support -Xms and -Xmx

Support Xms and Xmx options for specifying min/max heapsize (used by many application wrappers to set reasonable heap sizes for the application)

Reflect.inc getDeclaredAnnotations is wrong type for OpenJDK

OpenJDK expects annotations to be byte arrays, while GNU Classpath wants an array of objects (Object[], probably Annotation[]).

The shared code in Reflect.inc presently returns an empty Object[], which is wrong for OpenJDK and causes the following to throw an exception (instead of printing no annotations, which is the present behavior until the various annotation-related issues are fixed):

import java.lang.annotation.Annotation;

@deprecated
public class AnnotationTest {
public static void main(String args[]) {
for(Annotation a : AnnotationTest.class.getAnnotations()) {
System.out.println(a);
}
for(Annotation a : AnnotationTest.class.getDeclaredAnnotations()) {
System.out.println(a);
}
}
}

Exception in thread "main" java.lang.annotation.AnnotationFormatError: Unexpected end of annotations.
at sun.reflect.annotation.AnnotationParser.parseAnnotations(AnnotationParser.java:72)
at java.lang.Class.initAnnotationsIfNecessary(Class.java:3093)
at java.lang.Class.getAnnotations(Class.java:3073)
at AnnotationTest.main(AnnotationTest.java:7)

Which is a fairly tame/neat error considering we're returning an object array casted to a byte array :).

Populate signature and annotation-related fields when generating reflective objects

When constructing Constructor, Method, and Field objects, presently we don't populate fields such as signature, annotations, etc.

See:

NULL, /* String signature */


JavaObject** sign = NULL;

Automated testsuite?

There are many tests you run manually, but automating these would have two benefits:
a)you don't forget/do it wrong/easy to run full gauntlet
b)can throw it on a server somewhere, and track progress/regressions over time.

Doesn't need to be fancy, but would be useful to have a grip on.

Bonus points if includes performance measurements, as we're lagging behind the Classpath implementation ATM, and it'd be nice to see that fixed.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.