Skip to content
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: jruby/jruby
Failed to load repositories. Confirm that selected base ref is valid, then try again.
Loading
base: 53d3517fce76
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: 83d0c965cb29
Choose a head ref

Commits on Nov 29, 2017

  1. Use superinterface here to catch all jnr-enxio channels.

    Adds UNIXServer/Socket support for #4858.
    headius committed Nov 29, 2017
    Copy the full SHA
    12bb2fa View commit details
  2. Optimize CFG by allowing empty non-exception edged BB with one path t…

    …o merge
    
    with that one path BB.  In a sense you can think of it as an airbubble in that
    edge!  Bleed it!
    enebo committed Nov 29, 2017
    Copy the full SHA
    ffa0151 View commit details
  3. In thinking I was removing unneeded exception edges in the CFG I acci…

    …dentally
    
    found I implemented a FIXME where optimize() was already removing unneeded
    exception edges :)
    
    This version should mildly improve CFG creation because it does not add and
    then remove these edges.  It also has a nice new canRaiseExceptions() in BB.
    enebo committed Nov 29, 2017
    Copy the full SHA
    6505929 View commit details

Commits on Dec 1, 2017

  1. Copy the full SHA
    b4caf46 View commit details
  2. Formatting.

    headius committed Dec 1, 2017
    Copy the full SHA
    d8dc9f3 View commit details
  3. Mutiple fixes for pipes and subprocess IO.

    * Port 2015 redirect logic for popen.
    * Improve cloexec for subprocess IO.
    * Make cloexec work for any streams we can get realFileno for.
    ** This allows it to work for JVM-provided pipes if they can be
       unwrapped.
    
    See #4858
    headius committed Dec 1, 2017
    Copy the full SHA
    ac40a48 View commit details
  4. Copy the full SHA
    3f85428 View commit details
  5. fd2v may not be in param

    headius committed Dec 1, 2017
    Copy the full SHA
    58da14e View commit details
  6. Wrong type.

    headius committed Dec 1, 2017
    Copy the full SHA
    086c350 View commit details
  7. Don't unconditionally emit debug level info from RACC

    In
    3fe1cc2,
    jruby's version of racc/parser.rb was brought in line with MRI
    racc/parser.rb. This brought along a change to the yyparse method which
    changed the last argument from false to true. This causes the java racc
    parser implementation to unconditionally emit very noisy debug output
    whenever yyparse is called, where previously it would not emit such
    output. Passing true is safe for the pure ruby parser, as it ignores the
    argument entirely and does nothing with it. It is also safe for the
    native c parser, as that parser only emits debug info if it is compiled
    with DEBUG set. Tenderlove's version of racc disabled debug by default
    in
    ruby/racc@c5359ab,
    but it looks like MRI never picked up that change.
    For a time, true was passed and debugging info was not emitted (between
    9.1.9.0 and 9.1.12.0). This was because in the merge to bring
    racc/parser.rb in line with MRI, the loading of the java cparse library
    no longer happened, so the pure ruby version of the library was used
    which ignores the debug parameter entirely. This changed in
    baeaad1
    when the cparse-java.jar was being loaded again for jruby.
    haus committed Dec 1, 2017
    Copy the full SHA
    de12ad3 View commit details
  8. Remove mri_test_env.rb

    headius committed Dec 1, 2017
    Copy the full SHA
    1705c5f View commit details
  9. Copy the full SHA
    f301415 View commit details
  10. Copy the full SHA
    8228a4c View commit details

Commits on Dec 2, 2017

  1. Copy the full SHA
    96538a6 View commit details
  2. Update TestProcess excludes.

    headius committed Dec 2, 2017
    Copy the full SHA
    455c13e View commit details
  3. Unnecessary cast.

    headius committed Dec 2, 2017
    Copy the full SHA
    5899fa1 View commit details
  4. Copy the full SHA
    0faf6a3 View commit details

Commits on Dec 5, 2017

  1. Remove passing defined? tag.

    headius committed Dec 5, 2017
    Copy the full SHA
    78146d5 View commit details
  2. Copy the full SHA
    fab6c5a View commit details
  3. Merge pull request #4881 from haus/jruby-9.1-dont-emit-debug-in-racc

    Don't unconditionally emit debug level info from RACC
    headius authored Dec 5, 2017
    Copy the full SHA
    80b3b3d View commit details
  4. fix test_regsub_K

    lopex authored and headius committed Dec 5, 2017
    Copy the full SHA
    07f9e65 View commit details
  5. untag test_regsub_K

    lopex authored and headius committed Dec 5, 2017
    Copy the full SHA
    bede47a View commit details
  6. Copy the full SHA
    a25301e View commit details
  7. Copy the full SHA
    307f557 View commit details
  8. Re-add an mbean for monitoring cache invalidations.

    This is for #4384.
    
    For this initial version, methods and constants only have a single
    value indicating validation count globally. For constants, this
    will aggregate all constant names (which are invalidated
    separately). For methods, this will aggregate all class hierarchy
    invalidations, which will frequently mean a single invalidation
    event will increment this value many times, depending on the size
    of the hierarchy below it. This latter point could be improved
    but we don't really have a clear place to say "this is the top
    invalidation" at the moment.
    headius committed Dec 5, 2017
    Copy the full SHA
    0e6efdd View commit details
  9. pick new jruby-readline

    this will include the jline shaded and relocated in the readline.jar
    
    fixes #4740
    mkristian authored and headius committed Dec 5, 2017
    Copy the full SHA
    a8bfd60 View commit details
  10. Avoid deadlocks in IO by only locking one thing. Fixes #4854

    There are two changes here, with the first the more likely cause
    of #4854:
    
    1. While leaving the OpenFile lock locked, we proceeded to
       attempt to lock the Selector being selected. If the order of
       these locks happens differently elsewhere, it will cause a
       deadlock. Fixed by unlocking the OpenFile lock before locking
       the Selector lock.
    2. OpenFile.removeBlockingThread synchronized on both OpenFile's
       lock and the OpenFile instance itself. I could find only a
       handful of other places that lock OpenFile and they do not
       appear to lock anything else, but there's no reason to lock
       OpenFile here anyway.
    headius committed Dec 5, 2017
    Copy the full SHA
    fd1f47a View commit details

Commits on Dec 6, 2017

  1. Copy the full SHA
    4a4afa7 View commit details
  2. Copy the full SHA
    b332ab9 View commit details
  3. Copy the full SHA
    024e20c View commit details
  4. Fixes #4882. Ripper doesn't handle private def with nested block....a…

    …nd others.
    
    While slowly figuring out a single-line change which fixed this issue I also
    noticed several other mismatches between the two parsers.  Hopefully, at this
    point, they are identical.
    
    I also deleted a emacs turd.
    
    RubyParser.y appears to be changed but they were minor whitespace differences
    with Ripper.  I tried to make these two files a little bit easier to diff.
    enebo committed Dec 6, 2017
    Copy the full SHA
    0ecc2c3 View commit details
  5. Fix one regression (caused massive duplication in reported elements -…

    …- which
    
    seemed to just break yard but not mri tests) from last fix.  Still one more
    regression to go.
    enebo committed Dec 6, 2017
    Copy the full SHA
    2eafcdb View commit details
  6. Fixes another regression from fix of #4882. In this case we would loo…

    …k for
    
    duplicated variables in higher level production f_opt and f_block_opt but now
    that check is done at the actual variable itself.
    enebo committed Dec 6, 2017
    Copy the full SHA
    5dc99c3 View commit details

Commits on Dec 7, 2017

  1. Update for 9.1.15.0.

    enebo committed Dec 7, 2017
    Copy the full SHA
    929fde8 View commit details

Commits on Dec 11, 2017

  1. Copy the full SHA
    60537e4 View commit details
  2. Copy the full SHA
    cf2e775 View commit details
  3. Copy the full SHA
    5e16c80 View commit details
  4. Copy the full SHA
    aa70c3c View commit details
  5. Copy the full SHA
    719ef28 View commit details

Commits on Dec 12, 2017

  1. Fix ThreadNexter shutdown killing nexter thread already executing a d…

    …ifferent task
    
    Signed-off-by: Charles Oliver Nutter <headius@headius.com>
    jmalves authored and headius committed Dec 12, 2017
    Copy the full SHA
    3011d3d View commit details
  2. Copy the full SHA
    99b7edc View commit details
  3. Cherry-picked from dad9ab0.

    This does not incorporate the updated MRI 2.4 test.
    headius committed Dec 12, 2017
    Copy the full SHA
    3493a91 View commit details
  4. Copy the full SHA
    c5313a0 View commit details
  5. Merge branch 'jruby-9.1'

    headius committed Dec 12, 2017
    Copy the full SHA
    76be88a View commit details

Commits on Dec 14, 2017

  1. Copy the full SHA
    a115d59 View commit details
  2. Copy the full SHA
    f7f31b4 View commit details

Commits on Dec 15, 2017

  1. Copy the full SHA
    1c94b5e View commit details
  2. Copy the full SHA
    56371cc View commit details
  3. Copy the full SHA
    29aa077 View commit details
  4. Clean up imports.

    headius committed Dec 15, 2017
    Copy the full SHA
    daaa4fd View commit details
Showing 433 changed files with 10,271 additions and 7,002 deletions.
5 changes: 2 additions & 3 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -12,9 +12,8 @@ before_install:
- unset _JAVA_OPTIONS
- rm ~/.m2/settings.xml
- export MAVEN_SKIP_RC=true
- mvn -Xmx32M -v | grep 1.7.0; if [ $? = 0 ]; then export MAVEN_OPTS="-XX:MaxPermSize=160M"; else export MAVEN_OPTS="-XX:MaxMetaspaceSize=144M -XX:CompressedClassSpaceSize=96M"; fi
- export MAVEN_OPTS="-Xms64M -Xmx512M $MAVEN_OPTS"
- export JAVA_OPTS="$JAVA_OPTS"
- export MAVEN_OPTS="-Xmn64M -Xmx512M -XX:MaxMetaspaceSize=144M -XX:CompressedClassSpaceSize=96M"
- export JAVA_OPTS="$JAVA_OPTS -XX:MaxMetaspaceSize=96M -XX:CompressedClassSpaceSize=96M"

before_script:
- unset GEM_PATH GEM_HOME IRBRC JRUBY_OPTS
18 changes: 12 additions & 6 deletions core/pom.rb
Original file line number Diff line number Diff line change
@@ -46,7 +46,7 @@
jar 'com.github.jnr:jnr-enxio:0.16', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-x86asm:1.0.2', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-unixsocket:0.17', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-posix:3.0.42', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-posix:3.0.43', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-constants:0.9.9', :exclusions => ['com.github.jnr:jnr-ffi']
jar 'com.github.jnr:jnr-ffi:2.1.7'
jar 'com.github.jnr:jffi:${jffi.version}'
@@ -57,7 +57,7 @@
jar 'org.jruby.jcodings:jcodings:1.0.26'
jar 'org.jruby:dirgra:0.3'

jar 'com.headius:invokebinder:1.10'
jar 'com.headius:invokebinder:1.11'
jar 'com.headius:options:1.4'

jar 'bsf:bsf:2.4.0', :scope => 'provided'
@@ -167,8 +167,8 @@
'compilerArgs' => { 'arg' => '-J-Xmx1G' },
'showWarnings' => 'true',
'showDeprecation' => 'true',
'source' => [ '${base.java.version}', '1.7' ],
'target' => [ '${base.javac.version}', '1.7' ],
'source' => [ '${base.java.version}', '1.8' ],
'target' => [ '${base.javac.version}', '1.8' ],
'useIncrementalCompilation' => 'false' ) do
execute_goals( 'compile',
:id => 'anno',
@@ -271,7 +271,10 @@
'outputFile' => '${jruby.basedir}/lib/jruby.jar',
'transformers' => [ { '@implementation' => 'org.apache.maven.plugins.shade.resource.ManifestResourceTransformer',
'mainClass' => 'org.jruby.Main' } ],
'createSourcesJar' => '${create.sources.jar}' )
'createSourcesJar' => '${create.sources.jar}',
filters:
{filter: {artifact: 'com.headius:invokebinder', excludes: {exclude: '**/module-info.class'}}}
)
end

[:all, :release, :main, :osgi, :j2ee, :complete, :dist, :'jruby_complete_jar_extended', :'jruby-jars' ].each do |name|
@@ -293,7 +296,10 @@
relocations: [
{pattern: 'org.objectweb', shadedPattern: 'org.jruby.org.objectweb' },
{pattern: 'me.qmx.jitescript', shadedPattern: 'org.jruby.me.qmx.jitescript'},
] )
],
filters:
{filter: {artifact: 'com.headius:invokebinder', excludes: {exclude: '**/module-info.class'}}}
)
end
end
end
88 changes: 84 additions & 4 deletions core/pom.xml
Original file line number Diff line number Diff line change
@@ -135,7 +135,7 @@ DO NOT MODIFIY - GENERATED CODE
<dependency>
<groupId>com.github.jnr</groupId>
<artifactId>jnr-posix</artifactId>
<version>3.0.42</version>
<version>3.0.43</version>
<exclusions>
<exclusion>
<artifactId>jnr-ffi</artifactId>
@@ -193,7 +193,7 @@ DO NOT MODIFIY - GENERATED CODE
<dependency>
<groupId>com.headius</groupId>
<artifactId>invokebinder</artifactId>
<version>1.10</version>
<version>1.11</version>
</dependency>
<dependency>
<groupId>com.headius</groupId>
@@ -536,9 +536,9 @@ DO NOT MODIFIY - GENERATED CODE
<showWarnings>true</showWarnings>
<showDeprecation>true</showDeprecation>
<source>${base.java.version}</source>
<source>1.7</source>
<source>1.8</source>
<target>${base.javac.version}</target>
<target>1.7</target>
<target>1.8</target>
<useIncrementalCompilation>false</useIncrementalCompilation>
</configuration>
</plugin>
@@ -620,6 +620,14 @@ DO NOT MODIFIY - GENERATED CODE
</transformer>
</transformers>
<createSourcesJar>${create.sources.jar}</createSourcesJar>
<filters>
<filter>
<artifact>com.headius:invokebinder</artifact>
<excludes>
<exclude>**/module-info.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
@@ -684,6 +692,14 @@ DO NOT MODIFIY - GENERATED CODE
<shadedPattern>org.jruby.me.qmx.jitescript</shadedPattern>
</relocation>
</relocations>
<filters>
<filter>
<artifact>com.headius:invokebinder</artifact>
<excludes>
<exclude>**/module-info.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
@@ -722,6 +738,14 @@ DO NOT MODIFIY - GENERATED CODE
<shadedPattern>org.jruby.me.qmx.jitescript</shadedPattern>
</relocation>
</relocations>
<filters>
<filter>
<artifact>com.headius:invokebinder</artifact>
<excludes>
<exclude>**/module-info.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
@@ -760,6 +784,14 @@ DO NOT MODIFIY - GENERATED CODE
<shadedPattern>org.jruby.me.qmx.jitescript</shadedPattern>
</relocation>
</relocations>
<filters>
<filter>
<artifact>com.headius:invokebinder</artifact>
<excludes>
<exclude>**/module-info.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
@@ -798,6 +830,14 @@ DO NOT MODIFIY - GENERATED CODE
<shadedPattern>org.jruby.me.qmx.jitescript</shadedPattern>
</relocation>
</relocations>
<filters>
<filter>
<artifact>com.headius:invokebinder</artifact>
<excludes>
<exclude>**/module-info.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
@@ -836,6 +876,14 @@ DO NOT MODIFIY - GENERATED CODE
<shadedPattern>org.jruby.me.qmx.jitescript</shadedPattern>
</relocation>
</relocations>
<filters>
<filter>
<artifact>com.headius:invokebinder</artifact>
<excludes>
<exclude>**/module-info.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
@@ -874,6 +922,14 @@ DO NOT MODIFIY - GENERATED CODE
<shadedPattern>org.jruby.me.qmx.jitescript</shadedPattern>
</relocation>
</relocations>
<filters>
<filter>
<artifact>com.headius:invokebinder</artifact>
<excludes>
<exclude>**/module-info.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
@@ -912,6 +968,14 @@ DO NOT MODIFIY - GENERATED CODE
<shadedPattern>org.jruby.me.qmx.jitescript</shadedPattern>
</relocation>
</relocations>
<filters>
<filter>
<artifact>com.headius:invokebinder</artifact>
<excludes>
<exclude>**/module-info.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
@@ -950,6 +1014,14 @@ DO NOT MODIFIY - GENERATED CODE
<shadedPattern>org.jruby.me.qmx.jitescript</shadedPattern>
</relocation>
</relocations>
<filters>
<filter>
<artifact>com.headius:invokebinder</artifact>
<excludes>
<exclude>**/module-info.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
@@ -988,6 +1060,14 @@ DO NOT MODIFIY - GENERATED CODE
<shadedPattern>org.jruby.me.qmx.jitescript</shadedPattern>
</relocation>
</relocations>
<filters>
<filter>
<artifact>com.headius:invokebinder</artifact>
<excludes>
<exclude>**/module-info.class</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
7 changes: 6 additions & 1 deletion core/src/main/java/org/jruby/CompatVersion.java
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
package org.jruby;

@Deprecated
public enum CompatVersion {

@Deprecated RUBY1_8,
@@ -8,14 +9,17 @@ public enum CompatVersion {
@Deprecated RUBY2_1,
@Deprecated BOTH;

@Deprecated
public boolean is1_9() {
return this == RUBY1_9 || this == RUBY2_0 || this == RUBY2_1;
}

@Deprecated
public boolean is2_0() {
return this == RUBY2_0 || this == RUBY2_1;
}

@Deprecated
public static CompatVersion getVersionFromString(String compatString) {
if (compatString.equalsIgnoreCase("RUBY1_8")) {
return CompatVersion.RUBY1_8;
@@ -37,7 +41,8 @@ public static CompatVersion getVersionFromString(String compatString) {
return null;
}
}


@Deprecated
public static boolean shouldBindMethod(CompatVersion runtimeVersion, CompatVersion methodVersion) {
if (runtimeVersion == RUBY1_8) return methodVersion == RUBY1_8 || methodVersion == BOTH;
if (runtimeVersion == RUBY1_9) return methodVersion == RUBY1_9 || methodVersion == BOTH;
6 changes: 6 additions & 0 deletions core/src/main/java/org/jruby/PrependedModule.java
Original file line number Diff line number Diff line change
@@ -53,6 +53,12 @@ public PrependedModule(Ruby runtime, RubyClass superClass, RubyModule origin) {
}
}

@Override
public void addMethod(String name, DynamicMethod method) {
super.addMethod(name, method);
method.setDefinedClass(origin);
}

@Override
public boolean isPrepended() {
return true;
Loading