From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1403 invoked by alias); 14 Feb 2018 06:39:49 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: List-Unsubscribe: X-Seq: 42365 Received: (qmail 243 invoked by uid 1010); 14 Feb 2018 06:39:48 -0000 X-Qmail-Scanner-Diagnostics: from kahlil.inlv.org by f.primenet.com.au (envelope-from , uid 7791) with qmail-scanner-2.11 (clamdscan: 0.99.2/21882. spamassassin: 3.4.1. Clear:RC:0(37.59.109.123):SA:0(-1.9/5.0):. Processed in 10.517229 secs); 14 Feb 2018 06:39:48 -0000 X-Spam-Checker-Version: SpamAssassin 3.4.1 (2015-04-28) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,T_RP_MATCHES_RCVD autolearn=ham autolearn_force=no version=3.4.1 X-Envelope-From: martijn@inlv.org X-Qmail-Scanner-Mime-Attachments: | X-Qmail-Scanner-Zip-Files: | To: Zsh hackers list From: Martijn Dekker Subject: [PATCH] use .zwc files with identical timestamps Message-ID: <42ad6851-3c3a-f48b-0742-83df943ce814@inlv.org> Date: Wed, 14 Feb 2018 07:11:14 +0100 User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.11; rv:52.0) Gecko/20100101 Thunderbird/52.6.0 MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="------------026B6812D5015DAF36D32D86" Content-Language: en-GB --------------026B6812D5015DAF36D32D86 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit I have been experimenting with zcompile to speed up loading sourced library scripts. I found that .zwc files are not used if their timestamp is identical to that of the source file. This can occur, for example, if an installer script installs a script file and zcompiles it immediately after. The granularity of file system timestamps, at least on my system, is not sufficient to register a difference. I think it should be a safe enough assumption that they correspond if the timestamps are identical. The attached patch allows zsh to use .zwc files if their timestamp is greater than, or identical to the source file's timestamp. - M. --------------026B6812D5015DAF36D32D86 Content-Type: text/plain; charset=UTF-8; x-mac-type="0"; x-mac-creator="0"; name="zcompile-timestamps.patch" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="zcompile-timestamps.patch" ZGlmZiAtLWdpdCBhL1NyYy9wYXJzZS5jIGIvU3JjL3BhcnNlLmMKaW5kZXggNmFmMjU1MC4u NDdlNWEyNCAxMDA2NDQKLS0tIGEvU3JjL3BhcnNlLmMKKysrIGIvU3JjL3BhcnNlLmMKQEAg LTM2NzcsMTUgKzM2NzcsMTUgQEAgdHJ5X2R1bXBfZmlsZShjaGFyICpwYXRoLCBjaGFyICpu YW1lLCBjaGFyICpmaWxlLCBpbnQgKmtzaCwgaW50IHRlc3Rfb25seSkKICAgICAgKiBmdW5j dGlvbi4gKi8KICAgICBxdWV1ZV9zaWduYWxzKCk7CiAgICAgaWYgKCFyZCAmJgotCShyYyB8 fCBzdGQuc3RfbXRpbWUgPiBzdGMuc3RfbXRpbWUpICYmCi0JKHJuIHx8IHN0ZC5zdF9tdGlt ZSA+IHN0bi5zdF9tdGltZSkgJiYKKwkocmMgfHwgc3RkLnN0X210aW1lID49IHN0Yy5zdF9t dGltZSkgJiYKKwkocm4gfHwgc3RkLnN0X210aW1lID49IHN0bi5zdF9tdGltZSkgJiYKIAko cHJvZyA9IGNoZWNrX2R1bXBfZmlsZShkaWcsICZzdGQsIG5hbWUsIGtzaCwgdGVzdF9vbmx5 KSkpIHsKIAl1bnF1ZXVlX3NpZ25hbHMoKTsKIAlyZXR1cm4gcHJvZzsKICAgICB9CiAgICAg LyogTm8gZGlnZXN0IGZpbGUuIE5vdyBsb29rIGZvciB0aGUgcGVyLWZ1bmN0aW9uIGNvbXBp bGVkIGZpbGUuICovCiAgICAgaWYgKCFyYyAmJgotCShybiB8fCBzdGMuc3RfbXRpbWUgPiBz dG4uc3RfbXRpbWUpICYmCisJKHJuIHx8IHN0Yy5zdF9tdGltZSA+PSBzdG4uc3RfbXRpbWUp ICYmCiAJKHByb2cgPSBjaGVja19kdW1wX2ZpbGUod2MsICZzdGMsIG5hbWUsIGtzaCwgdGVz dF9vbmx5KSkpIHsKIAl1bnF1ZXVlX3NpZ25hbHMoKTsKIAlyZXR1cm4gcHJvZzsKQEAgLTM3 MjQsNyArMzcyNCw3IEBAIHRyeV9zb3VyY2VfZmlsZShjaGFyICpmaWxlKQogICAgIHJuID0g c3RhdChmaWxlLCAmc3RuKTsKIAogICAgIHF1ZXVlX3NpZ25hbHMoKTsKLSAgICBpZiAoIXJj ICYmIChybiB8fCBzdGMuc3RfbXRpbWUgPiBzdG4uc3RfbXRpbWUpICYmCisgICAgaWYgKCFy YyAmJiAocm4gfHwgc3RjLnN0X210aW1lID49IHN0bi5zdF9tdGltZSkgJiYKIAkocHJvZyA9 IGNoZWNrX2R1bXBfZmlsZSh3YywgJnN0YywgdGFpbCwgTlVMTCwgMCkpKSB7CiAJdW5xdWV1 ZV9zaWduYWxzKCk7CiAJcmV0dXJuIHByb2c7Cg== --------------026B6812D5015DAF36D32D86--