Perl 6 - the future is here, just unevenly distributed

IRC log for #darcs, 2015-09-26

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

All times shown according to UTC.

Time Nick Message
01:09 mizu_no_oto joined #darcs
02:09 Riastradh joined #darcs
02:17 mizu_no_oto joined #darcs
02:21 c74d3 joined #darcs
02:24 c74d3 joined #darcs
02:31 c74d3 joined #darcs
04:10 Riastradh joined #darcs
04:49 mizu_no_oto joined #darcs
04:50 IcyFoxy Heffalump: Good history management.
04:54 IcyFoxy Deduplication, and cleaner merging of branches
05:59 Heffalump IcyFoxy: why would a DHT have history/branches? Perhaps I'm misunderstanding the application.
06:08 IcyFoxy Heffalump: It's a personal research project. I want to have a decentralised backbone in which p2p, decentralised applications can share.
06:08 IcyFoxy So I'm going to implement a VCS ontop of a DHT.
06:12 Heffalump so the DHT is really just a transport layer for remote operations?
06:13 IcyFoxy As a result, everything should be both generic and flexible. One example. Although darcs' patch theory is defined over a set of functions (creating, deleting files and folders, modifying these files/folders and their permission-modes), any function may be used. A good testcase would be to apply an algorithm over the patch-theory such that permutations are derived while the result remains the same.
06:14 Heffalump not sure I understand what "an algorithm over the patch-theory" would be
06:14 IcyFoxy Heffalump: Yes. With a mesh-network structure. Suitable for p2p via the Internet, and p2p over adhoc wifi. (Or any other bidirectional commuication channel; or even unidirectional for non-interactive things)
06:15 IcyFoxy Sorry. I meant like 3 + 5 * 7. Any mathematical expression such that the result remaining the same is a proof of the reordering / dependencies doing their job.
06:16 Heffalump the current set of patch types guarantee that the final tree remains the same when patches are reordered
06:16 IcyFoxy I know.
06:16 IcyFoxy What I meant here was that, this property remains true for functions outside of the history of a directory-file structure.
06:17 Heffalump are you thinking of a different set of patch types over mathematical expressions that have the same property (the final number should stay the same)?
06:17 IcyFoxy Yes
06:18 Heffalump do you have anything in mind? Intuitively I suspect the set of possible functions would be quite limited.
06:20 IcyFoxy For the mathematical case, some functions do not have an inverse (or it is simply too expensive), and as such would prevent reordering and enforce a dependency.
06:21 IcyFoxy Any functions any application wishes to implement must fit the required constraints of the respective traits (traits in rust, iirc, typeclass for haskell)
06:22 IcyFoxy Example pairs. The inverse of mkdir, is rmdir.
06:23 IcyFoxy I'll need to take a deeper look into the requirements that path theory implies. The most critical that I've noticed is at least that the functions have an inverse.
06:23 IcyFoxy patch*
06:23 Heffalump I think you can get away without that, but it means you have to work harder to define both the reordering and the merging operation
06:25 IcyFoxy As I said eariler for the math examples. Some operations cannot be reordered
06:25 Heffalump reordering doesn't have to be total
06:25 IcyFoxy Or rather. Their dependency rules are too strong.
06:25 Heffalump but if you can't reorder or merge anything then you won't get much from patch theory
06:26 Heffalump btw "theory" is a bit of an exaggeration, as there isn't really anything really solid and formal behind it (yet)
06:27 IcyFoxy Regardless, I want to take my taste for the theory and implement as much as I can in rust, such that everything remains as generic as erquired.
06:28 IcyFoxy While reading up on the patch theory. I'm yet to find a set of conditions on the functions. I.e. Like having an inverse, what other rules may be required?
06:32 IcyFoxy Heffalump: Do you know of any such list of constraints?
06:57 Heffalump you need an inverse, a commute operation and a merge operation
06:57 Heffalump and they have to obey some rules, e.g. you can undo a merge with a commute
07:00 IcyFoxy Okay.
07:00 IcyFoxy Where did you get this list from? Memory, code, paper, ?
07:06 Heffalump memory, though I'm sure it's written down somewhere - I just can't find it now I'm looking
07:06 IcyFoxy Okay. Thanks.
07:07 Heffalump we draw a lot of diagrams with 4 arrows laid out in a square (like commuting diagrams) when talking about patch theory
07:09 IcyFoxy You looking for these diagrams?
07:10 Heffalump sort of
07:11 IcyFoxy Although not so relevant yet for implementation. What operators would you find most fitting to the cases of inverse, commute, and merge? Inverse either negate or not. Merge multiply or addition. Commute?
07:12 Heffalump that would imply that patches are actual numbers
07:12 Heffalump I'm not sure what use you could get out of having patches as numbers
07:12 Heffalump really you first need to define your states and the action that patches have on them
07:13 IcyFoxy Okay.
07:15 IcyFoxy I meant for in math the inverse of a patch is N^-1, so in the code as shorthand for getting the inverse; should this be !N or -N?
07:15 IcyFoxy s/N/P/g
07:17 Heffalump there's no particularly standard notation, you can use N^-1 or maybe just N^
07:17 IcyFoxy ^ I was thinking more in the code
07:18 IcyFoxy As rust allows me to overload operators. Doing so would allow me to be consistent in documentation.
07:18 Heffalump oh, right. I guess -N is closer to the formalism than !N
07:18 Heffalump but I'm not sure either works that well
07:18 IcyFoxy Okay. Thanks
07:19 IcyFoxy I could in theory impl BitXor such that P^-1 is literally the inverse.
07:23 IcyFoxy I'll figure out the shorthand another time.
07:26 Heffalump http://urchin.earth.li/~ganesh/darcs-lhug-apr-13.pdf has a few of the diagrams I was talking about
07:27 IcyFoxy Thanks
07:45 IcyFoxy Heffalump: Slide 29: "Multi head repos" - one of the properties required by a shared multi-repo DHT. :)
07:45 IcyFoxy Did this make it's way into 2.10?
08:00 Heffalump Nope
08:00 Heffalump but it's "just" engineering, so if you're writing code from scratch anyway it's not fundamentally hard
08:40 IcyFoxy Indeed
08:47 bishboria joined #darcs
13:03 Riastradh joined #darcs
13:15 The^One joined #darcs
13:15 The^One hi all
13:16 The^One left #darcs
13:19 The^One joined #darcs
13:19 The^One when I try to do cabal install darcs I get
13:20 The^One /usr/bin/ld: cannot find -lHSHTTP-4000.2.20-ghc7.8.3
13:20 The^One /usr/bin/ld: cannot find -lHSnetwork-uri-2.6.0.3-ghc7.8.3
13:20 The^One /usr/bin/ld: cannot find -lHSnetwork-2.6.2.1-ghc7.8.3
13:20 IcyFoxy The^One: And when you just run 'cabal' you get the same result?
13:21 The^One no
13:21 The^One cabal runs fine
13:21 IcyFoxy What does ghc --version say? 7.8.3 is quite an old version of ghc...
13:21 IcyFoxy Wai
13:22 The^One version 7.8.3
13:22 * IcyFoxy wonders why his freebsd has 7.10.2 o.o
13:23 IcyFoxy ^ My gentoo has 7.6.3 and had installed haskell just days ago there
13:23 IcyFoxy The^One: It does look like you have a mismatch somewhere for versions.
13:25 IcyFoxy The^One: Can you install anything else using cabal?
13:26 The^One yes also I tried "cabal install network-uri-2.6.0.3" and it says
13:27 The^One All the requested packages are already installed:
13:27 The^One network-uri-2.6.0.3
13:27 The^One yet again when I do "cabal install darcs" I get the above error of not finding those three
13:28 IcyFoxy Strange
14:03 mizu_no_oto joined #darcs
14:09 IcyFoxy The^One: Solved? Tried asking in other haskell channels?
14:10 The^One I installed darcs-2.10.0 instead that installed correctly
14:11 IcyFoxy Cool (for the working part). I wonder why the other didn't work.
14:11 IcyFoxy I installed darcs 2.10 from darcs repos. And darcs and cabal both from source as provided by gentoo. (Note the lack of 'cabal install darcs' in this)
14:21 IcyFoxy Can [A, C, D, E, B] be commuted back to position 2 through a commution against [C, D, E] in one step? I.e. Merge [C, D, E] into CDE and commute [CDE, B]? And would this have any performance benefit?
14:22 IcyFoxy "be commuted"; for B to be commuted into position 2 **
18:14 gh_ joined #darcs
21:59 Heffalump IcyFoxy: not easily, because the whole commute needs to fail if the commute with any of C, D and E fails

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