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

Add registry indexer #202

Merged
merged 26 commits into from
Jan 18, 2021
Merged

Add registry indexer #202

merged 26 commits into from
Jan 18, 2021

Conversation

davidanthoff
Copy link
Member

@davidanthoff davidanthoff commented Jan 13, 2021

Very WIP. Some things that still need to be done:

  • Only index and save one package per call to the main script
  • Fall back to older Julia versions if there is an error (deferred)
  • Record failed trials so that we can skip things
  • Skip things that are already cached
  • Come up with a file structure for the cached results
  • Figure out how to handle stdlib and base (deferred)
  • Don't write separate cache versions for different Julia versions
  • Compress things

@davidanthoff davidanthoff added the enhancement New feature or request label Jan 13, 2021
@davidanthoff davidanthoff added this to the Backlog milestone Jan 13, 2021
@ZacLN
Copy link
Contributor

ZacLN commented Jan 17, 2021

I'm not sure of the benefits of changing how we store the caches for Base/Core at the moment outweigh the costs (i.e. within the SymbolServer module, cached as part of the compilation process). Loading from disc would be slower. Arguments for doing this would include running type inference on all methods which is almost certianly too time consuming to be the default option for most users.

I can see the possibility in the future of wanting to use SymbolServer loaded in a vXX Julia process as part of an environment representing Julia vYY, but we're not there yet.

We also have the option of caching the stdlibs alongside Base/Core in the SymbolServer module.


# Get the symbols
env = getenvtree([current_package_name])
symbols(env, m)
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

when #203 is merged to master (and the commit pulled across to here) this should be changed to symbols(env, m, get_return_type = true)

@davidanthoff
Copy link
Member Author

I'm not sure of the benefits of changing how we store the caches for Base/Core at the moment outweigh the costs (i.e. within the SymbolServer module, cached as part of the compilation process). Loading from disc would be slower. Arguments for doing this would include running type inference on all methods which is almost certianly too time consuming to be the default option for most users.

Ah, great, so we can skip that for now!

I can see the possibility in the future of wanting to use SymbolServer loaded in a vXX Julia process as part of an environment representing Julia vYY, but we're not there yet.

Agreed.

We also have the option of caching the stdlibs alongside Base/Core in the SymbolServer module.

The downside of that is probably that during precompile we would now precompile all the stdlibs, right? But maybe the best strategy for now to just get all of this out, right?

@davidanthoff davidanthoff marked this pull request as ready for review January 18, 2021 01:50
@davidanthoff
Copy link
Member Author

I'm going to merge this as is, given that it can't break anything. And then we can iterate with more improvements in future PRs.

@davidanthoff davidanthoff merged commit c3eff18 into master Jan 18, 2021
@davidanthoff davidanthoff deleted the registryindexer branch January 18, 2021 01:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants