- Notifications
You must be signed in to change notification settings - Fork 314
add safe local var hoisting #9034
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
Conversation
"/Users/jean-philippe.bempel/projects/Sandbox/build/classes/java/main/com/bempel/sandbox/dataflow/TestClass_hoisted.class")) { | ||
fos.write(buffer); | ||
} catch (IOException e) { | ||
e.printStackTrace(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
BenchmarksStartupParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 45 metrics, 8 unstable metrics. Startup time reports for petclinicgantt title petclinic - global startup overhead: candidate=1.51.0-SNAPSHOT~884caf70c4, baseline=1.51.0-SNAPSHOT~ae1f104361 dateFormat X axisFormat %s section tracing Agent [baseline] (997.787 ms) : 0, 997787 Total [baseline] (10.73 s) : 0, 10730396 Agent [candidate] (995.771 ms) : 0, 995771 Total [candidate] (10.716 s) : 0, 10716021 section appsec Agent [baseline] (1.174 s) : 0, 1173543 Total [baseline] (10.784 s) : 0, 10784374 Agent [candidate] (1.174 s) : 0, 1173570 Total [candidate] (10.771 s) : 0, 10770943 section iast Agent [baseline] (1.132 s) : 0, 1131898 Total [baseline] (10.844 s) : 0, 10843933 Agent [candidate] (1.132 s) : 0, 1132285 Total [candidate] (10.803 s) : 0, 10803172 section profiling Agent [baseline] (1.251 s) : 0, 1251425 Total [baseline] (10.981 s) : 0, 10981278 Agent [candidate] (1.247 s) : 0, 1246554 Total [candidate] (10.995 s) : 0, 10995287
gantt title petclinic - break down per module: candidate=1.51.0-SNAPSHOT~884caf70c4, baseline=1.51.0-SNAPSHOT~ae1f104361 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (688.391 ms) : 0, 688391 BytebuddyAgent [candidate] (687.217 ms) : 0, 687217 GlobalTracer [baseline] (243.099 ms) : 0, 243099 GlobalTracer [candidate] (242.361 ms) : 0, 242361 AppSec [baseline] (30.466 ms) : 0, 30466 AppSec [candidate] (30.501 ms) : 0, 30501 Debugger [baseline] (6.056 ms) : 0, 6056 Debugger [candidate] (6.072 ms) : 0, 6072 Remote Config [baseline] (662.853 µs) : 0, 663 Remote Config [candidate] (669.592 µs) : 0, 670 Telemetry [baseline] (8.3 ms) : 0, 8300 Telemetry [candidate] (8.23 ms) : 0, 8230 section appsec BytebuddyAgent [baseline] (710.151 ms) : 0, 710151 BytebuddyAgent [candidate] (710.919 ms) : 0, 710919 GlobalTracer [baseline] (235.927 ms) : 0, 235927 GlobalTracer [candidate] (235.728 ms) : 0, 235728 IAST [baseline] (22.049 ms) : 0, 22049 IAST [candidate] (22.012 ms) : 0, 22012 AppSec [baseline] (170.099 ms) : 0, 170099 AppSec [candidate] (169.662 ms) : 0, 169662 Debugger [baseline] (5.806 ms) : 0, 5806 Debugger [candidate] (5.751 ms) : 0, 5751 Remote Config [baseline] (605.227 µs) : 0, 605 Remote Config [candidate] (611.215 µs) : 0, 611 Telemetry [baseline] (8.142 ms) : 0, 8142 Telemetry [candidate] (8.12 ms) : 0, 8120 section iast BytebuddyAgent [baseline] (807.877 ms) : 0, 807877 BytebuddyAgent [candidate] (808.722 ms) : 0, 808722 GlobalTracer [baseline] (233.609 ms) : 0, 233609 GlobalTracer [candidate] (233.202 ms) : 0, 233202 IAST [baseline] (28.53 ms) : 0, 28530 IAST [candidate] (30.168 ms) : 0, 30168 AppSec [baseline] (26.805 ms) : 0, 26805 AppSec [candidate] (25.184 ms) : 0, 25184 Debugger [baseline] (5.804 ms) : 0, 5804 Debugger [candidate] (5.813 ms) : 0, 5813 Remote Config [baseline] (578.669 µs) : 0, 579 Remote Config [candidate] (578.133 µs) : 0, 578 Telemetry [baseline] (7.938 ms) : 0, 7938 Telemetry [candidate] (7.928 ms) : 0, 7928 section profiling BytebuddyAgent [baseline] (683.326 ms) : 0, 683326 BytebuddyAgent [candidate] (679.788 ms) : 0, 679788 GlobalTracer [baseline] (362.62 ms) : 0, 362620 GlobalTracer [candidate] (361.637 ms) : 0, 361637 AppSec [baseline] (33.792 ms) : 0, 33792 AppSec [candidate] (33.74 ms) : 0, 33740 Debugger [baseline] (9.824 ms) : 0, 9824 Debugger [candidate] (9.263 ms) : 0, 9263 Remote Config [baseline] (662.183 µs) : 0, 662 Remote Config [candidate] (664.573 µs) : 0, 665 Telemetry [baseline] (8.784 ms) : 0, 8784 Telemetry [candidate] (9.472 ms) : 0, 9472 ProfilingAgent [baseline] (103.525 ms) : 0, 103525 ProfilingAgent [candidate] (103.513 ms) : 0, 103513 Profiling [baseline] (103.551 ms) : 0, 103551 Profiling [candidate] (103.537 ms) : 0, 103537 Startup time reports for insecure-bankgantt title insecure-bank - global startup overhead: candidate=1.51.0-SNAPSHOT~884caf70c4, baseline=1.51.0-SNAPSHOT~ae1f104361 dateFormat X axisFormat %s section tracing Agent [baseline] (996.23 ms) : 0, 996230 Total [baseline] (8.529 s) : 0, 8528867 Agent [candidate] (996.186 ms) : 0, 996186 Total [candidate] (8.558 s) : 0, 8557850 section iast Agent [baseline] (1.13 s) : 0, 1130167 Total [baseline] (9.27 s) : 0, 9270361 Agent [candidate] (1.134 s) : 0, 1133926 Total [candidate] (9.246 s) : 0, 9245629
gantt title insecure-bank - break down per module: candidate=1.51.0-SNAPSHOT~884caf70c4, baseline=1.51.0-SNAPSHOT~ae1f104361 dateFormat X axisFormat %s section tracing BytebuddyAgent [baseline] (687.497 ms) : 0, 687497 BytebuddyAgent [candidate] (687.108 ms) : 0, 687108 GlobalTracer [baseline] (242.633 ms) : 0, 242633 GlobalTracer [candidate] (242.728 ms) : 0, 242728 AppSec [baseline] (30.358 ms) : 0, 30358 AppSec [candidate] (30.482 ms) : 0, 30482 Debugger [baseline] (6.034 ms) : 0, 6034 Debugger [candidate] (6.097 ms) : 0, 6097 Remote Config [baseline] (670.163 µs) : 0, 670 Remote Config [candidate] (681.076 µs) : 0, 681 Telemetry [baseline] (8.235 ms) : 0, 8235 Telemetry [candidate] (8.225 ms) : 0, 8225 section iast BytebuddyAgent [baseline] (806.562 ms) : 0, 806562 BytebuddyAgent [candidate] (809.009 ms) : 0, 809009 GlobalTracer [baseline] (232.585 ms) : 0, 232585 GlobalTracer [candidate] (234.138 ms) : 0, 234138 IAST [baseline] (27.139 ms) : 0, 27139 IAST [candidate] (27.812 ms) : 0, 27812 AppSec [baseline] (28.745 ms) : 0, 28745 AppSec [candidate] (27.78 ms) : 0, 27780 Debugger [baseline] (5.81 ms) : 0, 5810 Debugger [candidate] (5.801 ms) : 0, 5801 Remote Config [baseline] (577.025 µs) : 0, 577 Remote Config [candidate] (588.493 µs) : 0, 588 Telemetry [baseline] (8.024 ms) : 0, 8024 Telemetry [candidate] (8.032 ms) : 0, 8032 LoadParameters
See matching parameters
SummaryFound 0 performance improvements and 3 performance regressions! Performance is the same for 9 metrics, 12 unstable metrics.
Request duration reports for petclinicgantt title petclinic - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~884caf70c4, baseline=1.51.0-SNAPSHOT~ae1f104361 dateFormat X axisFormat %s section baseline no_agent (38.381 ms) : 38067, 38696 . : milestone, 38381, appsec (49.15 ms) : 48714, 49586 . : milestone, 49150, code_origins (45.138 ms) : 44769, 45506 . : milestone, 45138, iast (44.083 ms) : 43687, 44478 . : milestone, 44083, profiling (48.218 ms) : 47780, 48657 . : milestone, 48218, tracing (44.331 ms) : 43973, 44690 . : milestone, 44331, section candidate no_agent (37.342 ms) : 37043, 37641 . : milestone, 37342, appsec (47.833 ms) : 47409, 48257 . : milestone, 47833, code_origins (44.941 ms) : 44569, 45312 . : milestone, 44941, iast (44.15 ms) : 43758, 44542 . : milestone, 44150, profiling (50.148 ms) : 49681, 50614 . : milestone, 50148, tracing (46.435 ms) : 46047, 46824 . : milestone, 46435,
Request duration reports for insecure-bankgantt title insecure-bank - request duration [CI 0.99] : candidate=1.51.0-SNAPSHOT~884caf70c4, baseline=1.51.0-SNAPSHOT~ae1f104361 dateFormat X axisFormat %s section baseline no_agent (4.359 ms) : 4309, 4409 . : milestone, 4359, iast (8.767 ms) : 8625, 8909 . : milestone, 8767, iast_FULL (14.042 ms) : 13762, 14321 . : milestone, 14042, iast_GLOBAL (9.96 ms) : 9785, 10134 . : milestone, 9960, profiling (9.068 ms) : 8908, 9228 . : milestone, 9068, tracing (7.637 ms) : 7529, 7745 . : milestone, 7637, section candidate no_agent (4.346 ms) : 4297, 4394 . : milestone, 4346, iast (8.8 ms) : 8656, 8943 . : milestone, 8800, iast_FULL (13.952 ms) : 13676, 14228 . : milestone, 13952, iast_GLOBAL (10.139 ms) : 9962, 10317 . : milestone, 10139, profiling (9.069 ms) : 8927, 9211 . : milestone, 9069, tracing (7.968 ms) : 7851, 8086 . : milestone, 7968,
DacapoParameters
See matching parameters
SummaryFound 0 performance improvements and 0 performance regressions! Performance is the same for 12 metrics, 0 unstable metrics. Execution time for tomcatgantt title tomcat - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~884caf70c4, baseline=1.51.0-SNAPSHOT~ae1f104361 dateFormat X axisFormat %s section baseline no_agent (1.475 ms) : 1464, 1487 . : milestone, 1475, appsec (2.392 ms) : 2344, 2440 . : milestone, 2392, iast (2.177 ms) : 2116, 2238 . : milestone, 2177, iast_GLOBAL (2.229 ms) : 2167, 2290 . : milestone, 2229, profiling (2.032 ms) : 1982, 2081 . : milestone, 2032, tracing (1.994 ms) : 1946, 2041 . : milestone, 1994, section candidate no_agent (1.473 ms) : 1462, 1485 . : milestone, 1473, appsec (2.386 ms) : 2337, 2434 . : milestone, 2386, iast (2.18 ms) : 2118, 2241 . : milestone, 2180, iast_GLOBAL (2.213 ms) : 2152, 2274 . : milestone, 2213, profiling (2.044 ms) : 1994, 2094 . : milestone, 2044, tracing (1.995 ms) : 1948, 2042 . : milestone, 1995,
Execution time for biojavagantt title biojava - execution time [CI 0.99] : candidate=1.51.0-SNAPSHOT~884caf70c4, baseline=1.51.0-SNAPSHOT~ae1f104361 dateFormat X axisFormat %s section baseline no_agent (15.032 s) : 15032000, 15032000 . : milestone, 15032000, appsec (14.743 s) : 14743000, 14743000 . : milestone, 14743000, iast (18.514 s) : 18514000, 18514000 . : milestone, 18514000, iast_GLOBAL (18.092 s) : 18092000, 18092000 . : milestone, 18092000, profiling (15.36 s) : 15360000, 15360000 . : milestone, 15360000, tracing (14.731 s) : 14731000, 14731000 . : milestone, 14731000, section candidate no_agent (15.407 s) : 15407000, 15407000 . : milestone, 15407000, appsec (14.965 s) : 14965000, 14965000 . : milestone, 14965000, iast (18.399 s) : 18399000, 18399000 . : milestone, 18399000, iast_GLOBAL (18.291 s) : 18291000, 18291000 . : milestone, 18291000, profiling (15.28 s) : 15280000, 15280000 . : milestone, 15280000, tracing (14.804 s) : 14804000, 14804000 . : milestone, 14804000,
|
33b430f
to e4fc37a
Compare Debugger benchmarksParameters
See matching parameters
SummaryFound 0 performance improvements and 5 performance regressions! Performance is the same for 4 metrics, 6 unstable metrics.
See unchanged results
Request duration reports for reportsgantt title reports - request duration [CI 0.99] : candidate=None, baseline=None dateFormat X axisFormat %s section baseline noprobe (327.859 µs) : 280, 376 . : milestone, 328, basic (322.628 µs) : 311, 334 . : milestone, 323, loop (10.155 ms) : 10122, 10187 . : milestone, 10155, section candidate noprobe (321.399 µs) : 287, 356 . : milestone, 321, basic (311.982 µs) : 303, 321 . : milestone, 312, loop (10.695 ms) : 10634, 10756 . : milestone, 10695,
|
Introduce local var hoisting level: 0: no hoisting 1: safe hoisting 2: aggressive hoisting. for now we are only implementing safe hoisting. Aggressive will be later. Safe hoisting consists of scanning the bytecode instructions of the methods to find the store and load for local var, scan local variable table to find potential slot or name conflicts. the safe hoisting is done when there is only one variable per slot without name conflict and for the same type. hoisting is done by extending the range of the local variable to range of the method and initializing to 0 at the beginning of the method. Long and double variable are not part of the safe hoisting because they are using 2 slots and hoisting them can result in a conflict with another variable in another range. Also we prevent hoisting for the second slot for the same reason (forbidden slots)
e4fc37a
to 884caf7
Compare LabelNode methodEnterLabel, | ||
LabelNode methodEndLabel, | ||
Collection<LocalVariableNode> hoisted) { | ||
throw new RuntimeException("Aggressive hoisting not implemented yet."); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
maybe UnsupportedOperationException might be more semantically meaningful? maybe it doesn't matter.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Reviewed the config changes.
| Package | Type | Package file | Manager | Update | Change | |---|---|---|---|---|---| | [com.google.errorprone:error_prone_annotations](https://errorprone.info) ([source](https://github.com/google/error-prone)) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `2.39.0` -> `2.40.0` | | [org.apache.commons:commons-lang3](https://commons.apache.org/proper/commons-lang/) ([source](https://gitbox.apache.org/repos/asf/commons-lang.git)) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `3.17.0` -> `3.18.0` | | [org.jetbrains.kotlinx.binary-compatibility-validator](https://github.com/Kotlin/binary-compatibility-validator) | plugin | misk/gradle/libs.versions.toml | gradle | patch | `0.18.0` -> `0.18.1` | | [com.datadoghq:dd-trace-api](https://github.com/datadog/dd-trace-java) | dependencies | misk/gradle/libs.versions.toml | gradle | minor | `1.50.1` -> `1.51.0` | | [software.amazon.awssdk:sdk-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:sqs](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:dynamodb-enhanced](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:dynamodb](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:aws-core](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:bom](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | | [software.amazon.awssdk:auth](https://aws.amazon.com/sdkforjava) | dependencies | misk/gradle/libs.versions.toml | gradle | patch | `2.31.77` -> `2.31.78` | --- ### Release Notes <details> <summary>google/error-prone (com.google.errorprone:error_prone_annotations)</summary> ### [`v2.40.0`](https://github.com/google/error-prone/releases/tag/v2.40.0): Error Prone 2.40.0 Changes: - Bug fixes and improvements - Releases (including snapshots) have migrated from [OSSRH to the Central Publisher Portal](https://central.sonatype.org/pages/ossrh-eol/#process-to-migrate) Full changelog: google/error-prone@v2.39.0...v2.40.0 </details> <details> <summary>Kotlin/binary-compatibility-validator (org.jetbrains.kotlinx.binary-compatibility-validator)</summary> ### [`v0.18.1`](https://github.com/Kotlin/binary-compatibility-validator/releases/tag/0.18.1) [Compare Source](Kotlin/binary-compatibility-validator@0.18.0...0.18.1) #### What's Changed - Fixed a bug preventing use of cross-compilation support during KLIB dump validation \[[#​304](https://github.com/Kotlin/binary-compatibility-validator/issues/304)]\[[#​306](https://github.com/Kotlin/binary-compatibility-validator/issues/306)] </details> <details> <summary>datadog/dd-trace-java (com.datadoghq:dd-trace-api)</summary> ### [`v1.51.0`](https://github.com/DataDog/dd-trace-java/releases/tag/v1.51.0): 1.51.0 ### Components #### Application Security Management (IAST) - 🐛 Fix verify error when ctor params are used after a call site ([#​9083](DataDog/dd-trace-java#9083) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Limit the maximum size of the location path in IAST vulnerabilities ([#​9028](DataDog/dd-trace-java#9028) - [@​jandro996](https://github.com/jandro996)) - 🐛 Fix IAST gRPC handler with null superclass ([#​8984](DataDog/dd-trace-java#8984) - [@​smola](https://github.com/smola)) - ✨ Optimize IAST Vulnerability Detection ([#​8885](DataDog/dd-trace-java#8885) - [@​jandro996](https://github.com/jandro996)) #### Application Security Management (WAF) - ✨ Upgrade libddwaf-java to 15.0.0 ([#​9022](DataDog/dd-trace-java#9022) - [@​sezen-datadog](https://github.com/sezen-datadog)) - ✨ Extract RestEasy json body response schemas ([#​9015](DataDog/dd-trace-java#9015) - [@​jandro996](https://github.com/jandro996)) - ✨ Extract Jersey json body response schemas ([#​9014](DataDog/dd-trace-java#9014) - [@​jandro996](https://github.com/jandro996)) - ✨ Extract Ratpack json body response schemas ([#​9013](DataDog/dd-trace-java#9013) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Enable API Security by default and make it lazy loading ([#​9009](DataDog/dd-trace-java#9009) - [@​smola](https://github.com/smola)) - ✨ Extract Vert.x json body response schemas ([#​9001](DataDog/dd-trace-java#9001) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Extract Play json body response schemas ([#​8995](DataDog/dd-trace-java#8995) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - 🐛 Fix Jackson nodes introspection for request/response schema extraction ([#​8980](DataDog/dd-trace-java#8980) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Extract Spring json body response schemas ([#​8938](DataDog/dd-trace-java#8938) - [@​sezen-datadog](https://github.com/sezen-datadog)) - ✨ Default obfuscation regexp update ([#​8937](DataDog/dd-trace-java#8937) - [@​sezen-datadog](https://github.com/sezen-datadog)) #### Build & Tooling - ✨ Cancel GitLab running pipeline on new PR push ([#​9023](DataDog/dd-trace-java#9023) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) - ✨ Migrate publishing to Maven Central Portal ([#​8807](DataDog/dd-trace-java#8807) - [@​sarahchen6](https://github.com/sarahchen6)) #### Continuous Integration Visibility - 🐛 Fix Test Optimization to work with JDK 24 ([#​9114](DataDog/dd-trace-java#9114) - [@​nikita-tkachenko-datadog](https://github.com/nikita-tkachenko-datadog)) - ✨ Add repo root as safe directory on git client creation ([#​9033](DataDog/dd-trace-java#9033) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Add PR number tag and improve PR information building ([#​8990](DataDog/dd-trace-java#8990) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) - ✨ Update impacted tests logic ([#​8923](DataDog/dd-trace-java#8923) - [@​daniel-mohedano](https://github.com/daniel-mohedano)) #### Data Streams Monitoring - 🧹 Clean up DSM context injection ([#​8776](DataDog/dd-trace-java#8776) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) #### Database Monitoring - 🐛 Set trace\_injected in try block ([#​9025](DataDog/dd-trace-java#9025) - [@​natashadada](https://github.com/natashadada)) #### Dynamic Instrumentation - 🐛 Add source file tracking enable option ([#​9115](DataDog/dd-trace-java#9115) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Add java.util.Date support ([#​9111](DataDog/dd-trace-java#9111) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Update file probe format ([#​9047](DataDog/dd-trace-java#9047) - [@​jpbempel](https://github.com/jpbempel)) - ✨ add safe local var hoisting ([#​9034](DataDog/dd-trace-java#9034) - [@​jpbempel](https://github.com/jpbempel)) - 🧹 Add new config for debugger upload interval ([#​8959](DataDog/dd-trace-java#8959) - [@​jpbempel](https://github.com/jpbempel)) - ✨ Enable Code Origin with Dynamic instrumentation ([#​8940](DataDog/dd-trace-java#8940) - [@​jpbempel](https://github.com/jpbempel)) #### ML Observability (LLMObs) - 💡 LLM Observability SDK ([#​8781](DataDog/dd-trace-java#8781) - [@​gary-huang](https://github.com/gary-huang), [@​nayeem-kamal](https://github.com/nayeem-kamal)) #### Metrics - 🐛 Ensure client stat reporter is started when the agent is not available at bootstrap ([#​9082](DataDog/dd-trace-java#9082) - [@​amarziali](https://github.com/amarziali)) - ✨ Create metric: appsec.waf.config\_errors ([#​8394](DataDog/dd-trace-java#8394) - [@​sezen-datadog](https://github.com/sezen-datadog)) #### Platform components - ✨ Introduce environment component ([#​9071](DataDog/dd-trace-java#9071) - [@​PerfectSlayer](https://github.com/PerfectSlayer)) #### Profiling - 🐛 Remove annoying warning for smap event parsing ([#​9119](DataDog/dd-trace-java#9119) - [@​jbachorik](https://github.com/jbachorik)) - 🐛 Fix ByteCountingInputStream when reading past EOF ([#​8988](DataDog/dd-trace-java#8988) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Realtime User Monitoring - ✨ Add RUM SDK injection for servlet based web servers ([#​9110](DataDog/dd-trace-java#9110) - [@​PerfectSlayer](https://github.com/PerfectSlayer) [@​amarziali](https://github.com/amarziali)) #### Telemetry - ✨ Update the config origin metric to match what it's mapping ([#​9045](DataDog/dd-trace-java#9045) - [@​sezen-datadog](https://github.com/sezen-datadog)) #### Testing - ✨ Add testing for latest stable version (JDK 24) ([#​8875](DataDog/dd-trace-java#8875) - [@​sarahchen6](https://github.com/sarahchen6)) #### Trace context propagation - 🐛 Fix bug with dropping baggage when `TracePropagationBehaviorExtract=IGNORE` ([#​9037](DataDog/dd-trace-java#9037) - [@​mhlidd](https://github.com/mhlidd)) - 🐛 Fix ArrayIndexOutOfBoundsException in PercentEscaper ([#​9032](DataDog/dd-trace-java#9032) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer core - 🐛 Fix `Error` handling for trace interceptors ([#​9097](DataDog/dd-trace-java#9097) - [@​AlexeyKuznetsov-DD](https://github.com/AlexeyKuznetsov-DD)) - 💡 Add wildcard feature for `DD_TRACE_HEADER_TAGS` and enabling for Http Response headers ([#​9067](DataDog/dd-trace-java#9067) - [@​mhlidd](https://github.com/mhlidd)) #### Tracer public API - 💡 Add LLM Observability SDK ([#​8781](DataDog/dd-trace-java#8781) - [@​gary-huang](https://github.com/gary-huang)) ### Instrumentations #### Akka instrumentation - 🐛 Fix NPE in akka-http and pekko-http integrations ([#​9019](DataDog/dd-trace-java#9019) - [@​mcculls](https://github.com/mcculls)) #### Eclipse Vert.x instrumentation - ✨ Extract Vert.x json body response schemas ([#​9001](DataDog/dd-trace-java#9001) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) - ✨ Write http.route tag as soon as possible in vert.x ([#​8952](DataDog/dd-trace-java#8952) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### JAX-WS instrumentation - 💡⚠️ Enable jax-ws integration by default ([#​9030](DataDog/dd-trace-java#9030) - [@​bm1549](https://github.com/bm1549)) - ✨ Extract Jersey json body response schemas ([#​9014](DataDog/dd-trace-java#9014) - [@​jandro996](https://github.com/jandro996)) #### Mule instrumentation - 🐛 Propagate grizzly http span in filters if nothing is active ([#​9016](DataDog/dd-trace-java#9016) - [@​amarziali](https://github.com/amarziali)) #### Play Framework instrumentation - ✨ Extract Play json body response schemas ([#​8995](DataDog/dd-trace-java#8995) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Ratpack instrumentation - ✨ Extract Ratpack json body response schemas ([#​9013](DataDog/dd-trace-java#9013) - [@​manuel-alvarez-alvarez](https://github.com/manuel-alvarez-alvarez)) #### Spring instrumentation - ✨ Extract Spring json body response schemas ([#​8938](DataDog/dd-trace-java#8938) - [@​sezen-datadog](https://github.com/sezen-datadog)) </details> --- ### Configuration 📅 **Schedule**: Branch creation - "after 6pm every weekday,before 2am every weekday" in timezone Australia/Melbourne, Automerge - At any time (no schedule defined). 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Never, or you tick the rebase/retry checkbox. 👻 **Immortal**: This PR will be recreated if closed unmerged. Get [config help](https://github.com/renovatebot/renovate/discussions) if that's undesired. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Renovate Bot](https://github.com/renovatebot/renovate). GitOrigin-RevId: 649b690d4c9d7dcb572c457f0802b42b8e3e682e
What Does This Do
Introduce local var hoisting level:
0: no hoisting
1: safe hoisting
2: aggressive hoisting.
for now we are only implementing safe hoisting. Aggressive will be later.
Safe hoisting consists of scanning the bytecode instructions of the methods to find the store and load for local var, scan local variable table to find potential slot or name conflicts.
the safe hoisting is done when there is only one variable per slot without name conflict and for the same type.
hoisting is done by extending the range of the local variable to range of the method and initializing to 0 at the beginning of the method. Long and double variable are not part of the safe hoisting because they are using 2 slots and hoisting them can result in a conflict with
another variable in another range. Also we prevent hoisting for the
second slot for the same reason (forbidden slots)
Motivation
capture local variables for method probe and exception probes
Additional Notes
Contributor Checklist
type:
and (comp:
orinst:
) labels in addition to any usefull labelsclose
,fix
or any linking keywords when referencing an issue.Use
solves
instead, and assign the PR milestone to the issueJira ticket: DEBUG-3304