-
Notifications
You must be signed in to change notification settings - Fork 311
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