pkl / PR 1823

Add a CPU profiler

apple/pkl#1823 openmixed

+1244/−18lines
47files
12comments
2026-08-14opened
-merged

What it touches

main: 37 build: 7 docs: 2 test: 1

Modules: pkl-core (22), pkl-cli (9), pkl-profiler (8), build-logic (2), THIRD-PARTY-NOTICES.txt (1), docs (1)

Architectural impact (arcade-agent diff_impact)

22files mapped to the graph
247entities in those files
Core, Gradlecomponents
2051entities within 3 hops downstream

Most depended-upon changed entities

EntityDependents
org.pkl.core.ast.expression.generator.GeneratorObjectLiteralNode126
org.pkl.core.ast.expression.generator.GeneratorWhenNode126
org.pkl.core.ast.expression.literal.BytesLiteralNode126
org.pkl.core.ast.expression.literal.InterpolatedStringLiteralNode126
org.pkl.core.ast.expression.literal.ListLiteralNode126
org.pkl.core.ast.expression.literal.MapLiteralNode126
org.pkl.core.ast.expression.literal.SetLiteralNode126
org.pkl.core.ast.expression.literal.SpecializedObjectLiteralNode3

Computed against the current default branch, not the PR base commit; files renamed or deleted since then are unmatched. Downstream counts are a reverse-dependency closure to depth 3 and over-approximate real blast radius.

Build & CI relevance

Files

docsTHIRD-PARTY-NOTICES.txt
buildbuild-logic/src/main/kotlin/NativeImageBuild.kt
buildbuild-logic/src/main/kotlin/pklFatJar.gradle.kts
docsdocs/modules/pkl-cli/pages/index.adoc
buildgradle/libs.versions.toml
buildpkl-cli/pkl-cli.gradle.kts
mainpkl-cli/src/main/kotlin/org/pkl/cli/CliCommandRunner.kt
mainpkl-cli/src/main/kotlin/org/pkl/cli/CliEvaluator.kt
mainpkl-cli/src/main/kotlin/org/pkl/cli/CliEvaluatorOptions.kt
mainpkl-cli/src/main/kotlin/org/pkl/cli/CliTestRunner.kt
mainpkl-cli/src/main/kotlin/org/pkl/cli/commands/EvalCommand.kt
mainpkl-cli/src/main/kotlin/org/pkl/cli/commands/RunCommand.kt
mainpkl-cli/src/main/kotlin/org/pkl/cli/commands/TestCommand.kt
testpkl-cli/src/test/kotlin/org/pkl/cli/ProfilerOutputTest.kt
mainpkl-commons-cli/src/main/kotlin/org/pkl/commons/cli/commands/ProfileOptions.kt
mainpkl-core/src/main/java/org/pkl/core/ProfilerOptions.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/generator/GeneratorForNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/generator/GeneratorObjectLiteralNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/generator/GeneratorWhenNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/literal/AmendModuleNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/literal/BytesLiteralNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/literal/ElementsEntriesLiteralNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/literal/EntriesLiteralNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/literal/InterpolatedStringLiteralNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/literal/ListLiteralNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/literal/MapLiteralNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/literal/SetLiteralNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/literal/SpecializedObjectLiteralNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/AbstractInvokeMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InvokeMethodDirectNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/expression/member/InvokeMethodVirtualNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/member/ClassNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/member/TypeAliasNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/member/UnresolvedMethodNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/member/UnresolvedPropertyNode.java
mainpkl-core/src/main/java/org/pkl/core/ast/type/TypeNode.java
mainpkl-core/src/main/java/org/pkl/core/runtime/VmUtils.java
buildpkl-gradle/src/main/java/org/pkl/gradle/task/EvalTask.java
buildpkl-profiler/pkl-profiler.gradle.kts
mainpkl-profiler/src/main/java/org/pkl/profiler/CpuProfilerInstrument.java
mainpkl-profiler/src/main/java/org/pkl/profiler/FlamegraphOutput.java
mainpkl-profiler/src/main/java/org/pkl/profiler/PProfOutput.java
mainpkl-profiler/src/main/java/org/pkl/profiler/PklProfilerData.java
mainpkl-profiler/src/main/java/org/pkl/profiler/ProfilerOutput.java
mainpkl-profiler/src/main/java/org/pkl/profiler/package-info.java
mainpkl-profiler/src/main/proto/profile.proto
buildsettings.gradle.kts