04:22:44 <donri> stepcut: you there?
04:22:50 <stepkut> yups!
04:22:56 <donri> alright
04:22:58 <stepkut> working on clckwrks
04:23:08 <stepkut> this new plugins stuff is pretty swell
04:23:10 <donri> i think you can build new directory on older ghc but if you use it you might run into problems
04:23:28 <donri> cabal will select an older happstack that supports older directory if you don't have a lower bound on happstack 7.1
04:23:57 <donri> the scoutess patch wasn't done by me
04:24:25 <donri> i don't think you can make a conditional dependency on old-time based on directory inside cabal
04:24:29 <donri> there's no MIN_VERSION in there
04:24:33 <donri> only impl(ghc)
04:24:45 <stepkut> hmm
04:26:30 <stepkut> I think you do something like, declare a new flag old_time
04:26:41 <stepkut> rather, old_directory
04:26:54 <donri> actually haven't tested new directory with ghc 7.4 but i tried something like it with bytestring, which installed just fine but then i started to get linker errors in like all projects ^_^
04:27:13 <stepkut> and then do something like, if (old_directory) depends: directory  < 1.2, old-time else depends directory >= 1.2
04:27:31 <donri> yes but then you have to install happstack with -fold_directory on ghc<7.6
04:27:45 <stepkut> yeah, those linker errors can occur if you link against multiple version of directory I believe
04:28:21 <donri> cabal doesn't link against multiple versions though
04:28:22 <stepkut> so, your recommendation is that even though you could possibly use directory 1.2 with GHC 7.4, it is better not to try
04:28:31 <donri> i guess so yea
04:28:41 <donri> because directory is a core ghc package
04:28:51 <stepkut> I think that is sensible
04:29:13 <stepkut> seems like the least amount of trouble and you aren't going to gain much by trying to use directory 1.2
04:29:28 <stepkut> unless you rebuilding everything on your system to use directory 1.2 across the board
04:29:41 <donri> i'm almost tempted to make an old-time-compat package... then we have three time packages ;P
04:29:48 <stepkut> >:p
04:29:56 <stepkut> I pull tha patch tomorrow and make a new release
04:30:06 <donri> cool
04:30:19 <stepkut> it seems like a pretty safe approach, and if people really want 1.2 they should upgrade to 7.6 :p
04:30:27 <donri> yea
04:31:41 <stepkut> I guess the way it is implemented now, when you have GHC 7.4 installed it merely adds a dependency on old-time that may not be needed
04:31:49 <stepkut> if you have directory 1.2 installed and working, it would actually work?
04:32:32 <donri> yea
04:32:35 <stepkut> cool
04:32:37 <stepkut> I'm happy :)
04:32:45 <donri> well i haven't tried that but in theory yea
04:32:57 <donri> since i'm using MIN_VERSION_directory instead of __GLASGOW_HASKELL__
04:34:12 <stepkut> did you submit a pull request via darcs hub ?
04:34:17 <stepkut> right
04:34:31 <donri> they don't have pull requests :)
04:35:00 <stepkut> wasn't there some merge button I could click before
04:35:01 <stepkut> ?
04:35:26 <donri> yea on the branches page, but i broke that page with the 4 pages patches from hs-auth
04:36:02 <stepkut> ah
04:36:10 <stepkut> well, I wasn't going to use it anyway
04:37:30 <donri> hm one thing though
04:37:41 <stepkut> >:(
04:38:06 <donri> :)
04:38:19 <donri> "It looks like the exported API does not change at all, which is essential."
04:38:27 <stepkut> yes..
04:38:27 <donri> i'm not sure about that, depending on what you mean
04:38:56 <donri> depending on which directory you get, there are things that take either an UTCTime or a CalendarTime now
04:38:59 <donri> with this patch
04:39:35 <donri> and docs on hackage are going to say UTCTime
04:39:45 <donri> oh dear i'm not sure i like this myself
04:39:57 <donri> maybe we really need an old-time-compat? :/
04:40:05 <stepkut> I don't see any altered type signatures in the patch..
04:40:19 <donri> yea because i'm sneaky and doing #define UTCTime CalendarTime
04:40:26 <stepkut> oh
04:40:31 <donri> sneeeeeeeeaky
04:40:34 <stepkut> I see now
04:40:41 <stepkut> that.. is not going to work
04:40:54 <donri> yea not sure what i was thinking, in retrospect :D
04:40:56 <stepkut> because you can't depend on the version of happstack-server that was built against directory 1.1 vs 1.2
04:41:09 <donri> what do you mean?
04:41:51 <stepkut> let's say you want to write some code that uses those functions. How will you know if you should pass UTCTime or CalendarTime ?
04:42:12 <donri> the problem is this patch will infect any other library that depends on happstack-server and wants to work with both directories
04:42:23 <donri> they too will have to do the CPP dance
04:42:38 <stepkut> but, they also have to know *which* directory happstack-server was built against..
04:42:42 <donri> so yea i think we need old-time-compat, e.g. a package to convert CalendarTime to UTCTime properly
04:42:57 <stepkut> probably
04:43:11 <donri> well as we said earlier we can only build against one directory for our whole ghc-pkg db
04:43:28 <donri> so we "know" that with MIN_VERSION_directory
04:43:35 <donri> but it's annoying to need to deal with it everywhere
04:44:41 <stepkut> cabal is picky, but if you use runhaskell Setup.hs it will let you use multiple versions
04:44:49 <donri> oh, hah
04:44:58 <stepkut> just gives you a warning
04:47:18 <stepkut> anyway, the core rule is that cabal flags are not supposed to alter the exported API in any way
04:48:31 <donri> wtf this worked on ghc 7.4: $ cabal install --constraint='happstack-server>=7.1'
04:48:43 <stepkut> \o/
04:48:49 <donri> and ghc-pkg describe says the package is build against directory-1.1 and happstack-server-7.1
04:48:53 <donri> what's going on
04:49:40 <donri> that's clearly as constraint violation? cabal bug?
04:49:53 <donri> oh! oh dear
04:49:57 <donri> i'm so stupid.
04:49:58 <stepkut> I donut know
04:50:15 <donri> it used the patched happstack i installed before
04:50:19 <stepkut> :)
04:50:19 <donri> not hackage
04:52:49 <donri> ok if i unregister that one
04:53:11 <donri> rejecting: happstack-server-7.1.0 (conflict: cpphs =>
04:53:12 <donri> directory==, happstack-server => directory>=1.2)
04:53:21 <stepkut> yeah
04:53:48 <donri> so not sure how you managed to do it
04:53:58 <stepkut> I didn't use cabal
04:54:02 <stepkut> I used runhaskell Setup.hs
04:54:15 <donri> ah!
04:54:45 <stepkut> anyway, why dose cpphs required directory Probably because that is what is already installed as
04:54:57 <stepkut> it's not restricted, http://hackage.haskell.org/package/cpphs-1.14
04:55:39 <donri> yea i think cabal will refuse to upgrade ghc deps
04:56:32 <donri> even with --upgrade-dependencies i can't get it to build
04:56:41 <donri> i can install directory itself directly, but not as a dep
04:58:05 <stepkut> this just worked for me, cabal install happstack-server-7.1.0
04:58:17 <stepkut> with ghc 7.4.1
04:58:38 <stepkut> it pulled in directory-1.2 and everything is spiffy
04:58:49 <donri> it wants --force-reinstalls for me
04:59:38 <donri> let's try in cabal-dev
05:00:16 <hpaste> stepcut pasted “ghc 7.4.1 + directory 1.2” at http://hpaste.org/77767
05:01:00 <donri> but if this work, why do we need to patch for ghc 7.6 at all?
05:01:08 <donri> can't 7.6 use old directory?
05:02:06 <stepkut> probably. But before the patch there was no version constraint on directory I think
05:03:02 <stepkut> so our options are: force directory 1.1, force directory 1.2, write some glue code that makes it possible to use either version with out changing the type-signature of any exported functions
05:03:52 <stepkut> since directory 1.2 and GHC 7.6 are the future, and it happstack-server-7.1.0 seemed to install fine for me with the patches someone submitted I went with that
05:04:31 <donri> odd thing is this doesn't work for my app: $ cabal install --constraint='happstack-server>=7.1' --force-reinstalls
05:04:52 <stepkut> if you unregister happstack-server, and do, cabal install happstack-server-7.1.0, does that work?
05:05:04 <donri> yes, but not as a dep...
05:05:26 <stepkut> dependency of what?
05:05:48 <stepkut> something that depends on a package that only works with directory 1.1 ?
05:06:16 <donri> i don't think so, it would say then?
05:06:37 <stepkut> what does it say?
05:07:47 <stepkut> your earlier error message said something about cpphs?
05:07:53 <hpaste> donri pasted “happstack-server>=7.1” at http://hpaste.org/77768
05:08:09 <donri> i tried it with cabal-dev instead to skip ~/.cabal
05:08:38 <donri> looks like it wants to rebuild process, but is refusing
05:08:48 <stepkut> looks like your process was built against directory 1.1?
05:08:50 <donri> odd that it works with happstack-server alone
05:09:28 <stepkut> not really.. I think happstack-server does not depend on any packages that depend on directory?
05:09:38 <donri> sure it does, it depends on process for one
05:09:59 <stepkut> yeah, hslogger and process
05:10:26 <stepkut> which on my system are both built against directory 1.2
05:11:24 <donri> so if we force dir 1.2, it won't work with cabal and ghc<7.6? only Setup.hs?
05:11:26 <stepkut> what happens if you do, --constraint='directory >= 1.2'
05:11:47 <donri> same thing
05:12:00 <stepkut> no, I just tested. I did cabal install happstack-server-1.2.0 from  hackage
05:12:24 <stepkut> well.. you need to build your hslogger and process against directory 1.2
05:12:25 <donri> you mean directory?
05:12:34 <stepkut> sorry, happstack-server-7.1.0
05:13:04 <donri> yea that works for me too
05:13:09 <donri> so confused now!
05:13:11 <donri> argh
05:13:26 <hpaste> stepcut annotated “ghc 7.4.1 + directory 1.2” with “ghc 7.4.1 + directory 1.2 (annotation)” at http://hpaste.org/77767#a77769
05:13:32 <stepkut> you can see the full build log there
05:14:16 <donri> so the problem is i have some dep that requires dir 1.1 but cabal isn't reporting that as the error? o_O
05:14:30 <stepkut> could be
05:56:34 <stepkut> ooo. my patch to Cabal was pulled! https://github.com/haskell/cabal/pull/1110
06:48:03 <stepkut> where oh where could my menu be..
08:29:35 <donri> yay blog post
08:38:12 <donri> btw generics is new in 7.2 not 7.6
08:50:25 <donri> looks like fay-jquery isn't on hackage
09:38:24 <adnam> nope :[
09:39:29 <adnam> want to be enable to represent the optional json madness in $.ajax
20:58:26 <stepkut> ooo. my menu is back \o/