Commit graph

7384 commits

Author SHA1 Message Date
nobu
fe3cba8e6f * eval.c (rb_gc_mark_threads): keep unmarked threads which won't wake
up alone, and mark threads in the loading table.  [ruby-dev:28154]

* eval.c (rb_gc_abort_threads), gc.c (gc_sweep): kill unmarked
  threads.  [ruby-dev:28172]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9759 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-29 14:59:55 +00:00
akr
6779556b23 fix "-e:1: undefined method `sub' for main:Object (NoMethodError)"
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9758 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-29 14:54:13 +00:00
matz
de3bff164c * eval.c (rb_mod_define_method): should save safe_level in the
proc object.  [ruby-dev:28146]

* test/drb/drbtest.rb (DRbService::self.ext_service): increase
  timeout limit.  a patch from Kazuhiro NISHIYAMA
  <zn at mbf.nifty.com>. [ruby-dev:28132]

* eval.c (ev_const_get): fixed a bug in constant reference during
  instance_eval.  [yarv-dev:707]

* eval.c (ev_const_defined): ditto.

* lib/yaml.rb (YAML::add_domain_type): typo fixed.  a patch from
  Joel VanderWerf <vjoel at path.berkeley.edu>.
  [ruby-talk:165285] [ruby-core:6995]

* ext/digest/sha2/sha2.c (ULL): support AIX C.  a patch from
  Kailden <kailden at gmail.com>.  [ruby-core:06984]

* ext/syck/rubyext.c (rb_syck_compile): avoid potential memory
  leak.

* ext/syck/rubyext.c (syck_set_ivars): avoid potential memory
  leak by explicit symbol allocation.

* lib/delegate.rb (Delegator::method_missing): should delegate
  block as well.

* lib/cgi.rb (CGI::QueryExtension::MorphingBody): fix criteria to
  use Tempfile.  A fix from Zev Blut <rubyzbibd at ubit.com>.
  [ruby-core:06076]

* string.c: remove global functions work on $_.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9757 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-29 12:05:16 +00:00
matz
e5226ea394 * eval.c (rb_mod_define_method): should save safe_level in the
proc object.  [ruby-dev:28146]

* test/drb/drbtest.rb (DRbService::self.ext_service): increase
  timeout limit.  a patch from Kazuhiro NISHIYAMA
  <zn at mbf.nifty.com>. [ruby-dev:28132]

* eval.c (ev_const_get): fixed a bug in constant reference during
  instance_eval.  [yarv-dev:707]

* eval.c (ev_const_defined): ditto.

* lib/yaml.rb (YAML::add_domain_type): typo fixed.  a patch from
  Joel VanderWerf <vjoel at path.berkeley.edu>.
  [ruby-talk:165285] [ruby-core:6995]

* ext/digest/sha2/sha2.c (ULL): support AIX C.  a patch from
  Kailden <kailden at gmail.com>.  [ruby-core:06984]

* ext/syck/rubyext.c (rb_syck_compile): avoid potential memory
  leak.

* ext/syck/rubyext.c (syck_set_ivars): avoid potential memory
  leak by explicit symbol allocation.

* lib/delegate.rb (Delegator::method_missing): should delegate
  block as well.

* lib/cgi.rb (CGI::QueryExtension::MorphingBody): fix criteria to
  use Tempfile.  A fix from Zev Blut <rubyzbibd at ubit.com>.
  [ruby-core:06076]

* string.c: remove global functions work on $_.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9756 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-29 11:53:33 +00:00
akr
99ee69b9f2 * test/ruby/envutil.rb (EnvUtil.rubybin): search "ruby" instead of
"miniruby".  [ruby-dev:28140]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9754 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-29 08:05:26 +00:00
eban
a274020ff7 * 2005-12-29
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9753 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-29 05:56:49 +00:00
ocean
b29384860c * lib/generator.rb: reimplemented Generator class with Thread instead of
callcc, in order to fix memory leak. [ruby-dev:28142]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9752 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-29 02:29:26 +00:00
akr
056561c5dd * ia64.s: remove .pred.safe_across_calls directive.
reported by WATANABE Tetsuya.  [ruby-dev:28141]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9751 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-28 05:14:10 +00:00
akr
ebd3d34ff0 * eval.c (struct thread): add bstr_max.
(rb_thread_save_context): use realloc instead of REALLOC_N
  to avoid GC.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9750 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27 16:35:57 +00:00
eban
a17dc68aa0 * 2005-12-28
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9749 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27 15:07:34 +00:00
nobu
c3144a39a7 * lib/optparse.rb (CompletingHash#match): fix for 1.9.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9748 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27 15:00:21 +00:00
akr
c1bf7315ae update previous change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9747 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27 11:52:54 +00:00
akr
ae2e26b23f add ML ref.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9746 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27 10:21:56 +00:00
akr
f59bd226b3 * configure.in: define IA64 for portability. (HP aC++/ANSI C doesn't
define __ia64__.)
  don't check libunwind stuff.
  check __libc_ia64_register_backing_store_base.

* defines.h: declare rb_ia64_bsp and rb_ia64_flushrs.
  (flush_register_windows): call rb_ia64_flushrs on IA64.

* ia64.s: new file for IA64.
  it is separated from C program files because
  Intel C++ Compiler for IA64 doesn't support inline assembly.

* common.mk (ia64.$(OBJEXT)): new target.

* ruby.h (RUBY_INIT_STACK): defined.
  (ruby_init_stack): declared for RUBY_INIT_STACK.

* main.c (main): precedes RUBY_INIT_STACK before ruby_init.

* gc.c (rb_gc_register_stack_start): new global variable on IA64.
  (garbage_collect): simplify register stack marking code.
  don't use libunwind.
  (Init_stack): initialize rb_gc_register_stack_start.
  (ruby_init_stack): new function for RUBY_INIT_STACK.

* eval.c (struct thread): add bstr_pos member for original position of
  register stack.
  (rb_thread_save_context): simplify register stack saving code.
  don't use libunwind.
  (rb_thread_restore_context_0): new function.  moved from
  rb_thread_restore_context except the stack position checking code.
  don't use libunwind for IA64 register stack.
  (register_stack_extend): new function.
  (stack_extend): make it self-recursive with
  the stack position checking code in old rb_thread_restore_context.
  (rb_thread_restore_context): just call stack_extend.
  (flush_register_windows): removed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9745 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27 05:40:04 +00:00
aamine
baf0ba4588 * process.c: new method Process.exec. [ruby-dev:28107]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9744 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27 05:10:38 +00:00
eban
f1466bc60a * 2005-12-27
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9743 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-27 04:48:13 +00:00
gotoyuzo
6f640b29cc * ext/openssl/lib/openssl/ssl.rb (OpenSSL::SSL::SSLSocket#post_connection_chech):
treat wildcard character in commonName. [ruby-dev:28121]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9741 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-26 23:26:21 +00:00
nobu
7982996bd4 * 2005-12-26
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9740 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-26 13:36:35 +00:00
nobu
81e5a7c692 * added an old entry.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9739 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-26 13:34:16 +00:00
akr
935712e8e4 (rb_f_test): fix document. [ruby-dev:28087]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9731 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-21 09:20:15 +00:00
ocean
b36585ce42 * file.c (w32_io_info): should return handle because FileIndex is
valid only while file is open. [ruby-dev:28088]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9730 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-21 07:53:55 +00:00
eban
e40aef464a * 2005-12-21
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9727 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-21 05:31:48 +00:00
akr
c7f66bdef9 * test/pathname/test_pathname.rb (test_kernel_open): use
File.identical?.
  [ruby-talk:171804]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9726 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-21 03:14:39 +00:00
nobu
7c52d5f8cf * eval.c (eval_under_i): evaluate source in caller's frame.
[ruby-dev:28076]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9724 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-20 13:41:29 +00:00
why
cda674e39c * ext/syck/rubyext.c (syck_emitter_reset): to ensure compatibility
with previous Ruby versions, documents are no longer headless.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9723 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-20 04:25:48 +00:00
ocean
fb7f646086 * ext/syck/rubyext.c (syck_node_transform): ruby object holding
explicitly freed SyckNode caused SEGV. [ruby-dev:28067]

... I think syck GC problem was solved now!


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9720 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-20 03:34:39 +00:00
eban
e4413741de * 2005-12-20
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9719 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 17:35:37 +00:00
akr
0e1642ebbf * io.c (rb_f_backquote): fix a GC problem on
IA64 with gcc 4.0.3 20051216 (prerelease) -O3.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9718 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 17:11:20 +00:00
ocean
a88e840f77 no message
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9717 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 15:51:11 +00:00
nobu
6df4e18914 * parse.y (rb_symname_p): fixed wrong validation. [ruby-dev:28047]
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9715 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 14:33:11 +00:00
nobu
47084e129c * Makefile.in (XCFLAGS): separated as well as win32/Makefile.sub.
* main.c (always_gc): dllimport is required for VC to import a DLL
  symbol.  fixed: [ruby-dev:28051]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9714 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 14:31:09 +00:00
ocean
9488784157 * ext/syck/syck.h (S_FREE): small hack. no need to check if pointer is
NULL or not before S_FREE.

* ext/syck/rubyext.c (syck_parser_assign_io): rb_check_string_type can
  return new RString. if so, it becomes unreachable from GC after
  returns syck_parser_assign_io, and can be freed by GC. (dangling
  in syck io system) so extends its life time till syck_parse is called.

* ext/syck/rubyext.c (syck_parser_s_alloc): always allocates bonus,
  so no need to check if NULL, and "volatile VALUE hash"
  is not needed. (bonus->port was not protected in syck_emitter_reset)

* ext/syck/rubyext.c (syck_mark_parser): ditto.

* ext/syck/rubyext.c (syck_parser_load): ditto.

* ext/syck/rubyext.c (syck_parser_load_documents): ditto.

* ext/syck/rubyext.c (syck_emitter_s_alloc): ditto.

* ext/syck/rubyext.c (syck_mark_emitter): ditto.

* ext/syck/rubyext.c (syck_emitter_reset): ditto.

* ext/syck/rubyext.c (syck_scalar_value_set): "should set newly
  allocated memory instead of RString's internal storage" stuff again.
  by this, should call syck_free_node instead of rb_syck_free_node.

* ext/syck/rubyext.c (syck_node_type_id_set): ditto.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9713 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 14:13:27 +00:00
ocean
56479b7346 * st.c: uses malloc instead of xmalloc to avoid GC. syck uses st_insert
in gram.c to insert node from rb_syck_bad_anchor_handler into
  SyckParser's hash table. if GC occurs in st_insert, it's not under
  SyckParser's mark system yet. so RString can be released wrongly.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9712 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 14:10:36 +00:00
akr
c6c0e6f26b simplify previous change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9711 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 08:28:12 +00:00
akr
dba8153266 * eval.c (FUNCTION_CALL_MAY_RETURN_TWICE): activate only
before gcc 4.0.3 on SPARC and IA64.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9710 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 03:23:24 +00:00
eban
f511d52438 * 2005-12-19
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9709 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 03:14:19 +00:00
ocean
af5edce080 * ext/syck/rubyext.c: sorry, I reverted my "should set newly
allocated memory instead of RString's internal storage" stuff.
  node allocated in rubyext.c seems to be freed by rb_syck_free_node
  not syck_free_node, and it won't free data.str->ptr and type_id.

 (I still think this is unsafe because RString(foo)->ptr becomes
  dangling pointer when RString is modified or freed, but anyway
  I misunderstood, so go back to original code for now)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9708 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-19 02:42:33 +00:00
ocean
8ed2a927e8 * ext/syck/rubyext.c (syck_emitter_reset): should initialize
emitter->bonus->oid. otherwise rb_gc_mark crashes.

* ext/syck/rubyext.c (syck_mark_parser): should mark anchor nodes
  because they hold ruby objects. (ie: rb_syck_bad_anchor_handler)


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9707 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-17 12:57:05 +00:00
eban
74a077aaba * 2005-12-17
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9706 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-17 08:47:04 +00:00
akr
de85bb0efe * bignum.c (rb_big_rshift): fix a GC problem on
IA64 with gcc 4.0.3 20051216 (prerelease).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9705 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-16 18:59:31 +00:00
akr
3ab3b5b3c8 * eval.c (bmcall): fix a GC problem by tail call on
IA64 with gcc 4.0.3 20051216 (prerelease).


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9704 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-16 18:34:57 +00:00
ocean
44ebf5de34 * ext/syck/rubyext.c (rb_syck_compile): fixed memory leak.
* ext/syck/rubyext.c: should protect global variable from GC.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9702 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-16 08:56:09 +00:00
akr
5700ea57ff revert previous change.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9701 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-16 04:58:51 +00:00
akr
7d2880ddb3 refine "unknown data type" message.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9700 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-16 04:49:46 +00:00
ocean
87ea59c208 * ext/syck/rubyext.c (syck_scalar_value_set): should set newly
allocated memory instead of RString's internal storage.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9699 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-16 03:17:16 +00:00
eban
f4f242b6d2 * 2005-12-16
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9698 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-16 02:47:32 +00:00
ocean
7680ca8d26 * ext/syck/rubyext.c (syck_resolver_tagurize): fixed memory leak.
* ext/syck/rubyext.c (syck_node_type_id_set): should set newly
  allocated memory instead of RString's internal storage.

... these fixes won't fix [ruby-dev:27839]. more work is needed.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9697 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-16 02:45:35 +00:00
matz
2d6dad4f4f * lib/tmpdir.rb: merged RDoc patch from Eric Hodel <drbrain at
segment7.net>.  [ruby-core:06894]


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9694 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-15 03:41:13 +00:00
akr
7d62299a27 require tempdir instead of tempfile.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9693 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-15 03:35:04 +00:00
eban
1d745974b1 * 2005-12-15
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@9692 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2005-12-14 16:50:07 +00:00