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: 79fb61c36698
Choose a base ref
...
head repository: jruby/jruby
Failed to load repositories. Confirm that selected head ref is valid, then try again.
Loading
compare: de2e863b5c11
Choose a head ref

Commits on Apr 19, 2015

  1. Copy the full SHA
    71b46c9 View commit details
  2. skip BC + classloader test

    mkristian committed Apr 19, 2015
    Copy the full SHA
    156ac52 View commit details

Commits on Apr 20, 2015

  1. Copy the full SHA
    4108e96 View commit details
  2. Copy the full SHA
    f40e626 View commit details
  3. Copy the full SHA
    1f47333 View commit details
  4. Squashed 'spec/ruby/' changes from 44248dc..45d075c

    45d075c Add missing behavior expectation in last spec.
    fd39782 Add a spec for Module#method_added with undef_method.
    
    git-subtree-dir: spec/ruby
    git-subtree-split: 45d075c8c47ef0cc15ee5cb126806148ad0f5d35
    eregon committed Apr 20, 2015
    Copy the full SHA
    2c38858 View commit details
  5. Copy the full SHA
    d67a173 View commit details
  6. Copy the full SHA
    5539cbd View commit details
  7. Copy the full SHA
    190234d View commit details
  8. Copy the full SHA
    4e6eab6 View commit details
  9. Tag out new test failures?

    enebo committed Apr 20, 2015
    Copy the full SHA
    1630b58 View commit details
  10. Copy the full SHA
    98be7e7 View commit details
  11. Copy the full SHA
    d6c1248 View commit details
  12. Copy the full SHA
    8f642a2 View commit details
  13. Copy the full SHA
    d8bb622 View commit details
  14. [Truffle] Fix most of break.

    * Breaks out of the call site.
    * Relax the type of the ForNode child.
    * Fix #2826, #2675.
    eregon committed Apr 20, 2015
    Copy the full SHA
    434c8a2 View commit details
  15. Copy the full SHA
    d061cbc View commit details
  16. Copy the full SHA
    3b1b368 View commit details
  17. Slightly adapt internal tests exclude code.

    * So to not depend on default definee.
    eregon committed Apr 20, 2015
    Copy the full SHA
    ff7a1d0 View commit details
  18. Copy the full SHA
    c0a8a73 View commit details
  19. Merge pull request #2848 from bjfish/truffle_long_specializations

    [Truffle] Adding additional long handling for multiple specializations.
    chrisseaton committed Apr 20, 2015
    Copy the full SHA
    b7ddabb View commit details
  20. Copy the full SHA
    ee3dd5a View commit details
  21. 3
    Copy the full SHA
    5b2f01f View commit details
  22. Copy the full SHA
    f77343e View commit details
  23. 2
    Copy the full SHA
    cddd031 View commit details

Commits on Apr 21, 2015

  1. Tune glibc memory usage

    There is a report of better memory usage with this setting.
    
    See travis-ci/travis-cookbooks#458 and https://devcenter.heroku.com/articles/testing-cedar-14-memory-use.
    BanzaiMan committed Apr 21, 2015
    1
    Copy the full SHA
    891f12e View commit details
  2. even less warnings with jar-dependencies [skip ci]

    Conflicts:
    	lib/pom.rb
    mkristian committed Apr 21, 2015
    Copy the full SHA
    3ff5b6d View commit details
  3. Copy the full SHA
    f831308 View commit details
  4. Copy the full SHA
    594bdb1 View commit details
  5. Copy the full SHA
    52e612f View commit details
  6. Squashed 'spec/ruby/' changes from 45d075c..77c82b3

    77c82b3 Do not rely on thread status for Queue#num_waiting.
    
    git-subtree-dir: spec/ruby
    git-subtree-split: 77c82b3e1535364f0ba5187461fd117c62dba93e
    eregon committed Apr 21, 2015
    Copy the full SHA
    4f26468 View commit details
  7. Copy the full SHA
    8e02ad4 View commit details
  8. Copy the full SHA
    9bdc321 View commit details
  9. Merge pull request #2858 from sferik/fix-rbenv-instructions

    Fix rbenv install instructions
    mkristian committed Apr 21, 2015
    Copy the full SHA
    470acf2 View commit details
  10. [Truffle] Have a decent path for Time#to_f since that seems used much…

    … in practice.
    
    * Time#-(Time) should be used instead.
    * Or even better Process.clock_gettime(Process::CLOCK_MONOTONIC).
    eregon committed Apr 21, 2015
    Copy the full SHA
    7e88d72 View commit details
  11. Merge pull request #2852 from bjfish/truffle_mri_index_excludes

    [Truffle] Adding initial MRI test index and excludes.
    chrisseaton committed Apr 21, 2015
    Copy the full SHA
    2c7e601 View commit details
  12. Copy the full SHA
    042969b View commit details
  13. Copy the full SHA
    6d7368c View commit details
  14. [Truffle] Fix spec failure.

    * Fiber also receive ThreadExitException with the current scheme.
    eregon committed Apr 21, 2015
    Copy the full SHA
    76990cd View commit details
  15. Copy the full SHA
    28490d4 View commit details
  16. Copy the full SHA
    543177b View commit details
  17. Copy the full SHA
    e7c7beb View commit details
  18. Merge branch 'master' into truffle-io

    Conflicts:
    	truffle/src/main/java/org/jruby/truffle/runtime/core/CoreLibrary.java
    chrisseaton committed Apr 21, 2015
    Copy the full SHA
    d4bf119 View commit details
  19. Copy the full SHA
    1094eb1 View commit details

Commits on Apr 22, 2015

  1. Copy the full SHA
    f255290 View commit details
  2. Copy the full SHA
    de2e863 View commit details
Showing 316 changed files with 2,984 additions and 707 deletions.
1 change: 1 addition & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -21,6 +21,7 @@ os:
env:
global:
- JAVA_OPTS="-XX:+TieredCompilation -XX:TieredStopAtLevel=1"
- MALLOC_ARENA_MAX=2
matrix:
- PHASE='-Ptest'
- PHASE='-Prake -Dtask=test:jruby'
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# JRuby - an implementation of the Ruby language on the JVM

Master: [![Build Status](https://travis-ci.org/jruby/jruby.png?branch=master)](https://travis-ci.org/jruby/jruby)
Master: [![Build Status](https://travis-ci.org/jruby/jruby.png?branch=master)](https://travis-ci.org/jruby/jruby)
1.7 branch: [![Build Status](https://travis-ci.org/jruby/jruby.png?branch=jruby-1_7)](https://travis-ci.org/jruby/jruby/branches)

## About
@@ -40,7 +40,7 @@ For [`rbenv`](https://github.com/sstephenson/rbenv) you will need the
package manager can provide these. Then you can run:

```
$ rbenv install rbenv install jruby-9.0.0.0-dev
$ rbenv install jruby-9.0.0.0-dev
```

For [`rvm`](https://rvm.io) you can simply do:
@@ -69,7 +69,7 @@ Stefan Matthias Aust, Anders Bengtsson, Geert Bevin, Ola Bini,
Daiki Ueno, Matthias Veit, Jason Voegele, Sergey Yevtushenko, Robert Yokota,
and many gracious contributors from the community.

JRuby uses code generously shared by the creator of the Ruby language,
JRuby uses code generously shared by the creator of the Ruby language,
Yukihiro Matsumoto <matz@netlab.co.jp>.

Project Contact: Thomas E Enebo <tom.enebo@gmail.com>
2 changes: 1 addition & 1 deletion core/pom.xml
Original file line number Diff line number Diff line change
@@ -41,7 +41,7 @@
<parser.dir>core/src/main/java/org/jruby/parser</parser.dir>
<jruby.basedir>${basedir}/..</jruby.basedir>
<rubyspec.dir>${spec.dir}/ruby</rubyspec.dir>
<version.ruby.revision>49761</version.ruby.revision>
<version.ruby.revision>50293</version.ruby.revision>
<jruby.test.memory>3G</jruby.test.memory>
<mspec.dir>${spec.dir}/mspec</mspec.dir>
<build.date>${maven.build.timestamp}</build.date>
2 changes: 1 addition & 1 deletion core/src/main/java/org/jruby/util/io/PopenExecutor.java
Original file line number Diff line number Diff line change
@@ -1183,7 +1183,7 @@ static void execargFixup(ThreadContext context, Ruby runtime, ExecArg eargp) {
}
else {
envtbl = runtime.getObject().getConstant("ENV");
envtbl = TypeConverter.convertToType(envtbl, runtime.getHash(), "to_hash");
envtbl = TypeConverter.convertToType(envtbl, runtime.getHash(), "to_hash").dup();
}
if (envopts != null) {
RubyHash stenv = (RubyHash)envtbl;
13 changes: 8 additions & 5 deletions core/src/main/java/org/jruby/util/io/SelectExecutor.java
Original file line number Diff line number Diff line change
@@ -117,7 +117,7 @@ IRubyObject selectInternal(ThreadContext context) throws IOException {
pendingReadFDs.add(fptr.fd());
}
}
if (pendingReadFDs != null) { /* no blocking if there's buffered data */
if (pendingReadFDs != null || unselectableReadFDs != null) {/* ready to go if there's buffered data or we can't select */
timeout = (long) 0;
}
}
@@ -130,6 +130,9 @@ IRubyObject selectInternal(ThreadContext context) throws IOException {
fptr = write_io.getOpenFileChecked();
fdSetWrite(context, fptr.fd(), writeAry.size());
}
if (unselectableWriteFDs != null) {/* ready to go if we can't select */
timeout = (long) 0;
}
}

RubyArray exceptAry = null;
@@ -240,8 +243,8 @@ private int maxWriteReadySize() {
}

private void fdSetRead(ThreadContext context, ChannelFD fd, int maxSize) throws IOException {
if (fd.chFile != null || fd.isNativeFile) {
// files are not selectable, so we treat them as ready
if (fd.chSelect == null) {
// channels that are not selectable are treated as always ready, like files
if (unselectableReadFDs == null) unselectableReadFDs = new ArrayList(1);
unselectableReadFDs.add(fd);
return;
@@ -253,8 +256,8 @@ private void fdSetRead(ThreadContext context, ChannelFD fd, int maxSize) throws
}

private void fdSetWrite(ThreadContext context, ChannelFD fd, int maxSize) throws IOException {
if (fd.chFile != null || fd.isNativeFile) {
// files are not selectable, so we treat them as ready
if (fd.chSelect == null) {
// channels that are not selectable are treated as always ready, like files
if (unselectableWriteFDs == null) unselectableWriteFDs = new ArrayList(1);
unselectableWriteFDs.add(fd);
return;
6 changes: 3 additions & 3 deletions lib/pom.rb
Original file line number Diff line number Diff line change
@@ -24,12 +24,12 @@ def version
ImportedGem.new( 'jruby-readline', '1.0', false ),
ImportedGem.new( 'rake', 'rake.version', true ),
ImportedGem.new( 'rdoc', 'rdoc.version', true ),
ImportedGem.new( 'json', 'json.version', true ),
ImportedGem.new( 'jar-dependencies', '0.1.12', true ),
ImportedGem.new( 'minitest', 'minitest.version', true ),
ImportedGem.new( 'test-unit', 'test-unit.version', true ),
ImportedGem.new( 'power_assert', 'power_assert.version', true ),
ImportedGem.new( 'psych', '2.0.9.2', true )
ImportedGem.new( 'psych', '2.0.9.2', true ),
ImportedGem.new( 'json', 'json.version', true ),
ImportedGem.new( 'jar-dependencies', '0.1.13', true )
]

project 'JRuby Lib Setup' do
2 changes: 1 addition & 1 deletion lib/pom.xml
Original file line number Diff line number Diff line change
@@ -93,7 +93,7 @@
<dependency>
<groupId>rubygems</groupId>
<artifactId>jar-dependencies</artifactId>
<version>0.1.12</version>
<version>0.1.13</version>
<type>gem</type>
<scope>provided</scope>
<exclusions>
15 changes: 14 additions & 1 deletion lib/ruby/stdlib/jruby/compiler.rb
Original file line number Diff line number Diff line change
@@ -162,6 +162,9 @@ def compile_files_with_options(filenames, options = default_options)
IRWriter.persist(stream, scope)
string = String.from_java_bytes(bytes.to_byte_array, 'BINARY')

# bust it up into 32k-1 chunks
pieces = string.scan(/.{1,32767}/m)

cls = ClassWriter.new(ClassWriter::COMPUTE_MAXS | ClassWriter::COMPUTE_FRAMES)
cls.visit(
Opcodes::V1_7,
@@ -185,7 +188,17 @@ def compile_files_with_options(filenames, options = default_options)
main.astore(1)
main.aload(1)
main.aload(1)
main.ldc(string)

# put String back together
main.newobj("java/lang/StringBuilder")
main.dup
main.invokespecial("java/lang/StringBuilder", "<init>", "()V")
pieces.each do |piece|
main.ldc(piece)
main.invokevirtual("java/lang/StringBuilder", "append", "(Ljava/lang/String;)Ljava/lang/StringBuilder;")
end
main.invokevirtual("java/lang/Object", "toString", "()Ljava/lang/String;")

main.ldc("ISO-8859-1")
main.invokevirtual("java/lang/String", "getBytes", "(Ljava/lang/String;)[B")
main.invokestatic("org/jruby/ir/runtime/IRRuntimeHelpers", "decodeScopeFromBytes", "(Lorg/jruby/Ruby;[B)Lorg/jruby/ir/IRScope;")
1 change: 1 addition & 0 deletions lib/ruby/truffle/mri/benchmark.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
require_relative '../../stdlib/benchmark'

This file was deleted.

66 changes: 0 additions & 66 deletions maven/jruby/src/it/bouncycastle-with-bc-gem/pom.xml

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
describe "An unselectable (for read) channel" do
it "is considered ready by IO.select" do
bios = java.io.ByteArrayInputStream.new('hello'.to_java_bytes)
ch = java.nio.channels.Channels.new_channel(bios)
io = ch.to_io

reads, * = IO.select([io], nil, nil, 1000)

expect(reads.size).to eq(1)
expect(reads[0]).to eq(io)
end
end
14 changes: 14 additions & 0 deletions spec/ruby/core/module/method_added_spec.rb
Original file line number Diff line number Diff line change
@@ -33,4 +33,18 @@ def test() end
$methods_added = nil
end
end

it "is not called when a method is undefined in self" do
m = Module.new do
def method_to_undef
end

def self.method_added(name)
fail("method_added called by undef_method")
end

undef_method :method_to_undef
end
m.should_not have_method(:method_to_undef)
end
end
2 changes: 1 addition & 1 deletion spec/ruby/library/thread/shared/queue/num_waiting.rb
Original file line number Diff line number Diff line change
@@ -6,7 +6,7 @@
5.times do |i|
q.num_waiting.should == i
t = Thread.new { q.deq }
Thread.pass until t.status == 'sleep'
Thread.pass until q.num_waiting == i+1
threads << t
end

2 changes: 0 additions & 2 deletions spec/truffle/tags/core/array/cycle_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/array/frozen_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/array/inspect_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/array/intersection_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/array/join_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/array/new_tags.txt

This file was deleted.

2 changes: 0 additions & 2 deletions spec/truffle/tags/core/array/sort_by_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/array/to_s_tags.txt

This file was deleted.

2 changes: 0 additions & 2 deletions spec/truffle/tags/core/basicobject/instance_exec_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/bignum/bit_or_tags.txt
Original file line number Diff line number Diff line change
@@ -1,2 +1 @@
fails:Bignum#| raises a TypeError when passed a Float
fails:Bignum#| returns self bitwise OR other when one operand is negative
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/bignum/modulo_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/complex/minus_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/complex/plus_tags.txt

This file was deleted.

10 changes: 0 additions & 10 deletions spec/truffle/tags/core/enumerable/cycle_tags.txt
Original file line number Diff line number Diff line change
@@ -1,11 +1 @@
fails:Enumerable#cycle passed no argument or nil loops indefinitely
fails:Enumerable#cycle passed no argument or nil yields successive elements of the array repeatedly
fails:Enumerable#cycle passed no argument or nil calls each at most once
fails:Enumerable#cycle passed no argument or nil yields only when necessary
fails:Enumerable#cycle passed a number n as an argument returns nil and does nothing for non positive n
fails:Enumerable#cycle passed a number n as an argument calls each at most once
fails:Enumerable#cycle passed a number n as an argument yields only when necessary
fails:Enumerable#cycle passed a number n as an argument tries to convert n to an Integer using #to_int
fails:Enumerable#cycle passed a number n as an argument raises a TypeError when the passed n can be coerced to Integer
fails:Enumerable#cycle passed a number n as an argument raises an ArgumentError if more arguments are passed
fails:Enumerable#cycle passed a number n as an argument gathers whole arrays as elements when each yields multiple
1 change: 0 additions & 1 deletion spec/truffle/tags/core/enumerable/drop_while_tags.txt

This file was deleted.

2 changes: 0 additions & 2 deletions spec/truffle/tags/core/enumerable/each_cons_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/enumerable/include_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/enumerable/member_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/enumerable/take_while_tags.txt

This file was deleted.

3 changes: 0 additions & 3 deletions spec/truffle/tags/core/enumerator/each_with_index_tags.txt

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/enumerator/generator/each_tags.txt

This file was deleted.

This file was deleted.

1 change: 0 additions & 1 deletion spec/truffle/tags/core/enumerator/inject_tags.txt

This file was deleted.

Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
fails:Enumerator::Lazy#collect_concat calls the block with initial values when yield with multiple arguments
fails:Enumerator::Lazy#collect_concat when the returned lazy enumerator is evaluated by Enumerable#first stops after specified times
fails:Enumerator::Lazy#collect_concat when the returned lazy enumerator is evaluated by Enumerable#first flattens elements when the given block returned an array or responding to .each and .force
fails:Enumerator::Lazy#collect_concat on a nested Lazy when the returned lazy enumerator is evaluated by Enumerable#first stops after specified times
fails:Enumerator::Lazy#collect_concat on a nested Lazy when the returned lazy enumerator is evaluated by Enumerable#first flattens elements when the given block returned an array or responding to .each and .force
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/enumerator/lazy/collect_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
fails:Enumerator::Lazy#collect calls the block with initial values when yield with multiple arguments
fails:Enumerator::Lazy#collect when the returned lazy enumerator is evaluated by Enumerable#first stops after specified times
fails:Enumerator::Lazy#collect on a nested Lazy when the returned lazy enumerator is evaluated by Enumerable#first stops after specified times
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/enumerator/lazy/drop_tags.txt

This file was deleted.

2 changes: 0 additions & 2 deletions spec/truffle/tags/core/enumerator/lazy/drop_while_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
fails:Enumerator::Lazy#drop_while calls the block with initial values when yield with multiple arguments
fails:Enumerator::Lazy#drop_while when the returned lazy enumerator is evaluated by Enumerable#first stops after specified times
fails:Enumerator::Lazy#drop_while on a nested Lazy when the returned lazy enumerator is evaluated by Enumerable#first stops after specified times
3 changes: 0 additions & 3 deletions spec/truffle/tags/core/enumerator/lazy/enum_for_tags.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1 @@
fails:Enumerator::Lazy#enum_for requires multiple arguments
fails:Enumerator::Lazy#enum_for generates a lazy enumerator from the given name
fails:Enumerator::Lazy#enum_for passes given arguments to wrapped method
fails:Enumerator::Lazy#enum_for used by some parent's methods though returning Lazy
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/enumerator/lazy/find_all_tags.txt
Original file line number Diff line number Diff line change
@@ -1,3 +1 @@
fails:Enumerator::Lazy#find_all calls the block with a gathered array when yield with multiple arguments
fails:Enumerator::Lazy#find_all when the returned lazy enumerator is evaluated by Enumerable#first stops after specified times
fails:Enumerator::Lazy#find_all on a nested Lazy when the returned lazy enumerator is evaluated by Enumerable#first stops after specified times
2 changes: 0 additions & 2 deletions spec/truffle/tags/core/enumerator/lazy/flat_map_tags.txt
Original file line number Diff line number Diff line change
@@ -1,5 +1,3 @@
fails:Enumerator::Lazy#flat_map calls the block with initial values when yield with multiple arguments
fails:Enumerator::Lazy#flat_map when the returned lazy enumerator is evaluated by Enumerable#first stops after specified times
fails:Enumerator::Lazy#flat_map when the returned lazy enumerator is evaluated by Enumerable#first flattens elements when the given block returned an array or responding to .each and .force
fails:Enumerator::Lazy#flat_map on a nested Lazy when the returned lazy enumerator is evaluated by Enumerable#first stops after specified times
fails:Enumerator::Lazy#flat_map on a nested Lazy when the returned lazy enumerator is evaluated by Enumerable#first flattens elements when the given block returned an array or responding to .each and .force
Loading