Hi, sorry for being quite busy, and not contributing anything ... to ease both the “correction after unpacking” and support for long-term server processes, it may be a good idea to provide a function which updates all timestamps in the program’s PAR cache (including the canary file to an older value). I would not recommend the canary mode as a default, unless we have found that it is reasonable to do so. Hope to be able to contribute some code during summer.
Best regards, Markus From: roderich.sch...@gmail.com [mailto:roderich.sch...@gmail.com] On Behalf Of Roderich Schupp Sent: Tuesday, May 19, 2015 11:49 AM To: Shawn Laffan Cc: par@perl.org; Markus Jansen Subject: Re: PAR + tmpwatch = mess On Tue, May 19, 2015 at 12:49 AM, Shawn Laffan <shawn.laf...@unsw.edu.au<mailto:shawn.laf...@unsw.edu.au>> wrote: OK. I'll change it to update the mtime after extraction, and create the canary file at extraction time (which is simpler in any case). Note (this is mostly a reminder for myself, but other eyes are welcome): There are places other than PAR::_extract_inc where files are written to the cache area: 1. files written in stage 1 of the bootstrap process: the custom Perl interpreter (extracted with the same name as the packed executable to make $0 work), the shared Perl library (if your Perl is built with one, always the case on Windows) and all non-system DLLs needed by them (libstdc++ etc, the list keeps growing with every release of Strawberry Perl) 2. files written in stage 1 of the boostrap process: essential Perl modules (basically anything transititively required by PAR and Archive::Zip); these are not in the appended zip and are extracted using mangled names 3. cache files for modules and DLLs contained in the zip; these are also extracted using mangled names For each of the categories, one should * either check if these are already automatically re-extracted when missing (might be the case for (3)) * or make sure that: * their last modified timestamp is the time of extraction (probably true for (1) and (2), since there not extracted by Archive::Zip) * they're re-extracted when we find that the canary file is missing Cheers, Roderich