Граф коммитов

37150 Коммитов

Автор SHA1 Сообщение Дата
duerst 281bfbd9cd lib/unicode_normalize.rb: Small documentation fix.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48017 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 08:37:40 +00:00
duerst f83c0b0ae7 lib/unicode_normalize.rb: Added documentation.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48016 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 08:26:35 +00:00
duerst 982f0de141 tool/unicode_norm_gen.rb, lib/unicode_normalize.rb:
File name change from lib/unicode_normalize/normalize_tables.rb
to lib/unicode_normalize/tables.rb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48015 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 02:09:13 +00:00
duerst dfb68b3d21 lib/unicode_normalize.rb: Changing method names, see https://bugs.ruby-lang.org/issues/10084#note-7
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48014 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 01:12:26 +00:00
duerst 588bbfd1b4 lib/unicode_normalize.rb: Changing module name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48013 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 01:10:12 +00:00
duerst b95ec57da2 lib/unicode_normalize.rb: Changing require statement, adjusting copyright.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48012 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 01:08:13 +00:00
duerst e4f71908d6 lib/unicode_normalize.rb: Importing from
https://github.com/duerst/eprun/blob/master/lib/string_normalize.rb.
(removing trailing whitespace, fixing EOLs and adding EOL property)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48011 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 01:04:10 +00:00
duerst deeb1313bc tool/unicode_norm_gen.rb: Changed module name.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48010 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 00:56:58 +00:00
svn 4bf30d2944 * remove trailing spaces.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48009 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 00:48:55 +00:00
duerst 4c769ce021 lib/unicode_normalize/normalize.rb: Changed module name, adjusted copyright.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48008 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 00:48:52 +00:00
svn d64dc54e0c * properties.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48007 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 00:38:53 +00:00
svn 165b9120c5 * 2014-10-19
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48006 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 00:38:50 +00:00
duerst 6017de0314 lib/unicode_normalize/normalize.rb: Importing from
https://github.com/duerst/eprun/blob/master/lib/normalize.rb.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48005 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-19 00:38:40 +00:00
svn bb49cd8a6c * 2014-10-18
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48002 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-18 11:46:47 +00:00
ktsj a2608f293d * vm_core.h, proc.c, vm_backtrace.c, vm_trace.c:
remove rb_binding_new_with_cfp, and use rb_vm_make_binding instead.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48001 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-18 11:46:41 +00:00
ktsj 231f45ad36 * vm_core.h, vm.c, proc.c: fix GC mark miss on bindings.
[ruby-dev:48616] [Bug #10368]

* test/ruby/test_eval.rb: add a test code.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@48000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-18 11:46:31 +00:00
akr 108627d911 * pack.c (pack_unpack): Add casts for char references for 'u'.
Fix line ending recognition algorithm.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47999 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 14:28:34 +00:00
akr 50650bb338 * pack.c (pack_unpack): Add casts for char references for 'b' and 'h'.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47998 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 12:52:26 +00:00
akr 0d4185f30e * Avoid undefined behaviors found by gcc -fsanitize=undefined.
gcc (Debian 4.9.1-16) 4.9.1

* string.c (rb_str_sum): Avoid undefined behavior.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47997 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 09:49:28 +00:00
akr 1efb3c31b7 * Avoid undefined behaviors found by gcc -fsanitize=undefined.
gcc (Debian 4.9.1-16) 4.9.1

* include/ruby/ruby.h (INT2FIX): Avoid undefined behavior.

* node.h (nd_set_line): Ditto.

* pack.c (encodes): Ditto.
  (pack_unpack): Ditto.

* regint.h (BIT_STATUS_AT): Ditto.
  (BS_BIT): Ditto.

* time.c (time_mdump): Ditto.
  (time_mload): Ditto.

* vm_core.h (VM_FRAME_MAGIC_MASK): Ditto.

* vm_trace.c (recalc_add_ruby_vm_event_flags): Ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47996 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 08:50:01 +00:00
nobu 0f67a3bb31 symbol.c (register_sym): debug code
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47995 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 08:00:42 +00:00
nobu ae7de68961 erb: multiline anchors
* bin/erb (ARGV.switch, ERB::Main#run): use beginning/end of
  string anchors instead of beginning/end of line anchors.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 06:30:08 +00:00
nobu 99eeaca547 erb: fix -U option
* bin/erb (ERB::Main#run): fix NoMethodError at -U option.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47993 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 06:23:39 +00:00
nobu a2797a454c re.c: mak eregexps with binary escapes ASCII-8BIT
* re.c (unescape_nonascii): make dynamically compiled US-ASCII
  regexps ASCII-8BIT encoding if binary (hexadecimal, control,
  meta) escapes are contained, as well as literal regexps.
  [ruby-dev:48626] [Bug #10382]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 06:06:43 +00:00
nobu 4f07b14190 signal.c: use writev
* signal.c (check_reserved_signal): print messages by writev() if
  available.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47991 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 05:14:14 +00:00
nobu fb10a2cba5 signal.c: exclude terminators
* signal.c (check_reserved_signal): exclude terminator in literal
  strings.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47990 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-17 05:14:02 +00:00
svn d9f3b27c1a * 2014-10-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47986 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 18:12:02 +00:00
normal 585e1594c9 Revert r47971, r47972 [ruby-core:65764]
The current implementation currently delivers signals to self
immediately and synchronously, so we do not need explicit,
potentially-confusing sleeps to wait for signal delivery.

* test/-ext-/bug_reporter/test_bug_reporter.rb
  (test_bug_reporter_add): revert r47972
* test/ruby/test_rubyoptions.rb (test_segv_test): revert r47971
  [ruby-core:65764]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47985 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 18:11:49 +00:00
nobu b7a0038505 signal.c: get rid of heap corruption
* signal.c (rb_sigaltstack_size): double default size to get rid
  of heap corruption by alternate stack overflow in SEGV handler.
  typically happened at fprintf() in control_frame_dump().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47984 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 14:17:34 +00:00
akr 0ee11fc6a7 * vm_backtrace.c (id2str): Fix a variable name.
[ruby-dev:48642] [Bug #10389]



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 13:45:53 +00:00
akr 6338a3a4a4 Set an encoding for SEGV message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 13:18:44 +00:00
akr 4c02456b3d Set ASCII-8BIT encoding.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47979 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 12:27:43 +00:00
akr 53da7250ed * test/ruby/envutil.rb (assert_pattern_list): Show number of matched
patterns and characters.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47978 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 11:18:06 +00:00
nobu 0d88cd9394 signal.c: abort if nesting reserved signal
* signal.c (check_reserved_signal): abort if reserved signal
  received in reserved signal handlers.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47977 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 08:15:46 +00:00
normal 5c3c2ddda2 cont.c (fiber_store): fix WIN32 fibers
[ruby-core:65745] [ruby-core:65758]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47975 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 07:27:26 +00:00
nobu 04e5c65ff7 parse.y: do not use disposed string
* parse.y (parser_here_document): do not append already appended
  and disposed code fragment.  [ruby-dev:48647] [Bug #10392]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47973 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 06:05:03 +00:00
normal eec651a05e test/-ext-/bug_reporter/test_bug_reporter.rb: fix race
Signal delivery is not immediate, so wait for signal delivery.

* test/-ext-/bug_reporter/test_bug_reporter.rb
  (test_bug_reporter_add): fix race

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47972 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 02:01:51 +00:00
normal 720ef2546d test/ruby/test_rubyoptions.rb: fix race
Signal delivery is not guaranteed to be immediate, a process may
exit before receiving signal it sent itself.

* test/ruby/test_rubyoptions.rb (test_segv_test): fix race

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47971 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 01:10:53 +00:00
nobu 8b1955d060 cont.c: fix typedef
* cont.c (rb_fiber_struct): remove useless typedef.
  [Feature #10341]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47970 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 00:19:22 +00:00
nobu c36e3466a6 cont.c: fix compile error
* cont.c (rb_fiber_t): fix compile error caused by move to
  vm_core.h at r47964.  [Feature #10341]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 00:17:44 +00:00
normal e03546fd4c test/ruby/test_process.rb: avoid killing wrong parent
We must capture intended target PID before forking, since
Process.ppid may change if parent dies (e.g. due to timeout)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47968 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-16 00:06:09 +00:00
normal d910af94d5 cont.c: fix when FIBER_USE_NATIVE is 0
* cont.c (fiber_store): restore references to next_fib (fix typo)

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47967 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 23:40:33 +00:00
normal 397271caa3 cont.c: fix build when FIBER_USE_NATIVE is 0
* cont.c (fiber_store): remove references to nextfib

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47966 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 23:27:01 +00:00
akr f65a15b0cf update doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47965 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 23:12:21 +00:00
normal 5c8c88a3e9 cont.c: Optimize fiber_switch callees
Remove some unnecessary VALUE/struct conversions and aggressively inline
functions used during fiber_switch. Either of these changes alone does
not yield significant performance increase, but in combination they
improve performance by ~6%.

Arguably, removal of separate VALUE/rb_fiber_t* variables also makes the
code more readable in a few places.

* vm_core.h: declare rb_fiber_t typedef
  (rb_thread_t): fiber and root_fiber become rb_fiber_t * (from VALUE)
* vm.c (rb_thread_mark): use rb_fiber_mark_self
* cont.c (rb_fiber_t): prev becomes rb_fiber_t * (from VALUE)
  (cont_mark, cont_free): simplify conditions
  (rb_fiber_mark_self): new function
  (fiber_mark): use rb_fiber_mark_self
  (cont_save_thread, cont_restore_thread): inline
  (cont_restore_thread): simplify
  (fiber_setcontext): simplify conditions
  (rb_cont_call): remove dereference
  (fiber_t_alloc): update for rb_fiber_t->prev type change
  (rb_fiber_start): ditto
  (fiber_current): extract from rb_fiber_current
  (return_fiber): move, simplify type checks
  (rb_fiber_current): use fiber_current
  (fiber_store): simplify type checks
  (fiber_switch): ditto, simplify call to fiber_setcontext,
   use fiber_current
  (rb_fiber_transfer): update for type changes
  (rb_fiber_terminate): move, use fiber_switch
  (rb_fiber_resume): update for type changes
  (rb_fiber_reset_root_local_storage): ditto
  (rb_fiber_yield): use rb_fiber_switch instead of rb_fiber_transfer
  (rb_fiber_m_transfer): ditto
  [ruby-core:65518] [Feature #10341]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47964 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 22:35:08 +00:00
normal 71fcbf22a4 cont.c (cont_save_thread): Sparse copying of thread data
Instead of copying the complete rb_thread_t struct (almost a kB),
selectively copy only those fields that will be needed later on.

* cont.c (rb_context_t): comment on saved_thread
  (cont_save_thread): sparse copy
  (cont_init): copy extra fields
  (fiber_init): use current thread VM stack size
  [ruby-core:65518] [Feature #10341]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47963 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 22:35:01 +00:00
normal baeb94fa3d cont.c: Small code cleanup
Remove variable that is used only once, several lines after
initialization.

* cont.c (cont_capture): remove unnecessary variable
  [ruby-core:65518] [Feature #10341]

Author: Knut Franke <Knut.Franke@gmx.de>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47962 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 22:34:53 +00:00
normal 0bd492c6bf cont.c: Code cleanup in fiber_switch/fiber_store
Defragment code blocks depending on FIBER_USE_NATIVE in order to make
the control flow (which is already non-trivial due to nonlocal jumps) in
each case more comprehensible.

Remove some unreachable code from fiber_switch (we've already excluded
the case (th->fiber == fibval) at the start of the function).

Remove call to rb_fiber_current which happened a few lines after
accessing GET_THREAD()->fiber directly (so if that's ever 0 we're
already screwed).

Author: Knut Franke <Knut.Franke@gmx.de>

* cont.c (fiber_store, fiber_switch): simplify
  [ruby-core:65518] [Feature #10341]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47961 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 22:34:43 +00:00
svn 9766fc4d70 * 2014-10-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47960 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 22:34:41 +00:00
normal 6f6238a70c cont.c: Remove unused prev_fiber/next_fiber fields
They were added in r19890 (8a0d53a), with the explanation that it's a
double linked list of fibers in the same thread, but without any code
using them.

* cont.c (rb_fiber_t): remove prev_fiber/next_fiber
  (fiber_link_join, fiber_link_remove): remove functions
  (fiber_free, fiber_init, root_fiber_alloc):
   remove references to removed fields and functions
  [ruby-core:65518] [Feature #10341]

Author: Knut Franke <Knut.Franke@gmx.de>

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2014-10-15 22:34:30 +00:00