tkacik@kyzyl.mi.org (Tom Tkacik) (05/08/91)
I just compiled perl 4.003 on an AT&T 3b1. Not the world's biggest machine, but it does the job. It failed on test, op/dbm.t. Here's what I get when I run ./perl t/op/dbm.t. 1..12 ok 1 ok 2 Out of memory! From looking at t/op/dbm.t, it does not appear that the test should use that much memory. Does this test really use that much memory, or is something wrong? Do I need to do anything special when compiling perl on a 3b1? Now the 3b1 does not come with -lndbm, but that didn't stop me. I just grabbed Ozan Yigit's sdbm package, and used that. I compiled most of perl with gcc, (falling back to cc for eval.c and toke.c). Gcc tends to run out of virtual memory, (there's that 2.5Meg limit again). I did not use perl's malloc, (should I have?) And I used the shared libraries, (maybe I should not have). Any ideas? -- Tom Tkacik | tkacik@kyzyl.mi.org | To rent this space, call 1-800-555-QUIP. ...!rphroy!kyzyl!tkacik |
oz@yunexus.yorku.ca (Ozan Yigit) (05/09/91)
In article <339@kyzyl.mi.org> tkacik@kyzyl.mi.org (Tom Tkacik) writes: >Now the 3b1 does not come with -lndbm, but that didn't stop me. >I just grabbed Ozan Yigit's sdbm package, and used that. While I do not know the reasons for your current problem, I can tell you that with the version of sdbm you have, the same test will fail between 7 and 8. When I wrote sdbm, I considered an attempt to store null key (dsize 0) to be a sure sign of something bizarre going on, and decided to check for it. By some poetic :-) coincidence, the dbm test for perl attempts to store a null key between 7 and 8, and gets caught by this check. If you wish to allow for this, patch sdbm.c with the following diff, and re-compile with -DNULLKEY. enjoy... oz ------------- 11c11 < static char rcsid[] = "$Id: sdbm.c,v 1.2 1991/04/23 13:48:03 oz Exp $"; --- > static char rcsid[] = "$Id: sdbm.c,v 1.3 91/04/23 13:51:39 oz Exp Locker: oz $"; 13a14,20 > /* > * $Log: sdbm.c,v $ > * Revision 1.3 91/04/23 13:51:39 oz > * added #ifdef NULLKEY to allow storing of a key with 0 length, > * and NULL dptr.. > * > */ 59a67,69 > #ifdef NULLKEY > #define bad(x) ((x).dsize < 0) > #else 60a71 > #endif