|
Panic! - GHC 6.2.2 - the 'impossible' happened: msg#00144lang.haskell.glasgow.bugs
ERROR MESSAGE: Prelude> :r Compiling BookData ( ./BookData.hs, interpreted ) ghc-6.2.2: panic! (the `impossible' happened, GHC version 6.2.2): mkProtoBCO: stack use won't fit in 16 bits 79141 Please report it as a compiler bug to glasgow-haskell-bugs@xxxxxxxxxxx, or http://sourceforge.net/projects/ghc/. CODE: -- BookData -- The Grosvenor Test Suite v3.0 -- 27 March 2005 -- A comprehensive test modeule for task 1 -- With many thanks this unit is -- Based on the layout in: -- Comprehensive test data -- Sam Gentle -- 27 March 2005 module BookData (PageID, ChoiceID, next, choiceCount, success) where -- some useful types type PageID = Int type ChoiceID = Int --Wrapper functions choiceCount :: PageID -> Int choiceCount page = (length (choice page)) next :: PageID -> ChoiceID -> PageID next page choiceID = (choice page) !! (choiceID - 1) --Return list of linked pages for a given PageID choice :: PageID -> [PageID] -- SOLN {- Test Numbers are detrermined as follows: - First digit is the test level ie 1 - Second Digit is the test sub level ie A =1 - Digit 3 & 4 is the test no - Digit 5 - 7 is the page no in the test -} -- Level 1A Tests -- No success, loops and multi loops choice 1101000 = [] -- [] choice 1102000 = [1101000] -- [] choice 1103000 = [1102000,1102000] -- [] choice 1104000 = [1103000,1103000,1103000,1103000] -- [] -- Level 1B Tests -- Success, loops, dead ends, and Multi loops choice 1201000 = [] -- [] choice 1202000 = [1202001] -- [] choice 1203000 = [1203001, 1203002] -- [] choice 1204000 = [1204001, 1204002, 1204003, 1204004] -- [] choice 1205000 = [1205000] -- [] choice 1206000 = [1206000, 1206001] -- [] choice 1207000 = [1207000, 1207000, 1207000, 12007000, -- [] 1207001, 1207002, 1207003, 12007004] -- Level 2A1 Tests -- Two levels deep, only 1 choice, -- dead ends, children hace loop backs, -- and muli loops -- All links are too level 1A pages choice 2101000 = [1101000] -- [] choice 2102000 = [1102000] -- [] choice 2103000 = [1103000] -- [] choice 2104000 = [1104000] -- [] -- Level 2A2 Tests -- Two levels deep, only 1 choice, -- dead ends, children hace loop backs, -- and muli loops -- All links are too level 1B pages choice 2105000 = [1201000] -- [1] choice 2106000 = [1202000] -- [1] choice 2107000 = [1203000] -- [1] choice 2108000 = [1204000] -- [1] choice 2109000 = [1205000] -- [1] choice 2110000 = [1206000] -- [1] choice 2111000 = [1207000] -- [1] -- Level 2B1 Tests -- Two levels deep, only 1 choice, -- dead ends, loop backs, muli loops to parent -- Test 1 choice 2201000 = [2201001] -- [] choice 2201001 = [2201000] -- Test 2 choice 2202000 = [2202001] -- [] choice 2202001 = [2202000, 2202000, 2202000] -- -- Test 3 choice 2203000 = [2203001] -- [1] choice 2203001 = [2203000, 2203000, 2203000] -- Level 2B2 Tests -- Two levels deep, only 1 choice, -- dead ends, loop backs, muli loops to parent -- Test 1 choice 2204000 = [2204001,2204001,2204001] -- [] choice 2204001 = [] -- Test 2 choice 2205000 = [2205001,2205001,2205001] -- [] choice 2205001 = [2205000,2205000,2205000] -- Test 3 choice 2206000 = [2206001,2206001,2206001] -- [1] or [2] or [3] choice 2206001 = [] -- Test 4 choice 2207000 = [2207001,2207001,2207001] -- [1] or [2] or [3] choice 2207001 = [2207000,2207000,2207000] -- Level 2B2 Tests --Test 1 choice 2208000 = [2208001, 2208002] -- [] -- Test 2 choice 2209000 = [2209001, 2209002] -- [1] -- Test 3 -- [2] choice 2210000 = [2210001, 2210002] -- Test 4 choice 2211000 = [2211000, 2211001, 2211002] -- [] choice 2211001 = [2211000, 2211001, 2211002] choice 2211002 = [2211000, 2211001, 2211002] --Test 5 choice 2212000 = [2212000, 2212001, 2212002] -- [2] choice 2212001 = [2212000, 2212001, 2212002] choice 2212002 = [2212000, 2212001, 2212002] --Test 6 choice 2213000 = [2213000, 2213001, 2213002] -- [3] choice 2213001 = [2213000, 2213001, 2213002] choice 2213002 = [2213000, 2213001, 2213002] --Test 7 choice 2214000 = [2214000, 2214001, 2214002] -- [2] or [3] choice 2214001 = [2214000, 2214001, 2214002] choice 2214002 = [2214000, 2214001, 2214002] -- Level 2C1 Tests -- 2 levels, only 3 page links, loops, multi loops -- loop backs and multi successes --Test 1 choice 2301000 = [2301001, 2301002, 2301003] -- [] --Test 2 choice 2302000 = [2302001, 2302002, 2302003] -- [2] --Test 3 choice 2303000 = [2303001, 2303002, 2303003] -- [1] or [3] --Test 4 choice 2304000 = [230400, 2304001, 2304002, 2304003] -- [] choice 2304001 = [230400, 2304001, 2304002, 2304003] choice 2304002 = [230400, 2304001, 2304002, 2304003] choice 2304003 = [230400, 2304001, 2304002, 2304003] --Test 5 choice 2305000 = [230500, 2305001, 2305002, 2305003] -- [3] choice 2305001 = [230500, 2305001, 2305002, 2305003] choice 2305002 = [230500, 2305001, 2305002, 2305003] choice 2305003 = [230500, 2305001, 2305002, 2305003] --Test 6 choice 2306000 = [230600, 2306001, 2306002, 2306003] -- [2] or [4] choice 2306001 = [230600, 2306001, 2306002, 2306003] choice 2306002 = [230600, 2306001, 2306002, 2306003] choice 2306003 = [230600, 2306001, 2306002, 2306003] -- Level 2D1 Tests -- 2 levels, multiple page links, loops, multi loops -- loop backs and multi successes --Test 1 choice 2401000 = [2401001, 2401002, 2401003, 2401004, 2401005] -- [] --Test 2 choice 2402000 = [2402001, 2401002, 2402003, 2402004, 2402005] -- [3] --Test 3 choice 2403000 = [2403001, 2403002, 2403003, 2403004, 2403005] -- [2] or [4] --Test 4 -- [3] choice 2404000 = [2404000, 2404001, 2404002, 2404003, 2404004, 2404005] choice 2404001 = [2404000, 2404001, 2404002, 2404003, 2404004, 2404005] choice 2404002 = [2404000, 2404001, 2404002, 2404003, 2404004, 2404005] choice 2404003 = [2404000, 2404001, 2404002, 2404003, 2404004, 2404005] choice 2404004 = [2404000, 2404001, 2404002, 2404003, 2404004, 2404005] choice 2404005 = [2404000, 2404001, 2404002, 2404003, 2404004, 2404005] -- Level 3A Tests -- Deeper reaching tests, with sinle or multiple solutions -- loop backs and multi loop backs -- Test 1 -- [] choice 3101000 = [3101001] choice 3101001 = [3101002] choice 3101002 = [3101003] choice 3101003 = [3101004] choice 3101004 = [3101005] -- Test 2 choice 3102000 = [3102001] -- [1,1,1,1,1] choice 3102001 = [3102002] choice 3102002 = [3102003] choice 3102003 = [3102004] choice 3102004 = [3102005] -- Test 3 choice 3103000 = [3103001,3103002] -- [1,1,1,1,1] choice 3103001 = [3103003,3103004] choice 3103003 = [3103005,3103006] choice 3103005 = [3103007,3103008] choice 3103007 = [3103009,3103010] -- Test 4 choice 3104000 = [3104001,3104002] -- [1,1,1,1,1] or --[1,1,1,1,2] choice 3104001 = [3104003,3104004] choice 3104003 = [3104005,3104006] choice 3104005 = [3104007,3104008] choice 3104007 = [3104009,3104010] --Test 5 choice 3105000 = [3105001,3105002] -- [2,1] choice 3105001 = [3105003,3105004] choice 3105002 = [3105005,3105006] --Test 6 choice 3106000 = [3106001,3106002,3106003] -- [2,3] choice 3106001 = [3106004,3106005,3106006] choice 3106002 = [3106007,3106008,3106009] choice 3106003 = [3106010,3106011,3106012] --Test 7 choice 3107000 = [3107001,3107002,3107003] -- [2,3] choice 3107001 = [3107004,3107005,3107006] choice 3107002 = [3107007,3107008,3107009] choice 3107003 = [3107010,3107011,3107012] choice 3107004 = [3107013,3107014,3107015] choice 3107007 = [3107016,3107017,3107018] choice 3107010 = [3107019,3107020,3107021] --Test 8 choice n | (n == -3108000) = [-3108001,-3108002,-3108003] -- [2,3] | (n == -3108001) = [-3108004,-3108005,-3108006] | (n == -3108002) = [-3108007,-3108008,-3108009] | (n == -3108003) = [-3108010,-3108011,-3108012] -- Test 9 | (n == 0) = [-1,-2,-3] -- [2,3] | (n == -2) = [-4,-5,-6] | (n == -4) = [-7,-8,-9] | (n == -5) = [-10,-11,-12] -- Level 4 Tests, Supper eveil tests, with multiple loops -- multiple loop backs, large books and inifite solns. -- Test 1 -- [1,1,1,1] choice 4101000 = [4101001,4101002] choice 4101001 = [4101003,4101004] choice 4101002 = [4101000] choice 4101003 = [4101005,4101006] choice 4101004 = [4101002] choice 4101005 = [4101007,4101008] choice 4101006 = [4101004] choice 4101007 = [4101009] choice 4101008 = [4101006] choice 4101009 = [4101008] -- Test 2 -- [1,1,2] choice 4102000 = [4102001,4102002] choice 4102001 = [4102003,4102004] choice 4102002 = [4102000] choice 4102003 = [4102005,4102006] choice 4102004 = [4102002] choice 4102005 = [4102007,4104008] choice 4102006 = [4102004] choice 4102007 = [4102009] choice 4102008 = [4102006] choice 4102009 = [4102008] -- Test 3 choice 4103000 = [4103000,4103001,4103003,4103004,4103005,4103006,4103007,4103008] choice 4103001 = [4103000,4103001,4103003,4103004,4103005,4103006,4103007,4103008] choice 4103002 = [4103000,4103001,4103002,4103003,4103004,4103005,4103006,4103007,4103008] choice 4103003 = [4103000,4103001,4103002,4103003,4103004,4103005,4103006,4103007,4103008] choice 4103004 = [4103000,4103001,4103002,4103003,4103004,4103005,4103006,4103007,4103008] choice 4103005 = [4103000,4103001,4103002,4103003,4103004,4103005,4103006,4103007,4103008] choice 4103006 = [4103000,4103001,4103002,4103003,4103004,4103005,4103006,4103007,4103008] choice 4103007 = [4103000,4103001,4103002,4103003,4103004,4103005,4103006,4103007,4103008] choice 4103008 = [4103000,4103001,4103002,4103003,4103004,4103005,4103006,4103007,4103008] --Test 4 -- *********** ERRROR DEPENDS ON THIS ********************* choice n | (n == 4104000) = [4104001,4104002,4104003] | (n == 4104001) = [4104004,4104005,4104006] | (n == 4104002) = [4104007,4104008,4104009] | (n == 4104003) = [4104001,4104002,4104003] | (n == 4104008) = [4000000] | ((n > 4104000) && (n < 4104008)) = [(n+50)] | ((n > 4104008)) = [(n+50)] -- END ERROR ************************************************************ choice n = [] success :: PageID -> Bool --Success values go here because GHCi can't handle mixing --pattern matches --success defaults to false success (-6) = True success 1201000 = True success 1202000 = True success 1203000 = True success 1204000 = True success 1205000 = True success 1206000 = True success 1207000 = True success 2203001 = True success 2206001 = True success 2207001 = True success 2209001 = True success 2210002 = True success 2212001 = True success 2213002 = True success 2214001 = True success 2214002 = True success 2302002 = True success 2303001 = True success 2303003 = True success 2305002 = True success 2306001 = True success 2306003 = True success 2402003 = True success 2403002 = True success 2403004 = True success 2404002 = True success 3102005 = True success 3103009 = True success 3104009 = True success 3104010 = True success 3105005 = True success 3106009 = True success 3107009 = True success 3107017 = True success (-3108009) = True success 4101009 = True success 4102006 = True success 4103002 = True success 4000000 = True success _ = False _________________________________________________________________ Express yourself instantly with MSN Messenger! Download today it's FREE! http://messenger.msn.click-url.com/go/onm00200471ave/direct/01/
|
|
| <Prev in Thread] | Current Thread | [Next in Thread> |
|---|---|---|
| Previous by Date: | ghc bug, MR |
|---|---|
| Next by Date: | buglet with ctrl-C and reading stdin, Ketil Malde |
| Previous by Thread: | ghc bug, MR |
| Next by Thread: | RE: Panic! - GHC 6.2.2 - the 'impossible' happened, Simon Marlow |
| Indexes: | [Date] [Thread] [Top] [All Lists] |
| News | FAQ | advertise |