Skip to content

Manual GC Compaction #111

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 310 commits into from
May 28, 2019
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
310 commits
Select commit Hold shift + click to select a range
e804fcb
Fix rdoc in 52cfb17086
nobu Apr 26, 2019
8990779
Prefer block_given? to iterator?
nobu Jan 18, 2019
c8b675a
suppress redefinition warnings
nurse Apr 21, 2019
a2219e6
* 2019-04-27
matzbot Apr 27, 2019
782e487
suppress warning in test/irb
nurse Apr 21, 2019
569c1ef
make sync-default-gems GEM=irb
k0kubun Apr 27, 2019
baad9e8
NEWS: Note about $TERM requirement [ci skip]
k0kubun Apr 27, 2019
be8cf0d
Update NEWS for pattern matching [ci skip]
k-tsj Apr 27, 2019
48313f1
Add `or nil` to call-seq of `Enumerator::ArithmeticSequence#begin`
znz Apr 27, 2019
5f6ba66
Isolate TestGCCompact from JIT testing
k0kubun Apr 27, 2019
ecf660e
ia64: Don't clear register_stack_start
jrtc27 Apr 26, 2019
7fe0485
Add class ref to `UnboundMethod#owner` doc
okuramasafumi Apr 27, 2019
bc01f7b
Fix description of NODE_IN
k-tsj Apr 27, 2019
afb361d
Isolate test_gc_compact on msys2 AppVeyor
k0kubun Apr 27, 2019
3f95620
Get rid of indirect sharing
nobu Apr 27, 2019
9348643
make sync-default-gems GEM=irb
k0kubun Apr 27, 2019
3067370
Retry downloads more for unicode outage
k0kubun Apr 27, 2019
af1e487
Updated marked commits for ChangeLog
nobu Apr 27, 2019
6f8ac2c
Include the beginning commit in ChangeLog
nobu Apr 27, 2019
7875c42
Override log format to parse for ChangeLog
nobu Apr 27, 2019
2a46251
Separate format_changelog
nobu Apr 27, 2019
db614db
Support git-log format ChangeLog
nobu Apr 27, 2019
429fdf3
Added ChangeLog marker for the beginning of 2.7.0
nobu Apr 27, 2019
87d2a2d
Improve documentation of Array.try_convert
eregon Apr 27, 2019
bb60369
Reduce matz's work, let git do it instead
nobu Apr 27, 2019
80be9e9
* 2019-04-28
matzbot Apr 27, 2019
00c33d9
Update to ruby/mspec@18c5a7d
eregon Apr 27, 2019
a1b4816
Update to ruby/spec@15c9619
eregon Apr 27, 2019
cae0b73
make sync-default-gems GEM=irb
k0kubun Apr 27, 2019
ed4f331
* remove trailing spaces.
matzbot Apr 27, 2019
14f004d
Isolate test_gc_compact on AppVeyor mswin as well
k0kubun Apr 27, 2019
5b93321
Update to ruby/spec@14e6148
eregon Apr 27, 2019
0d227d1
Try to more accurately reflect MRI's logic in specs for finding the h…
eregon Apr 27, 2019
b7c3015
Skip clock_getres spec on BSD
eregon Apr 27, 2019
2c28365
Some Solaris versions seem to only provide millisecond accuracy for C…
eregon Apr 27, 2019
7790b61
Shorten git revision name without "r" prefix in snapshot
nobu Apr 27, 2019
d47cd75
Chomp a newline from the branch name
nobu Apr 28, 2019
a15f7dd
Always mark the string returned by File.realpath as tainted
jeremyevans Apr 27, 2019
d0a5467
Update rubygems with latest upstream changes
deivid-rodriguez Apr 26, 2019
5a53682
Removed `--reverse` option
nobu Apr 28, 2019
fdcd640
Makefiles need to be indented by tabs
nobu Apr 28, 2019
b766970
Search the beginning revision more strictly a bit
nobu Apr 28, 2019
d72bd19
Added VCS::SVN#branch_beginning
nobu Apr 28, 2019
4c8f107
Make the range to export as changelog optional
nobu Apr 28, 2019
766293f
Ruby 2.3 is EOL
k0kubun Apr 28, 2019
f40458e
Specify VM_CHECK_MODE explicitly
k0kubun Apr 28, 2019
5d24fba
Skip the entire Process.clock_getres spec on FreeBSD
eregon Apr 28, 2019
4d8ad48
Support git as redmine-backporter's done destination
k0kubun Apr 28, 2019
588f212
make sync-default-gems GEM=irb
k0kubun Apr 28, 2019
8711f77
make sync-default-gems GEM=irb
k0kubun Apr 28, 2019
d835ed4
Define merger.rb's methods under Merger namespace
k0kubun Apr 28, 2019
fc37a04
Fix typo in spec
eregon Apr 28, 2019
16695af
Refactor logic in Process.clock_gettime spec
eregon Apr 28, 2019
fcb1875
Make Merger.version private to the module
k0kubun Apr 28, 2019
14965c5
Drop SVN-specific method from Merger module
k0kubun Apr 28, 2019
13abf55
Workaround a CentOS bug in Process.clock_getres specs
eregon Apr 28, 2019
f2d7ba6
make sync-default-gems GEM=irb
k0kubun Apr 28, 2019
cb8eb37
Now tool/merger.rb may use Git [ci skip]
k0kubun Apr 28, 2019
9a0dbb3
Skip problematic Process.clock_getres specs on ARM
eregon Apr 28, 2019
a27f7e4
Add missing platform guard
eregon Apr 28, 2019
9426da8
Exclude failing Process.clock_getres specs on AIX
eregon Apr 28, 2019
1c8cefc
Stop using global variable for repos
k0kubun Apr 28, 2019
392d84b
Fix wrong svn options
k0kubun Apr 28, 2019
d906dd8
Skip CLOCK_UPTIME_RAW_APPROX since it seems less precise than adverti…
eregon Apr 28, 2019
3bc8103
Support `tool/merger.rb up` under Git repository
k0kubun Apr 28, 2019
cb55024
test/ruby/test_integer.rb: Add a sane test for Integer#[]
mame Apr 28, 2019
6bedbf4
numeric.c: Extend Integer#[] to support range arguments
mame Apr 28, 2019
555d1dd
* expand tabs.
matzbot Apr 28, 2019
fad2825
Support `tool/merger.rb tag` under Git repository
k0kubun Apr 28, 2019
bbad0d0
* 2019-04-29
matzbot Apr 28, 2019
2dddd37
Support `tool/merger.rb removetag` under Git
k0kubun Apr 28, 2019
991e326
tool/merger.rb: Avoid making too-deep indentation
k0kubun Apr 28, 2019
75260d3
* remove trailing spaces.
matzbot Apr 28, 2019
50cbb21
Add "Integer#[] with range" to NEWS
mame Apr 28, 2019
f0776e3
Add more debug print for random CI failure on osx Travis
znz Apr 28, 2019
dfc0eeb
Fully support Git in tool/merger.rb
k0kubun Apr 28, 2019
bbb9360
Move the check for CentOS CLOCK_MONOTONIC_RAW next to others
eregon Apr 28, 2019
9948330
Update to ruby/mspec@c25d63d
eregon Apr 28, 2019
79671ec
Update to ruby/spec@7de852d
eregon Apr 28, 2019
daa0874
CLOCK_MONOTONIC_RAW_APPROX seems less precise than advertised on macOS
eregon Apr 28, 2019
6033423
NEWS: Moved "Integer#[] with range" to "Core classes updates"
nobu Apr 29, 2019
812a438
iseq.c: removed unnecessary zero-fills
nobu Apr 29, 2019
69cad44
Reduce debug output
znz Apr 29, 2019
330b376
parse.y: fix here-doc identifier with newline
nobu Apr 28, 2019
23375c8
Make only `mesg` can be assigned with default `fname`
nobu Apr 29, 2019
1432471
Disallow also CR in here-doc identifier
nobu Apr 29, 2019
c7f780c
Refactored rb_strterm_heredoc_t
nobu Apr 29, 2019
6a3165e
Fixed HERETERM_LENGTH_MAX on IL32LLP64
nobu Apr 29, 2019
7c0f513
fix typo
shyouhei Apr 26, 2019
f4c6864
this variable is not guaranteed aligned
shyouhei Apr 26, 2019
a116f04
suppress some UBSAN sanitizers
shyouhei Apr 26, 2019
e7b18ca
glibc says memcpy cannot take NULL
shyouhei Apr 26, 2019
34e1079
glibc says memcpy cannot take NULL
shyouhei Apr 26, 2019
f95f07d
avoid passing NULL to memset
shyouhei Apr 26, 2019
040b37f
Use 10 chars as RUBY_REVISION in snapshot too
znz Apr 29, 2019
7a34d89
Merge .time
znz Apr 29, 2019
b7d9ec8
* 2019-04-30
matzbot Apr 29, 2019
09022b6
Use CreateToolhelp32Snapshot instead of NtQueryInformationProcess to …
unak Apr 29, 2019
ae3a986
* expand tabs.
matzbot Apr 29, 2019
320f0ab
Revert previous commit; it was meaningless
unak Apr 29, 2019
eb45ba6
Skip the spec on Windows because RUBY_EXE is RUNRUBY and it calls rub…
unak Apr 29, 2019
17350c7
Add Reline as a fallback library for Readline
aycabta Apr 27, 2019
319eee0
Use Encoding::UTF_8 if Encoding.default_external is Encoding::IBM437
aycabta Apr 30, 2019
3be5907
Move Win32API to Reline::Win32API
aycabta Apr 30, 2019
567cb1a
Use Encoding::UTF_8 if RELINE_TEST_ENCODING doesn't exist
aycabta Apr 30, 2019
94b740b
Use Ripper for IRB
aycabta Apr 27, 2019
151b7d7
Forgotten to remove
unak Apr 30, 2019
c222f4d
`from` is not nil but `""` on shallow clone [ci skip]
znz Apr 30, 2019
5a83a1d
**Must** use IO::NULL for null device
unak Apr 30, 2019
830e40e
Skip on Windows now when using reline because it causes hang of whole…
unak Apr 30, 2019
1dd94df
Must use IO::NULL instead of platform dependent filename
unak Apr 30, 2019
df3de40
String#[] with index to extract matched substring safely
nobu Apr 30, 2019
50872f4
Use array mode of `system` instead of `shellescape`
nobu Apr 30, 2019
dd942cd
Use redirect keyword arguments instead of ">"
unak Apr 30, 2019
0eedec6
Change Accept-Encoding from `*` to `identity`
znz Apr 30, 2019
4e88e86
Add exception support in `Range#first`.
osyo-manga Apr 30, 2019
c068211
* 2019-05-01
matzbot Apr 30, 2019
3de0354
Add Reline.delete_text that raises NotImplementedError
aycabta Apr 30, 2019
fc3e80c
guard include with has_feature
nurse Apr 30, 2019
dcb6a6a
Windows simply causes an error to open invalid path
unak May 1, 2019
2f0f911
Ignore ChangeLog
nobu May 1, 2019
474af9e
No last commit when up-to-date
nobu May 1, 2019
7195244
Silence a (probable) debug print
nobu May 1, 2019
a1ae478
Fix a typo
znz May 2, 2019
d6efb38
* 2019-05-02
matzbot May 2, 2019
5e23b11
Fix potential memory leak
nobu May 2, 2019
5c87bb3
* expand tabs.
matzbot May 2, 2019
7d02bab
Nil cannot and should not convert to a string
unak May 2, 2019
58cd4b7
* 2019-05-03
matzbot May 2, 2019
5776ae3
UTF-8 is one of byte based encodings
nobu May 3, 2019
1f349ea
Fix typo
stomar May 3, 2019
77440e9
Improve performance of case-conversion methods
nobu May 3, 2019
04fd98d
* expand tabs.
matzbot May 3, 2019
a3cbce7
* 2019-05-04
matzbot May 3, 2019
b726230
Update broken URL in Float documentation.
hsbt May 3, 2019
8980b53
add DRb::WeakIdConv (Bug #15711)
seki May 4, 2019
7d30cd4
* remove trailing spaces.
matzbot May 4, 2019
b9e52db
Add a pathologic check
nobu May 4, 2019
8bf3040
Fix grammar
stomar May 4, 2019
a380f4c
Fix typos, grammar, and style
stomar May 4, 2019
848edb0
ignore test_RangeError
seki May 4, 2019
ff21e75
parse.y: duplicated when clause warning
nobu Jul 27, 2018
f1b52d3
* expand tabs.
matzbot May 5, 2019
84e71e9
* 2019-05-05
matzbot May 5, 2019
374c8f4
Fixed about ARGF.lineno
nobu May 5, 2019
b8f3be2
Fix a case where numbered parameters should not be allowed
jeremyevans May 5, 2019
0c0ed1c
Fix use of numbered parameter inside proc that is default value of op…
jeremyevans May 5, 2019
bb4ac7a
Fix use of numbered parameter inside proc that is default value of op…
jeremyevans May 5, 2019
35ff4ed
Improve documentation for String#{dump,undump}
stomar May 5, 2019
594a033
Improve description of Ruby in README
stomar May 5, 2019
f1b0db2
Revert "UTF-8 is one of byte based encodings"
nobu May 6, 2019
970a25b
* 2019-05-06
matzbot May 6, 2019
7e72ce0
Load OptionParser defaults from XDG and Haiku standards
nobu May 6, 2019
4dc5d3c
add new debug_counters about is_pointer_to_heap().
ko1 May 7, 2019
6786fe4
* 2019-05-07
matzbot May 7, 2019
7d805e6
Avoid triggering autoload in Module#const_defined?(String)
byroot May 7, 2019
a47f598
Reduce ONIG_NREGION from 10 to 4: power of 2 and testing revealed mos…
methodmissing Apr 19, 2019
5eb5613
Recent commits of trunk do not have svn revision
znz May 7, 2019
45b125e
Update the canonical repository url.
hsbt May 7, 2019
efda52b
Use cgit instead of svn.
hsbt May 7, 2019
d56b0cb
Use `start_with?(quoted)` instead of `[0] == char literal`
znz May 8, 2019
6ec43d3
* 2019-05-08
matzbot May 8, 2019
229e505
Drop -fs from rubyspec to see test results easily
k0kubun May 8, 2019
a7cbb65
Do not break rubyspec for old Ruby
k0kubun May 8, 2019
d736080
Use ruby_bug guard
nobu May 8, 2019
60869eb
Wrap mjit-debug-on-fail for Wercker failure
k0kubun May 8, 2019
b0965cc
Add missing chmod for mjit-debug-on-fail
k0kubun May 8, 2019
e8e415b
Add workaround for `Permission denied` of `cp`
znz May 8, 2019
a1bab3d
Escape $@ in mjit-debug-on-fail
k0kubun May 8, 2019
c54d587
Configure directories for headers and libraries automatically
nobu May 8, 2019
29fcb37
Fixed a typo
nobu May 8, 2019
a95ca6d
Trim MJIT output from TestHideSkip
k0kubun May 8, 2019
c53f879
Calling `obj_info` during sweep is unsafe
tenderlove May 8, 2019
8b12db6
* expand tabs.
matzbot May 8, 2019
4ff0911
* 2019-05-09
matzbot May 8, 2019
dc405eb
Pin finalizer table
tenderlove May 8, 2019
10723dd
dryrun option is for `push`, not `git`
nobu May 8, 2019
f1486fe
require 'stringio'
nurse May 9, 2019
4fabb74
Show the commit command if dryrun
nobu May 9, 2019
d802698
Push the current (topic) branch to the remote upstream
nobu May 9, 2019
c06ddfe
str_duplicate: Don't share with a frozen shared string
XrXr May 8, 2019
eb84b33
Search a branch name at a detached head
nobu May 9, 2019
025206d
Fallback to an invalid branch name if no branch found
nobu May 9, 2019
5f05851
add FROZEN to lldb debug output
tenderlove May 9, 2019
c4d4974
* 2019-05-10
matzbot May 9, 2019
a85ed43
Do not access the internal member
nobu May 9, 2019
bef5829
Add one more retry for win32ole event matcher
k0kubun May 10, 2019
c8a891d
Fix missing `\A`
znz May 10, 2019
a7b68e6
Suppress a warning in Psych&YAML with verbose mode
nobu May 10, 2019
dbcc224
Removed old names of internal methods
nobu May 10, 2019
9a4d39b
No longer svn & git-svn are used
nobu May 10, 2019
15f45ae
Propagate parser_params to rb_yytnamerr
nobu May 10, 2019
56528da
Fix for bison 2.3
nobu May 10, 2019
d4c8577
Revert "Fix for bison 2.3"
hsbt May 10, 2019
aa52464
15f45ae4d1 and 56528da3e broke the darwin environment.
hsbt May 10, 2019
dc65e75
Adjust indent
nobu May 10, 2019
79931dd
Propagate parser_params to rb_yytnamerr
nobu May 10, 2019
e9bb30d
Expect no conflict in the parser
nobu May 11, 2019
3211a0a
* 2019-05-12
matzbot May 11, 2019
b1767e5
Add a test for em_capitol_case of Reline
aycabta May 12, 2019
fc57e10
Revert "Add a test for em_capitol_case of Reline"
aycabta May 12, 2019
aaaede8
Change LineEditor instance in Reline to class var
aycabta May 12, 2019
11476e9
Check INPUTRC env in Reline::Config
aycabta May 12, 2019
0f45bd0
Split namespace of env-dependent I/O classes
aycabta May 12, 2019
d3a702a
* 2019-05-13
matzbot May 12, 2019
33bce25
Use LineEditor#reset on test
aycabta May 12, 2019
559cad9
Improve doc for Enumerable#include? and member?
okuramasafumi May 4, 2019
bb56b89
Add ed_search_prev_history to Reline
aycabta May 12, 2019
9cb821b
Implement Reline.input= and Reline.output=
aycabta May 12, 2019
c137f01
Add Reline.pre_input_hook interface
aycabta May 12, 2019
5837290
Implement Reline's class methods for compatibility
aycabta May 12, 2019
e467f92
Add Reline.special_prefixes as stub
aycabta May 12, 2019
130ced9
Reline.completion_append_character= should be nil
aycabta May 12, 2019
ebb15cc
Reline.completion_proc= should raise ArgumentError
aycabta May 12, 2019
c48778d
Add attr_accessor for Reline's Config attrs
aycabta May 12, 2019
caef2dd
Implement Reline::HISTORY as an expanded Array
aycabta May 12, 2019
75f196c
Skip tests depend on Readline's special behaviors
aycabta May 12, 2019
24964ff
Check that Reline exists on test
aycabta May 12, 2019
2dc6138
delegate.rb: don't look for methods on Kernel
etiennebarrie Aug 30, 2016
b42303b
Fix typos
znz May 13, 2019
082bbdc
Update the canonical repository for racc.
hsbt May 13, 2019
3b3b4a4
Update dependencies
nobu May 13, 2019
d2003a6
Symbol just represents a name
nobu May 13, 2019
0215520
* 2019-05-14
matzbot May 13, 2019
66a7c92
Don't run the compactor if GC is disabled
tenderlove May 13, 2019
a1ecf07
turn T_MOVED in to a linked list
tenderlove May 9, 2019
79ead82
Add NaN / Infinity / MinusInfinity to mark list
tenderlove May 13, 2019
7413217
Remove unused variable in LineEditor
aycabta May 13, 2019
af1f3f1
Readline's class vars should be encoded as default_external
aycabta May 13, 2019
5bab130
fix visibility of SecureRandom.gen_random
shyouhei May 14, 2019
602ef62
Rescue CompatibilityError for Readline's completion
aycabta May 13, 2019
6d73356
io/console: support wide character input on Windows
nobu May 14, 2019
456586b
io/console: support getch timeout on Windows
nobu May 14, 2019
c174670
io/console: fix up timeout on Windows
nobu May 14, 2019
29dde62
io/console: rb_str_cat_conv_enc_opts is not exported
nobu May 14, 2019
1e65196
Check encoding when Readline completion
aycabta May 13, 2019
07e7ae9
Add an assertion message to test of Readline's class variables
aycabta May 13, 2019
c754e97
Test ext/readline and lib/reline by test/readline
aycabta May 13, 2019
4fe0961
Fix typo in debugged C source name
k0kubun May 14, 2019
80c968c
Rename Reline's test file name because of typo
aycabta May 14, 2019
b5a3ec7
Remove useless use of a variable in Reline::ANSI
aycabta May 14, 2019
2ca537b
Fixing function name
tenderlove May 14, 2019
46a4798
* 2019-05-15
matzbot May 14, 2019
c70ceb5
Add object packing strategies for compaction
tenderlove May 9, 2019
e8b929b
* expand tabs.
matzbot May 15, 2019
672ee5f
Symbols can move so only cache IDs
tenderlove May 14, 2019
0cc893d
Static symbols can't be moved (they are not RValue)
tenderlove May 15, 2019
f54aa6c
Rename confuzed name Reline::IO with Reline::IOGate
aycabta May 15, 2019
c9b28fd
Allow --enable/--disable options to take an argument
nobu May 15, 2019
3cf767e
unpin finalizers and update references
tenderlove May 9, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
6 changes: 2 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@
.pc
.ppack
.svn
.time
Makefile
cygruby*.def
extconf.h
Expand All @@ -56,6 +57,7 @@ lcov*.info
/*.rc
/*_prelude.c
/COPYING.LIB
/ChangeLog
/Doxyfile
/GNUmakefile
/README.atheos
Expand Down Expand Up @@ -145,19 +147,16 @@ lcov*.info

# /coroutine/
!/coroutine/**/*.s
/coroutine/**/.time

# /enc/trans/
/enc/trans/*.c
/enc/trans/*.def
/enc/trans/*.exp
/enc/trans/*.lib
/enc/trans/.time

# /exe/
/exe/goruby
/exe/ruby
/exe/.time

# /ext/
/ext/extinit.c
Expand Down Expand Up @@ -205,7 +204,6 @@ lcov*.info

# /win32/
/win32/*.ico
/win32/.time

# MJIT
/rb_mjit_header.h
Expand Down
95 changes: 69 additions & 26 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -98,6 +98,31 @@ env:
before_install:
- /usr/local/opt/openssl@1.1/bin/openssl version

- &clang-8
compiler: clang-8
addons:
apt:
config:
retries: true
update: true
sources:
- llvm-toolchain-xenial-8
packages:
- 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

# --------

- &x86_64-linux
Expand All @@ -111,12 +136,22 @@ env:
env:
- CONFIG_FLAG='--with-gmp --with-jemalloc --with-valgrind'

- &assertions
name: RUBY_DEBUG=1
<<: *linux
#<<: *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
<<: *linux
<<: *cron-only
<<: *make-test-only
env:
- GEMS_FOR_TEST=
- cppflags=-DVM_CHECK_MODE=0x0003

- &FIBER_USE_sjlj
Expand All @@ -132,6 +167,7 @@ env:
<<: *cron-only
<<: *make-test-only
env:
- GEMS_FOR_TEST=
- cppflags=-DOPT_THREADED_CODE=1

- &CALL_THREADED_CODE
Expand All @@ -140,6 +176,7 @@ env:
<<: *cron-only
<<: *make-test-only
env:
- GEMS_FOR_TEST=
- cppflags=-DOPT_THREADED_CODE=2

- &NO_THREADED_CODE
Expand All @@ -148,48 +185,53 @@ env:
<<: *cron-only
<<: *make-test-only
env:
- GEMS_FOR_TEST=
- cppflags=-DOPT_THREADED_CODE=3

- &ASAN
name: -fsanitize=address
<<: *linux
#<<: *cron-only
<<: *make-test-only
compiler: clang
<<: *clang-8
env:
- GEMS_FOR_TEST=
- ASAN_OPTIONS=detect_leaks=0
- cflags='-march=native -fsanitize=address -fno-omit-frame-pointer'
- cflags='-march=native -fsanitize=address -fno-omit-frame-pointer -fPIC'
- debugflags=-ggdb3
- optflags=-O1
- LD=clang
- LDFLAGS=-fsanitize=address
- LD=clang-8
- LDFLAGS='-fsanitize=address -fPIC'
- CONFIG_FLAG='--with-out-ext=openssl --without-gmp --without-jemalloc --without-valgrind'

- &MSAN
name: -fsanitize=memory
<<: *linux
#<<: *cron-only
<<: *make-test-only
compiler: clang
<<: *clang-8
env:
- cflags='-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer'
- GEMS_FOR_TEST=
- cflags='-fsanitize=memory -fsanitize-memory-track-origins=2 -fno-omit-frame-pointer -fPIC'
- optflags=-O1
- LD=clang
- LDFLAGS=-fsanitize=memory
- CONFIG_FLAG=--with-out-ext=openssl
- LD=clang-8
- LDFLAGS='-fsanitize=memory -fPIC'
- CONFIG_FLAG='--with-out-ext=openssl --without-gmp --without-jemalloc --without-valgrind'

- &UBSAN
name: -fsanitize=undefined
<<: *linux
#<<: *cron-only
<<: *make-test-only
compiler: clang
<<: *clang-8
env:
- cflags='-fsanitize=undefined,integer,nullability -fno-omit-frame-pointer'
- GEMS_FOR_TEST=
- cflags='-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
- LDFLAGS=-fsanitize=undefined,integer,nullability
- LD=clang-8
- LDFLAGS='-fsanitize=undefined,integer,nullability -fno-sanitize=implicit-integer-sign-change,unsigned-integer-overflow'

- &i686-linux
name: i686-linux
Expand Down Expand Up @@ -228,6 +270,7 @@ env:
<<: *make-test-only
compiler: clang
env:
- GEMS_FOR_TEST=
- GCC_FLAGS='-std=c99 -Werror=pedantic -pedantic-errors'
- CONFIG_FLAG=
- JOBS=
Expand Down Expand Up @@ -257,18 +300,18 @@ env:
- LDFLAGS=-Wno-unused-command-line-argument

- &rubyspec
name: ruby/spec on Ruby 2.3 # to ensure version guards are correctly added
name: ruby/spec on Ruby 2.4 # to ensure version guards are correctly added
<<: *linux
language: ruby
rvm: 2.3.8
rvm: 2.4.6
addons:
apt:
packages:
before_install:
install:
before_script: chmod -R u+w spec/ruby
# -j randomly hangs. Using -fs to make sure we can know problematic spec on failure.
script: ruby -C spec/ruby ../mspec/bin/mspec -fs .
# -j randomly hangs.
script: ruby -C spec/ruby ../mspec/bin/mspec .

- &x86_64-darwin17
name: x86_64-darwin17
Expand All @@ -286,6 +329,7 @@ env:
<<: *cron-only
<<: *make-test-only
env:
- GEMS_FOR_TEST=
- CONFIG_FLAG=--with-arch=x86_64h,x86_64,i386
- TEST_ALL_OPTS="$JOBS -q --tty=no --excludes=\$(TESTSDIR)/excludes/_travis/osx"

Expand All @@ -300,6 +344,7 @@ matrix:
- <<: *ASAN
- <<: *MSAN
- <<: *UBSAN
- <<: *assertions
- <<: *VM_CHECK_MODE
- <<: *FIBER_USE_sjlj
- <<: *TOKEN_THREADED_CODE
Expand All @@ -314,6 +359,7 @@ matrix:
fast_finish: true

before_script:
- date # Debugging "Permission defined" failure on darwin like https://travis-ci.org/ruby/ruby/jobs/508683759
- echo JOBS=${JOBS} SETARCH=${SETARCH}
- $SETARCH uname -a
- $SETARCH uname -r
Expand Down Expand Up @@ -360,20 +406,17 @@ before_script:
- 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
echo $USER
ls -la
ls -la .ext
ls -la .ext/common
ls -la .ext/common/bigdecimal
ls -la ext
ls -laR ext/bigdecimal
umask
date
./miniruby -e 'ARGV.map{[@1,File.stat(@1)]}.sort_by{@2.mtime}.each{p mtime:@2.mtime.to_f, ctime:@2.ctime.to_f, path:@1}' .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
exit 1
fi
- ccache --show-stats
- |-
Expand Down
2 changes: 2 additions & 0 deletions Makefile.in
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
# -*- mode: makefile-gmake; indent-tabs-mode: t -*-

SHELL = /bin/sh
NULLCMD = @NULLCMD@
n=$(NULLCMD)
Expand Down
33 changes: 29 additions & 4 deletions NEWS
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ sufficient information, see the ChangeLog file or Redmine

=== Language changes

* Introduce pattern matching [Feature #14912]
* Pattern matching is introduced as an experimental feature. [Feature #14912]

* Method reference operator, <code>.:</code> is introduced as an
experimental feature. [Feature #12125] [Feature #13581]
Expand All @@ -24,21 +24,30 @@ sufficient information, see the ChangeLog file or Redmine

* lambda with no block in a method called with a block errs.

* Non-Symbol keys in a keyword arguments hash was prohibited at 2.6.0, but
now allowed again. [Bug #15658]
* Non-Symbol keys in a keyword arguments hash were prohibited in 2.6.0,
but are now allowed again. [Bug #15658]

* Numbered parameter as the default block parameter is introduced as an
experimental feature. [Feature #4475]

* A beginless range is experimentally introduced. It might not be as useful
as an endless range, but would be good for DSL purpose.
as an endless range, but would be good for DSL purpose. [Feature #14799]

ary[..3] # identical to ary[0..3]
where(sales: ..100)

* Setting <code>$;</code> to non-nil value is warned now. Use of it in
String#split is warned too.

* Setting <code>$,</code> to non-nil value is warned now. Use of it in
Array#join is warned too.

* Quoted here-document identifier must end within the same line.

<<"EOS
" # This has been warned since 2.4
EOS

=== Core classes updates (outstanding ones only)

Enumerable::
Expand All @@ -55,6 +64,17 @@ Enumerator::
can be directly passed to another method as a block
argument. [Feature #15618]

Integer::

Modified method::

* Integer#[] now supports range operation. [Feature #8842]

0b01001101[2, 4] #=> 0b0011
0b01001100[2..5] #=> 0b0011
0b01001100[2...6] #=> 0b0011
^^^^

Regexp/String::

* Update Unicode version and Emoji version from 11.0.0 to
Expand Down Expand Up @@ -85,6 +105,11 @@ ERB::

* Prohibit marshaling ERB instance.

IRB::

* Introduce syntax highlight inspired by pry.gem to inspect output for some
core-class objects and binding.irb source lines if $TERM is set and not dumb.

Net::IMAP::

* Add Server Name Indication (SNI) support. [Feature #15594]
Expand Down
7 changes: 4 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,10 @@

# What's Ruby

Ruby is the interpreted scripting language for quick and easy object-oriented
programming. It has many features to process text files and to manage system
(as in Perl). It is simple, straight-forward, and extensible.
Ruby is an interpreted object-oriented programming language often
used for web development. It also offers many scripting features
to process plain text and serialized files, or manage system tasks.
It is simple, straightforward, and extensible.

## Features of Ruby

Expand Down
10 changes: 6 additions & 4 deletions appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -63,11 +63,12 @@ for:
- if not "%GEMS_FOR_TEST%" == "" \usr\bin\gem install --no-document %GEMS_FOR_TEST%
test_script:
- set /a JOBS=%NUMBER_OF_PROCESSORS%
- set RELINE_TEST_ENCODING=Windows-31J
- nmake -l "TESTOPTS=-v -q" btest
- nmake -l "TESTOPTS=-v -q" test-basic
- nmake -l "TESTOPTS=-q --subprocess-timeout-scale=3.0 --excludes=../test/excludes/_appveyor -j%JOBS% --exclude win32ole --exclude test_bignum --exclude test_syntax --exclude test_open-uri --exclude test_bundled_ca" test-all
- nmake -l "TESTOPTS=-q --subprocess-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 --exclude test_gc_compact" test-all
# separately execute tests without -j which may crash worker with -j.
- nmake -l "TESTOPTS=-v --subprocess-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 "TESTOPTS=-v --subprocess-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 ../test/ruby/test_gc_compact.rb"
- nmake -l test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
-
matrix:
Expand Down Expand Up @@ -108,10 +109,11 @@ for:
- mingw32-make DESTDIR=../install install-nodoc
- if not "%GEMS_FOR_TEST%" == "" ..\install\bin\gem install --no-document %GEMS_FOR_TEST%
test_script:
- set RELINE_TEST_ENCODING=Windows-31J
- mingw32-make test
- mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --subprocess-timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor -j %JOBS% --exclude win32ole --exclude test_open-uri"
- mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --subprocess-timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor -j %JOBS% --exclude win32ole --exclude test_open-uri --exclude test_gc_compact"
# separately execute tests without -j which may crash worker with -j.
- mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --subprocess-timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor" TESTS="../ruby/test/win32ole ../ruby/test/open-uri/test_open-uri.rb"
- mingw32-make test-all TESTOPTS="--retry --job-status=normal --show-skip --subprocess-timeout-scale=1.5 --excludes=../ruby/test/excludes/_appveyor" TESTS="../ruby/test/win32ole ../ruby/test/open-uri/test_open-uri.rb ../ruby/test/ruby/test_gc_compact.rb"
- mingw32-make test-spec MSPECOPT=-fs # not using `-j` because sometimes `mspec -j` silently dies on Windows
notifications:
# Using "Webhook" with templated body to skip notification on Pull Request
Expand Down
4 changes: 2 additions & 2 deletions array.c
Original file line number Diff line number Diff line change
Expand Up @@ -879,8 +879,8 @@ rb_check_to_array(VALUE ary)
* call-seq:
* Array.try_convert(obj) -> array or nil
*
* Tries to convert +obj+ into an array, using +to_ary+ method. Returns the
* converted array or +nil+ if +obj+ cannot be converted for any reason.
* Tries to convert +obj+ into an array, using the +to_ary+ method. Returns
* the converted array or +nil+ if +obj+ cannot be converted.
* This method can be used to check if an argument is an array.
*
* Array.try_convert([1]) #=> [1]
Expand Down
1 change: 1 addition & 0 deletions benchmark/match_gt4.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
1000000.times { /(.)(.)(\d+)(\d)/.match("THX1138.") }
Loading