[#8606] can't build 1.1b9_28 on digital-unix — Go Nakagawa <nakagawa@...>

中川といいます。みなさんはじめまして。

15 messages 1998/07/01
[#8615] Re: can't build 1.1b9_28 on digital-unix — matz@... (Yukihiro Matsumoto) 1998/07/02

まつもと ゆきひろです

[#8621] Re: can't build 1.1b9_28 on digital-unix — Go Nakagawa <nakagawa@...> 1998/07/02

中川です。

[#8649] [BUG] Segmentation fault — IWAOKA Masahiro <iwaoka@...>

最近はすっかり ruby にお世話になっております。岩岡です。

33 messages 1998/07/08
[#8708] Re: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 1998/07/13

まつもと ゆきひろです

[#8710] Re: [BUG] Segmentation fault — WATANABE Hirofumi <watanabe@...> 1998/07/13

わたなべです.

[#8711] Re: [BUG] Segmentation fault — IWAOKA Masahiro <iwaoka@...> 1998/07/13

岩岡です。

[#8712] Re: [BUG] Segmentation fault — IWAOKA Masahiro <iwaoka@...> 1998/07/13

岩岡です。

[#8713] Re: [BUG] Segmentation fault — IWAOKA Masahiro <iwaoka@...> 1998/07/13

自己フォロウを続けてしまいまして申し訳ございません。

[#8715] Re: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 1998/07/14

まつもと ゆきひろです

[#8718] Re: [BUG] Segmentation fault — WATANABE Hirofumi <watanabe@...> 1998/07/14

わたなべです.

[#8722] Re: [BUG] Segmentation fault — ttate@... 1998/07/14

立石@JAISTです。

[#8723] Re: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 1998/07/14

まつもと ゆきひろです

[#8725] Re: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 1998/07/14

まつもと ゆきひろです

[#8726] Re: [BUG] Segmentation fault — ttate@... 1998/07/14

立石@JAISTです。

[#8727] Re: [BUG] Segmentation fault — matz@... (Yukihiro Matsumoto) 1998/07/14

まつもと ゆきひろです

[#8728] Re: [BUG] Segmentation fault — ttate@... 1998/07/14

立石です。

[#8770] ruby 1.1c0 released — matz@... (Yukihiro Matsumoto)

まつもと ゆきひろです

38 messages 1998/07/17
[#8800] Re: ruby 1.1c0 released — Sinichiro Dezawa <dezawa@...> 1998/07/21

出沢です

[#8801] Re: ruby 1.1c0 released — matz@... (Yukihiro Matsumoto) 1998/07/21

まつもと ゆきひろです

[#8804] Re: ruby 1.1c0 released — TEI meiki <tei@...> 1998/07/21

こんにちは、鄭です。

[#8845] mapping a tagged file onto a class — Takao KAWAMURA <kawamura@...>

各行にフィルード名と値が含まれ、レコードの区切りは空行という、

18 messages 1998/07/23
[#8847] Re: mapping a tagged file onto a class — matz@... (Yukihiro Matsumoto) 1998/07/24

まつもと ゆきひろです

[#8848] Re: mapping a tagged file onto a class — Takao KAWAMURA <kawamura@...> 1998/07/24

In message "[ruby-list:8847] Re: mapping a tagged file onto a class"

[#8892] nil + 1, or Integer.to_i — Sinichiro Dezawa <dezawa@...>

出沢です

33 messages 1998/07/27
[#8893] Re: nil + 1, or Integer.to_i — matz@... (Yukihiro Matsumoto) 1998/07/27

まつもと ゆきひろです

[#8895] Re: nil + 1, or Integer.to_i — matz@... (Yukihiro Matsumoto) 1998/07/27

まつもと ゆきひろです

[#8903] Re: nil + 1, or Integer.to_i — Sinichiro Dezawa <dezawa@...> 1998/07/27

matz> 良く見るとto_i,to_fともにNumeric.htmlに記述があります.これ

[#8906] Re: nil + 1, or Integer.to_i — keiju@... (石塚圭樹 ) 1998/07/27

けいじゅ@日本ラショナルソフトウェアです.

[#8909] Re: nil + 1, or Integer.to_i — Sinichiro Dezawa <dezawa@...> 1998/07/27

出沢です

[#8920] Re: nil + 1, or Integer.to_i — keiju@... (石塚圭樹 ) 1998/07/28

けいじゅ@日本ラショナルソフトウェアです.

[#8921] Re: nil + 1, or Integer.to_i — matz@... (Yukihiro Matsumoto) 1998/07/28

まつもと ゆきひろです

[ruby-list:8791] Re: ruby 1.1c0 released

From: matz@... (Yukihiro Matsumoto)
Date: 1998-07-21 04:31:04 UTC
List: ruby-list #8791
まつもと ゆきひろです

In message "[ruby-list:8775] Re: ruby 1.1c0 released"
    on 98/07/17, TANAKA Shin-ichi <tanaka@sp.mmlab.toshiba.co.jp> writes:

|東芝の田中です。

|が、/usr/share/dict/web2 (英単語のリスト、とっても長いです) を
|読み込む

|というスクリプトを実行させると
|
|aho.rb:6: [BUG] Segmentation fault
|zsh: 5598 abort      ruby aho.rb
|
|といってお亡くなりになってしまいます。

gdbの結果のおかげで原因がわかりました.
# 助かるなあ.

これはrehashでハッシュのサイズを拡大している最中にGCが発生す
ると落っこちるというものです.以下のパッチで直ると思います.

--- st.c	1998/05/13 07:26:34	1.1.1.1.4.1
+++ st.c	1998/07/21 04:28:34
@@ -51,2 +51,3 @@
 #define do_hash(key, table) (*(table)->type->hash)((key), (table)->num_bins)
+#define do_hash2(key, table, bins) (*(table)->type->hash)((key), bins)
 
@@ -224,13 +225,14 @@
     register st_table_entry *ptr, *next, **old_bins = table->bins;
-    int i, old_num_bins = table->num_bins, hash_val;
+    int i, old_num_bins = table->num_bins, new_num_bins, hash_val;
 
-    table->num_bins = 1.79*old_num_bins;
+    new_num_bins = 1.79*old_num_bins;
 
-    if (table->num_bins%2 == 0) {
-	table->num_bins += 1;
+    if (new_num_bins%2 == 0) {
+	new_num_bins += 1;
     }
 
+    table->num_bins = 0;
     table->num_entries = 0;
     table->bins = (st_table_entry **)
-	Calloc((unsigned)table->num_bins, sizeof(st_table_entry*));
+	Calloc((unsigned)new_num_bins, sizeof(st_table_entry*));
 
@@ -240,3 +242,3 @@
 	    next = ptr->next;
-	    hash_val = do_hash(ptr->key, table);
+	    hash_val = do_hash2(ptr->key, table, new_num_bins);
 	    ptr->next = table->bins[hash_val];
@@ -247,2 +249,3 @@
     }
+    table->num_bins = new_num_bins;
     free((char*)old_bins);

In This Thread