Project

General

Profile

« Previous | Next » 

Revision 37480

Added by shirosaki over 6 years ago

Index $LOADED_FEATURES so that require isn't so slow

  • load.c (rb_feature_p, rb_provide_feature): index $LOADED_FEATURES
    so that require isn't so slow.

  • load.c (rb_provide_feature, get_loaded_features_index): ensure
    that $LOADED_FEATURES entries are frozen strings. The user
    must mutate $LOADED_FEATURES itself rather than its individual
    entries.

  • load.c (reset_loaded_features_snapshot): add a new function to reset
    vm->loaded_features_snapshot.

  • load.c (get_loaded_features_index_raw): add a new function to get
    the loaded-features index.

  • load.c (features_index_add_single): add a new function to add to the
    loaded-features index a single feature.

  • load.c (features_index_add): add a new function to add to the
    loaded-features index all the required entries for feature.

  • vm_core.h (rb_vm_struct): add fields.

  • vm.c (rb_vm_mark): mark new fields.

  • include/ruby/intern.h (rb_hash_clear): declare function.

  • hash.c (rb_hash_clear): make function non-static.
    Patch by Greg Price.
    [ruby-core:47970] [Bug #7158]