From: Emmett Shear Date: 2006-12-09T03:21:51+09:00 Subject: Marshal::dump error on PowerBook G4 ------=_Part_84930_4885925.1165602104798 Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit Content-Disposition: inline I've written code for a Splay tree in Ruby, and I'm trying to serialize it using Marshal::dump. If I create a tree with 1,000 or 10,000 nodes, Marshal::dump works perfectly. When I get up to 100,000 nodes, Marshal::dump causes the irb process to die with the error "Illegal Instruction". Is this a known problem? I tried searching for "Marshal::dump" and "Illegal Instruction" it but I didn't turn up anything. I'm on a PowerBook G4, running Ruby version 1.8.5 and IRb version 0.9.5. I've attached the code for the Splay tree; to reproduce, open irb and run: require 'splay' t = SplayTree.new 100000.times {|i| t[i] = i} Marshal::dump t Thanks for any help, Emmett ------=_Part_84930_4885925.1165602104798 Content-Type: application/octet-stream; name=splay.rb Content-Transfer-Encoding: base64 X-Attachment-Id: f_evgx8h5z Content-Disposition: attachment; filename="splay.rb" Y2xhc3MgU3BsYXlOb2RlCiAgYXR0cl9hY2Nlc3NvciA6a2V5LCA6dmFsLCA6bGVmdCwgOnJpZ2h0 CiAgZGVmIGluaXRpYWxpemUoa2V5LCB2YWwpCiAgICBAa2V5ID0ga2V5CiAgICBAdmFsID0gdmFs CiAgZW5kCgogIGRlZiB0b19zKGRlcHRoPTAsIHZhbHVlcz1bXSkKICAgIHZhbHVlcyA8PCAiI3tB cnJheS5uZXcoZGVwdGgsICcgJyl9I3trZXl9LCAje3ZhbH0iCiAgICB2YWx1ZXMgPDwgIjoiIGlm IGxlZnQgb3IgcmlnaHQKICAgIHZhbHVlcyA8PCAiXG4iCiAgICBsZWZ0LnRvX3MoZGVwdGgrMSwg dmFsdWVzKSBpZiBsZWZ0CiAgICByaWdodC50b19zKGRlcHRoKzEsIHZhbHVlcykgaWYgcmlnaHQK ICAgIHZhbHVlcy5qb2luCiAgZW5kCmVuZAoKY2xhc3MgU3BsYXlUcmVlCiAgYXR0cl9hY2Nlc3Nv ciA6cm9vdAoKICBkZWYgaGVhZGVyCiAgICBAaGVhZGVyIHx8PSBTcGxheU5vZGUubmV3KG5pbCwg bmlsKQogIGVuZAoKICBkZWYgdG9fcwogICAgQHJvb3QudG9fcwogIGVuZAoKICBkZWYgW10oa2V5 KQogICAgaWYga2V5LmlzX2E/IFJhbmdlCiAgICAgIHJhbmdlKGtleSkKICAgIGVsc2UKICAgICAg ZmluZChrZXkpCiAgICBlbmQKICBlbmQKCiAgZGVmIFtdPShrZXksIHZhbCkKICAgIGluc2VydChr ZXksIHZhbCkKICBlbmQKCiAgZGVmIGluc2VydChrZXksIHZhbCkKICAgIHVubGVzcyBAcm9vdAog ICAgICBAcm9vdCA9IFNwbGF5Tm9kZS5uZXcoa2V5LCB2YWwpCiAgICAgIHJldHVybgogICAgZW5k CiAgICAKICAgIHNwbGF5KGtleSkKICAgIAogICAgaWYgQHJvb3Qua2V5ID09IGtleQogICAgICBA cm9vdC52YWwgPSB2YWwKICAgICAgcmV0dXJuCiAgICBlbmQKCiAgICBuID0gU3BsYXlOb2RlLm5l dyhrZXksIHZhbCkKICAgIGlmIGtleSA8IEByb290LmtleQoJICAgIG4ubGVmdCA9IEByb290Lmxl ZnQKCSAgICBuLnJpZ2h0ID0gQHJvb3QKCSAgICBAcm9vdC5sZWZ0ID0gbmlsCiAgICBlbHNlCiAg ICAgIG4ucmlnaHQgPSBAcm9vdC5yaWdodAogICAgICBuLmxlZnQgPSBAcm9vdAogICAgICBAcm9v dC5yaWdodCA9IG5pbAogICAgZW5kCiAgICBAcm9vdCA9IG4KICBlbmQKICAgICAgCiAgZGVmIHJl bW92ZShrZXkpCiAgICBzcGxheShrZXkpCgogICAgaWYga2V5ICE9IEByb290LmtleQogICAgICBy YWlzZSAiI3trZXl9IG5vdCBmb3VuZCBpbiB0cmVlIgogICAgZW5kCgogICAgdW5sZXNzIEByb290 LmxlZnQgCiAgICAgIEByb290ID0gQHJvb3QucmlnaHQKICAgIGVsc2UgCgkgICAgeCA9IEByb290 LnJpZ2h0CgkgICAgQHJvb3QgPSBAcm9vdC5sZWZ0CgkgICAgc3BsYXkoa2V5KQoJICAgIEByb290 LnJpZ2h0ID0geAogICAgZW5kCiAgZW5kCgogIGRlZiBtaW5fa2V5CiAgICBrZXksIF8gPSBmaW5k TWluCiAgICBrZXkKICBlbmQKCiAgZGVmIG1pbl92YWwKICAgIF8sIHZhbCA9IGZpbmRNaW4KICAg IHZhbAogIGVuZAoKICBkZWYgbWF4X2tleQogICAga2V5LCBfID0gZmluZE1heAogICAga2V5CiAg ZW5kCgogIGRlZiBtYXhfdmFsCiAgICBfLCB2YWwgPSBmaW5kTWF4CiAgICB2YWwKICBlbmQKCiAg ZGVmIGZpbmRNaW4KICAgIHJldHVybiB1bmxlc3MgQHJvb3QKICAgIHggPSBAcm9vdAogICAgeCA9 IHgubGVmdCB3aGlsZSh4LmxlZnQpIAogICAgc3BsYXkoeC5rZXkpCiAgICByZXR1cm4gW3gua2V5 LCB4LnZhbF0KICBlbmQKCiAgZGVmIGZpbmRNYXgKICAgIHJldHVybiB1bmxlc3MgQHJvb3QKICAg IHggPSBAcm9vdAogICAgeCA9IHgucmlnaHQgd2hpbGUoeC5yaWdodCkgCiAgICBzcGxheSh4Lmtl eSkKICAgIHJldHVybiBbeC5rZXksIHgudmFsXQogIGVuZAoKICBkZWYgZmluZChrZXkpCiAgICBy ZXR1cm4gdW5sZXNzIEByb290CiAgICBzcGxheShrZXkpCiAgICByZXR1cm4gdW5sZXNzIEByb290 LmtleSA9PSBrZXkKICAgIHJldHVybiBAcm9vdC52YWwKICBlbmQKCiAgZGVmIHJhbmdlKHIpCiAg ICB2YWx1ZXMgPSBbXQogICAgc3BsYXkoci5maXJzdCkKICAgIGNhbmRpZGF0ZXMgPSBbQHJvb3Rd CiAgICB3aGlsZSBuID0gY2FuZGlkYXRlcy5wb3AKICAgICAgaWYgci5pbmNsdWRlPyBuLmtleQog ICAgICAgIHZhbHVlcyA8PCBbbi5rZXksIG4udmFsXQogICAgICAgICMgbG9vayBsZWZ0IGFuZCBy aWdodAogICAgICAgIGNhbmRpZGF0ZXMgPDwgbi5sZWZ0IGlmIG4ubGVmdAogICAgICAgIGNhbmRp ZGF0ZXMgPDwgbi5yaWdodCBpZiBuLnJpZ2h0CiAgICAgIGVsc2lmIG4ua2V5IDwgci5maXJzdAog ICAgICAgICMgbG9vayBvbmx5IGxlZnQKICAgICAgICBjYW5kaWRhdGVzIDw8IG4ucmlnaHQgaWYg bi5yaWdodAogICAgICBlbHNlCiAgICAgICAgIyBsb29rIG9ubHkgcmlnaHQKICAgICAgICBjYW5k aWRhdGVzIDw8IG4ubGVmdCBpZiBuLmxlZnQKICAgICAgZW5kCiAgICBlbmQKICAgIHZhbHVlcy5z b3J0X2J5IHt8aywgdnwga30KICBlbmQKCiAgZGVmIGlzRW1wdHkKICAgIEByb290Lm5pbD8KICBl bmQKCgogIHByb3RlY3RlZAogIGRlZiBzcGxheShrZXkpCiAgICBsID0gciA9IGhlYWRlcgogICAg dCA9IEByb290CiAgICBoZWFkZXIubGVmdCA9IGhlYWRlci5yaWdodCA9IG5pbAogICAgd2hpbGUg dHJ1ZQogICAgICBpZiBrZXkgPCB0LmtleQogICAgICAgIGJyZWFrIHVubGVzcyB0LmxlZnQKICAg ICAgICBpZiBrZXkgPCB0LmxlZnQua2V5CiAgICAgICAgICB5ID0gdC5sZWZ0CiAgICAgICAgICB0 LmxlZnQgPSB5LnJpZ2h0CiAgICAgICAgICB5LnJpZ2h0ID0gdAogICAgICAgICAgdCA9IHkKICAg ICAgICAgIGJyZWFrIHVubGVzcyB0LmxlZnQKICAgICAgICBlbmQKICAgICAgICByLmxlZnQgPSB0 CiAgICAgICAgciA9IHQKICAgICAgICB0ID0gdC5sZWZ0CiAgICAgIGVsc2lmIGtleSA+IHQua2V5 CiAgICAgICAgYnJlYWsgdW5sZXNzIHQucmlnaHQKICAgICAgICBpZiBrZXkgPiB0LnJpZ2h0Lmtl eQogICAgICAgICAgeSA9IHQucmlnaHQKICAgICAgICAgIHQucmlnaHQgPSB5LmxlZnQKICAgICAg ICAgIHkubGVmdCA9IHQKICAgICAgICAgIHQgPSB5CiAgICAgICAgICBicmVhayB1bmxlc3MgdC5y aWdodAogICAgICAgIGVuZAogICAgICAgIGwucmlnaHQgPSB0CiAgICAgICAgbCA9IHQKICAgICAg ICB0ID0gdC5yaWdodAogICAgICBlbHNlCiAgICAgICAgYnJlYWsKCSAgICBlbmQKICAgIGVuZAog ICAgbC5yaWdodCA9IHQubGVmdAogICAgci5sZWZ0ID0gdC5yaWdodAogICAgdC5sZWZ0ID0gaGVh ZGVyLnJpZ2h0CiAgICB0LnJpZ2h0ID0gaGVhZGVyLmxlZnQKICAgIEByb290ID0gdAogIGVuZAoK ZW5kCg== ------=_Part_84930_4885925.1165602104798--