summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2017-01-31allow Queue operation in trap.ko1
* thread_sync.c: allow spurious wakeup to check Queue status just after trap. [Bug #12405] * test/thread/test_queue.rb: add a test for it. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57479 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31define rb_thread_sleep_deadly_allow_spurious_wakeup().ko1
* thread.c, thread_sync.c: define new function rb_thread_sleep_deadly_allow_spurious_wakeup() and use it instead of using sleep_forever() directly. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57478 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31use TRUE/FALSE.ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31time.c (time_strftime): avoid garbage in common casenormal
strftime format strings which are dynamically-generated will benefit from avoiding garbage, here. * time.c (time_strftime): use rb_str_tmp_frozen_{acquire,release} * test/ruby/test_time.rb (test_strftime_no_hidden_garbage): new test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31limits.c.tmpl: fallback ULLONG_MAXnobu
* template/limits.c.tmpl (ULLONG_MAX): add a fallback definition. On old CentOS lacks ULLONG_MAX. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57475 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31test_io.rb: separate a testnobu
* test/ruby/test_io.rb (test_closed_stream_in_rescue): run in a separated process. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57474 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31sprintf.c: avoid garbage in common (no exception) casenormal
Format strings which are dynamically-generated will benefit from this. This won't cover exceptions, but exceptions for sprintf should be too uncommon to care about (unlike IO) * sprintf.c (rb_str_format): use rb_str_tmp_frozen_{acquire,release} * test/ruby/test_sprintf.rb (test_no_hidden_garbage): new test git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30io.c (rb_io_syswrite): avoid leaving garbage after writenormal
As with IO#write, IO#syswrite also generates garbage which can be harmful in hand-coded read-write loops. * io.c (swrite_arg, swrite_do, swrite_end): new (rb_io_syswrite): use new functions to cleanup garbage [ruby-core:78898] [Bug #13085] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57472 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30string.c (rb_str_tmp_frozen_release): release embedded stringsnormal
Handle the embedded case first, since we may have an embedded duplicate and non-embedded original string. * string.c (rb_str_tmp_frozen_release): handled embedded strings * test/ruby/test_io.rb (test_write_no_garbage): new test [ruby-core:78898] [Bug #13085] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57471 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30* 2017-01-31svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30io.c: recycle garbage on writenormal
* string.c (STR_IS_SHARED_M): new flag to mark shared mulitple times (STR_SET_SHARED): set STR_IS_SHARED_M (rb_str_tmp_frozen_acquire, rb_str_tmp_frozen_release): new functions (str_new_frozen): set/unset STR_IS_SHARED_M as appropriate * internal.h: declare new functions * io.c (fwrite_arg, fwrite_do, fwrite_end): new (io_fwrite): use new functions Introduce rb_str_tmp_frozen_acquire and rb_str_tmp_frozen_release to manage a hidden, frozen string. Reuse one bit of the embed length for shared strings as STR_IS_SHARED_M to indicate a string has been shared multiple times. In the common case, the string is only shared once so the object slot can be reclaimed immediately. minimum results in each 3 measurements. (time and size) Execution time (sec) name trunk built io_copy_stream_write 0.682 0.254 io_copy_stream_write_socket 1.225 0.751 Speedup ratio: compare with the result of `trunk' (greater is better) name built io_copy_stream_write 2.680 io_copy_stream_write_socket 1.630 Memory usage (last size) (B) name trunk built io_copy_stream_write 95436800.000 6512640.000 io_copy_stream_write_socket 117628928.000 7127040.000 Memory consuming ratio (size) with the result of `trunk' (greater is better) name built io_copy_stream_write 14.654 io_copy_stream_write_socket 16.505 git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57469 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30common.mk: limits.cnobu
* common.mk (ext/rbconfig/sizeof/sizes.c): specify the target explicitly. * common.mk (ext/rbconfig/sizeof/limits.c): add the recipe. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57468 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30VC18 or later support stdbool.hnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57467 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30* properties.svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30make FIXNUM_MAX visible from Rubyshyouhei
Because our tests now have several places where FIXNUM_MAX is needed, we decided to provide it along with several other constants. * template/limits.c.tmpl: new file, defining RbConfig::Limits * ext/rbconfig/sizeof/depend (limits.c): rule to generate limits.c * test/-ext-/num2int/test_num2int.rb: use RbConfig::Limits * bootstraptest/test_insns.rb: ditto. * .gitignore: ignore new generated file. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57465 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30add a ticket number.ko1
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30reduce iterations for slower machinesnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30fix up r57461nobu
* internal.h: Microsoft Visual C++ has never supported C99 yet, even in 2017. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57462 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30refine assertionsnobu
* test/irb/test_ruby-lex.rb (test_prompt): invert confinue flag by FIXME comments. adjust line numbers. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57461 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30#include <stdbool.h>shyouhei
17+ years passed since standardized in ISO, 8 years since we added AC_HEADER_STDBOOL to configure.in. I'm quite confident that it's already safe to use <stdbool.h>. I understand that when we introduced AC_HEADER_STDBOOL, <stdbool.h> was remain not included because C standard and SVR4 curses conflicted miserably back then (#1). Though I believe such situation has been fixed already(#2), I'm afraid of your operating system might ship a proprietary curses that still conflicts with the standard. So to avoid potential problem, we limit the inclusion to our internal use only. #1 : 1997 version of SUSv2 said bool is "defined though typedef" in <curses.h>, while C99 said bool is a macro, plus in C++ bool is a keyword. AFASIK the curses library has never been a part of POSIX. #2 : In reality ncurses and NetBSD curses both just follow C99 to include <stdbool.h> from <curses.h>. I think C99 is now widely adopted. ---- * internal.h: #include <stdbool.h> if present. That is believed to be the case for 99.9% systems that lives today. Non-C99, non-C++ situations are intentionally left undefined, advised by Motohiro Kosaki. If you have such compiler, please fill the definition appropriately. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30more checks for promptnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30* 2017-01-30svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30test for promptnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29test for immature statementnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29test for top level statementnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29test for commentnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29tests for irb lexernobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29* 2017-01-29svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29{ext,test}/etc: Specify frozen_string_literal: true.kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-28test/unit.rb: minimum workersnobu
* test/lib/test/unit.rb (_run_parallel): launch only necessary workers. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-28extmk.rb: remove clean and install modenobu
* ext/extmk.rb (parse_args): remove clean and install mode, now configure mode only. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-28extmk.rb: remove direct build modenobu
* ext/extmk.rb (parse_args): --command-output is now mandatory. remove direct build mode. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-28extension gems in static-linked-extsnobu
* template/configure-ext.mk.tmpl: --no-extstatic option to gems. * template/exts.mk.tmpl: include extension gems. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-28mkmf.rb: fix script installationnobu
* lib/mkmf.rb (MakeMakefile): fix condition to install script files. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-28{ext,test}/dbm: Specify frozen_string_literal: true.kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-28exts.mk.tmpl: ruby namesnobu
* template/exts.mk.tmpl: extract configured ruby names. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27* 2017-01-28svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27fix typonaruse
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27extmk.rb: fix for static-linked-extnobu
* ext/extmk.rb (extmake): fix up r57424 for static-linked-ext. separate maybestatic argument from basedir which is given always now. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27template/exts.mk.tmpl: fix missing dependenciesnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27template/exts.mk.tmpl: consider EXEEXTnobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27exts.mk.tmpl: for not GNU makesnobu
* template/exts.mk.tmpl: use `cd` then `make` instead of `make -C` when not GNU make. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27leakchecker.rb: get rid of uninitialized Tempfilenobu
* test/lib/leakchecker.rb (LeakChecker#find_tempfiles): get rid of errors on uninitialized Tempfile, which can be left when Dir.tmpdir failed or by Tempfile.allocate. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27enum.c: write barriernobu
* enum.c (rb_nmin_run): set the class with write barrier. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27enum.c (rb_nmin_run): adjust indent [ci skip]nobu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27Enumerable#{min,min_by,max,max_by} [ci skip]nobu
* enum.c: [DOC] Enumerable#{min,min_by,max,max_by} return a sorted array when +n+ argument is used. * enum.c: Small typo : minimum -> maximum [Bug #13161] Author: Eric Duminil <eric.duminil@gmail.com> git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27configure-ext.mk.tmpl: fix ext buildnobu
* template/configure-ext.mk.tmpl: fixed inverted names of target and directory, and chomp the last slash. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27{ext,test}/date: Specify frozen_string_literal: true.kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-26[DOC] Use Integer instead of Fixnum [ci skip]kazu
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-26* 2017-01-27svn
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e