ffi: migrate to java.lang.foreign and require Java 21

This commit is contained in:
2023-09-23 15:40:40 -07:00
parent c340cfb86d
commit e31566f0d6
27 changed files with 270 additions and 800 deletions

View File

@ -14,6 +14,7 @@ application {
applicationName = "pork"
mainClass.set("gay.pizza.pork.tool.MainKt")
applicationDefaultJvmArgs += "-XstartOnFirstThread"
applicationDefaultJvmArgs += "--enable-native-access=ALL-UNNAMED"
}
for (task in arrayOf(tasks.shadowDistTar, tasks.shadowDistZip, tasks.shadowJar)) {

View File

@ -3,9 +3,7 @@ package gay.pizza.pork.tool
import com.github.ajalt.clikt.core.CliktCommand
import com.github.ajalt.clikt.parameters.arguments.argument
import gay.pizza.dough.fs.PlatformFsProvider
import gay.pizza.pork.ast.Node
import gay.pizza.pork.ast.NodeCoalescer
import gay.pizza.pork.ast.data
import gay.pizza.pork.ast.visit
import gay.pizza.pork.minimal.FileTool
import gay.pizza.pork.parser.ParserAttributes

View File

@ -6,8 +6,8 @@ import com.github.ajalt.clikt.parameters.options.flag
import com.github.ajalt.clikt.parameters.options.option
import gay.pizza.dough.fs.PlatformFsProvider
import gay.pizza.pork.evaluator.*
import gay.pizza.pork.ffi.FfiNativeProvider
import gay.pizza.pork.ffi.JavaNativeProvider
import gay.pizza.pork.ffi.JnaNativeProvider
import gay.pizza.pork.minimal.FileTool
class RunCommand : CliktCommand(help = "Run Program", name = "run") {
@ -22,7 +22,7 @@ class RunCommand : CliktCommand(help = "Run Program", name = "run") {
val scope = Scope.root()
val main = tool.loadMainFunction(scope, setupEvaluator = {
addNativeProvider("internal", InternalNativeProvider(quiet = quiet))
addNativeProvider("ffi", JnaNativeProvider())
addNativeProvider("ffi", FfiNativeProvider())
addNativeProvider("java", JavaNativeProvider())
})