Releases: JetBrains/lincheck
Releases · JetBrains/lincheck
Lincheck 2.34
Bug Fixes
- Fix typo in
AtomicMethods.kt
by @eupp in #356 - Fix byte array element type in the bytecode transformation code by @eupp in #357
- Do not use Kotlin in the
bootstrap
module by @ndkoval in #351 - Fix possible
ConcurrentModificationException
when collection information inFinalFields
andMethodIds
by @ndkoval in #354 - Avoid recursive enumeration of class and classloader instances when plugin is enabled by @avpotapov00 in #364
- Use
ClassReader.EXPAND_FRAMES
as dictated by theAnalyzerAdapter
documentation by @eupp in #368 - In
FieldSearchHelper
skip protected or private fields that cannot be read byUnsafe
by @eupp in #367 - Ensure that array elements are transformed by @ndkoval in #372
Lincheck 2.33
What's Changed
- Bytecode Transformation Refactoring by @eupp in #322
- Fix Java 11 performance bug by @eupp in #316
- Strategy run API refactoring by @eupp in #262
- Coverage bytecode filter by @dmitrii-artuhov in #335
- Detect atomic primitive method calls dynamically by @eupp in #336
- Output fixed in case of an incorrect arguments count in custom scenarios by @avpotapov00 in #338
- Spin locks detection enchancements by @avpotapov00 in #331
- AllowExtraSuspension parameter deprecated, SUSPENDED prefix removed from the output by @avpotapov00 in #339
- Make all compilation warnings errors by @ndkoval in #341
- Do not show clocks when they don't provide any useful information by @ndkoval in #349
- Minimization improvement: try to remove two operations and move operations to init and post parts by @ndkoval in #350
New Contributors
- @dmitrii-artuhov made their first contribution in #335
Full Changelog: lincheck-2.32...lincheck-2.33
Lincheck 2.32
Improvements
- Show the field name in the trace when calling a method on the final field by @avpotapov00 in #327
Lincheck 2.31
Improvements
- Loop detector refactoring by @eupp in #310
- Set lincheck version in tests for the plugin compatibility by @zuevmaxim in #312
- Exception message when no operations defined impoved by @avpotapov00 in #233
- Improve trace representation: show non-
this
object instances on method calls and show field names when usingVarHandle
,AtomicReference
, andUnsafe
by @avpotapov00 in #325
IntelliJ IDEA Plugin support:
- Object traverser fix by @avpotapov00 in #313
- Exceptions provided to the plugin by @avpotapov00 in #304
- Execution results are presented in case of any failure by @avpotapov00 in #314
Lincheck 2.30
This is a big release for Lincheck. We changed how Lincheck instruments byte-code, so no more annoying add-opens ...
are needed 🎉
Improvements
- Byte-code transformation via a dynamically attached Java agent by @avpotapov00, @eupp, and @ndkoval in #296
- Increase number of invocations for flaky stress tests by @ndkoval in #289
- Remove redundant default managed strategy guarantees by @eupp in #306
- Bump minimal plugin version to 0.2 by @zuevmaxim in #305
Full Changelog: lincheck-2.29...lincheck-2.30
Lincheck 2.29
Improvements:
- Optimize spin loops and fix regression by @eupp in #298
- Optimize
TransformationUtils.isCoroutineStateMachineClass
by @ndkoval in #294 - Optimize Method.isSuspendable implementation by @ndkoval in #293
- Implement
final
field detection withoutClass.forName(..)
by @avpotapov00 in #297 - Improve UX when running
*IsolatedTest
s from IntelliJ IDEA by @ndkoval in #274 - Display enum values as enum names instead of
<className>@<hashCode>
by @ndkoval in #300 - Object numeration representation fix by @avpotapov00 in #302
Lincheck 2.28.1
Lincheck 2.28
Lincheck 2.27
Bug Fixes:
LoopDetector
must reset the spin-lock detection counters when the current operation finishes by @eupp in #281- Fix potential
IndexOutOfBoundsException
incurActorIsBlocking
andconcurrentActorCausesBlocking
by @eupp in #277 - Fix number of iterations in spin-loops in case if #cpus < #threads by @eupp in #284
Lincheck 2.26
Bug Fixes
- Fix non-determinism in the model checker and support recent changes in the Kotlin coroutines API (#273)