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:01:58 <LambdaDusk> I HAVE MADE SOMETHING THAT WORKD 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?