Skip to content

[v16.x backport] 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: https://github.com/nodejs/node/pull/44135 Fixes: https://github.com/nodejs/node/issues/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

Merge request reports

Loading