Commit graph

722 commits

Author SHA1 Message Date
akr
179a0025aa * defines.h (FLUSH_REGISTER_WINDOWS): defined for IA64.
(flush_register_windows): declare flush_register_windows.

* eval.c (flush_register_windows): new function.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-07-02 09:10:06 +00:00
matz
04f006aea3 * 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/branches/ruby_1_8@8676 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-30 06:20:09 +00:00
ocean
477187defd * dir.c, eval.c, hash.c, process.c, ruby.c: avoid warning "unused
variable" [ruby-dev:26387]

(patch from Kazuhiro NISHIYAMA)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8670 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-28 13:09:58 +00:00
akr
b3f139fb96 * 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/branches/ruby_1_8@8651 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-20 10:00:23 +00:00
matz
f87aa95e94 * 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]

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

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


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8614 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-12 16:58:43 +00:00
akr
4456e39dc5 * 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/branches/ruby_1_8@8601 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-09 11:18:31 +00:00
nobu
aac8fbf09f * 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/branches/ruby_1_8@8590 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-06-07 23:33:51 +00:00
nobu
fc2d1043b9 * ChangeLog: fix entry format.
* eval.c (ruby_init): fix indent.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8526 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-25 23:09:05 +00:00
nobu
a5f61654e9 * dir.c (glob_helper): get rid of using String. [ruby-dev:26180]
* dir.c (push_braces): should skip balanced braces.

* 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/branches/ruby_1_8@8480 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-18 14:39:27 +00:00
usa
a39febbf84 * eval.c (unknown_node): add volatile directive to prototype.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8442 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-13 02:30:15 +00:00
matz
98c1b1d7b3 * eval.c (break_jump): break should not cross functions.
[ruby-list:40818]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8437 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-12 08:33:32 +00:00
nobu
567896ba97 * eval.c (unknown_node): ignore broken NODE to get rid of accessing
possibly inaccessible address.  fixed: [ruby-dev:26122]
  should emit more useful information like [ruby-dev:26126], though.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8426 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-11 16:25:24 +00:00
nobu
a55c6429b9 * eval.c (rb_eval), parse.y (arg): reduce fixnum range literal at
parser.  fixed: [ruby-dev:26113]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8425 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-11 16:21:33 +00:00
matz
1843d8abbc * struct.c (make_struct): allow const_id for accessor names.
[ruby-core:04585]

* eval.c (rb_attr): check if attribute name is local_id or
  const_id.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8421 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-11 01:11:52 +00:00
nobu
ca36f5e6e3 * eval.c (TMP_ALLOC): use macro NEW_NODE() to get rid of warnings on
platforms which have no alloca().  fixed: [ruby-talk:141301]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8419 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-05-10 16:04:52 +00:00
shugo
6f8fe02f96 * eval.c (rb_call0): "return" event hook should be always executed
if event_hooks is set.  fixed: [ruby-core:04662]
  (backported from HEAD)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8263 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-04-07 08:47:09 +00:00
shugo
9606249e46 * eval.c (rb_call0): check event_hooks instead of trace_func.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8182 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-22 13:43:51 +00:00
shugo
c38fd2d127 * eval.c (rb_add_event_hook): new function to add a hook function for
interpreter events. (backported form HEAD)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8180 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-22 08:35:23 +00:00
shugo
9b03ab6f93 * eval.c (rb_call0): call_cfunc() should be protected.
* test/ruby/test_settracefunc.rb: added test for c-return.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8165 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-16 14:39:02 +00:00
matz
be458259da * eval.c (rb_call0): reorganize "return" event post.
* object.c (str_to_id): warn for NUL containing strings.

* re.c (make_regexp): need to free internal regexp structure when
  compilation fails.  [ruby-talk:133228]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8161 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-16 09:26:38 +00:00
matz
7fd15a1651 * ext/socket/socket.c: document from Sam Roberts
<sroberts@uniserve.com> for getsockopt and setsockopt is merged.
  [ruby-doc:824]

* eval.c (block_pass): should not push unique number if a block is
  not an orphan.  [ruby-dev:25808]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8121 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-03-08 09:56:20 +00:00
matz
88d5dcc8de * exception error messages updated. [ruby-core:04497]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@8035 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-28 02:45:23 +00:00
matz
f98ad4f81e * eval.c (is_defined): NODE_IASGN is an assignment.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7983 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-16 15:06:20 +00:00
usa
840f61ba54 * eval.c (stack_extend): add prototype because VC++8 doesn't
accept __declspec(noinline) with K&R style function definitions.
  (backported from CVS HEAD)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7899 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-02-06 10:22:45 +00:00
matz
2ef0c6a109 * document updates - [ruby-core:04296], [ruby-core:04301],
[ruby-core:04302], [ruby-core:04307]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7813 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-24 06:45:50 +00:00
nobu
23409989ed * eval.c (rb_thread_initialize): Thread objects cannot be initialized
again.  fixed: [ruby-core:04067]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7728 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-01-05 03:50:04 +00:00
matz
cd73de1253 * eval.c (svalue_to_avalue): [ruby-dev:25366]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7686 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-29 16:12:13 +00:00
matz
125514995c * dir.c (dir_open_dir): new function. [ruby-dev:25242]
* hash.c (Init_Hash): remove custom "hash" and "eql?".

* lib/set.rb (Set::eql): wrong definition.  [ruby-dev:25207]

* object.c (rb_obj_id_obsolete): warn always.

* eval.c (rb_enable_super): ditto.

* lib/set.rb (Set#==): [ruby-dev:25206]

* lib/pstore.rb (PStore#transaction): Use the empty content when a
  file is not found.  [ruby-dev:24561]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7592 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-18 02:07:31 +00:00
akiyoshi
93291de5aa Add private initialization routine for VMS.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7587 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-17 05:03:33 +00:00
usa
2807bd47af * eval.c (run_trap_eval): prototype; avoid VC++ warnings.
* ext/socket/getaddrinfo.c: fix typo. fixed: [ruby-core:03947]

* win32/win32.c: need to include dln.h.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7531 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-11 03:44:40 +00:00
eban
e237540e7b * eval.c (proc_invoke): use volatile tmp' rather than args'.
[ruby-core:03882]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7457 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-04 05:58:06 +00:00
matz
379e85a5f5 * eval.c (proc_invoke): copy arguments to frame.argv.
[ruby-core:03861]

* object.c (convert_type): use rb_respond_to() again.
  [ruby-dev:25021]

* eval.c (rb_respond_to): funcall respond_to? if it's redefined.
  [ruby-dev:25021]

* io.c (rb_file_initialize): [ruby-dev:25032]

* lib/ostruct.rb (OpenStruct::Marshaler): OpenStruct can be
  marshaled again.  [ruby-core:03862]

* io.c (rb_io_ctl): [ruby-dev:25019]

* io.c (io_fread): need not to null terminate.  [ruby-dev:24998]

* io.c (read_all): remove unnecessary rb_str_resize().
  [ruby-dev:24996]

* io.c (io_read): ditto.

* io.c (rb_io_sysread): use temporary lock.  [ruby-dev:24992]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7447 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-03 09:30:33 +00:00
nobu
d8bb4ebcb6 * eval.c (rb_protect): prevent continuations created inside from being
called from the outside.  [ruby-dev:25003]

* eval.c (rb_callcc, rb_cont_call): prohibit calling from different
  signal contexts.  [ruby-dev:25022]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7439 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-02 07:41:50 +00:00
nobu
fd6cd54474 * eval.c (thread_mark): mark thread group. [ruby-dev:25020]
* eval.c (thgroup_add): check whether the argument is really a Thread.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7436 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-12-02 00:31:17 +00:00
matz
f6348ca0ea * object.c (convert_type): [ruby-core:03845]
* eval.c (rb_funcall_rescue): new function.

* object.c (rb_Array): avoid using rb_respond_to().

* object.c (rb_Integer): ditto.

* eval.c (get_backtrace): no conversion for nil.

* parse.y (reduce_nodes): empty body should return nil.

* lib/cgi/session.rb (CGI::Session::initialize): [ruby-core:03832]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7414 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-29 06:13:52 +00:00
matz
13e9c5ed18 * eval.c (method_missing): raise TypeError for classes do not
have allocators.  [ruby-core:03752]

* lib/erb.rb: [ruby-core:03786]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7383 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-26 05:01:13 +00:00
matz
39080991ab * file.c (rb_file_chown): integer conversion should be prior to
GetOpenFile().  [ruby-dev:24947]

* file.c (rb_file_truncate): ditto.

* file.c (rb_file_s_truncate): ditto.

* dir.c (dir_seek): use NUM2OFFT().

* misc/ruby-mode.el (ruby-non-block-do-re): [ruby-core:03719]

* dir.c (dir_seek): should retrieve dir_data after NUM2INT().
  [ruby-dev:24941]

* string.c (rb_str_splice): should place index wrapping after
  possible modification.  [ruby-dev:24940]

* eval.c (error_print): nicer traceback at interrupt.
  [ruby-core:03774]

* string.c (str_gsub): internal buffer should not be listed by
  ObjectSpace.each_object() by String#gsub.  [ruby-dev:24931]

* lib/cgi/session.rb (CGI::Session::FileStore::initialize): raise
  exception if data corresponding to session specified from the
  client does not exist.

* string.c (str_gsub): internal buffer should not be listed by
  ObjectSpace.each_object().  [ruby-dev:24919]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7354 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-22 15:29:52 +00:00
usa
54c24dfc99 * eval.c (ruby_options): now we cannot call rb_glob() before
ruby_init(), so call rb_w32_cmdvector() at ruby_options().

* win32.{c,h} (rb_w32_cmdvector): rename make_cmdvector() and
  export it.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7254 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-12 06:06:15 +00:00
matz
c5789b5075 * dir.c (rb_glob2): do not allocate buffer from heap to avoid
memory leaks.  use string object for buffering instead.
  [ruby-dev:24738]

* dir.c (join_path): ditto.

* io.c (io_read): external input buffer may be modified even after
  rb_str_locktmp().  [ruby-dev:24735]

* dir.c (fnmatch): p or s may be NULL.  [ruby-dev:24749]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7242 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-10 07:17:53 +00:00
matz
9c56a298e8 * eval.c (proc_invoke): nail down dyna_var node when Proc object
or continuation is created.  [ruby-dev:24671]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7175 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-11-01 23:53:50 +00:00
matz
c2a9b62fd2 * string.c (rb_str_locktmp): lock string temporarily.
* string.c (str_independent): add tmplock check.

* io.c (io_write): lock output string temporarily.
  [ruby-dev:24649]

* io.c (io_write): use rb_str_locktmp().

* io.c (read_all): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7149 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-30 15:33:03 +00:00
matz
c579593b41 * eval.c (rb_thread_start_0): forget to free some memory chunks.
[ruby-core:03611]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7134 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-29 07:59:42 +00:00
matz
5e2fbb9cfa * eval.c (ruby_cleanup): ruby_finalize_1 may cause exception,
should be wrapped by PUSH_TAG/POP_TAG().  [ruby-dev:24627]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7127 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-29 01:06:37 +00:00
matz
ece87af00c * string.c (RESIZE_CAPA): check string attribute before modifying
capacity member of string structure.  [ruby-dev:24594]

* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
  performance.  [ruby-talk:117701]

* sprintf.c (rb_f_sprintf): raise ArgumentError for extra
  arguments, unless (digit)$ style used.

* ext/zlib/zlib.c (gzreader_gets): use memchr() to to gain
  performance.  [ruby-talk:117701]

* sprintf.c (rb_f_sprintf): raise ArgumentError for extra
  arguments, unless (digit)$ style used.

* eval.c (frame_free): Guy Decoux solved the leak problem.
  Thanks.  [ruby-core:03549]

* ext/zlib/zlib.c (zstream_append_input): clear klass for z->input
  to avoid potential vulnerability.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7119 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-27 02:46:54 +00:00
nobu
31e85bd001 * eval.c (get_backtrace): ignore illegal backtrace. [ruby-dev:24587]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7109 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-24 23:04:04 +00:00
nobu
3b6dac4e1d * eval.c (rb_load, search_required, rb_require_safe, rb_require): use
frozen shared string to avoid outside modification.  [ruby-dev:24580]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7106 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-23 15:41:17 +00:00
matz
1f9c8c0650 * eval.c (rb_alias): was warning for wrong condition.
[ruby-dev:24565]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7101 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-22 03:05:10 +00:00
matz
6dea159d03 * ext/zlib/zlib.c (zstream_shift_buffer): should restore class
field of a buffer.  [ruby-dev:24562]

* eval.c (rb_alias): should warn on method discarding.
  [ruby-dev:24546]

* ext/zlib/zlib.c (zstream_expand_buffer_into): hide internal
  string buffer by clearing klass.  [ruby-dev:24548]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7098 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-21 15:27:25 +00:00
matz
2ec51ee0d5 * string.c (str_gsub): reentrant check. [ruby-dev:24432]
* backport all SEGV bug fixes from CVS HEAD.  [ruby-dev:24536]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7090 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-20 12:47:20 +00:00
nobu
959077c8e0 *** empty log message ***
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/branches/ruby_1_8@7088 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2004-10-20 10:29:29 +00:00