aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* fix ivar with shareable objects issueKoichi Sasada2020-12-124-42/+105
| | | | | Instance variables of sharable objects are accessible only from main ractor, so we need to check it correctly.
* Let Fiber#raise work with transferring fibersnicholas a. evans2020-12-123-4/+58
| | | | | | This automatically choosess whether to use transfer on a transferring fiber or resume on a yielding fiber. If the fiber is resuming, it raises a FiberError.
* * 2020-12-12 [ci skip]git2020-12-121-1/+1
|
* Remove unused link [ci skip]Kazuhiro NISHIYAMA2020-12-121-1/+0
|
* Strip trailing spaces [ci skip]Nobuyoshi Nakada2020-12-112-2/+2
|
* [ruby/reline] Fix breaking to input Emoji with ZWJ.ima1zumi2020-12-112-0/+67
| | | | https://github.com/ruby/reline/commit/f21dfdbb11
* RDoc states that Process::Status.wait returns nil if cannot waitNobuyoshi Nakada2020-12-112-25/+20
|
* [DOC] Fixed the RDoc location of Process::Status.wait [ci skip]Nobuyoshi Nakada2020-12-111-36/+37
|
* Allow an MJIT worker to show a backtrace on SEGVTakashi Kokubun2020-12-101-1/+2
| | | | | An MJIT worker thread doesn't have ec, and it's required for SDR() and rb_backtrace_print_as_bugreport(). Therefore it must be checked.
* Save a core file from bootstraptestTakashi Kokubun2020-12-101-1/+12
|
* Removed needless gemspec of webrickHiroshi SHIBATA2020-12-111-76/+0
|
* Bump webrick-1.7.0 for version management with ruby/webrick.Hiroshi SHIBATA2020-12-111-1/+1
|
* [DOC] Moved RDoc of abort [ci skip]Nobuyoshi Nakada2020-12-111-11/+12
|
* addr2line.c: support debuglink by build_idYusuke Endoh2020-12-111-3/+59
| | | | | | | | | | | | | Currently, addr2line.c supports only one path format of debuglink: "/usr/lib/debug/usr/bin/ruby.debug". However, recent debian packages seem to use another format by build_id: "/usr/lib/debug/.build-id/ab/cdef1234.debug". https://github.com/Debian/debhelper/blob/5d1bb29841043d8e47ebbdd043e6cd086cad508e/dh_strip#L292 https://github.com/Debian/debhelper/blob/5d1bb29841043d8e47ebbdd043e6cd086cad508e/dh_strip#L353 This changeset makes ruby backtrace support the second format.
* Link zlib always if availableYusuke Endoh2020-12-111-3/+1
| | | | | | | | | | | | | | | Major Linux distribution packages including Debian, Ubuntu, and Fedora use `--compress-debug-sections=no` to build ruby, and then extract and compress debug symbols as separate files. However, the configure option makes ruby not link zlib, thus the generated binary cannot uncompress the compressed separate debug symbol files, and fails to show C level backtrace when a critical error like segfault occurs. This change makes ruby always link zlib if it is available so that it can show C level backtrace correctly. Related: Debian packages require https://github.com/ruby/ruby/pull/3627 to load debug symbol files.
* Exclude parenthesized function declarations such as NORETURNNobuyoshi Nakada2020-12-111-1/+1
| | | | Fixes https://github.com/ruby/ruby/pull/3883
* show deprecation warning correctly for lambda(&b)Koichi Sasada2020-12-112-3/+50
| | | | | | | | | lambda(&b) where b is given block of method (like: def foo(&b)) should warn correctly. [Feature #17361] Also labmda(&labmda_block) or lambda(&:to_s) (Symbol#to_proc) should not warn (but I'm not sure who cares about it).
* add RUNOPT and RUNOPT0 for dev rules.Koichi Sasada2020-12-111-6/+6
| | | | | | | | | | run, runruby, ... accept RUNOPT and RUNOPT0 configuration to pass some commandline argument like that: $(BTESTRUBY) $(RUNOPT0) $(TESTRUN_SCRIPT) $(RUNOPT) RUNOPT0 is options for ruby interpreter (-w, -v, ...) RUNOPT is options for the script (ARGV/ARGF)
* Remove unimplemented parameter from commentMasaki Matsushita2020-12-111-2/+1
| | | | :resolv_timeout of TCPSocket.new is not implemented for now.
* revert da3bca513f437b05b3953c3712ff48621fc5e008Koichi Sasada2020-12-112-60/+13
| | | | | | | It seems introduce critical problems. Now I could not find out the issue. http://ci.rvm.jp/results/trunk-test@ruby-sky1/3286048
* Import fiddle-1.0.4 (#3860)Kenta Murata2020-12-1123-252/+1816
| | | | | | | | I don't use tool/sync_default_gem.rb because the last sync was incomplete. Co-authored-by: Hiroshi SHIBATA <hsbt@ruby-lang.org> Co-authored-by: Alan Wu <XrXr@users.noreply.github.com> Co-authored-by: sinisterchipmunk <sinisterchipmunk@gmail.com> Co-authored-by: Sutou Kouhei <kou@clear-code.com>
* Unfortunately getinstancevariable was still not leafTakashi Kokubun2020-12-101-0/+2
| | | | https://github.com/ruby/ruby/runs/1533401436
* Reintroduce the fix againTakashi Kokubun2020-12-101-1/+1
|
* Fix the path properlyTakashi Kokubun2020-12-101-1/+1
| | | | :disappointed:
* Try fixing the -I positionTakashi Kokubun2020-12-101-1/+1
| | | | | https://github.com/ruby/ruby/runs/1532260149 :thinking:
* Make ruby -We the same as ruby -W -eJeremy Evans2020-12-102-2/+4
| | | | | | This changes the behavior, which I'm not sure is acceptable. However, it's odd to allow an option to be combined, but change the behavior of the option when combined.
* Make getinstancevariable a leaf instructionJeremy Evans2020-12-101-2/+0
| | | | It can no longer issue a warning.
* Remove the uninitialized instance variable verbose mode warningJeremy Evans2020-12-107-24/+12
| | | | | | | | | This speeds up all instance variable access, even when not in verbose mode. Uninitialized instance variable warnings were rarely helpful, and resulted in slower code if you wanted to avoid warnings when run in verbose mode. Implements [Feature #17055]
* Actions mingw - add tool/test for WEBrick in spec tests (#3882)MSP-Greg2020-12-101-1/+1
| | | Some spec tests require WEBrick, and the spec tests are run from install with the MinGW CI.
* Show C backtrace appropriately at core dump for GCC 8 or laterYusuke Endoh2020-12-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | When ruby is compiled by GCC 8 or later, some frames of C level backtrace information lacks. ``` $ ./miniruby -e '1.times { Process.kill(:SEGV, $$) }' ... -- C level backtrace information ------------------------------------------- /home/mame/work/ruby-gcc-9/miniruby(rb_vm_bugreport+0x611) [0x558a5fdcbc21] ../ruby/vm_dump.c:758 [0x558a5fbc789a] /home/mame/work/ruby-gcc-9/miniruby(sigsegv+0x4d) [0x558a5fd1eaed] ../ruby/signal.c:959 /lib/x86_64-linux-gnu/libpthread.so.0(__restore_rt+0x0) [0x7f687e6713c0] /lib/x86_64-linux-gnu/libc.so.6(kill+0xb) [0x7f687e31355b] ../sysdeps/unix/syscall-template.S:78 /home/mame/work/ruby-gcc-9/miniruby(rb_f_kill+0x350) [0x558a5fd1fe60] ../ruby/signal.c:480 [0x558a5fda50d3] [0x558a5fdb085c] [0x558a5fdb0fe7] [0x558a5fdbae1a] [0x558a5fdaf484] /home/mame/work/ruby-gcc-9/miniruby(rb_yield_1+0x29f) [0x558a5fdb2fbf] ../ruby/vm.c:1265 /home/mame/work/ruby-gcc-9/miniruby(int_dotimes+0x5c) [0x558a5fc72f2c] ../ruby/numeric.c:5198 [0x558a5fda50d3] [0x558a5fdb085c] [0x558a5fdb0fe7] [0x558a5fdbaf21] [0x558a5fdaf484] /home/mame/work/ruby-gcc-9/miniruby(rb_ec_exec_node+0xed) [0x558a5fbcc4fd] ../ruby/eval.c:317 /home/mame/work/ruby-gcc-9/miniruby(ruby_run_node+0x4f) [0x558a5fbd110f] ../ruby/eval.c:375 /home/mame/work/ruby-gcc-9/miniruby(main+0x73) [0x558a5fb2c083] ../ruby/main.c:50 ``` By this one-line change, it shows all locations. ``` $ ./miniruby -e '1.times { Process.kill(:SEGV, $$) }' ... -- C level backtrace information ------------------------------------------- /home/mame/work/ruby-gcc-9/miniruby(rb_print_backtrace+0x11) [0x558247adec21] ../ruby/vm_dump.c:758 /home/mame/work/ruby-gcc-9/miniruby(rb_vm_bugreport) ../ruby/vm_dump.c:956 /home/mame/work/ruby-gcc-9/miniruby(rb_bug_for_fatal_signal+0x15a) [0x5582478da89a] ../ruby/error.c:773 /home/mame/work/ruby-gcc-9/miniruby(sigsegv+0x4d) [0x558247a31aed] ../ruby/signal.c:959 /lib/x86_64-linux-gnu/libpthread.so.0(__restore_rt+0x0) [0x7f82202f73c0] /lib/x86_64-linux-gnu/libc.so.6(kill+0xb) [0x7f821ff9955b] ../sysdeps/unix/syscall-template.S:78 /home/mame/work/ruby-gcc-9/miniruby(rb_f_kill+0x350) [0x558247a32e60] ../ruby/signal.c:480 /home/mame/work/ruby-gcc-9/miniruby(vm_call_cfunc_with_frame+0x123) [0x558247ab80d3] ../ruby/vm_insnhelper.c:2821 /home/mame/work/ruby-gcc-9/miniruby(vm_call_method_each_type+0x7c) [0x558247ac385c] ../ruby/vm_insnhelper.c:3324 /home/mame/work/ruby-gcc-9/miniruby(vm_call_method+0xc7) [0x558247ac3fe7] ../ruby/vm_insnhelper.c:3428 /home/mame/work/ruby-gcc-9/miniruby(vm_sendish+0x14) [0x558247acde1a] ../ruby/vm_insnhelper.c:4412 /home/mame/work/ruby-gcc-9/miniruby(vm_exec_core) ../ruby/insns.def:789 /home/mame/work/ruby-gcc-9/miniruby(rb_vm_exec+0x1a4) [0x558247ac2484] ../ruby/vm.c:2165 /home/mame/work/ruby-gcc-9/miniruby(rb_yield_1+0x29f) [0x558247ac5fbf] ../ruby/vm.c:1265 /home/mame/work/ruby-gcc-9/miniruby(int_dotimes+0x5c) [0x558247985f2c] ../ruby/numeric.c:5198 /home/mame/work/ruby-gcc-9/miniruby(vm_call_cfunc_with_frame+0x123) [0x558247ab80d3] ../ruby/vm_insnhelper.c:2821 /home/mame/work/ruby-gcc-9/miniruby(vm_call_method_each_type+0x7c) [0x558247ac385c] ../ruby/vm_insnhelper.c:3324 /home/mame/work/ruby-gcc-9/miniruby(vm_call_method+0xc7) [0x558247ac3fe7] ../ruby/vm_insnhelper.c:3428 /home/mame/work/ruby-gcc-9/miniruby(vm_sendish+0x14) [0x558247acdf21] ../ruby/vm_insnhelper.c:4412 /home/mame/work/ruby-gcc-9/miniruby(vm_exec_core) ../ruby/insns.def:770 /home/mame/work/ruby-gcc-9/miniruby(rb_vm_exec+0x1a4) [0x558247ac2484] ../ruby/vm.c:2165 /home/mame/work/ruby-gcc-9/miniruby(rb_ec_exec_node+0xed) [0x5582478df4fd] ../ruby/eval.c:317 /home/mame/work/ruby-gcc-9/miniruby(ruby_run_node+0x4f) [0x5582478e410f] ../ruby/eval.c:375 /home/mame/work/ruby-gcc-9/miniruby(main+0x73) [0x55824783f083] ../ruby/main.c:50 ``` Details: In short, it is an uninitialized variable bug. Until GCC 7, all function locations are represented by a pair of DW_AT_low_pc and DW_AT_high_pc in DWARF information. But since GCC 8, some functions are split to multiple chunks, which are represented by DW_AT_ranges. DW_AT_ranges are represented as offsets from a base address. According to DWARF specification, it is the base address of the compilation unit, but GCC seems to use zero as default. The function "di_read_cu" in addr2line.c had a comment about the fact. However, the base address wasn't initialized as zero.
* * 2020-12-11 [ci skip]git2020-12-111-1/+1
|
* Suppress a "clobbered" warning by gcc on macOSNobuyoshi Nakada2020-12-111-4/+4
|
* Fix a link [ci skip]Kazuhiro NISHIYAMA2020-12-101-0/+1
|
* include/ruby/memory_view.h: fix the return type of ↵Kenta Murata2020-12-101-1/+1
| | | | rb_memory_view_prepare_item_desc
* include/ruby/memory_view.h: fix typoKenta Murata2020-12-101-1/+1
|
* Use `abort(message)` instead of `puts` and `exit`Kazuhiro NISHIYAMA2020-12-104-8/+4
|
* Add connect_timeout to TCPSocketMasaki Matsushita2020-12-1010-20/+48
| | | | | | Add connect_timeout to TCPSocket.new in the same way as Socket.tcp. Closes [Feature #17187]
* Fixed the test failures called WEBrick.new directlyHiroshi SHIBATA2020-12-101-5/+5
|
* ObjectSpace._id2ref should not support unshareableKoichi Sasada2020-12-102-1/+22
| | | | | | ObjectSpace._id2ref(id) can return any objects even if they are unshareable, so this patch raises RangeError if it runs on multi-ractor mode and the found object is unshareable.
* remove bz2NARUSE, Yui2020-12-101-7/+1
|
* Unpoison freelist to chainNobuyoshi Nakada2020-12-101-0/+1
|
* Right size literal regular expression buffers on compileLourens Naudé2020-12-101-0/+20
|
* Added help message for gem i webrick in rdocHiroshi SHIBATA2020-12-102-2/+13
|
* Added help message for gem i webrick in gem server commandHiroshi SHIBATA2020-12-101-1/+7
|
* Completely removed webrickHiroshi SHIBATA2020-12-103-4/+0
|
* Added help message for gem i webrick in un.rbHiroshi SHIBATA2020-12-101-1/+6
|
* webrick was removed from ruby repoHiroshi SHIBATA2020-12-109-196/+0
|
* Promote webrick to bundled gemsHiroshi SHIBATA2020-12-105-7/+4
|
* Added tool/lib into test-spec loadpathHiroshi SHIBATA2020-12-101-1/+1
|
* Move webrick library into internal test toolchainHiroshi SHIBATA2020-12-1061-0/+0
|