Skip to content

link error from large pattern bindings

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
Trac metadata
Trac field Value
Version 5.04.3
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution ResolvedFixed
Component Compiler
Test case
Differential revisions
BlockedBy
Related
Blocking
CC
Operating system
Architecture
To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information