2015-10-14 11 views
6

Pod GHCi 7.10.2 na Parallella zdefiniowałem typ danych Peg, który wywodzi się z Show. Mam błąd segmentacji, gdy próbowałem zip dwie listy Peg. Czy ktoś ma jakieś wskazówki?Błąd segmentacji, gdy lista zindywidualizowanych suwaków 2 z własnym numerem

[email protected]:~CIS192/hw_2$ ghci 
GHCi, version 7.10.2: http://haskell.org/ghc/ :? for help 
Prelude> 
Prelude> 
Prelude> data Peg = Red | Green deriving (Show) 
Prelude> zip [Red, Red] [Green, Green] 
[(Red,Green),(Segmentation fault 
+2

Nie ma nic złego w tym kodzie. Może instalacja GHCi nie działa poprawnie? Czy możesz uruchamiać inne programy w GHCi bez awarii? Na przykład. 'zip [1,2] [3,4]'? W Haskell, chyba że pracujesz z materiałami na bardzo niskim poziomie, nie ma możliwości, aby spowodować uszkodzenie. W twoim GHCi coś wygląda nie tak. – chi

+0

Tak, zip [1,2] [3,4] jest w porządku. – Sid

+1

Otrzymuje błąd seg tylko wtedy, gdy definiuje typ, który wywodzi Show. – Sid

Odpowiedz

3

Rozszerzając komentarzu Reid Barton:

Było a serious bug z obsługą GHC za procesorach ARM, związanej ramię ma dwa różne tryby zestaw instrukcji (ARM i kciuka). System runtime skompilowany przez GCC i skompilowany kod biblioteki/użytkownika LLVM użył różnych domyślnych opcji. Łącznik runtime GHCi nie rozumiał tych poprawnie, powodując awarie podczas przeskakiwania z kodu napisanego w jednym trybie do kodu napisanego w drugim.

Błąd został właśnie naprawiony (przez wymuszenie trybu uzbrojenia wszędzie), a poprawka powinna znajdować się w nadchodzących wydaniach GHC 7.10.3 i 8.0.1.

+0

Brzmi jak kolejny dobry powód, aby uzyskać wydanie 7.10.3. – dfeuer