Skip to content

Commit

Permalink
Rename the project to fray🥳
Browse files Browse the repository at this point in the history
  • Loading branch information
aoli-al committed Apr 23, 2024
1 parent cb0a3d3 commit 03d42a2
Show file tree
Hide file tree
Showing 148 changed files with 351 additions and 373 deletions.
4 changes: 2 additions & 2 deletions .github/workflows/main.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,12 +18,12 @@ jobs:
distribution: 'temurin'
java-version: '21'
cache: 'gradle'
- name: Build sfuzz (no tests)
- name: Build fray (no tests)
run: ./gradlew build -x test
- name: Instrument JDK
run: ./gradlew jlink
- name: Build shadow JAR
run: ./gradlew shadowJar
- name: Test sfuzz
- name: Test fray
run: ./gradlew test

2 changes: 1 addition & 1 deletion benchmarks/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ tasks.withType<JavaExec> {
val instrumentation = project(":instrumentation")
classpath = sourceSets["main"].runtimeClasspath
executable("${jdk.layout.buildDirectory.get().asFile}/java-inst/bin/java")
mainClass = "cmu.pasta.sfuzz.core.MainKt"
mainClass = "cmu.pasta.fray.core.MainKt"
jvmArgs("-agentpath:$agentPath")
jvmArgs("-javaagent:${instrumentation.layout.buildDirectory.get().asFile}/libs/${instrumentation.name}-${instrumentation.version}-all.jar")
jvmArgs("-ea")
Expand Down
2 changes: 1 addition & 1 deletion bin/sfuzz
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ command = [
"-cp", CORE_PATH + ":" + sys.argv[1],
"-agentpath:" + JVMTI_PATH,
"-javaagent:" + AGENT_PATH,
"cmu.pasta.sfuzz.core.MainKt",
"cmu.pasta.fray.core.MainKt",
*sys.argv[2:]
]

Expand Down
2 changes: 1 addition & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@ plugins {


allprojects {
group = "cmu.pasta.sfuzz"
group = "cmu.pasta.fray"
version = "1.0-SNAPSHOT"
}

Expand Down
2 changes: 1 addition & 1 deletion core/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,6 @@ tasks.test {

tasks.named<ShadowJar>("shadowJar") {
manifest {
attributes(mapOf("Main-Class" to "cmu.pasta.sfuzz.core.MainKt"))
attributes(mapOf("Main-Class" to "cmu.pasta.fray.core.MainKt"))
}
}
Original file line number Diff line number Diff line change
@@ -1,12 +1,11 @@
package cmu.pasta.sfuzz.core
package cmu.pasta.fray.core

import cmu.pasta.sfuzz.core.logger.CsvLogger
import cmu.pasta.sfuzz.core.logger.JsonLogger
import cmu.pasta.sfuzz.core.logger.LoggerBase
import cmu.pasta.sfuzz.core.scheduler.*
import cmu.pasta.fray.core.logger.CsvLogger
import cmu.pasta.fray.core.logger.JsonLogger
import cmu.pasta.fray.core.logger.LoggerBase
import cmu.pasta.fray.core.scheduler.*
import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument
import com.github.ajalt.clikt.parameters.arguments.default
import com.github.ajalt.clikt.parameters.groups.OptionGroup
import com.github.ajalt.clikt.parameters.groups.groupChoice
import com.github.ajalt.clikt.parameters.options.*
Expand Down
Original file line number Diff line number Diff line change
@@ -1,21 +1,21 @@
package cmu.pasta.sfuzz.core

import cmu.pasta.sfuzz.core.concurrency.SFuzzThread
import cmu.pasta.sfuzz.core.concurrency.SynchronizationManager
import cmu.pasta.sfuzz.core.concurrency.locks.CountDownLatchManager
import cmu.pasta.sfuzz.core.concurrency.locks.LockManager
import cmu.pasta.sfuzz.core.concurrency.locks.SemaphoreManager
import cmu.pasta.sfuzz.core.concurrency.operations.*
import cmu.pasta.sfuzz.core.logger.LoggerBase
import cmu.pasta.sfuzz.core.runtime.AnalysisResult
import cmu.pasta.sfuzz.core.scheduler.Choice
import cmu.pasta.sfuzz.core.scheduler.FifoScheduler
import cmu.pasta.sfuzz.core.scheduler.Scheduler
import cmu.pasta.sfuzz.instrumentation.memory.VolatileManager
import cmu.pasta.sfuzz.runtime.Delegate
import cmu.pasta.sfuzz.runtime.MemoryOpType
import cmu.pasta.sfuzz.runtime.Runtime
import cmu.pasta.sfuzz.runtime.TargetTerminateException
package cmu.pasta.fray.core

import cmu.pasta.fray.core.concurrency.HelperThread
import cmu.pasta.fray.core.concurrency.SynchronizationManager
import cmu.pasta.fray.core.concurrency.locks.CountDownLatchManager
import cmu.pasta.fray.core.concurrency.locks.LockManager
import cmu.pasta.fray.core.concurrency.locks.SemaphoreManager
import cmu.pasta.fray.core.concurrency.operations.*
import cmu.pasta.fray.core.logger.LoggerBase
import cmu.pasta.fray.core.runtime.AnalysisResult
import cmu.pasta.fray.core.scheduler.Choice
import cmu.pasta.fray.core.scheduler.FifoScheduler
import cmu.pasta.fray.core.scheduler.Scheduler
import cmu.pasta.fray.instrumentation.memory.VolatileManager
import cmu.pasta.fray.runtime.Delegate
import cmu.pasta.fray.runtime.MemoryOpType
import cmu.pasta.fray.runtime.Runtime
import cmu.pasta.fray.runtime.TargetTerminateException
import java.io.PrintWriter
import java.io.StringWriter
import java.util.concurrent.CountDownLatch
Expand Down Expand Up @@ -46,7 +46,7 @@ object GlobalContext {
val loggers = mutableListOf<LoggerBase>()
var executor =
Executors.newSingleThreadExecutor { r ->
object : SFuzzThread() {
object : HelperThread() {
override fun run() {
r.run()
}
Expand All @@ -56,7 +56,7 @@ object GlobalContext {
fun bootstrap() {
executor =
Executors.newSingleThreadExecutor { r ->
object : SFuzzThread() {
object : HelperThread() {
override fun run() {
r.run()
}
Expand Down Expand Up @@ -666,7 +666,7 @@ object GlobalContext {
// by scheduled thread.
val currentThread = registeredThreads[currentThreadId]!!
assert(
Thread.currentThread() is SFuzzThread ||
Thread.currentThread() is HelperThread ||
currentThreadId == Thread.currentThread().id ||
currentThread.state == ThreadState.Enabled ||
currentThread.state == ThreadState.Completed)
Expand All @@ -687,7 +687,7 @@ object GlobalContext {
registeredThreads[mainThreadId]!!.unblock()
}
return
} else if (!currentThread.isExiting || Thread.currentThread() is SFuzzThread) {
} else if (!currentThread.isExiting || Thread.currentThread() is HelperThread) {
// Deadlock detected
val e = TargetTerminateException(-1)
reportError(e)
Expand All @@ -698,7 +698,7 @@ object GlobalContext {
step += 1
if (step > maxScheduledStep &&
!currentThread.isExiting &&
Thread.currentThread() !is SFuzzThread &&
Thread.currentThread() !is HelperThread &&
!(mainExiting && currentThreadId == mainThreadId)) {
val e = TargetTerminateException(-2)
reportError(e)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmu.pasta.sfuzz.core
package cmu.pasta.fray.core

fun main(args: Array<String>) {
val config = ConfigurationCommand().apply { main(args) }.toConfiguration()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package cmu.pasta.sfuzz.core
package cmu.pasta.fray.core

import cmu.pasta.sfuzz.core.concurrency.SFuzzThread
import cmu.pasta.sfuzz.runtime.Delegate
import cmu.pasta.sfuzz.runtime.MemoryOpType
import cmu.pasta.sfuzz.runtime.TargetTerminateException
import cmu.pasta.fray.core.concurrency.HelperThread
import cmu.pasta.fray.runtime.Delegate
import cmu.pasta.fray.runtime.MemoryOpType
import cmu.pasta.fray.runtime.TargetTerminateException
import java.util.concurrent.CountDownLatch
import java.util.concurrent.Semaphore
import java.util.concurrent.locks.Condition
Expand All @@ -24,7 +24,7 @@ class RuntimeDelegate : Delegate() {
entered.set(false)
return true
}
if (Thread.currentThread() is SFuzzThread) {
if (Thread.currentThread() is HelperThread) {
entered.set(false)
return true
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
package cmu.pasta.sfuzz.core
package cmu.pasta.fray.core

import cmu.pasta.sfuzz.core.logger.ConsoleLogger
import cmu.pasta.sfuzz.core.runtime.AnalysisResult
import cmu.pasta.sfuzz.runtime.Delegate
import cmu.pasta.sfuzz.runtime.Runtime
import cmu.pasta.fray.core.logger.ConsoleLogger
import cmu.pasta.fray.core.runtime.AnalysisResult
import cmu.pasta.fray.runtime.Delegate
import cmu.pasta.fray.runtime.Runtime
import java.nio.file.Paths
import kotlin.io.path.ExperimentalPathApi
import kotlin.io.path.createDirectories
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package cmu.pasta.sfuzz.core
package cmu.pasta.fray.core

import cmu.pasta.sfuzz.core.concurrency.Sync
import cmu.pasta.sfuzz.core.concurrency.operations.Operation
import cmu.pasta.sfuzz.core.concurrency.operations.ThreadStartOperation
import cmu.pasta.fray.core.concurrency.Sync
import cmu.pasta.fray.core.concurrency.operations.Operation
import cmu.pasta.fray.core.concurrency.operations.ThreadStartOperation

enum class ThreadState {
Enabled,
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package cmu.pasta.fray.core.concurrency

open class HelperThread : Thread() {}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmu.pasta.sfuzz.core.concurrency
package cmu.pasta.fray.core.concurrency

// Simple sync structure to block a thread and wait
// for signals.
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmu.pasta.sfuzz.core.concurrency
package cmu.pasta.fray.core.concurrency

class SynchronizationManager {
val synchronizationPoints = mutableMapOf<Int, Sync>()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

import cmu.pasta.sfuzz.core.GlobalContext
import cmu.pasta.sfuzz.core.ThreadState
import cmu.pasta.sfuzz.core.concurrency.operations.ThreadResumeOperation
import cmu.pasta.fray.core.GlobalContext
import cmu.pasta.fray.core.ThreadState
import cmu.pasta.fray.core.concurrency.operations.ThreadResumeOperation

class CountDownLatchContext(var count: Long) : Interruptible {
val latchWaiters = mutableMapOf<Long, Boolean>()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

import java.util.concurrent.CountDownLatch

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

interface Interruptible {
fun interrupt(tid: Long)
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

interface LockContext : Interruptible {
val wakingThreads: MutableSet<Long>
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

import cmu.pasta.sfuzz.core.ThreadContext
import cmu.pasta.sfuzz.core.ThreadState
import cmu.pasta.sfuzz.core.concurrency.operations.ThreadResumeOperation
import cmu.pasta.fray.core.ThreadContext
import cmu.pasta.fray.core.ThreadState
import cmu.pasta.fray.core.concurrency.operations.ThreadResumeOperation
import java.util.concurrent.locks.Condition
import java.util.concurrent.locks.Lock
import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

import cmu.pasta.sfuzz.core.GlobalContext
import cmu.pasta.sfuzz.core.ThreadState
import cmu.pasta.sfuzz.core.concurrency.operations.ThreadResumeOperation
import cmu.pasta.fray.core.GlobalContext
import cmu.pasta.fray.core.ThreadState
import cmu.pasta.fray.core.concurrency.operations.ThreadResumeOperation

class ReentrantLockContext : LockContext {
private var lockHolder: Long? = null
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

import cmu.pasta.sfuzz.core.GlobalContext
import cmu.pasta.sfuzz.core.ThreadState
import cmu.pasta.sfuzz.core.concurrency.operations.ThreadResumeOperation
import cmu.pasta.fray.core.GlobalContext
import cmu.pasta.fray.core.ThreadState
import cmu.pasta.fray.core.concurrency.operations.ThreadResumeOperation
import java.util.concurrent.locks.ReentrantReadWriteLock.ReadLock

class ReentrantReadWriteLockContext : LockContext {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

import java.lang.ref.PhantomReference
import java.lang.ref.ReferenceQueue
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

import cmu.pasta.sfuzz.core.GlobalContext
import cmu.pasta.sfuzz.core.ThreadState
import cmu.pasta.sfuzz.core.concurrency.operations.ThreadResumeOperation
import cmu.pasta.fray.core.GlobalContext
import cmu.pasta.fray.core.ThreadState
import cmu.pasta.fray.core.concurrency.operations.ThreadResumeOperation

class SemaphoreContext(var totalPermits: Int) : Interruptible {
private val lockWaiters = mutableMapOf<Long, Pair<Int, Boolean>>()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

import java.util.concurrent.Semaphore

Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package cmu.pasta.sfuzz.core.concurrency.locks
package cmu.pasta.fray.core.concurrency.locks

class StampedLockContext : LockContext {
override val wakingThreads: MutableSet<Long> = mutableSetOf()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package cmu.pasta.sfuzz.core.concurrency.operations
package cmu.pasta.fray.core.concurrency.operations

import cmu.pasta.sfuzz.runtime.MemoryOpType
import cmu.pasta.fray.runtime.MemoryOpType

class LockLockOperation(obj: Int) : RacingOperation(obj, MemoryOpType.MEMORY_WRITE) {
override fun isRacing(op: Operation): Boolean {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package cmu.pasta.sfuzz.core.concurrency.operations
package cmu.pasta.fray.core.concurrency.operations

import cmu.pasta.sfuzz.runtime.MemoryOpType
import cmu.pasta.fray.runtime.MemoryOpType

class MemoryOperation(obj: Int, type: MemoryOpType) : RacingOperation(obj, type) {
override fun isRacing(op: Operation): Boolean {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package cmu.pasta.fray.core.concurrency.operations

abstract class NonRacingOperation : Operation {}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package cmu.pasta.sfuzz.core.concurrency.operations
package cmu.pasta.fray.core.concurrency.operations

import cmu.pasta.sfuzz.runtime.MemoryOpType
import cmu.pasta.fray.runtime.MemoryOpType

class ObjectWaitOperation(obj: Int) : RacingOperation(obj, MemoryOpType.MEMORY_WRITE) {
override fun isRacing(op: Operation): Boolean {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package cmu.pasta.fray.core.concurrency.operations

interface Operation {}
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package cmu.pasta.fray.core.concurrency.operations

class PausedOperation : NonRacingOperation() {}
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package cmu.pasta.sfuzz.core.concurrency.operations
package cmu.pasta.fray.core.concurrency.operations

import cmu.pasta.sfuzz.runtime.MemoryOpType
import cmu.pasta.fray.runtime.MemoryOpType

abstract class RacingOperation(val resource: Int, val type: MemoryOpType) : Operation {
abstract fun isRacing(op: Operation): Boolean
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
package cmu.pasta.fray.core.concurrency.operations

class RunningOperation : NonRacingOperation() {}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package cmu.pasta.sfuzz.core.concurrency.operations
package cmu.pasta.fray.core.concurrency.operations

class ThreadResumeOperation : NonRacingOperation() {}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package cmu.pasta.sfuzz.core.concurrency.operations
package cmu.pasta.fray.core.concurrency.operations

class ThreadStartOperation : NonRacingOperation() {}
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
package cmu.pasta.sfuzz.core.exception
package cmu.pasta.fray.core.exception

class SchedulerInternalException(reason: String) : RuntimeException(reason) {}
Loading

0 comments on commit 03d42a2

Please sign in to comment.