<div dir="ltr"><div class="gmail_default" style="font-family:monospace,monospace">I liked the idea so much that I wrote my own 'rr'</div><div class="gmail_default" style="font-family:monospace,monospace">in another language.  There are problems, which I</div><div class="gmail_default" style="font-family:monospace,monospace">noticed in my own program first.  One I don't see</div><div class="gmail_default" style="font-family:monospace,monospace">a way around is the distinction between 'this</div><div class="gmail_default" style="font-family:monospace,monospace">file has changed in some way' and 'the series of</div><div class="gmail_default" style="font-family:monospace,monospace">changes to this file has now reached a new stable</div><div class="gmail_default" style="font-family:monospace,monospace">state where it is safe to look at.'</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">Of course the inotifywait(1) command, which relies</div><div class="gmail_default" style="font-family:monospace,monospace">on the Linux inotify(7) interface, has precisely</div><div class="gmail_default" style="font-family:monospace,monospace">the same issue.  It can tell when a file that was</div><div class="gmail_default" style="font-family:monospace,monospace">opened for writing has just been closed, so is</div><div class="gmail_default" style="font-family:monospace,monospace">presumably in a stable state, but it can't tell</div><div class="gmail_default" style="font-family:monospace,monospace">whether a file is in a stable state if it HASN'T</div><div class="gmail_default" style="font-family:monospace,monospace">been closed, and just because file X is now ready</div><div class="gmail_default" style="font-family:monospace,monospace">to look at doesn't mean that a connected series</div><div class="gmail_default" style="font-family:monospace,monospace">of updates to X Y and Z have now reached a stable</div><div class="gmail_default" style="font-family:monospace,monospace">point.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">make(1) leaves the problem in the user's hands.</div><div class="gmail_default" style="font-family:monospace,monospace"><br></div><div class="gmail_default" style="font-family:monospace,monospace">What we really need is a notion of "transaction"</div><div class="gmail_default" style="font-family:monospace,monospace">built into the file system.  (Oh, and a 50 cent</div><div class="gmail_default" style="font-family:monospace,monospace">supercomputer would be nice too. (:-))<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Mon, 15 Aug 2022 at 18:21, Volker Wysk <<a href="mailto:post@volker-wysk.de">post@volker-wysk.de</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Thanks for sharing!<br>
<br>
Volker<br>
<br>
Am Sonntag, dem 14.08.2022 um 20:05 +0100 schrieb Sean Charles<br>
(emacstheviking):<br>
> Hi,<br>
> <br>
> In case anybody might be looking for some simple code that shows how<br>
> to call "C" code and also have a utility that watches files for their<br>
> modification timestamp(s) to change, then run a command and rinse-<br>
> repeat forever.<br>
> <br>
> It builds on a sample program I released last week, if you find it<br>
> useful my name was Sean, if not, my name was Donald.<br>
> <br>
> <a href="https://github.com/emacstheviking/mercury-rinse-repeat" rel="noreferrer" target="_blank">https://github.com/emacstheviking/mercury-rinse-repeat</a><br>
> <br>
> I wrote it to drive my Literate Programming tangle/weave tool which I<br>
> am almost ready to publish as well, it just needs some very minor<br>
> tweaks before it passes muster. It's fashioned after `noweb`, in fact<br>
> the syntax for blocks is the same, I took inspiration from it as I<br>
> have used it in the past to produce working sellable Drupal modules<br>
> back in the bad old days.<br>
> <br>
> The program is VERY simple and VERY naive but that's all I needed and<br>
> it works for me.<br>
> <br>
> Thanks for all the comments along the way,<br>
> <br>
> Sean.<br>
> <br>
> _______________________________________________<br>
> users mailing list<br>
> <a href="mailto:users@lists.mercurylang.org" target="_blank">users@lists.mercurylang.org</a><br>
> <a href="https://lists.mercurylang.org/listinfo/users" rel="noreferrer" target="_blank">https://lists.mercurylang.org/listinfo/users</a><br>
<br>
_______________________________________________<br>
users mailing list<br>
<a href="mailto:users@lists.mercurylang.org" target="_blank">users@lists.mercurylang.org</a><br>
<a href="https://lists.mercurylang.org/listinfo/users" rel="noreferrer" target="_blank">https://lists.mercurylang.org/listinfo/users</a><br>
</blockquote></div>