From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 X-Received: by 2002:a24:2f0e:: with SMTP id j14mr3000672itj.14.1542798971218; Wed, 21 Nov 2018 03:16:11 -0800 (PST) X-Received: by 2002:aca:5803:: with SMTP id m3-v6mr105854oib.4.1542798970801; Wed, 21 Nov 2018 03:16:10 -0800 (PST) Path: eternal-september.org!reader01.eternal-september.org!feeder.eternal-september.org!news.gegeweb.eu!gegeweb.org!usenet-fr.net!proxad.net!feeder1-2.proxad.net!209.85.166.215.MISMATCH!z5-v6no200205ite.0!news-out.google.com!v141ni69ita.0!nntp.google.com!z5-v6no200201ite.0!postnews.google.com!glegroupsg2000goo.googlegroups.com!not-for-mail Newsgroups: comp.lang.ada Date: Wed, 21 Nov 2018 03:16:10 -0800 (PST) In-Reply-To: <1cc54d43-c7fb-420d-b7e7-6e447dec3f2d@googlegroups.com> Complaints-To: groups-abuse@google.com Injection-Info: glegroupsg2000goo.googlegroups.com; posting-host=176.130.29.212; posting-account=6yLzewoAAABoisbSsCJH1SPMc9UrfXBH NNTP-Posting-Host: 176.130.29.212 References: <0577e947-d691-4b81-aca6-b2e86bbef634@googlegroups.com> <04221674-95d8-4d4a-8743-42877b13eead@googlegroups.com> <7938d434-d666-4b80-a5cb-6c2f8ee70153@googlegroups.com> <1cc54d43-c7fb-420d-b7e7-6e447dec3f2d@googlegroups.com> User-Agent: G2/1.0 MIME-Version: 1.0 Message-ID: Subject: Re: GNAT Modification_Time limitation From: briot.emmanuel@gmail.com Injection-Date: Wed, 21 Nov 2018 11:16:11 +0000 Content-Type: text/plain; charset="UTF-8" Xref: reader01.eternal-september.org comp.lang.ada:54857 Date: 2018-11-21T03:16:10-08:00 List-Id: > The ptrace approach would be much more reliable (though linux-specific), since you would know > for instance: > > - that the compiler searched and did not find foo,ads in /first/dir > - found and opened /other/dir/foo.ads > > so next time there is a build you can check first whether 'foo.ads' now exists in /first/dir. If that file > now exists, you need to rebuild. > gprbuild doesn't handle such changes on the system, it only store what it found. Slightly out of topic (sorry): I found tup (http://gittup.org/tup/index.html) which appears to be doing exactly what you want to achieve. It monitors file accesses but it uses a fuse filesystem for this, rather than ptrace. I had implemented a fuse filesystem in Ada at some point, though I do not have that code anymore. AdaCore was using that to access a database that contains all build+tests results on all possible combinations, if I remember right.