Issue #18055 has been updated by matz (Yukihiro Matsumoto).


Can you explain how `introduce` solves the issue? How it is better than `require` and `autoload`?

Matz.


----------------------------------------
Feature #18055: Introduce
https://bugs.ruby-lang.org/issues/18055#change-93062

* Author: shalokshalom (Matthias Schuster)
* Status: Open
* Priority: Normal
----------------------------------------
Currently, ``autoload`` provides the ability to load libraries on the fly, also called lazy loading, in order to avoid huge startup times.

This has some disadvantages, who already lead nearly to its [discontinuation](https://bugs.ruby-lang.org/issues/5653)

I suggest a proposal, that solves both these issues.

``introduce``

I imagine this keyword, respectively method behaves like ```require``` at the top of the file and does act like ```autoload``` within a definition.

We can also introduce exceptions for cases like the above linked threads.

Its also a nice guideline, and easy to remember.

*Summary*: ``introduce`` can always behave predictable, optimal, and even work fine without the programmer knowing about its implementation. 


Similar issues: 
 - https://bugs.ruby-lang.org/issues/15592



-- 
https://bugs.ruby-lang.org/

Unsubscribe: <mailto:ruby-core-request / ruby-lang.org?subject=unsubscribe>
<http://lists.ruby-lang.org/cgi-bin/mailman/options/ruby-core>