Camelia, the Perl 6 bug

IRC log for #darcs, 2011-04-30

| Channels | #darcs index | Today | | Search | Google Search | Plain-Text | summary

All times shown according to UTC.

Time Nick Message
00:10 jeltsch left #darcs
00:18 secorp left #darcs
00:28 pumpkin is now known as copumpkin
01:00 copumpkin left #darcs
01:10 iago left #darcs
01:26 secorp joined #darcs
01:27 Riastradh joined #darcs
01:28 sm alexsuraci: going to send a HCAR entry for darcsden ?
01:29 alexsuraci probably not
01:29 alexsuraci i haven't done much with it lately
01:29 alexsuraci you can if you like
01:30 sm after much procrastinating I'm on a HCAR roll, but it's getting late and gf is frowning
01:30 sm but the guidelines say all projects welcome, any status, no minimum length of entry
01:31 alexsuraci ah
01:32 sm if you or anyone wants to rough out: what it is/recent events/license & home url/status & immediate plans, here, I'll texify and send
01:32 sm if not I'll send any way but it'll be very short :)
01:33 alexsuraci cool, thanks. you probably have more of a "presence" with darcsden now though.
01:35 sm I wouldn't go that far.. you're hosting it and even still working on it a bit
01:35 alexsuraci i only fix bugs these days, and barely that
01:35 alexsuraci usually if someone emails me with something that prevents them from using it
01:36 alexsuraci i don't mean to offload the responsibility onto you or anything though :P
01:44 sm alexsuraci: update if needed: http://etherpad.osuosl.org/RllnFXT8Sv
01:45 alexsuraci sounds about right
01:46 sm there should be one for patch-tag.. running out of steam though
01:47 lispy left #darcs
01:48 sm if you want to rewrite as from you, that's even better, but I expect this will work too.. will send after dinner
01:48 alexsuraci heh, how many have you written?
01:49 sm 5 so far :)
01:49 alexsuraci dang
01:49 sm hledger rss2irc shelltestrunner FunGEn darcsdenbot. darcsum next
01:49 sm it's easier after the first one
01:50 alexsuraci well, nice job
01:52 sm thanks!
02:25 lelit` joined #darcs
02:27 lelit left #darcs
02:29 intripoon_ joined #darcs
02:32 intripoon left #darcs
02:48 ManateeLazyCat joined #darcs
03:01 ManateeLazyCat left #darcs
03:24 ManateeLazyCat joined #darcs
03:55 ManateeLazyCat left #darcs
04:15 gwern left #darcs
05:03 copumpkin joined #darcs
05:04 sm left #darcs
07:42 jderque joined #darcs
08:31 raichoo joined #darcs
08:48 jeltsch joined #darcs
09:07 shenshei joined #darcs
09:20 lelit` left #darcs
09:20 lelit` joined #darcs
09:44 owst joined #darcs
10:28 shenshei_ joined #darcs
10:28 shenshei left #darcs
11:54 lelit` is now known as lelit
12:26 jderque left #darcs
12:57 raichoo left #darcs
13:08 balor joined #darcs
13:21 shenshei_ left #darcs
13:25 shenshei joined #darcs
13:28 balor left #darcs
13:28 balor_ joined #darcs
14:04 gwern joined #darcs
14:43 zbeasnyy joined #darcs
15:40 shenshei left #darcs
15:46 balor__ joined #darcs
15:46 balor_ left #darcs
15:47 shenshei joined #darcs
15:59 zbeasnyy left #darcs
16:01 zbeasnyy joined #darcs
16:20 sm joined #darcs
16:31 zbeasnyy left #darcs
16:33 zbeasnyy joined #darcs
16:42 jeltsch left #darcs
16:42 secorp left #darcs
16:44 secorp joined #darcs
17:15 alexsuraci is there a way to get darcs to do verbose ssh debugging output? --debug-verbose seems to only output what darcs sees; need something like ssh -vvv
17:19 sm alexsuraci: maybe some env var.. http://darcs.net/manual/Configuring_d​arcs.html#SECTION00440020000000000000 ?
17:20 alexsuraci sm: ah, thanks!
17:21 sm np
17:24 mornfall Oh. Our wiki ain't markdown.
17:24 mornfall Blah.
17:28 mornfall And gitit doesn't seem to work anyway.
17:28 mornfall Gosh.
17:30 sm gitit should render whatever we throw at it
17:30 * sm wonders if the project is active
17:31 mornfall The problem was that it logged me out in the meantime.
17:31 mornfall Well, my browser doesn't retain cookies for very long.
17:31 mornfall Maybe I should fix that.
17:32 mornfall Anyway, http://wiki.darcs.net/Development/PrimsV3 -- I would welcome a first reading and assesment whether it makes any sense at all.
17:35 mornfall Heffalump: (Maybe from you specifically, if you have time for that.)
17:37 raichoo joined #darcs
17:37 mornfall I'll mail Eric too, though.
17:37 mornfall As soon as I make it through some bassoon practice, anyway.
17:39 sm mornfall: page looks good, I can't really say much about the content. Except it would be cool to see a little bit about the previous format(s) and why they need to be replacesd
17:39 sm replaced
17:41 sm I wonder if there's a page that tells what is a prim
17:45 Heffalump mornfall: will do as soon as I can
17:52 gwern eh, how is gitit not working?
17:59 sm_ joined #darcs
17:59 jderque joined #darcs
18:10 * alexsuraci is updating darcsden for ghc7 and the latest darcs
18:13 sm_ alexsuraci: excellent
18:14 alexsuraci oi, need to stop using HSP
18:14 alexsuraci docs are nonexistant
18:15 alexsuraci not even API docs
18:21 alexsuraci yay! builds
18:23 sm_ \o/
18:24 sm_ how about hamlet ?
18:28 alexsuraci maybe
18:28 alexsuraci this would be the third template engine change :P
18:28 alexsuraci text-press -> hstringtemplate -> hsp -> ?
18:47 sm_ I think I went html combinators -> hsp -> hstringtemplate -> hamlet with hledger
18:47 sm_ I've read the heist docs but it doesn't seem very appealing
18:48 sm_ I can't deny it's kind of cool just writing html in your module, with hsp, but it's nice to have docs and polish and support
18:51 raichoo left #darcs
18:57 teratorn left #darcs
18:57 teratorn joined #darcs
18:58 Riastradh left #darcs
18:59 mornfall I would go for a combinator lib myself, I guess. (Not any specific one since I haven't looked at them, but it does sound like the right approach. Unless you have to work with designers that refuse to speak anything but HTML...)
19:04 Riastradh joined #darcs
19:08 sm_ there are pros and cons. Sometimes it's easier to get the layout right by tweaking a template - especially if you can do that without recompiling or even restarting. It also makes integrate third party html/js snippets easier
19:08 sm_ integrating
19:12 mornfall Possibly, although I usually do my own designs.
19:12 mornfall If I copy something it's 2 lines of an IE hack. ;)
19:14 jeltsch joined #darcs
19:34 JaffaCake left #darcs
19:38 JaffaCake joined #darcs
19:52 mornfall owst: Have you started coding, or designing, yet? :)
19:53 mornfall I intend to keep an eye on you. Presumably, you will also want to send patches to darcs-fastconvert, hm? ;)
19:53 owst mornfall: No, not really (for either ;-)) I've got a report to handin, next week, but after that it's only revision for exams, so yes!
19:53 owst Yes, I expect I will :)
19:54 navaati joined #darcs
19:54 mornfall Gah, universities are overrated.
19:54 navaati hello
19:54 mornfall Reports moreso.
19:54 owst Well, it's an interesting report, at least "Approaches to Functional I/O"
19:55 mornfall Does make me wonder what that means, too.
19:55 owst I'm just looking at the different ways that functional languages do I/O
19:55 Heffalump while you're both here, I guess we should discuss how sending patches to darcs-fastconvert will work
19:55 owst so, Monads, Continuations, Stream-transformers, Uniqueness types etc.
19:56 owst Heffalump: sounds sensible, indeed.
19:56 mornfall owst: I see.
19:57 mornfall Well, you could set up a mirror on darcs.net and put it in review team's responsibility.
19:57 mornfall I guess.
19:57 navaati i want to report a problem about utf8 management of darcs
19:57 Heffalump the end result of owst's work should be a bridge tool, i.e. managing the sync as well as doing the conversion - mornfall, are you happy for darcs-fc to evolve into that?
19:58 Heffalump navaati: I spent a little while looking at your author problem last night - is it that one?
19:58 navaati yes
19:58 mornfall Yes, I don't mind having that functionality in, as long as the raw stream-based commands stay around.
19:58 navaati i investigated a bit more
19:58 navaati i looked at raw binary results
20:01 navaati and it appears that if I have the character é encoded as C3A9 (the valid utf8 encoding for this character) in the author file, darcs will read it, interpret it as the character number E9 (the right Unicode number for é) and to display it print out the byte E9, which is wrong
20:01 owst left #darcs
20:01 Heffalump is E9 also the right ISO-8859-1 number?
20:02 navaati i don't think
20:02 * Heffalump checks - yes
20:02 navaati this is not a "we treat raw byte flux" behaviour since it interprets C3A4 into E9… this is just a bug
20:02 Heffalump yeah, the raw patch files have the right value
20:03 Heffalump I'm actualy quite surprised, because we have quite extensive UTF-8 tests.
20:03 Heffalump I didn't finish digging through them to figure out what's different about this case to what the tests do.
20:03 navaati i don't know what is stored in the patch files, how can i see that (that is, where are stored patches ?)
20:04 Heffalump _darcs/hashed_inventory has the list of active patches, and _darcs/patches/ has the actual patch files, with names identified by the entries in hashed_inventory
20:04 navaati ok
20:05 Heffalump also, I couldn't reproduce the part you reported about the wrong thing being written into _darcs/prefs/author when you enter the character at the prompt for author - can you confirm that?
20:05 owst joined #darcs
20:06 navaati hum, i not sure anymore, as in the meantime i activated the option DARCS_DONT_ESCAPE_8BIT and i think it changes the behaviour of recording the author
20:07 navaati with this option atcivated the recording option is right
20:08 navaati now i'm going to see if the error is when reading the author file (when recording the patch) or when reading it (in darcs changes)
20:08 Heffalump I'm sure it's in darcs changes, because of what I saw in the raw files.
20:09 Heffalump but it's in all the commands (e.g. darcs unpull) as well, which  is really confusing because it implies that UTF8 support just doesn't worka t all
20:09 Heffalump I'm afraid I don't have time for more debugging tonight though.
20:10 Heffalump but please do feel free to raise a bug on the bug tracker (http://bugs.darcs.net) with whatever info you have
20:10 navaati is darcs intended to be encoding agnostic ?
20:10 mornfall Well, one thing to check is your locale.
20:11 navaati my locale is fr_FR.UTF8
20:13 Heffalump it's supposed to store things in UTF8 and translate from/to your native locale
20:13 mornfall I get <U+010D> in darcs changes output when recording with č as the author.
20:13 Heffalump unless I'm confused.
20:13 mornfall And with DARCS_DONT_ESCAPE_ANYTHING=1 it screws up.
20:14 mornfall So something is definitely awry there.
20:14 mornfall The inventory has the right characters in it, too.
20:16 mornfall With DARCS_DONT_ESCAPE_ANYTHING and darcs 2.2, it works as expected.
20:16 mornfall (Or with 8BIT.)
20:17 mornfall And this is GHC 6.12, even, for HEAD.
20:17 mornfall It also works with 2.4.
20:18 Heffalump how about GHC 6.10?
20:18 navaati hum, i can't cat the patch file (it produces garbage), but with most it's displayd correctly
20:22 Heffalump navaati: it's gzipped
20:22 navaati ><
20:23 navaati next time, i'll use file :)
20:26 navaati ok, it's encoded in good utf8 in the patch file for me as well
20:26 navaati (with ESCAPE_8BIT)
20:26 jderque left #darcs
20:27 navaati so the problem is with either patch file reading or terminal printing, i'll report a bug
20:37 sm_ left #darcs
20:50 mornfall Heffalump: What do we use isIdentity for, if you recall?
20:50 mornfall (It definitely fetches IsEq for a number of patches that don't behave as identity under commute...)
20:51 Heffalump is it used anywhere but the test harness?
20:51 Heffalump I thought I got rid of the things like that that were in the main prim code, but I could be misremembering
20:51 mornfall Apparently not.
20:52 mornfall (I.e. it's used just in QuickCheck.hs)
20:52 Heffalump ok. Then it's probably just for filtering out patches that confuse the tests.
20:55 mornfall Guess I'll have to do something about PrimClassify and PrimConstruct too. They kind of expose the internals.
20:55 mornfall Classify is fortunately not used very widely.
20:56 mornfall Suppose I can move the pending stuff into the Prim implementation.
20:56 mornfall Since V3 is probably going to fare a lot better about what it needs from pending.
20:57 mornfall (Most importantly, since content removal is not a precondition for demanifest aka rmfile, we can throw out most of the pending logic; unless I am missing something very obvious.)
20:58 mornfall On the other hand, patch construction is another matter entirely.
20:58 mornfall Well, prim construction.
20:58 mornfall That's probably going to hurt a fair amount.
20:58 Heffalump we're moving add into IO, by adding GUIDs...
20:58 Heffalump or we need unsafePerformIO or similar
21:00 mornfall Well, diffing is going straight into Prim.V1.
21:00 mornfall The rest is in Darcs.Commands, more or less.
21:01 mornfall I am currently thinking about embedding monadic actions into Prims.
21:01 mornfall I.e. Stub/File from h-s kind of deal.
21:02 mornfall So we don't have to keep stuff we don't even need in memory all the time.
21:02 Heffalump into the datatype?
21:02 Heffalump that's scary from a simplicity standpoint
21:02 Heffalump though I see your logic
21:02 mornfall Like:     Hunk :: UUID -> !Int64 -> IO B.ByteString -> IO B.ByteString -> Prim C(x y)
21:03 mornfall Well, it won't matter for apply, but it will matter for commute and all its kin.
21:03 mornfall Which is "pure" now.
21:03 mornfall If you can call the lazy-IO tangle "pure" by some measure.
21:04 Heffalump how about referring to positions within a named blob of some form?
21:04 Heffalump rather than just embedding IO
21:04 mornfall Positions?
21:05 mornfall (The IO ByteString is more of a stand-in for now. I haven't entirely thought out what to put there yet.)
21:05 mornfall It will more likely be some PatchMonad m => m or such.
21:06 mornfall Or even better an ADT that can be different things.
21:06 mornfall Which is maybe what you mean with a named blob.
21:06 mornfall Blob = Deferred (IO ByteString) | Available ByteString | ...
21:07 Heffalump I mean something that keeps the nice abstract/pure properties of patches that do have the embedded data
21:08 Heffalump so (UUID, Int, Int) for blob ID, position, offset or something
21:09 Heffalump PatchMonad m also is probably reasonable
21:10 mornfall Well, going with a PatchMonad, you can have a real pure implementation.
21:10 Heffalump yeah
21:11 mornfall You probably can with (type Handle = ) (UUID, Int, Int), then getting some fetch :: (PatchMonad m) => Handle -> m Content
21:11 mornfall as well.
21:14 mornfall Sometimes I wish we could have a monadic "apply" sugar, in addition to "do"...
21:14 owst What do you mean mornfall?
21:15 mornfall I mean that I could say apply fun (return foo) (return bar) and get it desugared into do x <- foo; y <- bar; return (fun x y) (very rough draft, would need thinking).
21:15 Heffalump that's what idiom brackets are for
21:16 mornfall Err.
21:16 Heffalump well, roughly.
21:16 mornfall I have some extra returns.
21:16 mornfall And stuff.
21:16 mornfall But you can certainly work it out. :)
21:16 jeltsch left #darcs
21:16 navaati @type liftM2
21:16 lambdabot forall a1 a2 r (m :: * -> *). (Monad m) => (a1 -> a2 -> r) -> m a1 -> m a2 -> m r
21:16 navaati you mean this, mornfall ?
21:16 Heffalump well, anyway, if you haven't come across them before, look at idiom brackets (in the Applicative paper by Paterson, McBride and perhaps others)
21:17 Heffalump they're not directly implemented though hacks do exist
21:19 mornfall navaati: Well, not entirely. The lift functions are terminally ugly.
21:19 Heffalump I use <$> a fair bit
21:19 mornfall Do is good, but it forces a bit too much of naming and sequencing.
21:20 mornfall <$> is even better, and if I knew how to use <*> I might be almost happy...
21:20 Heffalump :-)
21:21 owst <*> is ap, no?
21:21 mornfall I really just want fancy monadic application that will Do What I Mean. :))
21:22 mornfall So I can write monadic code in a functional style.
21:22 Heffalump owst: I think so
21:23 Heffalump @type (<$>)
21:23 lambdabot forall a b (f :: * -> *). (Functor f) => (a -> b) -> f a -> f b
21:23 Heffalump and <$> is liftM is fmap
21:23 mornfall Right.
21:23 owst Cool.
21:24 mornfall Now the idiomatic bracket is a REAL fancy HACK.
21:25 * owst goes and looks what all the fuss is about :p
21:26 mornfall Well, it addresses exactly that missing join in <$> / <*> combos.
21:26 mornfall It has a haskellwiki page.
21:26 owst mornfall: Yup, just found it and reading now :)
21:28 mornfall But the line noise of <$> and <*> operators doesn't help legibility, and idiomatic bracket would probably need to be a syntactic extension to work well.
21:28 mornfall And be less ugly to write, too.
21:30 balor__ left #darcs
21:30 balor__ joined #darcs
21:30 * owst wants a realworld example, not just f :: x -> y -> m c
21:34 mornfall Well, f :: x -> y -> m c is a pretty example, isn't it? :)
21:34 balor__ left #darcs
21:34 balor__ joined #darcs
21:34 owst It's beauty is staggering  :-p
21:35 mornfall If I wasn't half-asleep I'd try to convert some commute-related function to be monadic.
21:35 Heffalump in what monad?
21:35 Heffalump oh, overloaded?
21:35 mornfall Yeah.
21:35 Heffalump could be a bit messy because they already typically use Maybe
21:35 Heffalump which is actually really clear
21:35 owst Overloaded?
21:35 mornfall Oh, do they?
21:36 Heffalump owst: on PatchMonad or similar, as vaguely proposed by mornfall above.
21:36 balor__ left #darcs
21:36 balor__ joined #darcs
21:36 Heffalump mornfall: should the commute code ever actually need to read the data?
21:36 * mornfall waves hands.
21:37 mornfall Heffalump: Well, depends. As long as you want token replace, yes.
21:37 Heffalump ah, yeah
21:38 mornfall And AST conjurations may need that too.
21:38 mornfall So we probably can't run away from that.
21:38 Heffalump yep
21:38 mornfall As much as I'd love to.
21:38 balor__ left #darcs
21:38 mornfall But lazy IO is poisoned.
21:38 balor__ joined #darcs
21:38 Heffalump I agree lazy IO should go.
21:38 mornfall I am actually torn.
21:38 Heffalump But I really feel that the patch code should look very similar to patch "theory".
21:39 mornfall Agreed.
21:42 balor__ left #darcs
21:42 balor__ joined #darcs
21:43 balor__ left #darcs
21:43 balor__ joined #darcs
21:45 mornfall (What I don't know is how to achieve both without forcing eeeeverything into memory.)
21:47 Heffalump well, PatchMonad seems like a good choice, but for the Maybe issue
21:49 mornfall I didn't realize commute-using code used do-syntax for Maybe.
21:50 mornfall (But I am looking now...)
21:50 mornfall (But I guess what I am worried about most is Patch.Depends, and that doesn't.)
21:51 mornfall Maybe we can conjure up a CommuteMonad that subsumes PatchMonad and commute failures as well.
21:51 Heffalump yeah, I'm sure we can (MaybeT if nothing else), but there is risk of the layers getting confused.
21:52 mornfall Well, it usually clears up reasonably in a couple of iterations.
21:52 mornfall We shall see.
21:53 mornfall (But splitOnTag is a nightmare to behold indeed...)
21:56 gwern left #darcs
21:57 gwern joined #darcs
21:57 gwern left #darcs
21:57 gwern joined #darcs

| Channels | #darcs index | Today | | Search | Google Search | Plain-Text | summary