When compiling a file where a pattern at the top level
binds more than 62 names compilation dies on a link
error, complaining about an undefined symbol :
test.o(.text+0x5ff): In function `s1MS_1_alt':
: undefined reference to `DataziTuple_Z71T_con_info'
module Main where
[a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16,a17,
a18,a19,a20,a21,a22,a23,a24,a25,a26,a27,a28,a29,a30,a31,a32,
a33,a34,a35,a36,a37,a38,a39,a40,a41,a42,a43,a44,a45,a46,a47,
a48,a49,a50,a51,a52,a53,a54,a55,a56,a57,a58,a59,a60,a61,a62] =
[0..62]
main = print a62
Compiling this without optimizations will die in the
linker with GHC 5.04 or the nightly build of 5.05 from
May 18 2003. Also try putting the definitions in a
separate module, which seems to always fail.
This needs a better error message, from the compiler
rather than linker,
something like "Toplevel pattern binds too many names".
It took me a while to guess my problem from the weird
core name.
Brandon Moore
brandon@caltech.edu