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

[v16.x backport] src: disambiguate terms used to refer to builtins and addons #45663

Closed

Commits on Nov 28, 2022

  1. src: disambiguate terms used to refer to builtins and addons

    The term "native module" dates back to some of the oldest code
    in the code base. Within the context of Node.js core it usually
    refers to modules that are native to Node.js (e.g. fs, http),
    but it can cause confusion for people who don't work on this
    part of the code base, as "native module" can also refer to
    native addons - which is even the case in some of the API
    docs and error messages.
    
    This patch tries to make the usage of these terms more consistent.
    Now within the context of Node.js core:
    
    - JavaScript scripts that are built-in to Node.js are now referred
      to as "built-in(s)". If they are available as modules,
      they can also be referred to as "built-in module(s)".
    - Dynamically-linked shared objects that are loaded into
      the Node.js processes are referred to as "addons".
    
    We will try to avoid using the term "native modules" because it could
    be ambiguous.
    
    Changes in this patch:
    
    File names:
    - node_native_module.h -> node_builtins.h,
    - node_native_module.cc -> node_builtins.cc
    
    C++ binding names:
    - `native_module` -> `builtins`
    
    `node::Environment`:
    - `native_modules_without_cache` -> `builtins_without_cache`
    - `native_modules_with_cache` -> `builtins_with_cache`
    - `native_modules_in_snapshot` -> `builtins_in_cache`
    - `native_module_require` -> `builtin_module_require`
    
    `node::EnvSerializeInfo`:
    - `native_modules` -> `builtins
    
    `node::native_module::NativeModuleLoader`:
    - `native_module` namespace -> `builtins` namespace
    - `NativeModuleLoader` -> `BuiltinLoader`
    - `NativeModuleRecordMap` -> `BuiltinSourceMap`
    - `NativeModuleCacheMap` -> `BuiltinCodeCacheMap`
    - `ModuleIds` -> `BuiltinIds`
    - `ModuleCategories` -> `BuiltinCategories`
    - `LoadBuiltinModuleSource` -> `LoadBuiltinSource`
    
    `loader.js`:
    - `NativeModule` -> `BuiltinModule` (the `NativeModule` name used in
      `process.moduleLoadList` is kept for compatibility)
    
    And other clarifications in the documentation and comments.
    
    PR-URL: nodejs#44135
    Fixes: nodejs#44036
    Reviewed-By: Jacob Smith <jacob@frende.me>
    Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
    Reviewed-By: Michael Dawson <midawson@redhat.com>
    Reviewed-By: Richard Lau <rlau@redhat.com>
    Reviewed-By: Jiawen Geng <technicalcute@gmail.com>
    Reviewed-By: Chengzhong Wu <legendecas@gmail.com>
    Reviewed-By: Mohammed Keyvanzadeh <mohammadkeyvanzade94@gmail.com>
    Reviewed-By: Tobias Nießen <tniessen@tnie.de>
    Reviewed-By: Jan Krems <jan.krems@gmail.com>
    joyeecheung authored and mhdawson committed Nov 28, 2022
    Configuration menu
    Copy the full SHA
    bd8e25b View commit details
    Browse the repository at this point in the history