#11297: CmmSwitchTest fails on arm
-------------------------------------+-------------------------------------
Reporter: bgamari | Owner: bgamari
Type: bug | Status: new
Priority: normal | Milestone: 8.0.1
Component: Compiler | Version: 7.10.3
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: Incorrect result
Unknown/Multiple | at runtime
Test Case: CmmSwitchTest | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
{{{
Actual stdout output differs from expected:
--- /dev/null 2015-12-26 13:34:29.750000000 +0100
+++ ./codeGen/should_run/CmmSwitchTest.run.stdout.normalised 2015-12-26
22:14:17.937137588 +0100
@@ -0,0 +1,57 @@
+ERR: aj (-1) is 1337 and not 41.
+ERR: ak (-11) is 1337 and not 36.
+ERR: ak (-10) is 1337 and not 37.
+ERR: ak (-9) is 1337 and not 37.
+ERR: ak (-8) is 1337 and not 38.
+ERR: ak (-7) is 1337 and not 38.
+ERR: ak (-6) is 1337 and not 39.
+ERR: ak (-5) is 1337 and not 39.
+ERR: ak (-4) is 1337 and not 40.
+ERR: ak (-3) is 1337 and not 40.
+ERR: ak (-2) is 1337 and not 41.
+ERR: ak (-1) is 1337 and not 41.
+ERR: al (0) is 1337 and not 42.
+ERR: al (1) is 1337 and not 42.
+ERR: al (2) is 1337 and not 43.
+ERR: al (3) is 1337 and not 43.
+ERR: al (4) is 1337 and not 44.
+ERR: al (5) is 1337 and not 44.
+ERR: al (6) is 1337 and not 45.
+ERR: al (7) is 1337 and not 45.
+ERR: al (8) is 1337 and not 46.
+ERR: al (9) is 1337 and not 46.
+ERR: al (10) is 1337 and not 47.
+ERR: al (-11) is 1337 and not 36.
+ERR: al (-10) is 1337 and not 37.
+ERR: al (-9) is 1337 and not 37.
+ERR: al (-8) is 1337 and not 38.
+ERR: al (-7) is 1337 and not 38.
+ERR: al (-6) is 1337 and not 39.
+ERR: al (-5) is 1337 and not 39.
+ERR: al (-4) is 1337 and not 40.
+ERR: al (-3) is 1337 and not 40.
+ERR: al (-2) is 1337 and not 41.
+ERR: al (-1) is 1337 and not 41.
+ERR: ay (4294967295) is 1337 and not 41.
+ERR: az (4294967285) is 1337 and not 36.
+ERR: az (4294967286) is 1337 and not 37.
+ERR: az (4294967287) is 1337 and not 37.
+ERR: az (4294967288) is 1337 and not 38.
+ERR: az (4294967289) is 1337 and not 38.
+ERR: az (4294967290) is 1337 and not 39.
+ERR: az (4294967291) is 1337 and not 39.
+ERR: az (4294967292) is 1337 and not 40.
+ERR: az (4294967293) is 1337 and not 40.
+ERR: az (4294967294) is 1337 and not 41.
+ERR: az (4294967295) is 1337 and not 41.
+ERR: ba (4294967285) is 1337 and not 36.
+ERR: ba (4294967286) is 1337 and not 37.
+ERR: ba (4294967287) is 1337 and not 37.
+ERR: ba (4294967288) is 1337 and not 38.
+ERR: ba (4294967289) is 1337 and not 38.
+ERR: ba (4294967290) is 1337 and not 39.
+ERR: ba (4294967291) is 1337 and not 39.
+ERR: ba (4294967292) is 1337 and not 40.
+ERR: ba (4294967293) is 1337 and not 40.
+ERR: ba (4294967294) is 1337 and not 41.
+ERR: ba (4294967295) is 1337 and not 41.
\ No newline at end of file
*** unexpected failure for CmmSwitchTest(normal)
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11297>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
#12052: Split ghc-boot so we have better dependency hygiene
-------------------------------------+-------------------------------------
Reporter: ezyang | Owner:
Type: bug | Status: new
Priority: high | Milestone: 8.0.2
Component: Core | Version: 8.0.1
Libraries |
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
At the moment, `template-haskell` transitively depends on `bytestring`.
This means that any package which depends on `template-haskell` has its
`bytestring` version pinned to the version that was shipped with GHC.
Which is lame, because `template-haskell` doesn't actually use
`bytestring` in any interesting way.
This is bad, we should split `ghc-boot` into two pieces, one which has the
binary package database bits, and another which contains the Template
Haskell bits, so we can have better dependency hygiene.
We should also have a comment on `template-haskell` mentioning the
importance of dependency hygiene, so this doesn't happen again.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12052>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
#12086: Allow omitting type family signature
-------------------------------------+-------------------------------------
Reporter: Iceland_jack | Owner:
Type: feature | Status: new
request |
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.1
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
Syntactic issue.
I find myself writing
{{{#!hs
type family
Not a where
Not False = True
Not True = False
}}}
quite often, where the signature can be inferred it would be nice to be
able to write ... to mean the same thing
{{{#!hs
type family
Not False = True
Not True = False
}}}
I know Richard has
[https://www.reddit.com/r/haskell/comments/4amov2/the_future_of_dependent_ha…
a lot of things planned], I don't know how they mesh together
----
The desugaring is straightforward, for a type family with n-indexes, add a
signature with n fresh type variables.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12086>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
#12085: Premature defaulting and variable not in scope
-------------------------------------+-------------------------------------
Reporter: Iceland_jack | Owner:
Type: task | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.1
Keywords: | Operating System: Unknown/Multiple
TypeApplications |
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
{{{#!hs
{-# Language RankNTypes, ScopedTypeVariables, TypeFamilies,
TypeOperators, UnboxedTuples, UnicodeSyntax, ViewPatterns,
QuasiQuotes, TypeInType, ApplicativeDo, TypeApplications,
AllowAmbiguousTypes
#-}
import Data.Kind
todo :: forall (a::Type). (Read a, Show a) => String
todo = show @a (read @a "42")
}}}
there are two things I notice, even with `AllowAmbiguousTypes` the `a`
gets defaulted prematurely
{{{
$ ghci -ignore-dot-ghci -fwarn-type-defaults /tmp/tl0z.hs
GHCi, version 8.0.0.20160511: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( /tmp/tl0z.hs, interpreted )
Ok, modules loaded: Main.
*Main> :t todo
<interactive>:1:1: warning: [-Wtype-defaults]
Defaulting the following constraints to type ‘()’
(Read a0) arising from a use of ‘it’ at <interactive>:1:1
(Show a0) arising from a use of ‘it’ at <interactive>:1:1
foo :: String
*Main>
}}}
instead of something like `todo :: forall a. (Read a, Show a) => String`,
it can be applied to types
{{{
*Main> foo @Int
"42"
*Main> foo @Float
"42.0"
}}}
----
The second thing is that if you want to add an argument independent of `a`
{{{#!hs
-- ghci> foo @Int False
-- "100"
-- ghci> foo @Float True
-- "42.0"
foo :: forall (a::Type). (Read a, Show a) => Bool -> String
foo b = show @a (read @a (if b then "42" else "100"))
}}}
I found no way to define it as
{{{#!hs
-- ghci> foo False @Int
-- "100"
-- ghci> foo True @Float
-- "42.0"
foo :: Bool -> forall (a::Type). (Read a, Show a) => String
foo b = show @a (read @a (if b then "42" else "100"))
}}}
to which GHC persists
{{{
$ ghci -ignore-dot-ghci -fwarn-type-defaults /tmp/tl0z.hs
GHCi, version 8.0.0.20160511: http://www.haskell.org/ghc/ :? for help
[1 of 1] Compiling Main ( /tmp/tl0z.hs, interpreted )
/tmp/tl0z.hs:10:15: error: Not in scope: type variable ‘a’
/tmp/tl0z.hs:10:24: error: Not in scope: type variable ‘a’
Failed, modules loaded: none.
Prelude>
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12085>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
#11831: Illegal Instruction when running byte operations in ghci
----------------------------------+-------------------------------
Reporter: Kritzefitz | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: GHCi | Version: 7.10.3
Keywords: | Operating System: Linux
Architecture: arm | Type of failure: GHCi crash
Test Case: | Blocked By:
Blocking: | Related Tickets:
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:
{{{#!hs
> :m Data.Word Data.Binary.Put Data.Bits Data.Bytes.Put
> runPut $ Data.Bytes.Put.putWord8 1
"\SOH"
-- 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.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11831>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
#12013: CallStack is available from base 4.8, not 4.9
-------------------------------------+-------------------------------------
Reporter: edsko | Owner:
Type: bug | Status: new
Priority: low | Milestone:
Component: Documentation | Version: 7.10.3
Keywords: | Operating System: Unknown/Multiple
Architecture: | Type of failure: None/Unknown
Unknown/Multiple |
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
-------------------------------------+-------------------------------------
The documentation for `CallStack` claims it's available since 4.9 (ghc
8.0), but actually it's available since 4.8 (ghc 7.10).
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12013>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler