2009/10/8 Tobias C. Rittweiler <tcr@...>:
> Faré <fahree@...> writes:
>> How exactly does the time tag help you? Are you just comparing for equality?
>> And what do you do in case of inequality? Could you do with the sxhash
>> of (cons source optimization-settings) instead?
> It compares with the file-write-date of a buffer's file.
What if I were using a side-channel to give you the tthsum of the fasl
loaded and of the lisp file that was used to compile said fasl? You
could instead check whether the package and variable
xcvb-master:*loaded-grains* exists, then extract from that variable
the tthsum of the source code used. I could add whichever API you like
in xcvb-master so that you don't have to maintain details you're not
interested in (such as tthsum, etc.).
The issue I'm trying to solve here is that I'd like to give as much
chance as possible for innocuous source modifications (whitespace,
comments, lexical name change and other trivial refactorings, removal
of an unneeded dependency, etc.) to lead to identical fasls, which
will help detect that indeed those changes were semantics-preserving,
and allow to avoid triggering a long chain of recompilations, or prune
the unneeded dependencies, etc.
This would be utterly defeated by any requirement to store date, exact
source text, overly precise locations, etc., in the fasl itself --
though the same information could be stored in a different file, or
otherwise provided to you.
So I'd like for SBCL to provide a reliable way to either
* disable saving of pathnames and dates in the FASL, or
* store them in a side-file instead, or
* strip a fasl from its debug info so the code can be compared.
[ François-René ÐVB Rideau | Reflection&Cybernethics | http://fare.tunes.org ]
To do evil a human being must first of all believe that
what he's doing is good. -- Alexander Solzhenitsyn