From 23bcab8d6320b193a385125ad5a91efcf42f8d1d Mon Sep 17 00:00:00 2001 From: matz Date: Thu, 31 Jul 2003 16:34:07 +0000 Subject: * gc.c (Init_stack): IA64 requires STACK_LEVEL_MAX to be less than magic number when optimizer turned on, regardless of rlimit values. git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@4247 b2dd03c8-39d4-4d8f-98ff-823fe69b080e --- ChangeLog | 6 ++++++ doc/irb/irb.rd | 2 +- doc/irb/irb.rd.ja | 6 +++--- gc.c | 8 ++++++++ 4 files changed, 18 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 778ccb8cc6..270fd2cd1a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,9 @@ +Fri Aug 1 00:52:58 2003 Yukihiro Matsumoto + + * gc.c (Init_stack): IA64 requires STACK_LEVEL_MAX to be less than + magic number when optimizer turned on, regardless of rlimit + values. + Thu Jul 31 23:44:00 2003 Masatoshi SEKI * lib/erb.rb: import erb-2.0.4b4. diff --git a/doc/irb/irb.rd b/doc/irb/irb.rd index c1ac367919..a42cd46680 100644 --- a/doc/irb/irb.rd +++ b/doc/irb/irb.rd @@ -221,7 +221,7 @@ For irb commands, both simple name and `irb_'-prefixed name are prepared. Whether readline is used or not. true: uses false: doen't use - nil: intends to use readline except for inf-reuby-mode (default) + nil: intends to use readline except for inf-ruby-mode (default) # #--- conf.verbose=T/F # Whether verbose messages are display or not. diff --git a/doc/irb/irb.rd.ja b/doc/irb/irb.rd.ja index 7e80c7fc6f..bf8ac5d517 100644 --- a/doc/irb/irb.rd.ja +++ b/doc/irb/irb.rd.ja @@ -53,7 +53,7 @@ irb --noinspect 結果出力にinspectを用いない. --readline readlineライブラリを利用する. --noreadline readlineライブラリを利用しない. デフォルトの動作は, - inf-reuby-mode以外でreadlineライブラリを利用しよう + inf-ruby-mode以外でreadlineライブラリを利用しよう とする. --prompt prompt-mode --prompt-mode prompt-mode @@ -232,7 +232,7 @@ irb readlineを使うかどうか? true: readlineを使う. false: readlineを使わない. - nil: (デフォルト)inf-reuby-mode以外でreadlineライブラリを利用しよ + nil: (デフォルト)inf-ruby-mode以外でreadlineライブラリを利用しよ うとする. # #--- conf.verbose=T/F @@ -277,7 +277,7 @@ irb --- _ 前の計算の実行結果を覚えている(ローカル変数). -___ __ +--- __ 実行結果の履歴を覚えている. __[line_no]で、その行で実行した結果を得ることができる. line_noが負の 時には、最新の結果から-line_no前の結果を得ることができる. diff --git a/gc.c b/gc.c index ddaa76365d..70502e01f5 100644 --- a/gc.c +++ b/gc.c @@ -1318,6 +1318,14 @@ Init_stack(addr) STACK_LEVEL_MAX = (rlim.rlim_cur - space) / sizeof(VALUE); } } +#ifdef __ia64__ + /* ruby crashes on IA64 if compiled with optimizer on */ + /* when if STACK_LEVEL_MAX is greater than this magic number */ + /* I know this is a kludge. I suspect optimizer bug */ +#define IA64_MAGIC_STACK_LIMIT 65535 + if (STACK_LEVEL_MAX > IA64_MAGIC_STACK_LIMIT) + STACK_LEVEL_MAX = IA64_MAGIC_STACK_LIMIT; +#endif #endif } -- cgit v1.2.3