Skip to content
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

Separation of the environment between recording phase and analyzing phase #17

Open
kimikage opened this issue Apr 13, 2024 · 5 comments

Comments

@kimikage
Copy link

kimikage commented Apr 13, 2024

Because SnoopCompile depends on many packages, this action cannot be used to inspect basic packages on which SnoopCompile itself (indirectly) depends.
As a specific example, the problem is happening with FixedPointNumbers (JuliaMath/FixedPointNumbers.jl#283 (comment)).

In other words, most packages related to graphics cannot be checked with the latest "development" branches.
This specific problem may be mitigated by mimicking the FixedPointNumbers version from "0.9.0-dev" to "0.8"
(Edit: cf. JuliaMath/FixedPointNumbers.jl#287), but it is not a fundamental solution.

I do not understand how portable or exchangeable the invalidation trees are in its current state, but they should be portable.

@IanButterworth
Copy link
Member

We could move the installation of SnoopCompile to after the invalidations have been collected by SnoopCompileCore, and install it into a temp env.

There's a chance that loaded versions of packages would be incompatible though, but it should work around the issue you raise.

@kimikage
Copy link
Author

This is more of a SnoopCompile issue than this action, but does the collected MethodInstances really have to be "live" in the world of analysis phase?
Of course, I can foresee a great deal of complication there, though.

@kimikage
Copy link
Author

kimikage commented Apr 14, 2024

To return to the topic, I believe that it would be sufficient to provide the ability to separate the phases with respect to this action.
It would be the responsibility of the caller of this action to make sure it works well.

Edit: Of course, I believe that the analysis phase can and should be separated from the visualization phase. In fact, SnoopCompile does not depend on PrettyTables.

@kimikage kimikage changed the title Separation of the environment between recording phase and analysing phase Separation of the environment between recording phase and analyzing phase Apr 14, 2024
@kimikage
Copy link
Author

kimikage commented Apr 14, 2024

I may have misunderstood the purpose of this action in the first place.
Is this action by any chance to see what invalidation occurs for a "standard" benchmark environment with Colors.jl etc.?
If so, it is important to note that reducing dependencies may deprive the users of the opportunity to become aware of their invalidations.
In any case, it would be nice if the default behavior could be similar to the current.

@timholy
Copy link
Member

timholy commented Jul 2, 2024

This seems generically resolvable by always doing the data collection with just SnoopCompileCore. Cases like FixedPointNumbers are what motivated the split in the first place.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants