samth
2018-12-15 17:49:59

samth
2018-12-15 17:50:39

that includes traces for both in-a-linklet and not on latest pycket, plus a trace for just the first loop prior to starting the linklet branch


samth
2018-12-15 17:50:47

you can see a few things:


samth
2018-12-15 17:51:20
  1. the loop after the peeled iteration (the third loop for all three) has a guard_nonnull in the linklet code but not in the others

samth
2018-12-15 17:52:11
  1. the peeled iteration (the second loop) has a bunch of checks for the current linklet instance, even in the code that doesn’t use linklets at all, which wasn’t there before the linklet branch

samth
2018-12-15 17:52:48

Also note that these are all lexical variables (except < and -) and so shouldn’t be doing anything with the current linklet instance


cadr
2018-12-15 18:10:52

@samth That kind of makes sense to me (your second observation), because right now each environment cell (like ConsEnv) and closures have the extra current_linklet_instance field, but if I’m not mistaken the only thing that currently depends on it is variable-references, which I’m not sure if it’s absolutely necessary, and I’m pretty sure that the linklet variables doesn’t need the current instance to be in every env cell, or closures etc, since they always get it from the toplevelenv (which is freshly created for each instantiation)


cadr
2018-12-15 18:11:27

I’m going to work on these performance issues on traces once I’m done with making this branch fully work and merge


samth
2018-12-15 18:11:58

also the technqiue I described is very useful for getting traces quickly


cadr
2018-12-15 18:12:54

Absolutely, thank you for that, I’m sure it’ll be super helpful


github2-x
2018-12-16 04:39:10