Commit graph

3867 commits

Author SHA1 Message Date
tadf
266755a6ff * ext/date/date_core.c: an issue that is same as [ruby-dev:44071].
* ext/date/date_strftime.c: identical to [ruby-dev:44112].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32760 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-30 14:49:40 +00:00
mrkn
086dd7508f Merge commit r32754:
* ext/bigdecimal/bigdecimal.c (BigDecimal_version): version 1.1.0.
    * ext/bigdecimal/bigdecimal.gemspec: turn into a default gem.
    * tool/rbinstall.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32755 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-30 05:39:35 +00:00
mrkn
70d89f2c16 * ext/bigdecimal/lib/bigdecimal/util.rb (Rational#to_d):
revive zero and implicit precision support as a deprecated feature.
* test/bigdecimal/test_bigdecimal_util.rb: modify a test for the above
  change.
* NEWS: describes the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-30 04:57:45 +00:00
akr
32cfc7cefd * ext/socket/lib/socket.rb (udp_server_sockets): unused variable
removed.
  patch by Jeremy Evans.  [ruby-core:38600]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-29 22:40:41 +00:00
akr
7a261bf317 * ext/socket/mkconstants.rb: fix typos.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32737 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-29 11:52:28 +00:00
akr
bca74ae5ea * ext/socket/mkconstants.rb: use whitespaces as a separator.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32736 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-29 11:29:49 +00:00
akr
63d65bec18 * ext/socket/mkconstants.rb: add documents for constants.
patch by Eric Hodel.  [ruby-core:37853] [Bug #4989]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32735 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-29 10:03:25 +00:00
nagachika
34c7aaa1cb merge revision 32725:
* ext/fiddle/closure.c (callback): use rb_ary_tmp_new() instead of
          xmalloc() to allocate an array for arguments of callback procedure,
          to prevent arguments from being swept by GC. [ruby-core:38546]
          [Bug #4929]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-28 15:00:58 +00:00
nahi
be10ad2072 * backport r32723 from trunk.
* ext/openssl/ossl_cipher.c (ossl_cipher_initialize): Avoid possible
  SEGV from AES encryption/decryption. Processing data by
  Cipher#update without initializing key (meaningless usage of Cipher
  object since we don't offer a way to export a key) could cause SEGV.

  In OpenSSL, the EVP which has EVP_CIPH_RAND_KEY flag (such as DES3)
  allows uninitialized key, but other EVPs (such as AES) does not
  allow it. Calling EVP_CipherUpdate() without initializing key causes
  SEGV so we set the data filled with "\0" as the key by default. See
  #2768.

* test/openssl/test_cipher.rb: test it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-28 13:52:57 +00:00
mrkn
2621ba04cb Merge revisions 32676, 32677, 32679, 32680:
* ext/bigdecimal/lib/bigdecimal/util.rb (Rational#to_d):
      zero or negative precision is error.  fixes #5098.
      [ruby-dev:44210]
    * ext/bigdecimal/lib/bigdecimal/util.rb (Float#to_d): modified for
      specifying precision.  fixes #5098.  [ruby-dev:44210]
    * ext/bigdecimal/lib/bigdecimal/util.rb (Integer#to_d): added
      for symmetry to BigDecimal() function with an Integer.
      fixes #5098.  [ruby-dev:44210]
    * ext/bigdecimal/lib/bigdecimal/util.rb (BigDecimal#to_d): added
      for adapting other Numeric subclasses.  [ruby-dev:44245]
    * test/bigdecimal/test_bigdecimal_util.rb: add tests for the above
      changes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32687 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-26 16:17:04 +00:00
mrkn
1d0cef8f02 Merge revision 32674:
* bigdecimal/bigdecimal.c (VpDup) a new function for duplicating
      a BigDecimal.
    * bigdecimal/bigdecimal.c (BigDecimal_new): support generating a new
      BigDecimal from another BigDecimal using BigDecimal global function
      or constructor.  [ruby-dev:44245]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32682 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-26 15:54:38 +00:00
nahi
e68c897925 * ext/openssl/lib/openssl/{x509.rb,ssl.rb}: Add deprecation warning
for openssl/{x509,ssl} usage. Users should require "openssl" instead 
  of "openssl/ssl" and "openssl/x509". Start of transition period 
  introduced by [ruby-dev:38018].


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-25 06:38:44 +00:00
nahi
8ca6536703 * backport r32662 from trunk.
* ext/openssl/lib/openssl/x509.rb: Cosmetic change: move definition
  introduced in r30152 to x509-internal.rb.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32663 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-25 04:51:26 +00:00
nahi
b409d22e25 * backport r32658 from trunk.
* ext/openssl/ossl_ssl.c (ossl_ssl_shutdown): Avoid randomly generated
  SSLError from SSLSocket just after invoking SSLSocket#close.
  OpenSSL's SSL_shutdown could try to send alert packet and it might
  set SSLerr(global error stack) as the result. It causes the next
  SSL read/write operation to fail by unrelated reason.

  By design, we're ignoring any error at SSL_shutdown() so we clear
  global error stack after SSL_shutdown is called. See #5039.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32660 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-25 04:36:42 +00:00
akr
80a7bca458 * ext/socket/extconf.rb: refine the recvmsg test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32657 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-24 11:35:56 +00:00
akr
046bab7130 * ext/socket/extconf.rb: fix the recvmsg test.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32656 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-24 11:04:11 +00:00
akr
b6fd481c21 * ext/socket/extconf.rb: test recvmsg allocates file descriptors for
fd passing even with MSG_PEEK.

* ext/socket/ancdata.c: use the above test result.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32655 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-23 23:57:50 +00:00
akr
5314b52068 * io.c (rb_update_max_fd): validate fd.
* ext/socket/rubysocket.h (rsock_discard_cmsg_resource): add
  msg_peek_p argument for the declaration.

* ext/socket/ancdata.c (discard_cmsg): add msg_peek_p argument.
  assume FreeBSD, NetBSD and MacOS X doesn't generate passed fd
  when MSG_PEEK. 
  (rsock_discard_cmsg_resource): add msg_peek_p argument.
  (bsock_recvmsg_internal): call rsock_discard_cmsg_resource with
  msg_peek_p argument.

* ext/socket/unixsocket.c (unix_recv_io): call
  rsock_discard_cmsg_resource with msg_peek_p argument.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32638 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-23 08:13:37 +00:00
naruse
2b7e8f86e1 merge revision(s) 32586:
* ext/dl/handle.c (dlhandle_sym): clear previous error with dlerror()
	  before calling dlsym(). [ruby-dev:44091] [Bug #5021]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32623 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-22 12:45:32 +00:00
drbrain
9fd68c53ca * ext/readline/readline.c: Add examples for Readline.completion_proc=.
[Ruby 1.9 - Bug #5057]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-22 04:54:09 +00:00
emboss
df88c5af6d * backport r32609 from trunk.
* ext/openssl/ossl_hmac.c: Revert checking return type of
  HMAC_Init_ex as it is not compatible with OpenSSL < 1.0.0.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32610 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-22 04:17:39 +00:00
emboss
48e712703c * backport r32606 from trunk.
* ext/openssl/ossl_digest.c: Check return value of EVP_DigestInit_ex.
* ext/openssl/ossl_hmac.c: Check return value of HMAC_Init_ex.
  Thanks, Jared Jennings, for the patch.
  [ Ruby 1.9 - Bug #4944 ] [ruby-core:37670]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32607 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-22 02:25:06 +00:00
emboss
ea74a92bed * backport r32604 from trunk.
* ext/openssl/ossl_engine.c: Avoid double free of ENGINE reference.
* test/openssl/test_engine.rb: Add a test for it.
  Thanks to Ippei Obayashi for providing the patch.
  [ Ruby 1.9 - Bug #5062 ] [ruby-dev:44173]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-22 00:19:32 +00:00
akr
f0353afdc1 * ext/socket/ancdata.c (discard_cmsg): workaround for MacOS X Lion.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-21 12:02:45 +00:00
akr
fdcac09849 * backport r32579, r32581, r32587 by akr and r32588 by kazu.
r32579:

* io.c (rb_update_max_fd): new function.

* internal.h (rb_update_max_fd): declare rb_update_max_fd.

* thread_pthread.c (rb_thread_create_timer_thread): update max fd when
  timer thread pipe is created.

r32581:

* io.c (UPDATE_MAXFD): removed.

r32587:

* include/ruby/intern.h (rb_update_max_fd): declaration moved from
  internal.h.

* file.c: ditto.

* io.c: call rb_update_max_fd for each new fds.

* process.c: ditto.

* random.c: ditto.

* ruby.c: ditto.

* ext/io/console/console.c: ditto.

* ext/openssl/ossl_bio.c: ditto.

* ext/pty/pty.c: ditto.

* ext/socket/init.c: ditto.

* ext/socket/socket.c: ditto.

* ext/socket/ancdata.c: ditto.

* ext/socket/unixsocket.c: ditto.

r32588:

* io.c (rb_update_max_fd): remove parentheses. they are not in
  macro.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32591 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-20 22:11:56 +00:00
nahi
b03e3cc5bf * backport r32546 from trunk.
* ext/digest/sha2/sha2.c (SHA256_Update, SHA512_Update): avoid Bus
  Error caused by unalignment access on Sparc-Solaris (and possibly on
  other similar environment.) This patch just do memcpy always instead
  of checking architecture. I see no perf drop on my 64bit env. For
  more details, see #4320.

* test/digest/test_digest.rb: add test for unalignment access.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32547 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-15 03:05:23 +00:00
nahi
bdd7cf158e * backport r32537 from trunk.
* ext/openssl/ossl.c (ossl_verify_cb): trap the exception from
  verify callback of SSLContext and X509Store and make the
  verification fail normally. Raising exception directly from callback
  causes orphan resouces in OpenSSL stack. Patched by Ippei Obayashi.
  See #4445.

* test/openssl/test_ssl.rb
  (test_exception_in_verify_callback_is_ignored): test it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_3@32538 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-14 05:46:00 +00:00
mrkn
99f8f14d89 * ext/bigdecimal/bigdecimal.c (rmpd_power_by_big_decimal): fix
precision treatment errors.
* test/bigdecimal/test_bigdecimal.rb: add tests for the above change.
  fix precision treatment errors.
* ext/bigdecimal/bigdecimal.c (BigDecimal_power): precision argument
  should be optional for its compatibility.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 14:05:07 +00:00
naruse
a2e497d5ed * ext/json: Merge json gem 1.5.4+ (f7f78896607b6f6226cd).
[Bug #4700]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32493 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 08:01:04 +00:00
tadf
32af4ed47f * ext/date/date_core.c: canonicalizes nth and sf.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32487 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 05:59:12 +00:00
mrkn
ebd61e5f28 * ext/bigdecimal/bigdecimal.c (BigDecimal_power): support non-integral
exponent.  fixes #3271
* ext/bigdecimal/bigdecimal.c (rmpd_power_by_big_decimal): ditto.
* ext/bigdecimal/bigdecimal.c (BigDecimal_power_op): add a function to
  only use for "**" operator.
* test/bigdecimal/test_bigdecimal.rb: add a bunch of tests for the
  above changes.
* ext/bigdecimal/bigdecimal.c (is_integer): add an utility function.
* ext/bigdecimal/bigdecimal.c (is_negative): ditto.
* ext/bigdecimal/bigdecimal.c (is_positive): ditto.
* ext/bigdecimal/bigdecimal.c (is_zero): ditto.
* ext/bigdecimal/bigdecimal.c (is_one): ditto.
* ext/bigdecimal/bigdecimal.c (is_even): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32485 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-10 03:19:49 +00:00
tadf
057e0a373c * ext/date/date_core.c: some improvements for performance.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32473 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-09 08:18:57 +00:00
nobu
29e497d231 * ext/json/{generator/generator.c,parser/parser.rl}: fix indent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32460 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-08 09:00:54 +00:00
nobu
bc1fd9458d * ext/json/parser/parser.rl (JSON_parse_object): add missing parens.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32459 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-08 09:00:51 +00:00
nobu
4902ef7d59 * ext/json/parser/parser.rl (convert_encoding): should not modify
the argument.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32458 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-08 07:40:41 +00:00
nobu
b16fd08622 * ext/json/parser/parser.rl (convert_encoding): no needs to use
force_encoding.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-08 07:39:09 +00:00
nobu
c23dea553e * ext/json/parser/prereq.mk: remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-08 07:01:16 +00:00
usa
8de18f9cda * ext/openssl/ossl.h: include openssl/e_os2.h before checking the
defition of OPENSSL_SYS_WIN32.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-08 06:03:17 +00:00
nobu
4837d6d5b5 * ext/-test-/string/enc_associate.c: needs ruby/encoding.h for
rb_to_encoding().  fixed #4993.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-08 02:08:29 +00:00
nobu
cfa0035962 * encoding.c (rb_enc_set_index, rb_enc_associate_index): should
check if frozen.
* parse.y (rb_intern3), ruby.c (process_options, ruby_script):
  defer freezing after associating encodings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-07 06:44:46 +00:00
nobu
f4ca906d5c * ext/-test-/string/modify.c: split from init.c.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-07 06:40:33 +00:00
nagachika
ea8b916307 * ext/coverage/coverage.c: resurrect r32071 + add GC guard for
rb_coverages. [ruby-core:37352] [Bug #4927]
  [ruby-core:36539] [Feature #4796]

* test/coverage/test_coverage.rb resurrect r32071.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-04 15:55:06 +00:00
mame
74454f5796 * ext/coverage/coverage.c: revert r32071. The commit caused SEGV on
some minor nonfree OS.  I have no means of debugging the bug.  My
  personal opinion is that such OS should be unsupported unless there
  is an active maintainer.  [ruby-core:37352]

* test/coverage/test_coverage.rb: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32401 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-04 12:21:02 +00:00
yugui
3b63aee193 * ext/extmk.rb (extmake): suppresses outputs from extconf.rb.
(extmake) warns a failure in extconf.rb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32389 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-07-03 14:44:59 +00:00
nobu
198c2570e7 * sytle fixes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32344 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-30 20:20:32 +00:00
tadf
72be91b5c0 reedited previous commit
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32343 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-30 18:49:04 +00:00
tadf
6c1e759c3f * ext/date/date_core.c: mathn still alive (should die soon).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32339 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-30 18:24:50 +00:00
emboss
1dcd4b325e * ext/openssl/ossl.c/.h: Added ossl_x509_name_sk2ary.
* ext/openssl/ossl.c: Replaced ossl_x509_ary2k by generic macro to
  simplify future conversions.
* ext/openssl/ossl_ssl.c: Implement SSLSocket#client_ca.
* test/openssl/test_ssl.rb: Add test for SSLSocket#client_ca.
  Thanks to Ippei Obayashi for providing the patch!
  [ Ruby 1.9 - Feature #4481 ] [ruby-core:35461]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32337 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-30 14:48:52 +00:00
tadf
1a876fb61e * ext/date/date_core.c (m_ajd): refers a constant.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-30 12:17:52 +00:00
nobu
3b8f9dc0b0 * ext/io/console/io-console.gemspec: spin-off gem for 1.9.2.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@32330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2011-06-30 11:54:27 +00:00