Skip to content

Instantly share code, notes, and snippets.

Avatar

Charles Oliver Nutter headius

View GitHub Profile
View gist:afd1cbbdd6bcb4aabbcfad6ed5217b59
$ jdeps --module-path lib/modules/:lib/jzlib.jar:lib/ant.jar core/target/jruby-base-9.3.0.0-SNAPSHOT.jar
org.jruby.base
[file:///Users/headius/projects/jruby/lib/modules/org.jruby.jruby-base-9.3.0.0-SNAPSHOT.jar]
requires ant
requires com.headius.backport9
requires com.headius.invokebinder
requires com.headius.options
requires java.base
requires static java.compiler
requires java.management
@headius
headius / chadguac.md
Created May 7, 2021
Chad's Award Winning Guac
View chadguac.md

Chad's Guacamole

  • 4 Avocados
  • 2 Limes
  • 6 or more Cloves of Fresh Garlic, unpeeled
  • 1 Small Onion (red or white)
  • 2 Roma Tomatoes, diced
  • 3/4 cup Distilled White Vinegar
  • 1 tbsp Fresh Cilantro (optional), chopped
View bench_dig.rb
require 'benchmark/ips'
puts RUBY_DESCRIPTION
array = [[[[[[[[[[[14]]]]]]]]]]]
Benchmark.ips do |x|
x.report('dig-01') {|i| while i>0; i-=1; array.dig(0); end }
x.report('dig-02') {|i| while i>0; i-=1; array.dig(0, 0); end }
x.report('dig-03') {|i| while i>0; i-=1; array.dig(0, 0, 0); end }
@headius
headius / gist:153c43133aafa6d7820bf00c6a68cb7b
Created Mar 23, 2021
jnr-ffi errors on darwin-aarch64
View gist:153c43133aafa6d7820bf00c6a68cb7b
-------------------------------------------------------------------------------
Test set: jnr.ffi.VarargsTest
-------------------------------------------------------------------------------
Tests run: 3, Failures: 3, Errors: 0, Skipped: 0, Time elapsed: 0.224 sec <<< FAILURE!
testSizeT(jnr.ffi.VarargsTest) Time elapsed: 0.014 sec <<< FAILURE!
java.lang.AssertionError: expected:<5> but was:<10>
at org.junit.Assert.fail(Assert.java:89)
at org.junit.Assert.failNotEquals(Assert.java:835)
at org.junit.Assert.assertEquals(Assert.java:647)
at org.junit.Assert.assertEquals(Assert.java:633)
View 0001-Use-computeIfAbsent-for-safe-ClassValue-calc.patch
From 0083ab83b69cc57c931ee7e9c261a3c3ce5d4aaa Mon Sep 17 00:00:00 2001
From: Charles Oliver Nutter <headius@headius.com>
Date: Fri, 19 Mar 2021 10:14:04 -0500
Subject: [PATCH] Use computeIfAbsent for safe ClassValue calc
---
.../jruby/javasupport/JavaSupportImpl.java | 29 +++++--------------
.../jruby/util/collections/ClassValue.java | 14 +++++----
.../collections/ClassValueCalculator.java | 8 -----
.../util/collections/Java7ClassValue.java | 5 ++--
@headius
headius / gist:14a50f446ab9d0f6976a231c8ec0f915
Created Mar 9, 2021
javac rejecting sibling class and package with same case-insensitive name
View gist:14a50f446ab9d0f6976a231c8ec0f915
[DEBUG] Classpath:
[DEBUG] /Users/headius/projects/jruby/core/target/classes
[DEBUG] /Users/headius/.m2/repository/com/github/jnr/jnr-a64asm/1.0.0/jnr-a64asm-1.0.0.jar
[DEBUG] /Users/headius/.m2/repository/com/github/jnr/jnr-x86asm/1.0.2/jnr-x86asm-1.0.2.jar
[DEBUG] /Users/headius/.m2/repository/org/apache/ant/ant-launcher/1.9.8/ant-launcher-1.9.8.jar
[DEBUG] /Users/headius/.m2/repository/javax/annotation/javax.annotation-api/1.3.1/javax.annotation-api-1.3.1.jar
[DEBUG] Modulepath:
[DEBUG] /Users/headius/.m2/repository/org/ow2/asm/asm/9.1/asm-9.1.jar
[DEBUG] /Users/headius/.m2/repository/org/ow2/asm/asm-commons/9.1/asm-commons-9.1.jar
[DEBUG] /Users/headius/.m2/repository/org/ow2/asm/asm-tree/9.1/asm-tree-9.1.jar
View gist:60ecfc3e120e10e8a3e1f801539520e6
[] ~/projects/jruby $ generate-appcds
*** Outputting list of classes at /Users/headius/projects/jruby/lib/jruby.list
skip writing class jdk/proxy1/$Proxy0 from source __dynamic_proxy__ to classlist file
skip writing class jdk/proxy1/$Proxy6 from source __dynamic_proxy__ to classlist file
skip writing class com/sun/proxy/jdk/proxy1/$Proxy7 from source __dynamic_proxy__ to classlist file
skip writing class com/sun/proxy/jdk/proxy1/$Proxy13 from source __dynamic_proxy__ to classlist file
skip writing class jdk/proxy1/$Proxy14 from source __dynamic_proxy__ to classlist file
skip writing class jdk/proxy1/$Proxy19 from source __dynamic_proxy__ to classlist file
skip writing class java/lang/invoke/BoundMethodHandle$Species_LI from source _ClassSpecializer_generateConcreteSpeciesCode to classlist file
@headius
headius / command_lines.txt
Last active Sep 25, 2020
Simple JavaFX app in JRuby
View command_lines.txt
java --module-path /Users/headius/Downloads/javafx-sdk-15/lib --add-modules javafx.controls \
-Djruby.home=`pwd` -cp lib/jruby.jar org.jruby.Main javafx2.rb
jruby -e 'Dir["/Users/headius/Downloads/javafx-sdk-15/lib/*.jar"].each {|f| require f}; load "javafx2.rb"'
@headius
headius / output.txt
Created Sep 11, 2020
Using versions:display-plugin-updates to show Maven plugin version negotiation
View output.txt
[] ~/projects/jnr-ffi $ mvn versions:display-plugin-updates
[INFO] Scanning for projects...
[INFO]
[INFO] -----------------------< com.github.jnr:jnr-ffi >-----------------------
[INFO] Building jnr-ffi 2.2.0-SNAPSHOT
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- versions-maven-plugin:2.8.1:display-plugin-updates (default-cli) @ jnr-ffi ---
[INFO]
[INFO] The following plugin updates are available:
@headius
headius / 1.patch.diff
Created Sep 3, 2020
Hacky patch for "unloaded classes" and resulting inlined code
View 1.patch.diff
diff --git a/core/src/main/java/org/jruby/ir/targets/JVM.java b/core/src/main/java/org/jruby/ir/targets/JVM.java
index c24a8524a9..a630941524 100644
--- a/core/src/main/java/org/jruby/ir/targets/JVM.java
+++ b/core/src/main/java/org/jruby/ir/targets/JVM.java
@@ -3,6 +3,7 @@ package org.jruby.ir.targets;
import com.headius.invokebinder.Signature;
import org.jruby.RubyInstanceConfig;
import org.jruby.RubyModule;
+import org.jruby.compiler.impl.SkinnyMethodAdapter;
import org.jruby.ir.IRScope;