From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Andy Wingo Newsgroups: gmane.lisp.guile.devel Subject: Re: mtime of fresh .go Date: Mon, 19 Jul 2010 21:10:20 +0200 Message-ID: References: <87mxtrdf42.fsf@gnu.org> <87vd8cv2v7.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: quoted-printable X-Trace: dough.gmane.org 1279566596 22523 80.91.229.12 (19 Jul 2010 19:09:56 GMT) X-Complaints-To: usenet@dough.gmane.org NNTP-Posting-Date: Mon, 19 Jul 2010 19:09:56 +0000 (UTC) Cc: guile-devel@gnu.org To: ludo@gnu.org (Ludovic =?utf-8?Q?Court=C3=A8s?=) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Mon Jul 19 21:09:54 2010 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.69) (envelope-from ) id 1Oavis-0004Td-2l for guile-devel@m.gmane.org; Mon, 19 Jul 2010 21:09:54 +0200 Original-Received: from localhost ([127.0.0.1]:38095 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Oaviq-0000mt-Ni for guile-devel@m.gmane.org; Mon, 19 Jul 2010 15:09:52 -0400 Original-Received: from [140.186.70.92] (port=60619 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Oavgg-0007n0-OW for guile-devel@gnu.org; Mon, 19 Jul 2010 15:07:40 -0400 Original-Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1Oavgf-0007Zf-3k for guile-devel@gnu.org; Mon, 19 Jul 2010 15:07:38 -0400 Original-Received: from a-pb-sasl-quonix.pobox.com ([208.72.237.25]:38489 helo=sasl.smtp.pobox.com) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1Oavge-0007ZV-Vy; Mon, 19 Jul 2010 15:07:37 -0400 Original-Received: from sasl.smtp.pobox.com (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 321A7C58F6; Mon, 19 Jul 2010 15:07:36 -0400 (EDT) DKIM-Signature: v=1; a=rsa-sha1; c=relaxed; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; s=sasl; bh=9dz+C8yOfkYC gfErfld2Yqs4BgU=; b=Xlq4GKHmQ9BUXirF1x/Ava9ETuGeCZHxbXP50vg0twPV LSpvtD8yt2bdNrCDak3bo25MrnklYjDx6IPwc+7uURc0i0PF5iR3tkyZU5zXqYBq wjvE90knC8rZSFbFIepMFWTspTC3ezZ5Xmw7WwTdE5LT4a3rNJIcsCZu82lYaes= DomainKey-Signature: a=rsa-sha1; c=nofws; d=pobox.com; h=from:to:cc :subject:references:date:in-reply-to:message-id:mime-version :content-type:content-transfer-encoding; q=dns; s=sasl; b=fty3Sz VqM3mhZSDQ/IQTIRmZyFuE7KrbF2AQoKAAz5Qwx3icRaKOOPF1iQ9w8B+vkuQcSm 2PPHBn/UbsBQc3fMZQFvQYUs/O5oRfSUiW783KJ+NBvlSFxYK564N6mHZeYmgz+l EyKlJYLRCAjIHoTCZIvy2wg2mrVtXS60gnoPk= Original-Received: from a-pb-sasl-quonix. (unknown [127.0.0.1]) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTP id 0F3C0C58E7; Mon, 19 Jul 2010 15:07:35 -0400 (EDT) Original-Received: from unquote.localdomain (unknown [81.38.186.9]) (using TLSv1 with cipher DHE-RSA-AES256-SHA (256/256 bits)) (No client certificate requested) by a-pb-sasl-quonix.pobox.com (Postfix) with ESMTPSA id 36B70C58E3; Mon, 19 Jul 2010 15:07:32 -0400 (EDT) In-Reply-To: <87vd8cv2v7.fsf@gnu.org> ("Ludovic =?utf-8?Q?Court=C3=A8s=22'?= =?utf-8?Q?s?= message of "Mon, 19 Jul 2010 00:31:24 +0200") User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/23.2 (gnu/linux) X-Pobox-Relay-ID: E3AF661A-9368-11DF-935A-9056EE7EF46B-02397024!a-pb-sasl-quonix.pobox.com X-detected-operating-system: by eggs.gnu.org: Solaris 10 (beta) X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:10694 Archived-At: Greets, On Mon 19 Jul 2010 00:31, ludo@gnu.org (Ludovic Court=C3=A8s) writes: > Andy Wingo writes: > >> On Fri 16 Jul 2010 10:07, ludo@gnu.org (Ludovic Court=C3=A8s) writes: >> >>> commit 535fb833b34dfc3cc11a679d39390b06fd7e9180 >>> Author: Andy Wingo >>> Date: Fri Jun 5 10:51:21 2009 +0200 >>> >>> stamp .go with timestamp of .scm; a fresh go has same mtime of .s= cm >>> >>> * libguile/load.c (compiled_is_fresh): Rename from compiled_is_ne= wer. >>> Check that the mtines of the .go and .scm match exactly, so we = don't >>> get fooled by rsync-like modifications of the filesystem. >>> >>> When packaging things =E2=80=9Cnormally=E2=80=9D, the .go has an mtime = strictly greater >>> than that of the source file, so checking for equality doesn=E2=80=99t = work. >> >> But when reinstalling code from a binary packaging system, sometimes the >> mtime can go backwards. > > Please forgive my ignorance, but can you give an example of how this can > happen? Well there are two cases really: * RPM or Deb systems typically timestamp their files based on the times they were built, not installed, and we don't have guarantees that upgrading a package won't actually move the mtime into the past. * When installing source code (via _SOURCES / _DATA), you don't have any guarantees about the relations between the times of the SOURCE and DATA files, *as installed*. I think, anyway. > Besides, what do you think packages that install scm and go files should > do? Preserve the timestamps as built, as Guile does. > A package of mine basically lists .go=E2=80=99s in =E2=80=98nodist_foobar= _DATA=E2=80=99 and > .scm=E2=80=99s in =E2=80=98foobar_SOURCES=E2=80=99 (or similar). Having = to change the mtime of > .go=E2=80=99s in =E2=80=98install-hook=E2=80=99 seems inconvenient and fr= agile to me. I agree, FWIW. I don't know of a better option right now, though. We should look to see what PLT/Racket does, as our current system has a number of other disadvantages -- if a macro used by a module changes, the module should be recompiled. Same goes for procedures called by a macro used by a module, etc. They do it by linking to openssl (gross) and doing SHA sums of various files, AFAIK, but I don't know all the details. Andy --=20 http://wingolog.org/