Skip to content

Conversation

Prajjwal
Copy link

@Prajjwal Prajjwal commented Nov 20, 2020

Use Module#autoload to lazily load components.

Fixes #880 . Including parts of the gem independently is officially unsupported, and this should eliminate the need for doing that.

Will fix: #873 , hopefully by merging concurrent-ruby and concurrent-ruby-edge. Bundling extra features as edge is not required if dependencies are autoloaded.

Should also fix issues with circular dependencies, notably Concurrent::Options.

TODO:

  • Autoload top level constants.
  • Remove explicit requires in child components, components should use stuff autoloaded in the parent module.
  • Test: Module methods and constants at boot line up exactly with previous versions of the library.
  • Test & Benchmark in various ruby implementations.

@chrisseaton
Copy link
Member

Do you still want to do this? Do you need any support?

Please rebase the branch.

@chrisseaton
Copy link
Member

I'm closing this PR. Please feel free to come back to us in the future if you want to discuss again - we're very open to it.

@chrisseaton chrisseaton closed this Mar 7, 2022
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

Successfully merging this pull request may close these issues.

Release 1.1.7 introduced failure on require 'concurrent/atomic/ruby_thread_local_var' RubyMine integration fails due to custom gem require path
2 participants