| Time |
S |
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/Mo[…]ng-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/U[…]ory_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/[…]ch/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/pac[…]rty.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/[…]/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 |