diff --git a/.bundle/config b/.bundle/config
new file mode 100644
index 000000000..d13a8592a
--- /dev/null
+++ b/.bundle/config
@@ -0,0 +1,2 @@
+---
+BUNDLE_JOBS: "4"
diff --git a/.ruby-version b/.ruby-version
index bff6ce5c1..7bde84d06 100644
--- a/.ruby-version
+++ b/.ruby-version
@@ -1 +1 @@
-ruby-2.7.1
+ruby-3.1.2
diff --git a/Gemfile b/Gemfile
index b7e8b4cc5..074faaf0a 100644
--- a/Gemfile
+++ b/Gemfile
@@ -2,7 +2,7 @@
source 'https://rubygems.org'
-ruby '2.7.1'
+ruby '3.1.2'
gem 'activesupport', '~> 6.0', '>= 6.0.3.2', require: 'active_support/all'
gem 'minitest', '~> 5.14', '>= 5.14.1'
diff --git a/Gemfile.lock b/Gemfile.lock
index dd4e2a4e5..a557ba4b0 100644
--- a/Gemfile.lock
+++ b/Gemfile.lock
@@ -1,8 +1,8 @@
GIT
remote: https://github.com/kern/minitest-reporters.git
- revision: 9cb9e78aed69bfe4eed6c27b5b795e8bb4ad708f
+ revision: 466b060a906298148836e368916aee930d28f618
specs:
- minitest-reporters (1.4.2)
+ minitest-reporters (1.5.0)
ansi
builder
minitest (>= 5.0)
@@ -11,29 +11,28 @@ GIT
GEM
remote: https://rubygems.org/
specs:
- activesupport (6.0.3.2)
+ activesupport (6.1.6)
concurrent-ruby (~> 1.0, >= 1.0.2)
- i18n (>= 0.7, < 2)
- minitest (~> 5.1)
- tzinfo (~> 1.1)
- zeitwerk (~> 2.2, >= 2.2.2)
+ i18n (>= 1.6, < 2)
+ minitest (>= 5.1)
+ tzinfo (~> 2.0)
+ zeitwerk (~> 2.3)
ansi (1.5.0)
builder (3.2.4)
coderay (1.1.3)
- concurrent-ruby (1.1.6)
- i18n (1.8.3)
+ concurrent-ruby (1.1.10)
+ i18n (1.10.0)
concurrent-ruby (~> 1.0)
method_source (1.0.0)
- minitest (5.14.1)
+ minitest (5.15.0)
pry (0.13.1)
coderay (~> 1.1)
method_source (~> 1.0)
- rake (13.0.1)
- ruby-progressbar (1.10.1)
- thread_safe (0.3.6)
- tzinfo (1.2.7)
- thread_safe (~> 0.1)
- zeitwerk (2.4.0)
+ rake (13.0.6)
+ ruby-progressbar (1.11.0)
+ tzinfo (2.0.4)
+ concurrent-ruby (~> 1.0)
+ zeitwerk (2.5.4)
PLATFORMS
mswin64
@@ -48,7 +47,7 @@ DEPENDENCIES
rake (~> 13.0, >= 13.0.1)
RUBY VERSION
- ruby 2.7.1p83
+ ruby 3.1.2p20
BUNDLED WITH
2.1.4
diff --git a/lib/compiler.rb b/lib/compiler.rb
index 1839f95ff..1ce544861 100644
--- a/lib/compiler.rb
+++ b/lib/compiler.rb
@@ -487,7 +487,7 @@ def log(message = nil)
warn message
end
- def stuff(library, &block)
+ def stuff(library, &)
source = File.join PRJ_ROOT, 'vendor', library
target = File.join @options[:tmpdir], library
@@ -498,7 +498,7 @@ def stuff(library, &block)
log "=> Stuffing #{library}..."
@utils.capture_run_io "stuff_#{library}" do
- @utils.chdir(target, &block)
+ @utils.chdir(target, &)
end
log "=> Stuffed #{library}"
@@ -789,7 +789,7 @@ def local_toolchain_env
{
'CI' => 'true',
'GEM_PATH' => File.join(@ruby_install, 'lib', 'ruby', 'gems', self.class.ruby_api_version),
- 'PATH' => "#{File.join(@ruby_install, 'bin')}:#{ENV['PATH']}",
+ 'PATH' => "#{File.join(@ruby_install, 'bin')}:#{ENV.fetch('PATH', nil)}",
'ENCLOSE_IO_USE_ORIGINAL_RUBY' => 'true',
'ENCLOSE_IO_RUBYC_1ST_PASS' => 'true',
'ENCLOSE_IO_RUBYC_2ND_PASS' => nil
diff --git a/lib/compiler/utils.rb b/lib/compiler/utils.rb
index 00a1a024f..9ff39ca70 100644
--- a/lib/compiler/utils.rb
+++ b/lib/compiler/utils.rb
@@ -77,9 +77,9 @@ def run_allow_failures(*args)
status
end
- def chdir(path, &block)
+ def chdir(path, &)
warn "-> cd #{path}" unless @options[:quiet]
- Dir.chdir(path, &block)
+ Dir.chdir(path, &)
warn "-> cd #{Dir.pwd}" unless @options[:quiet]
end
@@ -90,7 +90,7 @@ def cp(from, to)
def cp_r(from, to, options = {})
warn "-> cp -r #{from.inspect} #{to.inspect}" unless @options[:quiet]
- FileUtils.cp_r(from, to, options)
+ FileUtils.cp_r(from, to, **options)
end
def rm(path)
diff --git a/ruby/.appveyor.yml b/ruby/.appveyor.yml
new file mode 100644
index 000000000..9ebe41e1c
--- /dev/null
+++ b/ruby/.appveyor.yml
@@ -0,0 +1,104 @@
+---
+version: '{build}'
+init:
+ - git config --global user.name git
+ - git config --global user.email svn-admin@ruby-lang.org
+ - git config --global core.autocrlf false
+ - git config --global core.eol lf
+ - git config --global advice.detachedHead 0
+shallow_clone: true
+clone_depth: 10
+platform:
+ - x64
+skip_commits:
+ message: /^\[DOC\]/
+ files:
+ - doc/*
+ - '**/*.md'
+ - '**/*.rdoc'
+environment:
+ ruby_version: "24-%Platform%"
+ zlib_version: "1.2.11"
+ matrix:
+ - build: vs
+ vs: 120
+ ssl: OpenSSL
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2013
+ GEMS_FOR_TEST: ""
+ - build: vs
+ vs: 140
+ ssl: OpenSSL-v111
+ APPVEYOR_BUILD_WORKER_IMAGE: Visual Studio 2015
+ GEMS_FOR_TEST: ""
+ RELINE_TEST_ENCODING: "UTF-8"
+for:
+-
+ matrix:
+ only:
+ - build: vs
+ install:
+ - ver
+ - chcp
+ - SET BITS=%Platform:x86=32%
+ - SET BITS=%BITS:x=%
+ - SET OPENSSL_DIR=C:\%ssl%-Win%BITS%
+ - CALL SET vcvars=%%^VS%VS%COMNTOOLS^%%..\..\VC\vcvarsall.bat
+ - SET vcvars
+ - '"%vcvars%" %Platform:x64=amd64%'
+ - SET ruby_path=C:\Ruby%ruby_version:-x86=%
+ - SET PATH=\usr\local\bin;%ruby_path%\bin;%PATH%;C:\msys64\mingw64\bin;C:\msys64\usr\bin
+ - ruby --version
+ - 'cl'
+ - echo> Makefile srcdir=.
+ - echo>> Makefile MSC_VER=0
+ - echo>> Makefile RT=none
+ - echo>> Makefile RT_VER=0
+ - echo>> Makefile BUILTIN_ENCOBJS=nul
+ - type win32\Makefile.sub >> Makefile
+ - nmake %mflags% up VCSUP="echo Update OK"
+ - nmake %mflags% extract-extlibs
+ - del Makefile
+ - mkdir \usr\local\bin
+ - mkdir \usr\local\include
+ - mkdir \usr\local\lib
+ - SET ZLIB_ZIP=.downloaded-cache\zlib%zlib_version:.=%.zip
+ - if not exist %ZLIB_ZIP% curl -fsSL -o %ZLIB_ZIP% --retry 10 https://zlib.net/zlib%zlib_version:.=%.zip
+ - 7z x -aos -o%APPVEYOR_BUILD_FOLDER%\ext\zlib %ZLIB_ZIP%
+ - for %%I in (%OPENSSL_DIR%\*.dll) do mklink /h \usr\local\bin\%%~nxI %%I
+ - attrib +r /s /d
+ - mkdir %Platform%-mswin_%vs%
+ build_script:
+ - cd %APPVEYOR_BUILD_FOLDER%
+ - cd %Platform%-mswin_%vs%
+ - ..\win32\configure.bat --without-ext=+,dbm,gdbm,readline --with-opt-dir=/usr/local --with-openssl-dir=%OPENSSL_DIR:\=/%
+ - nmake -l
+ - nmake install-nodoc
+ - \usr\bin\ruby -v -e "p :locale => Encoding.find('locale'), :filesystem => Encoding.find('filesystem')"
+ - if not "%GEMS_FOR_TEST%" == "" \usr\bin\gem install --no-document %GEMS_FOR_TEST%
+ - \usr\bin\ruby -ropenssl -e "puts 'Build ' + OpenSSL::OPENSSL_VERSION, 'Runtime ' + OpenSSL::OPENSSL_LIBRARY_VERSION"
+ test_script:
+ - set /a JOBS=%NUMBER_OF_PROCESSORS%
+ - nmake -l "TESTOPTS=-v -q" btest
+ - nmake -l "TESTOPTS=-v -q" test-basic
+ - nmake -l "TESTOPTS=-v --timeout-scale=3.0 --excludes=../test/excludes/_appveyor -j%JOBS% --exclude readline --exclude win32ole --exclude test_bignum --exclude test_syntax --exclude test_open-uri --exclude test_bundled_ca" test-all
+ # separately execute tests without -j which may crash worker with -j.
+ - nmake -l "TESTOPTS=-v --timeout-scale=3.0 --excludes=../test/excludes/_appveyor" test-all TESTS="../test/win32ole ../test/ruby/test_bignum.rb ../test/ruby/test_syntax.rb ../test/open-uri/test_open-uri.rb ../test/rubygems/test_bundled_ca.rb"
+ - nmake -l test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
+notifications:
+ - provider: Webhook
+ method: POST
+ url:
+ secure: CcFlJNDJ/a6to7u3Z4Fnz6dScEPNx7hTha2GkSRlV+1U6dqmxY/7uBcLXYb9gR3jfQk6w+2o/HrjNAyXMNGU/JOka3s2WRI4VKitzM+lQ08owvJIh0R7LxrGH0J2e81U # ruby-lang slack: ruby/simpler-alerts-bot
+ body: >-
+ {{^isPullRequest}}
+ {
+ "ci": "AppVeyor CI",
+ "env": "Visual Studio 2013 / 2015",
+ "url": "{{buildUrl}}",
+ "commit": "{{commitId}}",
+ "branch": "{{branch}}"
+ }
+ {{/isPullRequest}}
+ on_build_success: false
+ on_build_failure: true
+ on_build_status_changed: false
diff --git a/ruby/.cirrus.yml b/ruby/.cirrus.yml
new file mode 100644
index 000000000..c8fb326c8
--- /dev/null
+++ b/ruby/.cirrus.yml
@@ -0,0 +1,64 @@
+# This CI is used to test Arm cases. We can set the maximum 16 tasks.
+# The entire testing design is inspired from .github/workflows/compilers.yml.
+
+# By default, Cirrus mounts an empty volume to `/tmp`
+# which triggers all sorts of warnings like "system temporary path is world-writable: /tmp".
+# Lets workaround it by specifying a custom volume mount point.
+env:
+ CIRRUS_VOLUME: /cirrus-ci-volume
+ LANG: C.UTF-8
+
+task:
+ name: Arm64 Graviton2 / $CC
+ skip: "changesIncludeOnly('doc/**', '**.{md,rdoc}')"
+ arm_container:
+ # We use the arm64 images at http://ghcr.io/ruby/ruby-ci-image .
+ image: ghcr.io/ruby/ruby-ci-image:$CC
+ # Define the used cpu core in each matrix task. We can use total 16 cpu
+ # cores in entire matrix. [cpu] = [total cpu: 16] / [number of tasks]
+ cpu: 8
+ # We can request maximum 4 GB per cpu.
+ # [memory per task] = [memory per cpu: 4 GB] * [cpu]
+ memory: 32G
+ env:
+ CIRRUS_CLONE_DEPTH: 50
+ optflags: '-O1'
+ debugflags: '-ggdb3'
+ RUBY_PREFIX: /tmp/ruby-prefix
+ RUBY_DEBUG: ci rgengc
+ RUBY_TESTOPTS: >-
+ -q
+ --color=always
+ --tty=no
+ matrix:
+ CC: clang-12
+ CC: gcc-11
+ id_script: id
+ set_env_script:
+ # Set `GNUMAKEFLAGS`, because the flags are GNU make specific. Note using
+ # the `make` environment variable used in compilers.yml causes some rubygems
+ # tests to fail.
+ # https://github.com/rubygems/rubygems/issues/4921
+ - echo "GNUMAKEFLAGS=-s -j$((1 + $CIRRUS_CPU))" >> $CIRRUS_ENV
+ print_env_script:
+ - echo "GNUMAKEFLAGS=$GNUMAKEFLAGS"
+ # Arm containers are executed in AWS's EKS, and it's not yet supporting IPv6
+ # See https://github.com/aws/containers-roadmap/issues/835
+ disable_ipv6_script: sudo ./tool/disable_ipv6.sh
+ autogen_script: ./autogen.sh
+ configure_script: >-
+ ./configure -C
+ --enable-debug-env
+ --disable-install-doc
+ --with-ext=-test-/cxxanyargs,+
+ --prefix="$RUBY_PREFIX"
+ make_extract-extlibs_script: make extract-extlibs
+ make_incs_script: make incs
+ make_script: make
+ make_leaked-globals_script: make leaked-globals
+ make_test_script: make test
+ make_install_script: make install
+ install_gems_for_test_script: $RUBY_PREFIX/bin/gem install --no-doc timezone tzinfo
+ make_test-tool_script: make test-tool
+ make_test-all_script: make test-all
+ make_test-spec_script: make test-spec
diff --git a/ruby/.dir-locals.el b/ruby/.dir-locals.el
index 7c32d1f7e..8f4b96445 100644
--- a/ruby/.dir-locals.el
+++ b/ruby/.dir-locals.el
@@ -24,6 +24,8 @@
(c-mode . ((c-file-style . "ruby")))
+ (c++-mode . ((c-file-style . "ruby")))
+
(change-log-mode .
((buffer-file-coding-system . us-ascii)
(indent-tabs-mode . t)
diff --git a/ruby/.document b/ruby/.document
index 8a418e5d4..6e08f4269 100644
--- a/ruby/.document
+++ b/ruby/.document
@@ -11,10 +11,18 @@
prelude.rb
rbconfig.rb
+array.rb
ast.rb
+dir.rb
gc.rb
io.rb
+kernel.rb
+marshal.rb
+numeric.rb
+nilclass.rb
pack.rb
+ractor.rb
+timev.rb
trace_point.rb
warning.rb
@@ -25,7 +33,7 @@ lib
ext
# rdoc files
-NEWS
+NEWS.md
README.md
README.ja.md
diff --git a/ruby/.gdbinit b/ruby/.gdbinit
index 0d4462269..8979e8b47 100644
--- a/ruby/.gdbinit
+++ b/ruby/.gdbinit
@@ -136,7 +136,7 @@ define rp
printf "%sT_ARRAY%s: len=%ld ", $color_type, $color_end, $len
if ($flags & RUBY_FL_USER2)
printf "(shared) shared="
- output/x ((struct RArray*)($arg0))->as.heap.aux.shared
+ output/x ((struct RArray*)($arg0))->as.heap.aux.shared_root
printf " "
else
printf "(ownership) capa=%ld ", ((struct RArray*)($arg0))->as.heap.aux.capa
@@ -156,12 +156,12 @@ define rp
else
if ($flags & RUBY_T_MASK) == RUBY_T_HASH
printf "%sT_HASH%s: ", $color_type, $color_end,
- if (((struct RHash *)($arg0))->basic->flags & RHASH_ST_TABLE_FLAG)
+ if (((struct RHash *)($arg0))->basic.flags & RHASH_ST_TABLE_FLAG)
printf "st len=%ld ", ((struct RHash *)($arg0))->as.st->num_entries
else
printf "li len=%ld bound=%ld ", \
- ((((struct RHash *)($arg0))->basic->flags & RHASH_AR_TABLE_SIZE_MASK) >> RHASH_AR_TABLE_SIZE_SHIFT), \
- ((((struct RHash *)($arg0))->basic->flags & RHASH_AR_TABLE_BOUND_MASK) >> RHASH_AR_TABLE_BOUND_SHIFT)
+ ((((struct RHash *)($arg0))->basic.flags & RHASH_AR_TABLE_SIZE_MASK) >> RHASH_AR_TABLE_SIZE_SHIFT), \
+ ((((struct RHash *)($arg0))->basic.flags & RHASH_AR_TABLE_BOUND_MASK) >> RHASH_AR_TABLE_BOUND_SHIFT)
end
print (struct RHash *)($arg0)
else
@@ -264,6 +264,10 @@ define rp
if ($flags & RUBY_T_MASK) == RUBY_T_ZOMBIE
printf "%sT_ZOMBIE%s: ", $color_type, $color_end
print (struct RData *)($arg0)
+ else
+ if ($flags & RUBY_T_MASK) == RUBY_T_MOVED
+ printf "%sT_MOVED%s: ", $color_type, $color_end
+ print *(struct RMoved *)$arg0
else
printf "%sunknown%s: ", $color_type, $color_end
print (struct RBasic *)($arg0)
@@ -300,6 +304,7 @@ define rp
end
end
end
+ end
end
document rp
Print a Ruby's VALUE.
@@ -1097,11 +1102,11 @@ define print_id
set $arylen = $ary->as.heap.len
end
set $result = $aryptr[($serial % ID_ENTRY_UNIT) * ID_ENTRY_SIZE + $t]
- if $result != RUBY_Qnil
+ if $result != RUBY_Qnil
print_string $result
- else
- echo undef
- end
+ else
+ echo undef
+ end
end
end
end
@@ -1274,7 +1279,7 @@ document rb_count_objects
Counts all objects grouped by type.
end
-# Details: https://bugs.ruby-lang.org/projects/ruby-trunk/wiki/MachineInstructionsTraceWithGDB
+# Details: https://bugs.ruby-lang.org/projects/ruby-master/wiki/MachineInstructionsTraceWithGDB
define trace_machine_instructions
set logging on
set height 0
@@ -1319,8 +1324,7 @@ define print_flags
printf "RUBY_FL_PROMOTED0 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_PROMOTED0 ? "1" : "0"
printf "RUBY_FL_PROMOTED1 : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_PROMOTED1 ? "1" : "0"
printf "RUBY_FL_FINALIZE : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_FINALIZE ? "1" : "0"
- printf "RUBY_FL_TAINT : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_TAINT ? "1" : "0"
- printf "RUBY_FL_UNTRUSTED : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_UNTRUSTED ? "1" : "0"
+ printf "RUBY_FL_SHAREABLE : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_SHAREABLE ? "1" : "0"
printf "RUBY_FL_EXIVAR : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_EXIVAR ? "1" : "0"
printf "RUBY_FL_FREEZE : %s\n", ((struct RBasic*)($arg0))->flags & RUBY_FL_FREEZE ? "1" : "0"
diff --git a/ruby/.gitattributes b/ruby/.gitattributes
new file mode 100644
index 000000000..d0c2d266b
--- /dev/null
+++ b/ruby/.gitattributes
@@ -0,0 +1,8 @@
+*.gemspec diff=ruby
+*.rb diff=ruby
+bin svn-properties=svn:ignore=ruby
+bin/* diff=ruby
+tool/update-deps diff=ruby
+tool/make-snapshot diff=ruby
+tool/format-release diff=ruby
+tool/leaked-globals diff=ruby
diff --git a/ruby/.github/CODEOWNERS b/ruby/.github/CODEOWNERS
new file mode 100644
index 000000000..15abc79af
--- /dev/null
+++ b/ruby/.github/CODEOWNERS
@@ -0,0 +1,10 @@
+# Lines starting with '#' are comments.
+# Each line is a file pattern followed by one or more owners.
+# Code owners will be automatically tagged as reviewers when a pull request is opened
+
+# YJIT sources and tests
+yjit* @maximecb @xrxr @tenderlove
+doc/yjit/* @maximecb @xrxr @tenderlove
+bootstraptest/test_yjit* @maximecb @xrxr @tenderlove
+test/ruby/test_yjit* @maximecb @xrxr @tenderlove
+.github/workflows/yjit* @maximecb @xrxr @tenderlove
diff --git a/ruby/.github/SECURITY.md b/ruby/.github/SECURITY.md
new file mode 100644
index 000000000..56baa2994
--- /dev/null
+++ b/ruby/.github/SECURITY.md
@@ -0,0 +1,9 @@
+# Security Policy
+
+## Supported Versions
+
+See .
+
+## Reporting a Vulnerability
+
+See .
diff --git a/ruby/.github/codeql/codeql-config.yml b/ruby/.github/codeql/codeql-config.yml
new file mode 100644
index 000000000..91f82b842
--- /dev/null
+++ b/ruby/.github/codeql/codeql-config.yml
@@ -0,0 +1,3 @@
+name: "CodeQL config for the Ruby language"
+
+languages: cpp
diff --git a/ruby/.github/workflows/baseruby.yml b/ruby/.github/workflows/baseruby.yml
new file mode 100644
index 000000000..cf86c2d7d
--- /dev/null
+++ b/ruby/.github/workflows/baseruby.yml
@@ -0,0 +1,65 @@
+name: BASERUBY Check
+
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+jobs:
+ baseruby:
+ name: BASERUBY
+ runs-on: ubuntu-20.04
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+ strategy:
+ matrix:
+ ruby:
+ - ruby-2.2
+# - ruby-2.3
+# - ruby-2.4
+# - ruby-2.5
+# - ruby-2.6
+ - ruby-2.7
+ - ruby-3.0
+
+ steps:
+ - uses: actions/checkout@v2
+ - uses: actions/cache@v2
+ with:
+ path: .downloaded-cache
+ key: downloaded-cache
+ - uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: ${{ matrix.ruby }}
+ bundler: none
+ - run: echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
+ - run: sudo apt-get install build-essential autoconf bison
+ - run: ./autogen.sh
+ - run: ./configure --disable-install-doc
+ - run: make common-srcs
+ - run: make incs
+ - run: make all
+ - run: make test
+ - uses: k0kubun/action-slack@v2.0.0
+ with:
+ payload: |
+ {
+ "ci": "GitHub Actions",
+ "env": "${{ github.workflow }} / BASERUBY @ ${{ matrix.ruby }}",
+ "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
+ "commit": "${{ github.sha }}",
+ "branch": "${{ github.ref }}".split('/').reverse()[0]
+ }
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ if: ${{ failure() && github.event_name == 'push' }}
diff --git a/ruby/.github/workflows/bundled_gems.yml b/ruby/.github/workflows/bundled_gems.yml
new file mode 100644
index 000000000..12fb2b06e
--- /dev/null
+++ b/ruby/.github/workflows/bundled_gems.yml
@@ -0,0 +1,131 @@
+name: bundled_gems
+
+on:
+ push:
+ paths:
+ - '.github/workflows/bundled_gems.yml'
+ - 'gems/bundled_gems'
+ pull_request:
+ paths:
+ - '.github/workflows/bundled_gems.yml'
+ - 'gems/bundled_gems'
+ schedule:
+ - cron: '45 6 * * *'
+
+jobs:
+ update:
+ if: ${{ github.event_name != 'schedule' || github.repository == 'ruby/ruby' }}
+ name: update ${{ github.workflow }}
+ runs-on: ubuntu-latest
+ steps:
+ - name: git config
+ run: |
+ git config --global advice.detachedHead 0
+ git config --global init.defaultBranch garbage
+
+ - name: Set ENV
+ run: |
+ echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
+ echo "TODAY=$(date +%F)" >> $GITHUB_ENV
+
+ - uses: actions/checkout@v2
+
+ - uses: actions/cache@v2
+ with:
+ path: .downloaded-cache
+ key: downloaded-cache-${{ github.sha }}
+ restore-keys: |
+ downloaded-cache
+
+ - name: Download previous gems list
+ run: |
+ data=bundled_gems.json
+ mkdir -p .downloaded-cache
+ ln -s .downloaded-cache/$data .
+ curl -O -R -z ./$data https://stdgems.org/$data
+
+ - name: Update bundled gems list
+ run: |
+ ruby -i~ tool/update-bundled_gems.rb gems/bundled_gems
+
+ - name: Maintain updated gems list in NEWS
+ run: |
+ require 'json'
+ news = File.read("NEWS.md")
+ prev = news[/since the \*+(\d+\.\d+\.\d+)\*+/, 1]
+ prevs = [prev, prev.sub(/\.\d+\z/, '')]
+ %W[bundled].each do |type|
+ last = JSON.parse(File.read("#{type}_gems.json"))['gems'].filter_map do |g|
+ v = g['versions'].values_at(*prevs).compact.first
+ g = g['gem']
+ g = 'RubyGems' if g == 'rubygems'
+ [g, v] if v
+ end.to_h
+ changed = File.foreach("gems/#{type}_gems").filter_map do |l|
+ next if l.start_with?("#")
+ g, v = l.split(" ", 3)
+ [g, v] unless last[g] == v
+ end
+ changed, added = changed.partition {|g, _| last[g]}
+ news.sub!(/^\*\s+The following #{type} gems? are updated\.(\n\s+\*\s+)\K.*(?:\1.*)*/) do
+ changed.map {|g, v|"#{g} #{v}"}.join($1)
+ end or exit
+ news.sub!(/^\*\s+The following default gems are now bundled.*(\n\s+\*\s+)\K.*(?:\1.*)*/) do
+ added.map {|g, v|"#{g} #{v}"}.join($1)
+ end if added
+ File.write("NEWS.md", news)
+ end
+ shell: ruby {0}
+
+ - name: Check diffs
+ id: diff
+ run: |
+ git add -- NEWS.md
+ git diff --no-ext-diff --ignore-submodules --quiet -- gems/bundled_gems
+ continue-on-error: true
+
+ - name: Install libraries
+ run: |
+ set -x
+ sudo apt-get update -q || :
+ sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
+ if: ${{ steps.diff.outcome == 'failure' }}
+
+ - name: Build
+ run: |
+ ./autogen.sh
+ ./configure -C --disable-install-doc
+ make
+ if: ${{ steps.diff.outcome == 'failure' }}
+
+ - name: Test bundled gems
+ run: |
+ make -s test-bundled-gems
+ git add -- gems/bundled_gems
+ timeout-minutes: 30
+ env:
+ RUBY_TESTOPTS: "-q --tty=no"
+ TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
+ if: ${{ steps.diff.outcome == 'failure' }}
+
+ - name: Show diffs
+ id: show
+ run: |
+ git diff --cached --color --no-ext-diff --ignore-submodules --exit-code --
+ continue-on-error: true
+
+ - name: Commit
+ run: |
+ git pull --ff-only origin ${GITHUB_REF#refs/heads/}
+ message="Update bundled gems list at "
+ if [ ${{ steps.diff.outcome }} = success ]; then
+ git commit --message="${message}${GITHUB_SHA:0:30} [ci skip]"
+ else
+ git commit --message="${message}${TODAY}"
+ fi
+ git push origin ${GITHUB_REF#refs/heads/}
+ env:
+ EMAIL: svn-admin@ruby-lang.org
+ GIT_AUTHOR_NAME: git
+ GIT_COMMITTER_NAME: git
+ if: ${{ github.repository == 'ruby/ruby' && !startsWith(github.event_name, 'pull') && steps.show.outcome == 'failure' }}
diff --git a/ruby/.github/workflows/check_dependencies.yml b/ruby/.github/workflows/check_dependencies.yml
new file mode 100644
index 000000000..6c7e8e578
--- /dev/null
+++ b/ruby/.github/workflows/check_dependencies.yml
@@ -0,0 +1,65 @@
+name: Check Dependencies
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+jobs:
+ update-deps:
+ strategy:
+ matrix:
+ os: [ubuntu-20.04]
+ fail-fast: true
+ runs-on: ${{ matrix.os }}
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+ steps:
+ - name: Install libraries
+ run: |
+ set -x
+ sudo apt-get update -q || :
+ sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
+ if: ${{ contains(matrix.os, 'ubuntu') }}
+ - name: Install libraries
+ run: |
+ brew upgrade
+ brew install gmp libffi openssl@1.1 zlib autoconf automake libtool readline
+ if: ${{ contains(matrix.os, 'macos') }}
+ - name: git config
+ run: |
+ git config --global advice.detachedHead 0
+ git config --global init.defaultBranch garbage
+ - uses: actions/checkout@v2
+ - uses: actions/cache@v2
+ with:
+ path: .downloaded-cache
+ key: downloaded-cache
+ - run: ./autogen.sh
+ - name: Run configure
+ run: ./configure -C --disable-install-doc --disable-rubygems --with-gcc 'optflags=-O0' 'debugflags=-save-temps=obj -g'
+ - run: make all golf
+ - run: ruby tool/update-deps --fix
+ - run: git diff --no-ext-diff --ignore-submodules --exit-code
+ - uses: k0kubun/action-slack@v2.0.0
+ with:
+ payload: |
+ {
+ "ci": "GitHub Actions",
+ "env": "${{ matrix.os }} / Dependencies need to update",
+ "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
+ "commit": "${{ github.sha }}",
+ "branch": "${{ github.ref }}".split('/').reverse()[0]
+ }
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ if: ${{ failure() && github.event_name == 'push' }}
diff --git a/ruby/.github/workflows/codeql-analysis.yml b/ruby/.github/workflows/codeql-analysis.yml
new file mode 100644
index 000000000..f81c79902
--- /dev/null
+++ b/ruby/.github/workflows/codeql-analysis.yml
@@ -0,0 +1,61 @@
+name: "Code scanning - action"
+
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ schedule:
+ - cron: '0 12 * * 4'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+jobs:
+ CodeQL-Build:
+
+ # CodeQL runs on ubuntu-latest and windows-latest
+ runs-on: ubuntu-latest
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+
+ env:
+ enable_install_doc: no
+
+ steps:
+ - name: Install libraries
+ run: |
+ set -x
+ sudo apt-get update -q || :
+ sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
+
+ - name: Checkout repository
+ uses: actions/checkout@v2
+
+ - uses: actions/cache@v2
+ with:
+ path: .downloaded-cache
+ key: downloaded-cache
+
+ - name: Remove an obsolete rubygems vendored file
+ run: sudo rm /usr/lib/ruby/vendor_ruby/rubygems/defaults/operating_system.rb
+
+ - name: Initialize CodeQL
+ uses: github/codeql-action/init@v1
+ with:
+ config-file: ./.github/codeql/codeql-config.yml
+
+ - name: Set ENV
+ run: echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
+
+ - name: Autobuild
+ uses: github/codeql-action/autobuild@v1
+
+ - name: Perform CodeQL Analysis
+ uses: github/codeql-action/analyze@v1
diff --git a/ruby/.github/workflows/compilers.yml b/ruby/.github/workflows/compilers.yml
new file mode 100644
index 000000000..2af9fa55d
--- /dev/null
+++ b/ruby/.github/workflows/compilers.yml
@@ -0,0 +1,247 @@
+name: Compilations
+
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+# Github actions does not support YAML anchors. This creative use of
+# environment variables (plus the "echo $GITHUB_ENV" hack) is to reroute that
+# restriction.
+env:
+ default_cc: clang-14
+ append_cc: ''
+ crosshost: ''
+
+ # -O1 is faster than -O3 in our tests... Majority of time are consumed trying
+ # to optimize binaries. Also Github Actions run on relatively modern CPUs
+ # compared to, say, GCC 4 or Clang 3. We don't specify `-march=native`
+ # because compilers tend not understand what the CPU is.
+ optflags: '-O1'
+
+ # -g0 disables backtraces when SEGV. Do not set that.
+ debugflags: '-ggdb3'
+
+ default_configure: >-
+ --enable-debug-env
+ --disable-install-doc
+ --with-ext=-test-/cxxanyargs,+
+ append_configure: >-
+ --without-valgrind
+ --without-jemalloc
+ --without-gmp
+
+ UPDATE_UNICODE: >-
+ UNICODE_FILES=.
+ UNICODE_PROPERTY_FILES=.
+ UNICODE_AUXILIARY_FILES=.
+ UNICODE_EMOJI_FILES=.
+ CONFIGURE_TTY: never
+ GITPULLOPTIONS: --no-tags origin ${{github.ref}}
+ RUBY_DEBUG: ci rgengc
+ RUBY_TESTOPTS: >-
+ -q
+ --color=always
+ --tty=no
+
+jobs:
+ compile:
+ strategy:
+ fail-fast: false
+ matrix:
+ entry:
+ - { key: default_cc, name: gcc-11, value: gcc-11, container: gcc-11 }
+ - { key: default_cc, name: gcc-10, value: gcc-10, container: gcc-10 }
+ - { key: default_cc, name: gcc-9, value: gcc-9, container: gcc-9 }
+ - { key: default_cc, name: gcc-8, value: gcc-8, container: gcc-8 }
+ - { key: default_cc, name: gcc-7, value: gcc-7, container: gcc-7 }
+ - { key: default_cc, name: gcc-6, value: gcc-6, container: gcc-6 }
+ - { key: default_cc, name: gcc-5, value: gcc-5, container: gcc-5 }
+ - { key: default_cc, name: gcc-4.8, value: gcc-4.8, container: gcc-4.8 }
+ - key: default_cc
+ name: 'gcc-11 LTO'
+ value: 'gcc-11 -O2 -flto=auto -ffat-lto-objects'
+ container: gcc-11
+ shared: '--disable-shared'
+ # check: true
+ - { key: default_cc, name: clang-14, value: clang-14, container: clang-14 }
+ - { key: default_cc, name: clang-13, value: clang-13, container: clang-13 }
+ - { key: default_cc, name: clang-12, value: clang-12, container: clang-12 }
+ - { key: default_cc, name: clang-11, value: clang-11, container: clang-11 }
+ - { key: default_cc, name: clang-10, value: clang-10, container: clang-10 }
+ - { key: default_cc, name: clang-9, value: clang-9, container: clang-9 }
+ - { key: default_cc, name: clang-8, value: clang-8, container: clang-8 }
+ - { key: default_cc, name: clang-7, value: clang-7, container: clang-7 }
+ - { key: default_cc, name: clang-6.0, value: clang-6.0, container: clang-6.0 }
+ - { key: default_cc, name: clang-5.0, value: clang-5.0, container: clang-5.0 }
+ - { key: default_cc, name: clang-4.0, value: clang-4.0, container: clang-4.0 }
+ - { key: default_cc, name: clang-3.9, value: clang-3.9, container: clang-3.9 }
+ - key: default_cc
+ name: 'clang-14 LTO'
+ value: 'clang-14 -O2 -flto=auto'
+ container: clang-14
+ shared: '--disable-shared'
+ # check: true
+
+ - { key: crosshost, name: aarch64-linux-gnu, value: aarch64-linux-gnu, container: crossbuild-essential-arm64 }
+# - { key: crosshost, name: arm-linux-gnueabi, value: arm-linux-gnueabi }
+# - { key: crosshost, name: arm-linux-gnueabihf, value: arm-linux-gnueabihf }
+# - { key: crosshost, name: i686-w64-mingw32, value: i686-w64-mingw32 }
+# - { key: crosshost, name: powerpc-linux-gnu, value: powerpc-linux-gnu }
+ - { key: crosshost, name: powerpc64le-linux-gnu, value: powerpc64le-linux-gnu, container: crossbuild-essential-ppc64el }
+ - { key: crosshost, name: s390x-linux-gnu, value: s390x-linux-gnu, container: crossbuild-essential-s390x }
+ - { key: crosshost, name: x86_64-w64-mingw32, value: x86_64-w64-mingw32, container: mingw-w64 }
+
+ - { key: append_cc, name: c99, value: '-std=c99 -Werror=pedantic -pedantic-errors' }
+# - { key: append_cc, name: c11, value: '-std=c11 -Werror=pedantic -pedantic-errors' }
+# - { key: append_cc, name: c17, value: '-std=c17 -Werror=pedantic -pedantic-errors' }
+ - { key: append_cc, name: c2x, value: '-std=c2x -Werror=pedantic -pedantic-errors' }
+ - { key: CXXFLAGS, name: c++98, value: '-std=c++98 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
+# - { key: CXXFLAGS, name: c++11, value: '-std=c++11 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
+# - { key: CXXFLAGS, name: c++14, value: '-std=c++14 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
+# - { key: CXXFLAGS, name: c++17, value: '-std=c++17 -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
+ - { key: CXXFLAGS, name: c++2a, value: '-std=c++2a -Werror=pedantic -pedantic-errors -Wno-c++11-long-long' }
+
+ - { key: optflags, name: '-O0', value: '-O0 -march=x86-64 -mtune=generic' }
+# - { key: optflags, name: '-O3', value: '-O3 -march=x86-64 -mtune=generic', check: true }
+
+ - { key: append_configure, name: gmp, value: '--with-gmp' }
+ - { key: append_configure, name: jemalloc, value: '--with-jemalloc' }
+ - { key: append_configure, name: valgrind, value: '--with-valgrind' }
+ - { key: append_configure, name: 'coroutine=ucontext', value: '--with-coroutine=ucontext' }
+ - { key: append_configure, name: 'coroutine=pthread', value: '--with-coroutine=pthread' }
+ - { key: append_configure, name: disable-jit-support, value: '--disable-jit-support' }
+ - { key: append_configure, name: disable-dln, value: '--disable-dln' }
+ - { key: append_configure, name: disable-rubygems, value: '--disable-rubygems' }
+
+ - { key: cppflags, name: OPT_THREADED_CODE=1, value: '-DOPT_THREADED_CODE=1' }
+ - { key: cppflags, name: OPT_THREADED_CODE=2, value: '-DOPT_THREADED_CODE=2' }
+ - { key: cppflags, name: OPT_THREADED_CODE=3, value: '-DOPT_THREADED_CODE=3' }
+
+ - { key: cppflags, name: NDEBUG, value: '-DNDEBUG' }
+ - { key: cppflags, name: RUBY_DEBUG, value: '-DRUBY_DEBUG' }
+# - { key: cppflags, name: ARRAY_DEBUG, value: '-DARRAY_DEBUG' }
+# - { key: cppflags, name: BIGNUM_DEBUG, value: '-DBIGNUM_DEBUG' }
+# - { key: cppflags, name: CCAN_LIST_DEBUG, value: '-DCCAN_LIST_DEBUG' }
+# - { key: cppflags, name: CPDEBUG=-1, value: '-DCPDEBUG=-1' }
+# - { key: cppflags, name: ENC_DEBUG, value: '-DENC_DEBUG' }
+# - { key: cppflags, name: GC_DEBUG, value: '-DGC_DEBUG' }
+# - { key: cppflags, name: HASH_DEBUG, value: '-DHASH_DEBUG' }
+# - { key: cppflags, name: ID_TABLE_DEBUG, value: '-DID_TABLE_DEBUG' }
+# - { key: cppflags, name: RGENGC_DEBUG=-1, value: '-DRGENGC_DEBUG=-1' }
+# - { key: cppflags, name: SYMBOL_DEBUG, value: '-DSYMBOL_DEBUG' }
+# - { key: cppflags, name: THREAD_DEBUG=-1, value: '-DTHREAD_DEBUG=-1' }
+
+# - { key: cppflags, name: RGENGC_CHECK_MODE, value: '-DRGENGC_CHECK_MODE' }
+# - { key: cppflags, name: TRANSIENT_HEAP_CHECK_MODE, value: '-DTRANSIENT_HEAP_CHECK_MODE' }
+# - { key: cppflags, name: VM_CHECK_MODE, value: '-DVM_CHECK_MODE' }
+
+ - { key: cppflags, name: USE_EMBED_CI=0, value: '-DUSE_EMBED_CI=0' }
+ - { key: cppflags, name: USE_FLONUM=0, value: '-DUSE_FLONUM=0' }
+# - { key: cppflags, name: USE_GC_MALLOC_OBJ_INFO_DETAILS, value: '-DUSE_GC_MALLOC_OBJ_INFO_DETAILS' }
+ - { key: cppflags, name: USE_LAZY_LOAD, value: '-DUSE_LAZY_LOAD' }
+# - { key: cppflags, name: USE_RINCGC=0, value: '-DUSE_RINCGC=0' }
+# - { key: cppflags, name: USE_SYMBOL_GC=0, value: '-DUSE_SYMBOL_GC=0' }
+# - { key: cppflags, name: USE_THREAD_CACHE=0, value: '-DUSE_THREAD_CACHE=0' }
+# - { key: cppflags, name: USE_TRANSIENT_HEAP=0, value: '-DUSE_TRANSIENT_HEAP=0' }
+# - { key: cppflags, name: USE_RUBY_DEBUG_LOG=1, value: '-DUSE_RUBY_DEBUG_LOG=1' }
+
+ - { key: cppflags, name: DEBUG_FIND_TIME_NUMGUESS, value: '-DDEBUG_FIND_TIME_NUMGUESS' }
+ - { key: cppflags, name: DEBUG_INTEGER_PACK, value: '-DDEBUG_INTEGER_PACK' }
+# - { key: cppflags, name: ENABLE_PATH_CHECK, value: '-DENABLE_PATH_CHECK' }
+
+ - { key: cppflags, name: GC_DEBUG_STRESS_TO_CLASS, value: '-DGC_DEBUG_STRESS_TO_CLASS' }
+# - { key: cppflags, name: GC_ENABLE_LAZY_SWEEP=0, value: '-DGC_ENABLE_LAZY_SWEEP=0' }
+# - { key: cppflags, name: GC_PROFILE_DETAIL_MEMOTY, value: '-DGC_PROFILE_DETAIL_MEMOTY' }
+# - { key: cppflags, name: GC_PROFILE_MORE_DETAIL, value: '-DGC_PROFILE_MORE_DETAIL' }
+
+# - { key: cppflags, name: CALC_EXACT_MALLOC_SIZE, value: '-DCALC_EXACT_MALLOC_SIZE' }
+# - { key: cppflags, name: MALLOC_ALLOCATED_SIZE_CHECK, value: '-DMALLOC_ALLOCATED_SIZE_CHECK' }
+
+# - { key: cppflags, name: IBF_ISEQ_ENABLE_LOCAL_BUFFER, value: '-DIBF_ISEQ_ENABLE_LOCAL_BUFFER' }
+
+# - { key: cppflags, name: RGENGC_ESTIMATE_OLDMALLOC, value: '-DRGENGC_ESTIMATE_OLDMALLOC' }
+# - { key: cppflags, name: RGENGC_FORCE_MAJOR_GC, value: '-DRGENGC_FORCE_MAJOR_GC' }
+# - { key: cppflags, name: RGENGC_OBJ_INFO, value: '-DRGENGC_OBJ_INFO' }
+# - { key: cppflags, name: RGENGC_OLD_NEWOBJ_CHECK, value: '-DRGENGC_OLD_NEWOBJ_CHECK' }
+# - { key: cppflags, name: RGENGC_PROFILE, value: '-DRGENGC_PROFILE' }
+
+# - { key: cppflags, name: VM_DEBUG_BP_CHECK, value: '-DVM_DEBUG_BP_CHECK' }
+# - { key: cppflags, name: VM_DEBUG_VERIFY_METHOD_CACHE, value: '-DVM_DEBUG_VERIFY_METHOD_CACHE' }
+
+ - { key: cppflags, name: MJIT_FORCE_ENABLE, value: '-DMJIT_FORCE_ENABLE' }
+ - { key: cppflags, name: YJIT_FORCE_ENABLE, value: '-DYJIT_FORCE_ENABLE' }
+
+ name: ${{ matrix.entry.name }}
+ runs-on: ubuntu-latest
+ container:
+ image: ghcr.io/ruby/ruby-ci-image:${{ matrix.entry.container || 'clang-14' }}
+ options: --user root
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+ steps:
+ - run: id
+ working-directory:
+ - run: mkdir build
+ working-directory:
+ - name: setenv
+ run: |
+ echo "${{ matrix.entry.key }}=${{ matrix.entry.value }}" >> $GITHUB_ENV
+ echo "GNUMAKEFLAGS=-sj$((1 + $(nproc --all)))" >> $GITHUB_ENV
+ - uses: actions/checkout@v2
+ with:
+ path: src
+ - uses: actions/cache@v2
+ with:
+ path: src/.downloaded-cache
+ key: downloaded-cache
+ - run: ./autogen.sh
+ working-directory: src
+ - name: Run configure
+ run: >
+ ../src/configure -C ${default_configure} ${append_configure}
+ ${{ matrix.entry.key == 'crosshost' && '--host="${crosshost}"' || '--with-gcc="${default_cc} ${append_cc}"' }}
+ ${{ matrix.entry.shared || '--enable-shared' }}
+ - run: make extract-extlibs
+ - run: make incs
+ - run: make
+ - run: make leaked-globals
+ - run: make test
+ - run: make install
+ if: ${{ matrix.entry.check }}
+ - run: make prepare-gems
+ if: ${{ matrix.entry.check }}
+ - run: make test-tool
+ if: ${{ matrix.entry.check }}
+ - run: make test-all TESTS='-- ruby -ext-'
+ if: ${{ matrix.entry.check }}
+ - run: make test-spec
+ if: ${{ matrix.entry.check }}
+
+ - uses: k0kubun/action-slack@v2.0.0
+ with:
+ payload: |
+ {
+ "ci": "GitHub Actions",
+ "env": "${{ github.workflow }} / ${{ matrix.entry.name }}",
+ "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
+ "commit": "${{ github.sha }}",
+ "branch": "${{ github.ref }}".split('/').reverse()[0]
+ }
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ if: ${{ failure() && github.event_name == 'push' }}
+
+defaults:
+ run:
+ working-directory: build
diff --git a/ruby/.github/workflows/mingw.yml b/ruby/.github/workflows/mingw.yml
new file mode 100644
index 000000000..0d7eef67c
--- /dev/null
+++ b/ruby/.github/workflows/mingw.yml
@@ -0,0 +1,148 @@
+name: MinGW
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+# Notes:
+# Actions console encoding causes issues, see test-all & test-spec steps
+#
+jobs:
+ make:
+ runs-on: windows-2022
+ name: ${{ github.workflow }} (${{ matrix.msystem }})
+ env:
+ MSYSTEM: ${{ matrix.msystem }}
+ MSYS2_ARCH: x86_64
+ CHOST: "x86_64-w64-mingw32"
+ CFLAGS: "-march=x86-64 -mtune=generic -O3 -pipe -fstack-protector-strong"
+ CXXFLAGS: "-march=x86-64 -mtune=generic -O3 -pipe"
+ CPPFLAGS: "-D_FORTIFY_SOURCE=2 -D__USE_MINGW_ANSI_STDIO=1 -DFD_SETSIZE=2048"
+ LDFLAGS: "-pipe -fstack-protector-strong"
+ UPDATE_UNICODE: "UNICODE_FILES=. UNICODE_PROPERTY_FILES=. UNICODE_AUXILIARY_FILES=. UNICODE_EMOJI_FILES=."
+ GITPULLOPTIONS: --no-tags origin ${{github.ref}}
+ strategy:
+ matrix:
+ include:
+ - msystem: "MINGW64"
+ base_ruby: 2.6
+ test_task: [ "check" ] # to make job names consistent
+ - msystem: "UCRT64"
+ base_ruby: head
+ test_task: [ "check" ] # to make job names consistent
+ fail-fast: false
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+ steps:
+ - run: mkdir build
+ working-directory:
+ - name: git config
+ run: |
+ git config --global core.autocrlf false
+ git config --global core.eol lf
+ git config --global advice.detachedHead 0
+ git config --global init.defaultBranch garbage
+ - uses: actions/checkout@v2
+ with:
+ path: src
+ - uses: actions/cache@v2
+ with:
+ path: src/.downloaded-cache
+ key: downloaded-cache
+ - name: Set up Ruby & MSYS2
+ uses: MSP-Greg/ruby-setup-ruby@win-ucrt-1
+ with:
+ ruby-version: ${{ matrix.base_ruby }}
+ - name: set env
+ run: |
+ echo "GNUMAKEFLAGS=-j$((2 * NUMBER_OF_PROCESSORS))" >> $GITHUB_ENV
+ echo "TEST_JOBS=$((15 * NUMBER_OF_PROCESSORS / 10))" >> $GITHUB_ENV
+
+ - name: where check
+ run: |
+ # show where
+ result=true
+ for e in gcc.exe ragel.exe make.exe bison.exe libcrypto-1_1-x64.dll libssl-1_1-x64.dll; do
+ echo '##['group']'$'\033[93m'$e$'\033[m'
+ where $e || result=false
+ echo '##['endgroup']'
+ done
+ $result
+
+ - name: autogen
+ run: |
+ ./autogen.sh
+ working-directory: src
+
+ - name: configure
+ run: >
+ ../src/configure --disable-install-doc --prefix=/.
+ --build=$CHOST --host=$CHOST --target=$CHOST
+
+ - name: update
+ run: |
+ make incs
+
+ - name: download gems
+ run: |
+ make update-gems
+
+ - name: make all
+ timeout-minutes: 20
+ run: |
+ make
+
+ - run: make leaked-globals
+
+ - name: make install
+ run: |
+ make DESTDIR=../install install-nodoc
+
+ - name: test
+ timeout-minutes: 5
+ run: |
+ make test
+
+ - name: test-all
+ timeout-minutes: 45
+ run: |
+ # Actions uses UTF8, causes test failures, similar to normal OS setup
+ chcp.com 437
+ make test-all
+ env:
+ RUBY_TESTOPTS: -j${{env.TEST_JOBS}} --retry --job-status=normal --show-skip --timeout-scale=1.5
+ BUNDLER_VERSION:
+
+ - name: test-spec
+ timeout-minutes: 10
+ run: |
+ make test-spec
+
+ - uses: k0kubun/action-slack@v2.0.0
+ with:
+ payload: |
+ {
+ "ci": "GitHub Actions",
+ "env": "${{ github.workflow }} / ${{ matrix.test_task }}",
+ "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
+ "commit": "${{ github.sha }}",
+ "branch": "${{ github.ref }}".split('/').reverse()[0]
+ }
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ if: ${{ failure() && github.event_name == 'push' }}
+
+defaults:
+ run:
+ working-directory: build
+ shell: sh
diff --git a/ruby/.github/workflows/mjit.yml b/ruby/.github/workflows/mjit.yml
new file mode 100644
index 000000000..75e5b1088
--- /dev/null
+++ b/ruby/.github/workflows/mjit.yml
@@ -0,0 +1,97 @@
+name: MJIT
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+jobs:
+ make:
+ strategy:
+ matrix:
+ test_task: [ "check" ] # to make job names consistent
+ jit_opts: [ "--mjit", "--mjit-wait" ]
+ fail-fast: false
+ runs-on: ubuntu-latest
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+ env:
+ TESTOPTS: '-q --tty=no'
+ RUN_OPTS: '--disable-gems ${{ matrix.jit_opts }} --mjit-debug=-ggdb3'
+ GITPULLOPTIONS: --no-tags origin ${{github.ref}}
+ steps:
+ - run: mkdir build
+ working-directory:
+ - name: Install libraries
+ run: |
+ set -x
+ sudo apt-get update -q || :
+ sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
+ - name: git config
+ run: |
+ git config --global advice.detachedHead 0
+ git config --global init.defaultBranch garbage
+ - uses: actions/checkout@v2
+ with:
+ path: src
+ - uses: actions/cache@v2
+ with:
+ path: src/.downloaded-cache
+ key: downloaded-cache
+ - name: Fixed world writable dirs
+ run: |
+ chmod -v go-w $HOME $HOME/.config
+ sudo chmod -R go-w /usr/share
+ sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
+ - name: Set ENV
+ run: |
+ echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
+ - run: ./autogen.sh
+ working-directory: src
+ - name: Run configure
+ run: ../src/configure -C --disable-install-doc cppflags=-DVM_CHECK_MODE
+ - run: make incs
+ - run: make
+ - run: sudo make -s install
+ - run: sudo apt-get install gdb # used by test / test-all failure
+ - name: Run test
+ run: |
+ ulimit -c unlimited
+ make -s test RUN_OPTS="$RUN_OPTS"
+ timeout-minutes: 60
+ - name: Run test-all
+ run: |
+ ulimit -c unlimited
+ make -s test-all RUN_OPTS="$RUN_OPTS"
+ timeout-minutes: 60
+ - name: Run test-spec
+ run: |
+ ulimit -c unlimited
+ make -s test-spec RUN_OPTS="$RUN_OPTS"
+ timeout-minutes: 60
+ - uses: k0kubun/action-slack@v2.0.0
+ with:
+ payload: |
+ {
+ "ci": "GitHub Actions",
+ "env": "${{ github.workflow }} / ${{ matrix.test_task }} ${{ matrix.jit_opts }}",
+ "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
+ "commit": "${{ github.sha }}",
+ "branch": "${{ github.ref }}".split('/').reverse()[0]
+ }
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ if: ${{ failure() && github.event_name == 'push' }}
+
+defaults:
+ run:
+ working-directory: build
diff --git a/ruby/.github/workflows/spec_guards.yml b/ruby/.github/workflows/spec_guards.yml
new file mode 100644
index 000000000..3f829650d
--- /dev/null
+++ b/ruby/.github/workflows/spec_guards.yml
@@ -0,0 +1,53 @@
+name: Rubyspec Version Guards Check
+
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+jobs:
+ rubyspec:
+ name: Rubyspec
+ runs-on: ubuntu-20.04
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+ strategy:
+ matrix:
+ # Specs from ruby/spec should still run on all supported Ruby versions.
+ # This also ensures the needed ruby_version_is guards are there, see spec/README.md.
+ ruby:
+ - ruby-2.7
+ - ruby-3.0
+
+ steps:
+ - uses: actions/checkout@v2
+ - uses: ruby/setup-ruby@v1
+ with:
+ ruby-version: ${{ matrix.ruby }}
+ bundler: none
+ - run: gem install webrick
+ - run: ruby ../mspec/bin/mspec
+ working-directory: spec/ruby
+ - uses: k0kubun/action-slack@v2.0.0
+ with:
+ payload: |
+ {
+ "ci": "GitHub Actions",
+ "env": "${{ github.workflow }} / rubyspec @ ${{ matrix.ruby }}",
+ "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
+ "commit": "${{ github.sha }}",
+ "branch": "${{ github.ref }}".split('/').reverse()[0]
+ }
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ if: ${{ failure() && github.event_name == 'push' }}
diff --git a/ruby/.github/workflows/ubuntu.yml b/ruby/.github/workflows/ubuntu.yml
new file mode 100644
index 000000000..ff79dad88
--- /dev/null
+++ b/ruby/.github/workflows/ubuntu.yml
@@ -0,0 +1,129 @@
+name: Ubuntu
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+jobs:
+ make:
+ strategy:
+ matrix:
+ test_task: ["check", "test-bundler-parallel", "test-bundled-gems"]
+ os:
+ - ubuntu-20.04
+# - ubuntu-18.04
+ configure: ["", "cppflags=-DRUBY_DEBUG"]
+ include:
+ - test_task: "check"
+ os: ubuntu-20.04
+ configure: "--host=i686-$OSTYPE"
+ - test_task: "test-all TESTS=--repeat-count=2"
+ os: ubuntu-20.04
+ configure: ""
+ fail-fast: false
+ env:
+ GITPULLOPTIONS: --no-tags origin ${{github.ref}}
+ RUBY_DEBUG: ci
+ runs-on: ${{ matrix.os }}
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+ steps:
+ - run: mkdir build
+ working-directory:
+ - name: Set ENV
+ env:
+ configure: ${{matrix.configure}}
+ run: |
+ echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
+ arch=`echo " $configure" | sed '/.* --host=/!d;s///;s/[- ].*//'`
+ echo "SETARCH=${arch:+setarch $arch}" >> $GITHUB_ENV
+ - name: Install libraries
+ run: |
+ set -x
+ arch="${SETARCH##* }"
+ arch=${arch:+:${arch/i[3-6]86/i386}}
+ ${arch:+sudo dpkg --add-architecture ${arch#:}}
+ sudo apt-get update -q || :
+ sudo apt-get install --no-install-recommends -q -y \
+ ${arch:+cross}build-essential${arch/:/-} \
+ libssl-dev${arch} libyaml-dev${arch} libreadline6-dev${arch} \
+ zlib1g-dev${arch} libncurses5-dev${arch} libffi-dev${arch} \
+ bison autoconf ruby
+ sudo apt-get install -q -y pkg-config${arch} || :
+ - name: git config
+ run: |
+ git config --global advice.detachedHead 0
+ git config --global init.defaultBranch garbage
+ - uses: actions/checkout@v2
+ with:
+ path: src
+ - uses: actions/cache@v2
+ with:
+ path: src/.downloaded-cache
+ key: downloaded-cache
+ - name: Fixed world writable dirs
+ run: |
+ chmod -v go-w $HOME $HOME/.config
+ sudo chmod -R go-w /usr/share
+ sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
+ - run: ./autogen.sh
+ working-directory: src
+ - name: Run configure
+ env:
+ arch: ${{matrix.arch}}
+ run: >-
+ $SETARCH ../src/configure -C --disable-install-doc ${{ matrix.configure }}
+ ${arch:+--target=$arch-$OSTYPE}
+ - run: $SETARCH make incs
+ - run: $SETARCH make
+ - run: $SETARCH make leaked-globals
+ if: ${{ matrix.test_task == 'check' }}
+ - run: $SETARCH make prepare-gems
+ if: ${{ matrix.test_task == 'check' }}
+ - name: Create dummy files in build dir
+ run: |
+ $SETARCH ./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
+ if: ${{ matrix.test_task == 'check' }}
+ - name: make ${{ matrix.test_task }}
+ run: |
+ $SETARCH make -s ${{ matrix.test_task }} ${TESTS:+TESTS=`echo "$TESTS" | sed 's| |$/ -n!/|g;s|^|-n!/|;s|$|$$/|'`}
+ timeout-minutes: 40
+ env:
+ RUBY_TESTOPTS: "-q --tty=no"
+ TESTS: ${{ matrix.test_task == 'check' && matrix.skipped_tests || '' }}
+ TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
+ - name: make skipped tests
+ run: |
+ $SETARCH make -s test-all TESTS=`echo "$TESTS" | sed 's| |$/ -n/|g;s|^|-n/|;s|$|$$/|'`
+ env:
+ GNUMAKEFLAGS: ""
+ RUBY_TESTOPTS: "-v --tty=no"
+ TESTS: ${{ matrix.skipped_tests }}
+ if: ${{ matrix.test_task == 'check' && matrix.skipped_tests != '' }}
+ - uses: k0kubun/action-slack@v2.0.0
+ with:
+ payload: |
+ {
+ "ci": "GitHub Actions",
+ "env": "${{ matrix.os }} / ${{ matrix.test_task }}${{ matrix.configure }}",
+ "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
+ "commit": "${{ github.sha }}",
+ "branch": "${{ github.ref }}".split('/').reverse()[0]
+ }
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ if: ${{ failure() && github.event_name == 'push' }}
+
+defaults:
+ run:
+ working-directory: build
diff --git a/ruby/.github/workflows/windows.yml b/ruby/.github/workflows/windows.yml
new file mode 100644
index 000000000..574bfbf47
--- /dev/null
+++ b/ruby/.github/workflows/windows.yml
@@ -0,0 +1,135 @@
+name: Windows
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+jobs:
+ make:
+ strategy:
+ matrix:
+ include:
+ - vs: 2019
+ os: windows-2019
+ vcvars: '"C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise\VC\Auxiliary\Build\vcvars64.bat"'
+ # - vs: 2022
+ # os: windows-2022
+ # vcvars: '"C:\Program Files\Microsoft Visual Studio\2022\Enterprise\VC\Auxiliary\Build\vcvars64.bat"'
+ fail-fast: false
+ runs-on: ${{ matrix.os }}
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+ name: VisualStudio ${{ matrix.vs }}
+ env:
+ GITPULLOPTIONS: --no-tags origin ${{github.ref}}
+ VCVARS: ${{ matrix.vcvars }}
+ PATCH: C:\msys64\usr\bin\patch.exe
+ steps:
+ - run: md build
+ working-directory:
+ - uses: msys2/setup-msys2@v2
+ id: setup-msys2
+ with:
+ update: true
+ install: >-
+ patch
+ if: ${{ matrix.os != 'windows-2019' }}
+ - name: patch path
+ shell: msys2 {0}
+ run: echo PATCH=$(cygpath -wa $(command -v patch)) >> $GITHUB_ENV
+ if: ${{ steps.setup-msys2.outcome == 'success' }}
+ - uses: actions/cache@v2
+ with:
+ path: C:\vcpkg\downloads
+ key: ${{ runner.os }}-vcpkg-download-${{ matrix.os }}-${{ github.sha }}
+ restore-keys: |
+ ${{ runner.os }}-vcpkg-download-${{ matrix.os }}-
+ ${{ runner.os }}-vcpkg-download-
+ - name: Install libraries with vcpkg
+ run: |
+ vcpkg --triplet x64-windows install readline zlib
+ - uses: actions/cache@v2
+ with:
+ path: C:\Users\runneradmin\AppData\Local\Temp\chocolatey
+ key: ${{ runner.os }}-chocolatey-${{ matrix.os }}-${{ github.sha }}
+ restore-keys: |
+ ${{ runner.os }}-chocolatey-${{ matrix.os }}-
+ ${{ runner.os }}-chocolatey-
+ - name: Install libraries with chocolatey
+ run: |
+ # Using Choco-Install for retries, but it doesn't detect failures properly
+ # if you pass multiple package names in a single command.
+ Choco-Install -PackageName openssl
+ Choco-Install -PackageName winflexbison3
+ shell: pwsh
+ - name: git config
+ run: |
+ git config --global core.autocrlf false
+ git config --global core.eol lf
+ git config --global advice.detachedHead 0
+ git config --global init.defaultBranch garbage
+ - uses: actions/checkout@v2
+ with:
+ path: src
+ - uses: actions/cache@v2
+ with:
+ path: src/.downloaded-cache
+ key: downloaded-cache
+ - name: setup env
+ # %TEMP% is inconsistent with %TMP% and test-all expects they are consistent.
+ # https://github.com/actions/virtual-environments/issues/712#issuecomment-613004302
+ run: |
+ set | C:\msys64\usr\bin\sort > old.env
+ call %VCVARS%
+ set TMP=%USERPROFILE%\AppData\Local\Temp
+ set TEMP=%USERPROFILE%\AppData\Local\Temp
+ set /a TEST_JOBS=(15 * %NUMBER_OF_PROCESSORS% / 10) > nul
+ set | C:\msys64\usr\bin\sort > new.env
+ C:\msys64\usr\bin\comm -13 old.env new.env >> %GITHUB_ENV%
+ del *.env
+ - name: Configure
+ run: |
+ ../src/win32/configure.bat --disable-install-doc --enable-bundled-libffi --with-opt-dir=C:/vcpkg/installed/x64-windows --with-openssl-dir="C:/Program Files/OpenSSL-Win64"
+ - run: nmake incs
+ - run: nmake extract-extlibs
+ - run: nmake
+ env:
+ YACC: win_bison
+ - run: nmake test
+ timeout-minutes: 5
+ - run: nmake test-all
+ env:
+ RUBY_TESTOPTS: -j${{env.TEST_JOBS}} --job-status=normal
+ timeout-minutes: 60
+ continue-on-error: ${{ matrix.continue-on-error || false }}
+ - run: nmake test-spec
+ timeout-minutes: 10
+ continue-on-error: ${{ matrix.continue-on-error || false }}
+ - uses: k0kubun/action-slack@v2.0.0
+ with:
+ payload: |
+ {
+ "ci": "GitHub Actions",
+ "env": "VS${{ matrix.vs }} / ${{ matrix.test_task || 'check' }}",
+ "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
+ "commit": "${{ github.sha }}",
+ "branch": "${{ github.ref }}".split('/').reverse()[0]
+ }
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ if: ${{ failure() && github.event_name == 'push' }}
+
+defaults:
+ run:
+ working-directory: build
+ shell: cmd
diff --git a/ruby/.github/workflows/yjit-ubuntu.yml b/ruby/.github/workflows/yjit-ubuntu.yml
new file mode 100644
index 000000000..c479b8a62
--- /dev/null
+++ b/ruby/.github/workflows/yjit-ubuntu.yml
@@ -0,0 +1,112 @@
+name: YJIT Ubuntu
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+jobs:
+ make:
+ strategy:
+ matrix:
+ test_task: ["check"] # "test-bundler-parallel",
+ os:
+ - ubuntu-20.04
+# - ubuntu-18.04
+ yjit_opts: [
+ "--yjit",
+ "--yjit --yjit-call-threshold=1",
+ ]
+ configure: ["", "cppflags=-DRUBY_DEBUG"]
+ include:
+ - test_task: "test-all TESTS=--repeat-count=2"
+ os: ubuntu-20.04
+ configure: ""
+ yjit_enable_env: RUBY_YJIT_ENABLE
+ - test_task: "test-bundled-gems"
+ os: ubuntu-20.04
+ configure: "cppflags=-DRUBY_DEBUG"
+ yjit_enable_env: RUBY_YJIT_ENABLE
+ fail-fast: false
+ env:
+ GITPULLOPTIONS: --no-tags origin ${{github.ref}}
+ RUN_OPTS: ${{ matrix.yjit_opts }}
+ RUBY_DEBUG: ci
+ runs-on: ${{ matrix.os }}
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+ steps:
+ - run: mkdir build
+ working-directory:
+ - name: Install libraries
+ run: |
+ set -x
+ sudo apt-get update -q || :
+ sudo apt-get install --no-install-recommends -q -y build-essential libssl-dev libyaml-dev libreadline6-dev zlib1g-dev libncurses5-dev libffi-dev bison autoconf ruby
+ - name: git config
+ run: |
+ git config --global advice.detachedHead 0
+ git config --global init.defaultBranch garbage
+ - uses: actions/checkout@v2
+ with:
+ path: src
+ - uses: actions/cache@v2
+ with:
+ path: src/.downloaded-cache
+ key: downloaded-cache
+ - name: Fixed world writable dirs
+ run: |
+ chmod -v go-w $HOME $HOME/.config
+ sudo chmod -R go-w /usr/share
+ sudo bash -c 'IFS=:; for d in '"$PATH"'; do chmod -v go-w $d; done' || :
+ - name: Set ENV
+ run: |
+ echo "GNUMAKEFLAGS=-j$((1 + $(nproc --all)))" >> $GITHUB_ENV
+ - run: ./autogen.sh
+ working-directory: src
+ - name: Run configure
+ run: ../src/configure -C --disable-install-doc ${{ matrix.configure }}
+ - run: make incs
+ - run: make
+ - run: make leaked-globals
+ if: ${{ matrix.test_task == 'check' }}
+ - run: make prepare-gems
+ if: ${{ matrix.test_task == 'check' }}
+ - name: Create dummy files in build dir
+ run: |
+ ./miniruby -e '(("a".."z").to_a+("A".."Z").to_a+("0".."9").to_a+%w[foo bar test zzz]).each{|basename|File.write("#{basename}.rb", "raise %(do not load #{basename}.rb)")}'
+ if: ${{ matrix.test_task == 'check' }}
+ - name: Enable YJIT through ENV
+ run: echo "RUBY_YJIT_ENABLE=1" >> $GITHUB_ENV
+ if: ${{ matrix.yjit_enable_env }}
+ - run: make -s ${{ matrix.test_task }} RUN_OPTS="$RUN_OPTS"
+ timeout-minutes: 60
+ env:
+ RUBY_TESTOPTS: "-q --tty=no"
+ TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
+ - uses: k0kubun/action-slack@v2.0.0
+ with:
+ payload: |
+ {
+ "ci": "GitHub Actions",
+ "env": "${{ matrix.os }} / ${{ matrix.test_task }}${{ matrix.configure }}",
+ "url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
+ "commit": "${{ github.sha }}",
+ "branch": "${{ github.ref }}".split('/').reverse()[0]
+ }
+ env:
+ SLACK_WEBHOOK_URL: ${{ secrets.SIMPLER_ALERTS_URL }} # ruby-lang slack: ruby/simpler-alerts-bot
+ if: ${{ failure() && github.event_name == 'push' }}
+
+defaults:
+ run:
+ working-directory: build
diff --git a/ruby/.github/workflows/yjit_asm_tests.yml b/ruby/.github/workflows/yjit_asm_tests.yml
new file mode 100644
index 000000000..8a9052dd4
--- /dev/null
+++ b/ruby/.github/workflows/yjit_asm_tests.yml
@@ -0,0 +1,38 @@
+name: YJIT x86 assembler tests
+
+on:
+ push:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+ pull_request:
+ paths-ignore:
+ - 'doc/**'
+ - '**.md'
+ - '**.rdoc'
+
+concurrency:
+ group: ${{ github.workflow }} / ${{ startsWith(github.event_name, 'pull') && github.ref_name || github.sha }}
+ cancel-in-progress: ${{ startsWith(github.event_name, 'pull') }}
+
+jobs:
+ test:
+ runs-on: ubuntu-latest
+ if: ${{ !startsWith(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
+ steps:
+ - name: Install dependencies
+ run: |
+ set -x
+ sudo apt-get update -q || :
+ sudo apt-get install --no-install-recommends -q -y build-essential
+ - name: git config
+ run: |
+ git config --global advice.detachedHead 0
+ git config --global init.defaultBranch garbage
+ - uses: actions/checkout@v2
+ with:
+ path: src
+ - name: Run ASM tests
+ run: ./misc/test_yjit_asm.sh
+ working-directory: src
diff --git a/ruby/.gitignore b/ruby/.gitignore
new file mode 100644
index 000000000..31bfd787a
--- /dev/null
+++ b/ruby/.gitignore
@@ -0,0 +1,234 @@
+*-*-*.def
+*-*-*.exp
+*-*-*.lib
+*.a
+*.bak
+*.bc
+*.bundle
+*.dSYM
+*.dmyh
+*.dylib
+*.elc
+*.i
+*.ii
+*.inc
+*.log
+*.o
+*.obj
+*.old
+*.orig
+*.pch
+*.pdb
+*.rbinc
+*.rej
+*.s
+*.sav
+*.sl
+*.so
+*.swp
+*.yarb
+*~
+.*.list
+.*.time
+.DS_Store
+.bundle
+.ccmalloc
+.ext
+.pc
+.ppack
+.svn
+.time
+.ruby-version
+Makefile
+cygruby*.def
+extconf.h
+y.output
+y.tab.c
+*.gcda
+*.gcno
+*.gcov
+*.vscode
+lcov*.info
+
+# /
+/*-fake.rb
+/*.dll
+/*.exe
+/*.res
+/*.pc
+/*.rc
+/*_prelude.c
+/.downloaded-cache
+/.top-enc.mk
+/build*/
+/COPYING.LIB
+/ChangeLog
+/Doxyfile
+/GNUmakefile
+/README.atheos
+/README.fat-patch
+/README.v6
+/TAGS
+/archive
+/autom4te*.cache
+/automake
+/benchmark/benchmark-driver
+/beos
+/bmlog-*
+/breakpoints.gdb
+/config.cache
+/config.h
+/config.h.in
+/config.status
+/config.status.lineno
+/configure
+/coverage/simplecov
+/coverage/simplecov-html
+/coverage/doclie
+/coverage/.last_run.json
+/coverage/.resultset.json*
+/coverage/assets
+/coverage/index.html
+/doc/capi
+/enc.mk
+/encdb.h
+/exts.mk
+/goruby
+/id.[ch]
+/largefile.h
+/lcov-c-out
+/lcov-rb-out
+/lcov-out
+/lex.c
+/libruby*.*
+/miniprelude.c
+/miniruby
+/newdate.rb
+/newline.c
+/newver.rb
+/parse.c
+/parse.h
+/patches
+/patches-master
+/pitest.rb
+/ppack
+/prelude.c
+/preview
+/probes.dmyh
+/probes.h
+/rbconfig.rb
+/rename2.h
+/repack
+/revision.h
+/revision.tmp
+/riscos
+/rubicon
+/ruby
+/ruby-runner
+/ruby-runner.h
+/ruby-man.rd.gz
+/run.gdb
+/sizes.c
+/static-ruby
+/test.rb
+/test-coverage.dat
+/tmp
+/transdb.h
+/uncommon.mk
+/verconf.h
+/verconf.mk
+/web
+/yasmdata.rb
+
+# /bin/
+
+/bin/*.exe
+/bin/*.dll
+
+# /benchmark/
+/benchmark/bm_require.data
+/benchmark/bmx_*.rb
+/benchmark/fasta.output.*
+/benchmark/wc.input
+
+/enc/*.def
+/enc/*.exp
+/enc/*.lib
+/enc/jis/props.h
+/enc/unicode/data
+
+# /coroutine/
+!/coroutine/**/*.s
+
+# /enc/trans/
+/enc/trans/*.c
+/enc/trans/*.def
+/enc/trans/*.exp
+/enc/trans/*.lib
+
+# /exe/
+/exe/goruby
+/exe/ruby
+
+# /ext/
+/ext/extinit.c
+/ext/configure-ext.mk
+/ext/*/exts.mk
+
+# /ext/-test-/cxxanyargs
+/ext/-test-/cxxanyargs/failure*.failed
+
+# /ext/-test-/win32/dln/
+/ext/-test-/win32/dln/dlntest.dll
+/ext/-test-/win32/dln/dlntest.exp
+/ext/-test-/win32/dln/dlntest.lib
+
+# /ext/-test-/gems
+/ext/-test-/gems
+
+# /ext/etc/
+/ext/etc/constdefs.h
+
+# /ext/fiddle/
+/ext/fiddle/libffi-*
+
+# /ext/rbconfig/
+/ext/rbconfig/sizeof/sizes.c
+/ext/rbconfig/sizeof/limits.c
+
+# /ext/ripper/
+/ext/ripper/eventids1.c
+/ext/ripper/.eventids2-check
+/ext/ripper/eventids2table.c
+/ext/ripper/ripper.*
+/ext/ripper/ids1
+/ext/ripper/ids2
+
+# /ext/socket/
+/ext/socket/constants.h
+/ext/socket/constdefs.h
+/ext/socket/constdefs.c
+
+# /gems
+/gems/*.gem
+/gems/src
+/gems/*-*
+
+# /lib/
+/lib/ruby/[1-9]*.*
+/lib/ruby/vendor_ruby
+
+# /spec/bundler
+/.rspec_status
+
+# /tool/
+/tool/config.guess
+/tool/config.sub
+
+# /win32/
+/win32/*.ico
+
+# MJIT
+/rb_mjit_header.h
+/mjit_config.h
+/include/ruby-*/*/rb_mjit_min_header-*.h
diff --git a/ruby/.travis.yml b/ruby/.travis.yml
index 71945e349..f8c66f715 100644
--- a/ruby/.travis.yml
+++ b/ruby/.travis.yml
@@ -6,22 +6,16 @@
# conditions mentioned in the file COPYING are met. Consult the file for
# details.
-# This is a Travis-CI build configuration file. The list of configurations
-# available is located in
-#
-# http://about.travis-ci.org/docs/user/build-configuration/
-#
-# and as Ruby itself is a project written in C language,
-#
-# http://about.travis-ci.org/docs/user/languages/c/
-#
-# is also a good place to look at.
+# We only manage non-amd64 free pipelines.
+# https://docs.travis-ci.com/user/billing-overview/
language: c
os: linux
-dist: xenial
+if: commit_message !~ /^\[DOC\]/
+
+dist: focal
git:
quiet: true
@@ -34,6 +28,10 @@ cache:
env:
global:
+ # The tests skipped in `make test-all`.
+ - TEST_ALL_SKIPPED_TESTS=
+ # The tests executed separately by `make test-all`.
+ - TEST_ALL_SEPARATED_TESTS=
# Reset timestamps early
- _=$(touch NEWS && find . -type f -exec touch -r NEWS {} +)
- CONFIGURE_TTY=no
@@ -46,415 +44,118 @@ env:
- SETARCH=
- RUBY_PREFIX=/tmp/ruby-prefix
- GEMS_FOR_TEST='timezone tzinfo'
- - UPDATE_UNICODE="UNICODE_FILES=. UNICODE_PROPERTY_FILES=. UNICODE_AUXILIARY_FILES=. UNICODE_EMOJI_FILES=."
# https://github.com/travis-ci/travis-build/blob/e411371dda21430a60f61b8f3f57943d2fe4d344/lib/travis/build/bash/travis_apt_get_options.bash#L7
- travis_apt_get_options='--allow-downgrades --allow-remove-essential --allow-change-held-packages'
- travis_apt_get_options="-yq --no-install-suggests --no-install-recommends $travis_apt_get_options"
+ # -O1 is faster than -O3 in our tests.
+ - optflags=-O1
+ # -g0 disables backtraces when SEGV. Do not set that.
+ - debugflags=-ggdb3
.org.ruby-lang.ci.matrix-definitions:
- - &cron-only
- if: (type = cron) AND (branch = master) AND (fork = false)
-
- - &make-test-only
- script:
- - $SETARCH make -s test TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"
-
- - &gcc-8
- compiler: gcc-8
- # # Not using addon to control retries
- # addons:
- # apt:
- # sources:
- # - ubuntu-toolchain-r-test
- before_install:
- - tool/travis_retry.sh sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- - tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
- - |-
- ${BEFORE_INSTALL}
- tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install \
- ccache \
- gcc-8 \
- g++-8 \
- libffi-dev \
- libgdbm-dev \
- libgmp-dev \
- libjemalloc-dev \
- libncurses5-dev \
- libncursesw5-dev \
- libreadline6-dev \
- libssl-dev \
- libyaml-dev \
- openssl \
- valgrind \
- zlib1g-dev
-
- - &clang-8
- compiler: clang-8
- addons:
- apt:
- # Not doing this manually unlike other sources, because it has been stable.
- sources:
- - llvm-toolchain-xenial-8
- config:
- retries: true
+ - &gcc-10
+ compiler: gcc-10
before_install:
- tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
- - |-
- tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install \
- clang-8 \
- llvm-8-tools \
- libffi-dev \
- libgdbm-dev \
- libgmp-dev \
- libjemalloc-dev \
- libncurses5-dev \
- libncursesw5-dev \
- libreadline6-dev \
- libssl-dev \
- libyaml-dev \
- openssl \
- valgrind \
- zlib1g-dev
+ - >-
+ tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install
+ ccache
+ gcc-10
+ g++-10
+ libffi-dev
+ libgdbm-dev
+ libncurses-dev
+ libncursesw5-dev
+ libreadline-dev
+ libssl-dev
+ libyaml-dev
+ openssl
+ zlib1g-dev
# --------
- - &x86_64-linux
- name: x86_64-linux
- <<: *gcc-8
-
- &arm64-linux
name: arm64-linux
arch: arm64
- <<: *gcc-8
+ <<: *gcc-10
+
+ - &ppc64le-linux
+ name: ppc64le-linux
+ arch: ppc64le
+ <<: *gcc-10
- &s390x-linux
name: s390x-linux
arch: s390x
- <<: *gcc-8
-
- - &jemalloc
- name: --with-jemalloc
- <<: *gcc-8
- <<: *cron-only
- env:
- - CONFIG_FLAG='--with-gmp --with-jemalloc --with-valgrind'
-
- - &assertions
- name: RUBY_DEBUG=1
- <<: *gcc-8
- #<<: *cron-only
- <<: *make-test-only
- env:
- - GEMS_FOR_TEST=
- - cppflags='-DRUBY_DEBUG -DVM_CHECK_MODE=1 -DTRANSIENT_HEAP_CHECK_MODE -DRGENGC_CHECK_MODE -DENC_DEBUG'
-
- - &VM_CHECK_MODE
- name: VM_CHECK_MODE=3
- <<: *gcc-8
- <<: *cron-only
- <<: *make-test-only
- env:
- - GEMS_FOR_TEST=
- - cppflags=-DVM_CHECK_MODE=0x0003
-
- - &SUPPORT_JOKE
- name: SUPPORT_JOKE
- <<: *gcc-8
- <<: *cron-only
- <<: *make-test-only
- env:
- - BEFORE_INSTALL="sed vm_opts.h -e 's/OPT_SUPPORT_JOKE *0/OPT_SUPPORT_JOKE 1/' -i"
-
- - &CPDEBUG
- name: CPDEBUG
- <<: *gcc-8
- <<: *cron-only
- <<: *make-test-only
- env:
- - cppflags=-DCPDEBUG
-
- - &WITH_COROUTINE_UCONTEXT
- name: COROUTINE=ucontext
- <<: *gcc-8
- <<: *cron-only
- env:
- - CONFIG_FLAG='--with-coroutine=ucontext'
-
- - &WITH_COROUTINE_COPY
- name: COROUTINE=copy
- <<: *gcc-8
- <<: *cron-only
- env:
- - CONFIG_FLAG='--with-coroutine=copy'
-
- - &TOKEN_THREADED_CODE
- name: TOKEN_THREADED_CODE
- <<: *gcc-8
- <<: *cron-only
- <<: *make-test-only
- env:
- - GEMS_FOR_TEST=
- - cppflags=-DOPT_THREADED_CODE=1
-
- - &CALL_THREADED_CODE
- name: CALL_THREADED_CODE
- <<: *gcc-8
- <<: *cron-only
- <<: *make-test-only
- env:
- - GEMS_FOR_TEST=
- - cppflags=-DOPT_THREADED_CODE=2
-
- - &NO_THREADED_CODE
- name: NO_THREADED_CODE
- <<: *gcc-8
- <<: *cron-only
- <<: *make-test-only
- env:
- - GEMS_FOR_TEST=
- - cppflags=-DOPT_THREADED_CODE=3
-
- - &ASAN
- name: -fsanitize=address
- <<: *clang-8
- #<<: *cron-only
- <<: *make-test-only
- env:
- - GEMS_FOR_TEST=
- - ASAN_OPTIONS=detect_leaks=0
- - cflags='-U_FORTIFY_SOURCE -march=native -fsanitize=address -fno-omit-frame-pointer -fPIC'
- - debugflags=-ggdb3
- - optflags=-O1
- - LD=clang-8
- - LDFLAGS='-fsanitize=address -fPIC'
- - CONFIG_FLAG='--with-out-ext=openssl --without-gmp --without-jemalloc --without-valgrind'
-
- - &MSAN
- name: -fsanitize=memory
- <<: *clang-8
- #<<: *cron-only
- <<: *make-test-only
- env:
- - GEMS_FOR_TEST=
- - cflags='-U_FORTIFY_SOURCE -fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -fPIC'
- - optflags=-O1
- - LD=clang-8
- - LDFLAGS='-fsanitize=memory -fPIC'
- - CONFIG_FLAG='--with-out-ext=openssl --without-gmp --without-jemalloc --without-valgrind'
-
- - &UBSAN
- name: -fsanitize=undefined
- <<: *clang-8
- #<<: *cron-only
- <<: *make-test-only
- env:
- - GEMS_FOR_TEST=
- - cflags='-U_FORTIFY_SOURCE -fsanitize=undefined,integer,nullability -fno-sanitize=implicit-integer-sign-change,unsigned-integer-overflow'
- - cppflags=-DUNALIGNED_WORD_ACCESS=0
- - debugflags=-ggdb3
- - optflags='-O1 -march=native'
- - LD=clang-8
- - LDFLAGS='-fsanitize=undefined,integer,nullability -fno-sanitize=implicit-integer-sign-change,unsigned-integer-overflow'
-
- - &i686-linux
- name: i686-linux
- compiler: gcc-8
- env:
- - GCC_FLAGS=-m32
- - CXX='g++-8 -m32'
- - debugflags=-g0
- - SETARCH='setarch i686 --verbose --3gb'
- # # Not using addon to control retries
- # addons:
- # apt:
- # sources:
- # - ubuntu-toolchain-r-test
- before_install:
- - tool/travis_retry.sh sudo -E apt-add-repository -y "ppa:ubuntu-toolchain-r/test"
- - tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
- - |-
- tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install \
- gcc-8-multilib \
- g++-8 \
- g++-8-multilib \
- libstdc++-8-dev:i386 \
- libffi-dev:i386 \
- libffi6:i386 \
- libgdbm-dev:i386 \
- libgdbm3:i386 \
- libncurses5-dev:i386 \
- libncurses5:i386 \
- libncursesw5-dev:i386 \
- libreadline6-dev:i386 \
- libreadline6:i386 \
- libssl-dev:i386 \
- libssl1.0.0:i386 \
- linux-libc-dev:i386 \
- zlib1g-dev:i386 \
- zlib1g:i386
+ <<: *gcc-10
- &arm32-linux
name: arm32-linux
arch: arm64
- # https://packages.ubuntu.com/xenial/crossbuild-essential-armhf
+ # https://packages.ubuntu.com/focal/crossbuild-essential-armhf
compiler: arm-linux-gnueabihf-gcc
env:
- - debugflags=-g0
- SETARCH='setarch linux32 --verbose --32bit'
+ # The "TestReadline#test_interrupt_in_other_thread" started failing on arm32
+ # from https://www.travis-ci.com/github/ruby/ruby/jobs/529005145
+ - TEST_ALL_SKIPPED_TESTS=test_interrupt_in_other_thread
before_install:
- sudo dpkg --add-architecture armhf
- tool/travis_retry.sh sudo bash -c "rm -rf '${TRAVIS_ROOT}/var/lib/apt/lists/'* && exec apt-get update -yq"
- - |-
- tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install \
- ccache \
- crossbuild-essential-armhf \
- libc6:armhf \
- libstdc++-5-dev:armhf \
- libffi-dev:armhf \
- libffi6:armhf \
- libgdbm-dev:armhf \
- libgdbm3:armhf \
- libncurses5-dev:armhf \
- libncurses5:armhf \
- libncursesw5-dev:armhf \
- libreadline6-dev:armhf \
- libreadline6:armhf \
- libssl-dev:armhf \
- libssl1.0.0:armhf \
- linux-libc-dev:armhf \
- zlib1g-dev:armhf \
- zlib1g:armhf
-
- - &pedanticism
- name: -std=c99 -pedantic
- compiler: clang
- <<: *make-test-only
- env:
- - GEMS_FOR_TEST=
- - GCC_FLAGS='-std=c99 -Werror=pedantic -pedantic-errors'
- - CONFIG_FLAG=
- - JOBS=
- >-
- warnflags='
- -Wall
- -Wextra
- -Werror=deprecated-declarations
- -Werror=division-by-zero
- -Werror=extra-tokens
- -Werror=implicit-function-declaration
- -Werror=implicit-int
- -Werror=pointer-arith
- -Werror=shorten-64-to-32
- -Werror=write-strings
- -Wmissing-noreturn
- -Wno-constant-logical-operand
- -Wno-missing-field-initializers
- -Wno-overlength-strings
- -Wno-parentheses-equality
- -Wno-self-assign
- -Wno-tautological-compare
- -Wno-unused-local-typedef
- -Wno-unused-parameter
- -Wunused-variable'
- - LDFLAGS=-Wno-unused-command-line-argument
-
- - &rubyspec
- name: Check ruby/spec version guards on Ruby 2.4
- language: ruby
- rvm: 2.4.6
- before_install:
- install:
- before_script: chmod -R u+w spec/ruby
- # -j randomly hangs.
- script: ruby -C spec/ruby ../mspec/bin/mspec .
- after_failure:
- - echo "ruby/spec failed on Ruby 2.4. This is likely because of a missing ruby_version_is guard, please add it. See spec/README.md."
-
- - &baseruby
- name: "BASERUBY: Ruby 2.2"
- <<: *gcc-8
- <<: *make-test-only
- language: ruby
- rvm: 2.2
-
- - &dependency
- name: Check dependencies in makefiles
- language: ruby
- before_install:
- install:
- before_script:
- - |-
- ruby -e 'new = []
- Dir.glob("ext/**/extconf.rb") {|ex|
- unless File.exist?(dep = File.dirname(ex)+"/depend")
- puts "Adding "+dep
- File.copy_stream("template/depend.tmpl", dep)
- new << dep
- end
- }
- exec("git", "add", *new) unless new.empty?'
- - git diff --cached
- - "> config.status"
- - "> .rbconfig.time"
- - sed -f tool/prereq.status template/Makefile.in common.mk > Makefile
- - make touch-unicode-files
- - make -s $JOBS $UPDATE_UNICODE up
- - make -s $JOBS srcs
- - rm -f config.status Makefile rbconfig.rb .rbconfig.time
- - $SETARCH ./configure -C --disable-install-doc --prefix=$RUBY_PREFIX --disable-rubygems 'optflags=-O0' 'debugflags=-save-temps=obj -g'
- - ruby tool/update-deps --fix
- script:
- - git diff --no-ext-diff --ignore-submodules --exit-code
- after_failure:
- - echo "Dependencies need to update"
- env:
- - CONFIG_FLAG=
+ tool/travis_retry.sh sudo -E apt-get $travis_apt_get_options install
+ ccache
+ crossbuild-essential-armhf
+ libc6:armhf
+ libstdc++-10-dev:armhf
+ libffi-dev:armhf
+ libgdbm-dev:armhf
+ libncurses-dev:armhf
+ libncursesw5-dev:armhf
+ libreadline-dev:armhf
+ libssl-dev:armhf
+ linux-libc-dev:armhf
+ zlib1g-dev:armhf
matrix:
include:
- # Build every commit:
- - <<: *x86_64-linux
- - <<: *arm64-linux
- - <<: *i686-linux
+ # Build every commit (Allowed Failures):
- <<: *arm32-linux
+ # Comment out as the 2nd arm64 pipeline is unstable.
+ # - <<: *arm64-linux
+ - <<: *ppc64le-linux
- <<: *s390x-linux
- - <<: *pedanticism
- - <<: *assertions
- - <<: *baseruby
- - <<: *rubyspec
- - <<: *dependency
- # Build every commit (Allowed Failures):
- - <<: *ASAN
- - <<: *MSAN
- - <<: *UBSAN
- # Cron only:
- - <<: *jemalloc
- - <<: *VM_CHECK_MODE
- - <<: *SUPPORT_JOKE
- - <<: *CPDEBUG
- - <<: *WITH_COROUTINE_UCONTEXT
- - <<: *WITH_COROUTINE_COPY
- - <<: *TOKEN_THREADED_CODE
- - <<: *CALL_THREADED_CODE
- - <<: *NO_THREADED_CODE
allow_failures:
+ # We see multiple errors indicating errors on the Travis environment itself in a short while:
+ # https://app.travis-ci.com/github/ruby/ruby/jobs/544382885
+ # https://app.travis-ci.com/github/ruby/ruby/jobs/544361370
+ # It's not a fault of Ruby's arm32 support but just Travis arm32 seems unsable.
+ - name: arm32-linux
+ # - name: arm64-linux
+ # We see "Some worker was crashed." in about 40% of recent ppc64le-linux jobs
+ # e.g. https://app.travis-ci.com/github/ruby/ruby/jobs/530959548
+ - name: ppc64le-linux
+ # Tentatively disable, because often hungs up **after** all tests
+ # have finished successfully and saving caches.
- name: s390x-linux
- - name: -fsanitize=address
- - name: -fsanitize=memory
- - name: -fsanitize=undefined
fast_finish: true
before_script:
- - date # Debugging "Permission defined" failure on darwin like https://travis-ci.org/ruby/ruby/jobs/508683759
- - dpkg --print-architecture
- - dpkg --print-foreign-architectures
- - setarch --list
- - echo JOBS=${JOBS} SETARCH=${SETARCH}
- - $SETARCH uname -a
- - $SETARCH uname -r
+ - . tool/ci_functions.sh
+ - |-
+ if [ -n "${TEST_ALL_SKIPPED_TESTS}" ]; then
+ TEST_ALL_OPTS="${TEST_ALL_OPTS} $(ci_to_excluded_test_opts "${TEST_ALL_SKIPPED_TESTS}")"
+ if [ -z "${TEST_ALL_SEPARATED_TESTS}" ]; then
+ TEST_ALL_SEPARATED_TESTS="${TEST_ALL_SKIPPED_TESTS}"
+ fi
+ fi
+ - |-
+ if [ -n "${TEST_ALL_SEPARATED_TESTS}" ]; then
+ TEST_ALL_OPTS_SEPARATED="$(ci_to_included_test_opts "${TEST_ALL_SEPARATED_TESTS}")"
+ fi
+ - echo TEST_ALL_OPTS="${TEST_ALL_OPTS}" TEST_ALL_OPTS_SEPARATED="${TEST_ALL_OPTS_SEPARATED}"
- rm -fr .ext autom4te.cache
- - echo $TERM
- |-
[ -d ~/.downloaded-cache ] ||
mkdir ~/.downloaded-cache
@@ -462,9 +163,8 @@ before_script:
- "> config.status"
- "> .rbconfig.time"
- sed -f tool/prereq.status template/Makefile.in common.mk > Makefile
- - date; make touch-unicode-files
- - date; make -s $JOBS $UPDATE_UNICODE up
- - date; make -s $JOBS srcs
+ - make -s $JOBS up
+ - make -s $JOBS srcs
- rm -f config.status Makefile rbconfig.rb .rbconfig.time
- |-
if [ -d ~/config_2nd ]; then
@@ -476,7 +176,6 @@ before_script:
- chmod -R a-w .
- chmod -R u+w build config_1st config_2nd
- cd build
- - ccache --show-stats
- |-
case "$CC" in
gcc*) CC="ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-diagnostics-color";;
@@ -496,20 +195,7 @@ before_script:
- mv ../config_2nd ~
- chmod u-w ..
- $SETARCH make -s $JOBS
- - |-
- date; : # Debugging "Permission defined" failure on darwin like https://travis-ci.org/ruby/ruby/jobs/508683759
- if ! make install; then
- if [ "$(uname)" = Darwin ]; then
- # Debugging "Permission defined" failure on darwin like https://travis-ci.org/ruby/ruby/jobs/508683759
- set -x
- date
- ./miniruby -e 'ARGV.map{|path|[path,File.stat(path)]}.sort_by{|path,st|st.mtime}.each{|path,st|p mtime:st.mtime.to_f, ctime:st.ctime.to_f, path:path}' .ext/.timestamp/.RUBYCOMMONDIR*time .ext/common/bigdecimal/*.rb ../ext/bigdecimal/lib/bigdecimal/*.rb . .. .ext .ext/common .ext/common/bigdecimal ext/bigdecimal ../ext ../ext/bigdecimal ../ext/bigdecimal/lib ../ext/bigdecimal/lib/bigdecimal
- make COPY='cp -f' install
- else
- exit 1
- fi
- fi
- - ccache --show-stats
+ - make -s install
- |-
[ -z "${GEMS_FOR_TEST}" ] ||
$RUBY_PREFIX/bin/gem install --no-document $GEMS_FOR_TEST
@@ -517,17 +203,18 @@ before_script:
script:
- $SETARCH make -s test -o showflags TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"
- - travis_wait 50 $SETARCH make -s test-all -o exts TESTOPTS="${TESTOPTS} ${TEST_ALL_OPTS}" RUBYOPT="-w"
+ - ../tool/travis_wait.sh $SETARCH make -s test-all -o exts TESTOPTS="$JOBS -q --tty=no ${TEST_ALL_OPTS}" RUBYOPT="-w"
+ # Run the failing tests separately returning ok status to check if it works,
+ # visualize them.
+ - |
+ if [ -n "${TEST_ALL_OPTS_SEPARATED}" ]; then
+ $SETARCH make -s test-all -o exts TESTOPTS="$JOBS -v --tty=no ${TEST_ALL_OPTS_SEPARATED}" RUBYOPT="-w" || :
+ fi
- $SETARCH make -s test-spec MSPECOPT=-ff # not using `-j` because sometimes `mspec -j` silently dies
- $SETARCH make -s -o showflags leaked-globals
-# Branch matrix. Not all branches are Travis-ready so we limit branches here.
-branches:
- only:
- - master
- - ruby_2_4
- - ruby_2_5
- - ruby_2_6
+# We enable Travis on the specific branches or forked repositories here.
+if: (repo = ruby/ruby AND (branch = master OR branch =~ /^ruby_\d_\d$/)) OR repo != ruby/ruby
# We want to be notified when something happens.
notifications:
@@ -539,12 +226,11 @@ notifications:
template:
- "%{message} by @%{author}: See %{build_url}"
- slack:
- rooms:
- - secure: ah7UEHBvncXT7bM5mvYIQAO+tIyV/wl7nXLb7wQD16dO2v8Gragy0mWjB79Q09hrrMGmp6H9bCDpdGS80boIA5EHaHoG4QaP0i9bsSt8U2AMWgZtfyIgQKJ4H2kXkGlrjO+AXTgnIkP7LNjdgAVUUTGQPb26T3QmoN2Splt+fIQ= # ruby:#alerts
- on_pull_requests: false
- on_success: change
+ webhooks:
+ urls:
+ - secure: mRsoS/UbqDkKkW5p3AEqM27d4SZnV6Gsylo3bm8T/deltQzTsGzZwrm7OIBXZv0UFZdE68XmPlyHfZFLSP2V9QZ7apXMf9/vw0GtcSe1gchtnjpAPF6lYBn7nMCbVPPx9cS0dwL927fjdRM1vj7IKZ2bk4F0lAJ25R25S6teqdk= # ruby-lang slack: ruby/simpler-alerts-bot (travis)
+ on_success: never
on_failure: always
email:
- - ko1c-failure@atdot.net
+ - jaruga@ruby-lang.org
diff --git a/ruby/BSDL b/ruby/BSDL
index a009caefe..66d93598a 100644
--- a/ruby/BSDL
+++ b/ruby/BSDL
@@ -4,10 +4,10 @@ Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
-notice, this list of conditions and the following disclaimer.
+ notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
-notice, this list of conditions and the following disclaimer in the
-documentation and/or other materials provided with the distribution.
+ notice, this list of conditions and the following disclaimer in the
+ documentation and/or other materials provided with the distribution.
THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
diff --git a/ruby/CONTRIBUTING.md b/ruby/CONTRIBUTING.md
index ffdf2dd4b..7363c106a 100644
--- a/ruby/CONTRIBUTING.md
+++ b/ruby/CONTRIBUTING.md
@@ -1,4 +1,5 @@
-Please see the [official issue tracker] and wiki [HowToContribute].
+Please see the [official issue tracker], [doc/contributing.rdoc] and wiki [HowToContribute].
[official issue tracker]: https://bugs.ruby-lang.org
+[doc/contributing.rdoc]: contributing.rdoc
[HowToContribute]: https://bugs.ruby-lang.org/projects/ruby/wiki/HowToContribute
diff --git a/ruby/ChangeLog b/ruby/ChangeLog
deleted file mode 100644
index ba9e2921a..000000000
--- a/ruby/ChangeLog
+++ /dev/null
@@ -1,55893 +0,0 @@
--*- coding: utf-8 -*-
-
-commit a0c7c23c9cec0d0ffcba012279cd652d28ad5bf3
- Author: NARUSE, Yui
- Date: 2020-03-31 19:27:41 +0900
-
- v2.7.1p83
-
-commit f832d957b837d5167058a3f8579d66e5b5d3472e
- Author: NARUSE, Yui
- Date: 2020-03-31 19:26:10 +0900
-
- ext/socket/init.c: do not return uninitialized buffer
-
- BasicSocket#read_nonblock and some methods changes the size of a buffer
- string, but when no data is available, the buffer is returned as
- uninitialized.
-
- Co-Authored-By: Samuel Williams
-
-commit 5caee29164de6477b5cad1328b56e696a41d5025
- Author: git
- Date: 2020-03-31 16:31:53 +0900
-
- * 2020-03-31 [ci skip]
-
-commit bb93659fefd7f4557129043742771a33bd30c255
- Author: Jeremy Evans
- Date: 2020-03-31 16:10:57 +0900
-
- Fix pp when passed a empty ruby2_keywords-flagged hash as array element (#2966)
-
- This causes problems because the hash is passed to a block not
- accepting keywords. Because the hash is empty and keyword flagged,
- it is removed before calling the block. This doesn't cause an
- ArgumentError because it is a block and not a lambda. Just like
- any other block not passed required arguments, arguments not
- passed are set to nil.
-
- Issues like this are a strong reason not to have ruby2_keywords
- by default.
-
- Fixes [Bug #16519]
-
- This backports 28d31ead34baff1c4abc0d7d902ef4bc1d576fb2 and
- 0ea759eac9234afc47e8fb1bcacfe9ee12c8ffb6, but needed to be modified
- for 2.7 as 2.7 will perform empty keyword to positional hash
- conversion for required arguments, which will happen if "v" in the
- seplist method is empty when yielded.
-
- Co-authored-by: NARUSE, Yui
-
-commit d04856bdc502eec4055da1e5cf717639c314e189
- Author: git
- Date: 2020-03-30 19:15:42 +0900
-
- * 2020-03-30 [ci skip]
-
-commit b5fa156b7907b8ea1baf8b9f0cb6a66b0fecb3d4
- Author: Alan Wu
- Date: 2020-03-11 23:37:14 +0900
-
- Clear all trace events during teardown
-
- Since 0c2d81dada, not all trace events are cleared during VM teardown.
- This causes a crash when there is a tracepoint for
- `RUBY_INTERNAL_EVENT_GC_EXIT` active during teardown.
-
- The commit looks like a refactoring commit so I think this change was
- unintentional.
-
- [Bug #16682]
-
- (cherry picked from commit b385f7670ffa420790bc548747fa4b58c4c5d8f6)
-
-commit 0057fe4063b57b445d6ffc893e442f362e3a19e0
- Author: aycabta
- Date: 2020-03-30 19:09:50 +0900
-
- Ruby 2.7 backport about IRB (#2990)
-
- * [ruby/reline] Sort completion list
-
- #### Legacy mode:
-
- ```console
- $ irb --legacy
- irb(main):001:0> l[TAB][TAB]
- lambda load local_variables loop
- ```
-
- #### Before this patch:
-
- ```console
- $ irb
- irb(main):001:0> l[TAB][TAB]
- local_variables
- loop
- lambda
- load
- ```
-
- #### After this patch:
-
- ```console
- $ irb
- irb(main):001:0> l[TAB][TAB]
- lambda
- load
- local_variables
- loop
- ```
-
- https://github.com/ruby/reline/commit/6074069c7d
-
- * Drop an invalid char as UTF-8
-
- * Add test_completion_with_indent_and_completer_quote_characters
-
- This is for 8a705245e55575d4d310a2e956b89a36a5931971.
-
- * [ruby/irb] Add tests for RubyLex
-
- The set_auto_indent method calculates the correct number of spaces for
- indenting a line. We think there might be a few bugs in this method so
- we are testing the current functionality to make sure nothing breaks
- when we address those bugs.
-
- Example test failure:
-
- ```
- 1) Failure:
- TestIRB::TestRubyLex#test_auto_indent [/Users/Ben/Projects/irb/test/irb/test_ruby_lex.rb:75]:
- Calculated the wrong number of spaces for:
- def each_top_level_statement
- initialize_input
- catch(:TERM_INPUT) do
- loop do
- begin
- prompt
- unless l = lex
- throw :TERM_INPUT if @line == ''
- else
- .
- <10> expected but was
- <12>.
- ```
-
- https://github.com/ruby/irb/commit/752d5597ab
-
- * [ruby/reline] Degenerate the terminal size to [$LINES, $COLUMNS] if it is unknown
-
- This is a workaround for https://github.com/ruby/irb/issues/50
-
- https://github.com/ruby/reline/commit/5725677d1a
-
- * [ruby/irb] Fix newline depth with multiple braces
-
- This commit fixes the check_newline_depth_difference method to multiple
- open braces on one line into account. Before this change we were
- subtracting from the depth in check_newline_depth_difference on
- every open brace. This is the right thing to do if the opening and
- closing brace are on the same line. For example in a method definition we
- have an opening and closing parentheses we want to add 1 to our depth,
- and then remove it.
-
- ```
- def foo()
- end
- ```
-
- However this isn't the correct behavior when the brace spans multiple
- lines. If a brace spans multiple lines we don't want to subtract from
- check_newline_depth_difference and we want to treat the braces the same
- way as we do `end` and allow check_corresponding_token_depth to pop the
- correct depth.
-
- Example of bad behavior:
-
- ```
- def foo()
- [
- ]
- puts 'bar'
- end
- ```
-
- Example of desired behavior:
-
- ```
- def foo()
- [
- ]
- puts 'bar'
- end
- ```
-
- https://github.com/ruby/irb/commit/7dc8af01e0
-
- * text/readline/test_readline.rb - fix skip on Reline (#2743)
-
- TestRelineAsReadline#test_input_metachar passes on MinGW
-
- * Add "require 'openstruct'" what is forgotten
-
- * [ruby/irb] Fix lib name of OpenStruct
-
- https://github.com/ruby/irb/commit/1f3a84ab6b
-
- * Add load path and require for ruby/ruby
-
- * Rescue EOFError
-
- If C-d is pressed before IRB is ready, IRB crashes because EOFError occurs.
-
- * Complete indented and quoted string correctly
-
- def foo
- ''.upca[TAB]
-
- This will be completed to be:
-
- def foo
- ''.upcase
-
- The indent was gone. This commit fixes the bug.
-
- * [ruby/irb] Fix crashing when multiple open braces per line
-
- https://github.com/ruby/irb/issues/55
-
- If we had put multiple open braces on a line the with no closing brace
- spaces_of_nest array keeps getting '0' added to it. This means that when
- we pop off of this array we are saying that we should be in position zero
- for the next line. This is an issue because we don't always want to be
- in position 0 after a closing brace.
-
- Example:
- ```
- [[[
- ]
- ]
- ]
- ```
- In the above example the 'spaces_of_nest' array looks like this after
- the first line is entered: [0,0,0]. We really want to be indented 4
- spaces for the 1st closing brace 2 for the 2nd and 0 for the 3rd. i.e.
- we want it to be: [0,2,4].
-
- We also saw this issue with a heredoc inside of an array.
-
- ```
- [<")
- it fails with:
- irb/completion.rb:206:in `<<': wrong number of arguments (given 3, expected 1) (ArgumentError)
-
- Using Array#push instead of Array#append fixes compatibility.
-
- https://github.com/ruby/irb/commit/5b7bbf9c34
-
- * Reline: Use a more robust detection of MinTTY
-
- The previous detection per get_screen_size fails when stdout is passed
- to a pipe. That is the case when running ruby tests in parallel ("-j" switch).
- In this case Reline believes that it's running on MinTTY and the tests
- are running with ANSI IOGate instead of the Windows adapter on MINGW.
- So parallel test results were different to that of a single process.
- This commit fixes these differencies.
-
- The code is taken from git sources and translated to ruby.
- NtQueryObject() is replaced by GetFileInformationByHandleEx(), because
- NtQueryObject() is undocumented and is more difficult to use:
- https://github.com/git-for-windows/git/blob/c5a03b1e29c69f3f06c8fabd92493edb73469176/compat/winansi.c#L558
-
- * Reline: Fix changed test results due to change to UTF-8 on Windows
-
- In commit f8ea2860b0cac1aec79978e6c44168802958e8af the Reline encoding
- for native windows console was changed to hardcoded UTF-8.
- This caused failures in reline and readline tests, but they were hidden,
- because parallel ruby tests incorrectly used Reline::ANSI as IOGate.
- Tests failures were raised in single process mode, but not with -j switch.
-
- This patch corrects encodings on native Windows console.
-
- * [ruby/irb] [ruby/irb] Rewrite an expression to detect multiline
-
- https://github.com/ruby/irb/commit/ed5cf375a6
-
- https://github.com/ruby/irb/commit/5b7bbf9c34
-
- * [ruby/reline] Implement vi_change_meta
-
- https://github.com/ruby/reline/commit/8538e0e10f
-
- * Always refer to Reline::IOGate.encoding
-
- * Always use UTF-8 for Reline::GeneralIO on Windows
-
- * Use test_mode on Reline::History::Test for encoding
-
- * [ruby/reline] Support GNOME style Home/End key sequences [Bug #16510]
-
- https://github.com/ruby/reline/commit/788f0df845
-
- * [ruby/irb] Add a new easter egg: dancing ruby
-
- https://github.com/ruby/irb/commit/e37dc7e58e
-
- * [ruby/irb] Exclude useless files from RDoc
-
- https://github.com/ruby/irb/commit/8f1ab2400c
-
- * [ruby/irb] Exclude useless files from RDoc
-
- * Fix inaccuracy in encoding tests
-
- These tests assume
- Encoding.find('locale') == Encoding.find('external')
- and fail if they are distinct.
-
- * [ruby/reline] Fix Reline::Windows#scroll_down
-
- I mistook Right and Bottom.
-
- https://github.com/ruby/reline/commit/8be401c5f5
-
- * [ruby/reline] Bypass cursor down when a char is rendered at eol on Windows
-
- A newline is automatically inserted if a character is rendered at eol on
- Windows command prompt.
-
- https://github.com/ruby/reline/commit/4bfea07e4a
-
- * [ruby/reline] Organize special keys escape sequences
-
- https://github.com/ruby/reline/commit/41deb1a3d9
-
- * [ruby/readline-ext] Remove unnecessary -I$(top_srcdir) when it's an individual gem
-
- https://github.com/ruby/readline-ext/commit/efaca4a5f4
-
- * [ruby/readline-ext] Check TestRelineAsReadline existance
-
- https://github.com/ruby/readline-ext/commit/c0a6303168
-
- * [ruby/readline-ext] The ruby/assert.h is adopted by Ruby 2.7 or later
-
- https://github.com/ruby/readline-ext/commit/106c31fc1b
-
- * Revert "[ruby/readline-ext] Include ruby/assert.h in ruby/ruby.h so that assertions can be there"
-
- This reverts commit 425b2064d394639101854c83a061a0918b33b857.
-
- This cherry-pick was a mistake.
-
- * [ruby/readline-ext] Use require check instead of DONT_RUN_RELINE_TEST env
-
- https://github.com/ruby/readline-ext/commit/1df99d1481
-
- * [ruby/readline-ext] Add spec.extensions
-
- https://github.com/ruby/readline-ext/commit/8c33abb13c
-
- * [ruby/readline-ext] Use rake/extensiokntask to build
-
- https://github.com/ruby/readline-ext/commit/b0b5f709bd
-
- * Fix readline build dependency
-
- * [ruby/irb] Add test_complete_symbol
-
- https://github.com/ruby/irb/commit/dbbf086c1f
-
- * [ruby/irb] Check doc namespace correctly
-
- IRB::InputCompletor::PerfectMatchedProc crashes when doc not found because a
- variable name was incorrect.
-
- https://github.com/ruby/irb/commit/889fd4928f
-
- * [ruby/irb] Fix auto indent with closed brace
-
- A closed brace in auto-indent shouldn't affect the next brace in the same line,
- but it behaves like below:
-
- p() {
- }
-
- It's a bug.
-
- https://github.com/ruby/irb/commit/fbe59e344f
-
- * [ruby/irb] Use 0.step instead of (..0).each for Ruby 2.5
-
- https://github.com/ruby/irb/commit/5d628ca40e
-
- * Revert "[ruby/irb] Add test_complete_symbol"
-
- This reverts commit 3af3431c2c145134996e66f3d8d9ade8ad81bde0.
-
- * [ruby/irb] fix reserved words and completion for them
-
- https://github.com/ruby/irb/commit/6184b227ad
-
- * Add test_complete_symbol
-
- The previous version of the test method used a symbol, ":abcdefg" to complete
- but longer symbols that can be completed are defined by other test methods of
- other libs.
-
- * test/irb/test_completion.rb: suppress a warning: unused literal ignored
-
- * [ruby/reline] Use IO#write instead of IO#print
-
- IO#print always adds a string of $\ automatically.
-
- https://github.com/ruby/reline/commit/a93119c847
-
- * [ruby/irb] Version 1.2.2
-
- https://github.com/ruby/irb/commit/a71753f15a
-
- * [ruby/reline] Version 0.1.3
-
- https://github.com/ruby/reline/commit/ea2b182466
-
- * [ruby/irb] Include easter-egg.rb in gemspec
-
- `irb` doesn't run because this file isn't included in the gem.
- https://github.com/ruby/irb/commit/73cda56d25
-
- * [ruby/irb] Version 1.2.3
-
- https://github.com/ruby/irb/commit/dd56e06df5
-
- * support multi-run test for test_readline.rb
-
- * [ruby/irb] `yield` outside method definition is a syntax error
-
- https://github.com/ruby/irb/commit/dbc7b059c7
-
- * test/readline - allow ENV control of test class creation
-
- In ruby/ruby, the tests run on both readline & reline by creating four test classes:
- ```
- TestReadline
- TestReadlineHistory
-
- TestRelineAsReadline
- TestRelineAsReadlineHistory
- ```
-
- Reline inports the test files and uses them in its CI. Adding the ENV control allows it to only run the `TestRelineAsReadline` classes.
-
- * Omit test_using_quoting_detection_proc_with_multibyte_input temporarily for random order test
-
- * support random order test.
-
- test_readline:
- HISTORY should be empty.
-
- test_using_quoting_detection_proc:
- test_using_quoting_detection_proc_with_multibyte_input:
- Readline.completer_quote_characters= and
- Readline.completer_word_break_characters= doesn't accept nil,
- so skip if previous values are nil.
-
- * Set Readline.completion_append_character = nil always
-
- GNU Readline add a white space when Readline.completion_append_character is
- not initialized.
-
- * Fix a typo [ci skip]
-
- * skip test if Reline.completion_proc is nil.
-
- Some other tests can set Reline.completion_proc, so if it is nil,
- simply skip this test.
-
- * Reset Reline.point
-
- TestRelineAsReadline#test_insert_text expects Readline.point == 0
- at the beginning of the test, but a test violate this assumption.
-
- * Convert incompatible encoding symbol names
-
- * Ignore incompatible convert of symbols
-
- * Add workaround for test-bundler failure
-
- https://github.com/ruby/actions/runs/500526558?check_suite_focus=true#step:16:127
- ```
- Failures:
-
- 1) Bundler.setup when Bundler is bundled doesn't blow up
- Failure/Error: expect(err).to be_empty
-
- expected `"fatal: not a git repository (or any of the parent directories): .git\nfatal: not a git repository (o...the parent directories): .git\nfatal: not a git repository (or any of the parent directories): .git".empty?` to return true, got false
-
- Commands:
- $ /home/runner/work/actions/actions/snapshot-master/ruby \
- -I/home/runner/work/actions/actions/snapshot-master/lib:/home/runner/work/actions/actions/snapshot-master/spec/bundler \
- -rsupport/hax -rsupport/artifice/fail \
- /home/runner/work/actions/actions/snapshot-master/libexec/bundle install --retry 0
- Resolving dependencies...
- Using bundler 2.1.4
- Bundle complete! 1 Gemfile dependency, 1 gem now installed.
- Use `bundle info [gemname]` to see where a bundled gem is installed.
- fatal: not a git repository (or any of the parent directories): .git
- fatal: not a git repository (or any of the parent directories): .git
- fatal: not a git repository (or any of the parent directories): .git
- # $? => 0
-
- $ /home/runner/work/actions/actions/snapshot-master/ruby \
- -I/home/runner/work/actions/actions/snapshot-master/lib:/home/runner/work/actions/actions/snapshot-master/spec/bundler \
- -rsupport/hax -rsupport/artifice/fail \
- /home/runner/work/actions/actions/snapshot-master/libexec/bundle exec ruby -e \
- require\ \'bundler\'\;\ Bundler.setup
- fatal: not a git repository (or any of the parent directories): .git
- fatal: not a git repository (or any of the parent directories): .git
- fatal: not a git repository (or any of the parent directories): .git
- # $? => 0
- # ./spec/bundler/runtime/setup_spec.rb:1056:in `block (3 levels) in '
- # ./spec/bundler/spec_helper.rb:111:in `block (3 levels) in '
- # ./spec/bundler/spec_helper.rb:111:in `block (2 levels) in '
- # ./spec/bundler/spec_helper.rb:78:in `block (2 levels) in '
- make: *** [yes-test-bundler] Error 1
- ```
-
- * [ruby/irb] Unnamed groups are not captured when named groups are used
-
- https://github.com/ruby/irb/commit/0a641a69b0
-
- * [ruby/reline] Work with wrong $/ value correctly
-
- https://github.com/ruby/reline/commit/962ebf5a1b
-
- * [ruby/irb] Detect multiple lines output simplify
-
- The old implementation performance test code:
-
- require 'objspace'
- puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001)
- /\A.*\Z/ !~ ('abc' * 20_000_000)
- puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001)
-
- and run `time test.rb`:
-
- 2.5868 MB
- 62.226 MB
-
- real 0m1.307s
- user 0m0.452s
- sys 0m0.797s
-
- The new implementation performance test code:
-
- require 'objspace'
- puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001)
- ('abc' * 20_000_000).include?("\n")
- puts "%.5g MB" % (ObjectSpace.memsize_of_all * 0.001 * 0.001)
-
- and run `time test.rb`:
-
- 2.5861 MB
- 62.226 MB
-
- real 0m0.132s
- user 0m0.088s
- sys 0m0.042s
-
- https://github.com/ruby/irb/commit/40d6610baf
-
- * [ruby/reline] Suppress error in case INPUTRC env is empty
-
- https://github.com/ruby/reline/commit/bce7e7562b
-
- * [ruby/reline] Add yamatanooroti rendering test
-
- https://github.com/ruby/reline/commit/f092519525
-
- * [ruby/reline] Rename test suite name of yamatanooroti test
-
- https://github.com/ruby/reline/commit/b0f32f5de4
-
- * [ruby/reline] Add a comment why rescue yamatanooroti loading error on the test
-
- https://github.com/ruby/reline/commit/2a8061daec
-
- * [ruby/irb] Suppress crashing when EncodingError has occurred without lineno
-
- https://github.com/ruby/irb/commit/13572d8cdc
-
- * [ruby/reline] Suppress error when check ambiguous char width in LANG=C
-
- https://github.com/ruby/reline/commit/623dffdd75
-
- * [ruby/io-console] Enable only interrupt bits on `intr: true`
-
- https://github.com/ruby/io-console/commit/baaf929041
-
- * [ruby/io-console] bump up to 0.5.4
-
- * [ruby/io-console] Update the minimum requirement of Ruby version
-
- https://github.com/ruby/io-console/commit/73e7b6318a
-
- * [ruby/io-console] Filter Ruby engine name rather than just /ruby/
-
- This breaks tests using this path on JRuby because the `jruby`
- executable turns into `jjruby` after the sub.
-
- https://github.com/ruby/io-console/commit/e5951aa34c
-
- * [ruby/io-console] bump up to 0.5.5
-
- * [ruby/io-console] Prefer keyword arguments
-
- https://github.com/ruby/io-console/commit/5facbfc4c8
-
- * [ruby/io-console] [DOC] Improved about `intr:`
-
- https://github.com/ruby/io-console/commit/82b630cd79
-
- * [ruby/io-console] Just ignore the extension on other than CRuby
-
- https://github.com/ruby/io-console/commit/41b6f09574
-
- * [ruby/io-console] bump up to 0.5.6
-
- Co-authored-by: KOBAYASHI Shuji
- Co-authored-by: Ben
- Co-authored-by: Yusuke Endoh
- Co-authored-by: MSP-Greg
- Co-authored-by: Nobuyoshi Nakada
- Co-authored-by: Kenta Murata
- Co-authored-by: Lars Kanis
- Co-authored-by: Lars Kanis
- Co-authored-by: Alan Wu
- Co-authored-by: Hiroshi SHIBATA
- Co-authored-by: Nobuhiro IMAI
- Co-authored-by: Nick Lewis
- Co-authored-by: S-H-GAMELINKS
- Co-authored-by: Koichi Sasada
- Co-authored-by: Kazuhiro NISHIYAMA
- Co-authored-by: Charles Oliver Nutter
-
-commit ecf874edea92796c63cc2b50b36b1179de5114c6
- Author: git
- Date: 2020-03-28 06:14:02 +0900
-
- * 2020-03-28 [ci skip]
-
-commit 22c3014e36219b072fd6b1e963c4c64c7015a3cd
- Author: Yusuke Endoh
- Date: 2020-03-03 20:54:31 +0900
-
- Suppress an "assigned but unused variable" warning
-
- (cherry picked from commit 501f2c44e6ae79c02a5c4d0f872fc7fa77258fcf)
-
-commit 44f7e3883e49d287a96f7ef36b5c935d833300e5
- Author: Nobuyoshi Nakada
- Date: 2020-03-03 15:48:53 +0900
-
- Preserve `kwarg` flag and fix up f5c904c2a9
-
- (cherry picked from commit c8d0bf0156878df03a71fffc97c44abf7333d5d7)
-
-commit aeda3a7f036aa7c768abffd1965972c658f49c22
- Author: Yusuke Endoh
- Date: 2020-03-02 22:37:04 +0900
-
- Suppress "assigned but unused variable" warnings
-
- (cherry picked from commit 65dd50fc25f6522536d5c4749055384bde1f9371)
-
-commit 004c298738dc0924e7483b0c3f41c798dabe9e5b
- Author: Nobuyoshi Nakada
- Date: 2020-03-02 15:49:03 +0900
-
- Allow newlines inside braced pattern
-
- (cherry picked from commit f5c904c2a907013e22ff74bc3686952c5448d493)
-
-commit 93aaa0bcce829b880d8f52a9168d17c93ecde85b
- Author: Kazuki Tsujimoto
- Date: 2020-03-01 14:23:51 +0900
-
- Allow trailing comma in hash pattern
-
- (cherry picked from commit d25a4f413dce6ad3a8baaf61591415b9a8cce082)
-
-commit 5ccf57f23eb7a35ac699edc2fc598c47fa1844a0
- Author: Nobuyoshi Nakada
- Date: 2020-03-25 22:00:15 +0900
-
- Make RbConfig::CONFIG values mutable [Bug #16738]
-
- As `RbConfig.expand` modifies the argument and involved `CONFIG`
- values, its values should be mutable.
-
- (cherry picked from commit 4adb2d655dcd54b28366b4d17e86b21e2b622cd1)
-
-commit 7b5133801340cfa7e4e4e5dd61384cb90c3f6085
- Author: Hiroshi SHIBATA
- Date: 2020-01-08 16:11:52 +0900
-
- Merge bundler-2.1.4
-
-commit 572021c6e4e01c3b8ece90ad42fdd4ee71b8acc5
- Author: git
- Date: 2020-03-26 23:51:12 +0900
-
- * 2020-03-26 [ci skip]
-
-commit c9a7643a7e5993975e7e8c985df157d73b16a490
- Author: Yusuke Endoh
- Date: 2020-03-21 15:46:33 +0900
-
- test/openssl/test_ssl.rb: ignore SSLError when the connection is closed
-
- "test_close_after_socket_close" checks if ssl.close is no-op even after
- the wrapped socket is closed. The test itself is fair, but the other
- endpoint that is reading the SSL connection may fail with SSLError:
- "SSL_read: unexpected eof while reading" in some environments:
-
- https://github.com/ruby/ruby/actions/runs/60085389 (MinGW)
- https://rubyci.org/logs/rubyci.s3.amazonaws.com/android28-x86_64/ruby-master/log/20200321T034442Z.fail.html.gz
- ```
- 1) Failure:
- OpenSSL::TestSSL#test_close_after_socket_close [D:/a/ruby/ruby/src/test/openssl/utils.rb:299]:
- exceptions on 1 threads:
- SSL_read: unexpected eof while reading
- ```
-
- This changeset rescues and ignores the SSLError in the test.
-
- (cherry picked from commit be76e86e69106c6906322dc30aa75c3ff65da63c)
-
-commit 897d4e31b0e5b29405480ed3236bc8c5c6cac3fa
- Author: Koichi Sasada
- Date: 2020-03-07 03:55:54 +0900
-
- check ar_table first.
-
- RHASH_AR_TABLE_SIZE() has assertion that it is a ar_talbe.
- The last commit breaks this assumption so check ar_table first.
-
- (cherry picked from commit c3584dfacce4d0f2058d8403de6fdce4fd4d686b)
-
-commit ab6f78bc926f6fc12dc8d7846056fc9c04d63ead
- Author: Koichi Sasada
- Date: 2020-03-07 03:32:15 +0900
-
- check ar_table after `#hash` call
-
- ar_table can be converted to st_table just after `ar_do_hash()`
- function which calls `#hash` method. We need to check
- the representation to detect this mutation.
- [Bug #16676]
-
- (cherry picked from commit 4c019f5a626523e99e2827ed917802e3097c380d)
-
-commit e4efca87ba1aa5b6a94b9007040ac3e783c26b43
- Author: Koichi Sasada
- Date: 2020-03-26 01:16:50 +0900
-
- check flags passed to rb_nogvl()
-
- RB_NOGVL_UBF_ASYNC_SAFE is wrongly specified because flags
- is not checked.
- [Bug #15499] 23444302
-
- (cherry picked from commit ff98931daca1265e5bd33025d160c77e452c399e)
-
-commit 2a3027b7b54a3118731f70c9e88aabbd495bb9fe
- Author: Alan Wu
- Date: 2020-03-14 09:59:55 +0900
-
- Add missing write barrier for Hash#transform_values{,!}
-
- 21994b7fd686f263544fcac1616ecf3189fb78b3 removed the write barrier that
- was present in rb_hash_aset(). Re-insert it to not crash during GC.
-
- [Bug #16689]
-
- (cherry picked from commit 713dc619f5372a645b66bef9dacee217c4101cb4)
-
-commit 95c3bb6c426a11253644a86137bb67c542fd5799
- Author: Nobuyoshi Nakada
- Date: 2020-03-16 17:26:10 +0900
-
- Do not make disabled directories at installation [Bug #12392]
-
- (cherry picked from commit 8a6ba10f9dd456cf54de800203cf04bbe42271fb)
-
-commit 1853efc46dba862c50df7710cfbacded999ae2ec
- Author: NARUSE, Yui
- Date: 2020-03-26 21:17:07 +0900
-
- Use power_assert 1.1.7
-
- Mainly for pry compatibility in test
- https://github.com/k-tsj/power_assert/commit/dcc14cbef48d9790187fa400a5df7531d81a5971
-
- Also include "Show full_message if available"
- https://github.com/k-tsj/power_assert/commit/53ce0400bf47f722830d6604be0a2e30cccabf34
-
-commit 47b08728cf3d0441a3da4dc1dcdd578817b0e036
- Author: Jean Boussier
- Date: 2020-03-12 21:55:20 +0900
-
- [ruby/stringio] StringIO#initialize default to the source string encoding
-
- [Bug #16497]
-
- https://github.com/ruby/stringio/commit/4958a5ccab
- (cherry picked from commit e257c08f2ec27e2d66cdfa7e2415deb492522e22)
-
-commit 3efbd527a86203406664a01126784a10eb136405
- Author: Jeremy Evans
- Date: 2020-01-25 05:13:41 +0900
-
- Do not autosplat when calling proc with empty keyword splat
-
- With the removal of the splatted argument when using an empty
- keyword splat, the autosplat code considered an empty keyword
- splat the same as no argument at all. However, that results
- in autosplat behavior changing dependent on the content of
- the splatted hash, which is not what anyone would expect or
- want. This change always skips an autosplat if keywords were
- provided.
-
- Fixes [Bug #16560]
-
- (cherry picked from commit c1d8829ef515ee51fadeadd7dd022b5c47a71cdd)
-
-commit c858a10ce87033beec63516fe6407b50c6539177
- Author: git
- Date: 2020-03-15 19:35:48 +0900
-
- * 2020-03-15 [ci skip]
-
-commit a36ead3f4fe801ddaebe6d1ed905e9e3276dbac7
- Author: Takashi Kokubun
- Date: 2020-02-29 16:58:33 +0900
-
- Prevent unloading methods used in root_fiber while calling another Fiber (#2939)
-
- Fixing SEGVs like:
- http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2744905
- http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2744420
- http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/2741400
- [Bug #16664]
-
- (cherry picked from commit adcf0316d1ecedae2a9157ad941550e0c0fb510b)
-
-commit 17e925b9917f4877f2da8c64316feb3ce1ca2932
- Author: Takashi Kokubun
- Date: 2020-02-29 16:20:44 +0900
-
- Avoid infinite loop on --jit-wait
-
- (cherry picked from commit a8dcab723316997d9e01c89d6df969edce75bdca)
-
-commit c6944377d798e088042f2944b81aa3fa8a4e5411
- Author: Jean Boussier
- Date: 2020-02-03 20:29:37 +0900
-
- Fix SimpleDelegator respond_to? regression
-
- In 2.6, SimpleDelegator would always use the target `respond_to?`
-
- In 2.7.0 it doesn't if the target does not inherit from Object.
-
- This breaks compatibility for delegated objects that inherit
- from BasicObject and redefine `respond_to?`. [Bug #16606]
-
- (cherry picked from commit f2552216d43040cd42bbb9fd484eab6c70856fe6)
-
-commit d07a6dc10efa71123b36a4a3ff7d2ec6e52804d7
- Author: Nobuyoshi Nakada
- Date: 2020-01-21 11:47:04 +0900
-
- delegate.rb: fixed keyword arguments in DelegateClass
-
- `Delegator.delegating_block` should delegate keyword arguments
- separately. [ruby-core:96949]
-
- (cherry picked from commit 9bcf4f3db26249772c983896ebbc9ff41f4614db)
-
-commit e70d52b0c377f8b2ed04311710c0ca9f4ebabd90
- Author: Jeremy Evans
- Date: 2020-02-25 06:19:37 +0900
-
- Make ruby2_keywords methods correctly handle **{} optimization
-
- Previously, this code:
-
- ruby2_keywords def foo(*a) a.last end
- foo(**{})
-
- Returned an empty frozen hash. However, the final hash should
- not be frozen in this case, as it wouldn't be if foo accepted
- a keyword splat.
-
- Use a new unfrozen empty hash instead of reusing the frozen empty
- hash in this case.
-
- Fixes [Bug #16642]
-
-commit b3fabedc7043593812c9ad507b4648a55d74df99
- Author: git
- Date: 2020-03-14 20:27:57 +0900
-
- * 2020-03-14 [ci skip]
-
-commit e7555d467b882fa8213f17643b00557ed420b640
- Author: Takashi Kokubun
- Date: 2019-12-31 16:20:17 +0900
-
- Drop MinGW build from AppVeyor
-
- in favor of #2791
-
- (cherry picked from commit b00418732c89ce42c1c4cef57d08344659fbdd2b)
-
-commit 0d24fb774d84d4a99454ce10fd343da00049a588
- Author: Jeremy Evans
- Date: 2020-03-09 23:57:16 +0900
-
- Don't display singleton class in Method#inspect unless method defined there
-
- Previously, if an object has a singleton class, and you call
- Object#method on the object, the resulting string would include
- the object's singleton class, even though the method was not
- defined in the singleton class.
-
- Change this so the we only show the singleton class if the method
- is defined in the singleton class.
-
- Fixes [Bug #15608]
-
- (cherry picked from commit e02bd0e713ef920e6d12c27f16548f48ec5c2cf0)
-
-commit eabf35a5d298c68f45dc600477fc586d7b868788
- Author: Nobuyoshi Nakada
- Date: 2020-02-10 12:15:48 +0900
-
- Fixed duplicated warning
-
- As `command_rhs` is always a "value expression", `command_asgn`
- does not need the same check. [Bug #16619]
-
- (cherry picked from commit 6e6844320de989cb88a154e2ac75066ccea1bba2)
-
-commit fa48a26d886d86469a0075d91d152252e9fc0c8c
- Author: Nobuyoshi Nakada
- Date: 2020-02-24 15:33:50 +0900
-
- Fixed symbol misused as ID
-
- `rb_funcallv_public` and `rb_respond_to` require an `ID`, not a
- `Symbol`. [Bug #16649]
-
- (cherry picked from commit 8b6e2685a4b7c7de905f7ed60c02ef85e0724754)
-
-commit 3e7e1b965b06f3c843972d7e2f6e3d040374d67f
- Author: Nobuyoshi Nakada
- Date: 2020-02-18 14:34:26 +0900
-
- Pass keyword arguments to IOs properly [Bug #16639]
-
- (cherry picked from commit 041c2932e336b509b0ddc1fdbd9f160bce8d4893)
-
-commit 2339be74e737b4c5f5330f845af2e7db0c7450e1
- Author: Yusuke Endoh
- Date: 2020-02-15 16:27:03 +0900
-
- lib/drb/drb.rb: Use ruby2_keywords for keyword separation
-
- [Bug #16634]
-
- (cherry picked from commit fb472ca7adbaceb35aae1b3a6b948720ffc9eb53)
-
-commit c7e0ce67430b5e312eb626a2c2f4b6a810b3b68b
- Author: Nobuyoshi Nakada
- Date: 2020-02-04 15:21:49 +0900
-
- Add the loaded feature after no exception raised
-
- Retrying after rescued `require` should try to load the same
- library again. [Bug #16607]
-
- (cherry picked from commit 7d6903dc476f982e7b432adbeef3a3d9372a309f)
-
-commit 7518b4e945675df9aca223c30ca711e1d82341ec
- Author: NARUSE, Yui
- Date: 2020-03-13 22:31:29 +0900
-
- fix the order of definition
-
-commit fcaa00e58fd3a4cbaa19c6558783b43ee324d19e
- Author: Hiroshi SHIBATA
- Date: 2020-03-07 20:42:44 +0900
-
- Use osuosl instead of GitHub releases
-
- Because the package provided by GitHub releases is different from sourceware.
-
- (cherry picked from commit 47a1872cd8b901b8aab6dedce7fa3807c97d290d)
-
-commit 6a2d779027818eda418c9118f700b36816e833a5
- Author: Hiroshi SHIBATA
- Date: 2020-03-07 19:57:28 +0900
-
- Switch to download libffi source package to github releases from sourceware.org
-
- [Bug #16681]
- (cherry picked from commit 86022167461dc90b70164e2bb23316959bbfd6ba)
-
-commit 60d98fad86da1ada204c53789431ac0f5f3390ff
- Author: Nobuyoshi Nakada
- Date: 2020-01-17 23:49:26 +0900
-
- [ruby/io-console] Set `OPOST` when `intr` is true
-
- To enable implementation-defined output processing, for the
- compatibility with readline. [Bug #16509]
-
- https://bugs.ruby-lang.org/issues/16509
-
- https://github.com/ruby/io-console/commit/8c8b0b6757
- (cherry picked from commit 4e56ec4ef74cf77dbcb4ce7c669e0595cd0d12fa)
-
-commit 9f504bb474770f1cac68988eac2a410e41c4bbb8
- Author: Nobuyoshi Nakada
- Date: 2020-02-09 16:56:40 +0900
-
- Separate objspace argument for rb_gc_disable and rb_gc_enable
-
- (cherry picked from commit aeaf0dc55595b8a5bfdd92007fb85ef13855c632)
-
-commit 047dfbdf69e1a300109c729c66b6a761032402dd
- Author: Nobuyoshi Nakada
- Date: 2020-01-28 09:18:12 +0900
-
- Skip empty directories to install [Bug #16596]
-
- (cherry picked from commit 33d02e6bc7502c5a3f09c59908a8c9f08a474b8d)
-
-commit 5bdbee96e479f714c7f9b6b98f012268cbd9051b
- Author: NARUSE, Yui
- Date: 2020-03-13 21:43:44 +0900
-
- Squashed commit of the following: [Backport #16516]
-
- commit c98c492578d898dc07a04b8240d8d5b1508ffafa
- Author: Nobuyoshi Nakada
- Date: Fri Jan 17 16:56:53 2020 +0900
-
- Added test for f38b3e8c707ebdcad05aa9485cf1760640b74fbb
-
- commit f38b3e8c707ebdcad05aa9485cf1760640b74fbb
- Author: Nobuyoshi Nakada
- Date: Thu Jan 16 18:34:31 2020 +0900
-
- Fixed the location of args node with numbered parameter
-
-commit a9284ecb90176b4d8e9aa264da14ea08931be48f
- Author: Nobuyoshi Nakada
- Date: 2020-02-09 16:41:56 +0900
-
- Disable GC until VM objects get initialized [Bug #16616]
-
-commit 215eb86a7729bf0db487f399031ad55a1062fada
- Author: Jean Boussier
- Date: 2020-01-15 22:40:01 +0900
-
- Increase the frozen_strings table initial size
-
- It was set to 1000 in a4a2b9be7a55bb61d17cf9673ed0d2a93bb52d31.
-
- However on ruby-2.7.0p0, there are much more than 1k frozen string right after boot:
-
- ```
- $ ruby -robjspace -e 'p ObjectSpace.each_object(String).select { |s| s.frozen? && ObjectSpace.dump(s).include?(%{"fstring":true})}.uniq.count'
- 5948
- ```
-
-commit 8a54630a6608d9b1a9d32db2ba33289a5454810d
- Author: git
- Date: 2020-03-13 21:32:13 +0900
-
- * 2020-03-13 [ci skip]
-
-commit 3c93ed59773ca547239850d16f06451afbb0aeec
- Author: Adam Isom
- Date: 2020-01-17 06:42:36 +0900
-
- Update documentation for Array/Hash Argument section of methods.rdoc
-
- [Bug #16514]
-
-commit c3cd92582f970812be51310e377c82b6d9e7be92
- Author: Kazuhiro NISHIYAMA
- Date: 2020-02-20 00:13:44 +0900
-
- Use `brew upgrade` instead of `brew update`
-
-commit 0149863dff42e0b7b6876cc3669aa3efcab6776e
- Author: git
- Date: 2020-02-20 16:36:30 +0900
-
- * 2020-02-20 [ci skip]
-
-commit eaee631d5eda03f77ec39ec6fc1826a06ab06205
- Author: Takashi Kokubun
- Date: 2020-02-19 16:16:19 +0900
-
- Avoid jumping to a wrong destination
-
- when the next insn is already compiled by former branches.
-
-commit ccc3b9119c39a6cb08a643ab3d15a9c07ec28b1a
- Author: git
- Date: 2020-02-18 15:30:37 +0900
-
- * 2020-02-18 [ci skip]
-
-commit 789c1df10a13a53d0504d4ba87c4e246692b1973
- Author: NARUSE, Yui
- Date: 2020-02-18 15:30:00 +0900
-
- increment teeny
-
-commit 0643eb2e59dbd80f9be001c2ec77c980e8aeff3f
- Author: Ryuta Kamizono
- Date: 2020-01-19 12:49:40 +0900
-
- Fix typo s/test_ruby2_keywords_hash!/test_ruby2_keywords_hash/
-
- In #2818, `Hash.ruby2_keywords!` has renamed to `Hash.ruby2_keywords_hash`.
-
-commit 9820f9ee0aaccd78e6e0489e8915d3925c6ee97c
- Author: Yusuke Endoh
- Date: 2020-01-06 18:22:43 +0900
-
- hash.c: Add a feature to manipulate ruby2_keywords flag
-
- It was found that a feature to check and add ruby2_keywords flag to an
- existing Hash is needed when arguments are serialized and deserialized.
- It is possible to do the same without explicit APIs, but it would be
- good to provide them as a core feature.
-
- https://github.com/rails/rails/pull/38105#discussion_r361863767
-
- Hash.ruby2_keywords_hash?(hash) checks if hash is flagged or not.
- Hash.ruby2_keywords_hash(hash) returns a duplicated hash that has a
- ruby2_keywords flag,
-
- [Bug #16486]
-
-commit 420a88d3da6deb5f7d4d8e088cb3737b9a23d29d
- Author: git
- Date: 2020-02-13 15:23:02 +0900
-
- * 2020-02-13 [ci skip]
-
-commit 78cbe7106b67d007ffdcc1276b352212eaaef4b2
- Author: Nobuyoshi Nakada
- Date: 2020-01-31 12:52:22 +0900
-
- Return the makefile content
-
- Block for `create_makefile` is expected to return the content of
- the makefile.
-
-commit b8e62ccaecf49372833d7eeeb3fdfded4bb2f042
- Author: NARUSE, Yui
- Date: 2020-01-31 08:00:56 +0900
-
- Move .IGNORE in extconf.rb
-
-commit a89821243da3c80e08bf46669e16ae46d687c80b
- Author: NARUSE, Yui
- Date: 2020-01-31 06:34:49 +0900
-
- Support nmake
-
-commit a930174d798b58ee10493bf192d277ffe08518a7
- Author: NARUSE, Yui
- Date: 2020-01-31 02:46:05 +0900
-
- Ignore expected errors on compiling C++ source [Bug #16331]
-
- BSD make can run parallel more aggressively than GNU make. It communicate
- with other make process through -J option in MAKEFLAGS environment variable
- to notify a build failure happend in an other pararell make process.
- https://www.freebsd.org/cgi/man.cgi?make
-
- It usually works well but ext/-test-/cxxanyargs/Makefile has two targets
- which are expected to fail (failure.o and failurem1.o).
-
- Additional note:
- To test and debug this issue, following command will speed up it.
- `make -f exts.mk -j8 clean all`
-
-commit 95ab9cd8f453099d7649dc0e0eec55ea891340f5
- Author: Nobuyoshi Nakada
- Date: 2020-02-11 15:52:25 +0900
-
- Restart timer thread even after preparation failed
-
- If the timer thread is left stopped, memory crash or segfault can
- happen. [Bug #16624]
-
-commit 9c07f803db1c20241fa73e91a8a959d6cbb82e8b
- Author: NARUSE, Yui
- Date: 2020-01-30 13:36:47 +0900
-
- check ruby_2_7 branch
-
-commit 49430aa4e5bf4020dbdb1cce3bc547cffad6ffae
- Author: Nobuyoshi Nakada
- Date: 2020-01-19 11:02:18 +0900
-
- Allow rexml to fail on macOS of Github Actions
-
- And revert "Stop test-bundled-gems on macOS for now",
- 28b290f7f4cb332dab3ddf3132e1916d413ea65c.
-
-commit 30a9dc4aa9cb1985cfe5bd318b8b35dacc103127
- Author: Nobuyoshi Nakada
- Date: 2020-01-19 09:48:33 +0900
-
- Stop test-bundled-gems on macOS for now
-
-commit 095a937dc2c0924dbfda7f7625ac2921a10de231
- Author: Yusuke Endoh
- Date: 2020-01-17 17:25:05 +0900
-
- .github/workflows/cygwin.yml: Removed
-
- There is no active maintainer for cygwin. The CI failure is too noisy.
-
- [Misc #16407]
-
-commit 5eced3c030f39d10e193c5e33a70365d8e011bb1
- Author: Nobuyoshi Nakada
- Date: 2020-01-13 10:02:04 +0900
-
- Checkout with git on cygwin for EOL code
-
- `shell: bash` runs bash on msys which prefers git on msys too,
- then checked out in CRLF mode. Cygwin sed doesn't consider the CR
- a part of EOL code, though.
-
-commit 6ec6acd76ed7c718a469841afe4f32571e757c9d
- Author: Hiroshi SHIBATA
- Date: 2020-01-12 09:59:10 +0900
-
- Allow failures with rss tests on test-bundled-gems
-
-commit 504b082f364e35516b2727c11713c28b684b5af0
- Author: Kazuhiro NISHIYAMA
- Date: 2020-01-11 16:24:16 +0900
-
- Add branch option to checkout on push
-
-commit 5dc82455aef4a42817208e11fbfbcdc1351f0734
- Author: Takashi Kokubun
- Date: 2020-01-06 18:52:19 +0900
-
- Slightly change the job wording [ci skip]
-
- mame-san said it's weird
-
-commit 7d4243254629004007a390f7f1afc4a570a1fd00
- Author: Takashi Kokubun
- Date: 2020-01-06 18:45:47 +0900
-
- Support running Actions on a fork
-
- Since 8c9450e7b875db846b19cc631af0d7fee66db5c6, we increased the chance
- to run GitHub Actions on a fork, as we usually use a topic branch
- instead of master when filing a pull request.
-
- This patch makes it possible to reuse the same GitHub Actions config on
- a fork repository.
-
-commit bd48a28b1cb9848d194a82139d018f87dd689f99
- Author: Takashi Kokubun
- Date: 2020-01-06 18:42:30 +0900
-
- Directly refer to GitHub events
-
- instead of unnecessarily defining env vars
-
-commit 48f82ad28961c0998b1d426493614875bb487d29
- Author: Takashi Kokubun
- Date: 2020-01-01 15:03:07 +0900
-
- Remove code to prevent double build on trunk
-
- trunk branch was deleted.
-
-commit fdd9d7cd41cde130889d84414395da22706972c8
- Author: Takashi Kokubun
- Date: 2020-01-01 14:26:39 +0900
-
- More consistent failure notifications
-
- The format is the same as Travis / AppVeyor now.
-
-commit 531bbec111d588ad497dd528eae3ac36e2af2632
- Author: Takashi Kokubun
- Date: 2020-01-01 08:27:40 +0900
-
- Make test run condition consistent with other jobs
-
- When `make all` fails, we should not run tests and output of such run is
- confusing.
-
-commit 4d04b32986bb73bfd5d5e56bcd17cfa82c90885c
- Author: Takashi Kokubun
- Date: 2020-01-01 03:24:00 +0900
-
- Run tests in the consistent order
-
- `make check` runs test -> test-all -> test-spec, and other CIs follow that too.
-
-commit 24621f23e5cc9403910b82e671c2b299ec65bd67
- Author: Takashi Kokubun
- Date: 2020-01-01 02:37:03 +0900
-
- Fix an outdated comment
-
- We're actually using it for PR :p
-
-commit e3dfd9f2b5729d4d8ac4541110af409ee218aadd
- Author: MSP-Greg
- Date: 2020-01-01 02:35:43 +0900
-
- Actions MinGW - fix test-all (#2803)
-
-commit a24d2f3b8cf98d067f6648a0609b6251d3e0a464
- Author: Takashi Kokubun
- Date: 2020-01-01 02:34:29 +0900
-
- Use actions/checkout for PR (#2804)
-
-commit 77dfa520d476143b8be6c4805354838012b4d335
- Author: Takashi Kokubun
- Date: 2019-12-31 18:49:08 +0900
-
- Official actions/checkout is useless
-
- It died again https://github.com/ruby/ruby/runs/368837347
-
-commit 124878c6aad7c708d7121199bea29962713d319a
- Author: Takashi Kokubun
- Date: 2019-12-31 16:46:17 +0900
-
- Make Slack notifications consistent
-
-commit 110b4e974ddb74472a0eb3ce181705b47eb28d50
- Author: Takashi Kokubun
- Date: 2019-12-31 16:42:20 +0900
-
- There's no such target
-
-commit 4d9f106eaefeee4b160d3c5580039c64ff9c01ae
- Author: Takashi Kokubun
- Date: 2019-12-31 16:30:34 +0900
-
- Make all Actions job names consistent
-
- like "{platform} / make ({make target}, ...)"
-
-commit ca48fa8e81ca19f4d0c24017662245c933be86eb
- Author: Takashi Kokubun
- Date: 2019-12-31 16:23:25 +0900
-
- Do not doubly build on trunk
-
-commit 44ef8af4fb0a793f020147e3f077cd061953c8fa
- Author: MSP-Greg
- Date: 2019-12-31 16:19:31 +0900
-
- MinGW on Actions (#2791)
-
- * MinGW - skip spec in spec/ruby/optional/capi/thread_spec.rb
-
- C-API Thread function rb_thread_call_without_gvl
- -- runs a C function with the global lock unlocked and unlocks IO with the generic RUBY_UBF_IO
-
- stops/freezes spec tests
-
- See https://bugs.ruby-lang.org/issues/16265
-
- * MinGW - skip test test/resolv/test_dns.rb
-
- Test times out in CI (both AppVeyor & Actions), cannot repo locally
-
- * MinGW - skip test test/ruby/test_thread_queue.rb
-
- * Add Actions mingw.yml
-
-commit 6646c2b2ab7efd389075ad5f187b458c4bc138cc
- Author: Takashi Kokubun
- Date: 2019-12-31 16:09:24 +0900
-
- Revert "Remove TEST_BUNDLED_GEMS_ALLOW_FAILURES"
-
- This reverts commit 75e8dd58f69c190c9698d0133942032903fb2f07.
-
- We seem to randomly hit another issue these days:
- https://github.com/ruby/ruby/runs/368756135
- https://github.com/ruby/ruby/runs/368756191
-
-commit 716e05b82338d75452e86c999ae3e5874a642ecd
- Author: Nobuyoshi Nakada
- Date: 2020-01-27 10:46:57 +0900
-
- Fixed a segfault `GC.verify_compaction_references`
-
- Which is by coercion of `Qundef`, when any keyword argument
- without `toward:` option is given. [Bug #16598]
-
-commit 52bb32d6b71365cb24273de3eed5a712206815f3
- Author: Alan Wu
- Date: 2019-12-31 08:13:55 +0900
-
- Fix Proc#<< spec
-
- [Bug #16406]
-
-commit db4d136889afbf59e69efcfd495fd91cd401f378
- Author: Nobuyoshi Nakada
- Date: 2020-01-16 11:25:43 +0900
-
- `Regexp` in `MatchData` can be `nil`
-
- `String#sub` with a string pattern defers creating a `Regexp`
- until `MatchData#regexp` creates a `Regexp` from the matched
- string. `Regexp#last_match(group_name)` accessed its content
- without creating the `Regexp` though. [Bug #16508]
-
-commit 8e8841f6bf58031a1fe5b0dbacb5a1fb442102df
- Author: Koichi Sasada
- Date: 2020-01-13 03:36:47 +0900
-
- reload AR table body for transient heap.
-
- ar_talbe (Hash representation for <=8 size) can use transient heap
- and the memory area can move. So we need to restore `pair' ptr after
- `func` call (which can run any programs) because of moving.
- [Bug #16503]
-
-commit 48f324e92f9b36edc267f9871e35039cbd1c2eb9
- Author: Yusuke Endoh
- Date: 2020-01-09 08:21:42 +0900
-
- lib/net/imap.rb: use `&blk` instead of Kernel#proc with no block
-
- [Bug #16488]
-
-commit 580edc25aa00930bdb71b244d70a2007905f5fec
- Author: Koichi Sasada
- Date: 2020-01-06 11:36:51 +0900
-
- script_compiled event on compile error.
-
- script_compiled event for TracePoint should not be invoked on
- compile error (SyntaxError) because it is not "compiled".
- [Bug #16459]
-
-commit 647ee6f091eafcce70ffb75ddf7e121e192ab217
- Author: aycabta
- Date: 2019-12-25 18:46:39 +0900
-
- [ruby/reline] Version 0.1.2
-
- https://github.com/ruby/reline/commit/b41024e317
-
-commit 1341a279a4becd91f35b23eca6d129990eccc8bb
- Author: aycabta
- Date: 2019-12-25 18:45:02 +0900
-
- Save last breaking point to complete
-
-commit a52e364e6541a6e234718ac63aa7eb5c3f2c832f
- Author: NARUSE, Yui
- Date: 2019-12-25 18:02:53 +0900
-
- fix version regexp
-
-commit ecbf7fe27ce444782f0a48fc41f8043a25078666
- Author: NARUSE, Yui
- Date: 2019-12-25 17:01:26 +0900
-
- fix typo
-
-commit a65e8644fb97491314387e4138cabf6378a8e8d5
- Author: NARUSE, Yui
- Date: 2019-12-25 15:48:56 +0900
-
- v2.7.0p0
-
-commit 75dca097b873222eaf3c70b7f43e3ffb98b7f2ed
- Author: Yusuke Endoh
- Date: 2019-12-25 14:13:15 +0900
-
- [bundler/bundler] Do `require "rubygems"` only when needed
-
- This require causes circular require.
-
- ```
- $ touch empty_file
-
- $ RUBYGEMS_GEMDEPS=empty_file ./local/bin/ruby -w -e ''
- /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92: warning: /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92: warning: loading in progress, circular require considered harmful - /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb
- from :1:in `'
- from :1:in `require'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb:1417:in `'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb:1203:in `use_gemdeps'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/user_interaction.rb:47:in `use_ui'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems.rb:1204:in `block in use_gemdeps'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/bundler.rb:11:in `'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/bundler.rb:11:in `require_relative'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/bundler/rubygems_integration.rb:3:in `'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
- from /home/mame/work/ruby/local/lib/ruby/2.7.0/rubygems/core_ext/kernel_require.rb:92:in `require'
- ```
-
- https://github.com/bundler/bundler/commit/c7c5bcea92
-
-commit 27453b04c85249372950b6b12fabbef8c0d1a80b
- Author: Kenta Murata
- Date: 2019-12-25 15:21:50 +0900
-
- Update the version of bigdecimal to 2.0.0 (#2784)
-
- Notes:
- Merged-By: mrkn
-
-commit 56e002981fab73a94c6038cb9de82aba6ff84eb4
- Author: Nobuyoshi Nakada
- Date: 2019-12-25 14:47:31 +0900
-
- Show the error line only when same as the current
-
-commit 9808e010907bb16068497d9f0f8593a7165fa42d
- Author: Koichi Sasada
- Date: 2019-12-25 14:37:53 +0900
-
- export a function for MJIT.
-
- rb_iseq_complete() can be used by MJIT.
-
-commit d9bf9c572f461c282fa6e65833e98bc7d453a66f
- Author: Koichi Sasada
- Date: 2019-12-25 14:10:35 +0900
-
- take care of USE_LAZY_LOAD=1.
-
- On USE_LAZY_LOAD=1, the iseq should be loaded. So rb_iseq_check()
- is needed. Furthermore, now lazy loading with builtin_function_table
- is not supported, so it should cancel lazy loading.
-
-commit 81e377023c490998a3fec245ca2fb2b3c710c2c6
- Author: Yusuke Endoh
- Date: 2019-12-25 13:35:22 +0900
-
- range.c: Range#min with a beginless one now raises an explicit exception
-
- [Bug #16450]
-
-commit cd6c013b075c9c27437f30efcee9d4dd9e0ee1c5
- Author: aycabta
- Date: 2019-12-25 12:55:31 +0900
-
- Add readline and readline-ext to default gems list in NEWS
-
-commit 227c3d642631262acfbf140c566a7841c32b372f
- Author: Koichi Sasada
- Date: 2019-12-25 12:06:02 +0900
-
- add ref to NEWS entry
-
-commit 3345eab934073bdd8394ee8a46fc18954999af76
- Author: Yusuke Endoh
- Date: 2019-12-25 11:37:27 +0900
-
- NEWS: add a ticket reference
-
-commit b9e35d27096290f9544dca685fb4cf5bd0e09397
- Author: Yusuke Endoh
- Date: 2019-12-25 11:31:44 +0900
-
- NEWS: add a ticket reference
-
-commit e0929c44ddc7490dc97cabf12c7505173316a623
- Author: Yusuke Endoh
- Date: 2019-12-25 11:27:13 +0900
-
- NEWS: add ticket references
-
-commit eb3f19b9b896094ae9754de1b48fed86fb35fe39
- Author: Nobuyoshi Nakada
- Date: 2019-12-25 11:17:24 +0900
-
- update-bundled_gems: drop branch name on github [ci skip]
-
-commit 00710d10761ad1aa752cf2c035e3bfbde40092b6
- Author: aycabta
- Date: 2019-12-25 10:47:53 +0900
-
- [ruby/readline] Version 0.0.2
-
- https://github.com/ruby/readline/commit/42b71f3fc0
-
-commit e51a34511c9e4394467cde24deee19cf8536a3e7
- Author: aycabta
- Date: 2019-12-25 10:47:34 +0900
-
- [ruby/readline] Use a box to make easier to see the message
-
- https://github.com/ruby/readline/commit/e49e942053
-
-commit 57c74841c7bc2bb2ffbb8ed89597e993116e26a8
- Author: aycabta
- Date: 2019-12-25 10:44:52 +0900
-
- [ruby/readline] Fix any wrong in messages
-
- https://github.com/ruby/readline/commit/a2cf437c8f
-
-commit de0f4f2fd7620e2486f5aef031dad18324437c2b
- Author: aycabta
- Date: 2019-12-25 10:30:24 +0900
-
- [ruby/readline] Version 0.0.1
-
- https://github.com/ruby/readline/commit/d2363cad33
-
-commit 5d20865708552a522d5eb39c4d9238f96693f8f2
- Author: aycabta
- Date: 2019-12-25 10:25:15 +0900
-
- [ruby/readline] Add post_install_message
-
- https://github.com/ruby/readline/commit/03126372b5
-
-commit 999a2819a75e40aec405e088d01b12eda341025d
- Author: aycabta
- Date: 2019-12-25 10:31:03 +0900
-
- [ruby/readline-ext] Version 0.1.0
-
- https://github.com/ruby/readline-ext/commit/f5abaf5be1
-
-commit 246242700867ed3fdce8288897d74bd261379018
- Author: aycabta
- Date: 2019-12-25 10:08:06 +0900
-
- [ruby/reline] Version 0.1.1
-
- https://github.com/ruby/reline/commit/923f97d068
-
-commit ed5b4bae6a4f991a0c5299581bd0b137a98d3723
- Author: aycabta
- Date: 2019-12-25 09:52:25 +0900
-
- The behavior of vi_end_of_transmission should be the same of vi_list_or_eof
-
-commit 03c504ac59a2bf78bab925379e93184d81296e96
- Author: Hiroshi SHIBATA
- Date: 2019-12-25 09:38:12 +0900
-
- Commented-out btest on cygwin environment of GitHub Actions
-
-commit 622e47a1dbeee52fb218b816943b69cb88e17ae6
- Author: aycabta
- Date: 2019-12-25 09:29:46 +0900
-
- ^D on non-empty line in vi mode behaves like Enter
-
-commit 8e6d51e09a93ae2c57d56105a5fd39fb92855394
- Author: Yuki Nishijima
- Date: 2019-12-25 08:41:26 +0900
-
- Sync did_you_mean
-
-commit 2b2be71cabf987effd2783747eedf573af1400cf
- Author: Yuki Nishijima
- Date: 2019-12-25 08:23:59 +0900
-
- Add did_you_mean's promotion to the NEWS
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2782
-
-commit 1857b4427817755bb0879ca67e1b2f3276f95d4c
- Author: Hiroshi SHIBATA
- Date: 2019-12-25 07:28:02 +0900
-
- Merge Bundler 2.1.2 from bundler/bundler.
-
- [Misc #16449][ruby-core:96458]
-
-commit da0a0bae8b50087d140309b27eb4d4b4776c27e4
- Author: Marcus Stollsteimer
- Date: 2019-12-25 06:13:49 +0900
-
- NEWS: add meaning of "CoW" ("copy-on-write")
-
-commit ceba5b70889666b82b80910a441cf4a92b5c7160
- Author: Marcus Stollsteimer
- Date: 2019-12-25 05:50:27 +0900
-
- [DOC] Fix typo in Time#inspect
-
-commit f3067deb88badf8d15e49d13f082284f58b2c62b
- Author: Alan Wu
- Date: 2019-12-25 04:54:20 +0900
-
- Revert "Add NEWS entry about Module#name performance (#2779)" (#2781)
-
- This reverts commit 3e9221d94a12b54c1285923b642364acdbc31c7e.
-
- Notes:
- Merged-By: XrXr
-
-commit 3e9221d94a12b54c1285923b642364acdbc31c7e
- Author: Alan Wu
- Date: 2019-12-25 04:02:50 +0900
-
- Add NEWS entry about Module#name performance (#2779)
-
- Notes:
- Merged-By: XrXr
-
-commit 5220145ea289d9eb955b373f31773fab2d4f0271
- Author: Koichi Sasada
- Date: 2019-12-25 01:32:37 +0900
-
- add debug_counter access functions.
-
- These functions are enabled only on USE_DEBUG_COUNTER=1.
-
-commit 9b617ffa8884f9f80a0b1bdb89169d8139ba5001
- Author: git
- Date: 2019-12-25 01:00:40 +0900
-
- * 2019-12-25 [ci skip]
-
-commit 3679023df822d8bf3f88b9b2e4b849318d2c409e
- Author: Marcus Stollsteimer
- Date: 2019-12-25 00:57:30 +0900
-
- [DOC] Fix typo and language
-
-commit 8c017824c8eeffe11070ce69c914725af314d9f6
- Author: Hiroshi SHIBATA
- Date: 2019-12-24 22:31:38 +0900
-
- Added entry for json-2.3.0
-
-commit 1cd2ebed616473ed56730292879e8bc9d6dfd060
- Author: Hiroshi SHIBATA
- Date: 2019-12-24 21:39:37 +0900
-
- Update the news entries for RubyGems and Bundler
-
-commit 05b0410f91360e15511903580f0401b123f3abce
- Author: Marcus Stollsteimer
- Date: 2019-12-24 21:17:00 +0900
-
- [ruby/irb] Fix typo
-
- https://github.com/ruby/irb/commit/4bb1340687
-
-commit 54083fd41bf876b42e1a97acdc7574c8edbb87ed
- Author: Marcus Stollsteimer
- Date: 2019-12-24 21:01:47 +0900
-
- [DOC] Fix grammar in Process module docs
-
-commit 66e518f7b3e0bf307f86a51e6db02c3d1ec8df84
- Author: Marcus Stollsteimer
- Date: 2019-12-24 21:01:24 +0900
-
- [DOC] Fix typo
-
-commit 4ba9347554ab1ac79fdaf1d5b3320776a2b10615
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 18:49:57 +0900
-
- `Object#=~` warning also obeys `Warning[:deprecated]`
-
-commit a3c5dbf29191aa8622d8be7d990c4ac2f9392427
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 14:56:17 +0900
-
- Scale sleeping times to wait for the OS operations
-
-commit 7758849cb5432ae974f616668f9c9bab415bb18a
- Author: aycabta
- Date: 2019-12-24 18:39:48 +0900
-
- Remove unused variable
-
-commit 42e2a322f100c7c798fcfbcbbfe0b4cdaf3f5855
- Author: aycabta
- Date: 2019-12-24 18:32:50 +0900
-
- The delete-char-or-list shows completed list when called at end of line
-
- It doesn't behave the same as the delete-char.
-
-commit b03aea62abfbdc7c8ee53c30a27127c3c394a6ba
- Author: Marcus Stollsteimer
- Date: 2019-12-24 18:02:22 +0900
-
- NEWS: fix method references for Range#{cover?,include?}
-
-commit 44a1f51695058159ff2f191c97a082bed9665137
- Author: Marcus Stollsteimer
- Date: 2019-12-24 17:49:22 +0900
-
- NEWS: improve sections for warning option / Warning
-
-commit 27b4f477d960c75f3ff5cd5e045b307cad314ec7
- Author: Marcus Stollsteimer
- Date: 2019-12-24 17:03:42 +0900
-
- [DOC] Improve docs for Enumerator.produce, Enumerator.new
-
-commit 81504e83e72bf125476528e5f119604d9697f682
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 15:47:59 +0900
-
- Synchronize with a Queue instead of sleeping
-
-commit 47ad57f2450251f47b3f8e1f744d782269bbcdeb
- Author: Koichi Sasada
- Date: 2019-12-24 15:38:46 +0900
-
- Revert "Scale sleeping times"
-
- This reverts commit e57d6194218efc73c30f3fed9dd321d2e357030b.
-
- Test fails:
- http://ci.rvm.jp/results/trunk-gc-asserts@ruby-sky1/2518563
- http://ci.rvm.jp/results/trunk-gc_compact@silicon-docker/2518533
-
-commit c47106699cf2bcf426285efcd795223c200a3120
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 14:57:55 +0900
-
- NEWS: added references to warning option [ci skip]
-
-commit e57d6194218efc73c30f3fed9dd321d2e357030b
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 14:56:17 +0900
-
- Scale sleeping times
-
-commit adf498b84f56e57b74b72a3ddcc512f6d2078cef
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 13:24:41 +0900
-
- Moved warning option section and added a reference [ci skip]
-
-commit 302e896833bc611ba39c8697712313fd2dbd70cc
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 13:12:28 +0900
-
- Added warning.rb to .document
-
-commit 3739ddc36f462b794ec05c0cfc36458a8d1e17a7
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 12:11:42 +0900
-
- Added `-W:experimental` to `--help` [Feature #16420]
-
-commit d0f1eb3e4ef7cde2d78b493b3ba1561eee79b18f
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 11:28:18 +0900
-
- Separated command line option in NEWS [ci skip]
-
-commit 5a62fb1277fb351a1a11b89b0f8510c8f1a0cdff
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 11:14:13 +0900
-
- Mentioned `-W:` command option in NEWS [ci skip]
-
-commit f2e1e6cba451375d8eb839bf2e7c9a39bccc044c
- Author: zverok
- Date: 2019-12-22 06:23:20 +0900
-
- Enhance explanations for beginless range and #clamp, and add missing feature
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2769
-
-commit e954be14d07e54b8dbf71c0fa227e5818eaa01e6
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 10:27:18 +0900
-
- Get rid of false positive misspellings
-
- [Bug #16437]
-
-commit 992aa2cda50140abbca165024682eae998756e2d
- Author: Nobuyoshi Nakada
- Date: 2019-12-24 10:24:45 +0900
-
- enc/x_emoji.h: fixed dead-links [ci skip]
-
- English version pages seem no longer provided.
-
-commit f09a4ff265093742c356c69bcf56db68bd6cf064
- Author: manga_osyo
- Date: 2019-12-24 09:53:36 +0900
-
- Added NEWS for Feature 15373
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2777
-
-commit 360f153fcaab637486aa2669d354d53e0eb1c3d2
- Author: Koichi Sasada
- Date: 2019-12-24 10:23:38 +0900
-
- remove "experimental" from numbered parameter.
-
- Numbered parameter is not an experimental feature,
- confirmed by Matz.
- https://twitter.com/yukihiro_matz/status/1209271452798607361
-
-commit 5e17834fc900a699241764ef0baacd53992d7f07
- Author: aycabta
- Date: 2019-12-24 09:55:05 +0900
-
- [ruby/reline] Version 0.1.0
-
- https://github.com/ruby/reline/commit/55d4dfec1e
-
-commit 8316b330fb04413bb480462941cb6b14c5352e2e
- Author: aycabta
- Date: 2019-12-24 09:54:38 +0900
-
- [ruby/irb] Version 1.2.1
-
- https://github.com/ruby/irb/commit/8da0c74640
-
-commit 0e528ae9cb5c1078e4d07287e403cb548e97f0a3
- Author: aycabta
- Date: 2019-12-24 09:53:43 +0900
-
- [ruby/irb] Remove warning message to bundle on Ruby 2.7.0
-
- https://github.com/ruby/irb/commit/d9a7844f50
-
-commit 0231661939310951c8ed339d8600a53a21015918
- Author: Marcus Stollsteimer
- Date: 2019-12-24 08:13:46 +0900
-
- [DOC] Fix wording in Math::E documentation
-
-commit 30c5e8c4b9353dfb716033901cec7529eace3922
- Author: aycabta
- Date: 2019-12-24 08:03:00 +0900
-
- [ruby/rdoc] Version 6.2.1
-
- https://github.com/ruby/rdoc/commit/c65e14d112
-
-commit 2bf0743edcf6fd70cd73952e1e023821c4549a9e
- Author: aycabta
- Date: 2019-12-24 07:58:49 +0900
-
- Update parsers of RDoc that are generated by Racc
-
-commit adc9b3ca7f4e75e368731fe8a7092ce078bcec04
- Author: aycabta
- Date: 2019-12-24 07:41:37 +0900
-
- [ruby/rdoc] Support newline in the middle of constant definition
-
- https://github.com/ruby/rdoc/commit/74d3984324
-
-commit e50e55269358520dc55595a9c3e074d351d96b66
- Author: aycabta
- Date: 2019-12-24 07:00:35 +0900
-
- [ruby/rdoc] Treat Proc#call syntax sugar for constant correctly
-
- https://github.com/ruby/rdoc/commit/957d041ae0
-
-commit 819b604037c317d2b53a1aaca67aef25da2d5ec9
- Author: Marc-Andre Lafortune
- Date: 2019-12-23 16:34:16 +0900
-
- Reword keyword arguments warning messages to convey these are deprecation warnings
-
-commit df6f5c44af1f261fa940ec3954468be8b820450e
- Author: Marcus Stollsteimer
- Date: 2019-12-24 06:41:58 +0900
-
- [DOC] Fix invalid code to make it syntax highlighted
-
-commit a7b5018495c4a6b82d779958b086647226ce61e7
- Author: Marcus Stollsteimer
- Date: 2019-12-24 06:07:02 +0900
-
- [DOC] Use capitalized "Ruby"
-
-commit ba9ccef81811e9387c0189d596189236b25d0dba
- Author: Marcus Stollsteimer
- Date: 2019-12-24 06:04:59 +0900
-
- [DOC] Various fixes in bug triaging guide
-
-commit aa01441fd29be8be28644db7abac9f7940fcc814
- Author: git
- Date: 2019-12-24 04:17:11 +0900
-
- * 2019-12-24 [ci skip]
-
-commit f201700051cc107b55c425bf331ce6d7ad3ef22b
- Author: Koichi Sasada
- Date: 2019-12-24 04:16:40 +0900
-
- move a NEWS entry about inline method cache
-
-commit 16fddfe352828d26aaa6cdbce696e62de04511ce
- Author: Marcus Stollsteimer
- Date: 2019-12-23 23:02:59 +0900
-
- [DOC] Improve readability of requirements for <=>
-
-commit 9a42e0c7ed4dcc57043a8a35a50686625adba686
- Author: Marcus Stollsteimer
- Date: 2019-12-23 22:46:58 +0900
-
- NEWS: add reference for [Feature #14405]
-
-commit de1a462454f4196490263c9be8be16a44513f5a0
- Author: Marcus Stollsteimer
- Date: 2019-12-23 22:45:24 +0900
-
- NEWS: revise grammar, language, markup, etc.
-
-commit bbde77cd2694e87646842777e873d849bbf5703e
- Author: Marcus Stollsteimer
- Date: 2019-12-23 17:46:08 +0900
-
- NEWS: fix some typos, grammar, and language
-
-commit 100fc2750b8f2c4dbe0aaa6c622bbf5f6d61e3c0
- Author: Koichi Sasada
- Date: 2019-12-23 17:04:31 +0900
-
- fix wmap_finalize.
-
- wmap_finalize expects id2ref() returns a corresponding object
- even if the object is dead. Make id2ref_obj_tbl() for this
- purpose.
-
-commit 9eeaae432b9a894e28e3906435f3d454d8fd025c
- Author: Koichi Sasada
- Date: 2019-12-23 16:30:45 +0900
-
- add more debug counters to count numeric objects.
-
-commit 7779ade48c2786992e41c0ab87761ab467f4be49
- Author: Marc-Andre Lafortune
- Date: 2019-12-23 15:59:17 +0900
-
- NEWS: Fix issue reference [#15807] [DOC]
-
-commit dadf1255b6e13578f888c239f0dc6fb201fd40bb
- Author: Marc-Andre Lafortune
- Date: 2019-12-23 15:55:39 +0900
-
- README: Add Range#minmax to the list of potential incompatibilities [#15929] [DOC]
-
-commit 3e1adf573110ddce8f900d9473dde7fa7de9c0e2
- Author: Marc-Andre Lafortune
- Date: 2019-12-23 15:48:38 +0900
-
- README: Improve wording [DOC]
-
-commit 7df2503b7770147a8589a594bf30726f733b1d86
- Author: Marc-Andre Lafortune
- Date: 2019-12-23 15:37:45 +0900
-
- NEWS: Hint at potential incompatibility with Range#minmax [#15807]
-
-commit a96f8cecc2488126d7298ea304da8bad3dde1792
- Author: Koichi Sasada
- Date: 2019-12-23 15:02:14 +0900
-
- ObjectSpace._id2ref should check liveness.
-
- objspace->id_to_obj_tbl can contain dead objects because of lazy
- sweep, so that it should check liveness.
-
-commit 672a61b97fe0cdb256611c707e7cc69856208467
- Author: Yuki Nishijima
- Date: 2019-12-23 14:47:03 +0900
-
- Port https://github.com/ruby/did_you_mean/commit/dd1dd86e6c3188c36224d5dd4389676e6653a727
-
-commit 92d0958257965adf426e6f6c654c5935a690bf5b
- Author: Kazuhiro NISHIYAMA
- Date: 2019-12-23 13:23:08 +0900
-
- FrozenError.new accepts :receiver instead of 2nd argument [ci skip]
-
- [ruby-core:96227] [Feature #16419]
-
-commit 3142a6beb28db36dc9150f1ad6752cd1e19a8712
- Author: Kazuhiro NISHIYAMA
- Date: 2019-12-23 12:07:15 +0900
-
- Revert "Changed behavior on windows platforms too [ci skip]"
-
- This reverts commit 1bf8d5e9797f6304b2e27cb7f42d467f84de0ff4.
-
- Because 204dc3f39f12b4e2640555306bd1dd4530344277 reverts 61aff0cd189e67fa6f2565639ad0128fa33b88fc
-
-commit 204dc3f39f12b4e2640555306bd1dd4530344277
- Author: NAKAMURA Usaku
- Date: 2019-12-23 11:54:25 +0900
-
- Revert "Should return "." for File.extname("file.") also on Windows"
-
- We want to introduce consistency and better compatibility with unixen,
- but the Windows APIs do not have consistency fundamentally and
- we can not found any logical way...
-
- This reverts commit 61aff0cd189e67fa6f2565639ad0128fa33b88fc.
-
-commit 048f797bf019cdf303d70494fba63d4a4e606462
- Author: Marc-Andre Lafortune
- Date: 2019-12-23 10:54:50 +0900
-
- [ruby/prime] Bump version
-
-commit 446c243da35831de701ff6dd6c3c6da8252b6a10
- Author: Marc-Andre Lafortune
- Date: 2019-12-23 09:44:43 +0900
-
- [ruby/ostruct] Bump version
-
-commit 9be3295d53b6fd9f8a3ad8157aa0655b1976d8ac
- Author: Marc-Andre Lafortune
- Date: 2019-12-23 09:40:32 +0900
-
- [ruby/ostruct] Create OpenStruct::VERSION
-
-commit 49d94248ebfb7a51e342f8102d21ad132a40f91a
- Author: Marc-Andre Lafortune
- Date: 2019-12-23 09:34:42 +0900
-
- [ruby/ostruct] Move gemspec
-
-commit 48d1acdf25b13bd9e28bf6baa3f74ec082a27a00
- Author: Marc-Andre Lafortune
- Date: 2019-12-23 08:33:19 +0900
-
- [ruby/matrix] Bump version
-
-commit 1ed87dd3c4fb085955bb3848579a3ed7aba38507
- Author: Nobuyoshi Nakada
- Date: 2019-12-22 13:56:20 +0900
-
- Add NEWS about Warning.[] [Feature #16345] [ci skip]
-
-commit 5de284ec78220e75643f89b454ce999da0c1c195
- Author: Nobuyoshi Nakada
- Date: 2019-12-23 10:37:30 +0900
-
- Fixed a typo in an exception class name
-
-commit 5f18635a800eee29fd051ea758a2ec561f090ebe
- Author: Nobuyoshi Nakada
- Date: 2019-12-23 10:10:23 +0900
-
- make-snapshot: fixed mode
-
- "X" must be used in conjunction with "+".
-
-commit 80d5d220b948517306e23b18260768ab8fe008bc
- Author: Nobuyoshi Nakada
- Date: 2019-12-23 08:42:53 +0900
-
- Fix typo in commit logs by log-fix notes
-
-commit 4de2297d74fbc0a0e69ac8bcc2aad5b192fd11b6
- Author: Takashi Kokubun
- Date: 2019-12-23 09:07:07 +0900
-
- Re-apply f85e8d2a8b keeping characters < 80
-
-commit f156f70b3192ddab41e432e743936a09a5aaae09
- Author: Yusuke Endoh
- Date: 2019-12-23 09:02:49 +0900
-
- Revert "Fixed misspellings"
-
- This reverts commit f85e8d2a8b2a37740334db4fd92ef820f05ddbc5.
-
- It violated the limit of width (> 80) and caused the test failure
-
-commit f85e8d2a8b2a37740334db4fd92ef820f05ddbc5
- Author: Nobuyoshi Nakada
- Date: 2019-12-23 08:31:46 +0900
-
- Fixed misspellings
-
- Fixed misspellings reported at [Bug #16437]
-
-commit a4b99f97642d31fc8ddd537155ff6cf61be6a43c
- Author: zverok
- Date: 2019-12-23 05:56:44 +0900
-
- Fix typos of previous docs PR
-
- In #2612 I made two typos (extra ,, and copy-pasted
- same line of code instead of showing two different
- ones), fixing them.
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2771
-
-commit c1bd1bf27236b33965dd92c1b2297edc91327cfb
- Author: zverok
- Date: 2019-12-14 01:59:23 +0900
-
- Document Module#const_source_location
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2750
-
-commit ade6543f4cf7dfb1ab4585a1bfca20f3d64d5add
- Author: Alan Wu
- Date: 2019-12-23 08:21:13 +0900
-
- Adjust sentence in doc [ci skip]
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2773
-
- Merged-By: XrXr
-
-commit bb05cdcd78b3e3d54f0ad9afc01de383ed33dc1c
- Author: Marcus Stollsteimer
- Date: 2019-12-23 06:36:14 +0900
-
- [DOC] Improve documentation for Enumerable#tally
-
-commit 7c37f2cb1ad248a1db327f3522a8e3ffa5c5412f
- Author: Marcus Stollsteimer
- Date: 2019-12-23 03:46:24 +0900
-
- Some fixes in Enumerator::Lazy docs
-
- * fix list in #flat_map
- * fix wrong indentation in #filter_map and #with_index
- * other small fixes
-
-commit 679bc4f9cb6a5471df903436c6240ca2157986dd
- Author: Nobuyoshi Nakada
- Date: 2019-09-08 21:04:46 +0900
-
- [ruby/reline] Use IO#raw to read one byte
-
- https://github.com/ruby/reline/commit/be17740e82
-
-commit 3a18e43caac4ce31702c9b79de3b6e8af05ef173
- Author: git
- Date: 2019-12-23 00:17:25 +0900
-
- * 2019-12-23 [ci skip]
-
-commit 1bf8d5e9797f6304b2e27cb7f42d467f84de0ff4
- Author: Kazuhiro NISHIYAMA
- Date: 2019-12-23 00:16:51 +0900
-
- Changed behavior on windows platforms too [ci skip]
-
- at 61aff0cd189e67fa6f2565639ad0128fa33b88fc [Bug #15267]
-
-commit d339de9d1a11923cd6d435d995ee479d08791720
- Author: zverok
- Date: 2019-12-22 06:05:45 +0900
-
- Enhance docs for Module#deprecate_constant
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2768
-
-commit 5a0102cb615f27f2daef8af6d9ae996926b2d167
- Author: zverok
- Date: 2019-12-22 05:58:14 +0900
-
- Enhance Range docs
-
- * Change === docs to mention it uses cover?
- * Add different example to === docs to showcase
- behavior better
- * Change include? docs to mention cover?
- and clarify the difference
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2768
-
-commit 4988843188c7a1666b11e1390acd7b991941c3a8
- Author: zverok
- Date: 2019-12-22 05:37:35 +0900
-
- Actualize Time#inspect docs
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2768
-
-commit 5fa9c2eeb04a2e44a2a028d933bc95f219a6a282
- Author: zverok
- Date: 2019-12-22 05:31:30 +0900
-
- Actualize Method#inspect docs
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2768
-
-commit d78fcfb7ab351fd4861e42985db34e9bda3509a7
- Author: zverok
- Date: 2019-12-22 05:21:20 +0900
-
- Fix FrozenError#receiver and #initialize docs
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2768
-
-commit e568bb5649a93c60aaa51c1e5308054079815bcc
- Author: zverok
- Date: 2019-12-22 05:17:35 +0900
-
- Update private visibility explanation
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2768
-
-commit 03b983d54c17615e36d56d2937a685fc8c3f2cdb
- Author: zverok
- Date: 2019-12-21 05:51:22 +0900
-
- Document numbered block parameters
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2767
-
-commit 890c834ec6bb03fab4fee6f5b14f99660a64d207
- Author: BurdetteLamar
- Date: 2019-12-17 07:58:53 +0900
-
- Enhancements for ENV doc
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2757
-
-commit 54be15f3256fd2dbb0d5d7962e9dfac2b87c797b
- Author: QuestionDriven
- Date: 2019-12-17 16:11:02 +0900
-
- [Doc] Fix sample in Encoding#names
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2760
-
-commit 9654241d5d5717b7cd6ddedb6c192e971f9d473a
- Author: QuestionDriven
- Date: 2019-12-17 16:05:17 +0900
-
- [Doc] Fix wrong example in Encoding.aliases
-
- Notes:
- Merged: https://github.com/ruby/ruby/pull/2760
-
-commit cc87037f1c5a143af8089555e704505fcf0b2879
- Author: Nobuyoshi Nakada
- Date: 2019-12-22 22:49:17 +0900
-
- Fixed misspellings
-
- Fixed misspellings reported at [Bug #16437], missed and a new
- typo.
-
-commit 7c33ee5ddfafe737add2a7f4c4975108f9196dbd
- Author: Benoit Daloze
- Date: 2019-12-22 19:39:22 +0900
-
- Move version guard outside to make it clear the method was added in Ruby 2.5
-
-commit d76c8cfecdaa2960153b5b24ccd0d61f9af60abd
- Author: Nobuyoshi Nakada
- Date: 2019-12-22 15:18:22 +0900
-
- RDoc of Warning.[] and .[]= [Feature #16345] [ci skip]
-
-commit d2ac6d4d9f57b34eeb94bd6302b54a632051ce64
- Author: Nobuyoshi Nakada
- Date: 2019-12-22 14:45:42 +0900
-
- Manage deprecation warning by the flag
-
-commit 58527a79263c6572bd4f97d0a0e0359c0ace6f3c
- Author: Nobuyoshi Nakada
- Date: 2019-12-22 13:52:59 +0900
-
- [ruby/io-console] bump up to 0.5.3
-
-commit ced4c5dace63dcb5aabe4d9c480e02e7581b8816
- Author: åœéƒ¨æ˜Œå¹³
- Date: 2019-12-22 11:40:07 +0900
-
- add NEWS about cache improvement [ci skip]
-
-commit efd4a11ada731ce18f5eb1500c76f77b4d0f313f
- Author: Nobuyoshi Nakada