New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
liveness-based slicing should detect version of live symbols at the time the cell was run #54
Comments
Yeah my test case also has this issue, I realize |
Suggested way to go about doing this: in This is a good place to record, for each live symbol, the symbol's timestamp / def _precheck_for_stale(self, cell: str) -> bool:
...
...
...
# TODO: For each of the live symbols, record their `defined_cell_num` at the
# time of liveness, i.e. at the time `self.cell_counter()`, for use with the
# dynamic slicer.
###########
# CODE HERE
###########
self._last_refused_code = None
return False From here, we can use the same strategy for live references as we use for dynamic usages; i.e., in
|
One other issue we may want to address is that sometimes the dynamic dependency set for cell
In PR #60, calling |
I think I went in and fixed this for dynamic dependencies already -- I think this is happening because we're still running the liveness checker in |
Example failure:
The slice for reconstructing cell 4 should use all of cells 1, 2, 3, and 4, but the current slicer will leave out cell 1, since it will detect the more recent version of
x
used in cell 3 during liveness checking and therefore leave out the definition in cell 1.The text was updated successfully, but these errors were encountered: