45612 Commits

Author SHA1 Message Date
svn
af078b93d8 * 2017-02-01
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31 17:46:52 +00:00
tenderlove
ef76e3cfb6 Add IMEMO type to heap dump output.
IMEMO objects have many types.  Without this change, we cannot see what
types of IMEMO objects are being used when dumping the heap.  Adding the
type to the IMEMO object will allow us to gather statistics about IMEMO
objects being used.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57486 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31 17:46:51 +00:00
nobu
c7c1f371a4 ruby.c: defining DATA
* ruby.c (load_file_internal): define DATA here instead of ensure
  func.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31 12:55:00 +00:00
nobu
3408e3b460 ruby.c: forbid options
* ruby.c (forbid_setid): constified.

* ruby.c (process_options): forbid if setid earlier.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57484 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31 12:54:59 +00:00
naruse
94e8932575 Describe about RUBY_CODESIGN
With RUBY_CODESIGN people can avoid pushing many OK button of firewall
dialogs on macOS through test-all.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57483 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31 10:37:50 +00:00
rhe
8795838fcb openssl: import v2.0.3
Import Ruby/OpenSSL 2.0.3. Only bugfixes. The full commit log since
2.0.2 (imported at r57146) can be found at:

  https://github.com/ruby/openssl/compare/v2.0.2...v2.0.3

----------------------------------------------------------------
Corey Bonnell (1):
      Fix for ASN1::Constructive 'each' implementation

Kazuki Yamaguchi (10):
      Fix build with static OpenSSL libraries on Windows
       ([ruby-core:78878] [Bug #13080])
      Merge pull request #96 from CBonnell/master
      Merge branch 'topic/windows-static-linking-without-pkg-config' into maint
      appveyor.yml: update OpenSSL version to 1.0.2j
      buffering: fix typo in doc
      test/envutil: fix assert_raise_with_message
      x509: fix OpenSSL::X509::Name#eql?
       ([ruby-core:79310] [Bug #13170])
      ruby-openssl-docker: update versions of Ruby and OpenSSL
      .travis.yml: test with Ruby 2.4
      Ruby/OpenSSL 2.0.3

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57482 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31 10:08:22 +00:00
hsbt
b8afbf5e6d Initial commit for gem release of webrick.
[Feature #13173]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57481 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31 08:48:14 +00:00
nobu
df5d84bb41 mkmf.rb: message format string
* lib/mkmf.rb (checking_for): message needs format string.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31 08:03:08 +00:00
ko1
bfdfc99cc2 allow Queue operation in trap.
* 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-31 07:00:38 +00:00
ko1
6897b3b985 define rb_thread_sleep_deadly_allow_spurious_wakeup().
* 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-31 06:39:01 +00:00
ko1
919a9d9e02 use TRUE/FALSE.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57477 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-31 06:31:06 +00:00
normal
9b69e9fafc time.c (time_strftime): avoid garbage in common case
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-31 02:18:58 +00:00
nobu
ed28d151a3 limits.c.tmpl: fallback ULLONG_MAX
* 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-31 02:01:31 +00:00
nobu
bef93a2ddf test_io.rb: separate a test
* 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-31 01:18:10 +00:00
normal
ba5aa60668 sprintf.c: avoid garbage in common (no exception) case
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-31 00:41:56 +00:00
normal
4b9a21cdd6 io.c (rb_io_syswrite): avoid leaving garbage after write
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-30 22:03:57 +00:00
normal
5c988df0dd string.c (rb_str_tmp_frozen_release): release embedded strings
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 21:54:32 +00:00
svn
fb3313bf2b * 2017-01-31
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57470 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30 20:40:19 +00:00
normal
9c4ba969a5 io.c: recycle garbage on write
* 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-30 20:40:18 +00:00
nobu
886e8f75ca common.mk: limits.c
* 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-30 12:00:34 +00:00
nobu
12d61437ea VC18 or later support stdbool.h
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57467 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30 11:45:00 +00:00
svn
9dd87beb21 * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57466 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30 10:12:19 +00:00
shyouhei
8ad7429644 make FIXNUM_MAX visible from Ruby
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-30 10:12:18 +00:00
ko1
f7015c968c add a ticket number.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57464 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30 07:39:27 +00:00
nobu
6cc463cac9 reduce iterations for slower machines
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57463 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30 05:09:13 +00:00
nobu
9e03ee87bf fix up r57461
* 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-30 04:54:52 +00:00
nobu
9b0118a84c refine assertions
* 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 04:47:44 +00:00
shyouhei
7c7133b718 #include <stdbool.h>
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-30 04:42:04 +00:00
nobu
d617fce9ab more checks for prompt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30 03:57:46 +00:00
svn
d492043fba * 2017-01-30
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30 03:21:16 +00:00
nobu
5a48f20c33 test for prompt
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-30 03:21:15 +00:00
nobu
62acbb9805 test for immature statement
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57456 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29 12:53:24 +00:00
nobu
1997f7807b test for top level statement
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29 12:53:23 +00:00
nobu
3abb4948b2 test for comment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29 12:20:26 +00:00
nobu
25ad4a7907 tests for irb lexer
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29 09:51:55 +00:00
svn
afe4e0e4d6 * 2017-01-29
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29 01:35:24 +00:00
kazu
b9d8758e26 {ext,test}/etc: Specify frozen_string_literal: true.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-29 01:35:23 +00:00
nobu
1127a366fd test/unit.rb: minimum workers
* 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-28 11:27:32 +00:00
nobu
b2c9c82cb7 extmk.rb: remove clean and install mode
* 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-28 05:31:25 +00:00
nobu
c3df88eca6 extmk.rb: remove direct build mode
* 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-28 05:23:39 +00:00
nobu
cc33dd2b67 extension gems in static-linked-exts
* 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-28 05:02:41 +00:00
nobu
b3dbeb6e90 mkmf.rb: fix script installation
* 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 05:02:39 +00:00
kazu
886e805799 {ext,test}/dbm: Specify frozen_string_literal: true.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-28 04:36:08 +00:00
nobu
658fc3dd26 exts.mk.tmpl: ruby names
* 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-28 01:43:29 +00:00
svn
e52d2e038e * 2017-01-28
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27 15:32:50 +00:00
naruse
ac66222f1f fix typo
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27 15:32:50 +00:00
nobu
3d5facc48f extmk.rb: fix for static-linked-ext
* 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-27 08:05:06 +00:00
nobu
dbacbc440f template/exts.mk.tmpl: fix missing dependencies
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27 07:51:58 +00:00
nobu
88eea2ba69 template/exts.mk.tmpl: consider EXEEXT
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@57439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2017-01-27 07:23:21 +00:00
nobu
df05027c2d exts.mk.tmpl: for not GNU makes
* 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-27 07:16:36 +00:00