Skip to content

Releases: JetBrains/lincheck

Lincheck 3.5

30 Mar 22:35

Choose a tag to compare

Bug fixes

  • Exclude relocated packages (starting with shadow.) from transformation by @dmitrii-artuhov in #927
  • Fix checks for shadowed package names by @eupp in #938
  • Fix CFG loop validation check by @eupp in #936
  • Swallow lincheck abort exceptions by @eupp in #961

Improvements

  • Add memory tracker interface and supporting cast by @viliamDokov in #909
  • New experimental model checker implementation by @viliamDokov in #934
  • Bump ASM version to 9.9.1 by @ndkoval in #954
  • Optimize reflection and unsafe data caching by @eupp in #982
  • Optimize ThreadScheduler related allocations by @eupp in #983
  • Optimize result interceptor allocations by @eupp in #984
  • Make model checker more robust against potential interleaving non-replayability problems by @eupp in #986
  • Clean-up static and dynamic javaagent attach code by @eupp in #916
  • Refactor transformation profile by @eupp in #962
  • Refactor Lincheck trace printing code by @eupp in #923
  • Improve descriptors and TraceContext API by @dmitrii-artuhov in #959

Deprecated

  • Promote old org.jetbrains.kotlinx.lincheck API deprecation level to ERROR by @eupp in #994

Trace Recorder

Full Changelog: lincheck-3.4...lincheck-3.5

Lincheck 3.4

26 Dec 00:48

Choose a tag to compare

Bug fixes

  • Add a check for local vars count before inserting afterLocalWrite by @dmitrii-artuhov in #881
  • Fix performance regression by @eupp in #889
  • Fix ignored section constructor instrumentation by @eupp in #912
  • Fix unsafe field resolve bug by @eupp in #914

Improvements

Deprecated

  • Deprecate @ModelCheckingCTest and @ModelCheckingCTest annotations by @jetbrains-junie[bot] in #818

Infrastructure

Trace Recorder

New Contributors

Full Changelog: lincheck-3.3...lincheck-3.4

Lincheck 3.3

01 Oct 13:08

Choose a tag to compare

Features

Bug fixes

  • Quickfix for ClassReader error by @eupp in #802
  • Fix stack overflow error on object graph traversal in ensureObjectIsTransformed by @eupp in #804
  • Do not track MethodHandle static calls added by the compiler and ignored methods in general by @ndkoval in #803
  • Fix possible deadlock involving Throwable by @eupp in #840

Improvements

  • Update Kotlin to 2.2.0 by @eupp in #799
  • Owner name analyzer by @eupp in #777
  • Minimize the static field traversals during lazy re-transformation by @eupp in #805
  • Disable local variables tracking in lincheck by @eupp in #811
  • Call Thread.stop with reflection. by @cpovirk in #841

Trace Recorder

New Contributors

Full Changelog: lincheck-3.2...lincheck-3.3

Lincheck 3.2

08 Aug 17:39

Choose a tag to compare

Bug fixes

  • Call ensureObjectIsTransformed for all fields recursively, even when the analyzing object class should not be retransformed by @ndkoval in #796

Improvements

Trace Recorder

Full Changelog: lincheck-3.1.3...lincheck-3.2

Lincheck 3.1.1

25 Jul 21:46

Choose a tag to compare

Improvements

  • Always collect event ids and initialize them in TracePoint constructor by @eupp in #747

Other

Full Changelog: lincheck-3.1...lincheck-3.1.1

Lincheck 3.1

17 Jul 18:20

Choose a tag to compare

Bug Fixes

  • Wrap IntelliJ runtime debugger/coverage agent methods into ignored sections by @eupp in #759

Improvements

Trace Recorder

Full Changelog: lincheck-3.0...lincheck-3.1

Lincheck 3.0

01 Jul 14:23

Choose a tag to compare

This release brings new major feature: general-purpose model checking.

Lincheck now allows to test arbitrary concurrent code. To write a Lincheck test, you need to wrap your concurrent logic with the Lincheck.runConcurrentTest { ... } function. Lincheck will automatically study different thread interleavings and report an error if one leads to a test failure. See the example in README.md.

⚠️ Lincheck 3.0 Changes️:

  • Lincheck now focuses on testing arbitrary concurrent code still providing declarative API for testing concurrent data structures.
  • The API has been moved from org.jetbrains.kotlinx.lincheck to org.jetbrains.lincheck.
  • The artifact is now published to Maven Central under the org.jetbrains.lincheck group ID.

Features

Bug Fixes

  • Fix hanging problems with standard streams by @dmitrii-artuhov in #580
  • Fix the illegal lookupClass issue when using MethodHandles.Lookup on JDK 8 by @zhelenskiy in #594
  • Finish user thread when exception is throw from it by @dmitrii-artuhov in #609
  • Hotfixes for livelock detection inside validation function by @eupp in #713

Improvements

Full Changelog: lincheck-2.39...lincheck-3.0

Lincheck 2.39

19 Mar 14:06

Choose a tag to compare

Bug Fixes

Improvements

  • Track local variables to improve object representation in the trace by @eupp in #579
  • Additional info in trace sent to plugin for code coloring by @bbrockbernd in #563
  • Custom threads: remove run(), remove lambda and remove result by @bbrockbernd in #557
  • Implement infrastructure to check recorded trace by @ivandev0 in #510
  • Add new tests with gpmc & coroutines by @dmitrii-artuhov in #569

Lincheck 2.38

10 Mar 18:55

Choose a tag to compare

Bug Fixes

  • Rollback to make ideaPluginEnabled flag lazy by @eupp in #561

Improvements

  • Improve performance by caching some reflection-related data by @ndkoval in #560
  • Pass whether Lincheck is in the trace debugger mode to the plugin by @dmitrii-artuhov in #562
  • Set JDK 17 as a default JDK for representation tests by @eupp in #559

Lincheck 2.37

06 Mar 18:58

Choose a tag to compare

Bug Fixes:

  • Ignore MethodHandles.Lookup.* and related methods during the analysis by @eupp in #548
  • Fix Idea plugin integration with GPMC by @avpotapov00 in #551
  • Supress internal ThreadAbortedError in user threads by @eupp in #526

Improvements