07:41:18 <donri> the locking is causing problems for me too :(
07:41:33 <stepkut> I blame Lemmih
07:41:47 <donri> :)
07:42:23 <stepkut> in happstack-foundation we do this:
07:42:24 <stepkut> withLocalState mPath initialState =
07:42:24 <stepkut>     bracket (liftIO $ (maybe openLocalState openLocalStateFrom mPath) initialState)
07:42:24 <stepkut>             (\acid -> liftIO $ (createArchive acid >> createCheckpointAndClose acid))
07:42:27 <stepkut>  
07:43:01 <stepkut> but, perhaps bracket does not invoke the termination handler when you do ^C ?
07:44:40 <LambdaDusk> it always did before - I had it similar in my naive happstack monad
07:45:33 <LambdaDusk> unless createArchive fails or something
07:46:11 <stepkut> ACTION has no idea when/how the lock is supposed to be cleaned up.. is createCheckpointAndClose trying to do it? but not working correctly?
07:46:38 <stepkut> Or does it wait until the acid-state is reopenned, checked the pid, and then remove the lock if the pid does not exist?
07:49:26 <LambdaDusk> I think it uses the locking call of linux/unix
07:49:51 <LambdaDusk> Lemmih would know
07:52:06 <stepkut> ooo
07:52:17 <stepkut> closeLocalState calls 'releasePrefixLock (localLock acidState)'
07:52:32 <stepkut> but createCheckpointAndClose does not
07:53:22 <stepkut> I bet that is the problem :)
07:53:36 <LambdaDusk> wow
07:53:57 <LambdaDusk> why wouldn't it, though
07:54:10 <stepkut> because Lemmih forgot to added it
07:54:46 <LambdaDusk> happens
07:55:16 <LambdaDusk> stepkut: There's also missing code that makes the requestState in foundation utterly useless, probably forgot that, too
07:55:59 <stepkut> LambdaDusk: I think you can just use get/set/modify?
07:56:10 <stepkut> anyway, I added some functions
07:56:17 <stepkut> and release a new version on hackage
07:56:41 <LambdaDusk> stepkut: No you can't because the AppState ist not an exposed datatype
07:57:26 <stepkut> ah
07:57:30 <stepkut> well, there are functions now
07:58:14 <stepkut> I wish hsp would build on hackage so we could get docs
07:58:54 <stepkut> I'll be in the same room as Niklas et el this week, so maybe we can hammer that out
07:59:47 <stepkut> anyway, happstack-foundation 0.2.1 shoud have the missing functions, and I sent a patch for createCheckpointAndClose to Lemmih
07:59:51 <stepkut> thanks for your bug reports!
08:00:01 <stepkut> can't fix things unless I know they are broken ;)
08:33:56 <LambdaDusk> modem failure
08:34:28 <LambdaDusk> what'd I mis?
08:42:22 <donri> stepcut: i use bracket and close, but when i reboot the lock prevents starting the app
08:44:20 <donri> ah new acid-state just now
08:48:17 <LambdaDusk> .... when I was just done re-compiling the deps...
08:48:24 <donri> :)
08:48:41 <donri> complaining about getting quick bugfixes, tsk tsk ;)
08:50:57 <LambdaDusk> I am a horrible person, yes
08:54:21 <donri> hm looks like i'm not calling close anywhere
08:54:34 <donri> i think i was doing that, which caused problems with the remote backend
08:56:55 <LambdaDusk> aw man deps failure
08:57:18 <LambdaDusk> I tihnk the average haskell dev spends 20% of their time with compiling deps
08:58:02 <donri> LambdaDusk: http://xkcd.com/303/
08:58:26 <LambdaDusk> ^^ yeah that's fun at work
08:58:32 <LambdaDusk> but not at home =/
08:58:48 <LambdaDusk> maybe I can try to move the private compiling to the office too...
09:02:58 <donri> Lemmih: if i closeAcidState on a remote state the app never exits. i think i checked before that it's not close itself blocking, so rather some lingering thread?
09:10:38 <LambdaDusk> jmacro is suddenly a problem...
09:24:40 <LambdaDusk> stepcut: Sorry to annoy you, but there a specific reason by happstack-foundation is restricted to mtl 2.1.* instead of just 2.* ?
09:24:56 <Lemmih> donri: Eh?
09:25:11 <donri> eh?
09:27:00 <Lemmih> donri: The call to 'closeAcidState' never terminates?
09:27:35 <donri> Lemmih: the call terminates, but not the app, even though closeAS is the last thing in "main" (effectively)
09:28:26 <Lemmih> That's odd.
09:28:33 <donri> Lemmih: it works fine if i don't bracket (openRemote) (closeAS)
09:28:42 <Lemmih> That's even more odd.
09:28:47 <Lemmih> Stop being so odd.
09:28:52 <donri> (except then the lock isn't cleaned up)
09:28:53 <Lemmih> :p
09:29:26 <donri> i'm gonna try to modify the RemoteClient example and see if i can replicate it simply
09:29:42 <Lemmih> If closeAS is the last call and it /does/ terminate, everything should be fine.
09:29:44 <donri> reproduce even
09:29:57 <donri> Lemmih: that's why i suspect a lingering thread
09:30:23 <Lemmih> But all threads are killed if the main thread quits/dies/terminates.
09:36:35 <hpaste> donri pasted “this reproduces it for me” at http://hpaste.org/74579
09:36:45 <donri> $ runhaskell RemoteClient.hs query
09:36:46 <donri> State value: 0
09:36:48 <donri> then it just sits there
09:38:37 <LambdaDusk> wait a moment isn't there a happstack google group?
09:38:48 <donri> LambdaDusk: there is a happs group
09:39:07 <donri> Lemmih: ah yea closeAS does hang
09:39:09 <LambdaDusk> then I can post my annyoing posts there!
09:39:40 <hpaste> donri pasted “it never reaches "Done"” at http://hpaste.org/74580
09:39:50 <donri> sorry for misleading you :)
09:51:45 <donri> LambdaDusk: actually those packages permit mtl 2.1 but are already built against 2.0
09:52:03 <LambdaDusk> huh
09:52:04 <donri> LambdaDusk: could probably get it to build with --force-reinstalls or something
09:52:22 <LambdaDusk> i removed the cabal-dev folder entirely
09:52:30 <donri> that works too
09:56:25 <LambdaDusk> no it didn't
09:56:56 <donri> should
09:57:18 <donri> or do you have pandoc or websockets installed in /usr?
09:57:33 <donri> cabal-dev ignores user packages but not system packages
09:58:19 <LambdaDusk> now it does
09:58:26 <LambdaDusk> I think I am going mad
09:58:30 <donri> :)
09:58:38 <LambdaDusk> it's been 3 hours and I have not yet written any code!
09:59:17 <LambdaDusk> does the order in the .cabal file matter by any chance?
09:59:27 <donri> bope
09:59:30 <donri> npe
09:59:50 <donri> fingers, y u no type
09:59:55 <LambdaDusk> cos hsx-jmacro was a huge troublemaker just 30 minutes ago and now it's not any more
10:00:40 <donri> hsx is a bit tricky with cabal-dev mind you
10:01:15 <donri> you need to do like, PATH=cabal-dev/bin:$PATH cabal-dev install
10:01:55 <donri> actually
10:02:05 <donri> PATH=$PWD/cabal-dev/bin:$PATH cabal-dev install
10:02:21 <LambdaDusk> I was always suspicious of hsx, to be honest, since I am wondering why not just template haskell
10:02:35 <donri> upcoming hsx includes a QQ
10:02:42 <LambdaDusk> oh thank god
10:02:53 <LambdaDusk> or some other deity who is available
10:03:08 <donri> thank the maker (stepcut)
10:03:29 <LambdaDusk> he's the next close thing
10:03:40 <donri> well he is the maker of hsx' qq :)
10:03:46 <LambdaDusk> seriously you guys are like gods to me
10:04:02 <donri> i'm only a half god
10:04:41 <donri> Dag, the son of the Night goddess and the Twilight giant
10:04:48 <donri> or maybe it was the other way around
10:05:17 <donri> http://en.wikipedia.org/wiki/Dagr
10:05:51 <LambdaDusk> donri: http://www.abominable.cc/comics/2012-07-25.jpg
10:07:13 <LambdaDusk> also, when developing an acid-state model via ixset, should that be close to SQL way of modelling?
10:09:03 <donri> well, not quite
10:10:30 <LambdaDusk> my model contains characters, each of them has a kind of blog thingie, and the question is if the blog posts are their own ixset or a list in the character type
10:11:36 <donri> you can have simply one ixset at the top, and index deeply, or you can have nested ixsets, it's up to you
10:12:04 <LambdaDusk> oh yes! nested ixsets
10:12:08 <donri> the former is perhaps easier if you can do it like that, the latter more decoupled i guess
10:12:11 <LambdaDusk> wow am I dumb
10:12:45 <LambdaDusk> hmm
10:13:04 <LambdaDusk> question is if I can still query when I can't get the ixset without the character type
10:13:34 <LambdaDusk> but the idea is good and it will fit well
10:13:39 <LambdaDusk> thanks
10:13:41 <donri> if you nest you'll have to issue multiple queries to "step deeper" into the nesting, so more work (and maybe slower, but probably not noticeable)
10:13:57 <Lemmih> donri: Closing a remote AcidState merely closes the remote connection. I'm not sure why it blocks.
10:14:10 <donri> Lemmih: could you reproduce it with my paste?
10:15:46 <donri> let's try without bracket, just because
10:17:22 <hpaste> donri pasted “this never reaches "Closed" (bracket free version)” at http://hpaste.org/74582
10:17:49 <Lemmih> Yeah, I can reproduce it.
10:17:51 <Lemmih> Weird.
10:18:29 <donri> indubitably!
10:19:58 <Lemmih> I'll go eat lunch and then fix it afterwards.
10:20:02 <donri> cool!
10:20:27 <donri> smaklig måltid
10:21:23 <donri> "bon appetite" is the english translation google suggests ^_^
10:36:56 <LambdaDusk> all right next trouble: convince hsp to generate html5 templates
10:39:36 <donri> LambdaDusk: xml <- template; ok $ toResponse $ docType ++ renderAsHTML xml
10:39:49 <donri> i suggest you make a helper function or a newtype and ToMessage instance
10:43:08 <LambdaDusk> appTemplate is already there, it will do
10:43:14 <LambdaDusk> where's docType defined?
10:45:53 <donri> it's a string that you define
10:46:04 <donri> it was hypothetical
10:46:36 <donri> oh and you don't want "ok" in a helper function since you might want to use it for other response codes
10:47:47 <LambdaDusk> for errors I will use aeson ^^
10:48:41 <LambdaDusk> wow it's sent as Content-Type: Text/plain
10:49:06 <donri> ah heh
10:49:17 <donri> setContentTypeM or something like that
10:50:34 <LambdaDusk> huh
11:32:09 <stepkut> LambdaDusk:  toResponse (html5, Element (Nothing, "foo") [] [])
11:32:29 <LambdaDusk> that's "html5" ?
11:32:45 <hpaste> stepcut pasted “stepcut” at http://hpaste.org/74583
11:32:49 <stepkut> but you need to define html5 first
11:33:05 <stepkut> we should probably add it though
11:33:26 <stepkut> we have html4Strict and html4StrictFrag predefined.. but now that html5 is around, we should add that too
11:34:23 <stepkut> a separate question is when should we change the default behavior for ToMessage XML
11:34:30 <stepkut> right now it sets the doctype to html4strict
11:34:48 <LambdaDusk> you should now
11:35:28 <LambdaDusk> hm
11:35:49 <LambdaDusk> since these types are not visible I will use my way with toResponseBS
11:39:15 <stepkut> those types?
11:39:19 <stepkut> import HSP.HTML ?
11:39:24 <stepkut> or something
11:39:28 <LambdaDusk> from your hpaste
11:39:32 <stepkut> the html5 value is missing
11:39:38 <LambdaDusk> XMLMetaData etc
11:40:03 <stepkut> import HSP.XML
11:40:15 <stepkut> though, import HSP is probably enough
11:41:33 <LambdaDusk> huh
11:41:37 <LambdaDusk> doubly written
11:42:01 <Lemmih> donri: Fixed. New version on hackage.
11:42:03 <hpaste> LambdaDusk pasted “Template.hs” at http://hpaste.org/74584
11:42:07 <donri> Lemmih: coolness!
11:43:25 <stepkut> I am hoping to finish the HSP refactoring with niklas when he gets to CUFP
11:43:39 <stepkut> we can add the new html5 doctype thing then
11:44:12 <LambdaDusk> stepkut: what'd I do wrong there? It renders twice
11:45:08 <stepkut> whats wrong with plain-old: ok $  toResponse (html5, html) [] []
11:45:16 <hpaste> donri annotated “Template.hs” with “Template.hs (annotation)” at http://hpaste.org/74584#a74585
11:45:33 <stepkut> I mean, ok $  toResponse (html5, html)
11:46:25 <LambdaDusk> yay
11:46:33 <LambdaDusk> thanks
11:53:42 <donri> Lemmih: works, thanks!
11:57:04 <donri> Lemmih: how about having acid-state remove the UnixSocket on close? currently i have to do that manually
11:58:19 <donri> hm well not on close, per se
11:59:29 <donri> ACTION notices there's no public API for shutting down an acidServer
12:02:19 <stepkut> :)
12:03:05 <stepkut> niklas should be here for CUFP
12:03:15 <stepkut> going to try to twist his arm and get a new refactored HSP released
12:03:21 <donri> cool
12:03:23 <donri> when is CUFP
12:03:31 <stepkut> thursday
12:03:46 <stepkut> thursday-sat
12:03:49 <donri> does this include the port to text?
12:04:02 <stepkut> not sure
12:04:07 <stepkut> I forget what we decided
12:04:14 <stepkut> plus we could change our minds :)
12:04:20 <donri> :)
12:05:30 <stepkut> ICFP contest results being annouced now :)
12:06:09 <donri> another thing i half-want (but won't need for some time) would be a trhsx that generates function calls named by tags/attrs instead of with strings
12:06:26 <donri> that would make it easier to make it work with a type safe html lib
12:06:35 <donri> i imagine
12:07:21 <stepkut> so instead of, <foo> -> genElement (Nothing, "foo") [] [], it would be, <foo> -> genElement (Nothing, foo) [] [], ?
12:07:36 <donri> i was thinking, genElement_foo or something
12:07:40 <donri> but shrug
12:08:01 <stepkut> ah
12:08:14 <donri> i guess your variant would work as well with type classes?
12:08:55 <stepkut> probably not?
12:09:01 <stepkut> ACTION has no idea
12:10:07 <donri> well with a shitload of typeclass parameters or type families it might :)
12:10:29 <stepkut> sounds awful
12:13:17 <stepkut> :p
12:16:53 <LambdaDusk> all right 5 hours have gone, now I can continue developing!
12:17:11 <stepkut> :)
12:19:12 <LambdaDusk> though I actually don't feel like it any more =/
12:19:27 <stepkut> =(
12:19:31 <stepkut> GET BACK TO WORK!!
12:19:37 <stepkut> WORKER HARDER!
12:19:51 <stepkut> WORK HARDER, NOT SMARTER!
12:20:01 <LambdaDusk> sorry
12:20:15 <stepkut> :p
12:20:19 <LambdaDusk> read my problem with FoundationT' and FoundationT ?
12:21:19 <stepkut> which problem is that ?
12:22:28 <LambdaDusk> https://groups.google.com/forum/#!msg/happs/Ayt8sm4vk60/yeYpRbvaxnYJ
12:22:57 <stepkut> ah
12:23:43 <stepkut> I'll look later
12:23:52 <stepkut> sounds like a problem
12:24:09 <LambdaDusk> remember that template.hs I posted?
12:24:21 <stepkut> vaguely?
12:24:44 <LambdaDusk> http://hpaste.org/74584 look at line 16
12:25:22 <LambdaDusk> commented is the code I'd like to have there, but I can't, since getRequestState only works for Neighr and not for Neighr'
12:27:28 <LambdaDusk> Neighr and Neighr' are analogue to your CtrlV and CtrlV' from the video
12:33:33 <stepkut> ok, I uploaded a new version, maybe it works better
12:33:54 <stepkut> I also allow, mtl >= 2.0 && < 2.2, now
12:36:08 <LambdaDusk> thx
13:41:15 <donri> stepcut: I half think foundation should include clientsession, since it's an important piece in a fullstack and a bit of labor to set up yourself
15:43:08 <LambdaDusk> I have a question regarding acid-state and laziness
15:43:41 <Lemmih> Go.
15:45:12 <LambdaDusk> let's say I have an IxSet with all the BlogPosts
15:45:19 <LambdaDusk> perhaps a few hundred
15:45:38 <LambdaDusk> then I make a query, just converting them to a desc list
15:45:46 <LambdaDusk> take the list from the query
15:46:10 <LambdaDusk> and THEN, after using "query", I use "take 10" or something, to get the 10 newest
15:46:34 <LambdaDusk> laziness tells me the list will not be generated until those 10
15:46:41 <LambdaDusk> i mean in RAM
15:46:45 <Lemmih> Right.
15:46:47 <LambdaDusk> only 10
15:46:57 <LambdaDusk> but will it still work with the query?
15:47:03 <Lemmih> Yeah.
15:47:22 <Lemmih> queries are lazy unless you're using the Remote backend.
15:47:51 <LambdaDusk> or will the query give me a full copy since it's ACID and it has to make sure the changes a nanosecond later from another thread won't change the result given
15:48:23 <Lemmih> Later updates do not mutate the state. They just create a new, updated state.
15:48:44 <LambdaDusk> so it is safe to make my take and dropuntil operations after the query, yes?
15:48:50 <Lemmih> Yep.
15:49:31 <LambdaDusk> and drop, that won't evaluate, hence creating a copy in memory, until it reached the point?
15:49:47 <Lemmih> ?
15:51:45 <LambdaDusk> I am very paranoid about memory consumption on large lists
15:52:20 <Lemmih> AcidState keeps everything in memory.
15:54:35 <LambdaDusk> I know
15:54:50 <LambdaDusk> but what about double values in memory
15:55:07 <LambdaDusk> I mean they're there, once, and then the compiler copies it for work with it?
15:57:58 <LambdaDusk> my target machine is like, limited to 512 MB
16:05:25 <donri> LambdaDusk: well there's sharing and garbage collection
16:07:46 <donri> Lemmih: did you catch my question about unixsocket cleanup?
16:15:57 <LambdaDusk> looks like I have to re-create my own session solution for happstack-foundation
16:16:16 <stepkut> :(
16:16:27 <stepkut> we should fix that :)
16:18:39 <LambdaDusk> stepkut: I have annoyed you enough. Trouble is just, the happstack-clientsession thing I wanted to use, I can't use without ripping open all of foundation
16:19:27 <LambdaDusk> or I just don't see how, exactly
16:19:53 <stepkut> I have not tried, so I don't have an answer
16:20:00 <stepkut> what seems to be the problem?
16:20:37 <stepkut> happstack-foundation currently has exactly the features I needed for my CUFP presentation.. but clearly that is only a subset of what it actually needs :)
16:20:45 <donri> i think currently clientsession can't be used with hsx or web-routes without writing those instances yourself
16:21:10 <stepkut> ah
16:21:23 <donri> duno if that's the issue LambdaDusk is having, speaking generally
16:21:26 <stepkut> can you put the ClientSessionT in the inner monad?
16:21:31 <donri> duno
16:21:49 <donri> i suspect it has to sit above serverpart anyway
16:21:57 <donri> and then you have to write instances anyway :P
16:22:12 <stepkut> could be
16:22:37 <LambdaDusk> stepkut: happstack-clientsession also only provides a
16:22:38 <LambdaDusk> withClientSessionT :: (Happstack m, Functor m, Monad m, FilterMonad Response m, ClientSession sessionData) => SessionConf -> ClientSessionT sessionData m a -> m a
16:22:38 <LambdaDusk> to run the ClientSession monad... I can't tell where to put that in to use it with simpleApp
16:23:28 <LambdaDusk> not to mention I have no idea how the resulting type fits into the HSP stuff, like donri said
16:23:43 <stepkut> I think the issue with HSX is that the EmbedAs* instances are tied to a monad like ServerPartT, so when you wrap things around it, you lose access to those instances. Because of the type families, you can't use GeneralizedNewtypeDeriving
16:23:47 <LambdaDusk> http://hackage.haskell.org/packages/archive/happstack-clientsession/7.1.1/doc/html/Happstack-Server-ClientSession.html
16:24:18 <LambdaDusk> instances with MonadClientSession could solve that, perhaps?
16:24:40 <stepkut> but, I think it is a bit bogus that the EmbedAs* instances are tied to ServerPartT anyway.. If they were tied to something like XMLT, then you could just wrap that on the outside and stick things inbetween..
16:24:55 <donri> stepkut: yea, same reason why web-routes-hsp must include a full XMLGenerator itself, rather than just an EmbedAsAttr URL instance
16:24:56 <LambdaDusk> so my conclusion was to build an entirely new solition using the requestState part
16:25:04 <stepkut> donri: right
16:25:36 <stepkut> donri: niklas and I talked about adding an XMLT thing in the next release of HSP.. but we are having trouble coming up with a good name :)
16:25:44 <stepkut> LambdaDusk: :-/
16:25:50 <donri> stepkut: how would that work?
16:26:12 <stepkut> donri: basically.. like how the HSP.IdentityT thing works now.. but with a different name?
16:26:24 <donri> what's that good for?
16:26:39 <stepkut> LambdaDusk: clearly I need to actually try to integrate happstack-foundation + happstack-clientsession so I can see what is going on for myself
16:26:39 <LambdaDusk> but I know how to do it
16:26:42 <LambdaDusk> hah!
16:26:43 <LambdaDusk> idea!"
16:26:47 <stepkut> LambdaDusk: I can try that tomorrow morning
16:26:56 <stepkut> though that shouldn't stop you ;)
16:27:18 <donri> oh wait i missed your other line there
16:27:22 <stepkut> currently.. I am having trouble staying awake.. more coffee is not going to help
16:27:31 <donri> yea
16:27:35 <LambdaDusk> I think I can build an entirely new clientsession solution to work with this...
16:27:48 <donri> if we could define Happstack instances for XMLT instead of the other way around it would be less work probably
16:27:53 <LambdaDusk> stepkut: Very sorry to keep you awake
16:28:22 <stepkut> LambdaDusk: no.. it is only 6:30PM.. and I am supposed to go to the second oldest amusement park in the world in a few minutes
16:28:43 <donri> that doesn't sound safe!
16:28:44 <stepkut> maybe I can try an energy drink or something
16:28:47 <donri> 200 year old roller coasters
16:29:05 <stepkut> well.. i think things have been upgraded since the early days :)
16:29:09 <donri> ;)
16:29:46 <LambdaDusk> stepkut: How about I put my site project to github and you can checkout there if I was successful?
16:29:59 <stepkut> ok
16:30:17 <stepkut> gotta run, bbl.
16:30:25 <donri> LambdaDusk: needs moar darcs ;)
16:30:54 <donri> not that it matters if you just use it for one-off distribution
16:31:10 <LambdaDusk> sorry, but I can't work with darcs
16:31:38 <LambdaDusk> also github offers more than just hosting
16:33:46 <donri> the irony is that git is great as long as you're not collaborating with others or using branches ^_^
16:41:36 <LambdaDusk> donri: Do you know if there's an instance that connect SafeCopy with Serialize?
16:42:03 <donri> LambdaDusk: via Generic if you're on ghc 7.2+
16:42:16 <LambdaDusk> uh
16:42:29 <donri> uh wait ignore Generic, that's part of Serialize
16:42:59 <donri> if you have a Serialize instance, you can define a SafeCopy instance with -XDefaultSignatures and just, instance SafeCopy MyType
16:43:29 <donri> (in turn, if you have a Generic, you can do the same for Serialize with, instance Serialize MyType)
16:44:39 <donri> (and you can derive Generic with -XDeriveGeneric. nice way to avoid some TH, although i ran into the issue that there's no Serialize Text instances...)
16:44:41 <LambdaDusk> I have a type that has a SafeCopy, and want to make it a ByteString
16:45:47 <donri> LambdaDusk: runPut (safePut yourSafeCopy)
16:47:43 <LambdaDusk> donri: That's too easy, it usually required 30 hours of tweaking
16:47:59 <donri> :)
16:48:03 <LambdaDusk> and from bytestring to the safeCopy?
16:48:21 <donri> runGet safeGet bytes
16:49:01 <donri> safecopy is a rather thin layer over cereal, and with safeGet/safePut you get back the normal cereal Get/Put types
16:53:25 <LambdaDusk>    The function `safeGet' is applied to one argument,
16:53:26 <LambdaDusk>     but its type `Get a0' has none
16:54:31 <LambdaDusk> ignore that
17:01:49 <LambdaDusk> YES IT WORKS!
17:02:13 <LambdaDusk> ACTION implodes.
17:02:46 <LambdaDusk> oh wait it doesn't
17:04:34 <LambdaDusk> anyway, this is the trying version: https://github.com/scan/neighr/blob/master/src/Main.hs#L30
17:05:22 <LambdaDusk> I am off for some time
17:45:23 <LambdaDusk> scrap that, it works just fine
17:45:24 <LambdaDusk> yay
17:47:14 <donri> basically what happstack-clientsession does
17:47:44 <LambdaDusk> yeah
17:47:44 <LambdaDusk> but
17:47:54 <donri> except it tracks changes to the session so things aren't written/sent/read more than needed
17:47:55 <LambdaDusk> working with happstack-foundation
17:48:02 <donri> which is why it needs ClientSessionT
17:48:17 <LambdaDusk> mine has that now, too, just commited
17:59:23 <donri> well, you're decrypting it every request even if not used
18:00:45 <donri> and you're relying on Eq which is probably fine for you
18:08:33 <LambdaDusk> jeez
18:08:49 <LambdaDusk> the function can be used where it is actually needed
18:09:11 <LambdaDusk> for example only for dynamic content
18:11:13 <donri> you mean can't be used?
18:11:15 <donri> which function?
18:19:40 <LambdaDusk> the session function
18:19:42 <LambdaDusk> nevermind
19:53:45 <Lemmih> donri: I'm not sure how to do the socket cleanup.
19:54:10 <Lemmih> donri: I'd have thought that closing the handle would have removed the unix socket.
20:02:14 <donri> you'd think :)
20:02:27 <donri> maybe it's a network bug then?
20:03:29 <donri> Lemmih: you sure the handle does get closed though? there's no user API for that
21:28:32 <Lemmih> There isn't?