[Haskell-cafe] Time Typeable Instances
Warren Harris
warrensomebody at gmail.com
Thu Oct 22 02:36:31 EDT 2009
Hi John,
I just stumbled on this issue while trying to compile turbinado with
the haskell platform / ghc 6.10.4. I got past it by manually editing
back in the time definitions, but just wondering if there was an
official resolution. Thanks,
Warren
On Oct 13, 2009, at 6:48 AM, John Goerzen wrote:
> Hugo Gomes wrote:
>> The Glorious Glasgow Haskell Compilation System, version 6.10.4
>> with old-time-1.0.0.2 and time-1.1.2.4
>>
>> This is a standard haskell platform on a windows xp. Cabal install
>> didn't work complaining about missing instances of typeable for posix
>> time and other datatypes, yet, after removing the macros (thus,
>> adding
>> those instances), hdbc and convertible compiled and installed fine.
>>
>> Removing the macros might be a bit overkill, probably finetuning
>> them so
>> that they add only the necessary instances for typeable in ghc > 610
>> might be a better solution.
>
> I'm going to CC haskell-cafe on this because I am confused.
>
> Hugo, can you confirm what version of convertible you have?
>
> Back on May 21, I started a thread [1] on haskell-cafe complaining
> that
> GHC 6.10.3 included a newer time that included instances of Typeable
> for
> NominalDiffTime and UTCTime. This broke my code, which had manually
> defined instances for these types, as they were needed. Things got
> complicated, as only time's minor version number got incremented
> (x.x.x.Y) [2]. Cabal can't test against that version number.
>
> I wanted my code to work with old and new versions of GHC. Since
> testing against the version of time was impossible, I did the next
> best
> thing: tested against the version of GHC.
>
> #if __GLASGOW_HASKELL__ >= 610
> -- instances added in GHC 6.10.3
> #else
> instance Typeable NominalDiffTime where
> typeOf _ = mkTypeName "NominalDiffTime"
>
> instance Typeable UTCTime where
> typeOf _ = mkTypeName "UTCTime"
> #endif
>
> Also, in the .cabal, there is a build-depends on time>=1.1.2.4.
>
> Now, that would break for GHC 6.10.1 and 6.10.2 users, but will work
> for
> 6.10.3 and above, or 6.8 and below. Or so I thought.
>
> Now I'm getting complaints from people using 6.10.4 saying that there
> are now missing instances of Typeable with time 1.1.2.4.
>
> 1) Did the Typeable instances get dropped again from time?
> 2) What exactly should I do so this library compiles on GHC 6.8 and
> 6.10.x?
>
> I'm looking at the darcs repo for time and don't see the instances
> ever
> getting dropped.
>
> [1] http://osdir.com/ml/haskell-cafe@haskell.org/2009-05/msg00982.html
> [2] http://osdir.com/ml/haskell-cafe@haskell.org/2009-05/msg00985.html
>
>
> .... later addendum ....
>
> so it appears that what's happening here is that GHC 6.10.3 extralibs
> included time 1.1.3, but then haskell-platform standardized on
> 1.1.2.4.
> This is pretty annoying -- that haskell-platform would standardize
> on a
> version older than what shipped with a GHC release -- but I guess I
> can
> work around it by restricting my build-dep to be time < 1.1.3 and
> re-adding the instances.
>
> Does this sound right?
>
>>
>>
>> On Tue, Oct 13, 2009 at 2:51 AM, John Goerzen <jgoerzen at complete.org
>> <mailto:jgoerzen at complete.org>> wrote:
>>
>> Hugo Gomes wrote:
>>> Hi,
>>>
>>> convertible and hdbc packages fail to compile in my standard
>> instalation
>>> of the haskell platform. I think this has to do with those "if ghc
>>> >=
>>> 610" macros on the typeable instances for some datatypes. I
>> removed them
>>> and now they work fine...
>>>
>>>
>>>
>>
>>
>> What version of GHC and time do you have?
>>
>> -- John
>>
>>
>
> _______________________________________________
> Haskell-Cafe mailing list
> Haskell-Cafe at haskell.org
> http://www.haskell.org/mailman/listinfo/haskell-cafe
More information about the Haskell-Cafe
mailing list