Commit graph

133 commits

Author SHA1 Message Date
yugui
c6b4cb122e merges r22091 from trunk into ruby_1_9_1.
* signal.c (register_sigaltstack): ignore sigaltstack error.
  It fails on OpenBSD 4.4 when pthread library is linked.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@22517 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-02-22 09:48:12 +00:00
yugui
a33f0de6a9 merges r21746 from trunk into ruby_1_9_1.
* signal.c (trap_handler): also accepts symbols.  [ruby-dev:37823]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21827 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-28 09:22:07 +00:00
yugui
17e8f185de merges r21265 from trunk into ruby_1_9_1.
* signal.c (rb_signal_buff_size): defined for check whether signal
  is in the buffer or not.

* thread_pthread.c (thread_timer): don't exit the loop when signal
  is in the buffer. [ruby-dev:37637]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@21302 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2009-01-04 06:15:14 +00:00
yugui
1f3c6d2d82 merges r20482 from trunk into ruby_1_9_1.
* ext/curses/curses.c (window_getch): avoid ISPRINT() macro which
  has an issue with OpenSolaris.  [ruby-core:20189]

* signal.c (ruby_signal): EINVAL from sigaction(2) is not a bug.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20506 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-04 08:55:54 +00:00
usa
0be17bc89b * signal.c (register_sigaltstack): no need to define on non-sigaltstack
platform.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20434 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-12-01 07:06:26 +00:00
yugui
c16831bff7 merges r20372-r20375 and r20380 from trunk into ruby_1_9_1.
* signal.c (register_sigaltstack): minimum size is insufficient for
  method calls.

* signal.c (sigsegv): handles stack overflow if possible.

* thread.c (ruby_thread_stack_overflow): helper function to raise
  sysstack_error.

* thread_pthread.c (ruby_stack_overflowed_p): checks for stack
  overflow.

* signal.c (ruby_sigaction_t): added.

* signal.c (register_sigaltstack): stores alt stack for debug
  purpose.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20422 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-30 09:24:41 +00:00
yugui
b2bfcf403c merges r20341 from trunk into ruby_1_9_1.
* signal.c (register_sigaltstack): should not add external
  variable (with some cosmetic changes).  [ruby-dev:37158]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20404 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-30 09:22:05 +00:00
yugui
28e9777e4a * signal.c (default_handler, Init_signal): compile error if
USE_SIGALTSTACK is not defined.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20334 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-23 07:07:34 +00:00
yugui
d9370969de * signal.c (ALT_STACK_SIZE): 4KB is not enough on Mac OS X.
Uses SIGSTKSZ.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20324 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-22 14:52:28 +00:00
yugui
54a59308c4 merges r20293 from trunk into ruby_1_9_1.
* signal.c (register_sigaltstack): use alternative stack for
  SIGSEGV to avoid uncaught stack overflow. based on a patch from
  Hiro Yoshioka <hyoshiok at miraclelinux.com> in [ruby-dev:37134].
  [ruby-dev:36993]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_9_1@20323 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-11-22 14:52:21 +00:00
nobu
5c3fe0e339 * signal.c (signal_buff): made static. a patch by Tadashi Saito
<shiba AT mail2.accsnet.ne.jp> at [ruby-dev:36915]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19928 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-24 18:58:52 +00:00
yugui
642e081879 * dln.c: Ruby no longer supports MacOS 9 or before.
* eval.c: ditto.

* eval_intern.h: ditto.

* ext/extmk.rb: ditto.

* ext/tk/sample/tkextlib/treectrl/demo.rb: ditto.

* ext/tk/stubs.c: ditto.

* file.c: ditto.

* hash.c: ditto.

* include/ruby/defines.h: ditto.

* ruby.c: ditto.

* signal.c: ditto.

* vm_core.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19680 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-04 13:42:00 +00:00
yugui
8dd118c0db * djgpp/GNUmakefile.in: removed. Ruby no longer supports djgpp.
* djgpp/README.djgpp: ditto.

* djgpp/config.hin: ditto.

* djgpp/config.sed: ditto.

* djgpp/configure.bat: ditto.

* djgpp/mkver.sed: ditto.

* ext/Setup.dj: ditto.

* dln.c: removed djgpp supports.

* file.c: ditto.

* gc.c: ditto.

* io.c: ditto.

* process.c: ditto.

* ruby.c: ditto.

* signal.c: ditto.

* util.c: ditto.

* vm_core.h: ditto.

* lib/fileutils.rb: ditto.

* lib/mkmf.rb: ditto.

* ext/socket/socket.c: ditto.

* test/fileutils/test_fileutils.rb: ditto.

* test/ruby/test_env.rb: ditto.

* test/ruby/test_path.rb: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19678 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-10-04 13:25:12 +00:00
ko1
2e311f6bd5 * include/ruby/node.h, node.h: move node.h from include path.
This change stop to install node.h beacuase of saving ABI
  (node.h will be changed. Extensions should not depends on
  this file).
* blockinlining.c, class.c, compile.c, debug.h, enum.c,
  gc.c, iseq.c, parse.y, ruby.c, signal.c, variable.c,
  vm.c, vm_core.h, vm_dump.c: ditto.
* ext/ripper/depend: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19500 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-23 19:52:31 +00:00
ko1
29f5911cf5 * signal.c (signal_exec): execute rb_eval_cmd() directly.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19497 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-23 19:09:11 +00:00
ko1
445e26fb00 * signal.c (signal_exec): fix to use rb_proc_call().
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19488 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-23 11:37:23 +00:00
nobu
c5bf9ceef6 * vm_core.h (struct rb_vm_struct): replaced signal staff with trap
staff.

* signal.c (signal_buff): per process resouce now.

* signal.c (trap_list): moved to VM.

* signal.c (rb_get_next_signal): reverted.

* signal.c (rb_trap_exit): trap_pending_list was no longer used.

* thread.c (timer_thread_function): delivers buffered per-process
  signals to each VMs.

* vm.c (rb_vm_mark): marks trap_list.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-04 04:22:04 +00:00
ko1
204929af9d * include/ruby/signal.h: removed.
* common.mk, class.c, eval.c, eval_intern.h, file.c, gc.c, hash.c,
  io.c, process.c, signal.c: vm_core.h: ditto.
  Some unused external global variables are also removed.
  (rb_prohibit_interrupt, rb_trap_immediate, rb_trap_pending,
  rb_thread_critical)
* ext/openssl/ossl_ssl.c, ext/openssl/ossl_x509store.c,
  ext/readline/readline.c, ext/socket/depend,
  ext/socket/socket.c: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@19080 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-09-03 08:00:05 +00:00
nobu
1b2af065a2 * signal.c (signal_exec, trap_handler): trap accepts a string as
command.  [ruby-dev:35533]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@18084 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-07-16 09:04:37 +00:00
nobu
4641b80166 * gc.c (ruby_gc_stress): moved to rb_objspace_t.
* gc.c (gc_stress_get, gc_stress_set): VM local attribute.

* signal.c (sigsegv): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17153 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-13 15:09:22 +00:00
akr
aaa90dddfb update Signal.list rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@17087 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-06-10 23:23:36 +00:00
mame
bd9030438e * signal.c (esignal_signo): fix SignalException#signo which returned
nil absolutely.

* signal.c (esignal_init): always prepend "SIG" to a string that is
  returned by SignalException#signm.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-30 13:32:39 +00:00
mame
9df121034a * signal.c (esignal_init): handle a non-integer argument correctly,
allowing SignalException.new(:INT).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16688 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-05-29 17:08:48 +00:00
nobu
87e4ad0a23 * io.c, signal.c, thread.c, thread_win32.c, include/ruby/intern.h:
suppress warnings.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16204 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-26 09:36:35 +00:00
nobu
e615e3ce30 * error.c (builtin_types), signal.c (siglist), st.c (primes),
struct.c (ref_func), time.c (months): constified.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@16199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-04-26 08:30:22 +00:00
usa
c4693e62af * signal.c: sorry, commit miss.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15606 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-26 06:10:45 +00:00
usa
116b15765d * 2008-02-26
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15605 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-26 00:09:17 +00:00
nobu
82f631ac57 * configure.in (sigsetmask): check when signal semantics is not POSIX.
* signal.c (USE_TRAP_MASK): set true if sigprocmask or sigsetmask is
  available.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@15476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-02-14 17:40:56 +00:00
akr
6cdef2dc7e * $Date$ keyword removed to avoid inclusion of locale dependent
string.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14912 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2008-01-06 15:49:38 +00:00
ko1
314bef7ef1 * insnhelper.ci, vm.c, vm_core.h: change interface of
vm_invoke_block() to specify block ptr.  [ruby-talk:266422]
* cont.c, eval_jump.ci, insns.def, proc.c, signal.c, thread.c:
  apply above change.
* bootstraptest/test_knownbug.rb: move fixed bug.
* bootstraptest/test_block.rb: ditto. and add a test.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14356 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-20 07:07:35 +00:00
akr
1dd06c4301 * signal.c (posix_signal): return value.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14137 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-12-08 09:01:43 +00:00
matz
da42035b09 * signal.c (ruby_signal): use SA_SIGINFO if available.
[ ruby-Patches-6418 ]

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14057 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-30 14:49:45 +00:00
matz
29c7c72e09 * signal.c (trap_signm): SIGVTALRM no longer used for green
thread.  [ruby-talk:281318]

* signal.c (ruby_sig_finalize): do not install SIG_DFL handler if
  previous handler is sighandler().

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@14056 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-11-30 14:08:58 +00:00
matz
07d12a2a5f * vm_core.h (rb_vm_struct): fix typo: bufferd -> buffered.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13546 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-09-28 07:25:51 +00:00
matz
a25fbe3b3e * encoding.c: provide basic features for M17N.
* parse.y: encoding aware parsing.

* parse.y (pragma_encoding): encoding specification pragma.

* parse.y (rb_intern3): encoding specified symbols.

* string.c (rb_str_length): length based on characters.  
  for older behavior, bytesize method added.

* string.c (rb_str_index_m): index based on characters.  rindex as
  well.

* string.c (succ_char): encoding aware succeeding string.

* string.c (rb_str_reverse): reverse based on characters.

* string.c (rb_str_inspect): encoding aware string description.

* string.c (rb_str_upcase_bang): encoding aware case conversion.
  downcase, capitalize, swapcase as well.

* string.c (rb_str_tr_bang): tr based on characters.  delete,
  squeeze, tr_s, count as well.

* string.c (rb_str_split_m): split based on characters.

* string.c (rb_str_each_line): encoding aware each_line.

* string.c (rb_str_each_char): added.  iteration based on
  characters.

* string.c (rb_str_strip_bang): encoding aware whitespace
  stripping.  lstrip, rstrip as well.

* string.c (rb_str_justify): encoding aware justifying (ljust,
  rjust, center).

* string.c (str_encoding): get encoding attribute from a string. 

* re.c (rb_reg_initialize): encoding aware regular expression

* sprintf.c (rb_str_format): formatting (i.e. length count) based
  on characters.

* io.c (rb_io_getc): getc to return one-character string.
  for older behavior, getbyte method added.

* ext/stringio/stringio.c (strio_getc): ditto.

* io.c (rb_io_ungetc): allow pushing arbitrary string at the
  current reading point.

* ext/stringio/stringio.c (strio_ungetc): ditto.

* ext/strscan/strscan.c: encoding support.

git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13261 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-08-25 03:29:39 +00:00
ko1
6b6bf4dd48 * blockinlining.c: remove "yarv" prefix.
* array.c, numeric.c: ditto.
* insnhelper.ci, insns.def, vm_evalbody.ci: ditto.
* yarvcore.c: removed.
* yarvcore.h: renamed to core.h.
* cont.c, debug.c, error.c, process.c, signal.c : ditto.
* ext/probeprofiler/probeprofiler.c: ditto.
* id.c, id.h: added.
* inits.c: ditto.
* compile.c: rename internal functions.
* compile.h: fix debug flag.
* eval.c, object.c, vm.c: remove ruby_top_self.
  use rb_vm_top_self() instead.
* eval_intern.h, eval_load: ditto.
* gc.c: rename yarv_machine_stack_mark() to
  rb_gc_mark_machine_stack().
* insnhelper.h: remove unused macros.
* iseq.c: add iseq_compile() to create iseq object
  from source string.
* proc.c: rename a internal function.
* template/insns.inc.tmpl: remove YARV prefix.
* thread.c:
* vm.c (rb_iseq_eval): added.
* vm.c: move some functions from yarvcore.c.
* vm_dump.c: fix to remove compiler warning.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-07-12 04:25:46 +00:00
nobu
eae8a9143f * debug.c (ruby_set_debug_option): separated from main.c.
* gc.c (ruby_gc_stress), signal.c (ruby_enable_coredump): prefixed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12665 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-29 07:57:24 +00:00
akr
9f46c2ba2e refine previous change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12654 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-29 03:08:19 +00:00
akr
dea470cca4 debug environment variable refined.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-28 14:22:30 +00:00
ko1
97ba019c94 * vm.c: some refactoring.
* rename th_* to vm_*.
  * remove unused variables functions.
  * add prototypes.
* blockinlining.c, compile.c, cont.c, eval.c, eval_intern.h,
  eval_jump.h, eval_load.c, inits.c, insns.def, iseq.c, parse.y,
  proc.c, process.c, signal.c, thread.c, vm.c, vm_dump.c,
  vm_evalbody.ci, yarvcore.c, yarvcore.h: ditto.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12603 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-24 15:42:41 +00:00
ko1
4471bf2356 * signal.c (sigsegv): clear gc_stress flag on SEGV.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12564 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-17 17:46:25 +00:00
akr
8092d0bd87 fix trap's doc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12556 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-15 14:33:59 +00:00
akr
787f96eb97 * signal.c (default_handler): func argument removed.
(trap_handler): support SYSTEM_DEFAULT.  call default_handler
  internally.
  (sig_trap): don't call default_handler.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12554 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-15 13:38:32 +00:00
akr
cebc9bb19d * signal.c (trap_handler): trap("SIGSEGV", "DEFAULT") may cause wrong
trap error because SIG_DFL may be zero.



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12550 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-15 09:58:10 +00:00
akr
e3dd9a78db re-introduce RUBY_GC_STRESS test removed by YARV.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12549 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-15 08:38:58 +00:00
nobu
2b592580bf * include/ruby: moved public headers.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12501 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-06-10 03:06:15 +00:00
nobu
06eeec8a40 * signal.c (interrupt_init): needs to pass nil for Interrupt.
[ruby-core:11038]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12407 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-29 17:13:05 +00:00
nobu
290569b06c * signal.c (trap): fixed segfaults. [ruby-dev:30830]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12406 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-05-29 17:08:37 +00:00
nobu
3fc37d71c4 * eval.c (ruby_cleanup): re-send signal. [ruby-dev:30516]
* eval_error.h (error_handle): no message when exiting by signal.

* intern.h (rb_thread_signal_raise, ruby_default_signal): prototypes.

* signal.c (esignal_init): takes a signal number and an optional
  signal name.

* signal.c (interrupt_init): pass SIGINT always.

* signal.c (ruby_default_signal): invoke system default signal
  handler.

* signal.c (rb_f_kill): use NUM2PIDT instead of NUM2INT.

* signal.c (rb_signal_exec, trap): handle SIGTERM.  [ruby-dev:30505]

* thread.c (rb_thread_signal_raise): now takes signal number instead
  of signal name.

* thread.c (rb_thread_signal_exit): since rb_make_exception() calls
  #exception method, rb_class_new_instance() is not needed here.

* yarvcore.h (struct rb_vm_struct), eval_jump.h (terminate_process):
  exit_code is no longer stored in VM.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@12199 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-04-19 17:37:03 +00:00
ko1
757ed3ccf1 * ruby.h: define RUBY_VM macro and remove NATIVETHREAD* macros.
* intern.h: ditto.
* signal.c (posix_signal): remove unused function
  posix_nativethread_signal().



git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@11880 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2007-02-25 02:43:43 +00:00