Skip to content

Commit deb5002

Browse files
Abduqodiri Qurbonzodaadam-enko
andauthored
Mark runtime APIs that are unintentionally public with @internalapi (#205)
--------- Co-authored-by: Adam <[email protected]>
1 parent b8e07eb commit deb5002

31 files changed

+138
-618
lines changed

build.gradle

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -71,6 +71,8 @@ apiValidation {
7171
"integration",
7272
]
7373

74+
nonPublicMarkers += ["kotlinx.benchmark.internal.KotlinxBenchmarkRuntimeInternalApi"]
75+
7476
klib {
7577
it.enabled = true
7678
}

plugin/main/src/kotlinx/benchmark/gradle/SuiteSourceGenerator.kt

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ class SuiteSourceGenerator(val title: String, val module: ModuleDescriptor, val
7575
val mainBenchmarkPackage = "kotlinx.benchmark.generated"
7676

7777
val suppressUnusedParameter = AnnotationSpec.builder(Suppress::class).addMember("\"UNUSED_PARAMETER\"").build()
78+
val optInRuntimeInternalApi = AnnotationSpec.builder(ClassName("kotlin", "OptIn")).addMember(
79+
"kotlinx.benchmark.internal.KotlinxBenchmarkRuntimeInternalApi::class"
80+
).build()
7881
}
7982

8083
private val executorType = ClassName.bestGuess(platform.executorClass)
@@ -90,6 +93,7 @@ class SuiteSourceGenerator(val title: String, val module: ModuleDescriptor, val
9093
private fun generateRunnerMain() {
9194
val file = FileSpec.builder(mainBenchmarkPackage, "BenchmarkSuite").apply {
9295
function("main") {
96+
addAnnotation(optInRuntimeInternalApi)
9397
val array = ClassName("kotlin", "Array")
9498
val arrayOfStrings = array.parameterizedBy(WildcardTypeName.producerOf(String::class))
9599
addParameter("args", arrayOfStrings)
@@ -170,6 +174,7 @@ class SuiteSourceGenerator(val title: String, val module: ModuleDescriptor, val
170174
val file = FileSpec.builder(benchmarkPackageName, benchmarkName).apply {
171175
declareObject(benchmarkClass) {
172176
addAnnotation(suppressUnusedParameter)
177+
addAnnotation(optInRuntimeInternalApi)
173178

174179
function(setupFunctionName) {
175180
addModifiers(KModifier.PRIVATE)
Lines changed: 1 addition & 267 deletions
Original file line numberDiff line numberDiff line change
@@ -1,269 +1,3 @@
1-
public final class kotlinx/benchmark/BenchmarkConfiguration {
2-
public static final field Companion Lkotlinx/benchmark/BenchmarkConfiguration$Companion;
3-
public synthetic fun <init> (IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/TimeUnit;Lorg/openjdk/jmh/annotations/Mode;Ljava/util/Map;Lkotlin/jvm/internal/DefaultConstructorMarker;)V
4-
public fun <init> (Lkotlinx/benchmark/RunnerConfiguration;Lkotlinx/benchmark/SuiteDescriptor;)V
5-
public final fun getAdvanced ()Ljava/util/Map;
6-
public final fun getIterationTime ()J
7-
public final fun getIterationTimeUnit ()Ljava/util/concurrent/TimeUnit;
8-
public final fun getIterations ()I
9-
public final fun getMode ()Lorg/openjdk/jmh/annotations/Mode;
10-
public final fun getOutputTimeUnit ()Ljava/util/concurrent/TimeUnit;
11-
public final fun getWarmups ()I
12-
public fun toString ()Ljava/lang/String;
13-
}
14-
15-
public final class kotlinx/benchmark/BenchmarkConfiguration$Companion {
16-
public final fun parse (Ljava/lang/String;)Lkotlinx/benchmark/BenchmarkConfiguration;
17-
}
18-
19-
public abstract class kotlinx/benchmark/BenchmarkDescriptor {
20-
public fun <init> (Ljava/lang/String;Lkotlinx/benchmark/SuiteDescriptor;Lorg/openjdk/jmh/infra/Blackhole;)V
21-
public final fun getBlackhole ()Lorg/openjdk/jmh/infra/Blackhole;
22-
public final fun getName ()Ljava/lang/String;
23-
public final fun getSuite ()Lkotlinx/benchmark/SuiteDescriptor;
24-
}
25-
26-
public class kotlinx/benchmark/BenchmarkDescriptorWithBlackholeParameter : kotlinx/benchmark/BenchmarkDescriptor {
27-
public fun <init> (Ljava/lang/String;Lkotlinx/benchmark/SuiteDescriptor;Lorg/openjdk/jmh/infra/Blackhole;Lkotlin/jvm/functions/Function2;)V
28-
public final fun getFunction ()Lkotlin/jvm/functions/Function2;
29-
}
30-
31-
public class kotlinx/benchmark/BenchmarkDescriptorWithNoBlackholeParameter : kotlinx/benchmark/BenchmarkDescriptor {
32-
public fun <init> (Ljava/lang/String;Lkotlinx/benchmark/SuiteDescriptor;Lorg/openjdk/jmh/infra/Blackhole;Lkotlin/jvm/functions/Function1;)V
33-
public final fun getFunction ()Lkotlin/jvm/functions/Function1;
34-
}
35-
36-
public abstract class kotlinx/benchmark/BenchmarkProgress {
37-
public static final field Companion Lkotlinx/benchmark/BenchmarkProgress$Companion;
38-
public fun <init> ()V
39-
public abstract fun endBenchmark (Ljava/lang/String;Ljava/lang/String;Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;Ljava/lang/String;)V
40-
public abstract fun endBenchmarkException (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
41-
public abstract fun endSuite (Ljava/lang/String;Ljava/lang/String;)V
42-
public abstract fun output (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
43-
public abstract fun startBenchmark (Ljava/lang/String;Ljava/lang/String;)V
44-
public abstract fun startSuite (Ljava/lang/String;)V
45-
}
46-
47-
public final class kotlinx/benchmark/BenchmarkProgress$Companion {
48-
public final fun create (Ljava/lang/String;Lkotlin/jvm/functions/Function0;)Lkotlinx/benchmark/BenchmarkProgress;
49-
public static synthetic fun create$default (Lkotlinx/benchmark/BenchmarkProgress$Companion;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILjava/lang/Object;)Lkotlinx/benchmark/BenchmarkProgress;
50-
}
51-
52-
public final class kotlinx/benchmark/BenchmarkProgress$FinishStatus : java/lang/Enum {
53-
public static final field Failure Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;
54-
public static final field Success Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;
55-
public static fun getEntries ()Lkotlin/enums/EnumEntries;
56-
public static fun valueOf (Ljava/lang/String;)Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;
57-
public static fun values ()[Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;
58-
}
59-
60-
public abstract class kotlinx/benchmark/BenchmarkReportFormatter {
61-
public static final field Companion Lkotlinx/benchmark/BenchmarkReportFormatter$Companion;
62-
public abstract fun format (Ljava/util/Collection;)Ljava/lang/String;
63-
}
64-
65-
public final class kotlinx/benchmark/BenchmarkReportFormatter$Companion {
66-
public final fun create (Ljava/lang/String;)Lkotlinx/benchmark/BenchmarkReportFormatter;
67-
}
68-
69-
public final class kotlinx/benchmark/CommonBenchmarkAnnotationsKt {
70-
public static final fun toMode (Ljava/lang/String;)Lorg/openjdk/jmh/annotations/Mode;
71-
public static final fun toMultiplier (Ljava/util/concurrent/TimeUnit;)J
72-
public static final fun toSecondsMultiplier (Ljava/util/concurrent/TimeUnit;)D
73-
public static final fun toText (Ljava/util/concurrent/TimeUnit;)Ljava/lang/String;
74-
public static final fun toText (Lorg/openjdk/jmh/annotations/Mode;)Ljava/lang/String;
75-
}
76-
77-
public class kotlinx/benchmark/CommonBlackhole {
78-
public fun <init> ()V
79-
public final fun consume (B)V
80-
public final fun consume (C)V
81-
public final fun consume (D)V
82-
public final fun consume (F)V
83-
public final fun consume (I)V
84-
public final fun consume (J)V
85-
public final fun consume (Ljava/lang/Object;)V
86-
public final fun consume (S)V
87-
public final fun consume (Z)V
88-
public final fun flushMe ()V
89-
}
90-
91-
public abstract class kotlinx/benchmark/CommonSuiteExecutor : kotlinx/benchmark/SuiteExecutor {
92-
public fun <init> (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V
93-
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
94-
protected fun createIterationMeasurer (Ljava/lang/Object;Lkotlinx/benchmark/BenchmarkDescriptor;Lkotlinx/benchmark/BenchmarkConfiguration;I)Lkotlin/jvm/functions/Function0;
95-
public fun run (Lkotlinx/benchmark/RunnerConfiguration;Ljava/util/List;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
96-
}
97-
98-
public final class kotlinx/benchmark/ConsoleBenchmarkProgress : kotlinx/benchmark/BenchmarkProgress {
99-
public fun <init> ()V
100-
public fun endBenchmark (Ljava/lang/String;Ljava/lang/String;Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;Ljava/lang/String;)V
101-
public fun endBenchmarkException (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
102-
public fun endSuite (Ljava/lang/String;Ljava/lang/String;)V
103-
public fun output (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
104-
public fun startBenchmark (Ljava/lang/String;Ljava/lang/String;)V
105-
public fun startSuite (Ljava/lang/String;)V
106-
}
107-
108-
public final class kotlinx/benchmark/DefaultDescriptorParameters {
109-
public static final field INSTANCE Lkotlinx/benchmark/DefaultDescriptorParameters;
110-
public final fun getIterationTime ()Lkotlinx/benchmark/IterationTime;
111-
public final fun getIterations ()I
112-
public final fun getMode ()Lorg/openjdk/jmh/annotations/Mode;
113-
public final fun getOutputTimeUnit ()Ljava/util/concurrent/TimeUnit;
114-
public final fun getWarmups ()I
115-
}
116-
117-
public class kotlinx/benchmark/IntelliJBenchmarkProgress : kotlinx/benchmark/BenchmarkProgress {
118-
public fun <init> ()V
119-
public fun endBenchmark (Ljava/lang/String;Ljava/lang/String;Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;Ljava/lang/String;)V
120-
public fun endBenchmarkException (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
121-
public fun endSuite (Ljava/lang/String;Ljava/lang/String;)V
122-
protected final fun getCurrentClass ()Ljava/lang/String;
123-
protected final fun getCurrentStatus ()Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;
124-
protected final fun getSuiteStatus ()Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;
125-
public fun output (Ljava/lang/String;Ljava/lang/String;Ljava/lang/String;)V
126-
protected final fun setCurrentClass (Ljava/lang/String;)V
127-
protected final fun setCurrentStatus (Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;)V
128-
protected final fun setSuiteStatus (Lkotlinx/benchmark/BenchmarkProgress$FinishStatus;)V
129-
public fun startBenchmark (Ljava/lang/String;Ljava/lang/String;)V
130-
public fun startSuite (Ljava/lang/String;)V
131-
}
132-
133-
public final class kotlinx/benchmark/IterationTime {
134-
public fun <init> (JLjava/util/concurrent/TimeUnit;)V
135-
public final fun component1 ()J
136-
public final fun component2 ()Ljava/util/concurrent/TimeUnit;
137-
public final fun copy (JLjava/util/concurrent/TimeUnit;)Lkotlinx/benchmark/IterationTime;
138-
public static synthetic fun copy$default (Lkotlinx/benchmark/IterationTime;JLjava/util/concurrent/TimeUnit;ILjava/lang/Object;)Lkotlinx/benchmark/IterationTime;
139-
public fun equals (Ljava/lang/Object;)Z
140-
public final fun getTimeUnit ()Ljava/util/concurrent/TimeUnit;
141-
public final fun getValue ()J
142-
public fun hashCode ()I
143-
public fun toString ()Ljava/lang/String;
144-
}
145-
146-
public final class kotlinx/benchmark/JvmBlackholeKt {
147-
public static final fun flush (Lorg/openjdk/jmh/infra/Blackhole;)V
148-
}
149-
150-
public final class kotlinx/benchmark/ReportBenchmarkResult {
151-
public fun <init> (Lkotlinx/benchmark/BenchmarkConfiguration;Lkotlinx/benchmark/BenchmarkDescriptor;Ljava/util/Map;DDLkotlin/Pair;Ljava/util/Map;[D)V
152-
public final fun getBenchmark ()Lkotlinx/benchmark/BenchmarkDescriptor;
153-
public final fun getConfidence ()Lkotlin/Pair;
154-
public final fun getConfig ()Lkotlinx/benchmark/BenchmarkConfiguration;
155-
public final fun getError ()D
156-
public final fun getParams ()Ljava/util/Map;
157-
public final fun getPercentiles ()Ljava/util/Map;
158-
public final fun getScore ()D
159-
public final fun getValues ()[D
160-
}
161-
162-
public final class kotlinx/benchmark/ReportBenchmarksStatistics {
163-
public static final field Companion Lkotlinx/benchmark/ReportBenchmarksStatistics$Companion;
164-
public fun <init> ([D)V
165-
public final fun getSize ()I
166-
public final fun getValues ()[D
167-
public final fun max ()D
168-
public final fun mean ()D
169-
public final fun median ()D
170-
public final fun min ()D
171-
public final fun standardDeviation ()D
172-
public final fun valueAt (D)D
173-
}
174-
175-
public final class kotlinx/benchmark/ReportBenchmarksStatistics$Companion {
176-
public final fun createResult (Lkotlinx/benchmark/BenchmarkDescriptor;Ljava/util/Map;Lkotlinx/benchmark/BenchmarkConfiguration;[D)Lkotlinx/benchmark/ReportBenchmarkResult;
177-
}
178-
179-
public final class kotlinx/benchmark/ReportBenchmarksStatisticsKt {
180-
public static final fun formatSignificant (DI)Ljava/lang/String;
181-
public static final fun isApproximateZero (D)Z
182-
public static final fun isNaNOrZero (D)Z
183-
public static final fun nanosToSample (DLorg/openjdk/jmh/annotations/Mode;Ljava/util/concurrent/TimeUnit;)D
184-
public static final fun nanosToText (DLorg/openjdk/jmh/annotations/Mode;Ljava/util/concurrent/TimeUnit;)Ljava/lang/String;
185-
public static final fun sampleToText (DLorg/openjdk/jmh/annotations/Mode;Ljava/util/concurrent/TimeUnit;)Ljava/lang/String;
186-
public static final fun unitText (Lorg/openjdk/jmh/annotations/Mode;Ljava/util/concurrent/TimeUnit;)Ljava/lang/String;
187-
}
188-
189-
public final class kotlinx/benchmark/RunnerConfiguration {
190-
public fun <init> (Ljava/lang/String;)V
191-
public final fun getAdvanced ()Ljava/util/Map;
192-
public final fun getExclude ()Ljava/util/List;
193-
public final fun getInclude ()Ljava/util/List;
194-
public final fun getIterationTime ()Ljava/lang/Long;
195-
public final fun getIterationTimeUnit ()Ljava/util/concurrent/TimeUnit;
196-
public final fun getIterations ()Ljava/lang/Integer;
197-
public final fun getMode ()Lorg/openjdk/jmh/annotations/Mode;
198-
public final fun getName ()Ljava/lang/String;
199-
public final fun getOutputTimeUnit ()Ljava/util/concurrent/TimeUnit;
200-
public final fun getParams ()Ljava/util/Map;
201-
public final fun getReportFile ()Ljava/lang/String;
202-
public final fun getReportFormat ()Ljava/lang/String;
203-
public final fun getTraceFormat ()Ljava/lang/String;
204-
public final fun getWarmups ()Ljava/lang/Integer;
205-
public fun toString ()Ljava/lang/String;
206-
}
207-
208-
public class kotlinx/benchmark/SuiteDescriptor {
209-
public fun <init> (Ljava/lang/String;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;IILkotlinx/benchmark/IterationTime;Ljava/util/concurrent/TimeUnit;Lorg/openjdk/jmh/annotations/Mode;)V
210-
public synthetic fun <init> (Ljava/lang/String;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function2;Lkotlin/jvm/functions/Function1;Lkotlin/jvm/functions/Function1;Ljava/util/List;Ljava/util/Map;IILkotlinx/benchmark/IterationTime;Ljava/util/concurrent/TimeUnit;Lorg/openjdk/jmh/annotations/Mode;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
211-
public final fun add (Lkotlinx/benchmark/BenchmarkDescriptor;)V
212-
public final fun getBenchmarks ()Ljava/util/List;
213-
public final fun getDefaultParameters ()Ljava/util/Map;
214-
public final fun getFactory ()Lkotlin/jvm/functions/Function0;
215-
public final fun getIterationTime ()Lkotlinx/benchmark/IterationTime;
216-
public final fun getIterations ()I
217-
public final fun getMode ()Lorg/openjdk/jmh/annotations/Mode;
218-
public final fun getName ()Ljava/lang/String;
219-
public final fun getOutputTimeUnit ()Ljava/util/concurrent/TimeUnit;
220-
public final fun getParameters ()Ljava/util/List;
221-
public final fun getParametrize ()Lkotlin/jvm/functions/Function2;
222-
public final fun getSetup ()Lkotlin/jvm/functions/Function1;
223-
public final fun getTeardown ()Lkotlin/jvm/functions/Function1;
224-
public final fun getWarmups ()I
225-
}
226-
227-
public abstract class kotlinx/benchmark/SuiteExecutor {
228-
public fun <init> (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;)V
229-
public synthetic fun <init> (Ljava/lang/String;Ljava/lang/String;Lkotlin/jvm/functions/Function0;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
230-
public final fun getExecutionName ()Ljava/lang/String;
231-
public final fun getReporter ()Lkotlinx/benchmark/BenchmarkProgress;
232-
protected final fun id (Ljava/lang/String;Ljava/util/Map;)Ljava/lang/String;
233-
public final fun result (Lkotlinx/benchmark/ReportBenchmarkResult;)V
234-
public final fun run ()V
235-
public abstract fun run (Lkotlinx/benchmark/RunnerConfiguration;Ljava/util/List;Lkotlin/jvm/functions/Function0;Lkotlin/jvm/functions/Function0;)V
236-
public final fun suite (Lkotlinx/benchmark/SuiteDescriptor;)V
237-
}
238-
239-
public final class kotlinx/benchmark/SuiteExecutorKt {
240-
public static final fun runWithParameters (Ljava/util/List;Ljava/util/Map;Ljava/util/Map;Lkotlin/jvm/functions/Function1;)V
241-
}
242-
243-
public final class kotlinx/benchmark/jvm/JmhOutputFormat : kotlinx/benchmark/jvm/PrintOutputFormat {
244-
public fun <init> (Lkotlinx/benchmark/BenchmarkProgress;Ljava/lang/String;)V
245-
public fun endBenchmark (Lorg/openjdk/jmh/results/BenchmarkResult;)V
246-
public fun endRun (Ljava/util/Collection;)V
247-
public fun iteration (Lorg/openjdk/jmh/infra/BenchmarkParams;Lorg/openjdk/jmh/infra/IterationParams;I)V
248-
public fun iterationResult (Lorg/openjdk/jmh/infra/BenchmarkParams;Lorg/openjdk/jmh/infra/IterationParams;ILorg/openjdk/jmh/results/IterationResult;)V
249-
public fun println (Ljava/lang/String;)V
250-
public fun startBenchmark (Lorg/openjdk/jmh/infra/BenchmarkParams;)V
251-
public fun startRun ()V
252-
}
253-
254-
public final class kotlinx/benchmark/jvm/JvmBenchmarkRunnerKt {
255-
public static final fun main ([Ljava/lang/String;)V
256-
}
257-
258-
public abstract class kotlinx/benchmark/jvm/PrintOutputFormat : org/openjdk/jmh/runner/format/OutputFormat {
259-
public fun <init> (Ljava/io/PrintStream;Lorg/openjdk/jmh/runner/options/VerboseMode;)V
260-
public synthetic fun <init> (Ljava/io/PrintStream;Lorg/openjdk/jmh/runner/options/VerboseMode;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
261-
public fun close ()V
262-
public fun flush ()V
263-
public fun print (Ljava/lang/String;)V
264-
public fun println (Ljava/lang/String;)V
265-
public fun verbosePrintln (Ljava/lang/String;)V
266-
public fun write (I)V
267-
public fun write ([B)V
1+
public abstract interface annotation class kotlinx/benchmark/internal/KotlinxBenchmarkRuntimeInternalApi : java/lang/annotation/Annotation {
2682
}
2693

0 commit comments

Comments
 (0)