Skip to content

Commit

Permalink
refactor: split compiler hook registers into multiple files (#9061)
Browse files Browse the repository at this point in the history
* refactor: split large blob of compiler hook registers into multiple files

* refactor: split large blob of compiler hook registers into multiple files

* refactor: split large blob of compiler hook registers into multiple files

* refactor: split large blob of compiler hook registers into multiple files
  • Loading branch information
LingyuCoder authored Jan 21, 2025
1 parent 1504e84 commit 162b4cc
Show file tree
Hide file tree
Showing 19 changed files with 1,327 additions and 1,093 deletions.
4 changes: 2 additions & 2 deletions crates/node_binding/binding.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2133,8 +2133,8 @@ export interface RegisterJsTaps {
registerCompilationStillValidModuleTaps: (stages: Array<number>) => Array<{ function: ((arg: JsModule) => void); stage: number; }>
registerCompilationSucceedModuleTaps: (stages: Array<number>) => Array<{ function: ((arg: JsModule) => void); stage: number; }>
registerCompilationExecuteModuleTaps: (stages: Array<number>) => Array<{ function: ((arg: JsExecuteModuleArg) => void); stage: number; }>
registerCompilationAdditionalTreeRuntimeRequirements: (stages: Array<number>) => Array<{ function: ((arg: JsAdditionalTreeRuntimeRequirementsArg) => JsAdditionalTreeRuntimeRequirementsResult | undefined); stage: number; }>
registerCompilationRuntimeRequirementInTree: (stages: Array<number>) => Array<{ function: ((arg: JsRuntimeRequirementInTreeArg) => JsRuntimeRequirementInTreeResult | undefined); stage: number; }>
registerCompilationAdditionalTreeRuntimeRequirementsTaps: (stages: Array<number>) => Array<{ function: ((arg: JsAdditionalTreeRuntimeRequirementsArg) => JsAdditionalTreeRuntimeRequirementsResult | undefined); stage: number; }>
registerCompilationRuntimeRequirementInTreeTaps: (stages: Array<number>) => Array<{ function: ((arg: JsRuntimeRequirementInTreeArg) => JsRuntimeRequirementInTreeResult | undefined); stage: number; }>
registerCompilationRuntimeModuleTaps: (stages: Array<number>) => Array<{ function: ((arg: JsRuntimeModuleArg) => JsRuntimeModule | undefined); stage: number; }>
registerCompilationFinishModulesTaps: (stages: Array<number>) => Array<{ function: ((arg: JsCompilation) => Promise<void>); stage: number; }>
registerCompilationOptimizeModulesTaps: (stages: Array<number>) => Array<{ function: (() => boolean | undefined); stage: number; }>
Expand Down
4 changes: 2 additions & 2 deletions crates/node_binding/src/plugins/interceptor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -456,14 +456,14 @@ pub struct RegisterJsTaps {
#[napi(
ts_type = "(stages: Array<number>) => Array<{ function: ((arg: JsAdditionalTreeRuntimeRequirementsArg) => JsAdditionalTreeRuntimeRequirementsResult | undefined); stage: number; }>"
)]
pub register_compilation_additional_tree_runtime_requirements: RegisterFunction<
pub register_compilation_additional_tree_runtime_requirements_taps: RegisterFunction<
JsAdditionalTreeRuntimeRequirementsArg,
Option<JsAdditionalTreeRuntimeRequirementsResult>,
>,
#[napi(
ts_type = "(stages: Array<number>) => Array<{ function: ((arg: JsRuntimeRequirementInTreeArg) => JsRuntimeRequirementInTreeResult | undefined); stage: number; }>"
)]
pub register_compilation_runtime_requirement_in_tree:
pub register_compilation_runtime_requirement_in_tree_taps:
RegisterFunction<JsRuntimeRequirementInTreeArg, Option<JsRuntimeRequirementInTreeResult>>,

#[napi(
Expand Down
21 changes: 11 additions & 10 deletions crates/node_binding/src/plugins/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -38,9 +38,10 @@ pub struct JsHooksAdapterPlugin {
register_compilation_after_optimize_modules_taps: RegisterCompilationAfterOptimizeModulesTaps,
register_compilation_optimize_tree_taps: RegisterCompilationOptimizeTreeTaps,
register_compilation_optimize_chunk_modules_taps: RegisterCompilationOptimizeChunkModulesTaps,
register_compilation_additional_tree_runtime_requirements:
register_compilation_additional_tree_runtime_requirements_taps:
RegisterCompilationAdditionalTreeRuntimeRequirementsTaps,
register_compilation_runtime_requirement_in_tree: RegisterCompilationRuntimeRequirementInTreeTaps,
register_compilation_runtime_requirement_in_tree_taps:
RegisterCompilationRuntimeRequirementInTreeTaps,
register_compilation_runtime_module_taps: RegisterCompilationRuntimeModuleTaps,
register_compilation_chunk_hash_taps: RegisterCompilationChunkHashTaps,
register_compilation_chunk_asset_taps: RegisterCompilationChunkAssetTaps,
Expand Down Expand Up @@ -185,7 +186,7 @@ impl rspack_core::Plugin for JsHooksAdapterPlugin {
.additional_tree_runtime_requirements
.intercept(
self
.register_compilation_additional_tree_runtime_requirements
.register_compilation_additional_tree_runtime_requirements_taps
.clone(),
);
ctx
Expand All @@ -194,7 +195,7 @@ impl rspack_core::Plugin for JsHooksAdapterPlugin {
.runtime_requirement_in_tree
.intercept(
self
.register_compilation_runtime_requirement_in_tree
.register_compilation_runtime_requirement_in_tree_taps
.clone(),
);
ctx
Expand Down Expand Up @@ -340,10 +341,10 @@ impl rspack_core::Plugin for JsHooksAdapterPlugin {
.register_compilation_optimize_chunk_modules_taps
.clear_cache();
self
.register_compilation_additional_tree_runtime_requirements
.register_compilation_additional_tree_runtime_requirements_taps
.clear_cache();
self
.register_compilation_runtime_requirement_in_tree
.register_compilation_runtime_requirement_in_tree_taps
.clear_cache();
self.register_compilation_runtime_module_taps.clear_cache();
self.register_compilation_chunk_hash_taps.clear_cache();
Expand Down Expand Up @@ -522,14 +523,14 @@ impl JsHooksAdapterPlugin {
register_js_taps.register_compilation_optimize_chunk_modules_taps,
non_skippable_registers.clone(),
),
register_compilation_additional_tree_runtime_requirements:
register_compilation_additional_tree_runtime_requirements_taps:
RegisterCompilationAdditionalTreeRuntimeRequirementsTaps::new(
register_js_taps.register_compilation_additional_tree_runtime_requirements,
register_js_taps.register_compilation_additional_tree_runtime_requirements_taps,
non_skippable_registers.clone(),
),
register_compilation_runtime_requirement_in_tree:
register_compilation_runtime_requirement_in_tree_taps:
RegisterCompilationRuntimeRequirementInTreeTaps::new(
register_js_taps.register_compilation_runtime_requirement_in_tree,
register_js_taps.register_compilation_runtime_requirement_in_tree_taps,
non_skippable_registers.clone(),
),
register_compilation_runtime_module_taps: RegisterCompilationRuntimeModuleTaps::new(
Expand Down
3 changes: 3 additions & 0 deletions packages/rspack-tracing/index.d.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
export function initOpenTelemetry(): Promise<void>;
export function shutdownOpenTelemetry(): Promise<void>;
export { trace, propagation, context } from "@opentelemetry/api";
24 changes: 16 additions & 8 deletions packages/rspack/etc/core.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,13 +26,13 @@ import { HookMap } from '@rspack/lite-tapable';
import type { IncomingMessage } from 'node:http';
import { inspect } from 'node:util';
import type { JsAddingRuntimeModule } from '@rspack/binding';
import { JsAfterEmitData } from '@rspack/binding';
import { JsAfterTemplateExecutionData } from '@rspack/binding';
import { JsAlterAssetTagGroupsData } from '@rspack/binding';
import { JsAlterAssetTagsData } from '@rspack/binding';
import type { JsAfterEmitData } from '@rspack/binding';
import type { JsAfterTemplateExecutionData } from '@rspack/binding';
import type { JsAlterAssetTagGroupsData } from '@rspack/binding';
import type { JsAlterAssetTagsData } from '@rspack/binding';
import type { JsAssetInfo } from '@rspack/binding';
import { JsBeforeAssetTagGenerationData } from '@rspack/binding';
import { JsBeforeEmitData } from '@rspack/binding';
import type { JsBeforeAssetTagGenerationData } from '@rspack/binding';
import type { JsBeforeEmitData } from '@rspack/binding';
import type { JsBuildMeta } from '@rspack/binding';
import { JsChunk } from '@rspack/binding';
import type { JsChunkGraph } from '@rspack/binding';
Expand Down Expand Up @@ -831,11 +831,19 @@ export class Compiler {
constructor(context: string, options: RspackOptionsNormalized);
// @internal
get __internal__builtinPlugins(): binding.BuiltinPlugin[];
// (undocumented)
// @internal
__internal__create_compilation(native: binding.JsCompilation): Compilation;
// @internal
__internal__get_compilation(): Compilation | undefined;
// @internal
__internal__get_compilation_params(): CompilationParams | undefined;
// @internal
__internal__get_module_execution_results_map(): Map<number, any>;
// @internal
__internal__getModuleExecutionResult(id: number): any;
// @internal
__internal__rebuild(modifiedFiles?: ReadonlySet<string>, removedFiles?: ReadonlySet<string>, callback?: (error: Error | null) => void): void;
// (undocumented)
// @internal
__internal__registerBuiltinPlugin(plugin: binding.BuiltinPlugin): void;
// @internal
get __internal__ruleSet(): RuleSetCompiler;
Expand Down
Loading

2 comments on commit 162b4cc

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented on 162b4cc Jan 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Ecosystem CI detail: Open

suite result
modernjs ❌ failure
rspress ✅ success
rslib ❌ failure
rsbuild ✅ success
rsdoctor ✅ success
examples ✅ success
devserver ✅ success
nuxt ✅ success

@github-actions
Copy link
Contributor

@github-actions github-actions bot commented on 162b4cc Jan 21, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

📝 Benchmark detail: Open

Name Base (2025-01-21 c06787b) Current Change
10000_big_production-mode_disable-minimize + exec 36.7 s ± 515 ms 37.9 s ± 714 ms +3.25 %
10000_development-mode + exec 1.86 s ± 52 ms 1.86 s ± 196 ms -0.09 %
10000_development-mode_hmr + exec 681 ms ± 9.8 ms 683 ms ± 8.6 ms +0.32 %
10000_production-mode + exec 2.45 s ± 138 ms 2.39 s ± 57 ms -2.34 %
10000_production-mode_persistent-cold + exec 2.61 s ± 155 ms 2.53 s ± 51 ms -2.99 %
10000_production-mode_persistent-hot + exec 1.77 s ± 116 ms 1.78 s ± 67 ms +0.47 %
arco-pro_development-mode + exec 1.76 s ± 98 ms 1.81 s ± 96 ms +2.80 %
arco-pro_development-mode_hmr + exec 388 ms ± 2.3 ms 388 ms ± 5.2 ms +0.08 %
arco-pro_production-mode + exec 3.64 s ± 257 ms 3.6 s ± 233 ms -0.93 %
arco-pro_production-mode_generate-package-json-webpack-plugin + exec 3.75 s ± 314 ms 3.72 s ± 290 ms -0.96 %
arco-pro_production-mode_persistent-cold + exec 3.8 s ± 165 ms 3.82 s ± 96 ms +0.53 %
arco-pro_production-mode_persistent-hot + exec 2.34 s ± 79 ms 2.45 s ± 182 ms +4.95 %
arco-pro_production-mode_traverse-chunk-modules + exec 3.67 s ± 99 ms 3.67 s ± 71 ms +0.20 %
large-dyn-imports_development-mode + exec 2.11 s ± 29 ms 2.14 s ± 32 ms +1.51 %
large-dyn-imports_production-mode + exec 2.16 s ± 40 ms 2.15 s ± 29 ms -0.54 %
threejs_development-mode_10x + exec 1.53 s ± 22 ms 1.53 s ± 31 ms +0.33 %
threejs_development-mode_10x_hmr + exec 788 ms ± 39 ms 790 ms ± 21 ms +0.21 %
threejs_production-mode_10x + exec 5.25 s ± 61 ms 5.27 s ± 149 ms +0.47 %
threejs_production-mode_10x_persistent-cold + exec 5.35 s ± 65 ms 5.5 s ± 166 ms +2.93 %
threejs_production-mode_10x_persistent-hot + exec 4.5 s ± 44 ms 4.54 s ± 107 ms +0.89 %
10000_big_production-mode_disable-minimize + rss memory 8680 MiB ± 34.2 MiB 8688 MiB ± 62.9 MiB +0.09 %
10000_development-mode + rss memory 656 MiB ± 19.6 MiB 651 MiB ± 37.1 MiB -0.66 %
10000_development-mode_hmr + rss memory 1264 MiB ± 163 MiB 1298 MiB ± 192 MiB +2.69 %
10000_production-mode + rss memory 639 MiB ± 31 MiB 635 MiB ± 15.2 MiB -0.67 %
10000_production-mode_persistent-cold + rss memory 744 MiB ± 15.6 MiB 747 MiB ± 26.4 MiB +0.37 %
10000_production-mode_persistent-hot + rss memory 723 MiB ± 37.7 MiB 722 MiB ± 12.7 MiB -0.17 %
arco-pro_development-mode + rss memory 553 MiB ± 38.1 MiB 564 MiB ± 12.4 MiB +1.95 %
arco-pro_development-mode_hmr + rss memory 631 MiB ± 36 MiB 642 MiB ± 83.2 MiB +1.76 %
arco-pro_production-mode + rss memory 738 MiB ± 66.3 MiB 704 MiB ± 29.7 MiB -4.59 %
arco-pro_production-mode_generate-package-json-webpack-plugin + rss memory 730 MiB ± 23.1 MiB 729 MiB ± 24.7 MiB -0.11 %
arco-pro_production-mode_persistent-cold + rss memory 844 MiB ± 36.6 MiB 838 MiB ± 18.7 MiB -0.69 %
arco-pro_production-mode_persistent-hot + rss memory 695 MiB ± 19.9 MiB 680 MiB ± 27.5 MiB -2.18 %
arco-pro_production-mode_traverse-chunk-modules + rss memory 727 MiB ± 32.5 MiB 719 MiB ± 28 MiB -1.12 %
large-dyn-imports_development-mode + rss memory 642 MiB ± 4.5 MiB 638 MiB ± 4.78 MiB -0.68 %
large-dyn-imports_production-mode + rss memory 523 MiB ± 4.79 MiB 521 MiB ± 4.67 MiB -0.49 %
threejs_development-mode_10x + rss memory 551 MiB ± 32.9 MiB 536 MiB ± 38.4 MiB -2.73 %
threejs_development-mode_10x_hmr + rss memory 1145 MiB ± 125 MiB 1106 MiB ± 178 MiB -3.43 %
threejs_production-mode_10x + rss memory 865 MiB ± 36.9 MiB 875 MiB ± 36.4 MiB +1.15 %
threejs_production-mode_10x_persistent-cold + rss memory 968 MiB ± 136 MiB 913 MiB ± 132 MiB -5.69 %
threejs_production-mode_10x_persistent-hot + rss memory 870 MiB ± 25.8 MiB 867 MiB ± 52.6 MiB -0.39 %

Please sign in to comment.