Commit graph

34918 commits

Author SHA1 Message Date
hsbt
7a01bfcdba * ext/psych/psych.gemspec: update gemspec for psych-2.0.5
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45455 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-28 00:23:13 +00:00
svn
7efc09ec47 * 2014-03-28
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45454 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-28 00:19:20 +00:00
hsbt
e221c6cefc * ext/psych/lib/psych.rb: Merge psych-2.0.5. bump version to
libyaml-0.1.6 for CVE-2014-2525.
* ext/psych/yaml/config.h: ditto.
* ext/psych/yaml/scanner.c: ditto.
* ext/psych/yaml/yaml_private.h: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45453 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-28 00:19:15 +00:00
nobu
fb3bd78725 string.c: suppress warnings
* string.c (rb_str_sub_bang, str_gsub): initialize conditionally
  assigned variables to suppress maybe-uninitialized warnings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45452 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-27 12:03:36 +00:00
nobu
5752b61d86 string.c: search by rb_str_index
* re.c (match_regexp): set regexp for MatchData from string.
* re.c (rb_backref_set_string): create MatchData from string and
  set backref.
* string.c (rb_pat_search, rb_str_sub, rb_str_sub_bang, str_gsub),
  (scan_once, rb_str_scan, rb_str_partition): use rb_str_index
  instead of rb_reg_search() when pattern is a String.  based on
  the patch by Sam Rawlins <sam.rawlins@gmail.com> [Fixes GH-579]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45451 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-27 09:58:12 +00:00
nobu
227a5a2aae string.c: mustnot_broken
* string.c (mustnot_broken): extract function to reject invalid
  byte sequence, from rb_str_split_m().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45450 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-27 09:47:03 +00:00
nobu
ffdb3ce9b9 re.c: class name encoding
* re.c (match_inspect): preserve class name encoding by PRIsVALUE.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45449 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-27 09:08:54 +00:00
nobu
2dc8f669a8 test_m17n_comb.rb: refine assertions
* test/ruby/test_m17n_comb.rb (test_str_scan): refine assertion
  messages.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45448 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-27 09:08:51 +00:00
nari
7c9f1aa3d5 [DOC] Fix NEWS about Symbol GC
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-27 05:42:57 +00:00
nobu
949f1160d6 string.c: invert flag
* string.c (str_gsub): invert and rename `str_replace` flag as
  `need_backref`.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45446 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-27 03:03:19 +00:00
naruse
acc3cf5f30 * addr2line.c (fill_lines): check shdr[i].sh_type because even if
.symtab section exists, the section's type can be SHT_NOBITS and
  actual data doesn't exist in the file. [Bug #9654]
  revert r45441.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45445 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-27 03:01:59 +00:00
nobu
6c27d383dd re.c: indent
* re.c (rb_reg_search): adjust indent.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45444 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-27 02:58:34 +00:00
nobu
d94dcf1e10 parse.y: type-punning cast
* parse.y (rb_gc_free_dsymbol): use intermediate st_data_t and get
  rid of type-punning cast.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45443 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-27 02:58:32 +00:00
svn
b1cd933e98 * 2014-03-27
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 21:46:27 +00:00
naruse
c6aa2c467b temporally change for powerpc64-linux fc18
fc18 powerpc64's libc6-dbg has symtab/strtab but it can't be
referenced. therefore add workaround not to see them.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45441 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 21:46:23 +00:00
nari
e6dcb3b174 [DOC] Add NEWS about Symbol GC
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45440 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 14:19:10 +00:00
nobu
bb1d0d2807 parse.y: set encoding
* parse.y (rb_str_dynamic_intern): associate proper encoding with
  the result symbol.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 11:30:54 +00:00
nobu
e8de850e6d encoding.c: fix encoding of dynsym
* encoding.c (rb_enc_get_index): the encoding of dynamic symbol
  comes from fstr.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45438 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 11:14:44 +00:00
naruse
2d8c3e7851 remove break because strtab/symtab is usually the last segment
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 10:59:44 +00:00
nobu
45fff5150a encoding.c: enc_capable symbol
* encoding.c (enc_capable): Symbol is now encoding capable.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 08:24:09 +00:00
naruse
623da1525a temporaly show sym->st_name and so on
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45435 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 07:40:51 +00:00
nobu
ef02cae507 parse.y: fix rb_str_symname_type call
* parse.y (rb_str_dynamic_intern): fix the second argument to
  rb_str_symname_type, which is a bit mask but not a boolean.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 06:43:02 +00:00
nobu
5620a51996 * parse.y (rb_str_dynamic_intern): fix commit miss.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45433 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 06:36:50 +00:00
nobu
33b8663f1b parse.y: guard dup string
* parse.y (rb_str_dynamic_intern): prevent a string which may be
  duplicated, from GC.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45432 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 06:34:35 +00:00
nobu
ad8ed59ab9 parse.y: dup iff needed
* parse.y (rb_str_dynamic_intern): dup the given string only if
  needed.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45431 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 06:34:33 +00:00
nobu
9a848c5f4a parse.y: no dup US-ASCII string
* parse.y (rb_str_dynamic_intern): no needs to associate encoding
  if it is US-ASCII.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45430 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 06:34:31 +00:00
usa
e70b61d010 * parse.y: inline must be static (for mswin).
fixed build error introduced at r45426.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45429 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 05:58:41 +00:00
nari
b9ea135950 * internal.h (USE_SYMBOL_GC): enable Symbol GC by default (USE_SYMBOL_GC == 1).
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45428 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 05:39:22 +00:00
nari
17a6f9227a cast to int to silence clang compile error
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45427 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 05:14:51 +00:00
nari
90b7073842 * parse.y: support Symbol GC. [ruby-trunk Feature #9634]
See this ticket about Symbol GC.

* include/ruby/ruby.h:
  Declare few functions.
  * rb_sym2id: almost same as old SYM2ID but support dynamic symbols.
  * rb_id2sym: almost same as old ID2SYM but support dynamic symbols.
  * rb_sym2str: almost same as `rb_id2str(SYM2ID(sym))` but not
    pin down a dynamic symbol.
  Declare a new struct.
  * struct RSymbol: represents a dynamic symbol as object in
    Ruby's heaps.
  Add few macros.
  * STATIC_SYM_P: check a static symbol.
  * DYNAMIC_SYM_P: check a dynamic symbol.
  * RSYMBOL: cast to RSymbol

* gc.c: declare RSymbol. support T_SYMBOL.

* internal.h: Declare few functions.
  * rb_gc_free_dsymbol: free up a dynamic symbol. GC call this
    function at a sweep phase.
  * rb_str_dynamic_intern: convert a string to a dynamic symbol.
  * rb_check_id_without_pindown: not pinning function.
  * rb_sym2id_without_pindown: ditto.
  * rb_check_id_cstr_without_pindown: ditto.

* string.c (Init_String): String#intern and String#to_sym use
  rb_str_dynamic_intern.

* template/id.h.tmpl: use LSB of ID as a flag for determining a
  static symbol, so we shift left other ruby_id_types.

* string.c: use rb_sym2str instead `rb_id2str(SYM2ID(sym))` to
  avoid pinning.

* load.c: use xx_without_pindown function at creating temporary ID
  to avoid pinning.

* object.c: ditto.

* sprintf.c: ditto.

* struct.c: ditto.

* thread.c: ditto.

* variable.c: ditto.

* vm_method.c: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 04:57:47 +00:00
naruse
2bf56deded * addr2line.c (fill_lines): loop reverse order not to overwrite
the basis of base addresses comparison.

* addr2line.c: use uintptr_t instead of intptr_t for poinrters.

* addr2line.c (rb_dump_backtrace_with_lines): don't use syms.

* vm_dump.c (rb_print_backtrace): ditto.

* addr2line.h: ditto.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 04:30:43 +00:00
nobu
3935f2ae6e marshal.c: undumpable hidden objects
* marshal.c (w_object): internal objects are not dumpable.
  [ruby-core:61677] [Bug #9674]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45424 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 02:20:52 +00:00
nobu
1dd527012b thread.c: undumpable
* ext/thread/thread.c (undumpable): ConditionVariable and Queue
  are not dumpable.  [ruby-core:61677] [Bug #9674]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45423 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 02:20:26 +00:00
naruse
f3867e2203 * addr2line.c (follow_debuglink): show message if it closes opened
(and maybe used) elf binary.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 01:38:23 +00:00
naruse
b8ba4016ac * addr2line.c (fill_line): pass and use offset instead of
curobj_baseaddr.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 01:38:05 +00:00
kanemoto
62efb9c29f add feature number to ChangeLog entry
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45420 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 00:48:33 +00:00
kanemoto
738c303461 add --disable-pie option to configure
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 00:13:36 +00:00
naruse
537623e43d don't write _start as is; use dlsym
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45418 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-26 00:02:24 +00:00
naruse
3bd0fd118d temporaly change/add to debug on powerpc64-linux
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45417 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 23:55:58 +00:00
naruse
633b2fc9d7 * addr2line.c (fill_lines): don't run fill_lines multiple times.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45416 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 23:55:39 +00:00
nobu
df0034f890 * internal.h (rb_reg_search0): not a public API.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45415 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 23:52:18 +00:00
charliesome
a77206582e Stop allocating backref strings within gsub's search loop
* internal.h: add prototype for rb_reg_search0

* re.c: rename rb_reg_search to rb_reg_search0, add set_backref_str
  argument to allow callers to indicate that they don't require the
  backref string to be allocated

* string.c: don't allocate backref str if replacement string is provided

Closes GH-578. [Bug #9676] [ruby-core:61682]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 23:46:05 +00:00
nobu
ebd9f1d0e4 lib/rubygem.rb: Weirich
* lib/rubygem.rb: fix spelling of Jim Weirich.  [Fixes GH-577]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45413 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 23:29:44 +00:00
naruse
0fe34c4c3b main is not a pubic function, use _start instead
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45412 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 18:44:32 +00:00
svn
925a1e1d70 * 2014-03-26
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45411 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 16:58:47 +00:00
naruse
c1b81d3578 * addr2line.c (rb_dump_backtrace_with_lines): a function to get must
be a function in the main executable, whose absolute path is not
  available by dladdr, and ruby get it by /proc/self/exe on Linux.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45410 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 16:58:45 +00:00
naruse
cd2afc30fd * addr2line.c (fill_lines): skip if path is NULL.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45409 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 16:58:42 +00:00
nobu
dcd1e5e5c2 parse.y: required kwarg without parentheses
* parse.y (parser_yylex): only a newline after label should be
  significant.  [ruby-core:61658] [Bug #9669]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45408 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 14:57:18 +00:00
kazu
6df5f314ac remove unnecessary unshift
* ext/pathname/lib/pathname.rb (Pathname#join): remove unnecessary unshift.
* test/pathname/test_pathname.rb (TestPathname#test_join): add tests.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 14:42:36 +00:00
usa
602a9c1416 * test/ruby/test_time.rb: extended the timeout span and reduce the loop count.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@45406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-03-25 07:57:35 +00:00