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

832 Коммитов

Автор SHA1 Сообщение Дата
ocean ca32aea6a2 * dir.c: changed `foo (*bar)_((boo))' to `foo (*bar)(boo)`.
* enumerator.c, eval.c, gc.c, intern.h, io.c, process.c, ruby.c,
  ruby.h, signal.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9157 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-14 08:30:16 +00:00
ocean 08c1738c51 * bignum.c: changed `foo _((boo))' to `foo(boo)`. [ruby-dev:27056]
* defines.h, dir.c, dln.h, enumerator.c, env.h, error.c, eval.c, file.c,
  gc.c, hash.c, inits.c, intern.h, io.c, lex.c, marshal.c, missing.h,
  node.h, numeric.c, pack.c, process.c, re.h, ruby.c, ruby.h, rubyio.h,
  rubysig.h, signal.c, sprintf.c, st.h, string.c, struct.c, time.c,
  util.c, util.h, variable.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9155 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-14 06:32:32 +00:00
nobu 7c44a27cb2 * eval.c (BEGIN_CALLARGS): pop halfly pushed status.
fixed: [ruby-dev:26881]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9150 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-13 12:47:43 +00:00
matz 82e8e747df * eval.c (proc_save_safe_level): no need to restrict safe level
memoize in $SAFE>=3.  [ruby-dev:27050]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9135 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-12 16:21:50 +00:00
ocean 4409f88ad8 * dln.c: avoid warning of const to non-const convertion.
[ruby-dev:27041]

* eval.c, io.c, ruby.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9128 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-12 11:03:24 +00:00
ocean dda5dc00cf * array.c: moved to ANSI function style from K&R function style.
(used protoize on windows, so still K&R remains on #ifdef part of
   other platforms. And  `foo _((boo))' stuff is still there)
   [ruby-dev:26975]

* bignum.c, class.c, compar.c, dir.c, dln.c, dmyext.c, enum.c,
  enumerator.c, error.c, eval.c, file.c, gc.c, hash.c, inits.c,
  io.c, main.c, marshal.c, math.c, numeric.c, object.c, pack.c,
  prec.c, process.c, random.c, range.c, re.c, regcomp.c, regenc.c,
  regerror.c, regexec.c, regparse.c, regparse.h, ruby.c, signal.c,
  sprintf.c, st.c, string.c, struct.c, time.c, util.h, variable.c,
  version.c: ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9126 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-12 10:44:21 +00:00
matz ef05021686 * array.c: protoize.
* eval.c (splat_value): simpler and consistent array conversion
  for argument splat.  [yarv-dev:599]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-10 13:34:53 +00:00
nobu 17a4e4b1ad * eval.c (rb_thread_switch): convert all exceptions to
SystemExit.  fixed: [ruby-core:05724]

* eval.c (rb_thread_terminated): show backtrace before propagate
  exceptions to main thread.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9092 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-07 01:45:40 +00:00
matz df27d91fc4 * lib/observer.rb: a patch from nornagon <nornagon@gmail.com>
merged to allow arbitrary names for update methods.
  [ruby-core:05416]

* eval.c (rb_f_fcall): new method to avoid inefficiency of
  obj.instance_eval{send(...)} tricks.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9082 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-05 08:40:27 +00:00
matz c3f0592267 * eval.c (rb_call0): wrong condition for $SAFE restoration.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9064 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-09-01 08:13:30 +00:00
nobu aae7040cd0 * eval.c (rb_rescue2): intialization miss. fixed: [ruby-dev:26917]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9050 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-30 14:06:55 +00:00
matz 10ebbcadd9 * eval.c (rb_f_send): do not call private methods if the receiver
is specified.  [ruby-talk:153672]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9043 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-30 04:27:41 +00:00
nobu 743d7affda * eval.c (terminate_process): take String message.
* eval.c (rb_thread_switch): propagate the exception caused thread
  termination directly.  fixed: [ruby-core:05552]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9000 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-17 14:58:47 +00:00
matz 17957e0dfc * eval.c (rb_add_method): preserve safe level in the environment
where a method is defined .

* eval.c (rb_call0): restore preserved safe level in the method
  execution.

* parse.y (lambda): need separate block variable stack
  manipulation and lpar_beg maintenance.  based on a patch found
  in [ruby-core:05551] from Mauricio Fernandez <mfp@acm.org>.

* parse.y (parser_yylex): adjust lpar_beg after tLAMBEG and
  kDO_LAMBDA. [ruby-core:05551]

* parse.y (yycompile): remove unreachable code.  [yarv-dev:570]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8994 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-16 15:24:15 +00:00
nobu 3da52c987f * eval.c (rb_mod_autoload_p, rb_f_autoload_p): added rdoc.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8992 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-16 03:43:44 +00:00
nobu e117437005 * eval.c (rb_rescue2): reduce PUSH_TAG() as well as NODE_RESCUE.
[ruby-dev:26800]

* range.c (range_check, range_init): reduce uselse exceptions.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8988 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-14 15:39:39 +00:00
nobu 3b602c7a74 * eval.c (rb_block_pass): distinguish current block from others.
fixed: [ruby-dev:26274]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8981 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-13 09:52:06 +00:00
nobu 0c624c4bf2 * eval.c (formal_assign): let default values override
arguments to zsuper.  fixed: [ruby-dev:26743]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8959 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-09 12:53:38 +00:00
nobu 09d57b8e0c * parse.y (f_block_arg), eval.c (rb_yield_0): deal with dynamic
variable lambda arguments.  [ruby-core:05540]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8955 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-08 23:24:29 +00:00
nobu 779f4383aa * eval.c (assign): deal with new block argument.
fixed: [ruby-core:05536]

* eval.c (rb_node_arity): follow change of NODE_ARGS.
  fixed: [ruby-dev:26761]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8951 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-08 13:14:08 +00:00
matz aa2de9e3e0 * eval.c (return_jump): fix "can't across thread" error message
when no thread associated.
  http://www.namikilab.tuat.ac.jp/~sasada/diary/200507.html#d31


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8920 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-05 00:50:46 +00:00
nobu 710b99a16b * eval.c (formal_assign): returns position of rest arguments variable.
* parse.y (f_rest_arg): use anonymous variable for rest arguments.
  fixed: [ruby-dev:26647]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8915 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-04 15:18:38 +00:00
nobu c83d6db61b * enumerator.c (Init_Enumerator): provided features should have
extensions.

* eval.c (rb_feature_p): returns type of the feature instead of
  extension.

* eval.c (search_required): ruby library should be prior to statically
  linked extentions.  fixed: [ruby-dev:26711]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8913 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-08-04 15:09:03 +00:00
nobu 0ee34e24e3 * eval.c (rb_yield_0): push yielded node instead of yielding.
fixed: [yarv-dev:549]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8864 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-29 01:00:07 +00:00
nobu 396e297f2d * eval.c (rb_call0): fix calling zsuper from a method with anonymous
rest argument.  [ruby-dev:26639]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8863 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-29 00:58:14 +00:00
matz 759a63b6a3 * parse.y (lambda): Perl6 style -> lambda expression. [NEW]
[VERY EXPERIMENTAL]

* gc.c (id2ref): must not assign pointers to long int.  use
  LONG_LONG instead if SIZEOF_LONG < SIZEOF_VOIDP.
  [ruby-talk:149645]

* ruby.h: use LONG_LONG to simplify the change.
  [ruby-talk:149645]

* dir.c (dir_each): rewinddir(3) before iteration.
  [ruby-talk:149628]

* eval.c (rb_f_throw): replace all '0x%lx' by '%p'.
  [ruby-talk:149553]

* missing/vsnprintf.c (BSD_vfprintf): '%p' need to handle 64bit
  size pointer.  [ruby-talk:149553]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8847 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-27 07:27:19 +00:00
nobu 80914a2666 * eval.c (rb_fd_select): the all three fd_sets must be long enough for
select.  fixed: [ruby-talk:149059]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8826 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-23 02:46:41 +00:00
nobu 6524f34a26 * sprintf.c (rb_vsprintf, rb_sprintf): new functions return new String,
using missing/vsnprintf.c.  [ruby-dev:26580]

*  missing/vsnprintf.c: made the output changeable.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8825 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-23 01:02:18 +00:00
matz 7af1a11438 * error.c (syserr_initialize): add 1 byte for snprintf() size for
NUL at the end.  [ruby-dev:26574]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8802 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-19 14:59:01 +00:00
matz 30434d4078 * error.c (syserr_initialize): need to allocate an additional byte
for NUL at the end.  [ruby-dev:26574]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8801 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-19 13:52:42 +00:00
matz 2031602787 * signal.c (trap): remove sigexit(); handle "EXIT" via sig_exec().
[ruby-dev:26440]

* io.c (rb_io_inspect): replace sprintf() with "%s" format all
  over the place by snprintf() to avoid integer overflow.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8800 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-19 08:31:04 +00:00
ocean c2eeec8fd4 * eval.c (rb_call0): make the pointer to NODE volatile
instead of NODE itself.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8793 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-18 12:41:18 +00:00
akr 06f6c2d355 * eval.c (rb_call0): make body volatile to avoid possible optimization
problem.
  [ruby-dev:26195]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8792 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-18 05:43:13 +00:00
nobu 27ca40e36a * eval.c, intern.h (rb_proc_call, rb_obj_method, rb_method_call):
export.

* ext/enumerator/enumerator.c (enumerator_with_index): [EXPERIMENTAL]
  added a new method Enumerator#with_index.  [ruby-talk:147728]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-11 14:50:42 +00:00
nobu a327eb95d9 * eval.c (rb_thread_save_context): must not switch contexts during
re-allocating stack.  fixed: [ruby-core:05219]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-05 14:28:00 +00:00
akr ef87757c10 fix indent.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-02 08:20:25 +00:00
akr 7215b72363 * defines.h (FLUSH_REGISTER_WINDOWS): defined for IA64.
(flush_register_windows): declare flush_register_windows.

* eval.c (flush_register_windows): new function.

* ruby.h (NOINLINE): move up to be effective in defines.h.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8696 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-02 08:11:24 +00:00
akr 12bed479ec * configure.in: check select_large_fdset.
* eval.c: use select_large_fdset to support large file descriptors
  on Solaris.  [ruby-dev:26404]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8695 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-02 06:22:14 +00:00
matz 639bd5e78f * eval.c (rb_eval): pre-evaluate argument for unambiguous
evaluation order.  [ruby-dev:26383]

* lib/delegate.rb (Delegator::method_missing): forward unknown
  method to the destination.  suggested by
  <christophe.poucet@gmail.com>.  [ruby-talk:146776]

* process.c (detach_process_watcher): terminate process watcher
  thread right after rb_waitpid() succeed.  [ruby-talk:146430]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-30 06:20:09 +00:00
ocean 08133b1344 * dir.c, eval.c, parse.y, process.c, ruby.c: avoid warning "unused
variable" [ruby-dev:26387]

* dir.c (glob_helper): avoid warning "enumeration value `RECURSIVE'
  not handled in switch" [ruby-dev:26392]

(patch from Kazuhiro NISHIYAMA)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8669 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-28 13:08:32 +00:00
akr 258f9f49d6 * eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): DUMMY_SETJMP is replaced
because setjmp is not enough to fix getcontext and SPARC register
  window problem.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-20 10:00:23 +00:00
matz 8db3dc39d6 * signal.c (sigexit): call rb_thread_signal_exit() instead of
rb_exit().  [ruby-dev:26347]

* eval.c (rb_thread_signal_exit): a new function to exit on main
  thread.

* eval.c (rb_thread_switch): exit status should be retrieved from
  ruby_errinfo.

* eval.c (rb_f_exit): ensure exit(0) should call
  exit(EXIT_SUCCESS).

* missing/mkdir.c: remove. [ruby-core:05177]

* hash.c (env_aset): do not treat nil as key-removing value.
  [ruby-list:40865]

* parse.y (method_call): allow aref expression ([]) to take a
  block.

* parse.y (block_dup_check): a function to check duplication of
  a block argument and an actual block.

* lib/delegate.rb (SimpleDelegator::__setobj__): need check for
  recursive delegation.  [ruby-core:04940]

* lib/cgi.rb: add underscore aliases CGI::escape_html,
  CGI::unescape_html, CGI::escape_element, CGI::unescape_element.
  [ruby-core:05058]

* misc/ruby-mode.el (ruby-expr-beg): fix looking point drift.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8613 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-12 16:56:06 +00:00
akr 86aeca931c * eval.c (rb_gc_mark_threads): curr_thread may not be part of the
thread list.
  [ruby-dev:26312]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8611 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-12 16:23:08 +00:00
akr dececad56c * eval.c (unknown_node): show more information. [ruby-dev:26196]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8608 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-10 14:57:37 +00:00
akr 27c228d681 * eval.c (ruby_longjmp): new macro to call longjmp, setcontext, etc.
(ruby_setjmp): new macro to call setjmp, getcontext, etc.
  (ruby_setjmp): call setjmp before getcontext to avoid IA64 register
  stack problem.
  [ruby-talk:144939]

* gc.c (Init_stack): remove IA64_MAGIC_STACK_LIMIT.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-09 11:18:31 +00:00
akr 48f2d3a72d * configure.in, eval.c, gc.c: use libunwind only on HP-UX.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8598 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-09 09:34:31 +00:00
nobu 17920c7a9e * enum.c (enum_min_by, enum_max_by): return nil if no iteration.
fixed: [ruby-dev:26245]

* eval.c (rb_need_block): ensure a block is given.

* eval.c (backtrace): skip successive frames sharing same node.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-07 23:33:51 +00:00
nobu c9d126aec9 * intern.h (rb_fdset_t): deal with fd bit sets over FD_SETSIZE.
fixed: [ruby-dev:26187]

* eval.c (rb_fd_init, rb_fd_term, rb_fd_zero, rb_fd_set, rb_fd_clr,
  rb_fd_isset, rb_fd_copy): ditto.

* io.c (rb_io_wait_readable, rb_io_wait_writable, rb_f_select): ditto.

* ext/io/wait/wait.c (io_wait): ditto.

* ext/socket/socket.c (wait_connectable, unix_recv_io): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8552 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-03 14:23:17 +00:00
nobu 0d5b973720 * vms/vmsruby_private.c, vms/vmsruby_private.h: private routines
for VMS port are added.

* eval.c (ruby_init): change to call VMS private intialization routine.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8527 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-25 23:35:25 +00:00
nobu b272844547 * dir.c (glob_helper): get rid of using String. [ruby-dev:26180]
* eval.c (ruby_options), win32/win32.c (NtInitialize): move argument
  intialization back.  [ruby-dev:26180]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@8476 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-18 02:08:00 +00:00