Perl 6 - the future is here, just unevenly distributed

IRC log for #darcs, 2017-05-04

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

All times shown according to UTC.

Time Nick Message
00:04 alqatari joined #darcs
01:49 ilbot3 joined #darcs
01:49 Topic for #darcs is now http://darcs.net/ | logs: http://irclog.perlgeek.de/darcs/ | darcs 2.12.5 is out http://darcs.net/Releases/2.12
02:01 leg joined #darcs
02:20 leg joined #darcs
02:42 leg joined #darcs
03:49 leg joined #darcs
04:12 drostie joined #darcs
05:31 bfrk joined #darcs
06:15 bfrk Heffalump: the rebase tests failed for a completely unrelated reason (some other change I made)
07:24 bfrk joined #darcs
08:11 jeltsch joined #darcs
08:37 Weltraumschaf joined #darcs
09:15 bfrk joined #darcs
10:23 Weltraumschaf_ joined #darcs
12:21 jeltsch joined #darcs
13:09 jeltsch joined #darcs
14:20 leg joined #darcs
14:56 drostie joined #darcs
15:11 sm joined #darcs
15:13 sm joined #darcs
15:14 Riastradh joined #darcs
16:03 drostie joined #darcs
16:20 bfrk Heffalump: I have a working version now that passes all tests for darcs1 and darcs2 format. (Except issue2382-mv-dir-to-file-confuses-darcs.sh with darcs1 which fails on the current screened, too)
16:22 bfrk There remains a problem when displaying file names to the user. This is caused by showPatch for primitive V1 patches using OldFormat. Which in turn is caused by a bug in the class hierarchy: prim patches should not need to be members of ShowPatch.
16:23 bfrk Fixing this is next on my list but I think I'll send what I have so far before I start on yet anothe big refactoring.
16:26 bfrk A bit more explanation: A prim patch cannot correctly implement ShowPatch, since it doesn't know whether it is part of a V1 RepoPatch or a V2 RepoPatch, so it doesn't know whether to use OldFormat or NewFormat. It currently has OldFormat hard-coded which is a bug.
16:29 bfrk ReadPatch has the same problem, BTW. This means that patch bundles (the only thing ReadPatch is used for) must use the old non-standard file name encoding.
16:32 bfrk My first attempts at fixing the class hierarchy unfortunately ran into a wall because of rebase patches. It seems a rebase patch doesn't know either whether it is a V1 or V2 RepoPatch.
16:37 Heffalump hmm, I thought there was a ShowPrimPatch or similar. I might have been responsible for some of this when I broke out prim patches properly, I'll try to remember the history.
16:38 Heffalump A rebase patch should know what is inside it
16:42 bfrk I am not so sure. It would make sense to let Rebase patches be parametric in the prim patch.
16:44 bfrk And yes: there is PrimShow with primShow method that takes FileNameFomat as argument. But I don't know what to pass unless I know whether we have V1 or V2 repo patches.
16:52 bfrk I meant: ...parametric in the RepoPatch type...
17:04 Heffalump bfrk: what specific type isn't parametric in the RepoPatch type?
17:05 Heffalump when I say "should know", I mean by way of having a type parameter that implements some classes
17:09 bfrk Heffalump: Forget what I said about things being parametric or not. I just want to find out how to fix the hard-coding of OldFormat in the display of patches.
17:11 bfrk Conretely: Darcs.Patch.Rebase.Item defines an instance (PrimPatchBase p, PatchListFormat p, ShowPatchBasic p) => ShowPatchBasic (RebaseItem p)
17:11 Heffalump and is this display, or on-disk format (probably on-disk format if it's ShowPatchBasic)
17:13 bfrk Unfortunately, ShowPatch is used for both. (I am planning to fix that, too, but I can't do everything at the same time...)
17:13 Heffalump and actually, I don't think you need to fix anything: presumably we have OldFormat and NewFormat for backwards-compatibility? But rebase patches are by definition relatively new.
17:14 Heffalump I thought the ShowPatchBasic/ShowPatch split separates out on-disk format and display (albeit that showPatch in ShowPatchBasic is also re-used for display)
17:14 bfrk More precisely: Darcs.Rep.Hashed defines writePatchIfNecessary which calls showPatch. This is sad but ture
17:14 bfrk ...true
17:15 Heffalump I think there are plenty of remaining problems, but I think you can handle on-disk format cleanly with just ShowpatchBasic, and then you need ShowPatch if also want display.
17:15 bfrk My current problem is (fortunately) not with the patch format on disk but only with the display.
17:15 Heffalump one of them ought to be renamed
17:16 Heffalump if some code is only used in display, don't we want to use NewFormat all the time?
17:17 bfrk Yes to both.
17:19 bfrk But showPatch is *also* used for display, only indirectly via the class hierarchy.
17:21 bfrk Um. I am confused about this use of showPatch in Hashed. Wouldn't that mean V2 patches are also written using OldFormat? But they are not, I see that...
17:23 bfrk Ah, I understand: writePatchIfNecessary never gets a prim patch directly, it only gets PatchInfoAnd p, and p is a RepoPatch, so knows whether it is V1 or V2. So yes: this problem exists only for display.
17:24 bfrk *sigh of relief*
17:27 bfrk All this looks like I can only fix the display issue by first fixing the mixup of on-disk and user-display formatting. Right?
17:28 Heffalump umm, maybe. I lost track of what the actual issue is.
17:28 Heffalump certianly fixing that mix-up is a long-standing todo in the darcs code
17:28 Heffalump (not explicitly documented as such, sorry you've had to rediscover it)
17:30 bfrk I was horrified, really. This is such an absolute NO NO NO to me ;-)
17:30 Heffalump you should have seen the code before I split apart prim and repo patches :-)
17:31 bfrk I am glad I didn't. BTW, i do like this split between prim and repo patches.
17:33 bfrk I wonder: should I just send the work-in-progress I have ATM? It's a single big patch but it works (apart from the file name display issue). Not for screened, mind, just so you can talke a look.
17:35 Heffalump sure. Need to find some time to catch up with more reviewing.
17:36 bfrk The reason I can work so much on darcs is that I am ill this week. No joke.
17:39 bfrk What I find so convincing about the new encoding scheme is that we don't /need/ to introduce moe nwtypes: just use the existing types: String vs. ByteString. I have completely thrown out the RenderMode and it all works just fine.
17:40 bfrk I have removed tons of ByteString.Char8.pack/unpack calls.
17:41 bfrk ...and replaced them (where necessary) with en/decodeLocale (which I re-implemented so that it uses the //ROUNDTRIP trick)
17:46 Heffalump so a String is always a sequence of "correct" unicode points, and a ByteString is encoded to the user's locale?
17:47 Heffalump I am stilla  bit suspicious that it's logically possible to use String and ByteString and have each always mean the same thing, because of the different cases (filenames, patch metadata, patch content)
18:32 bfrk You are right in that ByteString does not always mean the same thing. Indeed, when a ByteString is meta data, it is UTF8 encoded. Other cases exist, too, such as raw user data.
18:32 bfrk But at least String is always (pseudo) Unicode.
18:35 bfrk Ahem. Sorry. Meta data in ByteString form is *not* always UTF-8. Only in the few places that deal with on-disk format.
18:36 Riastradh joined #darcs
18:38 bfrk Indeed, the only places where ByteStrings are not locale encoded are those that deal with on-disk format (patches, inventories, pristine, currently also prefs/format).
18:39 bfrk I have turned the other prefs into text files (unless I missed some).
18:43 bfrk I am not completely sure about emails and patch bundles. More testing is needed to ensure interoperability with existing repos where older darcs versions are or have been used.
18:51 bfrk BTW it is good that you remain sceptical. It is different for me, i need to believe in the idea to keep working on it...
18:56 bfrk If nothing else, we have explored a new vector in the design space.
18:57 bfrk I do think the new design is an improvement. If there are issues (and i think there will be) it should be possible to fix them without going back to the old Char=Char8 stuff.
19:07 Heffalump overriding the handle read mode was fundamentally flawed, so if you've got something working without it that can only be good
20:24 Cthulhux what is the currently recommended emacs integration plug-in for darcs? i've noticed that DVC seems to be dead.
20:47 bfrk joined #darcs
21:19 sm Cthulhux: darcsum
21:19 sm or possibly vc-darcs
21:20 Cthulhux sm: thanks. what's the difference?
22:06 sm Cthulhux: darcsum has a magit-ish ui, useful for committing individual hunks. vc-darcs enables basic vcs operations via standard keybindings that work for all vcs's
22:12 Cthulhux sm: looks like darcsum is the better choice then. (i like magit, minus the git part.) thanks a ton!
22:13 sm no problem
22:14 sm and you can install both
22:14 Cthulhux so both would be tracking a darcs project at the same time?
22:14 sm sure
22:15 sm use whichever is more convenient for a given task
22:15 sm eg if you just want to commit the file you're working in, C-x v v and no need for a ui
22:16 sm (this is from memory, I haven't tested recently)
22:16 Cthulhux i prefer to keep my plug-in list short. (ha, well, less than 30. yet.)  i can live with using cmd for things that don't work as great as they should...
22:16 * Cthulhux adds a couple of bookmarks
22:17 sm easy to add or remove them via M-x list-packages
22:22 Cthulhux i'll play with it over the weekend. i'll ping you with questions if any :)
23:44 bf_ joined #darcs

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