52806 Commits

Author SHA1 Message Date
k0kubun
6c2014768e mjit_worker.c: don't use _one for now
I'm planning to use _one later, but it may be doubly registered by
switching `stop_worker_p` now and so we should not use _one for now.

Otherwise stale job may reject new job registration and
copy_cache_from_main_thread may wait forever.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65571 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 07:30:37 +00:00
nobu
e0a3558668 Makefile.in: do not expand MJIT_CC if cross compiling
* Makefile.in (mjit_config.h): expand MJIT_CC only if native
  build, the path on cross compiling host is useless.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65570 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 07:28:11 +00:00
k0kubun
7a2263fb38 mjit_worker.c: strictly control MJIT copy job
-available region. reducing risk of SEGV in mjit_copy_job_handler() like
http://ci.rvm.jp/results/trunk-mjit@silicon-docker/1446117

I'm not sure which exact part is causing "[BUG] Segmentation fault at 0x0000000000000008"
on `(mjit_copy_job_handler+0x12) [0x564a6c4ce632] /home/ko1/ruby/src/trunk-mjit/mjit.c:26`...

mjit.c: ditto

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65569 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 07:22:25 +00:00
nobu
9f17712d2c Makefile.in: convert MJIT_CC to Windows path
* Makefile.in (mjit_config.h): convert MJIT_CC to Windows path on
  mingw.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65568 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 07:03:24 +00:00
ko1
09821dd2a5 Fix TracePoint for nested iseq loaded from binary [Bug#14702]
When loading iseq from binary while a TracePoint is on, we need to
recompile instructions to their "trace_" variant. Before this commit
we only recompiled instructions in the top level iseq, which meant
that TracePoint was malfunctioning for code inside module/class/method
definitions.

* compile.c: Move rb_iseq_init_trace to rb_ibf_load_iseq_complete.
  It is called on all iseqs during loading.

* test_iseq.rb: Test that tracepoints fire within children iseq when
  using load_from_binary.

This patch is from: Alan Wu <XrXr@users.noreply.github.com>


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65567 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 06:36:51 +00:00
nobu
b11b804f8f Revert "mjit_build_dir: separate MJIT_BUILD_DIR"
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65566 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 05:14:36 +00:00
shyouhei
a5400ebbd5 do not delete function declarations in case of non-sanitizing builds
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65565 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 05:07:54 +00:00
shyouhei
cbb6a3a6aa annotate functions to blacklist MSAN
In these functions we are intentionally reading memory address
not owned by us.  These reads should not be diagnosed.

See also [Bug #8680]
See also https://travis-ci.org/ruby/ruby/jobs/451202718



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 05:06:20 +00:00
nobu
a39080f59c mjit_build_dir: separate MJIT_BUILD_DIR
* Makefile.in (mjit_build_dir.so): separate MJIT_BUILD_DIR to
  eliminate the feature for test-all after installation.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65563 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 04:13:48 +00:00
nobu
a4b73e7e9f Makefile.in: make MJIT_CC_COMMON an absolute path
* Makefile.in (mjit_config.h): expand MJIT_CC_COMMON path to
  mitigate potential security risks.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65562 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 04:13:47 +00:00
nobu
67de434219 configure.ac: insert DLDSHARED
* configure.ac (DLDSHARED): `.dylib` (created by `-dynamiclib`)
  and `.bundle` (created by `-dynamic -bundle`) on macOS are
  different.  `LIBRUBY_LDSHARED` should be the former always.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65561 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 03:32:57 +00:00
usa
f740687e78 Fixed compile error introduced at r65558
* internal.h (ATTRIBUTE_NO_ADDRESS_SAFETY_ANALYSIS): of course, parens around
  function signature in its definition is syntax error.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65560 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 03:18:23 +00:00
shyouhei
1a83433f3d .travis.yml: FIBER_USE_NATIVE=0
I remember this configuration unveiled several bugs before.
Better check it occasionally.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65559 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 03:06:33 +00:00
shyouhei
16f5b18b7a gc.c: move ASAN check to configure
Availability of attributes are checked in configure these days,
rather than compiler macros.  Also
__attribute__((no_address_safety_analysis)) is considered
deprecated in both GCC and Clang.  Use the current best practice
if available.  See also:

https://gcc.gnu.org/onlinedocs/gcc/Common-Function-Attributes.html
https://clang.llvm.org/docs/AddressSanitizer.html


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65558 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 02:57:28 +00:00
shyouhei
ee7af44257 .travis.yml: allow UBSAN to fail
Forgot this line, sorry! 


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65557 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 01:45:09 +00:00
shyouhei
19adb8082a .travis.yml: add cron-only builds
Inspired by [GH-1984], let us add some tests that run only
once a day.  These configurations are either slow to compile
or slow to run.  But I think they are worth done occasionally.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-06 01:36:20 +00:00
svn
cc508b544d * expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65555 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 23:06:58 +00:00
naruse
fdcc9c9e43 Don't set throw data as cause [Bug #15282]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 23:06:50 +00:00
normal
c076d6009c thread.c (rb_wait_for_single_fd): no point initializing pollfd.revents
poll(2) and ppoll(2) implementations need to check and write to
.revents on the initial scan, anyways.  So any poll/ppoll call
which returns a positive result can be expected to have an
initialized .revents value.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65553 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 22:56:57 +00:00
svn
de75372029 * 2018-11-06
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 17:27:12 +00:00
nobu
d05e04b825 Relax MJIT_BUILD_DIR restriction
* mjit.c (init_header_filename): sticky-mode directory probably
  would be less unsafe even if it is not owned.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65551 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 17:27:10 +00:00
svn
62ebf35592 * expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 08:02:31 +00:00
ko1
05711c45af use RSTRUCT_CONST_PTR carefully.
* struct.c: should not use `RSTRUCT_CONST_PTR` with method dispatch
  because pointers can be obsolete after method dispatch. `rb_equal()`
  and so on can dispatch Ruby's methods.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 08:02:29 +00:00
kazu
972cf8c91e Fix up r65505 [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65548 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 07:01:49 +00:00
kazu
ed44d40ba7 Sort in alphabetical order [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 07:01:47 +00:00
kazu
c8cbae685f Fix a typo [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 06:02:42 +00:00
nobu
fc8bda6ff7 Respect explicitly given MJIT_CC
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65545 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 02:57:06 +00:00
nobu
002e0ca428 Create MJIT header with strict permission
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65544 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 02:25:46 +00:00
svn
5164e2e43a * expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65543 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 02:14:00 +00:00
yui-knk
ce798d08de Implement RubyVM::AST.of [Feature #14836]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 02:13:45 +00:00
nobu
6d497629b2 More verbose message at unsafe header
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65541 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-05 02:05:12 +00:00
naruse
fc1f476b61 addr2line.c uses c99ism
https://travis-ci.org/ruby/ruby/jobs/450505006

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65540 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 22:36:05 +00:00
sorah
8b8c374c45 Fix RubyGems extension build failure after r65470
Port of upstream patch https://github.com/rubygems/rubygems/pull/2457

Since r65470 (Upstream: https://github.com/rubygems/rubygems/pull/2441),
builds of extension gem had always failed under really_verbose mode.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65539 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 15:39:00 +00:00
svn
052e45f1e2 * 2018-11-05
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 15:14:44 +00:00
naruse
e6d63ac606 Use symtab if there's no .dSYM file
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65537 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 15:14:42 +00:00
nobu
ef94a94d7d Check MJIT_BUILD_DIR strictly
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65536 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 12:46:50 +00:00
nobu
c111c42ba2 MJIT_CC should not use CC_WRAPPER
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65535 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 12:24:03 +00:00
stomar
2c62b3fbc7 hash.c: [DOC] add docs for ENV.{filter,filter!}
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65534 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 11:46:49 +00:00
stomar
7633552b1d hash.c: [DOC] fix wrong cross-references
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65533 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 11:45:59 +00:00
stomar
45868d20f4 hash.c: [DOC] add missing `block' in call-seq's
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65532 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 11:45:11 +00:00
stomar
6928faa6ab struct.c: [DOC] add docs for Struct#filter
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 11:44:13 +00:00
stomar
83e459b2f3 hash.c: [DOC] add docs for Hash#{filter,filter!}
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65530 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 11:43:09 +00:00
stomar
b3adc0c564 hash.c: [DOC] improve Hash#{select!,keep_if} docs
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65529 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 11:41:52 +00:00
stomar
139d9d819c array.c: [DOC] add docs for Array#{filter,filter!}
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65528 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 11:40:32 +00:00
stomar
bd20f031db array.c: [DOC] improve Array#{select,select!,keep_if} docs
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 11:39:28 +00:00
nobu
f167ff47a6 Hide Time::TM as Time::tm
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 02:09:01 +00:00
nobu
125e9ef747 Refine Timezone class in test-spec
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65525 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 02:02:28 +00:00
svn
356a73e7f2 * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65524 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 01:14:52 +00:00
hsbt
2fbbbba5bd Merge upstream changes from 2-0-stable branch of bundler/bundler.
* It update bundler 2 mode to bundler 3.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65523 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 01:14:48 +00:00
nobu
3e063ca7ae complex.c: rb_dbl_complex_polar_pi
* complex.c (rb_dbl_complex_polar_pi): suffixed with _pi to
  clarify that `ang` is not radian, but multiplied by PI.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65522 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-04 00:22:13 +00:00