Skip to content

Commit

Permalink
Merge pull request #3781 from armanbilge/topic/timer-stealing-without…
Browse files Browse the repository at this point in the history
…-synchronization

Timer stealing without a concurrent data structure
  • Loading branch information
djspiewak authored Feb 19, 2024
2 parents cb68f36 + 0927d34 commit dddaae1
Show file tree
Hide file tree
Showing 19 changed files with 736 additions and 1,532 deletions.
2 changes: 1 addition & 1 deletion .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -609,5 +609,5 @@ jobs:
- name: Submit Dependencies
uses: scalacenter/sbt-dependency-submission@v2
with:
modules-ignore: cats-effect-benchmarks_3 cats-effect-benchmarks_2.12 cats-effect-benchmarks_2.13 cats-effect_3 cats-effect_2.12 cats-effect_2.13 cats-effect-stress-tests_3 cats-effect-stress-tests_2.12 cats-effect-stress-tests_2.13 cats-effect-example_sjs1_3 cats-effect-example_sjs1_2.12 cats-effect-example_sjs1_2.13 rootjs_3 rootjs_2.12 rootjs_2.13 ioapptestsnative_3 ioapptestsnative_2.12 ioapptestsnative_2.13 cats-effect-graalvm-example_3 cats-effect-graalvm-example_2.12 cats-effect-graalvm-example_2.13 cats-effect-tests_sjs1_3 cats-effect-tests_sjs1_2.12 cats-effect-tests_sjs1_2.13 rootjvm_3 rootjvm_2.12 rootjvm_2.13 rootnative_3 rootnative_2.12 rootnative_2.13 cats-effect-example_native0.4_3 cats-effect-example_native0.4_2.12 cats-effect-example_native0.4_2.13 cats-effect-example_3 cats-effect-example_2.12 cats-effect-example_2.13 cats-effect-tests_3 cats-effect-tests_2.12 cats-effect-tests_2.13 ioapptestsjvm_3 ioapptestsjvm_2.12 ioapptestsjvm_2.13 ioapptestsjs_3 ioapptestsjs_2.12 ioapptestsjs_2.13 cats-effect-tests_native0.4_3 cats-effect-tests_native0.4_2.12 cats-effect-tests_native0.4_2.13
modules-ignore: cats-effect-benchmarks_3 cats-effect-benchmarks_2.12 cats-effect-benchmarks_2.13 cats-effect_3 cats-effect_2.12 cats-effect_2.13 cats-effect-example_sjs1_3 cats-effect-example_sjs1_2.12 cats-effect-example_sjs1_2.13 rootjs_3 rootjs_2.12 rootjs_2.13 ioapptestsnative_3 ioapptestsnative_2.12 ioapptestsnative_2.13 cats-effect-graalvm-example_3 cats-effect-graalvm-example_2.12 cats-effect-graalvm-example_2.13 cats-effect-tests_sjs1_3 cats-effect-tests_sjs1_2.12 cats-effect-tests_sjs1_2.13 rootjvm_3 rootjvm_2.12 rootjvm_2.13 rootnative_3 rootnative_2.12 rootnative_2.13 cats-effect-example_native0.4_3 cats-effect-example_native0.4_2.12 cats-effect-example_native0.4_2.13 cats-effect-example_3 cats-effect-example_2.12 cats-effect-example_2.13 cats-effect-tests_3 cats-effect-tests_2.12 cats-effect-tests_2.13 ioapptestsjvm_3 ioapptestsjvm_2.12 ioapptestsjvm_2.13 ioapptestsjs_3 ioapptestsjs_2.12 ioapptestsjs_2.13 cats-effect-tests_native0.4_3 cats-effect-tests_native0.4_2.12 cats-effect-tests_native0.4_2.13
configs-ignore: test scala-tool scala-doc-tool test-internal
8 changes: 8 additions & 0 deletions NOTICE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
cats-effect
Copyright 2020-2024 Typelevel
Licensed under Apache License 2.0 (see LICENSE)

This software contains portions of code derived from scala-js
https://github.com/scala-js/scala-js
Copyright EPFL
Licensed under Apache License 2.0 (see LICENSE)
22 changes: 4 additions & 18 deletions build.sbt
Original file line number Diff line number Diff line change
Expand Up @@ -364,7 +364,6 @@ val nativeProjects: Seq[ProjectReference] =
val undocumentedRefs =
jsProjects ++ nativeProjects ++ Seq[ProjectReference](
benchmarks,
stressTests,
example.jvm,
graalVMExample,
tests.jvm,
Expand Down Expand Up @@ -394,8 +393,7 @@ lazy val rootJVM = project
std.jvm,
example.jvm,
graalVMExample,
benchmarks,
stressTests)
benchmarks)
.enablePlugins(NoPublishPlugin)

lazy val rootJS = project.aggregate(jsProjects: _*).enablePlugins(NoPublishPlugin)
Expand All @@ -419,7 +417,6 @@ lazy val kernel = crossProject(JSPlatform, JVMPlatform, NativePlatform)
ProblemFilters.exclude[Problem]("cats.effect.kernel.GenConcurrent#Memoize*")
)
)
.disablePlugins(JCStressPlugin)
.jsSettings(
libraryDependencies += "org.scala-js" %%% "scala-js-macrotask-executor" % MacrotaskExecutorVersion % Test
)
Expand Down Expand Up @@ -456,7 +453,6 @@ lazy val kernelTestkit = crossProject(JSPlatform, JVMPlatform, NativePlatform)
"cats.effect.kernel.testkit.TestContext#Task.copy")
)
)
.disablePlugins(JCStressPlugin)

/**
* The laws which constrain the abstractions. This is split from kernel to avoid jar file and
Expand All @@ -472,7 +468,6 @@ lazy val laws = crossProject(JSPlatform, JVMPlatform, NativePlatform)
"org.typelevel" %%% "cats-laws" % CatsVersion,
"org.typelevel" %%% "discipline-specs2" % DisciplineVersion % Test)
)
.disablePlugins(JCStressPlugin)

/**
* Concrete, production-grade implementations of the abstractions. Or, more simply-put: IO. Also
Expand Down Expand Up @@ -668,6 +663,8 @@ lazy val core = crossProject(JSPlatform, JVMPlatform, NativePlatform)
// #3787, internal utility that was no longer needed
ProblemFilters.exclude[MissingClassProblem]("cats.effect.Thunk"),
ProblemFilters.exclude[MissingClassProblem]("cats.effect.Thunk$"),
// #3781, replaced TimerSkipList with TimerHeap
ProblemFilters.exclude[MissingClassProblem]("cats.effect.unsafe.TimerSkipList*"),
// #3943, refactored internal private CallbackStack data structure
ProblemFilters.exclude[IncompatibleResultTypeProblem]("cats.effect.CallbackStack.push"),
ProblemFilters.exclude[DirectMissingMethodProblem](
Expand Down Expand Up @@ -882,7 +879,6 @@ lazy val core = crossProject(JSPlatform, JVMPlatform, NativePlatform)
ProblemFilters.exclude[MissingClassProblem]("cats.effect.unsafe.QueueExecutorScheduler$")
)
)
.disablePlugins(JCStressPlugin)

/**
* Test support for the core project, providing various helpful instances like ScalaCheck
Expand All @@ -898,7 +894,6 @@ lazy val testkit = crossProject(JSPlatform, JVMPlatform, NativePlatform)
"org.specs2" %%% "specs2-core" % Specs2Version % Test
)
)
.disablePlugins(JCStressPlugin)

/**
* Unit tests for the core project, utilizing the support provided by testkit.
Expand Down Expand Up @@ -1050,7 +1045,6 @@ lazy val std = crossProject(JSPlatform, JVMPlatform, NativePlatform)
ProblemFilters.exclude[MissingClassProblem]("cats.effect.std.JavaSecureRandom$")
)
)
.disablePlugins(JCStressPlugin)

/**
* A trivial pair of trivial example apps primarily used to show that IOApp works as a practical
Expand Down Expand Up @@ -1084,20 +1078,12 @@ lazy val benchmarks = project
.dependsOn(core.jvm, std.jvm)
.settings(
name := "cats-effect-benchmarks",
fork := true,
javaOptions ++= Seq(
"-Dcats.effect.tracing.mode=none",
"-Dcats.effect.tracing.exceptions.enhanced=false"))
.enablePlugins(NoPublishPlugin, JmhPlugin)

lazy val stressTests = project
.in(file("stress-tests"))
.dependsOn(core.jvm, std.jvm)
.settings(
name := "cats-effect-stress-tests",
Jcstress / version := "0.16"
)
.enablePlugins(NoPublishPlugin, JCStressPlugin)

lazy val docs = project
.in(file("site-docs"))
.dependsOn(core.jvm)
Expand Down

This file was deleted.

Loading

0 comments on commit dddaae1

Please sign in to comment.