Take a look at the comments and code in update.sh
.
Requires a working version of Java 1.8.
I use create_tarball.sh
to make a copy of the build to share.
OpenJDK 1.7 builds for Mac OS X:
CRuby's Parallel Marking (Draft)(Ja) | |
ソースコード: https://github.com/authorNari/ruby | |
※まだ実装中 | |
1 Abstract | |
並列スレッドの仕事分配には「Arora's Task Stealing Deque」のアルゴリズムを利用する。 | |
http://doi.acm.org/10.1145/277651.277678 | |
また、並列マークの実装の大部分はOpenJDK7のコードを参考に独自改良したものである。 |
import java.util.Collections | |
import java.util.ArrayList | |
list = ArrayList.new [ "one", "two", "three", "four" ] | |
puts "unsorted: #{list}" | |
Collections.sort(list) do |s1, s2| | |
l1 = dynamic(s1).length | |
l2 = dynamic(s2).length |
#include<iostream> | |
#include<signal.h> | |
#include<limits.h> | |
/** g++'s -ftrapv flag provides some protection against integer overflows. It | |
* is a little awkward to use, though. All it will do is "trap" -- you must | |
* provide a signal handler to deal with it. | |
* | |
* (You must compile with -ftrapv for this to work) | |
*/ |
let inline name (x : ^T) = (^T : (member Name : string) (x)) | |
let inline age (x : ^T) = (^T : (member Age : int) (x)) | |
let inline nameAndAge x = (name x, age x) | |
type Person(name : string, age : int) = | |
member __.Name = name | |
member __.Age = age | |
type Employee(name : string, age : int, employeeId : string) = | |
member __.Name = name |
package com.headius.indy.examples; | |
import java.lang.invoke.MethodHandle; | |
import static java.lang.invoke.MethodHandles.*; | |
import static java.lang.invoke.MethodType.*; | |
import java.lang.invoke.MutableCallSite; | |
public class IndyLoop { | |
public static void main(String[] args) throws Throwable { | |
// method handle loop adds up numbers from 1 to args[0].to_i |
#!/bin/sh | |
# This script is for building the hsx/hotspot-comp branch in isolation. | |
# | |
# Prerequisites: | |
# * appropriate build tools | |
# * a working Sun Java 6 build (i.e. JDK6) is available at: | |
# HOME/java/re/j2se/1.6.0/latest/binaries/linux-[i586/amd64] | |
# * a working Sun Java 7 build (i.e. JDK7) is available at: | |
# HOME/java/re/j2se/1.7.0/latest/binaries/linux-[i586/amd64] | |
# HOME/java/re/j2se/1.7.0/promoted/latest/binaries/linux-[i586/amd64] |
AbstractInterpreter::_code : StubQueue * = 0xb49150c0 | |
_stub_buffer : 0xb6f7a6c0 | |
_number_of_stubs: 0x103 | |
Codelet @ 0xb6f7a6c0 128 -1 0xffffffff 0x10c81a1: "slow signature handler" | |
Dump of assembler code from 0xb6f7a6e0 to 0xb6f7a740: | |
0xb6f7a6e0: mov %esp,%ecx | |
0xb6f7a6e2: call 0xb6f7a6ec | |
0xb6f7a6e7: jmp 0xb6f7a73f | |
0xb6f7a6ec: push %ecx | |
0xb6f7a6ed: push %edi |
Table of names of MemoryManagerMXBean and MemoryPoolMXBean instances under | |
different GC algorithms in Oracle HotSpot VM. Memory managers list the pools | |
they manage in square brackets; memory pools show their maximum sizes for -Xmx200M setting. | |
$ java -version | |
java version "1.6.0_24" | |
Java(TM) SE Runtime Environment (build 1.6.0_24-b07) | |
Java HotSpot(TM) 64-Bit Server VM (build 19.1-b02, mixed mode) | |
SerialGC: |