Opened 3 years ago

Last modified 3 years ago

#11831 new bug

Illegal Instruction when running byte operations in ghci

Reported by: Kritzefitz Owned by:
Priority: normal Milestone:
Component: GHCi Version: 7.10.3
Keywords: Cc: erikd
Operating System: Linux Architecture: arm
Type of failure: GHCi crash Test Case:
Blocked By: Blocking:
Related Tickets: #10375, #8896, #10863, #10969 Differential Rev(s):
Wiki Page:


On a Debian armel machine I started ghci through cabal repl in bytes-0.15.2 an run the following commands, which reproducibly (for me) run into a crash:

> :m Data.Word Data.Binary.Put Data.Bits Data.Bytes.Put
> runPut $ Data.Bytes.Put.putWord8 1
-- Exactly the same again:
> runPut $ Data.Bytes.Put.putWord8 1
"Illegal instruction

Using Data.Binary.Put.putWord8 instead of Data.Bytes.Put.putWord8 doesn't lead to a crash, even though the only difference between the two is that the bytes version is an instance method.

Using an installed version of bytes instead of compiling it with GHCi (in my case with cabal repl) doesn't crash.

Some strange reactions during debugging this lead me to believe, that running some calculations between the two shown above can avert the crash, but I couldn't figure out, what exactly had to be done.

Change History (2)

comment:1 Changed 3 years ago by thomie

Cc: erikd added

Which version of llvm do you have installed? llvm-3.5.0 is known to be broken, and llvm-3.5.2 is known to be working.

comment:2 Changed 3 years ago by Kritzefitz

According to the Debian buildd log llvm-3.5.2 was used.

Note: See TracTickets for help on using tickets.