Hi,

There are at least three problems that are still there. They might be
connected, or not.
(I will tell you how to reproduce these at the end)

I just built a new JVM:
openjdk version "1.7.0-internal"
OpenJDK Runtime Environment (build
1.7.0-internal-olabini_2011_05_25_08_06-b00)
OpenJDK Server VM (build 21.0-b09, mixed mode)

I get that weird missing class error when running my test suite:
 java.lang.NoClassDefFoundError: seph/lang/SephObject
 java.lang.RuntimeException: java.lang.NoClassDefFoundError:
seph/lang/SephObject
        at seph.lang.Runtime.evaluateStream(Runtime.java:132)
        at seph.lang.Runtime.evaluateString(Runtime.java:146)
        at
seph.lang.code.BasicSanityTest.recursive_odd_and_even_that_should_blow_the_stack(BasicSanityTest.java:214)
 Caused by: java.lang.NoClassDefFoundError: seph/lang/SephObject
        at java.lang.invoke.MethodHandle.invokeExact(MethodHandle.java)
        at java.lang.invoke.MethodHandle.invokeExact(MethodHandle.java)
        at seph$gen$abstraction$41$even?.argument_0_0(<eval>:7)
        at seph.lang.compiler.Bootstrap.intrinsic_if(Bootstrap.java:654)
        at seph$gen$abstraction$41$even?.even?(<eval>:7)
        at seph$gen$abstraction$39$toplevel.toplevel(<eval>:25)
        at seph.lang.Runtime.evaluateStream(Runtime.java:125)

This is obviously a complete blocker.

Turning off the ricochet frames hits an NYI error when running the test
suite.

I'm still seeing a crash in ricochet frames:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  SIGBUS (0xa) at pc=0x0104884f, pid=85043, tid=2953850880
#
# JRE version: 7.0
# Java VM: OpenJDK Client VM (21.0-b09 mixed mode bsd-x86 )
# Problematic frame:
# V  [libjvm.dylib+0x4884f]  MethodHandles::ricochet_frame_oops_do(frame
const&, OopClosure*, RegisterMap const*)+0x12f
#
# Failed to write core dump. Core dumps have been disabled. To enable
core dumping, try "ulimit -c unlimited" before starting Java again
#
# An error report file with more information is saved as:
# /Users/olabini/workspace/seph/hs_err_pid85043.log
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

I've attached the error file.

The third error (in frame.cpp) only happens on master of seph, but there
are some other problems with master that means you get lots of weird output.

In order to reproduce problem 1 and 2:
git clone git://github.com/seph-lang/seph.git
git checkout 9075c0f4ffe1adac0657057aee2193f16ad12a43
(build.xml: remove lines with <jvmarg value="-Xint"/>)

problem 1:
ant
   This should show you one entry of the missing class problem

problem 2:
ant jar-notest
bin/seph bench/bench_arithmetic.sp
   This should show you problem 2.
   If you for reference want to see the benchmark run correctly, do
bin/seph -J-Xint bench/bench_arithmetic.sp

problem 3:
git checkout master
git checkout 99c8f2609d468835390e39b68c73f21cc78e5ab5
ant clean jar-notest
bin/seph bench/bench_arithmetic.sp
   This should show you problem 3. You will also see loads of other
exceptions, since that point generates slightly bad bytecode. That
shouldn't make the JVM crash though, I assume - and I've seen the
frame.cpp should not reach here without seeing those exceptions.

All of these require that JAVA_HOME points to the Java 7 you want to use

Cheers

> 
> tom
> 
> On May 23, 2011, at 7:33 PM, Ola Bini wrote:
> 
>> Hi,
>> 
>> I'm happy to see that the performance degradation is getting
>> addressed. I would like to point out that there is still a serious
>> crash in the machinery too... Have you seen any reason why that
>> happens?
>> 
>> Cheers
>> 
>> 
>> On 2011-05-24 06.11, John Rose wrote:
>>> On May 23, 2011, at 3:44 PM, Tom Rodriguez wrote:
>>> 
>>>>> I'd *love* for intermediate static Java snippits like this
>>>>> to inline straight through, even if invokeExact would be
>>>>> megamorphic under normal circumstances...but I don't think
>>>>> that's the case right now, right?
>>>> 
>>>> I haven't been following 292 that closely but it used to be a
>>>> piece of code that did precisely that.
>>>> 
>>>> +        private Object invoke_L0() throws Throwable { + if
>>>> ((boolean) test.invokeExact()) +                return 
>>>> target.invokeExact(); +            return
>>>> fallback.invokeExact(); + }
>>>> 
>>>> It looks like it was reworked at some point to use 
>>>> selectAlternative but the optimizer was never updated to deal
>>>> with it properly.  It's not particularly hard, we just need to
>>>> generate code like we would for a bimorphic call site.  The
>>>> current code expects to either get a constant or something else
>>>> and doesn't inline if it's something else.  In this case we
>>>> have a Phi of two constants which we just need to split.
>>> 
>>> Yes, it would be a quasi-bimorphic call site keyed from a phi of
>>> two constants, instead of a profile of two receiver classes.
>>> 
>>>> I'm still unclear why you couldn't write your own variant of 
>>>> guardWithTest and have it work but my knowledge of what's
>>>> really allowed is somewhat limited.
>>> 
>>> Those snippets will inline (I think), but at some point Charlie
>>> will want to fetch a bit of constant stuff out of an instance
>>> variable. That will look non-constant to the optimizer, even if
>>> the instance variable is final and the enclosing object is a
>>> constant reference. We made sure this happens for
>>> java.lang.invoke classes, but we haven't extended it yet to user
>>> code, in part because it would have its own bug tail to work
>>> through.
>>> 
>>> -- John _______________________________________________ mlvm-dev 
>>> mailing list mlvm-dev@openjdk.java.net 
>>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
>>> 
>> 
>> 
>> -- Ola Bini (http://olabini.com) Ioke - JRuby - ThoughtWorks
>> 
>> "Yields falsehood when quined" yields falsehood when quined.
>> 
>> _______________________________________________ mlvm-dev mailing
>> list mlvm-dev@openjdk.java.net 
>> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
> 
> _______________________________________________ mlvm-dev mailing
> list mlvm-dev@openjdk.java.net 
> http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev
> 


-- 
 Ola Bini (http://olabini.com)
  Ioke - JRuby - ThoughtWorks

 "Yields falsehood when quined" yields falsehood when quined.

#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (frame.cpp:1158), pid=85367, tid=2953850880
#  Error: ShouldNotReachHere()
#
# JRE version: 7.0
# Java VM: OpenJDK Client VM (21.0-b09 mixed mode bsd-x86 )
# Failed to write core dump. Core dumps have been disabled. To enable core 
dumping, try "ulimit -c unlimited" before starting Java again
#
# If you would like to submit a bug report, please visit:
#   http://bugreport.sun.com/bugreport/crash.jsp
#

---------------  T H R E A D  ---------------

Current thread (0x02039800):  VMThread [stack: 0xb0083000,0xb0103000] 
[id=-1341116416]

Stack: [0xb0083000,0xb0103000],  sp=0xb01021b0,  free space=508k
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
V  [libjvm.dylib+0x7b341]  VMError::report_and_die()+0x191
V  [libjvm.dylib+0x2d354]  report_should_not_reach_here(char const*, int)+0x44
V  [libjvm.dylib+0x21dab3]  frame::oops_do_internal(OopClosure*, 
CodeBlobClosure*, RegisterMap*, bool)+0xa3
V  [libjvm.dylib+0x49422d]  JavaThread::oops_do(OopClosure*, 
CodeBlobClosure*)+0x18d
V  [libjvm.dylib+0x4946ac]  Threads::oops_do(OopClosure*, CodeBlobClosure*)+0x3c
V  [libjvm.dylib+0x43a54c]  SharedHeap::process_strong_roots(bool, bool, 
SharedHeap::ScanningOption, OopClosure*, CodeBlobClosure*, 
OopsInGenClosure*)+0x1ec
V  [libjvm.dylib+0x247fb2]  GenCollectedHeap::gen_process_strong_roots(int, 
bool, bool, bool, SharedHeap::ScanningOption, OopsInGenClosure*, bool, 
OopsInGenClosure*)+0x92
V  [libjvm.dylib+0x205e6a]  DefNewGeneration::collect(bool, bool, unsigned 
long, bool)+0x2da
V  [libjvm.dylib+0x249e2a]  GenCollectedHeap::do_collection(bool, bool, 
unsigned long, bool, int)+0x76a
V  [libjvm.dylib+0x1b7f73]  
GenCollectorPolicy::satisfy_failed_allocation(unsigned long, bool)+0xa3
V  [libjvm.dylib+0x246f08]  
GenCollectedHeap::satisfy_failed_allocation(unsigned long, bool)+0x38
V  [libjvm.dylib+0x4d160b]  VM_GenCollectForAllocation::doit()+0xeb
V  [libjvm.dylib+0x80cb5]  VM_Operation::evaluate()+0x45
V  [libjvm.dylib+0x4d34dd]  VMThread::evaluate_operation(VM_Operation*)+0x7d
V  [libjvm.dylib+0x4d3ed2]  VMThread::loop()+0x3f2
V  [libjvm.dylib+0x4d408c]  VMThread::run()+0x8c
V  [libjvm.dylib+0x3f3cf5]  java_start(Thread*)+0xc5
C  [libSystem.B.dylib+0x2e7fd]  _pthread_start+0x159
C  [libSystem.B.dylib+0x2e682]  thread_start+0x22

JavaThread 0x02000000 (nid = 2953318400) was being processed
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
v  ~RuntimeStub::fast_new_instance Runtime1 stub
J  
java.lang.invoke.MethodHandle.bindTo(Ljava/lang/Object;)Ljava/lang/invoke/MethodHandle;
j  
seph$gen$abstraction$2.activateWith(Lseph/lang/SephObject;Lseph/lang/SThread;Lseph/lang/LexicalScope;)Lseph/lang/SephObject;+4157
J  
seph$gen$abstraction$0.argument_2_3(Lseph/lang/LexicalScope;Lseph/lang/SephObject;Lseph/lang/SThread;Lseph/lang/LexicalScope;ZZ)Lseph/lang/SephObject;
J  
seph.lang.ControlDefaultBehavior.evaluateArgument(Ljava/lang/Object;Lseph/lang/LexicalScope;Lseph/lang/SThread;Z)Lseph/lang/SephObject;
j  java.lang.System.nanoTime()J+-1685669308
C  0x09ea28d8

[error occurred during error reporting (printing target Java thread stack), id 
0xa]

VM_Operation (0xb00804ac): GenCollectForAllocation, mode: safepoint, requested 
by thread 0x02000000


---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x02043400 JavaThread "Service Thread" daemon [_thread_blocked, 
id=-1338454016, stack(0xb030d000,0xb038d000)]
  0x00833400 JavaThread "C1 CompilerThread0" daemon [_thread_blocked, 
id=-1338986496, stack(0xb028b000,0xb030b000)]
  0x00832400 JavaThread "Signal Dispatcher" daemon [_thread_blocked, 
id=-1339518976, stack(0xb0209000,0xb0289000)]
  0x00812c00 JavaThread "Finalizer" daemon [_thread_blocked, id=-1340051456, 
stack(0xb0187000,0xb0207000)]
  0x00811c00 JavaThread "Reference Handler" daemon [_thread_blocked, 
id=-1340583936, stack(0xb0105000,0xb0185000)]
  0x02000000 JavaThread "main" [_thread_blocked, id=-1341648896, 
stack(0xb0001000,0xb0081000)]

Other Threads:
=>0x02039800 VMThread [stack: 0xb0083000,0xb0103000] [id=-1341116416]
  0x0204cc00 WatcherThread [stack: 0xb038f000,0xb040f000] [id=-1337921536]

VM state:at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread:  ([mutex/lock_event])
[0x00102970] Threads_lock - owner thread: 0x02039800
[0x00102d30] Heap_lock - owner thread: 0x02000000

Heap
 def new generation   total 4928K, used 4486K [75497472, 81068032, 164954112)
  eden space 4416K, 100% used [75497472, 80019456, 80019456)
  from space 512K,  13% used [80019456, 80091472, 80543744)
  to   space 512K,   0% used [80543744, 80543800, 81068032)
 tenured generation   total 10944K, used 1865K [164954112, 176160768, 343932928)
   the space 10944K,  17% used [164954112, 166864656, 166864896, 176160768)
 compacting perm gen  total 12288K, used 3112K [343932928, 356515840, 411041792)
   the space 12288K,  25% used [343932928, 347120456, 347120640, 356515840)
No shared spaces configured.

Code Cache  [41943040, 43188224, 75497472)
 total_blobs=563 nmethods=421 adapters=75 free_code_cache=31573Kb 
largest_free_block=32330752

Dynamic libraries:
0x00000000      /usr/lib/libSystem.B.dylib
0x00000000      /usr/lib/system/libmathCommon.A.dylib
0x01000000      
/usr/local/java-1.7.0-internal-2011_05_25/jre/lib/i386/client/libjvm.dylib
0x00000000      /usr/lib/libstdc++.6.dylib
0x0003b000      
/usr/local/java-1.7.0-internal-2011_05_25/jre/lib/i386/libverify.dylib
0x00049000      
/usr/local/java-1.7.0-internal-2011_05_25/jre/lib/i386/libjava.dylib
0x00078000      
/usr/local/java-1.7.0-internal-2011_05_25/jre/lib/i386/libzip.dylib

VM Arguments:
jvm_args: -Dseph.memory.max=256m -Dseph.stack.max=512k -Xmx256m -Xss512k 
-Xbootclasspath/a:/Users/olabini/workspace/seph/lib/seph.jar 
-Dseph.home=/Users/olabini/workspace/seph -Dfile.encoding=UTF-8 
-Dseph.lib=/Users/olabini/workspace/seph/lib -Dseph.script=seph 
java_command: seph.lang.Main bench/bench_arithmetic.sp
Launcher Type: SUN_STANDARD

Environment Variables:
JAVA_HOME=/usr/local/java-1.7.0
CLASSPATH=.:/Users/olabini/programming/lib/XmlSchema-1.3.1.jar:/Users/olabini/programming/lib/axis.jar:/Users/olabini/programming/lib/backport-util-concurrent.jar:/Users/olabini/programming/lib/commons-codec-1.3.jar:/Users/olabini/programming/lib/commons-discovery-0.4.jar:/Users/olabini/programming/lib/commons-httpclient-3.0.jar:/Users/olabini/programming/lib/commons-logging-1.1-dev.jar:/Users/olabini/programming/lib/derby.jar:/Users/olabini/programming/lib/derbyclient.jar:/Users/olabini/programming/lib/derbynet.jar:/Users/olabini/programming/lib/jakarta-oro-2.0.8.jar:/Users/olabini/programming/lib/javac2.jar:/Users/olabini/programming/lib/jaxrpc.jar:/Users/olabini/programming/lib/jdom-1.0.jar:/Users/olabini/programming/lib/jinput.jar:/Users/olabini/programming/lib/jme-audio.jar:/Users/olabini/programming/lib/jme-awt.jar:/Users/olabini/programming/lib/jme-collada.jar:/Users/olabini/programming/lib/jme-editors.jar:/Users/olabini/programming/lib/jme-effects.jar:/Users/olabini/programming/lib/jme-font.jar:/Users/olabini/programming/lib/jme-gamestates.jar:/Users/olabini/programming/lib/jme-model.jar:/Users/olabini/programming/lib/jme-ogrexml.jar:/Users/olabini/programming/lib/jme-scene.jar:/Users/olabini/programming/lib/jme-swt.jar:/Users/olabini/programming/lib/jme-terrain.jar:/Users/olabini/programming/lib/jme.jar:/Users/olabini/programming/lib/junit-3.8.1.jar:/Users/olabini/programming/lib/lwjgl.jar:/Users/olabini/programming/lib/lwjgl_util.jar:/Users/olabini/programming/lib/lwjgl_util_applet.jar:/Users/olabini/programming/lib/ojdbc14.jar:/Users/olabini/programming/lib/postgresql-8.1-407.jdbc3.jar:/Users/olabini/programming/lib/sqljdbc.jar:/Users/olabini/programming/lib/wsdl4j-1.6.1.jar
PATH=/usr/local/rvm/gems/ruby-1.8.7-p334/bin:/usr/local/rvm/gems/ruby-1.8.7-p334@global/bin:/usr/local/rvm/rubies/ruby-1.8.7-p334/bin:/usr/local/rvm/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/Users/olabini/bin:/usr/local/scala/bin:/usr/local/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/Library/Frameworks/Python.framework/Versions/Current/bin:/Users/olabini/bin:/usr/local/scala/bin:/usr/local/sbin:/usr/local/mysql/bin:/opt/local/bin:/Users/olabini/.emacs.d/vm:/usr/X11R6/bin:/usr/local/ruby/bin:~/bin:/usr/local/maven/bin:/usr/local/maven2/bin:/usr/local/ant/bin:/Users/olabini/workspace/rhino/bin:/usr/local/pgsql/bin:/usr/local/java-1.7.0/bin:/Library/PostgreSQL8/bin:/Library/Frameworks/Python.framework/Versions/2.5/bin:/Users/olabini/workspace/jatha:/Users/olabini/workspace/ioke/bin:/Users/olabini/workspace/clojure:/Users/olabini/workspace/pygments:/usr/local/ruby19/bin:/usr/local/ruby-snapshot/bin:/Users/olabini/workspace/seph/bin:/usr/local/fantom/bin:/opt/local/lib/oracle:/Applications/YourKit_Java_Profiler_8.0.12.app/bin/mac:/Users/olabini/workspace/jruby/bin:/usr/X11R6/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/local/ruby/bin:~/bin:/usr/local/maven/bin:/usr/local/maven2/bin:/usr/local/ant/bin:/Users/olabini/workspace/jruby/bin:/Users/olabini/workspace/rhino/bin:/usr/local/pgsql/bin:/usr/local/java-1.7.0/bin:/usr/local/maven2/bin:/Library/PostgreSQL8/bin:/Library/Frameworks/Python.framework/Versions/2.5/bin:/Users/olabini/workspace/jatha:/Users/olabini/workspace/ioke/bin:/Users/olabini/workspace/clojure:/usr/local/scala/bin:/Users/olabini/workspace/pygments:/usr/local/ruby19/bin:/usr/local/ruby-snapshot/bin:/Users/olabini/workspace/seph/bin:/usr/local/fantom/bin:/opt/local/lib/oracle:/Applications/YourKit_Java_Profiler_8.0.12.app/bin/mac
SHELL=/bin/zsh
DISPLAY=/tmp/launch-JauvO7/org.x:0
DYLD_LIBRARY_PATH=/opt/local/lib/oracle:/Applications/YourKit_Java_Profiler_8.0.12.app/bin/mac

Signal Handlers:
SIGSEGV: [libjvm.dylib+0x4d0fd0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGBUS: [libjvm.dylib+0x4d0fd0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGFPE: [libjvm.dylib+0x3f0ed0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGPIPE: [libjvm.dylib+0x3f0ed0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGXFSZ: [libjvm.dylib+0x3f0ed0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGILL: [libjvm.dylib+0x3f0ed0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGUSR1: SIG_DFL, sa_mask[0]=0x00000000, sa_flags=0x00000002
SIGUSR2: [libjvm.dylib+0x3f1c40], sa_mask[0]=0x00000000, sa_flags=0x00000042
SIGHUP: [libjvm.dylib+0x3f2db0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGINT: [libjvm.dylib+0x3f2db0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGTERM: [libjvm.dylib+0x3f2db0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042
SIGQUIT: [libjvm.dylib+0x3f2db0], sa_mask[0]=0xfffefeff, sa_flags=0x00000042


---------------  S Y S T E M  ---------------

OS:Bsd
uname:Darwin 10.7.0 Darwin Kernel Version 10.7.0: Sat Jan 29 15:17:16 PST 2011; 
root:xnu-1504.9.37~1/RELEASE_I386 i386
rlimit: STACK 8192k, CORE 0k, NPROC 266, NOFILE 10240
CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 23 stepping 
10, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3, sse4.1

Memory: 4k page, physical 1749312k(437328k free)

/proc/meminfo:


vm_info: OpenJDK Client VM (21.0-b09) for bsd-x86 JRE 
(1.7.0-internal-olabini_2011_05_25_08_06-b00), built on May 25 2011 08:24:18 by 
"olabini" with gcc 4.0.1 (Apple Inc. build 5494)

time: Wed May 25 09:28:27 2011
elapsed time: 1 seconds

_______________________________________________
mlvm-dev mailing list
mlvm-dev@openjdk.java.net
http://mail.openjdk.java.net/mailman/listinfo/mlvm-dev

Reply via email to