Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
270 commits
Select commit Hold shift + click to select a range
35cfc9a
Remove as many unnecessary moves as possible (#6342)
kddnewton Sep 8, 2022
59eadf3
Ignore EACCES on Windows
nobu Sep 9, 2022
db0e0da
Fix unexpected "duplicated key name" error in paren-less one line pat…
k-tsj Sep 9, 2022
2dcaeb7
Built-in function table sentinels do not need names
nobu Sep 9, 2022
be56033
Move RDoc `--`/`++` directives to comments
nobu Sep 9, 2022
56e5210
More robust macro parser (#6343)
tenderlove Sep 9, 2022
9faa9ce
Support sub-library in builtin-loader
nobu Sep 9, 2022
aff6534
Avoid unnecessary copying when removing the leading part of a string
rhenium Sep 8, 2022
cfe10e4
[DOC] Update `Struct#new` behavior with `keyword_init: true`
nobu Sep 9, 2022
b350053
[rubygems/rubygems] Fix resolution on non-musl platforms
deivid-rodriguez Sep 7, 2022
848037c
Better offsets (#6315)
kddnewton Sep 9, 2022
2a08a39
* 2022-09-10 [ci skip]
matzbot Sep 9, 2022
5b5c627
YJIT: eliminate redundant mov in csel/cmov on x86 (#6348)
maximecb Sep 9, 2022
5183018
Fix parallel build on MINGW
larskanis Sep 9, 2022
79f50b9
Using is_broken_string function
S-H-GAMELINKS Sep 9, 2022
d319184
YJIT: Branch directly when truthyness is known
jhawthorn Sep 5, 2022
5e39b3b
YJIT: Branch directly when nil? is known from types
jhawthorn Sep 9, 2022
92b907d
Enable deprecation warnings for test-all
eregon Sep 3, 2022
c722597
[MSWin] Get rid of single quotes in sed command lines
nobu Sep 10, 2022
f641179
[win32] Set proper `NULLCMD` in rbconfig.rb [ci skip]
nobu Aug 28, 2022
14bcf69
Deprecate Encoding#replicate
eregon Sep 3, 2022
c22a668
* 2022-09-11 [ci skip]
matzbot Sep 10, 2022
aa8a3b2
MJIT: Do not hang after forking with threads
k0kubun Sep 10, 2022
7232f26
Remove -j from MinGW test-all
k0kubun Sep 11, 2022
1067441
[ruby/fiddle] Fix PACK_MAP for unsigned types (https://github.com/rub…
k0kubun Sep 5, 2022
472e7b8
MJIT: Use the built-in PACK_MAP
k0kubun Sep 11, 2022
684353f
[Win32] Negative length `IO#sysread`
javanthropus Sep 11, 2022
9205b8c
Revert "defs/gmake.mk: no _FORTIFY_SOURCE unless optimization"
nobu Sep 11, 2022
6f8267b
* 2022-09-12 [ci skip]
matzbot Sep 11, 2022
89077b4
Add comments for some peephole optimizations [ci skip]
wildmaples Sep 11, 2022
ed029e9
Autoconf 2.70 or AC_PROG_CC_C99 for earlier is checking for C99
nobu Sep 12, 2022
6525b6f
Remove get_actual_encoding() and the dynamic endian detection for dum…
eregon Sep 10, 2022
acc61cb
Add NEWS entry for the previous commit
eregon Sep 12, 2022
a4860e0
[rubygems/rubygems] Remove unnecessary spec sorting
deivid-rodriguez Aug 24, 2022
8d2bcc8
[rubygems/rubygems] This sorting seems unnecessary too
deivid-rodriguez Aug 24, 2022
6a21d19
[rubygems/rubygems] Let specs be sorted just once by the gem version …
deivid-rodriguez Aug 24, 2022
dce73c8
[rubygems/rubygems] Simplify instantiating the gem version promoter
deivid-rodriguez Aug 24, 2022
03d1962
[rubygems/rubygems] Remove unnecessary sorting
deivid-rodriguez Aug 24, 2022
75d90cc
[rubygems/rubygems] Use a single hash to keep track of prereleases
deivid-rodriguez Aug 24, 2022
2aa8eda
[rubygems/rubygems] Deduplicate results just once
deivid-rodriguez Sep 8, 2022
fcf861a
Try latest debug.gem
ko1 Sep 12, 2022
bc8bbd2
* 2022-09-13 [ci skip]
matzbot Sep 13, 2022
9179f66
Configure auto_request_review for YJIT team
k0kubun Sep 13, 2022
64cd097
Tweak the glob for auto_request_review
k0kubun Sep 13, 2022
2e21fef
Drop synchronized event
k0kubun Sep 13, 2022
391eebf
Increase the timeout for make all on MinGW
k0kubun Sep 13, 2022
316b44d
Add GMP support for mswin
unak Sep 13, 2022
6a78ae2
Remove CODEOWNERS to switch to auto-request-review (#6365)
k0kubun Sep 13, 2022
b876230
* 2022-09-14 [ci skip]
matzbot Sep 13, 2022
9299db4
[ruby/irb] Fix history file saving with concurrent irb sessions when …
jeremyevans Sep 14, 2022
e2b47b8
configure.ac: Manage OPT_DIR better (#6367)
nobu Sep 14, 2022
f863bc5
[ruby/irb] Fix the error when LC_MESSAGES config value is nil
nobu Sep 14, 2022
c28a4e0
Replace "Fixes"/"Fixed" in commit logs as well as vcs.rb [ci skip]
nobu Sep 14, 2022
c428fc0
-undefined dynamic_lookup is obsolete
nobu Sep 13, 2022
035978d
Pass job-server FDs to bundler tests
nobu Sep 13, 2022
2e324b6
Manage paths for bundler tests
nobu Sep 13, 2022
d66b29c
Add link to how to build Ruby
nurse Sep 14, 2022
f2429f0
Expand dependency for `$(YJIT_LIBS)`
nobu Aug 19, 2022
e1a9d88
Touch libyjit.a which may be still old due to the cache
nobu Sep 14, 2022
075df96
Add comments to touch libyjit
nobu Sep 14, 2022
f512df7
configure.ac: Add --with-gmp-dir (#6366)
mrkn Sep 14, 2022
960db13
Reuse `opt_arg_append` function
S-H-GAMELINKS Sep 14, 2022
2e25b85
configure.ac: Apply suggestions from code review in #6366
mrkn Sep 14, 2022
8f37e9c
YJIT: Add Opnd#with_num_bits to use only 8 bits (#6359)
k0kubun Sep 14, 2022
758a1d7
Initial support for VM_CALL_ARGS_SPLAT (#6341)
jimmyhmiller Sep 14, 2022
b6a9e68
Add noarch-fake.rb target
nobu Sep 14, 2022
0953ea6
* 2022-09-15 [ci skip]
matzbot Sep 14, 2022
fb2e905
[TravisCI] Make gems/src directory writable
nobu Sep 14, 2022
d5cdc2e
[TravisCI] The source of YAML is no longer bundled
nobu Sep 14, 2022
f98d6d3
YJIT: Implement specialized respond_to? (#6363)
jhawthorn Sep 14, 2022
513a11b
Add vm_ivar get, get_unitialized, and lazy_set benchmarks
jemmaissroff Sep 14, 2022
ae2e8d3
[ruby/irb] `Dir.mktmpdir` creates a directory including the process ID
nobu Sep 14, 2022
752ae81
[ruby/irb] Refine assertion for failures
nobu Sep 14, 2022
aecb57c
Fix style on vm_ivar benchmarks (#6379)
jemmaissroff Sep 15, 2022
d152ac6
Make CodeQL ignore syntax_suggest because of the performance problem
nobu Sep 15, 2022
ec0d9a6
[rubygems/rubygems] Added arm64-darwin-22 to lockfiles for testing
hsbt Sep 15, 2022
6b2b9e0
[rubygems/rubygems] Also added x86_64-darwin-21
hsbt Sep 15, 2022
bf72afa
Remove warning for old TLS version connection
nobu Sep 15, 2022
68a5b0f
[rubygems/rubygems] Mask the file mode when extracting files
kddnewton Sep 6, 2022
64a0203
Add asm comments to make disasm more readable (#6377)
maximecb Sep 15, 2022
cc7f6fe
YJIT should die if we compile on Aarch64 with no instruction cache cl…
noahgibbs Sep 15, 2022
2387fbf
Fix splat args (#6385)
jimmyhmiller Sep 16, 2022
3ff65dc
* 2022-09-16 [ci skip]
matzbot Sep 16, 2022
c8d94d2
Now test-bundler nees fake.rb
nobu Sep 16, 2022
6ad6994
Omit a DRb test on MinGW
k0kubun Sep 16, 2022
a28e787
Update bundled_gems
ko1 Sep 16, 2022
5b735d0
Invalidate i-cache after link_labels (#6388)
k0kubun Sep 16, 2022
6420099
[ci skip] Fix typos in documentation in io.c
peterzhu2118 Sep 16, 2022
b07db96
[ruby/irb] Support --noscript option to not use first non-option argu…
jeremyevans Sep 16, 2022
e3a32ab
* 2022-09-17 [ci skip]
matzbot Sep 16, 2022
6898984
[Bug #19005] dynamic_lookup linker option in external libraries
nobu Sep 17, 2022
76c0056
Follow emoji data files header change
nobu Sep 14, 2022
03ce48d
Emoji files header changed at 15.0 again
nobu Sep 14, 2022
e9982fd
Derive UNICODE_EMOJI_VERSION from UNICODE_VERSION
nobu Sep 14, 2022
ca4cbe5
Move case-folding.rb to tooldir with enc-prefix
nobu Sep 14, 2022
38a7a13
Auto-generate the release date on version.h from git CommitDate (#6382)
k0kubun Sep 17, 2022
1825d36
Skip test_wait on MinGW CI
k0kubun Sep 17, 2022
33c6dd2
Fallback to VCS.release_date on VCS::NotFoundError
k0kubun Sep 17, 2022
922e61f
Remove git command existence check again
k0kubun Sep 17, 2022
39f91bc
Always generate non-empty revision.h
k0kubun Sep 17, 2022
67417e7
Replace revision.tmp with the HAVE_BASERUBY trick
k0kubun Sep 17, 2022
0e816e6
Demote mjit_instruction.rb from builtin to stdlib
k0kubun Sep 18, 2022
62ec621
Preserve the directory structure under tool/ruby_vm/views
k0kubun Sep 18, 2022
12023c8
Revert "Preserve the directory structure under tool/ruby_vm/views"
k0kubun Sep 18, 2022
a988fe0
Introduce --basedir to insns2vm.rb
k0kubun Sep 18, 2022
0ca037b
Update bindgen crate (#6397)
k0kubun Sep 18, 2022
45ecc30
Move mjit/instruction.rb rule to common.mk
k0kubun Sep 18, 2022
e2e1058
Include lib/mjit/instruction.rb in a snapshot
k0kubun Sep 18, 2022
a0b0991
Downloader: Define per-class command line options
nobu Sep 17, 2022
cc533cb
Downloader: Define long option aliases
nobu Sep 17, 2022
ea22403
Extract UNICODE_DOWNLOADER
nobu Sep 17, 2022
12e5e5b
Fix the option name in the error message [ci skip]
nobu Sep 19, 2022
e75d963
Only exit if ruby2_keywords and splat together (#6395)
jimmyhmiller Sep 19, 2022
7cab7e5
Stop recommending duplicated options [ci skip] (#6400)
k0kubun Sep 19, 2022
1c93812
Add another test for `Process.daemon`
nobu Sep 18, 2022
ae07336
Reduce fork calls in daemon
nobu Sep 18, 2022
5883bc7
YJIT: Check if the processor supports --yjit-stats (#6401)
k0kubun Sep 19, 2022
a44f48c
[ruby/bigdecimal] Remove array defs in missing.h for old Rubies
peterzhu2118 Sep 19, 2022
12889fa
[ruby/bigdecimal] Remove symbol defs in missing.h for old Rubies
peterzhu2118 Sep 19, 2022
2613531
[ruby/psych] Convert some of Parser#parse to Ruby
tenderlove Sep 16, 2022
f8dad61
YJIT: Show --yjit-stats of railsbench on CI (#6403)
k0kubun Sep 19, 2022
76a0e81
Support trailing commas in builtin
k0kubun Sep 19, 2022
b4546d2
Fix the trailing comma comment for builtin [ci skip]
k0kubun Sep 20, 2022
55e540f
Ignore EPERM which means already being process-leader
nobu Sep 20, 2022
9de11fe
Quiet if the target is already linked the same source
nobu Sep 20, 2022
e40fa6c
[DOC] socket: fix wrong sample addresses (#6372)
kou Sep 20, 2022
b3d8ddd
Try to ignore a noisy ASAN warning for continuation
mame Sep 20, 2022
a8dc49b
YJIT: Support MAKE=bmake for release build
XrXr Sep 20, 2022
d3733c2
Guard `--yjit-stats` behind `#[cfg(feature = "stats")]` (#6409)
maximecb Sep 20, 2022
45482fe
LLVM 15 released
shyouhei Sep 12, 2022
104069e
syserr_initialize: delete redundant strerror() declaration
shyouhei Sep 13, 2022
406ebb2
obj_refer_only_sharables_p_i: need derefernce
shyouhei Sep 13, 2022
06cb030
vm_insnhelper.c: add casts
shyouhei Sep 13, 2022
0cd86ff
avoid ANYARGS
shyouhei Sep 14, 2022
2f8012c
rb_define_method: dedicated overload for rb_f_notimplement
shyouhei Sep 14, 2022
8a577cb
cref_replace_with_duplicated_cref_each_frame: returns a pointer
shyouhei Sep 14, 2022
4e64edb
vm_method_cfunc_is: get rid of ANYARGS
shyouhei Sep 14, 2022
ec5798d
type pun rb_f_notimplement
shyouhei Sep 14, 2022
77c61ae
cc_new: vm_ci_new's 4th argument is a pointer
shyouhei Sep 14, 2022
4574191
reserved_word: just use gperf 3.1 declaration
shyouhei Sep 16, 2022
437800d
getenv: is in stdlib.h
shyouhei Sep 21, 2022
7060b23
proper function prototypes for openssl
shyouhei Sep 21, 2022
1ad1f07
Fix a broken Slack notification
k0kubun Sep 21, 2022
d6e84d9
Fix the missing locale error
hsbt Sep 21, 2022
c287dee
backup IRBRC environmental variable. It's used by test methods when i…
hsbt Sep 21, 2022
76b4305
[DOC] Improve NEWS.md
Maumagnaguagno Aug 29, 2022
e3b1780
[DOC] Tweak the doc for `Process.kill` signature
koic May 23, 2022
017573c
socket add FreeBSD's SO_SETFIB constant.
devnexen May 18, 2022
8a9dfb6
sockets add `TCP_CONNECTION_INFO` and `TCP_KEEPALIVE` constants.
devnexen May 2, 2022
3f387e6
Rescue File.expand_path in MSpecScript#try_load if HOME is unavailable
kateinoigakukun Feb 17, 2022
ec2d135
Introduces FreeBSD's SO_USER_COOKIE among socketopt's options.
devnexen Feb 21, 2021
8cbbc06
openbsd sockets add SO_RTABLE constant
devnexen Jul 7, 2021
d35bc88
sockopt adding Linux constants, SO_INCOMING_CPU/SO_INCOMING_NAPI_ID.
devnexen Dec 12, 2021
02e25db
Add URI.escape and URI.unescape to NEWS-3.0.0 [ci skip]
sada Apr 5, 2022
796069b
getrlimit adding RLIMIT_NPTS constant.
devnexen Apr 10, 2021
1a2ee4c
Try reordering test-all and test-spec for mswin CI
k0kubun Sep 21, 2022
6325fc8
[ruby/irb] Handle non-String $LOAD_PATH values more carefully
st0012 Sep 19, 2022
c21f820
[ruby/irb] Fix completion tests
st0012 Sep 21, 2022
2c6fdc4
Improve Ubuntu GitHub Actions (#6413)
k0kubun Sep 21, 2022
9f68687
[ruby/irb] Scan every single characters in IRB::Color.scan
tompng Aug 7, 2022
78cb638
[ruby/irb] Update expected colorize result that were uncolored before
tompng Aug 10, 2022
369f166
[ruby/irb] Rewrite on_scan proc to be more readable.
tompng Sep 19, 2022
56d773d
New page IO Streams (#6383)
BurdetteLamar Sep 21, 2022
6b0b326
Followed up 796069b2882d8a67ecc36bda7c72affcbad09dae
hsbt Sep 22, 2022
830b2e2
[rubygems/rubygems] Update GitLab CI template with new one
tnir Sep 20, 2022
9058ba2
Binstubs test with relative path seems passing now
nobu Sep 22, 2022
083b4bb
add rb_control_frame_t
tenderlove Sep 21, 2022
ec93d09
add rb_execution_context
tenderlove Sep 21, 2022
f07e651
Mentioned new constants for Process and Socket classes on NEWS.md
hsbt Sep 22, 2022
928aeef
[ruby/cgi] Bump up 0.3.3
hsbt Sep 22, 2022
4c37eaa
Update default gems list at 928aeef3301d4dc0de3b80ee80c8ef [ci skip]
matzbot Sep 22, 2022
9434a73
Enable coverage for eval.
ioquatix Sep 17, 2022
69130e1
Expand paths used for dumper.rb
k0kubun Sep 22, 2022
9fb18e6
[ruby/reline] fix vi-operator-arg
otavioschwanck Sep 15, 2022
224a3ea
[ruby/reline] update version
otavioschwanck Sep 15, 2022
9d19d91
[ruby/reline] Revert "update version"
otavioschwanck Sep 20, 2022
696e891
[ruby/reline] PR changes
otavioschwanck Sep 20, 2022
4bdd8f2
[ruby/reline] use assert_nothing_raised
otavioschwanck Sep 21, 2022
aafbc90
avoid extra dup and pop in compile_op_log
HParker Sep 21, 2022
fbaac83
avoid extra dup and pop in compile_op_asgn2
HParker Sep 21, 2022
b5c459d
Adds a benchmark to measure freezing objects
jemmaissroff Sep 22, 2022
88bf8ad
Allow --enable-yjit on OpenBSD
jeremyevans Sep 22, 2022
f2bea69
Builtin RubyVM::MJIT::C
k0kubun Sep 18, 2022
e81a612
Auto-generate mjit_c.rb.erb
k0kubun Sep 18, 2022
00c441c
Bindgen macro with builtin
k0kubun Sep 18, 2022
334b8bd
Mix manual and auto-generated C APIs
k0kubun Sep 18, 2022
4e0db2f
mjit_c.rb doesn't need to be an erb
k0kubun Sep 18, 2022
591c3c7
Automatically setup bundler of bindgen.rb
k0kubun Sep 18, 2022
2f5b375
Builtin needs to be baseruby-compatible
k0kubun Sep 18, 2022
5cda593
Bindgen enum with builtin
k0kubun Sep 18, 2022
280ff17
Drop c_64 and c_32
k0kubun Sep 19, 2022
4c6e155
Bindgen immediate types with builtin
k0kubun Sep 20, 2022
2ce1460
Bindgen sizeof struct and union with builtin
k0kubun Sep 21, 2022
dc5b536
Bindgen offsetof struct and union with builtin
k0kubun Sep 22, 2022
dfc311c
Swap the positions of offsetof and type
k0kubun Sep 22, 2022
0c9dc01
Skip struct fields whose output differs
k0kubun Sep 22, 2022
4b97f1e
YJIT: Refactor into gen_push_frame (#6412)
jhawthorn Sep 22, 2022
4e40fdb
YJIT: add chain guards in `guard_two_fixnums` (#6422)
maximecb Sep 22, 2022
6e46bf1
Just a star [ci skip]
nobu Sep 22, 2022
a78c733
Revert "Revert "error.c: Let Exception#inspect inspect its message""
mame Sep 23, 2022
3ddab3a
[DOC] Housekeeping in iostreams doc (#6420)
BurdetteLamar Sep 23, 2022
7588f21
Allow changing conversion macro in MJIT bindgen
k0kubun Sep 23, 2022
912ea82
YJIT: Support Rust 1.58.1 for --yjit-stats on Arm (#6410)
k0kubun Sep 23, 2022
a74f4cd
Remove reference to __classid__
jhawthorn Sep 23, 2022
82ac4a2
Support using at toplevel in wrapped script
shioyama Aug 9, 2022
b0e3ee4
Suppress -Wtype-limits warnings on mjit_c.rb
k0kubun Sep 24, 2022
08476c4
Remove unneeded semicolons
k0kubun Sep 24, 2022
205c252
Reuse rb_method_call_kw function
S-H-GAMELINKS Sep 24, 2022
09ea4f3
Extract common code for coverage setup.
ioquatix Sep 23, 2022
81b919c
Add news for eval coverage.
ioquatix Sep 23, 2022
8e2c425
[ruby/bigdecimal] Improve documentation of BigDecimal#sign
mrzasa Jul 28, 2022
a95b741
[ruby/bigdecimal] Remove trailing whitespace.
ioquatix Sep 25, 2022
75cf29f
Rework `first_lineno` to be `int`.
ioquatix Sep 25, 2022
22af2e9
Rework vm_core to use `int first_lineno` struct member.
ioquatix Sep 25, 2022
85cc0ce
Use `int first_lineno` for binary format.
ioquatix Sep 25, 2022
dc7d929
Extract `RUBY_RELEASE_DATE` from also revision.h
nobu Sep 25, 2022
1481e68
Avoid type limits (#6435)
nobu Sep 26, 2022
d89f8a0
[ruby/rdoc] Fix ruby script in "test_parse_method_bracket" (https://g…
yui-knk Sep 26, 2022
e3cc1a6
Initialize Objective-C classes before fork() for macOS 13
kateinoigakukun Sep 23, 2022
b361bdc
[Bug #19021] Fix safe call w/ conditional assign
jhawthorn Sep 26, 2022
ecffc6a
Generate the revision.h before Makefile
nobu Sep 26, 2022
025b870
Add several new methods for getting and setting buffer contents. (#6434)
ioquatix Sep 26, 2022
a8ad22d
Suppress a warning on clang
shugo Sep 26, 2022
411d0ee
Update `IO::Buffer` read/write to use rb_thread_io_blocking_region. (…
ioquatix Sep 26, 2022
1c14e40
Fix `io/buffer.h` header guard.
ioquatix Sep 26, 2022
5b03964
Fix coderange calculation in String#b
rhenium Sep 26, 2022
2e88bca
string.c: don't create a frozen copy for str_new_shared
byroot Sep 26, 2022
9ddfd2c
This commit implements the Object Shapes technique in CRuby.
jemmaissroff Sep 23, 2022
830b5b5
* expand tabs. [ci skip]
matzbot Sep 26, 2022
aa2a428
Refactor str_substr and str_subseq
peterzhu2118 Sep 26, 2022
b39690d
Rename method name in keyword test from y to yo
jeremyevans Sep 26, 2022
06abfa5
Revert this until we can figure out WB issues or remove shapes from GC
tenderlove Sep 26, 2022
95d5b33
syntax_suggest moved under the ruby organization from zombocom
hsbt Sep 27, 2022
c35e924
[DOC] More on IO streams (#6445)
BurdetteLamar Sep 27, 2022
1a06bc9
[ruby/psych] Bump snakeyaml from 1.31 to 1.33
chadlwilson Sep 27, 2022
9d56d99
[ruby/timeout] Explicit add the timeout thread to default ThreadGroup
larskanis Sep 25, 2022
bcd30fb
Re-enable TZ test missed due to merge conflict.
voxik Sep 16, 2022
5d4048e
[DOC] More on IO streams (#6454)
BurdetteLamar Sep 27, 2022
8f7f12a
[rubygems/rubygems] fix: Gem::Platform.match handles String argument …
flavorjones Sep 19, 2022
28433e9
Change IncrCounter lowering on AArch64 (#6455)
kddnewton Sep 27, 2022
8fcbb79
YJIT: reverse configure.ac changes that disable `--yjit-stats` on Gra…
maximecb Sep 27, 2022
a58cbdd
YJIT: add assertion wrt label names (#6459)
maximecb Sep 27, 2022
b8e804e
[ruby/bigdecimal] Document precision=0 and ndigits=0 for converting f…
mrzasa Jul 29, 2022
b58710e
dbm and gdbm have been extracted gems.
hsbt Sep 28, 2022
cd77e71
[ruby/net-http] Remove ENVIRONMENT_VARIABLE_IS_MULTIUSER_SAFE
jeremyevans Aug 24, 2022
d12fce7
[ruby/date] Check time zone offset elements
nobu Sep 27, 2022
247d598
Install all file trees for lldb [ci skip]
nobu Sep 28, 2022
6f8d17e
Make string slices views rather than copies
peterzhu2118 Sep 27, 2022
28a572f
Fix bug when slicing a string with broken encoding
peterzhu2118 Sep 27, 2022
20e10a1
Merge remote-tracking branch 'upstream/master' into merge-from-upstream
chrisseaton Sep 28, 2022
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
  •  
  •  
  •  
3 changes: 2 additions & 1 deletion .cirrus.yml
Original file line number Diff line number Diff line change
Expand Up @@ -90,6 +90,7 @@ yjit_task:
matrix:
- CC: clang-12
configure: --enable-yjit=dev
rustup_init: --default-toolchain=1.58.1
- CC: gcc-11
configure: --enable-yjit
id_script: id
Expand All @@ -107,7 +108,7 @@ yjit_task:
install_rust_script:
- sudo apt-get update -y
- sudo apt-get install -y curl
- "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y"
- "curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y $rustup_init"
autogen_script: ./autogen.sh
configure_script: >-
source $HOME/.cargo/env && ./configure -C
Expand Down
11 changes: 0 additions & 11 deletions .github/CODEOWNERS

This file was deleted.

9 changes: 9 additions & 0 deletions .github/auto_request_review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
files:
'yjit*': [team:yjit]
'yjit/**/*': [team:yjit]
'doc/yjit/*': [team:yjit]
'bootstraptest/test_yjit*': [team:yjit]
'test/ruby/test_yjit*': [team:yjit]
'.github/workflows/yjit*': [team:yjit]
options:
ignore_draft: true
4 changes: 4 additions & 0 deletions .github/codeql/codeql-config.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,7 @@
name: "CodeQL config for the Ruby language"

languages: cpp

# syntax_suggest consumes an hour.
paths-ignore:
- lib/syntax_suggest
14 changes: 14 additions & 0 deletions .github/workflows/auto_request_review.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
name: Auto Request Review
on:
pull_request_target:
types: [opened, ready_for_review, reopened]
jobs:
auto-request-review:
name: Auto Request Review
runs-on: ubuntu-latest
steps:
- name: Request review based on files changes and/or groups the author belongs to
uses: necojackarc/auto-request-review@e08cdffa277d50854744de3f76230260e61c67f4 # v0.7.0, checking sha
with:
# scope: public_repo
token: ${{ secrets.MATZBOT_GITHUB_TOKEN }}
5 changes: 3 additions & 2 deletions .github/workflows/compilers.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ concurrency:
# environment variables (plus the "echo $GITHUB_ENV" hack) is to reroute that
# restriction.
env:
default_cc: clang-14
default_cc: clang-15
append_cc: ''

# -O1 is faster than -O3 in our tests... Majority of time are consumed trying
Expand Down Expand Up @@ -91,6 +91,7 @@ jobs:
# https://sourceware.org/annobin/annobin.html/Test-pie.html
TEST_ANNOCHECK_OPTS: "--skip-pie"
check: true
- { name: clang-16, env: { default_cc: clang-16 } }
- { name: clang-15, env: { default_cc: clang-15 } }
- { name: clang-14, env: { default_cc: clang-14 } }
- { name: clang-13, env: { default_cc: clang-13 } }
Expand Down Expand Up @@ -214,7 +215,7 @@ jobs:
name: ${{ matrix.entry.name }}
runs-on: ubuntu-latest
container:
image: ghcr.io/ruby/ruby-ci-image:${{ matrix.entry.container || matrix.entry.env.default_cc || 'clang-14' }}
image: ghcr.io/ruby/ruby-ci-image:${{ matrix.entry.container || matrix.entry.env.default_cc || 'clang-15' }}
options: --user root
if: ${{ !contains(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
env: ${{ matrix.entry.env || matrix.env }}
Expand Down
5 changes: 2 additions & 3 deletions .github/workflows/mingw.yml
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,6 @@ jobs:
- 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: |
Expand Down Expand Up @@ -116,7 +115,7 @@ jobs:
make update-gems

- name: make all
timeout-minutes: 20
timeout-minutes: 30
run: |
make

Expand All @@ -140,7 +139,7 @@ jobs:
make ${{ StartsWith(matrix.test_task, 'test/') && matrix.test_task || 'test-all' }}
env:
RUBY_TESTOPTS: >-
-j${{env.TEST_JOBS}} --retry --job-status=normal --show-skip --timeout-scale=1.5
--retry --job-status=normal --show-skip --timeout-scale=1.5
${{ matrix.test-all-opts }}
BUNDLER_VERSION:
if: ${{matrix.test_task == 'check' || matrix.test_task == 'test-all' || StartsWith(matrix.test_task, 'test/')}}
Expand Down
5 changes: 1 addition & 4 deletions .github/workflows/mjit-bindgen.yml
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,6 @@ jobs:
matrix:
include:
- task: mjit-bindgen
configure: '--enable-yjit=dev_nodebug'
- task: mjit-bindgen
arch: i686
fail-fast: false
env:
SETARCH: ${{ matrix.arch && format('setarch {0}', matrix.arch) }}
Expand Down Expand Up @@ -74,7 +71,7 @@ jobs:
env:
arch: ${{ matrix.arch }}
run: >-
$SETARCH ../src/configure -C --disable-install-doc --prefix=$(pwd)/install ${{ matrix.configure }}
$SETARCH ../src/configure -C --disable-install-doc --prefix=$(pwd)/install --enable-yjit=dev_nodebug
${arch:+--target=$arch-$OSTYPE --host=$arch-$OSTYPE}
- run: $SETARCH make incs
- run: $SETARCH make
Expand Down
29 changes: 15 additions & 14 deletions .github/workflows/ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -21,32 +21,33 @@ jobs:
make:
strategy:
matrix:
test_task: ["check", "test-syntax-suggest", "test-bundler-parallel", "test-bundled-gems"]
os:
- ubuntu-20.04
configure: ["", "cppflags=-DRUBY_DEBUG"]
# main variables included in the job name
test_task: [check]
configure: [cppflags=-DRUBY_DEBUG] # default to use more assertions
arch: ['']
# specify all jobs with `include` to avoid testing duplicated things
include:
- test_task: "check"
configure: ""
- test_task: check
- test_task: check
arch: i686
- test_task: "check"
configure: '' # test without -DRUBY_DEBUG as well
- test_task: check
configure: "--enable-shared --enable-load-relative"
skipped_tests: "TestGem#test_.*_from_binstubs.*"
continue-on-skipped_tests: true
- test_task: "test-all TESTS=--repeat-count=2"
- test_task: test-all TESTS=--repeat-count=2
- test_task: test-syntax-suggest
- test_task: test-bundler-parallel
- test_task: test-bundled-gems
fail-fast: false
env:
GITPULLOPTIONS: --no-tags origin ${{github.ref}}
RUBY_DEBUG: ci
SETARCH: ${{ matrix.arch && format('setarch {0}', matrix.arch) }}
runs-on: ${{ matrix.os || 'ubuntu-20.04' }}
runs-on: ubuntu-20.04
if: ${{ !contains(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
- name: Install libraries
Expand Down Expand Up @@ -120,7 +121,7 @@ jobs:
payload: |
{
"ci": "GitHub Actions",
"env": "${{ matrix.os }} / ${{ matrix.test_task }}${{ matrix.configure }}",
"env": "${{ github.workflow }} / ${{ matrix.test_task }} ${{ matrix.configure }}${{ matrix.arch }}",
"url": "https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }}",
"commit": "${{ github.sha }}",
"branch": "${{ github.ref }}".split('/').reverse()[0]
Expand Down
6 changes: 2 additions & 4 deletions .github/workflows/windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -128,14 +128,12 @@ jobs:
YACC: win_bison
- run: nmake test
timeout-minutes: 5
- run: nmake test-spec
timeout-minutes: 10
- 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: |
Expand Down
20 changes: 17 additions & 3 deletions .github/workflows/yjit-ubuntu.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,10 +59,16 @@ jobs:

- test_task: "test-bundled-gems"
configure: "--enable-yjit=dev"

- test_task: "yjit-bench"
configure: "--enable-yjit=dev"
yjit_bench_opts: "--yjit-stats"
env:
GITPULLOPTIONS: --no-tags origin ${{github.ref}}
RUN_OPTS: ${{ matrix.yjit_opts }}
YJIT_BENCH_OPTS: ${{ matrix.yjit_bench_opts }}
RUBY_DEBUG: ci
BUNDLE_JOBS: 8 # for yjit-bench
runs-on: ubuntu-20.04
if: ${{ !contains(github.event.head_commit.message, '[DOC]') && !contains(github.event.pull_request.labels.*.name, 'Documentation') }}
steps:
Expand Down Expand Up @@ -98,7 +104,7 @@ jobs:
- run: ./autogen.sh
working-directory: src
- name: Run configure
run: ../src/configure -C --disable-install-doc ${{ matrix.configure }}
run: ../src/configure -C --disable-install-doc --prefix=$(pwd)/install ${{ matrix.configure }}
- run: make incs
- run: make prepare-gems
if: ${{ matrix.test_task == 'test-bundled-gems' }}
Expand All @@ -111,18 +117,26 @@ jobs:
if: ${{ matrix.test_task == 'check' }}
- name: Enable YJIT through ENV
run: echo "RUBY_YJIT_ENABLE=1" >> $GITHUB_ENV
- run: make -s ${{ matrix.test_task }} RUN_OPTS="$RUN_OPTS"
- name: make ${{ matrix.test_task }}
run: make -s -j ${{ matrix.test_task }} RUN_OPTS="$RUN_OPTS" YJIT_BENCH_OPTS="$YJIT_BENCH_OPTS"
timeout-minutes: 60
env:
RUBY_TESTOPTS: "-q --tty=no"
TEST_BUNDLED_GEMS_ALLOW_FAILURES: ""
PRECHECK_BUNDLED_GEMS: "no"
continue-on-error: ${{ matrix.test_task == 'yjit-bench' }}
- name: Show ${{ github.event.pull_request.base.ref }} GitHub URL for yjit-bench comparison
run: echo "https://github.com/${BASE_REPO}/commit/${BASE_SHA}"
env:
BASE_REPO: ${{ github.event.pull_request.base.repo.full_name }}
BASE_SHA: ${{ github.event.pull_request.base.sha }}
if: ${{ matrix.test_task == 'yjit-bench' && startsWith(github.event_name, 'pull') }}
- uses: k0kubun/action-slack@v2.0.0
with:
payload: |
{
"ci": "GitHub Actions",
"env": "${{ matrix.os }} / ${{ matrix.test_task }}${{ matrix.configure }}",
"env": "${{ github.workflow }} / ${{ 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]
Expand Down
9 changes: 6 additions & 3 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -233,10 +233,13 @@ lcov*.info
/win32/*.ico

# MJIT
/rb_mjit_header.h
/mjit_config.h
/include/ruby-*/*/rb_mjit_min_header-*.h
/mjit_instruction.rb
/lib/mjit/instruction.rb
/mjit_config.h
/rb_mjit_header.h

# YJIT
/yjit-bench

# /wasm/
/wasm/tests/*.wasm
5 changes: 3 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,7 @@ env:
libncursesw5-dev:armhf
libreadline-dev:armhf
libssl-dev:armhf
libyaml-dev:armhf
linux-libc-dev:armhf
zlib1g-dev:armhf

Expand Down Expand Up @@ -170,9 +171,9 @@ before_script:
else
mkdir build
fi
- mkdir config_1st config_2nd
- mkdir config_1st config_2nd gems/src
- chmod -R a-w .
- chmod -R u+w build config_1st config_2nd
- chmod -R u+w build config_1st config_2nd gems/src
- cd build
- |-
case "$CC" in
Expand Down
31 changes: 28 additions & 3 deletions NEWS.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,12 +90,22 @@ Note that each entry is kept to a minimum, see links for details.
foo(k: 1)
```

* `eval` and related methods are able to generate code coverage.
[[Feature #19008]]

## Command line options

## Core classes updates

Note: We're only listing outstanding class updates.

* Encoding
* Encoding#replicate has been deprecated and will be removed in 3.3. [[Feature #18949]]
* The dummy `Encoding::UTF_16` and `Encoding::UTF_32` encodings no longer
try to dynamically guess the endian based on a byte order mark.
Use `Encoding::UTF_16BE/UTF_16LE` and `Encoding::UTF_32BE/UTF_32LE` instead.
This change speeds up getting the encoding of a String. [[Feature #18949]]

* Enumerator
* Enumerator.product has been added. Enumerator::Product is the implementation. [[Feature #18685]]

Expand Down Expand Up @@ -124,10 +134,13 @@ Note: We're only listing outstanding class updates.
* Proc#dup returns an instance of subclass. [[Bug #17545]]
* Proc#parameters now accepts lambda keyword. [[Feature #15357]]

* Process
* Added `RLIMIT_NPTS` constant to FreeBSD platform

* Regexp
* Regexp.new now supports passing the regexp flags not only as an Integer,
but also as a String Unknown flags raise errors. Otherwise, anything
other than `true`, `false`, `nil` or Integer will be warned.
but also as a String. Unknown flags raise ArgumentError.
Otherwise, anything other than `true`, `false`, `nil` or Integer will be warned.
[[Feature #18788]]

* Refinement
Expand All @@ -137,6 +150,16 @@ Note: We're only listing outstanding class updates.
* Set is now available as a built-in class without the need for `require "set"`. [[Feature #16989]]
It is currently autoloaded via the `Set` constant or a call to `Enumerable#to_set`.

* Socket
* Added the following constants for supported platforms.
* `SO_INCOMING_CPU`
* `SO_INCOMING_NAPI_ID`
* `SO_RTABLE`
* `SO_SETFIB`
* `SO_USER_COOKIE`
* `TCP_KEEPALIVE`
* `TCP_CONNECTION_INFO`

* String
* String#byteindex and String#byterindex have been added. [[Feature #13110]]
* Update Unicode to Version 14.0.0 and Emoji Version 14.0. [[Feature #18037]]
Expand Down Expand Up @@ -165,7 +188,7 @@ Note: We're only listing outstanding class updates.
* RubyGems 3.4.0.dev
* bigdecimal 3.1.2
* bundler 2.4.0.dev
* cgi 0.3.2
* cgi 0.3.3
* date 3.2.3
* error_highlight 0.4.0
* etc 1.4.0
Expand Down Expand Up @@ -292,3 +315,5 @@ The following deprecated APIs are removed.
[Feature #18788]: https://bugs.ruby-lang.org/issues/18788
[Feature #18809]: https://bugs.ruby-lang.org/issues/18809
[Feature #18481]: https://bugs.ruby-lang.org/issues/18481
[Feature #18949]: https://bugs.ruby-lang.org/issues/18949
[Feature #19008]: https://bugs.ruby-lang.org/issues/19008
4 changes: 4 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,6 +46,10 @@ to see the list of branches:
You may also want to use https://git.ruby-lang.org/ruby.git (actual master of Ruby source)
if you are a committer.

## How to build

see [Building Ruby](doc/contributing/building_ruby.md)

## Ruby home page

https://www.ruby-lang.org/
Expand Down
Loading