Skip to content
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

Update main branch #24

Merged
merged 99 commits into from
Sep 13, 2024
Merged
Changes from 1 commit
Commits
Show all changes
99 commits
Select commit Hold shift + click to select a range
049feee
Setup jcstress submodule
DLochmelis33 Oct 9, 2023
1b2645c
Struggling to call kotlin from jcstress maven project
DLochmelis33 Oct 10, 2023
c5160dc
Manually connect and run a test with jcstress
DLochmelis33 Oct 18, 2023
94af8b9
Improve build files
DLochmelis33 Nov 5, 2023
965ed45
Generate wrappers in runtime, call jcstress via ProcessBuilder
DLochmelis33 Nov 5, 2023
10d0996
Add @Outcome annotations, handle single values differently
DLochmelis33 Nov 6, 2023
fc1f253
Use LitmusI..IOutcome in all tests
DLochmelis33 Nov 6, 2023
249ad82
No-op PthreadRunner
DLochmelis33 Nov 14, 2023
afe3771
Working PthreadRunner
DLochmelis33 Nov 14, 2023
243dd50
Support affinity for PthreadRunner
DLochmelis33 Nov 14, 2023
cb772fa
Split starting and joining test threads for async-style actual parall…
DLochmelis33 Nov 15, 2023
9661840
Refactor into a common JVM CLI, currently broken due to a cyclic depe…
DLochmelis33 Nov 21, 2023
e2d1bde
temp
DLochmelis33 Nov 23, 2023
586f237
Improve affinity cinterop with compilerOpts
DLochmelis33 Dec 13, 2023
9798a48
Huge refactor to resolve cyclic dependency + get jcstress to work
DLochmelis33 Jan 22, 2024
a97540d
Refactor tests into separate subproject
DLochmelis33 Jan 22, 2024
7ce3efc
Minor improvements
DLochmelis33 Jan 28, 2024
ee8ed4e
Update README
DLochmelis33 Jan 28, 2024
c214aff
Tiny README fixes
DLochmelis33 Jan 28, 2024
6fbfaeb
Merge branch 'dev-pthread-runner' into dev-jcstress-integration
DLochmelis33 Feb 4, 2024
9888c07
Move state allocation out of runner
DLochmelis33 Feb 5, 2024
0f52f5e
Improve results calculation speed
DLochmelis33 Feb 5, 2024
21c83f5
PR cleanup
DLochmelis33 Feb 5, 2024
ab89911
PR cleanup (part 2)
DLochmelis33 Feb 18, 2024
6d014ca
Merge pull request #9 from JetBrains-Research/dev-jcstress-integration
DLochmelis33 Feb 18, 2024
44bb174
Use LitmusAutoState as both state and outcome, change lists to holder…
DLochmelis33 Feb 18, 2024
c829ecd
Implement CustomList, confirm that it improves performance
DLochmelis33 Feb 19, 2024
d2b4b4a
MR fixes
DLochmelis33 Feb 25, 2024
eb19935
Fix typo in LitmusIIIIState
DLochmelis33 Feb 26, 2024
8944afc
More PR fixes
DLochmelis33 Apr 7, 2024
c60261e
Merge pull request #11 from JetBrains-Research/dev-performance-calcStats
DLochmelis33 Apr 7, 2024
7e7c451
Fix single outcome bug, notice jcstress-interop not working
DLochmelis33 Apr 7, 2024
1a73d1b
Fix jcstress interop
DLochmelis33 Apr 7, 2024
6121e67
Change package to org.jetbrains.litmuskt
DLochmelis33 Apr 14, 2024
8f215a2
Cleanup build files
DLochmelis33 Apr 14, 2024
66ca452
Codegen: skip unnecessary variables
DLochmelis33 Apr 28, 2024
6f4d4f4
Redo codegen + reorganize tests
DLochmelis33 Apr 28, 2024
1797f58
Resolve cherry-pick conflicts
DLochmelis33 May 8, 2024
6bd8439
Parse jcstress HTML output
DLochmelis33 Apr 25, 2024
0da7b20
Late fixes related to changing tests naming + support multiple tests …
DLochmelis33 Apr 28, 2024
a7b37b1
Update README
DLochmelis33 Apr 28, 2024
1882b61
Apply KSP to multiplatform tests
DLochmelis33 May 8, 2024
cc1d05b
Add more AutoOutcome-s (not generated yet)
DLochmelis33 May 8, 2024
1002620
Add word tearing tests
DLochmelis33 May 8, 2024
4718708
Add volatile arrays test + more word tearing
DLochmelis33 May 8, 2024
5bfbcab
rename some tests (give more explicit names)
eupp May 13, 2024
80f482f
move all unsafe publication tests into single file
eupp May 13, 2024
0c5a6dd
minor refactoring in UnsafePublication.kt
eupp May 13, 2024
b463394
move MPNoDRF into `MessagePassing.kt`
eupp May 13, 2024
80a424d
Minor changes
DLochmelis33 May 19, 2024
14f4e63
Rollback README changes
DLochmelis33 May 19, 2024
30d25b3
Abstract pthread away into cinterop to support Macos
DLochmelis33 May 22, 2024
251ac03
Small fix (replace try/catch with runCatching)
DLochmelis33 Jun 5, 2024
4a6b639
Add forgotten @Volatile, delete outdated comments
DLochmelis33 Jun 5, 2024
4d6e3ad
Merge branch 'dev-jcstress-integration' into development
DLochmelis33 Jun 5, 2024
57f72e3
Merge branch 'dev-more-tests' into development
DLochmelis33 Jun 21, 2024
b330c88
Update README
DLochmelis33 Jun 21, 2024
4ccaa7e
Cleanup
DLochmelis33 Jun 26, 2024
93b6898
Merge branch 'dev-testing' into development
DLochmelis33 Jun 26, 2024
f26a460
Abstract workers and pthread into Threadlike
DLochmelis33 Jun 26, 2024
672b984
Return affinity support for pthread
DLochmelis33 Jun 26, 2024
0d2b0e2
Clean up
DLochmelis33 Jun 26, 2024
66edc9e
Delete outdated files
DLochmelis33 Jul 4, 2024
99bb8cd
Minor style fixes
DLochmelis33 Jul 7, 2024
adacd49
Merge pull request #18 from JetBrains-Research/dev-threads
DLochmelis33 Jul 7, 2024
8c799c6
Add basic CI
DLochmelis33 Jun 26, 2024
3e4eb49
Fix 1
DLochmelis33 Jun 26, 2024
c82e4e1
Fix 2 + add jcstress run to CI
DLochmelis33 Jun 26, 2024
a7ea1dd
Fix 3
DLochmelis33 Jul 4, 2024
cbc23b3
Fix 4 + fix bug in printing jcstress results
DLochmelis33 Jul 7, 2024
29cfa94
Fix 4 + fix bug in parsing jcstress results
DLochmelis33 Jul 7, 2024
5f54955
Upgrade to Kotlin 2.0.0
DLochmelis33 Jul 15, 2024
44d0abb
Support mingwX64 target
DLochmelis33 Jul 21, 2024
56faf56
Move result calculation inside thread routine
DLochmelis33 Jul 21, 2024
4fc7eb1
Minor improvements
DLochmelis33 Jul 21, 2024
57e58da
Fix affinity issue (and add -Werror)
DLochmelis33 Aug 3, 2024
d8dd41f
Add comment, fix jcstress result collection bug, run all tests with j…
DLochmelis33 Aug 4, 2024
e6fbc8f
Fix jcstress result not parsing default outcome (add parseOutcome() t…
DLochmelis33 Aug 4, 2024
fa868fc
Style changes
DLochmelis33 Aug 4, 2024
747d314
Merge pull request #19 from JetBrains-Research/dev-gh-ci
DLochmelis33 Aug 4, 2024
2c5bdbb
Merge pull request #20 from JetBrains-Research/dev-performance
DLochmelis33 Aug 4, 2024
4067297
Rewrite UPUB more explicitly (replace elvis with if)
DLochmelis33 Aug 6, 2024
07f1095
Replace all "join handles" with BlockingFuture
DLochmelis33 Aug 6, 2024
bc3f746
Quickfix for previous commit
DLochmelis33 Aug 6, 2024
b7091bc
Quickfix-2
DLochmelis33 Aug 6, 2024
bb73f00
Implement reset()
DLochmelis33 Aug 11, 2024
406d577
Remove sequence() as it gave a huge performance drop
DLochmelis33 Aug 11, 2024
388f2e9
Add a bunch of tests
DLochmelis33 Aug 11, 2024
c77e36f
Add more UPUB array tests
DLochmelis33 Aug 13, 2024
80d9450
Split new tests into respective platform modules
DLochmelis33 Aug 13, 2024
538b204
Remove the need for outcomeReset() in tests, move reset{} section to …
DLochmelis33 Sep 4, 2024
546d06c
Improve some tests
DLochmelis33 Sep 4, 2024
af2284a
Minor fixes
DLochmelis33 Sep 4, 2024
566ea7a
Merge pull request #22 from JetBrains-Research/dev-testing
DLochmelis33 Sep 4, 2024
a1935a1
Merge pull request #23 from JetBrains-Research/dev-litmus-tests
DLochmelis33 Sep 4, 2024
5695b4c
Merge branch 'dev-performance' into development
DLochmelis33 Sep 4, 2024
9ee0105
Merge fix-up
DLochmelis33 Sep 4, 2024
60fd1b6
Update README with reset{}
DLochmelis33 Sep 4, 2024
98bce9c
Add licenses for to-be-published subprojects
DLochmelis33 Sep 13, 2024
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Use LitmusI..IOutcome in all tests
  • Loading branch information
DLochmelis33 committed Nov 6, 2023
commit fc1f2539bcbdf93051a7fd020d1aadc5287240c0
39 changes: 11 additions & 28 deletions litmus/src/commonMain/kotlin/komem/litmus/testsuite/ClassicTests.kt
Original file line number Diff line number Diff line change
@@ -121,23 +121,19 @@ val MPVolatile: LitmusTest<*> = litmusTest({
}

val MP_DRF: LitmusTest<*> = litmusTest({
object {
object : LitmusIOutcome() {
var x = 0

@Volatile
var y = 0
var o = 0
}
}) {
thread {
x = 1
y = 1
}
thread {
o = if (y != 0) x else -1
}
outcome {
o
r1 = if (y != 0) x else -1
}
spec {
accept(1)
@@ -246,19 +242,15 @@ val IRIWVolatile: LitmusTest<*> = litmusTest({
}

val UPUB: LitmusTest<*> = litmusTest({
object {
object : LitmusIOutcome() {
var h: IntHolder? = null
var o = 0
}
}) {
thread {
h = IntHolder(0)
}
thread {
o = h?.x ?: -1
}
outcome {
o
r1 = h?.x ?: -1
}
spec {
accept(0)
@@ -267,19 +259,15 @@ val UPUB: LitmusTest<*> = litmusTest({
}

val UPUBCtor: LitmusTest<*> = litmusTest({
object {
object : LitmusIOutcome() {
var h: IntHolderCtor? = null
var o = 0
}
}) {
thread {
h = IntHolderCtor()
}
thread {
o = h?.x ?: -1
}
outcome {
o
r1 = h?.x ?: -1
}
spec {
accept(1)
@@ -288,23 +276,18 @@ val UPUBCtor: LitmusTest<*> = litmusTest({
}

val LB_DEPS_OOTA: LitmusTest<*> = litmusTest({
object {
object : LitmusIIOutcome() {
var x = 0
var y = 0
var a = 0
var b = 0
}
}) {
thread {
a = x
y = a
r1 = x
y = r1
}
thread {
b = y
x = b
}
outcome {
listOf(a, b)
r2 = y
x = r2
}
spec {
accept(0, 0)
4 changes: 2 additions & 2 deletions litmus/src/jvmMain/kotlin/JvmMain.kt
Original file line number Diff line number Diff line change
@@ -2,6 +2,7 @@ import komem.litmus.LitmusAutoOutcome
import komem.litmus.LitmusOutcomeType
import komem.litmus.LitmusTest
import komem.litmus.generated.LitmusTestRegistry
import komem.litmus.testsuite.UPUB
import kotlin.io.path.Path
import kotlin.io.path.createParentDirectories
import kotlin.io.path.div
@@ -14,8 +15,7 @@ import kotlin.system.exitProcess
fun main() {
val jcstressDirectory = Path("../jcstress")

val tests = LitmusTestRegistry.all()
val test = tests[0]
val test = UPUB

val javaClassName = test.name.replace('.', '_')
val targetFile = jcstressDirectory / "src/main/java/komem/litmus/$javaClassName.java"