52987 Commits

Author SHA1 Message Date
marcandre
a1f22c4f1c lib/matrix.rb: Alias antisymmetric? with skew_symmetric?
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65502 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-02 17:52:05 +00:00
svn
5a5bf99332 * 2018-11-03
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-02 17:51:57 +00:00
marcandre
55961ac9d7 Revert "Matrix: Add #reflexive? method. [Fix GH-1730]"
This reverts commit 19fe6552c456e41c0b85816806399ca1609255c0.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-02 17:51:56 +00:00
naruse
df58e74e02 Add timeout
it breaks armv7 CI.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65499 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-02 13:30:48 +00:00
k0kubun
119068f90c README.md: add wercker status badge [ci skip]
and show trunk branch's build status for travis as well

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65498 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-02 12:21:59 +00:00
svn
2337f0f3ac * 2018-11-02
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-02 11:40:46 +00:00
k0kubun
6e9703b011 mjit_worker.c: do no access pointer after free
When we return there, `unit` is already freed.
This is detected by coverity scan.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65496 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-02 11:40:43 +00:00
normal
5de7b3b4f2 thread_pthread.c (native_ppoll_sleep): new eventfd (or pipe) for ubf
Relying on ubf_select + ubf_list for main thread is not
guaranteed to wake a process up as it does not acquire
sigwait_fd and all other threads may be sleeping.
native_cond_sleep and the sigwait_fd path are immune to TOCTOU
issues, but native_ppoll_sleep may have its wakeup stolen
by sigwait_fd sleeper and the RUBY_VM_INTERRUPTED check is
insufficient.

Note: for pthreads platforms without POSIX timers, this becomes
more expensive than Ruby 2.5, as six pipe FDs come into use.
Linux is best off with only two descriptors for eventfd.

[ruby-core:89655]
cf. http://ci.rvm.jp/results/trunk-mjit@silicon-docker/1437559
    http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/1437673

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65495 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 14:10:47 +00:00
k0kubun
f6d44b59c6 wercker.yml: stop allowing webrick failure
Failure seems no longer reproductive recently...

Also I wrote a comment about this complicated test matrix and improved
parallelism a little more again.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65494 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 13:49:33 +00:00
svn
cc7fcbbc25 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 08:53:53 +00:00
ko1
c39797e872 introduce USE_TRANSIENT_HEAP to enable/disable theap.
* include/ruby/ruby.h: intrdocue `USE_TRANSIENT_HEAP` macro
  to enable/disable transient heap.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65492 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 08:53:44 +00:00
ko1
dcd0346265 add dependencies to transient_heap.h.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65491 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 08:15:42 +00:00
svn
570979499f * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65490 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 07:49:07 +00:00
k0kubun
187b5e7176 TestDelegateClass.rb: skip test_frozen for --jit-wait
for now. Investigating.
https://app.wercker.com/ruby/ruby/runs/mjit-test2/5bda979a191eda000655a8d2?step=5bda9fe4591ca80007653f64

wercker.yml: improve parallelism again.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65489 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 07:49:06 +00:00
kazu
f83b08755d Fix call-seq of OpenSSL.fips_mode and WIN32OLE_METHOD#name [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 07:25:50 +00:00
kazu
504fc28fc7 Fix call-seq of Encoding::Converter#putback [ci skip]
[Fix GH-1999]

From: Takayuki Matsubara <takayuki.1229@gmail.com>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 06:36:04 +00:00
k0kubun
992f6f940e wercker.yml: improve parallelism more
mjit-test2 is taking more time now.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 06:03:29 +00:00
usa
c4cc4725ec Remove wrong spec.
[Bug#15067] [ruby-core:88828]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 05:19:16 +00:00
k0kubun
a140e17f12 wercker.yml: improve CI step message [ci skip]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65484 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 05:17:08 +00:00
k0kubun
cab1e6bf01 wercker.yml: change pipeline names
because the name "-wait" is no longer distinguishing these pipelines

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 05:03:59 +00:00
k0kubun
44c39702fb wercker.yml: delete obsoleted test definition
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 04:46:46 +00:00
k0kubun
22fa141d05 wercker.yml: improve parallelism of test-mjit and test-mjit-wait
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65481 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 04:43:40 +00:00
k0kubun
e31864a8a0 test_win32ole_event.rb: retry #test_s_new_loop with sleep
It seems to fail randomly:
https://ci.appveyor.com/project/ruby/ruby/builds/19963142/job/8gaxepksa0i3b998

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 04:20:26 +00:00
ko1
0b16758b04 fix WB miss.
* hash.c (linear_copy): remember a hash object to mark pointing objects.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 02:50:35 +00:00
k0kubun
bd68968d80 wercker.yml: harder test-mjit-wait testing
Currently TracePoint enablement may cancel all JITs. So for now,
separating test executions would reveal more failures.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 02:50:10 +00:00
k0kubun
f1d545a76f mjit_worker.c: emphasize free_list of compact_units [ci skip]
In https://bugs.ruby-lang.org/issues/14867#note-98, it's considered
useless at once. So I emphasized the necessity of it in the comment.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-11-01 01:47:26 +00:00
svn
1fb934e29d * 2018-11-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 23:55:24 +00:00
normal
143776f6fe mjit: get rid of rb_mjit_unit_node and use ccan/list
rb_mjit_unit can either exist in unit_queue or active_units, but
not both.  This will make state transitions for event-based MJIT
process management easier.

v2: recheck unit->iseq after GC wakeup

The iseq may be GC-ed while we were waiting for it since we
delete the unit from unit_queue during get_from_list

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 23:55:22 +00:00
k0kubun
883f93a12e Revert "revert r65471 and include Eric's patch as well"
This reverts commit ff5dc2cbbf9e7b67c8579ef166bf6a4755507304.

Deadlock: http://ci.rvm.jp/results/trunk-mjit@silicon-docker/1438883

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 13:12:39 +00:00
k0kubun
ff5dc2cbbf revert r65471 and include Eric's patch as well
https://bugs.ruby-lang.org/issues/14867#note-112

I wanna touch similar places. To avoid our conflict, let me merge Eric's patch earlier.
Let's watch trunk-mjit / trunk-mjit-wait CIs.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 12:21:55 +00:00
naruse
5bc93ec743 Use C90 comments
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 11:08:07 +00:00
normal
dc8a744d6e Revert "mjit: get rid of rb_mjit_unit_node and use ccan/list"
This reverts commit c5177fa8464ac304547e384583f9c287e124d34a. r65468

Many CI failures like:
 http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/1438415

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 06:44:42 +00:00
hsbt
3e047420d6 Merge upstream from rubygems/rubygems master branch.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 03:23:30 +00:00
shyouhei
6f5eb28507 explicit cast to void* required for %p
No automatic type promotion is expected for variadic arguments.
You have to do it by hand.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 03:19:37 +00:00
normal
c5177fa846 mjit: get rid of rb_mjit_unit_node and use ccan/list
rb_mjit_unit can either exist in unit_queue or active_units, but
not both.  This will make state transitions for event-based MJIT
process management easier.

[ruby-core:89654]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 03:02:01 +00:00
nobu
0c6edda08c parse.y: last node of NODE_ARRAY
* parse.y (heredoc_dedent): manage the last node of NODE_ARRAY,
  when concatenating dedented literals.
  [ruby-core:89649] [Bug #15272]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65467 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 02:57:30 +00:00
ko1
2c62beb6b6 remove '//' style comments.
* variable.c (obj_ivar_set): remove '//' style comments pointed out by the
  following build log: https://travis-ci.org/ruby/ruby/jobs/448551951


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 02:39:08 +00:00
normal
89aaf7db9e thread_pthread.c (ubf_select): avoid deadlock on contention
vm->gvl.lock can be held by another thread, we must not wait
on it when called by the MJIT worker thread when it migrates
work to another thread.  ubf_select is designed to do retrying
anyways, so it has no obligation to wake up a timer thread.

cf.  http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/1437880

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 02:31:15 +00:00
ko1
ce9911c483 remove '//' style comments.
* hash.c: remove '//' style comments pointed out by the following
  build log: https://travis-ci.org/ruby/ruby/jobs/448551951


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 02:06:33 +00:00
ko1
c608b2707b add casts.
* gc.c (rb_raw_obj_info): fix type mismatch specified by the following
  build log: https://travis-ci.org/ruby/ruby/jobs/448634481


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 01:36:39 +00:00
shyouhei
9bc48f1d05 .travis.yml: mandate -ansi check
Seems it is failing to compile right now; make it mandatory
so that other devs can be aware of it.

Will revert this change once the source code gets stable.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 00:53:43 +00:00
hsbt
b891d95e85 Removed control characters from gemspec.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-31 00:13:56 +00:00
nobu
a769027f79 parse.y: last location from bison
* parse.y (command): set the last location from the location
  managed by bison, so that other nodes are not needed.
  [ruby-core:89648] [Bug #15271]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30 23:43:13 +00:00
k0kubun
a4cfd15a73 revert r65441
I could collect 2 test failure information:
https://app.wercker.com/ruby/ruby/runs/test-mjit-wait/5bd8a253191eda0006545d47?step=5bd8a29387436a0006842ef0
https://app.wercker.com/ruby/ruby/runs/test-mjit-wait/5bd8c6e0191eda0006547273?step=5bd8c71a591ca8000756f4a3

I'll skip this again to make it functional as CI

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30 23:16:16 +00:00
ko1
3579675670 fix type.
* internal.h (RHASH_ARRAY_SIZE_RAW): should be `int` because
  it returns n<=8.

* hash.c (RHASH_ARRAY_BOUND_RAW): ditto.

* hash.c (RHASH_ARRAY_SIZE_RAW): remove a duplicated definition.

* hash.c (linear_keys, linear_values): return `long`.

* hash.c (linear_keys): fix initialize expression of `key_end`.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30 22:55:31 +00:00
ko1
3bdd8e74f3 update NEWS about theap
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30 22:24:35 +00:00
ko1
870363886f fix type.
* string.c (rb_str_format_m): should pass `int`.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30 22:16:26 +00:00
svn
d4f1187d31 * remove trailing spaces, expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30 22:12:12 +00:00
ko1
8f675cdd00 support theap for T_HASH. [Feature #14989]
* hash.c, internal.h: support theap for small Hash.
  Introduce RHASH_ARRAY (li_table) besides st_table and small Hash
  (<=8 entries) are managed by an array data structure.
  This array data can be managed by theap.
  If st_table is needed, then converting array data to st_table data.

  For st_table using code, we prepare "stlike" APIs which accepts hash value
  and are very similar to st_ APIs.

  This work is based on the GSoC achievement
  by tacinight <tacingiht@gmail.com> and refined by ko1.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30 22:11:51 +00:00
svn
ca83ed8db6 * expand tabs.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2018-10-30 22:03:48 +00:00