Skip to content

Commit

Permalink
Merge branch 'Ractor-Local-GC-version-1' into Ractor-Local-GC-version-2
Browse files Browse the repository at this point in the history
  • Loading branch information
rm155 committed Nov 5, 2023
2 parents 3e0c27a + e29aa85 commit b3c2bca
Show file tree
Hide file tree
Showing 809 changed files with 28,725 additions and 18,587 deletions.
1 change: 0 additions & 1 deletion .appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,6 @@ for:
- cd C:\Tools\vcpkg
- git pull -q
- .\bootstrap-vcpkg.bat
- ps: Start-FileDownload 'https://github.com/microsoft/vcpkg-tool/releases/download/2023-08-09/vcpkg.exe' -FileName 'C:\Tools\vcpkg\vcpkg.exe'
- cd %APPVEYOR_BUILD_FOLDER%
- vcpkg --triplet %Platform%-windows install --x-use-aria2 libffi libyaml readline zlib
- CALL SET vcvars=%%^VS%VS%COMNTOOLS^%%..\..\VC\vcvarsall.bat
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/baseruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -55,7 +55,7 @@ jobs:
- ruby-3.2

steps:
- uses: ruby/setup-ruby@a05e47355e80e57b9a67566a813648fa67d92011 # v1.157.0
- uses: ruby/setup-ruby@54a18e26dbbb1eabc604f317ade9a5788dddef81 # v1.159.0
with:
ruby-version: ${{ matrix.ruby }}
bundler: none
Expand Down
9 changes: 7 additions & 2 deletions .github/workflows/bundled_gems.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,13 @@ jobs:

steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
with:
token: ${{ (github.repository == 'ruby/ruby' && !startsWith(github.event_name, 'pull')) && secrets.MATZBOT_GITHUB_TOKEN || secrets.GITHUB_TOKEN }}

- uses: ./.github/actions/setup/directories
with:
# Skip overwriting MATZBOT_GITHUB_TOKEN
checkout: '' # false (ref: https://github.com/actions/runner/issues/2238)

- name: Set ENV
run: |
Expand All @@ -53,7 +58,7 @@ jobs:
- name: Update bundled gems list
id: bundled_gems
run: |
ruby -i~ tool/update-bundled_gems.rb gems/bundled_gems > $GITHUB_OUTPUT
ruby -i~ tool/update-bundled_gems.rb gems/bundled_gems >> $GITHUB_OUTPUT
- name: Maintain updated gems list in NEWS
run: |
Expand Down Expand Up @@ -101,7 +106,7 @@ jobs:
run: |
git pull --ff-only origin ${GITHUB_REF#refs/heads/}
message="Update bundled gems list"
if [ -z "${gem}" ]; then
if [ -z "${gems}" ]; then
git commit --message="${message} at ${GITHUB_SHA:0:30} [ci skip]"
else
git commit --message="${message} as of ${TODAY}"
Expand Down
6 changes: 3 additions & 3 deletions .github/workflows/check_misc.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,12 +28,12 @@ jobs:

- name: Check if C-sources are US-ASCII
run: |
grep -r -n '[^ -~]' -- *.[chy] include internal win32/*.[ch] && exit 1 || :
grep -r -n --include='*.[chyS]' --include='*.asm' $'[^\t-~]' -- . && exit 1 || :
- name: Check for trailing spaces
run: |
git grep -I -n '[ ]$' -- '*.rb' '*.[chy]' '*.rs' && exit 1 || :
git grep -n '^[ ][ ]*$' -- '*.md' && exit 1 || :
git grep -I -n $'[\t ]$' -- '*.rb' '*.[chy]' '*.rs' '*.yml' && exit 1 || :
git grep -n $'^[\t ][\t ]*$' -- '*.md' && exit 1 || :
- name: Check for bash specific substitution in configure.ac
run: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/mingw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ jobs:
steps:
- name: Set up Ruby & MSYS2
uses: ruby/setup-ruby@a05e47355e80e57b9a67566a813648fa67d92011 # v1.157.0
uses: ruby/setup-ruby@54a18e26dbbb1eabc604f317ade9a5788dddef81 # v1.159.0
with:
ruby-version: ${{ matrix.base_ruby }}

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rjit-bindgen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,7 @@ jobs:
steps:
- name: Set up Ruby
uses: ruby/setup-ruby@a05e47355e80e57b9a67566a813648fa67d92011 # v1.157.0
uses: ruby/setup-ruby@54a18e26dbbb1eabc604f317ade9a5788dddef81 # v1.159.0
with:
ruby-version: '3.1'

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/scorecards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ jobs:
persist-credentials: false

- name: 'Run analysis'
uses: ossf/scorecard-action@483ef80eb98fb506c348f7d62e28055e49fe2398 # v2.3.0
uses: ossf/scorecard-action@0864cf19026789058feabb7e87baa5f140aac736 # v2.3.1
with:
results_file: results.sarif
results_format: sarif
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/spec_guards.yml
Original file line number Diff line number Diff line change
Expand Up @@ -47,7 +47,7 @@ jobs:
steps:
- uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1

- uses: ruby/setup-ruby@a05e47355e80e57b9a67566a813648fa67d92011 # v1.157.0
- uses: ruby/setup-ruby@54a18e26dbbb1eabc604f317ade9a5788dddef81 # v1.159.0
with:
ruby-version: ${{ matrix.ruby }}
bundler: none
Expand Down
2 changes: 2 additions & 0 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,8 @@ jobs:
include:
- test_task: check
arch: i686
- test_task: check
configure: '--disable-yjit'
- test_task: check
configure: '--enable-shared --enable-load-relative'
- test_task: test-all TESTS=--repeat-count=2
Expand Down
1 change: 1 addition & 0 deletions .github/workflows/wasm.yml
Original file line number Diff line number Diff line change
Expand Up @@ -107,6 +107,7 @@ jobs:
../src/configure \
--host wasm32-unknown-wasi \
--with-static-linked-ext \
--with-ext=bigdecimal,ripper,monitor,stringio,pathname \
LDFLAGS=" \
-Xlinker --stack-first \
-Xlinker -z -Xlinker stack-size=16777216 \
Expand Down
188 changes: 47 additions & 141 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,63 +6,44 @@
# conditions mentioned in the file COPYING are met. Consult the file for
# details.

# We only manage non-amd64 free pipelines.
# https://docs.travis-ci.com/user/billing-overview/
# When you see Travis CI issues, or you are interested in understanding how to
# manage, please check the link below.
# https://github.com/ruby/ruby/wiki/CI-Servers#travis-ci

# 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 OR commit_message !~ /\[DOC\]/

language: c

os: linux

if: commit_message !~ /\[DOC\]/

dist: focal
dist: jammy

git:
quiet: true

cache:
ccache: true
directories:
- $HOME/config_2nd
- $HOME/.downloaded-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
- CCACHE_COMPILERCHECK=none
- CCACHE_NOCOMPRESS=1
- CCACHE_MAXSIZE=512Mi
- NPROC="`nproc`"
# JOBS and SETARCH are overridden when necessary; see below.
- JOBS=-j$((1+${NPROC}))
- NPROC="$(nproc)"
- JOBS="-j${NPROC}"
# SETARCH are overridden when necessary. See below.
- SETARCH=
- RUBY_PREFIX=/tmp/ruby-prefix
- GEMS_FOR_TEST='timezone tzinfo'
# 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.
# -g0 disables backtraces when SEGV. Do not set that.
- debugflags=-ggdb3
- RUBY_TESTOPTS="$JOBS -q --tty=no"

.org.ruby-lang.ci.matrix-definitions:

- &gcc-10
compiler: gcc-10
- &gcc-11
compiler: gcc-11
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
ccache
gcc-10
g++-10
gcc-11
g++-11
libffi-dev
libncurses-dev
libncursesw5-dev
Expand All @@ -71,46 +52,42 @@ env:
libyaml-dev
openssl
zlib1g-dev
# --------

- gcc-11 --version
- &arm64-linux
name: arm64-linux
arch: arm64
<<: *gcc-10

<<: *gcc-11
- &ppc64le-linux
name: ppc64le-linux
arch: ppc64le
compiler: gcc

<<: *gcc-11
- &s390x-linux
name: s390x-linux
arch: s390x
dist: jammy
compiler: gcc
<<: *gcc-11
env:
# Avoid possible test failures with the zlib applying the following patch
# on s390x CPU architecture.
# https://github.com/madler/zlib/pull/410
- DFLTCC=0

- &arm32-linux
name: arm32-linux
arch: arm64
# https://packages.ubuntu.com/focal/crossbuild-essential-armhf
# https://packages.ubuntu.com/jammy/crossbuild-essential-armhf
compiler: arm-linux-gnueabihf-gcc
env:
- 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
# Still keep the -O1 for only arm32, while we want to test with the
# default optflags -O3.
# Because bootstraptest/test_ractor.rb fails with segfualt with the
# default -O3.
# https://bugs.ruby-lang.org/issues/19981
- optflags=-O1
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++-10-dev:armhf
Expand All @@ -125,117 +102,46 @@ env:
matrix:
include:
# Build every commit (Allowed Failures):
# FIXME: lib/rubygems/util.rb:104 glob_files_in_dir -
# <internal:dir>:411:in glob: File name too long - (Errno::ENAMETOOLONG)
# https://github.com/rubygems/rubygems/issues/7132
- <<: *arm32-linux
# Comment out as the 2nd arm64 pipeline is unstable.
# - <<: *arm64-linux
- <<: *ppc64le-linux
- <<: *s390x-linux
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
# Allow failures for the unstable jobs.
# - 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: ppc64le-linux
# - name: s390x-linux
fast_finish: true

before_script:
- . 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
- |-
[ -d ~/.downloaded-cache ] ||
mkdir ~/.downloaded-cache
- ln -s ~/.downloaded-cache
- "> config.status"
- "> .rbconfig.time"
- sed -f tool/prereq.status template/Makefile.in common.mk > Makefile
- make -s $JOBS up
- make -s $JOBS srcs
- rm -f config.status Makefile rbconfig.rb .rbconfig.time
- |-
if [ -d ~/config_2nd ]; then
cp -pr ~/config_2nd build
else
mkdir build
fi
- mkdir config_1st config_2nd gems/src
- chmod -R a-w .
- chmod -R u+w build config_1st config_2nd gems/src .bundle
- ./autogen.sh
- mkdir build
- cd build
- |-
case "$CC" in
gcc*) CC="ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-diagnostics-color";;
clang*) CC="ccache $CC${GCC_FLAGS:+ }$GCC_FLAGS -fno-color-diagnostics";;
esac
- |-
[ ! -f config.cache ] ||
[ "$CC" = "`sed -n s/^ac_cv_prog_CC=//p config.cache`" ] ||
(set -x; exec rm config.cache)
- $SETARCH ../configure -C --disable-install-doc --prefix=$RUBY_PREFIX $CONFIG_FLAG
- cp -pr config.cache config.status .ext/include ../config_1st
- $SETARCH make reconfig
- cp -pr config.cache config.status .ext/include ../config_2nd
- (cd .. && exec diff -ru config_1st config_2nd)
- chmod u+w ..
- rm -rf ~/config_2nd
- mv ../config_2nd ~
- chmod u-w ..
- $SETARCH ../configure -C --disable-install-doc --prefix=$(pwd)/install
- $SETARCH make -s $JOBS
- make -s install
- |-
[ -z "${GEMS_FOR_TEST}" ] ||
$RUBY_PREFIX/bin/gem install --no-document $GEMS_FOR_TEST
- echo "raise 'do not load ~/.irbrc in test'" > ~/.irbrc
- make -s $JOBS install
# Useful info to report issues to the Ruby.
- $SETARCH $(pwd)/install/bin/ruby -v
# Useful info To report issues to the RubyGems.
- $SETARCH $(pwd)/install/bin/gem env

script:
- $SETARCH make -s test -o showflags TESTOPTS="${TESTOPTS=$JOBS -q --tty=no}"
- ../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 # not using `-j` because sometimes `mspec -j` silently dies
- $SETARCH make -s -o showflags leaked-globals

# 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
- $SETARCH make -s test
- ../tool/travis_wait.sh $SETARCH make -s test-all RUBYOPT="-w"
- $SETARCH make -s test-spec

# We want to be notified when something happens.
notifications:
irc:
channels:
- "chat.freenode.net#ruby-core"
on_success: change # [always|never|change] # default: always
on_failure: always # [always|never|change] # default: always
template:
- "%{message} by @%{author}: See %{build_url}"

webhooks:
urls:
- secure: mRsoS/UbqDkKkW5p3AEqM27d4SZnV6Gsylo3bm8T/deltQzTsGzZwrm7OIBXZv0UFZdE68XmPlyHfZFLSP2V9QZ7apXMf9/vw0GtcSe1gchtnjpAPF6lYBn7nMCbVPPx9cS0dwL927fjdRM1vj7IKZ2bk4F0lAJ25R25S6teqdk= # ruby-lang slack: ruby/simpler-alerts-bot (travis)
# ruby-lang slack: ruby/simpler-alerts-bot (travis)
- secure: mRsoS/UbqDkKkW5p3AEqM27d4SZnV6Gsylo3bm8T/deltQzTsGzZwrm7OIBXZv0UFZdE68XmPlyHfZFLSP2V9QZ7apXMf9/vw0GtcSe1gchtnjpAPF6lYBn7nMCbVPPx9cS0dwL927fjdRM1vj7IKZ2bk4F0lAJ25R25S6teqdk=
on_success: never
on_failure: always

email:
- jaruga@ruby-lang.org
Loading

0 comments on commit b3c2bca

Please sign in to comment.