Skip to content
Permalink
Browse files
Merge remote-tracking branch 'origin' into mcjit
  • Loading branch information
brixen committed Jan 25, 2016
2 parents bab0934 + fa397f8 commit 0699fba8880e3b37fb5ee2e14e2d6fefc2a76619
Showing with 1,496 additions and 368 deletions.
  1. +5 −18 .travis.yml
  2. +1 −1 Gemfile.installed
  3. +1 −1 Gemfile.lock
  4. +13 −8 README
  5. +6 −1 README.md
  6. +6 −0 configure
  7. +0 −8 dockerfiles/ubuntu/14.04/Dockerfile
  8. +0 −8 dockerfiles/ubuntu/15.10/Dockerfile
  9. +5 −4 gems_list.txt
  10. +0 −7 kernel/bootstrap/io.rb
  11. +22 −0 kernel/common/argf.rb
  12. +42 −19 kernel/common/array.rb
  13. +1 −1 kernel/common/binding.rb
  14. +3 −7 kernel/common/comparable.rb
  15. +2 −0 kernel/common/complex.rb
  16. +42 −29 kernel/common/enumerable.rb
  17. +20 −10 kernel/common/enumerator.rb
  18. +15 −0 kernel/common/file.rb
  19. +48 −0 kernel/common/hash.rb
  20. +37 −12 kernel/common/io.rb
  21. +2 −1 kernel/common/kernel.rb
  22. +8 −0 kernel/common/numeric.rb
  23. +2 −2 kernel/common/random.rb
  24. +2 −1 kernel/common/string.rb
  25. +13 −0 kernel/common/struct.rb
  26. +1 −0 kernel/platform/posix.rb
  27. +8 −3 scripts/deploy.sh
  28. +1 −6 scripts/llvm.sh
  29. +4 −0 scripts/tag.sh
  30. +4 −7 spec/ruby/core/argf/close_spec.rb
  31. +3 −41 spec/ruby/core/argf/read_spec.rb
  32. +75 −0 spec/ruby/core/argf/readpartial_spec.rb
  33. +62 −0 spec/ruby/core/argf/shared/read.rb
  34. +66 −0 spec/ruby/core/array/bsearch_index_spec.rb
  35. +44 −0 spec/ruby/core/array/dig_spec.rb
  36. +15 −0 spec/ruby/core/bignum/negative_spec.rb
  37. +15 −0 spec/ruby/core/bignum/positive_spec.rb
  38. +2 −26 spec/ruby/core/comparable/equal_value_spec.rb
  39. +5 −1 spec/ruby/core/dir/close_spec.rb
  40. +2 −2 spec/ruby/core/dir/shared/open.rb
  41. +5 −19 spec/ruby/core/enumerable/chunk_spec.rb
  42. +36 −0 spec/ruby/core/enumerable/chunk_while_spec.rb
  43. +5 −0 spec/ruby/core/enumerable/first_spec.rb
  44. +34 −0 spec/ruby/core/enumerable/grep_v_spec.rb
  45. +2 −26 spec/ruby/core/enumerable/slice_before_spec.rb
  46. +2 −2 spec/ruby/core/enumerator/lazy/drop_while_spec.rb
  47. +4 −0 spec/ruby/core/enumerator/lazy/fixtures/classes.rb
  48. +2 −2 spec/ruby/core/enumerator/lazy/grep_spec.rb
  49. +84 −0 spec/ruby/core/enumerator/lazy/grep_v_spec.rb
  50. +2 −2 spec/ruby/core/enumerator/lazy/initialize_spec.rb
  51. +2 −2 spec/ruby/core/enumerator/lazy/reject_spec.rb
  52. +2 −2 spec/ruby/core/enumerator/lazy/shared/collect_concat.rb
  53. +2 −2 spec/ruby/core/enumerator/lazy/shared/select.rb
  54. +1 −1 spec/ruby/core/enumerator/lazy/shared/to_enum.rb
  55. +2 −2 spec/ruby/core/enumerator/lazy/take_while_spec.rb
  56. +10 −0 spec/ruby/core/exception/receiver_spec.rb
  57. +2 −2 spec/ruby/core/exception/system_call_error_spec.rb
  58. +51 −0 spec/ruby/core/file/mkfifo_spec.rb
  59. +15 −0 spec/ruby/core/fixnum/negative_spec.rb
  60. +15 −0 spec/ruby/core/fixnum/positive_spec.rb
  61. +30 −0 spec/ruby/core/float/negative_spec.rb
  62. +30 −0 spec/ruby/core/float/positive_spec.rb
  63. +44 −0 spec/ruby/core/hash/dig_spec.rb
  64. +31 −0 spec/ruby/core/hash/fetch_values_spec.rb
  65. +13 −0 spec/ruby/core/hash/greater_than_or_equal_spec.rb
  66. +13 −0 spec/ruby/core/hash/greater_than_spec.rb
  67. +13 −0 spec/ruby/core/hash/less_than_or_equal_spec.rb
  68. +13 −0 spec/ruby/core/hash/less_than_spec.rb
  69. +15 −0 spec/ruby/core/hash/shared/comparison.rb
  70. +23 −0 spec/ruby/core/hash/shared/greater_than.rb
  71. +23 −0 spec/ruby/core/hash/shared/less_than.rb
  72. +20 −0 spec/ruby/core/hash/to_proc_spec.rb
  73. +4 −8 spec/ruby/core/io/close_read_spec.rb
  74. +2 −2 spec/ruby/core/io/close_spec.rb
  75. +4 −8 spec/ruby/core/io/close_write_spec.rb
  76. +29 −1 spec/ruby/core/io/puts_spec.rb
  77. +43 −11 spec/ruby/core/io/read_nonblock_spec.rb
  78. +9 −0 spec/ruby/core/io/shared/each.rb
  79. +13 −3 spec/ruby/core/io/write_nonblock_spec.rb
  80. +5 −0 spec/ruby/core/kernel/loop_spec.rb
  81. +66 −2 spec/ruby/core/kernel/rand_spec.rb
  82. +18 −0 spec/ruby/core/numeric/negative_spec.rb
  83. +18 −0 spec/ruby/core/numeric/positive_spec.rb
  84. +15 −0 spec/ruby/core/rational/negative_spec.rb
  85. +15 −0 spec/ruby/core/rational/positive_spec.rb
  86. +6 −0 spec/ruby/core/string/new_spec.rb
  87. +41 −0 spec/ruby/core/struct/dig_spec.rb
  88. +14 −0 spec/ruby/language/fixtures/super.rb
  89. +14 −0 spec/ruby/language/super_spec.rb
  90. +8 −0 spec/ruby/optional/capi/kernel_spec.rb
  91. +4 −6 spec/ruby/optional/capi/numeric_spec.rb
  92. +5 −0 spec/ruby/optional/capi/thread_spec.rb
  93. +1 −0 spec/tags/ruby/core/exception/receiver_tags.txt
  94. +1 −0 spec/tags/ruby/language/super_tags.txt
  95. +0 −2 vm/builtin/dir.cpp
  96. +0 −34 vm/builtin/io.cpp
  97. +0 −3 vm/builtin/io.hpp
  98. +8 −0 vm/capi/bignum.cpp
  99. +1 −2 vm/capi/kernel.cpp
  100. +2 −0 vm/capi/thread.cpp
  101. +1 −0 vm/ontology.cpp
@@ -3,12 +3,15 @@ sudo: required
dist: trusty
compiler:
- clang
os:
- linux
- osx
ruby: 2.2.0
before_install:
- echo $LANG
- echo $LC_ALL
- if [ $TRAVIS_OS_NAME == linux ]; then sudo apt-get update && sudo apt-get install -y libedit-dev llvm-3.6; fi
- if [ $TRAVIS_OS_NAME == linux ]; then ./scripts/llvm.sh; fi
- if [ $TRAVIS_OS_NAME == osx ]; then brew update && brew install llvm; fi
- rvm use $RVM --install --binary --fuzzy
- gem update --system
- gem --version
before_script:
@@ -21,8 +24,6 @@ after_success:
branches:
only:
- master
- 1.8.7
- 2.2
- "/^v\\d+\\./"
notifications:
email: false
@@ -37,24 +38,10 @@ notifications:
on_success: change
on_failure: always
on_start: always
matrix:
exclude:
- compiler: clang
- os: linux
- os: osx
include:
- env: RVM=rbx-2
os: osx
- env: RVM=2.2.0
os: linux
compiler: clang
env:
global:
- LANG="en_US.UTF-8"
- RBXOPT=-Xint
- secure: olbok/GN6rOYvPnHBYWGz7giCoCdLFpT/7WSBHukYO3E0uNeqAUOOgW2BFOwCVWdSEJ/iTvJXZQ4qVZHX+6jRfvILZeGv+D2P93VdD8UFQRoTOfFC7esAo525s9fuKm9ehUGWZxlzGOBHHckky1jn6pEf8mlXAVM5e76dlH0fck=
- secure: aqG9eB/PrzQ7XJQN6YX/00sNVvwSB77saxXQzguL2WFjAXB74h6168Hzq+awHtNX/vfOb6ta7fpWLHrA0D+gmZnvTR29VlP6nd0vs1tkdX1/jWbiBHjamRffp+NWVdKbJKYn5iLOGXcuUMOzY/opLKOdvxKZfkxGMxR2tTNLZUE=
- secure: eElvNLjuFZAuixJdgom4Kv8RDziE4ArFcSEwYctvprMe/414CAaJcFkjQKg0RrJzAxZ51oGjdcZhEfmjNXcUU1gA5l++IdnlQm0x4kt8r7aql+q2geHzrrjhhwPujT9a8JNtXs6dHnbi+quNlxyVItWzeGJsjyhJzH8hxiFhCYI=
os:
- linux
- osx
@@ -8,7 +8,7 @@ gem "daedalus-core", "~> 0.1"
gem "rubinius-build_tools", "~> 2.0"
gem "rubinius-developer_tools", "~> 2.0"

gem "rubysl", "~> 2.0"
gem "rubysl", "~> 2.2"
gem "rubysl-test-unit", "~> 2.0"
gem "minitest", "~> 4.7"
gem "racc", "~> 1.4"
@@ -2,7 +2,7 @@ GEM
remote: https://rubygems.org/
specs:
daedalus-core (0.5.0)
rake (10.4.2)
rake (10.5.0)
redcard (1.1.0)
rubinius-ast (2.3.2)
rubinius-bridge (1.1.0)
21 README
@@ -11,10 +11,15 @@ Rubinius runs on Mac OS X and many Unix/Linux operating systems. Microsoft
Windows is not yet supported.


2. The Ruby Programming Language
2. Code of Conduct

Participation in the Rubinius project is governed by the Rubinius Code of
Conduct. See http://rubinius.com/code-of-conduct/

3. The Ruby Programming Language

Many popular Ruby applications, like Rails, run on Rubinius, which aims to be
compatible with Ruby version 2.1.
compatible with Ruby version 2.2.

Rubinius includes a Ruby parser, Ruby bytecode compiler, Ruby core library,
and C-API compatibility for native C extensions. The Ruby core library is
@@ -33,13 +38,13 @@ The following Ruby features are not supported on Rubinius:
* $SAFE levels


3. License
4. License

Rubinius uses the MPL-2.0 license. See LICENSE for details. Contributions made
prior to January 3rd, 2016 are licensed under the old BSD 3-clause license. A
copy of this license can be found in the file "BSD_LICENSE".

4. Installing Rubinius from Source
5. Installing Rubinius from Source

To install Rubinius, use the following steps:

@@ -56,21 +61,21 @@ information see http://rubinius.com/doc/en/getting-started/requirements/
and http://rubinius.com/doc/en/getting-started/building/.


5. Using RubyGems
6. Using RubyGems

Rubinius comes with RubyGems built-in. To install a gem, run the following:

$ rbx -S gem install <gem_name>


6. Documentation
7. Documentation

The Rubinius documentation is available at the Rubinius website:

http://rubinius.com


7. Issues & Support
8. Issues & Support

Please file tickets for bugs or problems. The issue tracker is:

@@ -81,7 +86,7 @@ For additional help, visit the Rubinius Gitter chat room:
https://gitter.im/rubinius/rubinius


8. Contributing
9. Contributing

The Rubinius team welcomes contributions. For more information, read the
CONTRIBUTING file in the root directory of Rubinius.
@@ -9,10 +9,15 @@ Rubinius includes a bytecode virtual machine, generational garbage collector, an
Rubinius runs on Mac OS X and many Unix/Linux operating systems. Microsoft Windows is not yet supported.


### Code of Conduct

Participation in the Rubinius project is governed by the Rubinius [Code of
Conduct](http://rubinius.com/code-of-conduct/).

### The Ruby Programming Language

Many popular Ruby applications, like Rails, run on Rubinius, which aims to be
compatible with Ruby version 2.1.
compatible with Ruby version 2.2.

Rubinius includes a Ruby parser, Ruby bytecode compiler, Ruby core library,
and C-API compatibility for native C extensions. The Ruby core library is
@@ -77,6 +77,7 @@ class Configure
@dtrace_const = false
@have_lchmod = false
@have_lchown = false
@have_mkfifo = false
@debug_build = false
@include_dirs = []
@lib_dirs = []
@@ -1280,6 +1281,10 @@ int main() { return tgetnum(""); }
if has_function("lchown", ["sys/stat.h", "unistd.h"])
@have_lchown = true
end

if has_function("mkfifo", ["sys/stat.h", "sys/types.h"])
@have_mkfifo = true
end
end

def detect_structures
@@ -1641,6 +1646,7 @@ int main() { return tgetnum(""); }
#define RBX_LIBC "#{@libc}"
#define RBX_HAVE_LCHMOD #{@have_lchmod}
#define RBX_HAVE_LCHOWN #{@have_lchown}
#define RBX_HAVE_MKFIFO #{@have_mkfifo}
#define RBX_DEBUG_BUILD #{@debug_build.inspect}
EOC

This file was deleted.

This file was deleted.

@@ -5,7 +5,7 @@ json-1.8.3.gem
minitest-4.7.5.gem
psych-2.0.17.gem
racc-1.4.14.gem
rake-10.4.2.gem
rake-10.5.0.gem
rb-readline-0.5.3.gem
rdoc-4.2.1.gem
redcard-1.1.0.gem
@@ -20,7 +20,7 @@ rubinius-melbourne-2.3.1.0.gem
rubinius-processor-2.3.0.gem
rubinius-profiler-2.0.2.gem
rubinius-toolset-2.3.1.gem
rubysl-2.1.0.gem
rubysl-2.2.0.gem
rubysl-abbrev-2.0.4.gem
rubysl-base64-2.0.0.gem
rubysl-benchmark-2.0.1.gem
@@ -70,9 +70,9 @@ rubysl-net-smtp-2.0.1.gem
rubysl-net-telnet-2.0.0.gem
rubysl-nkf-2.0.1.gem
rubysl-observer-2.0.0.gem
rubysl-open-uri-2.0.0.gem
rubysl-open3-2.0.0.gem
rubysl-openssl-2.8.0.gem
rubysl-open-uri-2.0.0.gem
rubysl-optparse-2.0.1.gem
rubysl-ostruct-2.1.0.gem
rubysl-pathname-2.1.0.gem
@@ -93,7 +93,7 @@ rubysl-securerandom-2.0.0.gem
rubysl-set-2.0.1.gem
rubysl-shellwords-2.0.0.gem
rubysl-singleton-2.0.0.gem
rubysl-socket-2.1.0.gem
rubysl-socket-2.1.1.gem
rubysl-stringio-2.0.0.gem
rubysl-strscan-2.0.0.gem
rubysl-sync-2.0.0.gem
@@ -107,6 +107,7 @@ rubysl-timeout-2.0.0.gem
rubysl-tmpdir-2.0.1.gem
rubysl-tsort-2.0.1.gem
rubysl-un-2.0.0.gem
rubysl-unicode_normalize-2.0.gem
rubysl-uri-2.0.0.gem
rubysl-weakref-2.0.0.gem
rubysl-webrick-2.0.0.gem
@@ -145,13 +145,6 @@ def socket_recv(bytes, flags, type)
raise PrimitiveFailure, "io_socket_read failed"
end

module Socketable
def accept
Rubinius.primitive :io_accept
raise PrimitiveFailure, "io_accept failed"
end
end

module TransferIO
def send_io
Rubinius.primitive :io_send_io
@@ -330,6 +330,7 @@ def readbyte
def read(bytes=nil, output=nil)
# The user might try to pass in nil, so we have to check here
output ||= default_value
output.clear

if bytes
bytes_left = bytes
@@ -401,6 +402,27 @@ def readlines(sep=$/)

alias_method :to_a, :readlines

def readpartial(maxlen, output=nil)
output ||= default_value

unless advance!
output.clear
raise EOFError, "ARGF at end"
end

begin
@stream.readpartial(maxlen, output)
rescue EOFError => e
raise e if @use_stdin_only

@stream.close
@advance = true
advance! or raise e
end

return output
end

#
# Rewind the stream to its beginning.
#
Loading

0 comments on commit 0699fba

Please sign in to comment.