Integer divide bug in nhc98 causes runtime segfault

Martin Guy <[email protected]> Sun, 5 Jun 2005 22:27:57 +0100
Newsgroups gmane.comp.lang.haskell.nhc.bugs
Message-ID <[email protected]>
------=_Part_2673_18135848.1118006877317
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline

Hi again!
    Last november I reported a bug in the nhc runtime code that bombs
the program out with Segmentation fault during garbage collection.
Since then there have been 2 more releases of nhc98, but the Integer
divide bug has not gone away nor even made it into the known bug list.
   I've been staring at the C code for several days now without
finding it yet, so here I am reporting it again to the list.
 =20
A few example programs that segfault are attached.
Any other code that makes repeated calls to the div, mod, quot or rem
on Integers bombs equally well :)

All run fine under hugs, and their making nhc generate faulty code has
been confirmed by one other person on the net (so it isn't my C
compiler!). I also have a example program (an earlier version just
after its translation from Miranda) that runs correctly under hugs but
gives pi as "3.13785478481Segmentation fault" with hugs98 v1.16 and
1.18 (though it's 65K - hardly a test case).

I'm not an nhcbugs list reader (sorry, too poor to afford it!) -
please CC any replies.

Cheers!

    M

------=_Part_2673_18135848.1118006877317
Content-Type: application/octet-stream; name="s.hs"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="s.hs"

LS0gVGVzdCBwcm9ncmFtIHRoYXQgdGlja2xlcyBzdXNwZWN0ZWQgYnVnIGluIG5oYzk4J3MgSW50
ZWdlciBkaXYvbW9kIGNvZGUuCi0tIFNob3VsZCBvdXRwdXQgYWxsIHRoZSBkZWNpbWFsIHBsYWNl
cyBvZiBzcXJ0KDIpOiAxNDE0Li4KLS0JTWFydGluIEd1eSwgTmV3Y2FzdGxlLCBPY3RvYmVyIDIw
MDQuCgptb2R1bGUgTWFpbiB3aGVyZQoKaW1wb3J0IElPCS0tIGZvciBoU2V0QmVmZmVyaW5nICYg
ZnJpZW5kcwoKbWFpbiA6OiBJTyAoKQptYWluID0gaFNldEJ1ZmZlcmluZyBzdGRvdXQgTm9CdWZm
ZXJpbmcgPj4gcHV0U3RyIChjb25jYXQgKG1hcCBzaG93IChtX3NxcnQgWzAsMl0pKSkKCmJhc2Ug
OjogSW50CmJhc2UgPSAxMAoKLS0gU3F1YXJlIHJvb3QgYnkgTXIgQy4gV29vJ3MgYWJhY3VzIGFs
Z29yaXRobQotLSBTZWUgaHR0cDovL2ZyZWFrbmV0Lm9yZy9tYXJ0aW4vdGFwZSAtPiAiQWxnb3Jp
dGhtcyIgLT4gIlNxdWFyZSByb290IgotLSBmb3IgZGV0YWlscyBvZiB0aGUgYWxnb3JpdGhtLgoK
bV9zcXJ0IDo6IFtJbnRdIC0+IFtJbnRdCm1fc3FydCBbXSA9IFtdCQkJLS0gc3FydCgwKQptX3Nx
cnQgbSA9IG1fc3FydCcgKDAsICh0b0ludGVnZXIgYSx4KSkKCSAgIHdoZXJlCgkgICAoYTp4KSA9
IG1fc3FyYmFzZSBtCS0tIHByaW1lIHNxcnQgZW5naW5lIHdpdGggZmlyc3QgZGlnaXQKCi0tIENv
bnZlcnQgbWFudGlzc2EgaW4gYmFzZSBuIHRvIG1hbnRpc3NhIGluIGJhc2Ugbl4yLgptX3NxcmJh
c2UgOjogW0ludF0gLT4gW0ludF0KbV9zcXJiYXNlIChhOmI6bSkgPSAoYSAqIGJhc2UgKyBiKSA6
IG1fc3FyYmFzZSBtCm1fc3FyYmFzZSBbYV0gPSBbYSAqIGJhc2VdCm1fc3FyYmFzZSBbXSA9IFtd
CgptX3NxcnQnIDo6IChJbnRlZ2VyLChJbnRlZ2VyLFtJbnRdKSkgLT4gW0ludF0KbV9zcXJ0JyAo
cjEsKGhkX28xLHRsX28xKSkKCXwgKGhkX28xID09IDAgJiYgbV9pc196ZXJvIHRsX28xKSA9IFtd
Cgl8IG90aGVyd2lzZSA9ICggZnJvbUludGVnZXIgKHIyIGByZW1gIGliYXNlKSkgOiBtX3NxcnQn
IChyMiAqIGliYXNlLCBtX3NxcnRfc2hpZnRpbiAoaGRfbzIsdGxfbzEpKQoJICB3aGVyZQoJICAo
cjIsaGRfbzIpID0gbV9zcXJ0X2xvb3AgKHIxLGhkX28xKQoJICBpYmFzZSA9IHRvSW50ZWdlciBi
YXNlCgotLSBJcyB0aGUgdmFsdWUgb2YgYSBtYW50aXNzYSBlcXVhbCB0byB6ZXJvCm1faXNfemVy
byBbXSA9IFRydWUKbV9pc196ZXJvIChhOngpID0gaWYgYSAvPSAwIHRoZW4gRmFsc2UgZWxzZSBt
X2lzX3plcm8geAoKLS0gU2hpZnQgYW5vdGhlciB0ZXJtIG9mIHRoZSBvcGVyYW5kIGludG8gdGhl
IGNhbGN1bGF0aW9uLgptX3NxcnRfc2hpZnRpbiA6OiAoSW50ZWdlciwgW0ludF0pIC0+IChJbnRl
Z2VyLCBbSW50XSkKbV9zcXJ0X3NoaWZ0aW4gKGEsYjp4KSA9IChhICogc3FyX2Jhc2UgKyB0b0lu
dGVnZXIgYiwgeCkKbV9zcXJ0X3NoaWZ0aW4gKGEsW10pID0gKGEgKiBzcXJfYmFzZSwgW10pCgpz
cXJfYmFzZSA9IHRvSW50ZWdlciAoYmFzZSAqIGJhc2UpCgptX3NxcnRfbG9vcCA6OiAoSW50ZWdl
cixJbnRlZ2VyKSAtPiAoSW50ZWdlcixJbnRlZ2VyKQptX3NxcnRfbG9vcCBybwoJPSB1bnRpbCBz
cXJ0X2xvb3BfZG9uZSBzcXJ0X2xvb3BfYm9keSBybwoJICB3aGVyZQoJICBzcXJ0X2xvb3BfZG9u
ZSAociwgbykgPSAyKnIgPj0gbwktLSB3YXM6IDIqcisxID4gbwoJICBzcXJ0X2xvb3BfYm9keSAo
ciwgbykgPSAocisxLCBvIC0gKDIqcisxKSkK
------=_Part_2673_18135848.1118006877317
Content-Type: application/octet-stream; name="s2.hs"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="s2.hs"

LS0gVGVzdCBwcm9ncmFtIHRoYXQgdGlja2xlcyBzdXNwZWN0ZWQgYnVnIGluIG5oYzk4J3MgSW50
ZWdlciBkaXYvbW9kIGNvZGUuCi0tIFNob3VsZCBvdXRwdXQgYWxsIHRoZSBkZWNpbWFsIHBsYWNl
cyBvZiBzcXJ0KDIpOiAxNDE0Li4KLS0JTWFydGluIEd1eSwgTmV3Y2FzdGxlLCBPY3RvYmVyIDIw
MDQuCgptb2R1bGUgTWFpbiB3aGVyZQoKaW1wb3J0IElPCS0tIGZvciBoU2V0QmVmZmVyaW5nICYg
ZnJpZW5kcwoKbWFpbiA6OiBJTyAoKQptYWluID0gaFNldEJ1ZmZlcmluZyBzdGRvdXQgTm9CdWZm
ZXJpbmcgPj4gcHV0U3RyIChjb25jYXQgKG1hcCBzaG93IChtX3NxcnQgWzAsMl0pKSkKCmJhc2Ug
OjogSW50CmJhc2UgPSAxMAoKLS0gU3F1YXJlIHJvb3QgYnkgTXIgQy4gV29vJ3MgYWJhY3VzIGFs
Z29yaXRobQotLSBTZWUgaHR0cDovL2ZyZWFrbmV0Lm9yZy9tYXJ0aW4vdGFwZSAtPiAiQWxnb3Jp
dGhtcyIgLT4gIlNxdWFyZSByb290IgotLSBmb3IgZGV0YWlscyBvZiB0aGUgYWxnb3JpdGhtLgoK
bV9zcXJ0IDo6IFtJbnRdIC0+IFtJbnRdCm1fc3FydCBbXSA9IFtdCQkJLS0gc3FydCgwKQptX3Nx
cnQgbSA9IG1fc3FydCcgKDAsICh0b0ludGVnZXIgYSx4KSkKCSAgIHdoZXJlCgkgICAoYTp4KSA9
IG1fc3FyYmFzZSBtCS0tIHByaW1lIHNxcnQgZW5naW5lIHdpdGggZmlyc3QgZGlnaXQKCi0tIENv
bnZlcnQgbWFudGlzc2EgaW4gYmFzZSBuIHRvIG1hbnRpc3NhIGluIGJhc2Ugbl4yLgptX3NxcmJh
c2UgOjogW0ludF0gLT4gW0ludF0KbV9zcXJiYXNlIChhOmI6bSkgPSAoYSAqIGJhc2UgKyBiKSA6
IG1fc3FyYmFzZSBtCm1fc3FyYmFzZSBbYV0gPSBbYSAqIGJhc2VdCm1fc3FyYmFzZSBbXSA9IFtd
CgptX3NxcnQnIDo6IChJbnRlZ2VyLChJbnRlZ2VyLFtJbnRdKSkgLT4gW0ludF0KbV9zcXJ0JyAo
cjEsKGhkX28xLHRsX28xKSkKCXwgKGhkX28xID09IDAgJiYgbV9pc196ZXJvIHRsX28xKSA9IFtd
Cgl8IG90aGVyd2lzZSA9ICggZnJvbUludGVnZXIgKHIyIGBtb2RkYCBpYmFzZSkpIDogbV9zcXJ0
JyAocjIgKiBpYmFzZSwgbV9zcXJ0X3NoaWZ0aW4gKGhkX28yLHRsX28xKSkKCSAgd2hlcmUKCSAg
KHIyLGhkX28yKSA9IG1fc3FydF9sb29wIChyMSxoZF9vMSkKCSAgaWJhc2UgPSB0b0ludGVnZXIg
YmFzZQoKbW9kZCA6OiBJbnRlZ2VyIC0+IEludGVnZXIgLT4gSW50ZWdlcgptb2RkIG4gZCA9IG4g
LSAobiBgcXVvdGAgZCkgKiBkCgotLSBJcyB0aGUgdmFsdWUgb2YgYSBtYW50aXNzYSBlcXVhbCB0
byB6ZXJvCm1faXNfemVybyBbXSA9IFRydWUKbV9pc196ZXJvIChhOngpID0gaWYgYSAvPSAwIHRo
ZW4gRmFsc2UgZWxzZSBtX2lzX3plcm8geAoKLS0gU2hpZnQgYW5vdGhlciB0ZXJtIG9mIHRoZSBv
cGVyYW5kIGludG8gdGhlIGNhbGN1bGF0aW9uLgptX3NxcnRfc2hpZnRpbiA6OiAoSW50ZWdlciwg
W0ludF0pIC0+IChJbnRlZ2VyLCBbSW50XSkKbV9zcXJ0X3NoaWZ0aW4gKGEsYjp4KSA9IChhICog
c3FyX2Jhc2UgKyB0b0ludGVnZXIgYiwgeCkKbV9zcXJ0X3NoaWZ0aW4gKGEsW10pID0gKGEgKiBz
cXJfYmFzZSwgW10pCgpzcXJfYmFzZSA9IHRvSW50ZWdlciAoYmFzZSAqIGJhc2UpCgptX3NxcnRf
bG9vcCA6OiAoSW50ZWdlcixJbnRlZ2VyKSAtPiAoSW50ZWdlcixJbnRlZ2VyKQptX3NxcnRfbG9v
cCBybwoJPSB1bnRpbCBzcXJ0X2xvb3BfZG9uZSBzcXJ0X2xvb3BfYm9keSBybwoJICB3aGVyZQoJ
ICBzcXJ0X2xvb3BfZG9uZSAociwgbykgPSAyKnIgPj0gbwktLSB3YXM6IDIqcisxID4gbwoJICBz
cXJ0X2xvb3BfYm9keSAociwgbykgPSAocisxLCBvIC0gKDIqcisxKSkK
------=_Part_2673_18135848.1118006877317
Content-Type: application/octet-stream; name="t.hs"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="t.hs"

LS0gVGVzdCBwcm9ncmFtIHRoYXQgdGlja2xlcyBzdXNwZWN0ZWQgYnVnIGluIG5oYzk4J3MgSW50
ZWdlciBkaXYvbW9kIGNvZGUuCi0tIFNob3VsZCBvdXRwdXQgYWxsIHRoZSBkZWNpbWFsIHBsYWNl
cyBvZiBzcXJ0KDIpOiAxNDE0Li4KLS0JTWFydGluIEd1eSwgTmV3Y2FzdGxlLCBPY3RvYmVyIDIw
MDQuCgptb2R1bGUgTWFpbiB3aGVyZQoKaW1wb3J0IElPCS0tIGZvciBoU2V0QmVmZmVyaW5nICYg
ZnJpZW5kcwoKbWFpbiA6OiBJTyAoKQptYWluID0gaFNldEJ1ZmZlcmluZyBzdGRvdXQgTm9CdWZm
ZXJpbmcgPj4gcHV0U3RyIChjb25jYXQgKG1hcCBzaG93IGxhc3RkaWdpdHMpKQoKcG93ZXJzIDo6
IFtJbnRlZ2VyXQpwb3dlcnMgPSAyIDogKG1hcCAoKiAyKSBwb3dlcnMpCgpiYXNlIDo6IEludGVn
ZXIKYmFzZSA9IDEwMAoKbGFzdGRpZ2l0cyA9IG1hcCAoYG1vZGAgYmFzZSkgcG93ZXJzCg==
------=_Part_2673_18135848.1118006877317
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Nhc-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/nhc-bugs

------=_Part_2673_18135848.1118006877317--