Allow caching to be disabled for individual metafunctions. #449

Closed
wants to merge 1 commit into
from

Conversation

Projects
None yet
3 participants
Contributor

jrslepak commented Oct 1, 2013

A metafunction with the #:cache-poison keyword will not have its results
cached. Other metafunction results which depend on an uncached
metafunction are also not cached. Some of the parsing logic in
split-out-contract is changed to allow the keyword to be checked more
easily. The metafunction structure has an additional boolean field
indicating whether its results should be cached.

Allow caching to be disabled for individual metafunctions.
A metafunction with the #:cache-poison keyword will not have its results
cached. Other metafunction results which depend on an uncached
metafunction are also not cached. Some of the parsing logic in
split-out-contract is changed to allow the keyword to be checked more
easily. The metafunction structure has an additional boolean field
indicating whether its results should be cached.
Owner

rfindler commented Oct 2, 2013

I'm sorry: I'd meant to take a careful look at this today but I didn't have
time. The first few questions I have tho, are:

  • Can you please add some more documentation on what cache-poison does?
    (An English explanation is the minimum, but you could also add a little
    discussion of why it is useful and an example if you were so inclined.)
  • Have you tested to see if there are any performance issues with this?
    Not that I expect there to be, but how does, say, five metafunctions that
    call each other (in a loop) with cache-poisioning compare to the current
    git version of Redex where metafunction caching is just disabled upfront
    for all metafunctions?

Thanks!

Robby

On Tue, Oct 1, 2013 at 11:40 AM, Justin Slepak notifications@github.comwrote:

A metafunction with the #:cache-poison keyword will not have its results
cached. Other metafunction results which depend on an uncached
metafunction are also not cached. Some of the parsing logic in
split-out-contract is changed to allow the keyword to be checked more
easily. The metafunction structure has an additional boolean field

indicating whether its results should be cached.

You can merge this Pull Request by running

git pull https://github.com/jrslepak/racket master

Or view, comment on, or merge it at:

plt#449
Commit Summary

  • Allow caching to be disabled for individual metafunctions.

File Changes

  • M pkgs/redex-pkgs/redex-doc/redex/scribblings/ref.scrblhttps://github.com/plt/racket/pull/449/files#diff-0(5)
  • M pkgs/redex-pkgs/redex-lib/redex/private/judgment-form.rkthttps://github.com/plt/racket/pull/449/files#diff-1(99)
  • M pkgs/redex-pkgs/redex-lib/redex/private/reduction-semantics.rkthttps://github.com/plt/racket/pull/449/files#diff-2(26)
  • M pkgs/redex-pkgs/redex-lib/redex/private/term-fn.rkthttps://github.com/plt/racket/pull/449/files#diff-3(4)
  • M pkgs/redex-pkgs/redex-lib/redex/private/term.rkthttps://github.com/plt/racket/pull/449/files#diff-4(33)
  • A pkgs/redex-pkgs/redex-test/redex/tests/cache-poisoning-test.rkthttps://github.com/plt/racket/pull/449/files#diff-5(50)
  • M pkgs/redex-pkgs/redex-test/redex/tests/run-tests.rkthttps://github.com/plt/racket/pull/449/files#diff-6(3)

Patch Links:

Owner

samth commented Mar 31, 2014

@jrslepak ping

@jrslepak jrslepak closed this May 7, 2014

Contributor

jrslepak commented May 7, 2014

Redone as #639

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment