Camelia, the Perl 6 bug

IRC log for #darcs, 2010-12-15

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

All times shown according to UTC.

Time Nick Message
00:04 twb joined #darcs
00:20 iago left #darcs
00:55 twb left #darcs
00:55 twb joined #darcs
01:16 secorp left #darcs
01:23 secorp joined #darcs
01:26 rlpowell joined #darcs
01:27 djanatyn joined #darcs
01:27 djanatyn Hey :D
01:27 djanatyn I was just checking out darcsden, and it looked really cool, but I was having some problems with what I think are public key issues
01:43 rlpowell djanatyn: I'd send a pastie of your errors.
01:45 djanatyn http://bpaste.net/show/12271/
02:40 elliott left #darcs
03:13 lispy1 left #darcs
03:15 intripoon joined #darcs
03:17 rlpowell left #darcs
03:17 alexsuraci djanatyn: you have your pubkeys set up at darcsden?
03:18 intripoon_ left #darcs
03:45 lispy joined #darcs
04:06 isaacd joined #darcs
06:47 lispy_ joined #darcs
06:53 sm left #darcs
06:58 jutaro joined #darcs
07:06 gal_bolle joined #darcs
07:27 secorp left #darcs
07:28 evgeny joined #darcs
07:59 raichoo joined #darcs
08:01 darcscommitbot left #darcs
08:02 darcswikibot left #darcs
08:02 darcscommitbot joined #darcs
08:03 darcswikibot joined #darcs
08:13 lelit joined #darcs
08:51 lelit left #darcs
08:51 lelit joined #darcs
09:07 secorp joined #darcs
09:27 twb left #darcs
09:42 kowey joined #darcs
09:43 kowey good morning
09:52 isaacd left #darcs
09:52 gal_bolle morning
10:12 gal_bolle left #darcs
10:27 iago joined #darcs
10:56 gal_bolle joined #darcs
11:04 gal_bolle iago: see patch504
11:14 iago gal_bolle, thanks
11:14 iago though I'm seeing your clean up work was just on Test.Unit
11:14 iago I'm working with .QuickCheck and .Unit2
11:16 iago thanks anyway for your response
11:37 evgeny is now known as etarasov
11:43 mornfall kowey: If it can wait till Sunday evening... (about h-s, or whatever)
11:43 mornfall I am... swamped.
11:43 kowey OK (thanks for getting in touch and good luck)
11:44 mornfall The project defense (the project you proofread) is tomorrow, that's the final round.
11:44 mornfall I hold 4th position from the previous round, 8 projects are going to be selected (out of 16 that got into the final round).
11:44 mornfall So I have to not fuck up and it should be fine.
11:45 mornfall Piano exams on Friday and bassoon masterclass on Saturday.
11:45 mornfall Then, I'll sigh in relief and I can look at h-s.
11:45 kowey I like the "So I have to not fuck up and it should be fine." attitude
11:52 * mornfall wanders off to school to do paperwork and finish off his presentation and whatnot.
11:52 mornfall See you. :)
11:56 kowey I wonder if the hunk-editor would be a good "how would we unit test this?" case study to get zooko's advice on
11:57 kowey especially since we have revert, rollback functionalities for it
11:57 kowey basically looking for something that would be somewhat non-obvious to test, but is relatively easy to get into (with some hand-holding from a darcs dev)
12:06 iago kowey, test patches is not obvious
12:06 iago depend on what is the kind of problem you want to describe
12:07 kowey hmm, so you're saying that writing tests is never obvious anyway?
12:07 kowey I'm not sure if you're aware of the context, but zooko has been saying for a while that if we adopted a policy of not applying patches unless they came with unit tests, darcs development would go faster (due to less time dealing with bugs)
12:08 kowey [the explanation is me, maybe zooko has a more subtle reason]
12:09 gh_ joined #darcs
12:09 kowey and basically we're stuck on 3 things wrt that policy (A) not knowing if it's actually a good idea -- works for tahoe-lafs because (B) not having experience in a TDD regime and (C) not having enough infrastructure (pre-existing tests, data)
12:09 kowey and I'm hoping that zooko can help us a bit with (B)
12:25 iago left #darcs
12:32 gal_bolle for top-down tests, shell tests are ok
12:33 gal_bolle i find the current unit tests hard to get into
12:33 gal_bolle because it's not clear what properties of which module are being tested
12:33 gal_bolle I wish there was a way to link the haddock of each function with the QuickCheck properties about it
12:47 iago joined #darcs
12:48 iago kowey, ok sorry
12:48 iago I had to go out for a moment
12:48 iago but yes, writing test is not obvious
12:50 iago some people just think testing consists on write some simple cases
12:51 iago from my POV Darcs should change its policy indeed
12:51 iago but, in general, requiring code to fullfill some given quality standards
12:51 iago where testing should be just a part
12:52 iago well, Darcs and any other project... just talking about Darcs because I'm seeing by myself the "disaster"
13:03 gbeshers left #darcs
13:04 kowey iago: do you have experience testing?
13:04 kowey iago: maybe you could weigh in on some patches - the kind of tests we should be doing for them
13:04 iago kowey, I'm working checking how well are done your patches tests
13:05 iago just note that I had detected generators which *rarely* generate some interesting case
13:05 kowey ah good good
13:05 kowey that's a bit of source of anxiety for me
13:06 iago you have reasons for anxiety
13:07 iago the generator that has to produce pair of patches to check commutation
13:07 iago being commutation one of the important operations to test
13:07 iago just produce 4-7% of useful cases
13:07 iago :S
13:08 kowey what do you mean by useful case?
13:08 kowey you mean not thrown out by some ==> property?
13:08 iago kowey, 70% of cases are (identity,identity)
13:08 iago the other 35% are patches that cannot commute
13:08 kowey shouldn't QC be smart enough to recognise that?
13:09 kowey that 70% that is
13:09 kowey and isn't non-commutation an important thing to test for?
13:09 kowey A and B should NOT commute
13:09 iago well, I think the most part of your properties are
13:09 iago if something commute ===> some other thing commute too
13:10 iago so, if A is false, A ==> B is trivially true
13:10 kowey but QC reports that it filtered this out, right?
13:10 iago anyway, I agree the problem is the 70% of unuseful pairs
13:10 iago kowey, no
13:10 iago I detect it by doing collects and classifys
13:10 kowey oh, I thought 1000 tests meant 1000 tests where A is true
13:10 Igloo Have you got an example?
13:11 iago Igloo, an example of?
13:11 Igloo I'm pretty sur there's a QC operator that does the right thing for implications
13:11 Igloo Of an A ==> B test
13:11 kowey which is why we have the QC notion of "giving up"
13:11 iago Igloo, no, sorry
13:11 ketil joined #darcs
13:12 kowey giving up after X tests, meaning that it couldn't find 100 A-is-true tests within N tries
13:12 kowey anyway, once that fast get/annotate are out the door, Quality Control is going to be the big thing in my Darcs Narrative
13:12 iago I feel worried too because you abuse of notation
13:12 iago you call identity things that are not identity
13:13 kowey hmm, /me checks to see if lispy noted this down in CodingStyle
13:13 iago seems dangerous for me since identity is supposed to have special properties for commute
13:13 ketil Hi.  I have had an...accident with my backups, and also a disk crash.  So I have version v of my _darcs repository but without some essential bits, and then a complete (v-1) repo.  I could go with (v-1), but diffing these, I find some patches in pristine.hashed in v and not in (v-1).  Any way to salvage those?
13:13 iago Igloo,
13:14 iago you don't use ==>
13:14 iago Darcs properties are written as nested cases
13:14 Igloo iago: Example?
13:14 iago case something commutes of Fail -> Some error message ; Success -> ...
13:14 kowey ketil: hmm....
13:15 kowey what if you darcs repair a copy of the v repo?
13:15 ketil darcs failed:  Pristine tree doesn't exist.
13:15 kowey in principle you could union the pristine.hashed directories of the two repos
13:15 iago Igloo, http://hpaste.org/42343/recommute
13:15 ketil kowey, okay, I can try that.
13:15 iago well
13:15 iago just see Darcs.Test.Properties
13:16 iago IIRC all properties are of this kind
13:16 kowey well, hmm... that won't help you with the patches themselves (pristine is just the file tree)
13:16 kowey I think you could try creating the pristine.hashed directory (empty)
13:16 Igloo iago: OK, yes, looks like that should be defined with ==> (or whatever QC calls that operator)
13:16 kowey and doing a darcs repair there
13:16 iago Igloo, anyway the main problems are generators
13:16 iago for instance
13:16 kowey basically darcs repair rebuilds pristine.hashed from patches
13:17 iago someone decided that arbitraryTree should produce empty trees 40% of times
13:17 iago why?
13:17 kowey or iago: you mean, somebody wrote arbitraryTree not realising it would produce empty trees 40% of the time?
13:18 iago no
13:18 iago s/he uses frequency
13:18 iago so s/he knows (I hope that) what he is doing
13:18 ketil kowey, yes, that didn't change anything, I think.
13:19 iago I think the cause is that generate a tree ; flatten it ; get a pair of patches from it takes lot of time
13:19 ketil kowey, I guess it is stuff from _darcs/patches/* I might need to import.
13:19 iago I quickly-fix arbitraryTree and I'm experiencing very slow testing
13:21 kowey iago: it might be useful to note that down as a comment patch, eg. -- to make testing faster
13:22 iago kowey, that's what I'm trying to do
13:22 kowey ketil: hmm, that's odd... you *should* in principle be able to reconstruct a darcs repository if the hashed_inventory (and _darcs/inventories) file and _darcs/patches directory are all complete
13:22 Sembiance joined #darcs
13:22 Sembiance left #darcs
13:22 kowey there's a bug that gh_ found where darcs doesn't cope well with missing pristine.hashed, but I thought just doing mkdir solves it
13:23 kowey another way is just to take the pristine.hashed from v-1 (but the inventor{y,ies} from v} and doing repair
13:24 kerneis I'm polishing my patches about darcs send UI
13:24 kerneis question:
13:24 iago kowey, and when I talk about "slow" I mean about 20 minutes for 100 cases
13:24 kerneis shall "darcs send --context foo" default to the default email address of the default repository
13:24 kerneis or ask an email address anyway?
13:24 kerneis (since --context foo might not be related with the default repo in any way)
13:25 iago I did not formally take times, just estimating
13:26 kowey so to check for a default email address, it needs to contact the remote repository, which the user may not be expecting...
13:26 kowey otherwise I was going to suggest maybe that it could ask with a suggestion
13:27 kowey what email address to send this to? (perhaps foo@example.com?) [where foo@example.com is taken from default repo]
13:27 kerneis kowey: in that case, it will contact the repo anyway
13:27 kowey what's the current behaviour?
13:28 kerneis ask for an email address
13:28 kerneis even if --to is provided
13:28 kerneis my patch currently takes --to into account
13:28 kerneis but still asks if there is no --to
13:30 kerneis ignoring --to is an obvious bug (I opened issue2013 about it)
13:30 kerneis but I'm unsure about the default repo
13:31 kowey ketil: hmm, I was able to reproduce "darcs failed:  Pristine tree doesn't exist.", but if I mkdir _darcs/pristine.hashed
13:31 iago see you later
13:31 iago left #darcs
13:31 kowey it does go ahead and fix it for me
13:31 kowey also, by rights, of the files that v-1 and v have in common in pristine.hashed, those files should be identical
13:32 kowey but I guess you might have worked that out :-)
13:36 kerneis kowey: shall I raise issue2013 on darcs-users?
13:37 kowey could be worthwhile, maybe with some example use cases
13:37 kowey I wouldn't expect many responses, though
13:38 ManateeLazyCat joined #darcs
13:38 kowey it's not about UI democracy, of course, just doing the research :-)
13:39 kowey I also think this is a sort of non-controversial area where the darcs dev is expected to sort of work out the right thing to do and do it
13:40 kowey what matters most here is just the attention paid to making sure things fit together nicely, not so much pleasing people (sorry, I'm just randomly spouting off and will stop here)
13:47 kerneis that's fine
13:57 ManateeLazyCat left #darcs
13:57 ManateeLazyCat joined #darcs
13:58 ManateeLazyCat left #darcs
13:58 ManateeLazyCat joined #darcs
13:59 ManateeLazyCat left #darcs
13:59 ManateeLazyCat joined #darcs
14:04 kerneis in an ideal world, darcs rollback -p foobar should be lazy
14:05 ManateeLazyCat left #darcs
14:06 kerneis thinking about it twice, this would not be obvious at all
14:07 kerneis well, it could find the first matching patch, propose every patch depending on it (including itself), and then look for the next one --- but if there is no next one anyway, it will take a long time and being lazy won't help
14:08 kerneis it would only save time if/when there are several matching patches, and you only want to rollback the first one
14:54 iago joined #darcs
15:03 jutaro left #darcs
15:05 etarasov left #darcs
15:27 sm joined #darcs
15:42 etarasov joined #darcs
15:45 sm morning/evening
15:46 sm how to make the lists more readable in thunderbird: tools -> message filters, subject [issue tag with Important, subject [patch tag with Personal
15:50 hemiBob joined #darcs
15:51 hemiBob left #darcs
15:53 gbeshers joined #darcs
16:01 raichoo left #darcs
16:04 arjanb joined #darcs
16:08 gal_bolle left #darcs
16:14 kowey you might see a BTS hiccup for a second...
16:18 kowey oh... hmm, that's not the hiccup I was expecting
16:24 iago kowey, the problem was solved ;D
16:39 kowey hmm, unexpected hiccup resolved (along with expected one)
16:42 raichoo joined #darcs
16:43 lispy left #darcs
16:47 sm_ joined #darcs
16:50 sm left #darcs
16:50 sm_ is now known as sm
17:00 jutaro joined #darcs
17:18 lispy joined #darcs
17:28 gh_ left #darcs
17:28 lelit left #darcs
17:33 raichoo left #darcs
17:40 raichoo joined #darcs
17:47 kowey OK, one more bit of infrastructure: if you set a patch to followup-requested, it will automatically be assigned to its creator
17:47 kowey unless you explicitly assign it
17:47 kowey I should post a little infrastructure roundup detailing this, plus the recent wiki plugins and whatnot
17:48 kowey also, ever since my infrastructure change (not this one), I've been getting complaints about "home" not being defined... these go away when I reload
17:49 kowey shout if you see this too. I'm hoping it just erm... takes care of itself
17:49 * sm thinks positive thoughts
17:49 sm hey kowey, I started reading The Art Of Community.. seen that one ?
17:50 sm if not, I think it's a book you'll like
17:50 kowey Jono Bacon?
17:50 sm yup
17:50 kowey gh_ recommended it to me
17:50 kowey It's on my list :-)
17:50 kowey oh... and on kowey-wiki, specifically
17:54 isaacd joined #darcs
18:06 lispy kowey: were you asking me to update the wiki about something?
18:07 kowey nope, was just remembering you noted iago's comments last
18:07 kowey didn't really mean to highlight you
18:07 lispy kowey: no worries.  So we have more feedback now?
18:08 kowey yeah... and this reminds me, after checking to see if it's something you already noted, I forgot to take the next step of actually noting it
18:08 lispy kowey: I think it's really great that he's passionately giving us examples of things to improve.  We've had "improving the code" as a todo for a while, but sometimes without concrete examples of what to fix it's a non-starter.
18:09 lispy iago++
18:09 kowey hmm, dunno if http://wiki.darcs.net/Development/CodingStyle needs to be made easier to read
18:09 lispy kowey: It probably does, I'm not much of a wikigardener.
18:10 Igloo Is me not knowing what "Cahier de doléance" is a sign of my ignorance, or an indication that I'm not from France?
18:11 Igloo It's also unclear what is policy, and what is opinion
18:12 lispy I think policy is a trap here.  We want "principles" not policies.
18:12 lispy But, that's kind of a side point that is my own opinion
18:12 kowey OK, I think that's 3 more points from iago
18:12 iago kowey, lispy with identity I mean more than tests
18:13 lispy Igloo: ah, there is a link to the wikipedia article for that phrase.  It means "list of grievances"
18:13 kowey I'll move that link to the title
18:13 iago you have isIdentity in Darcs.Patch.V1.Core
18:13 lispy iago: You're referring to the fact that those patches/patch combinations are idempotent instead of identity?
18:13 iago you are using isIdentity as "patches that do nothing"
18:13 iago but from commutation point of view they are not identity
18:14 Igloo kowey: If you don't expect people to know it, I don't think you should use it. People looking at that page aren't looking for a lesson on the French revolution
18:14 kowey oops, that doesn't work
18:14 lispy iago: Yeah, I think idempotent (as pointed out by Judah Jacobson and maybe others) is a better term here
18:15 iago lispy, I found Heffalump being surprised because localIdentity does not commute... I think that confusion comes to call it "identity", when you say "identity" your brain implicitly assume some properties
18:15 lispy iago: true
18:17 iago lispy, you could call them Idempotent, though there is a mathematical term for that kind of patches: Coreflexive
18:18 lispy Idempotent is also a mathematical term :)
18:18 iago yep, but Coreflexive is the exact term :)
18:19 iago what do you call "identity patches" are known in relational calculus as "coreflexive relations"
18:19 isaacd left #darcs
18:19 kowey iago: yeah, I changed it to just Grievances
18:19 lispy I have to think about that more.
18:19 iago they have well known properties
18:19 lispy iago: you consider patches to be relations?
18:19 iago lispy, patches ARE relations
18:20 iago at least, you can conclude that from David's and Jacobon's notes
18:20 iago though not explicitly mentioned
18:21 iago when we have model patch theory in Alloy we have found patch = simple and injective relation fits perfect
18:21 lispy iago: a relation on states?
18:21 iago yep
18:22 lispy I view them as functions (with some properties... required), but maybe relation on states is more succinct. I have to read up on relations (it's been a while) and think about it.  Thanks for the pointers.
18:22 iago relations are generalization of functions
18:22 iago but I think we don't find any function when modeling patch theory
18:23 iago we have found some operations to be partial functions
18:24 iago lispy, check your e-mail when you have time
18:24 iago I sent you our slides
18:24 iago we have some describing patches and its operations as relations
18:25 lispy iago: thanks!
18:25 lispy iago: oh, I think you forgot to attach it?
18:26 iago sorry, I though I was attached them :S I remember open the dialog
18:26 iago uhm... again, excuse me, let me check WTF is happening
18:26 gh_ joined #darcs
18:28 kowey hmph, huge blob of text in http://wiki.darcs.net/Using/​Model#merging-without-graphs could probably be replaced by a nice picture
18:28 lispy iago: so, would you recommend learning Alloy for tasks like this?  Was it pleasant and useful?
18:29 kowey left #darcs
18:29 lispy kowey: you might check to see if the darcs wikibook already has a nice graph
18:29 lispy s/graph/picture
18:29 iago lispy, well, I will highly recommend Alloy for some tasks
18:29 iago as long as it is very easy to learn
18:29 iago and it is fully automatic
18:29 lispy http://en.wikibooks.org/wiki/Understan​ding_Darcs/Patch_theory_and_conflicts
18:30 iago it's not perfect, it has some limitations, but for I have found it very useful for describing how commute works
18:30 iago for Primitive patches only
18:30 lispy iago: I'm slowly learning Isabelle (and sometimes Agda), and sometimes I want to model darcs in it.  But maybe allow is faster to prototype in.
18:30 lispy alloy*
18:31 iago lispy, I was considering do that kind of job as thesis
18:31 iago though I think, if I do something near, I will give a try to SMT solvers
18:31 lispy iago: SMT solver == exploring state space for problem states?
18:32 lispy iago: slides look nice.  Thanks
18:32 iago they can work with infinite stuff by the use of theories
18:33 iago I just read some random stuff about them so...
18:34 iago the main limitations we have found to verify properties was the finiteness of the universe, theoretically these can be solved by SMT
18:34 iago the limitation we have found to work with sequences of patches was higher order quantification
18:35 iago though maybe this can be addressed in some way, I dunno0
18:35 lispy hmm
18:35 iago to understand finiteness just see slide 25
18:35 lispy iago: on slide 17, what is the definition of "simple"?
18:38 iago lispy, deterministic
18:38 iago id est, given an input produces zero or one result, but no more
18:39 lispy iago: interesting, "Why does not Alloy introduce these constraints?".  As a native speaker I would always pick eitther, "Why doesn't Alloy introduce these constraints?" or "Why does Alloy not introduce these constraints?"
18:39 iago lispy, I'm not a native speaker
18:39 lispy iago: I know :)
18:39 iago you will find many strange things with respect to English
18:39 lispy English is weird...
18:39 Igloo What are the slides for?
18:41 lispy iago: I like it.  Did you already give the presentation and if so, was it well received?
18:41 iago lispy, I have followed this simple rule: in formal use of English does not use contractions
18:41 iago so doesn't -> does not :)
18:41 iago Igloo, presentation of our first milestone
18:41 iago lispy, yeah
18:41 Igloo iago: Why are they not in your native language, then?
18:42 lispy iago: Yeah, in that case you need to swap "not Alloy" to "Alloy not".  I don't know if the first version is actually grammatically incorrect, but people don't say it that way in practice.
18:42 iago Igloo, because I know lispy doesn't know galician-portuguese
18:42 lispy I mean, it's understood what you meant and that's the point of speaking....
18:42 lispy iago: are you sure? ;)
18:44 iago lispy, almost :P
18:44 iago lispy, my teacher of relational calculus becomes very interesting
18:45 iago I think for two reasons
18:45 iago he was using Darcs without realized its relational background
18:45 iago and second, I think he was found a galois connection in invert
18:46 lispy iago: oh really?
18:46 lispy That is interesting
18:47 * lispy should focus on work
18:47 lispy Thanks for the interesting discussion
18:47 lispy I have a lot to mull over
18:47 iago thanks you
18:57 iago Igloo, I just assume English is the "de facto" Esperanto for computer science, I really hate when I find very interesting thesis writing in French
18:58 iago (just French because I know the other most common languages)
18:59 iago written*
19:01 iago so I usually write everything in English (or in bad-English if you prefer)
19:18 gbeshers left #darcs
19:18 intripoon_ joined #darcs
19:21 intripoon left #darcs
19:26 gbeshers joined #darcs
19:32 iago @tell Heffalump Doubt: The only purpose of TreeWithFlattenPos and commutePairFromTWFP is to choose a different pair of patches than the last one?
19:32 lambdabot Consider it noted.
19:36 Heffalump what do you mean different from the last one?
19:36 lambdabot Heffalump: You have 1 new message. '/msg lambdabot @messages' to read it.
19:45 secorp left #darcs
20:21 iago well
20:21 iago Heffalump,
20:22 iago if there are 10 pairs of patches
20:22 iago with commutePairFromTree you always handle the last one
20:22 iago whilst with commutePairFromTWFP you commute an arbitrary one
20:22 iago looks like the only difference
20:24 iago Tree --flattenOne--> FL patch --getPairs--> FL pairs_of_patches
20:24 iago to clarify context
20:27 Heffalump I dunno why that is
20:30 iago Heffalump, aren't you the author or just don't remember
20:31 iago most properties are simultaneously tested for Tree and TWFP
20:31 iago I though there was a good reason for that
20:32 ezyang Question: I have two Darcs branches (e.g. directories). On one I'm amending a patchset on top of an old version of all of the trunks, while on another one I'm pulling new patches and resolving conflicts as they come (also amending the same patchset.) Is there any way to unify the two patches?
20:36 Heffalump I don't remember
20:36 Heffalump ezyang: no
20:37 ezyang eit.
20:37 Heffalump would there be in git?
20:37 ezyang Rerere
20:38 Heffalump when you say you're amending a patchset, how are you doing that? It's a patch set of more than one patch?
20:39 ezyang Oh, that's right. It's only one patch, but it's a real honker.
20:39 Heffalump git rerere seems to be about replaying the same conflict resolutions repeatedly. Why would that arise in your case?
20:40 ezyang Because the right branch I'm only resolving conflicts that I'll presumably have to resolve again on the left branch.
20:41 Heffalump ah, right
20:41 Heffalump why bother with the right branch?
20:42 ezyang I guess that's a good question.
20:42 ezyang I sort of want to save myself the trouble of merging another 500 patches from GHC HEAD when I finally get this old branch working.
20:44 Heffalump I think in your case what I would do is:
20:44 iago Heffalump, could you take a look on some numbers?
20:44 Heffalump on left branch, do the new work in a fresh patch
20:44 iago (about coverage)
20:44 Heffalump on right branch, do the conflict resolution in a fresh patch
20:45 ezyang And then pull the left fresh patch
20:45 Heffalump yep
20:45 ezyang That makes sense.
20:45 ezyang Ok, I'll do that next time :-)
20:45 Heffalump at that point amend to squish everything together so you don't have a conflict fight for the future
20:45 Heffalump unrecord+amend that is
20:46 Heffalump iago: ok, but I'm doing other stuff in parallel with IRCing
20:46 iago ok, I think should be quick
20:46 iago I was fixing (quick&dirty) some stuff and I get the following results about coverage of arbitrary pairs of RealPatch Prim
20:47 iago 24% (conflictor,conflictor)
20:47 iago 23% hunks-dontcommute
20:47 iago 18% commutable, (conflictor,conflictor)
20:47 iago 15% commutable, hunks-case1
20:47 iago 11% commutable, (hunk,conflictor)
20:47 iago 6% commutable, hunks-case2
20:47 iago 1% commutable, hunks-case3
20:47 iago 1% commutable, (conflictor,hunk)
20:47 iago 1% (hunk,conflictor)
20:47 iago I mean, 24% of cases are pairs conflictor-conflictor not commutable
20:47 Heffalump iago: re Tree vs TWFP, I can't remember. David did some of the adding tests using my code, so it may have been miscommunication between us.
20:48 iago 15% are pairs of commutable hunks, which commute by the case 1 of commuteHunk
20:48 iago etc, say me if you don't get the labels
20:48 Heffalump so hunks-case3 and conflictor,hunk is the weak point
20:49 iago well, hunks-case3/4 are quite rare
20:49 iago no more than 1 for 100 tests
20:49 iago by far, is better than before
20:49 iago though I would like to know what will be your "best"
20:50 iago I don't know if non-commutable cases should be avoided
20:50 Heffalump do non-commutable tests tell us anything useful?
20:50 iago I know for some properties do not make sense, but maybe for other yes, maybe should be different generators
20:50 Heffalump I think even coverage of all the code would be good
20:50 Heffalump for the conflictor cases, if you can break down into the individual commute cases in the conflictor code that'd be great
20:50 Heffalump dunno how feasible that is
20:51 Heffalump perhaps also some characterisation of the complexity of conflictors
20:51 iago ok I will take a look for going deeper for conflictors
20:51 iago my main problem is that I don't know nothing about conflictors
20:52 iago I only know they are related with conflicts :) and they can be nested
20:52 iago that's why I was asking about them some days ago
20:53 Heffalump dinner, back in a while
20:53 iago ok, please type my name when you were available again, good dinner
21:04 Heffalump iago: back (unless I have to cuddle the baby)
21:05 iago English dinners are so fast
21:06 jeltsch joined #darcs
21:06 iago (just impressed)
21:06 iago so, to recap
21:06 Heffalump it was just an oven pizza :-)
21:07 gbeshers left #darcs
21:07 iago * non-commutable pairs should be avoided
21:07 iago at least for most properties
21:08 jeltsch Hi, what happens when a Windows user uses some non-UTF-8 encoding and enters patch names with non-ASCII chars. Will I see the correct chars when I checkout his patches with my UTF-8 Linux box?
21:08 iago --> In this sense I think could be better to just filter them using testConditional, to build a generator that only produces (or that guarantee a given percentage of) commutable pairs seems to be a hard task
21:09 Heffalump or use ==>
21:09 Heffalump I guess that's what testConditional does
21:10 iago yep
21:10 lispy jeltsch: Didn't darcs 2.5 have some support for that?  /me goes to check release announcment
21:11 lispy jeltsch: see the second item in "What's New": http://wiki.darcs.net/Releases/2.5#darcs-2.5-announcement-2010-10-30
21:11 jeltsch Thank you.
21:11 lispy jeltsch: this (closed) ticket has the details: http://bugs.darcs.net/issue64
21:12 iago well, Darcs test code seems to avoid the use of ==>, I suppose because by the Darcs-way you get better error messages
21:12 Heffalump how does that work?
21:13 iago well, when something fails you generate "beauty" errors messages with redText etc
21:14 iago I suppose do the same by the use of ==> will be more cumbersome
21:14 iago http://darcs.net/screened/src/D​arcs/Test/Patch/Properties.lhs
21:16 iago maybe because "Maybe a" is not a Testable type
21:18 iago anyway, testConditional do the job, I see you use some
21:18 Heffalump perhaps it should be
21:18 iago perhaps
21:18 iago though that's QuickCheck stuff
21:19 Heffalump an instance of our own wouldn't hurt
21:19 iago Heffalump, perhaps you should use Result
21:19 iago http://hackage.haskell.org/packages/a​rchive/QuickCheck/2.4.0.1/doc/html/Te​st-QuickCheck-Property.html#t:Result
21:19 Heffalump baby changing, back in a bit
21:19 Heffalump feel free to send patches :-)
21:24 iago I sent 4 last week
21:24 iago not review yet
21:26 iago though it seems you have serious problems to handle all patches (small core team who can directly push to screened)
21:26 iago +?)
21:26 Heffalump yeah
21:26 Heffalump you can mark patches on the tracker as "please push to screened" and then we'll try to do that quickly with a very quick review
21:27 iago ok, thanks
21:27 iago anyway, I'm just talking about that stuff to get your feedback
21:27 iago but if you prefer I just make changes and then send patches
21:28 iago for my POV "the problem" (not actually a big problem, though won't happy with that) is that it makes more provable to send patches that will be rejected
21:28 iago from*
21:30 iago maybe that could happen if I send a patch removing all TWFP stuff arguing that does not make lot of sense for me
21:36 lispy left #darcs
21:36 lispy joined #darcs
21:37 Heffalump hmm :-)
21:37 Heffalump some delving into the history (in the patch logs) before removing it would be worthwhile
21:44 ManateeLazyCat joined #darcs
21:50 ManateeLazyCat left #darcs
21:56 JaffaCake1 joined #darcs
21:59 JaffaCake left #darcs
22:09 Heffalump left #darcs
22:12 Heffalump joined #darcs
22:13 iago Heffalump, when you said me to consider commute cases for conflictors were you thinking in something concrete?
22:14 iago there are "cases" of course
22:14 iago though not as trivial as the ones for hunks
22:15 iago specially for the conflictor-conflictor case
22:18 Heffalump I mean the different cases in the commute code for conflictors in Real.hs
22:22 iago well, the "high-level" cases are taking into account
22:22 iago conflictor-conflictor, normal-conflictor etc
22:23 Heffalump right, but I mean the specific cases in the actual conflictor code
22:24 iago ok
22:24 iago just copy-paste
22:25 Heffalump yeah, I guess so
22:27 iago and what about conflictor complexity
22:27 iago that's seems to require some understanding
22:27 iago some quick measure you could easily describe?
22:28 iago for instance, I don't know how I should check nested conflictors
22:28 iago Conflictor ix xx x
22:28 iago is nested when x is a conflictor too? or what
22:30 jeltsch left #darcs
22:33 Heffalump I'm not sure which cases there can be conflictors too
22:33 Heffalump but some can as I understand it
22:33 Heffalump and yes, that's what I mean by complexity
22:34 Heffalump or at least that's one reasonable measure of it
22:36 iago that's complex...
22:36 iago no doc
22:36 iago and you don't know
22:36 iago who knows?
22:36 Heffalump Igloo probably
22:38 iago Igloo, could you point me how test nested conflictors?
22:39 Igloo According to a mail I sent, http://paste.debian.net/102508/ will make one
22:39 gh_ left #darcs
22:40 gbeshers joined #darcs
23:02 iago Igloo, sorry
23:02 iago I mean test it by a Haskell function
23:03 iago isNestedConflictor :: RealPatch prim -> Bool
23:03 Heffalump I'd be more interested in counting the nesting depth
23:04 Heffalump I think it's just a case of measuring Conflictor as 1 + the value of any patches inside it
23:04 Igloo Ah, I see. You need to look for a conflictor in the context of something in the set of conflicts
23:04 djanatyn left #darcs
23:04 Igloo I'm not sure if you can also get conflictors in the context of the patch identity
23:04 Heffalump (and Normal as 0, and Duplicate as 1 + the duplicate patch)
23:04 Igloo I think you want the max depth, rather than the sum
23:05 iago -- @Conflictor ix xx x@:
23:06 iago how you should look for nesting
23:06 iago just instead x ?
23:06 iago s/instead/inside
23:07 iago or you should search conflictors in ix, xx and x
23:07 iago or what
23:07 iago I don't get how conflictors are structured
23:07 Heffalump the type should tell you some of it
23:07 djanatyn joined #darcs
23:08 iago not a lot
23:08 iago maybe you have implicit knowledge I don't have
23:09 Heffalump the type tells you the maximum nesting that's possible
23:09 Heffalump you can't have any inside xx, for example
23:10 iago well ok, yes, I just realize that about xx right now
23:10 iago just before see the irc window
23:10 iago :P
23:11 iago the doubt about ix remains
23:11 iago Igloo, could you clarify ?
23:12 iago can ix contains conflictors?
23:12 Igloo What type is it?
23:15 raichoo left #darcs
23:17 iago data RealPatch prim C(x y) where
23:17 iago http://darcs.net/screened/​src/Darcs/Patch/V2/Real.hs
23:19 Heffalump Non (RealPatch prim C(x y))
23:19 Heffalump perhaps with different bracketing
23:21 iago ops
23:21 iago [Non (RealPatch prim) C(x)]
23:21 iago ix :: [Non (RealPatch prim) C(x)]
23:21 Igloo That'll be the set of conflicts, so yes
23:21 iago --
23:21 iago -- @Conflictor ix xx x@:
23:21 iago -- @ix@ is the set of patches:
23:21 iago --
23:21 iago --   * that conflict with @x@ and also conflict with another patch in the repository
23:22 iago --
23:22 iago --   * that conflict with a patch that conflict with @x@
23:22 iago I don't know if that clarify something
23:22 Heffalump Igloo: btw, you should pull from screened, it turned out we'd accidentally turned off witnesses for a while
23:22 Heffalump so your local changes won't have been building with witnesses so might be wrong :-/
23:22 Heffalump s/igloo/iago/ # sorry
23:23 iago ...
23:23 iago well I did some pull recently
23:23 Heffalump the patch I pushed is an hour or two old
23:24 iago not that patch
23:24 iago yeah I see
23:24 iago well, everything seems ok
23:24 iago so... what's the conclusion
23:25 iago recursively compute the deph of conflictors inside ix and x
23:25 iago maximum + 1
23:25 iago ?
23:25 Heffalump I'm not sure about depth or count
23:26 Heffalump I'd tend to view Conflictor [Conflictor, Conflictor] as interesting in its own right compared to Conflictor [Conflictor]
23:26 Igloo I don't see why 10 conflicts with a single level of nesting should be "more" than 5 conflicts with a single level of nesting
23:26 Heffalump perhaps cap the value of each level at 2
23:26 Heffalump anyway, bed
23:27 Heffalump any metric is better than no metric, so just pick something, iago
23:27 iago ook
23:27 iago that's right, anyway I won't understand the metric
23:27 iago :P
23:27 iago thanks for your time
23:27 iago good night
23:42 twb joined #darcs
23:47 jutaro left #darcs

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