<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	>
<channel>
	<title>Comments on: Adventures in the forest of V</title>
	<atom:link href="http://jfxpt.com/2020/adventures-in-the-forest-of-v/feed/" rel="self" type="application/rss+xml" />
	<link>http://jfxpt.com/2020/adventures-in-the-forest-of-v/</link>
	<description>The search for invariants</description>
	<pubDate>Thu, 09 Apr 2026 22:32:46 +0000</pubDate>
	<generator>http://polimedia.us</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: V in Perl with parsing fix, keksum, and starter, plus the ill-fated vdiff &#171; Fixpoint</title>
		<link>http://jfxpt.com/2020/adventures-in-the-forest-of-v/#comment-231</link>
		<dc:creator>V in Perl with parsing fix, keksum, and starter, plus the ill-fated vdiff &#171; Fixpoint</dc:creator>
		<pubDate>Thu, 02 Apr 2020 17:51:19 +0000</pubDate>
		<guid isPermaLink="false">http://fixpoint.welshcomputing.com/?p=112#comment-231</guid>
		<description>[...] my prior adventures, I reoriented my efforts toward some simpler changes to the v.pl tree, abandoning hopes of a robust [...]</description>
		<content:encoded><![CDATA[<p>[...] my prior adventures, I reoriented my efforts toward some simpler changes to the v.pl tree, abandoning hopes of a robust [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob Welsh</title>
		<link>http://jfxpt.com/2020/adventures-in-the-forest-of-v/#comment-229</link>
		<dc:creator>Jacob Welsh</dc:creator>
		<pubDate>Thu, 02 Apr 2020 15:21:39 +0000</pubDate>
		<guid isPermaLink="false">http://fixpoint.welshcomputing.com/?p=112#comment-229</guid>
		<description>@whaack, cool.

Re III, &lt;a href="http://bvt-trace.net/2020/02/vsh-part-2-ada-utilities/#comment-171" rel="nofollow"&gt;discussion with bvt&lt;/a&gt; has been illuminating - in brief, the ^diff matching originated with phf's vpatch and so is pretty entrenched, and there are further possible headaches in store for alternative diff implementations.</description>
		<content:encoded><![CDATA[<p>@whaack, cool.</p>
<p>Re III, <a href="http://bvt-trace.net/2020/02/vsh-part-2-ada-utilities/#comment-171" rel="nofollow">discussion with bvt</a> has been illuminating - in brief, the ^diff matching originated with phf's vpatch and so is pretty entrenched, and there are further possible headaches in store for alternative diff implementations.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: whaack</title>
		<link>http://jfxpt.com/2020/adventures-in-the-forest-of-v/#comment-228</link>
		<dc:creator>whaack</dc:creator>
		<pubDate>Wed, 01 Apr 2020 20:08:49 +0000</pubDate>
		<guid isPermaLink="false">http://fixpoint.welshcomputing.com/?p=112#comment-228</guid>
		<description>@jfw

I was just pointing out that I had stumbled upon the same "problem" when writing my own version of topological sort for V. At the time I was unaware that the live versions of V in use also had the same quirk; I was speculating that they leveraged the manifest file to work around the inability to revert a file. You have now clarified that the known versions of V don't do this; I don't think I need an example spelled out.</description>
		<content:encoded><![CDATA[<p>@jfw</p>
<p>I was just pointing out that I had stumbled upon the same "problem" when writing my own version of topological sort for V. At the time I was unaware that the live versions of V in use also had the same quirk; I was speculating that they leveraged the manifest file to work around the inability to revert a file. You have now clarified that the known versions of V don't do this; I don't think I need an example spelled out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob Welsh</title>
		<link>http://jfxpt.com/2020/adventures-in-the-forest-of-v/#comment-227</link>
		<dc:creator>Jacob Welsh</dc:creator>
		<pubDate>Wed, 01 Apr 2020 18:30:34 +0000</pubDate>
		<guid isPermaLink="false">http://fixpoint.welshcomputing.com/?p=112#comment-227</guid>
		<description>I suppose I'm OK with the "so don't do that" approach; glad to have it out explicitly though so thank you. It also serves as one concrete reason for a "thou shalt test thy vpatch with a full press before publishing".</description>
		<content:encoded><![CDATA[<p>I suppose I'm OK with the "so don't do that" approach; glad to have it out explicitly though so thank you. It also serves as one concrete reason for a "thou shalt test thy vpatch with a full press before publishing".</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stanislav Datskovskiy</title>
		<link>http://jfxpt.com/2020/adventures-in-the-forest-of-v/#comment-226</link>
		<dc:creator>Stanislav Datskovskiy</dc:creator>
		<pubDate>Tue, 31 Mar 2020 22:27:12 +0000</pubDate>
		<guid isPermaLink="false">http://fixpoint.welshcomputing.com/?p=112#comment-226</guid>
		<description>Re #3 -- indeed you had the link. My apologies, missed it on 1st pass.

Re IV -- it still isn't clear to me why you would construct a tree where "have the same (path, hash) pair as an output of two different patches in the same VTree". If you end up with such a tree, for whatever reason, it is "coarse error of pilotage".

IMHO if you were to make a change to a program but then decided to revert, ought to at least put a comment, "tried $change here, proved fatal" -- rather than bitwise reversion to a previous state. This would be good practice even if V did not exist -- why burn the work that went into testing the unsuccessful change, by not documenting?</description>
		<content:encoded><![CDATA[<p>Re #3 -- indeed you had the link. My apologies, missed it on 1st pass.</p>
<p>Re IV -- it still isn't clear to me why you would construct a tree where "have the same (path, hash) pair as an output of two different patches in the same VTree". If you end up with such a tree, for whatever reason, it is "coarse error of pilotage".</p>
<p>IMHO if you were to make a change to a program but then decided to revert, ought to at least put a comment, "tried $change here, proved fatal" -- rather than bitwise reversion to a previous state. This would be good practice even if V did not exist -- why burn the work that went into testing the unsuccessful change, by not documenting?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jacob Welsh</title>
		<link>http://jfxpt.com/2020/adventures-in-the-forest-of-v/#comment-225</link>
		<dc:creator>Jacob Welsh</dc:creator>
		<pubDate>Tue, 31 Mar 2020 22:04:43 +0000</pubDate>
		<guid isPermaLink="false">http://fixpoint.welshcomputing.com/?p=112#comment-225</guid>
		<description>@Stanislav Datskovskiy: I'm aware of Phf's vdiff, I even described it in the text, you know? You're of course welcome to exclude me from "all known V users" if you like, indeed I admittedly hadn't been dealing with nontrivial trees besides TRB so as to feel a need for a Keccak presser previously.

I'm not at all arguing that a cyclic graph should be allowed. The problem in IV occurs even with use of a manifest. (@whaack, do you still think it doesn't? Maybe I need to spell out an example.)</description>
		<content:encoded><![CDATA[<p>@Stanislav Datskovskiy: I'm aware of Phf's vdiff, I even described it in the text, you know? You're of course welcome to exclude me from "all known V users" if you like, indeed I admittedly hadn't been dealing with nontrivial trees besides TRB so as to feel a need for a Keccak presser previously.</p>
<p>I'm not at all arguing that a cyclic graph should be allowed. The problem in IV occurs even with use of a manifest. (@whaack, do you still think it doesn't? Maybe I need to spell out an example.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: whaack</title>
		<link>http://jfxpt.com/2020/adventures-in-the-forest-of-v/#comment-224</link>
		<dc:creator>whaack</dc:creator>
		<pubDate>Tue, 31 Mar 2020 20:00:05 +0000</pubDate>
		<guid isPermaLink="false">http://fixpoint.welshcomputing.com/?p=112#comment-224</guid>
		<description>I have mentioned &lt;a href="http://ossasepia.com/2020/04/20/ossasepia-logs-for-17-Oct-2019/#1006780" rel="nofollow"&gt;the problem in IV.&lt;/a&gt; before when I was discussing a practice V I had written for myself.</description>
		<content:encoded><![CDATA[<p>I have mentioned <a href="http://ossasepia.com/2020/04/20/ossasepia-logs-for-17-Oct-2019/#1006780" rel="nofollow">the problem in IV.</a> before when I was discussing a practice V I had written for myself.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Stanislav Datskovskiy</title>
		<link>http://jfxpt.com/2020/adventures-in-the-forest-of-v/#comment-223</link>
		<dc:creator>Stanislav Datskovskiy</dc:creator>
		<pubDate>Tue, 31 Mar 2020 19:34:25 +0000</pubDate>
		<guid isPermaLink="false">http://fixpoint.welshcomputing.com/?p=112#comment-223</guid>
		<description>Re: Busybox and "nobody involved with V apparently found this important enough to remedy either" -- AFAIK all known V users currently use &lt;a href="http://barksinthewind.com/2018/vpy-updated-for-vtools/" rel="nofollow"&gt;Phf's vdiff&lt;/a&gt; or variants thereof, no one is using my original diff/grep/awk-powered one-liner.

Re: cyclic graphs: I specifically forbade them in the orig. Vtron. (Observe, there is a detector and eggog.) There is no, AFAIK, up-side to ever having a cyclic patch graph, and plentiful cost (e.g. requires a considerably more complicated "tortoise &#38; hare" toposort, not to mention "wtf, why?!". Consider why chess players are forbidden from repeating a previously-seen board position.)

Re: "why V wasn't made to simply include in the header of each patch the hash of its antecedent patch as a whole" : originally didn't have manifest, either.  Observe, in Phf's &lt;a href="http://btcbase.org/patches" rel="nofollow"&gt;TRB page&lt;/a&gt;, a patch was able to have multiple antecedents. Prior to manifest, there was less forced structure, but at the cost of making potentially nonsensical combinations pressable. In 2018 I posted a demo for an &lt;a href="http://therealbitcoin.org/ml/btc-dev/2018-March/000293.html" rel="nofollow"&gt;experimental Vtron&lt;/a&gt; that would behave as you described. (The algorithm is not mine, but originally Trinque's.) But AFAIK no one tried it.</description>
		<content:encoded><![CDATA[<p>Re: Busybox and "nobody involved with V apparently found this important enough to remedy either" -- AFAIK all known V users currently use <a href="http://barksinthewind.com/2018/vpy-updated-for-vtools/" rel="nofollow">Phf's vdiff</a> or variants thereof, no one is using my original diff/grep/awk-powered one-liner.</p>
<p>Re: cyclic graphs: I specifically forbade them in the orig. Vtron. (Observe, there is a detector and eggog.) There is no, AFAIK, up-side to ever having a cyclic patch graph, and plentiful cost (e.g. requires a considerably more complicated "tortoise &amp; hare" toposort, not to mention "wtf, why?!". Consider why chess players are forbidden from repeating a previously-seen board position.)</p>
<p>Re: "why V wasn't made to simply include in the header of each patch the hash of its antecedent patch as a whole" : originally didn't have manifest, either.  Observe, in Phf's <a href="http://btcbase.org/patches" rel="nofollow">TRB page</a>, a patch was able to have multiple antecedents. Prior to manifest, there was less forced structure, but at the cost of making potentially nonsensical combinations pressable. In 2018 I posted a demo for an <a href="http://therealbitcoin.org/ml/btc-dev/2018-March/000293.html" rel="nofollow">experimental Vtron</a> that would behave as you described. (The algorithm is not mine, but originally Trinque's.) But AFAIK no one tried it.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
