Skip to content

schedule: invalid what_next field

internal error: schedule: invalid what_next field

I'm studying a program which runs without trouble within ghci but fails to run well once compiled with ghc --make.

  • The program
  • The error message
  • The ways I get or not the error message

The program ==

It is a computing of the index for which the length of the longuest sequence during a Syracuse process [(/2) if even u, (+1).(*3) if odd u] is reached.

boundary variable is the only parameter.

For instance, the program returns 3 for

boundary=5

because [x <- [2..n](BR]] the 1-process [1->] has 0 element, [[BR]] the 2-process [2->1] has 1 element, [[BR]] the 3-process [3->10,5,16,8,4,2,1] has 7 elements, [[BR]] the 4-process [4->2,1] has 2 elements and [[BR]] the 5-process [5->16,8,4,2,1] has 5 elements [[BR]] so the index for which the maximum is reached is '''3''' (for a length maximum of 7).

{{{ -- syracuse.hs import Data.Array import Data.Ord

boundary=25999

maximumBy g x = fst $ (foldr (maxBy g) (0,0) x)

maxBy comp x y=case (comp x y) of GT -> x EQ -> y LT -> y

syrs n = a where a = listArray (1,n) $ 0:[ syr x )

syr x = if x' <= n then 1 + a ! x' else 1 + syr x'

where x' = if even x then x div 2 else 3 * x + 1

main = print $ maximumBy (comparing snd)$ assocs $ syrs boundary

}}}

The error message

syracuse.exe: internal error: schedule: invalid what_next field [[BR]]

(GHC version 6.10.1 for i386_unknown_mingw32)[[BR]]

Please report this as a GHC bug: http://www.haskell.org/ghc/reportabug [[BR]]

This application has requested the Runtime to terminate it in an unusual way. [[BR]] Please contact the application's support team for more information. [[BR]]

The ways I get or not the error message

I'm running Windows XP SP3 on a ~1GHz CPU/ ~1Go RAM computer.[[BR]] Within ghci, I'm only limited by memory (I get an *** Exception : stack overflow for boundary=140000) and I can compute up to

boundary=130000

for which the program returns 106239.

On the other hand, when I compile using

ghc --make syracuse

everything 's all right up to boundary=25998 (result:23529, Exit code: 0 ) but as far as boundary>25998, the program displays the result (for instance I can get 106239 again) but the error message is also displayed with Exit code: 3.

Trac metadata
Trac field Value
Version 6.10.1
Type Bug
TypeOfFailure OtherFailure
Priority normal
Resolution Unresolved
Component Runtime System
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