From 08f9b6f2ae1491fc59c98d224b1e71c22ac3da60 Mon Sep 17 00:00:00 2001 From: Alex Zenla Date: Sat, 26 Jul 2025 15:49:44 -0700 Subject: [PATCH] code cleanup --- .../gay/pizza/pork/buildext/PorkAstPlugin.kt | 1 - .../pizza/pork/buildext/PorkStdlibPlugin.kt | 1 - .../pizza/pork/buildext/ast/AstPrimitive.kt | 2 +- .../kotlin/gay/pizza/pork/common/Globals.kt | 4 ++-- .../pizza/pork/evaluator/EvaluatorProvider.kt | 1 - .../gay/pizza/pork/ffi/FfiPrimitiveType.kt | 22 +++++++++---------- .../gay/pizza/pork/ffi/FfiUnixPlatform.kt | 2 -- .../gay/pizza/pork/ffi/FfiWindowsPlatform.kt | 2 -- .../kotlin/gay/pizza/pork/minimal/Tool.kt | 5 ----- .../gay/pizza/pork/parser/ParserBase.kt | 6 +---- .../pork/tokenizer/MatchedCharConsumer.kt | 1 - .../gay/pizza/pork/vm/InternalMachine.kt | 2 +- .../gay/pizza/pork/vm/ops/JumpIfOpHandler.kt | 1 - .../vm/ops/OptimizedNativeTypeOpHandler.kt | 1 - 14 files changed, 15 insertions(+), 36 deletions(-) diff --git a/buildext/src/main/kotlin/gay/pizza/pork/buildext/PorkAstPlugin.kt b/buildext/src/main/kotlin/gay/pizza/pork/buildext/PorkAstPlugin.kt index 703d96f..99ee481 100644 --- a/buildext/src/main/kotlin/gay/pizza/pork/buildext/PorkAstPlugin.kt +++ b/buildext/src/main/kotlin/gay/pizza/pork/buildext/PorkAstPlugin.kt @@ -2,7 +2,6 @@ package gay.pizza.pork.buildext import org.gradle.api.Plugin import org.gradle.api.Project -import org.gradle.api.Task import org.gradle.api.tasks.TaskProvider import org.gradle.kotlin.dsl.create import org.gradle.kotlin.dsl.getByType diff --git a/buildext/src/main/kotlin/gay/pizza/pork/buildext/PorkStdlibPlugin.kt b/buildext/src/main/kotlin/gay/pizza/pork/buildext/PorkStdlibPlugin.kt index 43a0257..256bfad 100644 --- a/buildext/src/main/kotlin/gay/pizza/pork/buildext/PorkStdlibPlugin.kt +++ b/buildext/src/main/kotlin/gay/pizza/pork/buildext/PorkStdlibPlugin.kt @@ -3,7 +3,6 @@ package gay.pizza.pork.buildext import org.gradle.api.Plugin import org.gradle.api.Project import org.gradle.api.tasks.TaskProvider -import org.gradle.kotlin.dsl.create import org.gradle.kotlin.dsl.register class PorkStdlibPlugin : Plugin { diff --git a/buildext/src/main/kotlin/gay/pizza/pork/buildext/ast/AstPrimitive.kt b/buildext/src/main/kotlin/gay/pizza/pork/buildext/ast/AstPrimitive.kt index 8ceb57c..d7122eb 100644 --- a/buildext/src/main/kotlin/gay/pizza/pork/buildext/ast/AstPrimitive.kt +++ b/buildext/src/main/kotlin/gay/pizza/pork/buildext/ast/AstPrimitive.kt @@ -1,6 +1,6 @@ package gay.pizza.pork.buildext.ast -enum class AstPrimitive(val id: kotlin.String) { +enum class AstPrimitive(val id: String) { Boolean("Boolean"), String("String"), Int("Int"), diff --git a/common/src/main/kotlin/gay/pizza/pork/common/Globals.kt b/common/src/main/kotlin/gay/pizza/pork/common/Globals.kt index 6eb7f4e..77ffe0e 100644 --- a/common/src/main/kotlin/gay/pizza/pork/common/Globals.kt +++ b/common/src/main/kotlin/gay/pizza/pork/common/Globals.kt @@ -1,9 +1,9 @@ package gay.pizza.pork.common -@Suppress("NOTHING_TO_INLINE", "UnusedReceiverParameter", "unused") +@Suppress("NOTHING_TO_INLINE", "UnusedReceiverParameter") inline fun Any?.markIsUnused() {} -@Suppress("NOTHING_TO_INLINE", "unused") +@Suppress("NOTHING_TO_INLINE") inline fun unused(value: Any?) { value.markIsUnused() } diff --git a/evaluator/src/main/kotlin/gay/pizza/pork/evaluator/EvaluatorProvider.kt b/evaluator/src/main/kotlin/gay/pizza/pork/evaluator/EvaluatorProvider.kt index 53381c4..41c7e94 100644 --- a/evaluator/src/main/kotlin/gay/pizza/pork/evaluator/EvaluatorProvider.kt +++ b/evaluator/src/main/kotlin/gay/pizza/pork/evaluator/EvaluatorProvider.kt @@ -4,7 +4,6 @@ import gay.pizza.pork.ast.gen.Symbol import gay.pizza.pork.execution.ExecutionContext import gay.pizza.pork.execution.ExecutionContextProvider import gay.pizza.pork.execution.ExecutionOptions -import gay.pizza.pork.execution.NativeRegistry import gay.pizza.pork.frontend.ImportLocator import gay.pizza.pork.frontend.World diff --git a/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiPrimitiveType.kt b/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiPrimitiveType.kt index cb77521..b8b879e 100644 --- a/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiPrimitiveType.kt +++ b/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiPrimitiveType.kt @@ -5,8 +5,8 @@ import com.kenai.jffi.MemoryIO import gay.pizza.pork.execution.None enum class FfiPrimitiveType( - val id: kotlin.String, - override val size: kotlin.Long, + val id: String, + override val size: Long, val numberConvert: (Number.() -> Number)? = null, val nullableConversion: (Any?.() -> Any)? = null, val notNullConversion: (Any.() -> Any)? = null @@ -22,9 +22,7 @@ enum class FfiPrimitiveType( UnsignedLong("unsigned long", 8, numberConvert = { toLong() }), Double("double", 8, numberConvert = { toDouble() }), String("char*", 8, nullableConversion = { - if (this is FfiString) { - this - } else FfiString.allocate(toString()) + this as? FfiString ?: FfiString.allocate(toString()) }), Pointer("void*", 8, nullableConversion = { when (this) { @@ -52,7 +50,7 @@ enum class FfiPrimitiveType( } } - private fun notNullConvert(type: kotlin.String, value: Any?, into: Any.() -> T): T { + private fun notNullConvert(type: String, value: Any?, into: Any.() -> T): T { if (value == null) { throw RuntimeException("Null values cannot be used for converting to type $type") } @@ -66,7 +64,7 @@ enum class FfiPrimitiveType( return into(value) } - private fun numberConvert(type: kotlin.String, value: Any?, into: Number.() -> T): T { + private fun numberConvert(type: String, value: Any?, into: Number.() -> T): T { if (value == null || value == None) { throw RuntimeException("Null values cannot be used for converting to numeric type $type") } @@ -90,7 +88,7 @@ enum class FfiPrimitiveType( return ffi } - override fun read(address: FfiAddress, offset: kotlin.Int): Any { + override fun read(address: FfiAddress, offset: Int): Any { val actual = address.location + offset return when (this) { UnsignedByte, Byte -> MemoryIO.getInstance().getByte(actual) @@ -107,10 +105,10 @@ enum class FfiPrimitiveType( companion object { fun push(buffer: InvocationBuffer, value: Any): Unit = when (value) { - is kotlin.Byte -> buffer.putByte(value.toInt()) - is kotlin.Short -> buffer.putShort(value.toInt()) - is kotlin.Int -> buffer.putInt(value) - is kotlin.Long -> buffer.putLong(value) + is Byte -> buffer.putByte(value.toInt()) + is Short -> buffer.putShort(value.toInt()) + is Int -> buffer.putInt(value) + is Long -> buffer.putLong(value) is FfiAddress -> buffer.putAddress(value.location) is FfiString -> buffer.putAddress(value.address.location) else -> throw RuntimeException("Unknown buffer insertion: $value (${value.javaClass.name})") diff --git a/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiUnixPlatform.kt b/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiUnixPlatform.kt index 398390b..97829c9 100644 --- a/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiUnixPlatform.kt +++ b/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiUnixPlatform.kt @@ -1,7 +1,5 @@ package gay.pizza.pork.ffi -import java.nio.file.Path - object FfiUnixPlatform : FfiPlatform { override fun findLibrary(name: String): String? = null } diff --git a/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiWindowsPlatform.kt b/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiWindowsPlatform.kt index 2e95cc4..4ad235b 100644 --- a/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiWindowsPlatform.kt +++ b/ffi/src/main/kotlin/gay/pizza/pork/ffi/FfiWindowsPlatform.kt @@ -1,7 +1,5 @@ package gay.pizza.pork.ffi -import java.nio.file.Path - object FfiWindowsPlatform : FfiPlatform { override fun findLibrary(name: String): String? = null } diff --git a/minimal/src/main/kotlin/gay/pizza/pork/minimal/Tool.kt b/minimal/src/main/kotlin/gay/pizza/pork/minimal/Tool.kt index 75bcf9a..cd0cca6 100644 --- a/minimal/src/main/kotlin/gay/pizza/pork/minimal/Tool.kt +++ b/minimal/src/main/kotlin/gay/pizza/pork/minimal/Tool.kt @@ -4,15 +4,10 @@ import gay.pizza.pork.ast.gen.CompilationUnit import gay.pizza.pork.ast.gen.NodeVisitor import gay.pizza.pork.ast.gen.Symbol import gay.pizza.pork.ast.gen.visit -import gay.pizza.pork.evaluator.* import gay.pizza.pork.execution.ExecutionContext import gay.pizza.pork.execution.ExecutionContextProvider import gay.pizza.pork.execution.ExecutionOptions -import gay.pizza.pork.execution.InternalNativeProvider -import gay.pizza.pork.execution.NativeRegistry -import gay.pizza.pork.ffi.FfiNativeProvider import gay.pizza.pork.ffi.JavaAutogenContentSource -import gay.pizza.pork.ffi.JavaNativeProvider import gay.pizza.pork.frontend.ContentSource import gay.pizza.pork.frontend.ImportLocator import gay.pizza.pork.frontend.DynamicImportSource diff --git a/parser/src/main/kotlin/gay/pizza/pork/parser/ParserBase.kt b/parser/src/main/kotlin/gay/pizza/pork/parser/ParserBase.kt index 032661c..f94587c 100644 --- a/parser/src/main/kotlin/gay/pizza/pork/parser/ParserBase.kt +++ b/parser/src/main/kotlin/gay/pizza/pork/parser/ParserBase.kt @@ -6,11 +6,7 @@ import gay.pizza.pork.ast.gen.NodeType import gay.pizza.pork.tokenizer.* abstract class ParserBase(source: TokenSource, val attribution: NodeAttribution) : NodeParser { - val source: TokenSource = if (source is ParserAwareTokenSource) { - source - } else { - LazySkippingTokenSource(source, TokenType.ParserIgnoredTypes) - } + val source: TokenSource = source as? ParserAwareTokenSource ?: LazySkippingTokenSource(source, TokenType.ParserIgnoredTypes) @Suppress("NOTHING_TO_INLINE") protected inline fun produce(type: NodeType, noinline block: () -> T): T = diff --git a/tokenizer/src/main/kotlin/gay/pizza/pork/tokenizer/MatchedCharConsumer.kt b/tokenizer/src/main/kotlin/gay/pizza/pork/tokenizer/MatchedCharConsumer.kt index 156034b..2dd263c 100644 --- a/tokenizer/src/main/kotlin/gay/pizza/pork/tokenizer/MatchedCharConsumer.kt +++ b/tokenizer/src/main/kotlin/gay/pizza/pork/tokenizer/MatchedCharConsumer.kt @@ -1,6 +1,5 @@ package gay.pizza.pork.tokenizer -@Suppress("CanBeParameter") class MatchedCharConsumer( val start: CharSequence, val end: CharSequence, diff --git a/vm/src/main/kotlin/gay/pizza/pork/vm/InternalMachine.kt b/vm/src/main/kotlin/gay/pizza/pork/vm/InternalMachine.kt index 50f6ecc..598edf4 100644 --- a/vm/src/main/kotlin/gay/pizza/pork/vm/InternalMachine.kt +++ b/vm/src/main/kotlin/gay/pizza/pork/vm/InternalMachine.kt @@ -26,7 +26,7 @@ class InternalMachine(val world: CompiledWorld, val nativeRegistry: NativeRegist if (debug) { val frame = frame(inst) println("vm: step: in slab ${frame?.symbolInfo?.slab ?: "unknown"}: symbol ${frame?.symbolInfo?.symbol ?: "unknown"}: $inst ${op.code}${if (op.args.isEmpty()) "" else " " + op.args.joinToString(" ")}") - println("vm: step: stack: ${stack}") + println("vm: step: stack: $stack") } handler.handle(this, op) diff --git a/vm/src/main/kotlin/gay/pizza/pork/vm/ops/JumpIfOpHandler.kt b/vm/src/main/kotlin/gay/pizza/pork/vm/ops/JumpIfOpHandler.kt index ee0559b..159f03b 100644 --- a/vm/src/main/kotlin/gay/pizza/pork/vm/ops/JumpIfOpHandler.kt +++ b/vm/src/main/kotlin/gay/pizza/pork/vm/ops/JumpIfOpHandler.kt @@ -4,7 +4,6 @@ import gay.pizza.pork.bytecode.Op import gay.pizza.pork.bytecode.Opcode import gay.pizza.pork.vm.InternalMachine import gay.pizza.pork.vm.OpHandler -import gay.pizza.pork.vm.VirtualMachineException object JumpIfOpHandler : OpHandler(Opcode.JumpIf) { override fun handle(machine: InternalMachine, op: Op) { diff --git a/vm/src/main/kotlin/gay/pizza/pork/vm/ops/OptimizedNativeTypeOpHandler.kt b/vm/src/main/kotlin/gay/pizza/pork/vm/ops/OptimizedNativeTypeOpHandler.kt index 0b6effe..e15c090 100644 --- a/vm/src/main/kotlin/gay/pizza/pork/vm/ops/OptimizedNativeTypeOpHandler.kt +++ b/vm/src/main/kotlin/gay/pizza/pork/vm/ops/OptimizedNativeTypeOpHandler.kt @@ -2,7 +2,6 @@ package gay.pizza.pork.vm.ops import gay.pizza.pork.bytecode.Op import gay.pizza.pork.bytecode.Opcode -import gay.pizza.pork.execution.NativeFunction import gay.pizza.pork.execution.NativeType import gay.pizza.pork.execution.None import gay.pizza.pork.vm.InternalMachine