1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
Commit graph

22885 commits

Author SHA1 Message Date
nobu
2f57e80640 parse.y: parse precisely
* parse.y (parser_number_literal_suffix): return bit set of found
  suffixes.
* parse.y (parser_set_number_literal, parser_set_integer_literal):
  split from parser_number_literal_suffix to set yyvlal.
* parse.y (parser_yylex): parse rational number literal with decimal
  point precisely.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42332 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-02 14:14:55 +00:00
nobu
e176b8e1c1 parse.y: simplify numerics
* parse.y (simple_numeric): integrate numeric literals and simplify
  numeric rules.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42331 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-02 14:14:18 +00:00
nobu
856a9afb98 eventids2.c: new literals
* ext/ripper/eventids2.c (ripper_init_eventids2): ripper support for
  new literals, tRATIONAL and tIMAGINARY.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42330 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-02 14:13:20 +00:00
akr
bc7c0a63fd * bignum.c (big2str_karatsuba): Reduce power_level more than one at
recursion, if possible.
  (rb_big2str1): Follow the above change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42325 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-02 09:36:23 +00:00
akr
9e8f82e087 * bignum.c (bary_mul): Swap x and y for bary_mul1 if x is longer than y.
[ruby-dev:47565] [Bug ] Reported by Narihiro Nakamura.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-02 03:28:33 +00:00
charliesome
29c5a3b89c * parse.y (negate_lit): add T_RATIONAL and T_COMPLEX to the switch
statement, and call rb_bug() if an unknown type is passed to
  negate_lit(). [ruby-core:56316] [Bug ]

* bootstraptest/test_literal_suffix.rb (assert_equal): add test

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-02 01:40:27 +00:00
drbrain
c0d4ba9f40 * doc/syntax/refinements.rdoc: Improve description of where you may
activate refinements.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42320 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-02 00:14:58 +00:00
akr
474dc1e816 * bignum.c (big2str_orig): Remove len argument.
(big2str_karatsuba): Ditto.
  (rb_big2str1): Follow above change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42319 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 22:49:12 +00:00
mrkn
991bd133d5 * NEWS: Add the description of number literal suffixes.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42317 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 17:33:29 +00:00
mrkn
ae0181b7fe * bootstraptest/test_literal_suffix.rb: add two test cases to
examine that "1if true" and "1rescue nil" are recognized as 1.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42315 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 15:14:45 +00:00
mrkn
e06407cf7d * rational.c (rb_flt_rationalize_with_prec): new public C function
to rationalize a Float instance with a precision.

* rational.c (rb_flt_rationalize): new public C function to
 rationalize a Float instance.  A precision is calculated from
 the given float number.

* include/ruby/intern.h: Add rb_flt_rationalize_with_prec and
  rb_flt_rationalize.

* parse.y: implement number literal suffixes, 'r' and 'i'.
  [ruby-core:55096] [Feature ]

* bootstraptest/test_literal_suffix.rb: add tests for parser to scan
  number literals with the above tsuffixes.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42311 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 14:58:54 +00:00
akr
9ebd675c47 * bignum.c (rb_big2str1): Remove a local variable.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42310 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 14:57:21 +00:00
akr
69263bb755 * bignum.c (rb_cstr_to_inum): Use power_cache_get_power.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42309 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 14:34:59 +00:00
akr
d620b0b9cd * bignum.c (rb_big2str1): Raise an error for too big number.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42307 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 12:05:04 +00:00
akr
780a125faf * bignum.c (power_cache_get_power): Hide cached Bignum objects.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42306 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 11:48:42 +00:00
akr
0ade4f39fd * bignum.c (rb_big2str1): Remove non-trim mode.
(rb_big2str0): Non-trim mode implemented here.
  (big2str_find_n1): Change the result type to long again.
  (big2str_base_powerof2): Don't take arguments: len and trim.
  (rb_big2str): Follow above change.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42305 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 10:19:23 +00:00
nobu
9037b25dde * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42304 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 03:46:12 +00:00
akr
93055423bd * bignum.c (big2str_alloc): New function to allocate the result string.
It is called after actual length is calculated.
  (big2str_struct): Add fields: negative, result and ptr.
  (big2str_orig): Write out the result via b2s->ptr.
  (big2str_orig): Ditto.
  (rb_big2str1): Don't allocate the result string at beginning.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42303 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-08-01 03:43:14 +00:00
akr
478bd3128c * bignum.c (big2str_orig): Use temporary buffer when trim mode.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 22:38:53 +00:00
akr
39a00c6710 * bignum.c (big2str_orig): Simplified because RBIGNUM_LEN(x) <= 2 now.
(big2str_struct): Two fields added: hbase2, hbase2_numdigits.
  (rb_big2str1): Initialize above fields.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42301 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 21:33:14 +00:00
nobu
835c555f7f options.rb: include root for out-place build
* lib/rdoc/options.rb (RDoc#finish): include root path in include
  paths, to work in another directory than the source directory.
  [ruby-core:56282] [Bug ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42300 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 19:06:21 +00:00
nobu
3d562b6873 test_rdoc_markup_pre_process.rb: input tempfile
* test/test_rdoc_markup_pre_process.rb (TestRDocMarkupPreProcess#setup):
  fix input_file_name, as the test script is not pre-processed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42299 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 19:05:17 +00:00
akr
eed6c15a21 * bignum.c (big2str_karatsuba): Fix a condition of power_level.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42298 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 16:48:08 +00:00
knu
b4dd68ff96 Fix a typo.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42297 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 16:34:56 +00:00
akr
4f1b07e9eb * bignum.c (LOG2_KARATSUBA_BIG2STR_DIGITS): Removed.
(KARATSUBA_BIG2STR_DIGITS): Removed.
  (big2str_numdigits_cache): New variable.
  (power_cache_get_power): Merged with power_cache_get_power0.
  This function returns maxpow_in_bdigit_dbl(base)**(2**power_level).
  (rb_big2str1): use power_cache_get_power.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42295 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 16:20:26 +00:00
akr
d28913b4b9 * bignum.c (big2str_find_n1): Change the return type to size_t.
(big2str_orig): Ditto.
  (big2str_karatsuba): Ditto.
  (rb_big2str1): Follow the above changes.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42294 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 15:01:55 +00:00
akr
9e84b33564 * bignum.c (power_cache_get_power): Change numdigits_ret to size_t *.
(big2str_orig): Change len argument to size_t.
  (big2str_karatsuba): Ditto.
  (rb_big2str1): Follow the above changes.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42291 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 14:21:54 +00:00
kou
5f8cba0705 * test/rexml/parse/test_notation_declaration.rb: Change class
name to follow file name change.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42290 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 14:00:26 +00:00
kou
6668c32a7e * test/rexml/test_notationdecl_parsetest.rb: Rename to ...
* test/rexml/parse/test_notation_declaration.rb: ... this.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42289 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 13:58:49 +00:00
kou
6b4a6fcbbf * test/rexml/test_notationdecl_mixin.rb: Remove duplicated tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42288 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 13:55:12 +00:00
kou
0c1139ea78 * test/rexml/test_notationdecl_parsetest.rb: Fix typos in expected
value.
  pubilc ->
  public
     ^^


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42287 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 13:53:35 +00:00
kou
7f6c69b142 * test/rexml/test_notationdecl_parsetest.rb: Add tests that focus
system literal in external ID system notation declaration.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42286 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 13:52:06 +00:00
akr
621d2b3d6c * bignum.c (bary_cmp): Extracted from rb_big_cmp.
(power_cache_get_power): Change n1 argument (number of digits) to
  power_level which is just passed to power_cache_get_power0.
  (big2str_karatsuba): Ditto.
  (rb_big2str1): Calculate the initial power_level.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42285 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 13:42:22 +00:00
kou
806dd30fe2 * test/rexml/test_notationdecl_parsetest.rb: Fix a typo.
Extern  ID ->
  ExternalID
        ^^


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42284 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 13:05:02 +00:00
kou
a41ab7b3b6 * test/rexml/test_notationdecl_parsetest.rb: Add tests that focus
public ID in external ID notation declaration.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42283 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 13:04:10 +00:00
kazu
434826c0e9 * parse.y: fix build error with bison-3.0.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42282 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 13:01:57 +00:00
kou
43f944dcf1 * test/rexml/test_notationdecl_parsetest.rb: Split test patterns.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42281 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 12:59:28 +00:00
kou
3e04769926 * test/rexml/test_notationdecl_parsetest.rb: Group tests.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42280 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 12:44:24 +00:00
kou
1251f51ee7 * test/rexml/test_notationdecl_mixin.rb (TestNotationDecl#test_name):
Move to ...
* test/rexml/test_notationdecl_parsetest.rb
  (TestNotationDecl#test_name): ... here.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42279 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 12:38:41 +00:00
kou
5a5ede7359 * test/rexml/test_notationdecl_parsetest.rb: Remove setup because it
doesn't share anything with other tests.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42278 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 12:32:24 +00:00
kou
a9c4b0f497 * test/rexml/test_attributes_mixin.rb: Remove a needless shebang.
* test/rexml/test_notationdecl_mixin.rb: ditto.
* test/rexml/test_doctype.rb: ditto.
* test/rexml/test_xml_declaration.rb: ditto.
* test/rexml/test_changing_encoding.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42277 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 12:25:36 +00:00
kou
c1ada18d0c * test/rexml/test_notationdecl_parsetest.rb: remove a needless shebang.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42276 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 12:20:50 +00:00
glass
0e2d0bb970 * string.c (rb_str_rindex): fix bug introduced in r42269.
"".rindex("") should return 0.
  (str_rindex): ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42275 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 11:18:18 +00:00
akr
aba8c29a8b * bignum.c (MAX_BIG2STR_TABLE_ENTRIES): Use SIZEOF_SIZE_T.
(power_cache_get_power0): Add rb_bug call for too bit i argument.
  (power_cache_get_power): Simplified.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42274 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 10:58:58 +00:00
knu
601f783827 * lib/uri/common.rb (URI.decode_www_form_component): Use String#b.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42273 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 09:34:34 +00:00
shugo
1c7f9073b0 * eval.c (rb_mod_refine, mod_using, top_using): don't show
warnings because Refinements are no longer experimental.
  [ruby-core:55993] [Feature ]

* test/ruby/test_refinement.rb: related test.

* NEWS: fixes for the above change.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42272 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 09:29:40 +00:00
sorah
b30a172385 * lib/uri/common.rb (URI.decode_www_form_component):
Don't raise error when str includes multibyte characters.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42271 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 09:00:18 +00:00
glass
867876ab9b * string.c (rb_str_rindex): performance improvement by using
memrchr(3).

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42269 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 08:47:13 +00:00
glass
8b126d59b3 * string.c (rb_str_rindex): refactoring and avoid to call str_nth() if
pos == 0.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42268 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 07:53:08 +00:00
knu
444cd6f71a Add a reference to the related issue.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@42266 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2013-07-31 06:02:07 +00:00