From mboxrd@z Thu Jan 1 00:00:00 1970 From: "Sebastien Vauban" Subject: Re: [Babel] [Bug] Cache Date: Fri, 06 Dec 2013 21:04:48 +0100 Message-ID: <86txeln3tr.fsf@somewhere.org> References: <86fvqqc8jb.fsf@somewhere.org> <87d2lsihdr.fsf@gmail.com> <86k3fnw905.fsf@somewhere.org> <87d2l96b2y.fsf@gmail.com> <87k3fhkb1c.fsf@Rainer.invalid> Mime-Version: 1.0 Content-Type: text/plain Return-path: List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org-mXXj517/zsQ@public.gmane.org To: emacs-orgmode-mXXj517/zsQ@public.gmane.org Achim Gratz wrote: > Eric Schulte writes: >> In that thread we agreed that the expansion of no-web references >> *should* be included in code blocks for hashing, but no-one has had the >> time to implement this. > > I think we may have discussed this before, but if you make the hashes > dependent on the possibly recursive noweb expansions this would require > that all expansions be re-computed all the time I did not think at recursive Noweb expansions. But, yes, that problem could come up as well. > or you would need to discern which of the expansions are "pure" (i.e. depend > only on their arguments, functional-style), which have session semantics and > which of the ones that have session semantics should possibly not be > re-evaluated. I'm not sure that opening this can of worms is worth the > trouble. Maybe a solution to avoid recomputing too much things (in number, and in taken time to do that) would be to only compute the hash for "static" expansions -- the ones without parameters, where it's simply a copy/paste of text in multiple spots. If even that is not done/doable, then some error should be triggered when one uses both the "cache" and the "noweb" header arguments. Because, in the current situation, we think that the graphs (or, in a general way, the results) are up-to-date while it's wrong -- you've changed some piece of code somewhere, and the cached results are still used. Best regards, Seb -- Sebastien Vauban