Skip to content

Commit

Permalink
[Truffle] More privatisation.
Browse files Browse the repository at this point in the history
  • Loading branch information
chrisseaton committed Dec 3, 2016
1 parent 739e0c5 commit c15bf67
Show file tree
Hide file tree
Showing 20 changed files with 638 additions and 2,797 deletions.
24 changes: 21 additions & 3 deletions truffle/src/main/java/org/jruby/truffle/core/TruffleGCNodes.java
Expand Up @@ -12,11 +12,13 @@
import com.oracle.truffle.api.CompilerDirectives.TruffleBoundary;
import com.oracle.truffle.api.TruffleOptions;
import com.oracle.truffle.api.dsl.Specialization;
import org.jruby.RubyGC;
import org.jruby.truffle.builtins.CoreClass;
import org.jruby.truffle.builtins.CoreMethod;
import org.jruby.truffle.builtins.CoreMethodArrayArgumentsNode;

import java.lang.management.GarbageCollectorMXBean;
import java.lang.management.ManagementFactory;

@CoreClass("Truffle::GC")
public abstract class TruffleGCNodes {

Expand All @@ -30,7 +32,15 @@ public int count() {
throw new UnsupportedOperationException("Memory manager is not available with AOT.");
}

return RubyGC.getCollectionCount();
return getCollectionCount();
}

public static int getCollectionCount() {
int count = 0;
for (GarbageCollectorMXBean bean : ManagementFactory.getGarbageCollectorMXBeans()) {
count += bean.getCollectionCount();
}
return count;
}

}
Expand All @@ -45,7 +55,15 @@ public long time() {
throw new UnsupportedOperationException("Memory manager is not available with AOT.");
}

return RubyGC.getCollectionTime();
return getCollectionTime();
}

public static long getCollectionTime() {
long time = 0;
for (GarbageCollectorMXBean bean : ManagementFactory.getGarbageCollectorMXBeans()) {
time += bean.getCollectionTime();
}
return time;
}

}
Expand Down
Expand Up @@ -6,6 +6,35 @@
* Eclipse Public License version 1.0
* GNU General Public License version 2
* GNU Lesser General Public License version 2.1
*
* Version: EPL 1.0/GPL 2.0/LGPL 2.1
*
* The contents of this file are subject to the Eclipse Public
* License Version 1.0 (the "License"); you may not use this file
* except in compliance with the License. You may obtain a copy of
* the License at http://www.eclipse.org/legal/epl-v10.html
*
* Software distributed under the License is distributed on an "AS
* IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
* implied. See the License for the specific language governing
* rights and limitations under the License.
*
* Copyright (C) 2002-2004 Anders Bengtsson <ndrsbngtssn@yahoo.se>
* Copyright (C) 2004 Stefan Matthias Aust <sma@3plus4.de>
* Copyright (C) 2005 Charles O Nutter <headius@headius.com>
* Copyright (C) 2006 Nick Sieger
*
* Alternatively, the contents of this file may be used under the terms of
* either of the GNU General Public License Version 2 or later (the "GPL"),
* or the GNU Lesser General Public License Version 2.1 or later (the "LGPL"),
* in which case the provisions of the GPL or the LGPL are applicable instead
* of those above. If you wish to allow use of your version of this file only
* under the terms of either the GPL or the LGPL, and not to allow others to
* use your version of this file under the terms of the EPL, indicate your
* decision by deleting the provisions above and replace them with the notice
* and other provisions required by the GPL or the LGPL. If you do not delete
* the provisions above, a recipient may use your version of this file under
* the terms of any one of the EPL, the GPL or the LGPL.
*/
package org.jruby.truffle.core;

Expand All @@ -15,14 +44,15 @@
import com.oracle.truffle.api.object.DynamicObject;
import org.jcodings.Encoding;
import org.jcodings.specific.UTF8Encoding;
import org.jruby.ext.rbconfig.RbConfigLibrary;
import org.jruby.truffle.builtins.CoreClass;
import org.jruby.truffle.builtins.CoreMethod;
import org.jruby.truffle.builtins.CoreMethodNode;
import org.jruby.truffle.builtins.YieldingCoreMethodNode;
import org.jruby.truffle.core.string.StringOperations;
import org.jruby.util.unsafe.UnsafeHolder;

import java.util.HashMap;
import java.util.Map;
import java.util.Set;

@CoreClass("Truffle::System")
Expand Down Expand Up @@ -52,7 +82,7 @@ public abstract static class HostCPUNode extends CoreMethodNode {

@Specialization
public DynamicObject hostCPU() {
return createString(StringOperations.encodeRope(RbConfigLibrary.getArchitecture(), UTF8Encoding.INSTANCE));
return createString(StringOperations.encodeRope(org.jruby.truffle.util.Platform.getArchitecture(), UTF8Encoding.INSTANCE));
}

}
Expand All @@ -63,7 +93,7 @@ public abstract static class HostOSNode extends CoreMethodNode {
@TruffleBoundary
@Specialization
public DynamicObject hostOS() {
return createString(StringOperations.encodeRope(RbConfigLibrary.getOSName(), UTF8Encoding.INSTANCE));
return createString(StringOperations.encodeRope(org.jruby.truffle.util.Platform.getOSName(), UTF8Encoding.INSTANCE));
}

}
Expand Down

0 comments on commit c15bf67

Please sign in to comment.