Fork me on GitHub
#clojure-dev
<
2018-09-09
>
gfredericks00:09:40

oh the cache is at the protocol level? I imagined it was at the call site

gfredericks00:09:59

in which case you'd have to work just slightly harder to force the leak

gfredericks00:09:12

but yeah okay that's cool

alexmiller00:09:44

That bug is specifically in eval though so it’s a little subtle

ghadi02:09:17

that bug ain't in eval - it's the lack of a bound unconditional retention within the inline cache

ghadi02:09:46

eval exacerbates it by making novel class entries

gfredericks12:09:48

would pay to see a superhero movie called Eval the Exacerbater

andy.fingerhut04:09:00

So would it be at least semi-accurate to say that the places where Var re-assignment works in tools.trace are probably the same places where it works with spec's instrument, and they both fail in the same kinds of calls, too, which I think are "protocol method calls that do not go through a Var, and direct linked calls"?

alexmiller12:09:14

Yes, same technique. Also inlined calls. And primitive type hinted functions (not sure if those have same issues in tools.trace).