Skip to content

Instantly share code, notes, and snippets.

Avatar

Charles Oliver Nutter headius

View GitHub Profile
View simpler_variable_search.diff
diff --git a/core/src/main/java/org/jruby/parser/StaticScope.java b/core/src/main/java/org/jruby/parser/StaticScope.java
index 66c9b71c61..32c644f730 100644
--- a/core/src/main/java/org/jruby/parser/StaticScope.java
+++ b/core/src/main/java/org/jruby/parser/StaticScope.java
@@ -37,6 +37,7 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
+import java.util.Map;
import java.util.function.BiConsumer;
@headius
headius / outline_escape_munging.diff
Created December 20, 2022 04:50
One chunk of code that can be outlined in parser to reduce #advance size by almost 6000 instructions
View outline_escape_munging.diff
diff --git a/lib/parser/lexer.rl b/lib/parser/lexer.rl
index e477b06..88efafc 100644
--- a/lib/parser/lexer.rl
+++ b/lib/parser/lexer.rl
@@ -445,6 +445,60 @@ class Parser::Lexer
# Ruby >= 32, regexp, exceptional case
!literal.regexp?
end
+
+ def current_literal_munge_escape(current_literal)
@headius
headius / timeout numbers.md
Created May 15, 2022 14:39
IPS numbers for various Timeout impls
View timeout numbers.md

JRuby Java implementation

timeout default error
                        346.592k (± 5.2%) i/s -      1.747M in   5.055170s
 timeout given error    350.905k (± 5.5%) i/s -      1.775M in   5.073569s

JRuby Ruby port of Java implementation

timeout default error
@headius
headius / jruby_9.3.4.0_notes.md
Created March 23, 2022 16:06
JRuby 9.3.4.0 release notes
View jruby_9.3.4.0_notes.md

Thanks to our contributors this cycle for helping to improve compatibility: [@ahorek], [@byteit101], [@k77ch7]

Ruby Compatibility

  • define_singleton_method now always uses public visibility. This simplifies its implementation and eliminates warnings when aliasing it, as in the ostruct gem. ([ruby/ostruct#40], [#7031], [#7055])

Java Integration

View jruby_tmpdir.diff
--- lib/tmpdir.rb 2022-01-26 15:27:27.000000000 -0600
+++ ../jruby/lib/ruby/stdlib/tmpdir.rb 2021-10-27 14:50:07.000000000 -0500
@@ -1,20 +1,20 @@
# frozen_string_literal: true
#
# tmpdir - retrieve temporary directory path
#
# $Id$
#
View jruby_resolv_diff.diff
--- lib/resolv.rb 2022-01-26 15:27:26.000000000 -0600
+++ ../jruby/lib/ruby/stdlib/resolv.rb 2021-10-27 14:50:07.000000000 -0500
@@ -29,20 +29,24 @@
# p ress.map { |r| [r.exchange.to_s, r.preference] }
# end
#
#
# == Bugs
#
# * NIS is not supported.
@headius
headius / pickjdk.bash
Created January 25, 2022 16:18
pickjdk: JDK switcher for MacOS
View pickjdk.bash
#!/bin/bash
#
# Provides a function that allows you to choose a JDK. Just set the environment
# variable JDKS_ROOT to the directory containing multiple versions of the JDK
# and the function will prompt you to select one. JAVA_HOME and PATH will be cleaned
# up and set appropriately.
# Usage:
# Include in .profile or .bashrc or source at login to get 'pickjdk' command.
# 'pickjdk' alone to bring up a menu of installed JDKs on OS X. Select one.
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 21:34
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