From dbd52530038612e439f09819b15f5fc85cef1ec6 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Mon, 6 May 2024 17:27:35 +0200 Subject: [PATCH 01/21] Adjust path to engine/runner --- docs/infrastructure/native-image.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/docs/infrastructure/native-image.md b/docs/infrastructure/native-image.md index e4112463b5a1..3dd872d00a80 100644 --- a/docs/infrastructure/native-image.md +++ b/docs/infrastructure/native-image.md @@ -115,7 +115,7 @@ Note that for convenience, you can run the launcher/engine runner via `bin/enso`, e.g. ```bash -env JAVA_OPTS="-agentlib:native-image-agent=config-merge-dir=./engine/runner-native/src/main/resources/META-INF/native-image/org/enso/runner" ./built-distribution/enso-engine-0.0.0-dev-linux-amd64/enso-0.0.0-dev/bin/enso --run tmp.enso +env JAVA_OPTS="-agentlib:native-image-agent=config-merge-dir=./engine/runner/src/main/resources/META-INF/native-image/org/enso/runner" ./built-distribution/enso-engine-0.0.0-dev-linux-amd64/enso-0.0.0-dev/bin/enso --run tmp.enso ``` The command may need to be re-run with different arguments to ensure that all @@ -210,7 +210,7 @@ sbt> engine-runner/buildNativeImage and execute the binary on a sample factorial test program ```bash -> runner --run engine/runner-native/src/test/resources/Factorial.enso 6 +> runner --run engine/runner/src/test/resources/Factorial.enso 6 ``` The task that generates the Native Image, along with all the necessary From 8cc1b2d7e390b18e89176349eeb7d194025b406b Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Mon, 6 May 2024 17:28:49 +0200 Subject: [PATCH 02/21] Regenerated with env JAVA_OPTS="-agentlib:native-image-agent=config-merge-dir=./engine/runner/src/main/resources/META-INF/native-image/org/enso/runner" enso --run test/Base_Tests/ --- .../org/enso/runner/jni-config.json | 202 +- .../org/enso/runner/proxy-config.json | 6 +- .../org/enso/runner/reflect-config.json | 3690 +++++++++++++++-- .../org/enso/runner/resource-config.json | 647 ++- .../org/enso/runner/serialization-config.json | 544 +-- 5 files changed, 4517 insertions(+), 572 deletions(-) diff --git a/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/jni-config.json b/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/jni-config.json index 3da6f910c917..9306445aadec 100644 --- a/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/jni-config.json +++ b/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/jni-config.json @@ -1,15 +1,191 @@ [ - { - "name": "java.lang.ClassLoader", - "methods": [ - { "name": "getPlatformClassLoader", "parameterTypes": [] }, - { "name": "loadClass", "parameterTypes": ["java.lang.String"] } - ] - }, - { - "name": "java.lang.ClassNotFoundException" - }, - { - "name": "java.lang.NoSuchMethodError" - } +{ + "name":"[Lcom.sun.management.internal.DiagnosticCommandArgumentInfo;" +}, +{ + "name":"[Lcom.sun.management.internal.DiagnosticCommandInfo;" +}, +{ + "name":"com.sun.jna.Callback" +}, +{ + "name":"com.sun.jna.CallbackReference", + "methods":[{"name":"getCallback","parameterTypes":["java.lang.Class","com.sun.jna.Pointer","boolean"] }, {"name":"getFunctionPointer","parameterTypes":["com.sun.jna.Callback","boolean"] }, {"name":"getNativeString","parameterTypes":["java.lang.Object","boolean"] }, {"name":"initializeThread","parameterTypes":["com.sun.jna.Callback","com.sun.jna.CallbackReference$AttachOptions"] }] +}, +{ + "name":"com.sun.jna.CallbackReference$AttachOptions" +}, +{ + "name":"com.sun.jna.FromNativeConverter", + "methods":[{"name":"nativeType","parameterTypes":[] }] +}, +{ + "name":"com.sun.jna.IntegerType", + "fields":[{"name":"value"}] +}, +{ + "name":"com.sun.jna.JNIEnv" +}, +{ + "name":"com.sun.jna.Native", + "methods":[{"name":"dispose","parameterTypes":[] }, {"name":"fromNative","parameterTypes":["com.sun.jna.FromNativeConverter","java.lang.Object","java.lang.reflect.Method"] }, {"name":"fromNative","parameterTypes":["java.lang.Class","java.lang.Object"] }, {"name":"fromNative","parameterTypes":["java.lang.reflect.Method","java.lang.Object"] }, {"name":"nativeType","parameterTypes":["java.lang.Class"] }, {"name":"toNative","parameterTypes":["com.sun.jna.ToNativeConverter","java.lang.Object"] }] +}, +{ + "name":"com.sun.jna.Native$ffi_callback", + "methods":[{"name":"invoke","parameterTypes":["long","long","long"] }] +}, +{ + "name":"com.sun.jna.NativeMapped", + "methods":[{"name":"toNative","parameterTypes":[] }] +}, +{ + "name":"com.sun.jna.Pointer", + "fields":[{"name":"peer"}], + "methods":[{"name":"","parameterTypes":["long"] }] +}, +{ + "name":"com.sun.jna.PointerType", + "fields":[{"name":"pointer"}] +}, +{ + "name":"com.sun.jna.Structure", + "fields":[{"name":"memory"}, {"name":"typeInfo"}], + "methods":[{"name":"autoRead","parameterTypes":[] }, {"name":"autoWrite","parameterTypes":[] }, {"name":"getTypeInfo","parameterTypes":[] }, {"name":"newInstance","parameterTypes":["java.lang.Class","long"] }] +}, +{ + "name":"com.sun.jna.Structure$ByValue" +}, +{ + "name":"com.sun.jna.Structure$FFIType$FFITypes", + "fields":[{"name":"ffi_type_double"}, {"name":"ffi_type_float"}, {"name":"ffi_type_longdouble"}, {"name":"ffi_type_pointer"}, {"name":"ffi_type_sint16"}, {"name":"ffi_type_sint32"}, {"name":"ffi_type_sint64"}, {"name":"ffi_type_sint8"}, {"name":"ffi_type_uint16"}, {"name":"ffi_type_uint32"}, {"name":"ffi_type_uint64"}, {"name":"ffi_type_uint8"}, {"name":"ffi_type_void"}] +}, +{ + "name":"com.sun.jna.WString", + "methods":[{"name":"","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"com.sun.management.internal.DiagnosticCommandArgumentInfo", + "methods":[{"name":"","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","boolean","boolean","boolean","int"] }] +}, +{ + "name":"com.sun.management.internal.DiagnosticCommandInfo", + "methods":[{"name":"","parameterTypes":["java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","java.lang.String","boolean","java.util.List"] }] +}, +{ + "name":"java.lang.Boolean", + "fields":[{"name":"TYPE"}, {"name":"value"}], + "methods":[{"name":"","parameterTypes":["boolean"] }, {"name":"getBoolean","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.Byte", + "fields":[{"name":"TYPE"}, {"name":"value"}], + "methods":[{"name":"","parameterTypes":["byte"] }] +}, +{ + "name":"java.lang.Character", + "fields":[{"name":"TYPE"}, {"name":"value"}], + "methods":[{"name":"","parameterTypes":["char"] }] +}, +{ + "name":"java.lang.Class", + "methods":[{"name":"getClassLoader","parameterTypes":[] }, {"name":"getComponentType","parameterTypes":[] }] +}, +{ + "name":"java.lang.ClassLoader", + "methods":[{"name":"getPlatformClassLoader","parameterTypes":[] }, {"name":"loadClass","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.ClassNotFoundException" +}, +{ + "name":"java.lang.Double", + "fields":[{"name":"TYPE"}, {"name":"value"}], + "methods":[{"name":"","parameterTypes":["double"] }] +}, +{ + "name":"java.lang.Float", + "fields":[{"name":"TYPE"}, {"name":"value"}], + "methods":[{"name":"","parameterTypes":["float"] }] +}, +{ + "name":"java.lang.Integer", + "fields":[{"name":"TYPE"}, {"name":"value"}], + "methods":[{"name":"","parameterTypes":["int"] }] +}, +{ + "name":"java.lang.Long", + "fields":[{"name":"TYPE"}, {"name":"value"}], + "methods":[{"name":"","parameterTypes":["long"] }] +}, +{ + "name":"java.lang.NoSuchMethodError" +}, +{ + "name":"java.lang.Object", + "methods":[{"name":"toString","parameterTypes":[] }] +}, +{ + "name":"java.lang.Short", + "fields":[{"name":"TYPE"}, {"name":"value"}], + "methods":[{"name":"","parameterTypes":["short"] }] +}, +{ + "name":"java.lang.String", + "methods":[{"name":"","parameterTypes":["byte[]"] }, {"name":"","parameterTypes":["byte[]","java.lang.String"] }, {"name":"getBytes","parameterTypes":[] }, {"name":"getBytes","parameterTypes":["java.lang.String"] }, {"name":"toCharArray","parameterTypes":[] }] +}, +{ + "name":"java.lang.System", + "methods":[{"name":"getProperty","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.Void", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.reflect.Method", + "methods":[{"name":"getParameterTypes","parameterTypes":[] }, {"name":"getReturnType","parameterTypes":[] }] +}, +{ + "name":"java.nio.Buffer", + "methods":[{"name":"position","parameterTypes":[] }] +}, +{ + "name":"java.nio.ByteBuffer", + "methods":[{"name":"array","parameterTypes":[] }, {"name":"arrayOffset","parameterTypes":[] }] +}, +{ + "name":"java.nio.CharBuffer", + "methods":[{"name":"array","parameterTypes":[] }, {"name":"arrayOffset","parameterTypes":[] }] +}, +{ + "name":"java.nio.DoubleBuffer", + "methods":[{"name":"array","parameterTypes":[] }, {"name":"arrayOffset","parameterTypes":[] }] +}, +{ + "name":"java.nio.FloatBuffer", + "methods":[{"name":"array","parameterTypes":[] }, {"name":"arrayOffset","parameterTypes":[] }] +}, +{ + "name":"java.nio.IntBuffer", + "methods":[{"name":"array","parameterTypes":[] }, {"name":"arrayOffset","parameterTypes":[] }] +}, +{ + "name":"java.nio.LongBuffer", + "methods":[{"name":"array","parameterTypes":[] }, {"name":"arrayOffset","parameterTypes":[] }] +}, +{ + "name":"java.nio.ShortBuffer", + "methods":[{"name":"array","parameterTypes":[] }, {"name":"arrayOffset","parameterTypes":[] }] +}, +{ + "name":"java.util.Arrays", + "methods":[{"name":"asList","parameterTypes":["java.lang.Object[]"] }] +}, +{ + "name":"jdk.internal.loader.ClassLoaders$AppClassLoader" +}, +{ + "name":"sun.management.VMManagementImpl", + "fields":[{"name":"compTimeMonitoringSupport"}, {"name":"currentThreadCpuTimeSupport"}, {"name":"objectMonitorUsageSupport"}, {"name":"otherThreadCpuTimeSupport"}, {"name":"remoteDiagnosticCommandsSupport"}, {"name":"synchronizerUsageSupport"}, {"name":"threadAllocatedMemorySupport"}, {"name":"threadContentionMonitoringSupport"}] +} ] diff --git a/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/proxy-config.json b/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/proxy-config.json index fe51488c7066..0ad5407a5810 100644 --- a/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/proxy-config.json +++ b/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/proxy-config.json @@ -1 +1,5 @@ -[] +[ + { + "interfaces":["org.jline.terminal.impl.jna.linux.CLibrary"] + } +] diff --git a/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/reflect-config.json b/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/reflect-config.json index ab8d6a6b1b29..c54a35e2ae28 100644 --- a/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/reflect-config.json +++ b/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/reflect-config.json @@ -1,255 +1,3439 @@ [ - { - "name":"[Ljava.lang.Object;"} -, - { - "name":"[Ljava.nio.file.Path;"} -, - { - "name":"[Lorg.enso.interpreter.node.ExpressionNode;"} -, - { - "name":"[Lorg.enso.interpreter.runtime.callable.argument.CallArgument;"} -, - { - "name":"[Lorg.enso.text.buffer.Node;"} -, - { - "name":"[Lscala.Tuple2;"} -, - { - "name":"java.lang.ClassValue"} -, - { - "name":"java.lang.invoke.VarHandle", - "methods":[{"name":"releaseFence","parameterTypes":[] }]} -, - { - "name":"java.lang.reflect.Method", - "methods":[{"name":"isDefault","parameterTypes":[] }]} -, - { - "name":"java.nio.Buffer"} -, - { - "name":"java.security.MessageDigestSpi"} -, - { - "name":"java.security.SecureRandomParameters"} -, - { - "name":"java.sql.Date"} -, - { - "name":"java.sql.Timestamp"} -, - { - "name":"org.enso.interpreter.runtime.library.dispatch.TypesLibrary"} -, - { - "name":"org.jline.terminal.impl.jna.linux.CLibrary$termios", - "allDeclaredFields":true} -, - { - "name":"org.jline.terminal.impl.jna.linux.CLibrary$winsize", - "allDeclaredFields":true} -, - { - "name":"sun.security.provider.NativePRNG", - "methods":[{"name":"","parameterTypes":[] }]} -, - { - "name":"sun.security.provider.SHA", - "methods":[{"name":"","parameterTypes":[] }]} -, - { - "name": "com.sun.crypto.provider.AESCipher$General", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "com.sun.crypto.provider.DHParameters", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "com.sun.crypto.provider.TlsKeyMaterialGenerator", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "com.sun.crypto.provider.TlsMasterSecretGenerator", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "com.sun.crypto.provider.TlsPrfGenerator$V12", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "com.typesafe.sslconfig.ssl.NoopHostnameVerifier", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "java.io.Serializable" - }, - { - "name": "java.lang.Boolean" - }, - { - "name": "java.lang.Class[]" - }, - { - "name": "java.lang.Integer" - }, - { - "name": "java.lang.Long" - }, - { - "name": "java.lang.String", - "fields": [{ "name": "value", "allowUnsafeAccess": true }] - }, - { - "name": "java.lang.String[]" - }, - { - "name": "java.lang.invoke.VarHandle" - }, - { - "name": "java.nio.file.Path[]" - }, - { - "name": "java.security.AlgorithmParametersSpi" - }, - { - "name": "java.security.KeyStoreSpi" - }, - { - "name": "java.security.MessageDigestSpi" - }, - { - "name": "java.security.SecureRandomParameters" - }, - { - "name": "java.security.interfaces.ECPrivateKey" - }, - { - "name": "java.security.interfaces.ECPublicKey" - }, - { - "name": "java.security.interfaces.RSAPrivateKey" - }, - { - "name": "java.security.interfaces.RSAPublicKey" - }, - { - "name": "java.sql.Date" - }, - { - "name": "java.sql.Timestamp" - }, - { - "name": "java.util.Date" - }, - { - "name": "javax.net.ssl.KeyManager[]" - }, - { - "name": "javax.net.ssl.TrustManager[]" - }, - { - "name": "javax.security.auth.x500.X500Principal", - "fields": [{ "name": "thisX500Name" }], - "methods": [ - { "name": "", "parameterTypes": ["sun.security.x509.X500Name"] } - ] - }, - { - "name": "org.apache.commons.compress.archivers.zip.AsiExtraField", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.JarMarker", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.ResourceAlignmentExtraField", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.UnicodeCommentExtraField", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.UnicodePathExtraField", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.X000A_NTFS", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.X0014_X509Certificates", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.X0015_CertificateIdForFile", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.X0016_CertificateIdForCentralDirectory", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.X0017_StrongEncryptionHeader", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestamp", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.X7875_NewUnix", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.Zip64ExtendedInformationExtraField", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name": "org.apache.commons.compress.archivers.zip.Zip64ExtendedInformationExtraField", - "methods": [{ "name": "", "parameterTypes": [] }] - }, - { - "name":"ch.qos.logback.classic.pattern.DateConverter", - "methods":[{"name":"","parameterTypes":[] }] - }, - { - "name":"ch.qos.logback.classic.pattern.LevelConverter", - "methods":[{"name":"","parameterTypes":[] }] - }, - { - "name":"ch.qos.logback.classic.pattern.LineSeparatorConverter", - "methods":[{"name":"","parameterTypes":[] }] - }, - { - "name":"ch.qos.logback.classic.pattern.NopThrowableInformationConverter", - "methods":[{"name":"","parameterTypes":[] }] - }, - { - "name":"ch.qos.logback.classic.pattern.LoggerConverter", - "methods":[{"name":"","parameterTypes":[] }] - }, - { - "name":"ch.qos.logback.classic.pattern.MessageConverter", - "methods":[{"name":"","parameterTypes":[] }] - }, - { - "name":"ch.qos.logback.core.rolling.helper.DateTokenConverter", - "methods":[{"name":"","parameterTypes":[] }] - }, - { - "name":"ch.qos.logback.core.rolling.helper.IntegerTokenConverter", - "methods":[{"name":"","parameterTypes":[] }] - } +{ + "name":"[B" +}, +{ + "name":"[C" +}, +{ + "name":"[D" +}, +{ + "name":"[F" +}, +{ + "name":"[I" +}, +{ + "name":"[J" +}, +{ + "name":"[Ljava.lang.Object;" +}, +{ + "name":"[Ljava.lang.String;" +}, +{ + "name":"[Ljava.nio.file.Path;" +}, +{ + "name":"[Ljava.util.concurrent.CompletableFuture;" +}, +{ + "name":"[Ljavax.management.openmbean.CompositeData;" +}, +{ + "name":"[Lorg.enso.interpreter.node.ExpressionNode;" +}, +{ + "name":"[Lorg.enso.interpreter.node.controlflow.caseexpr.BranchNode;" +}, +{ + "name":"[Lorg.enso.interpreter.runtime.callable.Annotation;" +}, +{ + "name":"[Lorg.enso.interpreter.runtime.callable.argument.CallArgument;" +}, +{ + "name":"[Lorg.enso.text.buffer.Node;" +}, +{ + "name":"[Lscala.Tuple2;" +}, +{ + "name":"[S" +}, +{ + "name":"[Z" +}, +{ + "name":"ch.qos.logback.classic.pattern.DateConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.LevelConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.LineSeparatorConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.LoggerConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.MessageConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.classic.pattern.NopThrowableInformationConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.core.rolling.helper.DateTokenConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"ch.qos.logback.core.rolling.helper.IntegerTokenConverter", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.fasterxml.jackson.core.JsonProcessingException" +}, +{ + "name":"com.fasterxml.jackson.databind.JsonNode" +}, +{ + "name":"com.fasterxml.jackson.databind.ObjectMapper" +}, +{ + "name":"com.fasterxml.jackson.databind.ext.Java7SupportImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.fasterxml.jackson.databind.node.ArrayNode" +}, +{ + "name":"com.fasterxml.jackson.databind.node.BooleanNode" +}, +{ + "name":"com.fasterxml.jackson.databind.node.DoubleNode" +}, +{ + "name":"com.fasterxml.jackson.databind.node.JsonNodeFactory" +}, +{ + "name":"com.fasterxml.jackson.databind.node.JsonNodeType" +}, +{ + "name":"com.fasterxml.jackson.databind.node.LongNode" +}, +{ + "name":"com.fasterxml.jackson.databind.node.NullNode" +}, +{ + "name":"com.fasterxml.jackson.databind.node.ObjectNode" +}, +{ + "name":"com.fasterxml.jackson.databind.node.TextNode" +}, +{ + "name":"com.ibm.icu.lang.UCharacter" +}, +{ + "name":"com.ibm.icu.text.BreakIterator" +}, +{ + "name":"com.ibm.icu.text.BreakIteratorFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.ibm.icu.text.CollatorServiceShim", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.ibm.icu.text.Normalizer2" +}, +{ + "name":"com.ibm.icu.text.Normalizer2$Mode" +}, +{ + "name":"com.ibm.icu.text.Normalizer2.Mode" +}, +{ + "name":"com.sun.crypto.provider.AESCipher$General", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.ARCFOURCipher", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.ChaCha20Cipher$ChaCha20Poly1305", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.DESCipher", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.DESedeCipher", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.DHParameters", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.GaloisCounterMode$AESGCM", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.TlsKeyMaterialGenerator", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.TlsMasterSecretGenerator", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.crypto.provider.TlsPrfGenerator$V12", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.jna.CallbackProxy", + "methods":[{"name":"callback","parameterTypes":["java.lang.Object[]"] }] +}, +{ + "name":"com.sun.management.GarbageCollectorMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.GcInfo", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.HotSpotDiagnosticMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.ThreadMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.UnixOperatingSystemMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.VMOption", + "queryAllPublicMethods":true +}, +{ + "name":"com.sun.management.internal.GarbageCollectorExtImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"com.sun.management.internal.HotSpotDiagnostic", + "queryAllPublicConstructors":true +}, +{ + "name":"com.sun.management.internal.HotSpotThreadImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"com.sun.management.internal.OperatingSystemImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"com.sun.org.apache.xerces.internal.dom.DOMXSImplementationSourceImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderFactoryImpl", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"com.typesafe.sslconfig.ssl.NoopHostnameVerifier", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"java.io.ByteArrayInputStream" +}, +{ + "name":"java.io.File" +}, +{ + "name":"java.io.FileInputStream" +}, +{ + "name":"java.io.FileNotFoundException" +}, +{ + "name":"java.io.FilePermission" +}, +{ + "name":"java.io.IOException" +}, +{ + "name":"java.io.InputStream" +}, +{ + "name":"java.io.OutputStream" +}, +{ + "name":"java.io.Serializable" +}, +{ + "name":"java.io.StringReader" +}, +{ + "name":"java.io.UncheckedIOException" +}, +{ + "name":"java.lang.ArithmeticException" +}, +{ + "name":"java.lang.Boolean", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Byte", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Character", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Class", + "methods":[{"name":"getModule","parameterTypes":[] }] +}, +{ + "name":"java.lang.ClassCastException" +}, +{ + "name":"java.lang.ClassValue" +}, +{ + "name":"java.lang.Class[]" +}, +{ + "name":"java.lang.Deprecated", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.Double", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Enum", + "methods":[{"name":"name","parameterTypes":[] }] +}, +{ + "name":"java.lang.Exception" +}, +{ + "name":"java.lang.Float", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.IllegalArgumentException" +}, +{ + "name":"java.lang.IllegalStateException" +}, +{ + "name":"java.lang.IndexOutOfBoundsException" +}, +{ + "name":"java.lang.Integer", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Long", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.Math" +}, +{ + "name":"java.lang.Module", + "methods":[{"name":"getDescriptor","parameterTypes":[] }] +}, +{ + "name":"java.lang.NullPointerException" +}, +{ + "name":"java.lang.NumberFormatException" +}, +{ + "name":"java.lang.Object", + "methods":[{"name":"equals","parameterTypes":["java.lang.Object"] }, {"name":"hashCode","parameterTypes":[] }, {"name":"toString","parameterTypes":[] }] +}, +{ + "name":"java.lang.OutOfMemoryError" +}, +{ + "name":"java.lang.RuntimePermission" +}, +{ + "name":"java.lang.Short", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.StackTraceElement", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.String", + "fields":[{"name":"TYPE"}, {"name":"value"}] +}, +{ + "name":"java.lang.StringBuilder" +}, +{ + "name":"java.lang.String[]" +}, +{ + "name":"java.lang.System" +}, +{ + "name":"java.lang.Thread", + "fields":[{"name":"threadLocalRandomProbe"}] +}, +{ + "name":"java.lang.Thread$State" +}, +{ + "name":"java.lang.Thread.State" +}, +{ + "name":"java.lang.Throwable", + "methods":[{"name":"addSuppressed","parameterTypes":["java.lang.Throwable"] }] +}, +{ + "name":"java.lang.Void", + "fields":[{"name":"TYPE"}] +}, +{ + "name":"java.lang.invoke.MethodHandle", + "methods":[{"name":"bindTo","parameterTypes":["java.lang.Object"] }, {"name":"invokeWithArguments","parameterTypes":["java.lang.Object[]"] }] +}, +{ + "name":"java.lang.invoke.MethodHandles", + "methods":[{"name":"lookup","parameterTypes":[] }, {"name":"privateLookupIn","parameterTypes":["java.lang.Class","java.lang.invoke.MethodHandles$Lookup"] }] +}, +{ + "name":"java.lang.invoke.MethodHandles$Lookup", + "methods":[{"name":"findSpecial","parameterTypes":["java.lang.Class","java.lang.String","java.lang.invoke.MethodType","java.lang.Class"] }, {"name":"in","parameterTypes":["java.lang.Class"] }, {"name":"unreflectSpecial","parameterTypes":["java.lang.reflect.Method","java.lang.Class"] }] +}, +{ + "name":"java.lang.invoke.MethodType", + "methods":[{"name":"methodType","parameterTypes":["java.lang.Class","java.lang.Class[]"] }] +}, +{ + "name":"java.lang.invoke.VarHandle", + "methods":[{"name":"releaseFence","parameterTypes":[] }] +}, +{ + "name":"java.lang.management.BufferPoolMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.ClassLoadingMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.CompilationMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.LockInfo", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.ManagementPermission", + "methods":[{"name":"","parameterTypes":["java.lang.String"] }] +}, +{ + "name":"java.lang.management.MemoryMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.MemoryManagerMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.MemoryPoolMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.MemoryUsage", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.MonitorInfo", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.PlatformLoggingMXBean", + "queryAllPublicMethods":true, + "methods":[{"name":"getLoggerLevel","parameterTypes":["java.lang.String"] }, {"name":"getLoggerNames","parameterTypes":[] }, {"name":"getParentLoggerName","parameterTypes":["java.lang.String"] }, {"name":"setLoggerLevel","parameterTypes":["java.lang.String","java.lang.String"] }] +}, +{ + "name":"java.lang.management.RuntimeMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.management.ThreadInfo", + "queryAllPublicMethods":true +}, +{ + "name":"java.lang.module.ModuleDescriptor", + "methods":[{"name":"rawVersion","parameterTypes":[] }] +}, +{ + "name":"java.lang.reflect.Method", + "methods":[{"name":"isDefault","parameterTypes":[] }, {"name":"isVarArgs","parameterTypes":[] }] +}, +{ + "name":"java.math.BigDecimal" +}, +{ + "name":"java.math.BigInteger" +}, +{ + "name":"java.math.MathContext" +}, +{ + "name":"java.math.RoundingMode" +}, +{ + "name":"java.net.InetSocketAddress" +}, +{ + "name":"java.net.NetPermission" +}, +{ + "name":"java.net.ProxySelector" +}, +{ + "name":"java.net.SocketPermission" +}, +{ + "name":"java.net.URI" +}, +{ + "name":"java.net.URISyntaxException" +}, +{ + "name":"java.net.URLEncoder" +}, +{ + "name":"java.net.URLPermission", + "methods":[{"name":"","parameterTypes":["java.lang.String","java.lang.String"] }] +}, +{ + "name":"java.net.http.HttpClient" +}, +{ + "name":"java.net.http.HttpRequest" +}, +{ + "name":"java.net.http.HttpRequest$BodyPublisher" +}, +{ + "name":"java.net.http.HttpRequest.BodyPublisher" +}, +{ + "name":"java.nio.Buffer" +}, +{ + "name":"java.nio.CharBuffer" +}, +{ + "name":"java.nio.charset.Charset" +}, +{ + "name":"java.nio.charset.UnsupportedCharsetException" +}, +{ + "name":"java.nio.file.AccessDeniedException" +}, +{ + "name":"java.nio.file.DirectoryNotEmptyException" +}, +{ + "name":"java.nio.file.FileAlreadyExistsException" +}, +{ + "name":"java.nio.file.FileSystemException" +}, +{ + "name":"java.nio.file.FileSystems" +}, +{ + "name":"java.nio.file.NoSuchFileException" +}, +{ + "name":"java.nio.file.NotDirectoryException" +}, +{ + "name":"java.nio.file.Path" +}, +{ + "name":"java.nio.file.Path[]" +}, +{ + "name":"java.nio.file.StandardCopyOption" +}, +{ + "name":"java.nio.file.StandardOpenOption" +}, +{ + "name":"java.nio.file.attribute.PosixFilePermission" +}, +{ + "name":"java.security.AlgorithmParametersSpi" +}, +{ + "name":"java.security.AllPermission" +}, +{ + "name":"java.security.KeyStore" +}, +{ + "name":"java.security.KeyStoreSpi" +}, +{ + "name":"java.security.MessageDigestSpi" +}, +{ + "name":"java.security.SecureRandomParameters" +}, +{ + "name":"java.security.SecurityPermission" +}, +{ + "name":"java.security.cert.PKIXRevocationChecker" +}, +{ + "name":"java.security.interfaces.ECPrivateKey" +}, +{ + "name":"java.security.interfaces.ECPublicKey" +}, +{ + "name":"java.security.interfaces.RSAPrivateKey" +}, +{ + "name":"java.security.interfaces.RSAPublicKey" +}, +{ + "name":"java.security.spec.DSAParameterSpec" +}, +{ + "name":"java.sql.Date" +}, +{ + "name":"java.sql.Timestamp" +}, +{ + "name":"java.text.DecimalFormat" +}, +{ + "name":"java.text.DecimalFormatSymbols" +}, +{ + "name":"java.text.NumberFormat" +}, +{ + "name":"java.text.ParseException" +}, +{ + "name":"java.time.DateTimeException" +}, +{ + "name":"java.time.DayOfWeek" +}, +{ + "name":"java.time.Duration" +}, +{ + "name":"java.time.Instant" +}, +{ + "name":"java.time.LocalDate" +}, +{ + "name":"java.time.LocalDateTime" +}, +{ + "name":"java.time.LocalTime" +}, +{ + "name":"java.time.Period" +}, +{ + "name":"java.time.ZoneId" +}, +{ + "name":"java.time.ZoneOffset" +}, +{ + "name":"java.time.ZonedDateTime" +}, +{ + "name":"java.time.chrono.ChronoPeriod" +}, +{ + "name":"java.time.format.DateTimeFormatter" +}, +{ + "name":"java.time.format.DateTimeFormatterBuilder" +}, +{ + "name":"java.time.format.SignStyle" +}, +{ + "name":"java.time.format.TextStyle" +}, +{ + "name":"java.time.temporal.ChronoField" +}, +{ + "name":"java.time.temporal.ChronoUnit" +}, +{ + "name":"java.time.temporal.IsoFields" +}, +{ + "name":"java.time.temporal.TemporalAdjuster" +}, +{ + "name":"java.time.temporal.TemporalAdjusters" +}, +{ + "name":"java.time.temporal.TemporalAmount" +}, +{ + "name":"java.time.temporal.TemporalUnit" +}, +{ + "name":"java.util.AbstractList" +}, +{ + "name":"java.util.ArrayList" +}, +{ + "name":"java.util.Base64" +}, +{ + "name":"java.util.Date" +}, +{ + "name":"java.util.List" +}, +{ + "name":"java.util.Locale", + "allDeclaredClasses":true, + "methods":[{"name":"getDefault","parameterTypes":["java.util.Locale$Category"] }, {"name":"setDefault","parameterTypes":["java.util.Locale$Category","java.util.Locale"] }] +}, +{ + "name":"java.util.Locale$Category" +}, +{ + "name":"java.util.Map" +}, +{ + "name":"java.util.Objects" +}, +{ + "name":"java.util.PropertyPermission", + "methods":[{"name":"","parameterTypes":["java.lang.String","java.lang.String"] }] +}, +{ + "name":"java.util.Random" +}, +{ + "name":"java.util.UUID" +}, +{ + "name":"java.util.concurrent.ForkJoinTask", + "fields":[{"name":"aux"}, {"name":"status"}] +}, +{ + "name":"java.util.concurrent.atomic.AtomicBoolean", + "fields":[{"name":"value"}] +}, +{ + "name":"java.util.concurrent.atomic.AtomicMarkableReference", + "fields":[{"name":"pair"}] +}, +{ + "name":"java.util.concurrent.atomic.AtomicReference", + "fields":[{"name":"value"}] +}, +{ + "name":"java.util.concurrent.atomic.Striped64", + "fields":[{"name":"base"}, {"name":"cellsBusy"}] +}, +{ + "name":"java.util.function.Function" +}, +{ + "name":"java.util.logging.LogManager", + "methods":[{"name":"getLoggingMXBean","parameterTypes":[] }] +}, +{ + "name":"java.util.logging.Logger" +}, +{ + "name":"java.util.logging.LoggingMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"javax.management.MBeanOperationInfo", + "queryAllPublicMethods":true, + "methods":[{"name":"getSignature","parameterTypes":[] }] +}, +{ + "name":"javax.management.MBeanServerBuilder", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"javax.management.ObjectName" +}, +{ + "name":"javax.management.StandardEmitterMBean", + "methods":[{"name":"cacheMBeanInfo","parameterTypes":["javax.management.MBeanInfo"] }, {"name":"getCachedMBeanInfo","parameterTypes":[] }, {"name":"getMBeanInfo","parameterTypes":[] }] +}, +{ + "name":"javax.management.openmbean.CompositeData" +}, +{ + "name":"javax.management.openmbean.OpenMBeanOperationInfoSupport" +}, +{ + "name":"javax.management.openmbean.TabularData" +}, +{ + "name":"javax.net.ssl.KeyManager[]" +}, +{ + "name":"javax.net.ssl.SSLContext" +}, +{ + "name":"javax.net.ssl.TrustManagerFactory" +}, +{ + "name":"javax.net.ssl.TrustManager[]" +}, +{ + "name":"javax.security.auth.x500.X500Principal", + "fields":[{"name":"thisX500Name"}], + "methods":[{"name":"","parameterTypes":["sun.security.x509.X500Name"] }] +}, +{ + "name":"javax.smartcardio.CardPermission" +}, +{ + "name":"javax.xml.parsers.DocumentBuilder" +}, +{ + "name":"javax.xml.parsers.DocumentBuilderFactory" +}, +{ + "name":"javax.xml.xpath.XPathConstants" +}, +{ + "name":"javax.xml.xpath.XPathFactory" +}, +{ + "name":"jdk.internal.misc.Unsafe" +}, +{ + "name":"jdk.management.jfr.ConfigurationInfo", + "queryAllPublicMethods":true +}, +{ + "name":"jdk.management.jfr.EventTypeInfo", + "queryAllPublicMethods":true +}, +{ + "name":"jdk.management.jfr.FlightRecorderMXBean", + "queryAllPublicMethods":true +}, +{ + "name":"jdk.management.jfr.FlightRecorderMXBeanImpl", + "queryAllPublicConstructors":true, + "methods":[{"name":"cacheMBeanInfo","parameterTypes":["javax.management.MBeanInfo"] }, {"name":"getCachedMBeanInfo","parameterTypes":[] }, {"name":"getMBeanInfo","parameterTypes":[] }, {"name":"getNotificationInfo","parameterTypes":[] }] +}, +{ + "name":"jdk.management.jfr.RecordingInfo", + "queryAllPublicMethods":true +}, +{ + "name":"jdk.management.jfr.SettingDescriptorInfo", + "queryAllPublicMethods":true +}, +{ + "name":"org.apache.commons.compress.archivers.zip.AsiExtraField", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.JarMarker", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.ResourceAlignmentExtraField", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.UnicodeCommentExtraField", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.UnicodePathExtraField", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.X000A_NTFS", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.X0014_X509Certificates", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.X0015_CertificateIdForFile", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.X0016_CertificateIdForCentralDirectory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.X0017_StrongEncryptionHeader", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.X0019_EncryptionRecipientCertificateList", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.X5455_ExtendedTimestamp", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.X7875_NewUnix", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.apache.commons.compress.archivers.zip.Zip64ExtendedInformationExtraField", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.COMPOSITE$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.DH$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.DSA$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.DSTU4145$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.Dilithium$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.EC$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.ECGOST$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.EXTERNAL$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.EdEC$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.ElGamal$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.Falcon$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.GM$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.GOST$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.IES$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.LMS$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.NTRU$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.RSA$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.SPHINCSPlus$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.asymmetric.X509$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.Blake2b$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.Blake2s$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.Blake3$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.DSTU7564$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.GOST3411$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.Haraka$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.Keccak$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.MD2$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.MD4$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.MD5$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD128$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD160$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD256$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.RIPEMD320$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.SHA1$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.SHA224$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.SHA256$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.SHA3$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.SHA384$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.SHA512$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.SM3$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.Skein$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.Tiger$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.digest.Whirlpool$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.drbg.DRBG$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.keystore.BC$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.keystore.BCFKS$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.keystore.PKCS12$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.AES$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.ARC4$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.ARIA$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Blowfish$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.CAST5$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.CAST6$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Camellia$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.ChaCha$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.DES$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.DESede$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.DSTU7624$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.GOST28147$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.GOST3412_2015$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Grain128$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Grainv1$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.HC128$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.HC256$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.IDEA$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Noekeon$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.OpenSSLPBKDF$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF1$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPBKDF2$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.PBEPKCS12$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Poly1305$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.RC2$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.RC5$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.RC6$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Rijndael$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.SCRYPT$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.SEED$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.SM4$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Salsa20$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Serpent$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Shacal2$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.SipHash128$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Skipjack$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.TEA$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.TLSKDF$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Threefish$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Twofish$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.VMPC$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.VMPCKSA3$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.XSalsa20$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.XTEA$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.jcajce.provider.symmetric.Zuc$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.BIKE$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.CMCE$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.Dilithium$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.Falcon$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.Frodo$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.HQC$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.Kyber$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.LMS$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.NH$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.NTRU$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.NTRUPrime$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.Picnic$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.Rainbow$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.SABER$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.SPHINCS$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.SPHINCSPlus$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.bouncycastle.pqc.jcajce.provider.XMSS$Mappings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.base.Array_Utils" +}, +{ + "name":"org.enso.base.CompareException" +}, +{ + "name":"org.enso.base.DryRunFileManager" +}, +{ + "name":"org.enso.base.Encoding_Utils" +}, +{ + "name":"org.enso.base.Environment_Utils" +}, +{ + "name":"org.enso.base.FileLineReader" +}, +{ + "name":"org.enso.base.ObjectComparator" +}, +{ + "name":"org.enso.base.Regex_Utils" +}, +{ + "name":"org.enso.base.Text_Utils" +}, +{ + "name":"org.enso.base.Time_Utils" +}, +{ + "name":"org.enso.base.XML_Utils" +}, +{ + "name":"org.enso.base.arrays.LongArrayList" +}, +{ + "name":"org.enso.base.encoding.ReportingStreamDecoder" +}, +{ + "name":"org.enso.base.encoding.ReportingStreamEncoder" +}, +{ + "name":"org.enso.base.enso_cloud.AuthenticationProvider" +}, +{ + "name":"org.enso.base.enso_cloud.CacheSettings" +}, +{ + "name":"org.enso.base.enso_cloud.CloudAPI" +}, +{ + "name":"org.enso.base.enso_cloud.CloudRequestCache" +}, +{ + "name":"org.enso.base.enso_cloud.DataLinkSPI" +}, +{ + "name":"org.enso.base.enso_cloud.EnsoSecretAccessDenied" +}, +{ + "name":"org.enso.base.enso_cloud.EnsoSecretHelper" +}, +{ + "name":"org.enso.base.enso_cloud.ExternalLibrarySecretHelper" +}, +{ + "name":"org.enso.base.enso_cloud.HideableValue" +}, +{ + "name":"org.enso.base.file_format.FileFormatSPI" +}, +{ + "name":"org.enso.base.file_system.FileSystemSPI" +}, +{ + "name":"org.enso.base.net.URITransformer" +}, +{ + "name":"org.enso.base.net.URIWithSecrets" +}, +{ + "name":"org.enso.base.net.http.MultipartBodyBuilder" +}, +{ + "name":"org.enso.base.net.http.UrlencodedBodyBuilder" +}, +{ + "name":"org.enso.base.numeric.ConversionResult" +}, +{ + "name":"org.enso.base.numeric.Decimal_Utils" +}, +{ + "name":"org.enso.base.random.RandomInstanceHolder" +}, +{ + "name":"org.enso.base.random.Random_Utils" +}, +{ + "name":"org.enso.base.statistics.CorrelationStatistics" +}, +{ + "name":"org.enso.base.statistics.FitError" +}, +{ + "name":"org.enso.base.statistics.Moments" +}, +{ + "name":"org.enso.base.statistics.Rank" +}, +{ + "name":"org.enso.base.statistics.Regression" +}, +{ + "name":"org.enso.base.statistics.Statistic" +}, +{ + "name":"org.enso.base.text.CaseFoldedString" +}, +{ + "name":"org.enso.base.text.Replacer_Cache" +}, +{ + "name":"org.enso.base.text.TextFoldingStrategy" +}, +{ + "name":"org.enso.base.time.CustomTemporalUnits" +}, +{ + "name":"org.enso.base.time.Date_Period_Utils" +}, +{ + "name":"org.enso.base.time.EnsoDateTimeFormatter" +}, +{ + "name":"org.enso.base.time.FormatterCache" +}, +{ + "name":"org.enso.base.time.FormatterCacheKey" +}, +{ + "name":"org.enso.base.time.FormatterKind" +}, +{ + "name":"org.enso.base_test_helpers.CallbackHelper" +}, +{ + "name":"org.enso.base_test_helpers.FileSystemHelper" +}, +{ + "name":"org.enso.base_test_helpers.IntHolder" +}, +{ + "name":"org.enso.base_test_helpers.IntHolderEquals" +}, +{ + "name":"org.enso.base_test_helpers.Number_Utils" +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistDiagnosticStorage", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistDouble", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistIdentifiedLocation", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistLong", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistMap", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistMetadataStorage", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistScalaList", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistScalaMap", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistScalaMutableMap", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistScalaOption", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistScalaSeq", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistScalaSet", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistString", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.IrPersistance$PersistUUID", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistApplication_Force", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistApplication_Prefix", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistApplication_Sequence", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistCallArgument_Specified", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistCase_Branch", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistCase_Expr", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistDefinitionArgument_Specified", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistDefinition_Data", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistDefinition_Type", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistExport_Module", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistExpression_Binding", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistExpression_Block", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistForeign_Definition", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistFunction_Lambda", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistImport_Module", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistLiteral_Number", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistLiteral_Text", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistLocation", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistMethod_Conversion", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistMethod_Explicit", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistModule", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistName_Blank", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistName_BuiltinAnnotation", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistName_GenericAnnotation", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistName_Literal", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistName_MethodReference", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistName_Qualified", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistName_Self", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistName_SelfType", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistOperator_Binary", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistPattern_Constructor", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistPattern_Literal", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistPattern_Name", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistPattern_Type", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistPolyglot", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistPolyglot_Java", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistSet_Intersection", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistSet_Union", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistType_Error", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistType_Function", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistUnused_Binding", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistUnused_FunctionArgument", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistUnused_PatternBinding", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistWarning_DuplicatedImport", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.core.ir.PersistWarning_WrongBuiltinMethod", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PassPersistance$PersistAliasAnalysisGraph", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PassPersistance$PersistAliasAnalysisGraphScope", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PassPersistance$PersistState", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PassPersistance$PersistTail", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistAliasAnalysis$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistBindingAnalysis$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistCachePreferenceAnalysis$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistCachePreferenceAnalysis_WeightInfo", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistDataflowAnalysis$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistDataflowAnalysis$DependencyInfo$Type$Dynamic", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistDataflowAnalysis$DependencyInfo$Type$Static", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistDataflowAnalysis_DependencyInfo", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistDataflowAnalysis_DependencyMapping", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistDocumentationComments$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistDocumentationComments_Doc", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistExpressionAnnotations$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistFullyQualifiedNames$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistFullyQualifiedNames_FQNResolution", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistFullyQualifiedNames_ResolvedLibrary", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistFullyQualifiedNames_ResolvedModule", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistGatherDiagnostics$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistGatherDiagnostics_DiagnosticsMeta", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistGenericAnnotations$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistGlobalNames$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistGraph$Occurrence$Def", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistGraph$Occurrence$Use", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistGraph_Link", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistIgnoredBindings$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistInfo$Scope$Child", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistInfo$Scope$Root", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistInfo_Occurrence", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistMethodCalls$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistMethodDefinitions$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistModuleAnnotations$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistModuleAnnotations_Annotations", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistPatterns$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistTailCall$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistTypeNames$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistTypeSignatures$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.compiler.pass.analyse.PersistTypeSignatures_Signature", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.ImportExportCache$PersistBindingsMap", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.ImportExportCache$PersistMapToBindings", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap$ModuleReference$Abstract", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap$SymbolRestriction$All$", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap$SymbolRestriction$AllowedResolution", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap$SymbolRestriction$Hiding", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap$SymbolRestriction$Intersect", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap$SymbolRestriction$Only", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap$SymbolRestriction$Union", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_Cons", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_ExportedModule", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_ModuleMethod", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_PolyglotSymbol", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_Resolution", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_ResolvedConstructor", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_ResolvedImport", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_ResolvedMethod", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_ResolvedModule", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_ResolvedPolyglotField", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_ResolvedPolyglotSymbol", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_ResolvedType", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistBindingsMap_Type", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.caches.PersistQualifiedName", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.Any", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.Boolean", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.CreateProcessSystemMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.EmptyMapMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.Error", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.ExitSystemMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.Is_normalizedTextMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.Is_unixSystemMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.LengthTextMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.Map", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.NanoTimeSystemMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.Nothing", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.OsSystemMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.Polyglot", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.bool.AndMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.bool.IfThenElseMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.bool.IfThenMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.bool.NotMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.bool.OrMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.BetweenBuiltinDurationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.Date", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.DateDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.DateTime", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.DayDateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.DayDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.Duration", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.EpochStartDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.HourDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.HourTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.HoursDurationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MicrosecondDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MicrosecondTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MillisecondDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MillisecondTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MillisecondsDurationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MinusBuiltinDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MinusBuiltinDurationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MinusBuiltinTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MinuteDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MinuteTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MinutesDurationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MonthDateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.MonthDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.NanosecondBuiltinDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.NanosecondBuiltinTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.NanosecondsDurationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.NewBuiltinDateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.NewBuiltinDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.NewBuiltinDurationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.NewBuiltinTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.NewBuiltinTimeZoneMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.NowDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.NowTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.OffsetTimeZoneMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.ParseBuiltinTimeZoneMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.PlusBuiltinDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.PlusBuiltinDurationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.PlusBuiltinTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.SecondDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.SecondTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.SecondsDurationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.SystemTimeZoneMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.TimeOfDay", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.TimeOfDayDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.TimeZone", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.ToSecondsTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.ToTextDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.ToTextTimeOfDayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.TodayDateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.TotalMillisecondsBuiltinDurationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.YearDateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.YearDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.ZoneDateTimeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.date.ZoneIdTimeZoneMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.debug.Debug", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.ArithmeticError", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.ArityError", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.AssertionError", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.AttachWithStacktraceWarningMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.CatchAnyMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.CatchErrorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.CatchPanicMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.CaughtPanic", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.CaughtPanicConvertToDataflowErrorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.CompileError", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.CreateWarningMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.ErrorToTextMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.ForbiddenOperation", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.GetAllArrayWarningMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.GetAttachedStackTraceMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.GetReassignmentsWarningMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.IncomparableValues", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.IndexOutOfBounds", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.InexhaustivePatternMatch", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.InvalidArrayIndex", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.InvalidConversionTarget", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.LimitReachedWarningMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.MapError", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.ModuleDoesNotExist", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.ModuleNotInPackageError", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.NoConversionCurrying", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.NoSuchConversion", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.NoSuchField", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.NoSuchMethod", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.NotInvokable", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.NumberParseError", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.OriginWarningMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.Panic", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.PrivateAccess", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.SetArrayWarningMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.SyntaxError", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.ThrowErrorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.ThrowPanicMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.TypeError", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.Unimplemented", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.UninitializedState", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.UnsupportedArgumentTypes", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.ValueWarningMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.Warning", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.error.displaytext.InvalidConversionTargetToDisplayTextMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.function.ApplicationOperatorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.function.Function", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.ArrayLikeHelpers", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.AtVectorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.FlattenVectorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.FromArrayBuiltinVectorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.FromPolyglotArrayBuiltinVectorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.InsertBuiltinVectorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.LengthVectorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.NewArrayProxyBuiltinArrayLikeHelpersMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.NewVectorBuilderArrayLikeHelpersMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.RemoveAtVectorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.SliceArrayVectorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.Vector", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.VectorFromFunctionArrayLikeHelpersMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.immutable.VectorToArrayArrayLikeHelpersMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.interop.generic.ExecuteMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.interop.generic.GetExecutableNameMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.interop.generic.GetMemberMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.interop.generic.GetMembersMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.interop.generic.GetSourceLocationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.interop.generic.HasSourceLocationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.interop.generic.InstantiateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.interop.generic.InvokeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.interop.generic.IsLanguageInstalledMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.AbsoluteFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.CopyBuiltinFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.CreateDirectoryBuiltinFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.DeleteBuiltinFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.ExistsFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.File", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.GetCwdFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.GetFileFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.InputStreamBuiltinFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.IsDirectoryFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.IsWritableFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.ListImmediateChildrenArrayFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.MoveBuiltinFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.NameFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.NormalizeFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.OutputStreamBuiltinFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.ParentFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.PathFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.PosixPermissionsBuiltinFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.PrintlnMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.ReadLastBytesBuiltinFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.RelativizeFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.ResolveFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.SizeBuiltinFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.io.StartsWithFileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.AtomWithAHoleMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.CreateUnresolvedSymbolMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.EnsoProjectMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.EqualsMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.FindTypeByFqnMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetAnnotationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetAtomConstructorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetAtomFieldsMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetConstructorDeclaringTypeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetConstructorFieldNamesMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetConstructorNameMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetPolyglotLanguageMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetQualifiedTypeNameMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetShortTypeNameMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetSimpleTypeNameMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetSourceLocationMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetTypeConstructorsMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetTypeMethodsMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetUnresolvedSymbolNameMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.GetUnresolvedSymbolScopeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.HashCodeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.InstrumentorBuiltinMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.IsAMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.IsAtomConstructorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.IsAtomMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.IsErrorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.IsPolyglotMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.IsSameObjectMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.IsTypeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.IsUnresolvedSymbolMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.NewAtomInstanceMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.ProjectDescription", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.meta.TypeOfBuiltinMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.mutable.Array", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.mutable.GetRefMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.mutable.NewRefMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.mutable.PutRefMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.mutable.Ref", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.Float", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.Integer", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.Number", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.AbsMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.AddMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.CeilMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.DivideMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.FloorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.GreaterMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.GreaterOrEqualMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.LessMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.LessOrEqualMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.ModMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.MultiplyMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.NegateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.PowMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.RoundMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.SubtractMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.decimal.TruncateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.AbsMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.AddMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.BitAndMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.BitNotMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.BitOrMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.BitShiftMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.BitShiftRightMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.BitXorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.CeilMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.DivMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.DivideMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.FloorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.GreaterMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.GreaterOrEqualMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.LessMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.LessOrEqualMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.ModMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.MultiplyMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.NegateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.ParseIntegerMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.PowMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.RoundMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.SubtractMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.number.integer.ToFloatMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.ordering.Comparable", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.ordering.DefaultComparator", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.ordering.LessThanMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.ordering.Ordering", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.ordering.SortArrayMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.ordering.SortVectorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.resource.BracketMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.resource.FinalizeManagedResourceMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.resource.ManagedResource", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.resource.RegisterManagedResourceMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.resource.WithMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.runtime.Context", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.runtime.ContextIsEnabledMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.runtime.GCMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.runtime.GetStackTraceMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.runtime.IsAssertionEnabledMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.runtime.NoInlineMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.runtime.NoInlineWithArgMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.runtime.RuntimeCurrentExecutionEnvironmentMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.runtime.RuntimeWithDisabledContextMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.runtime.RuntimeWithEnabledContextMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.state.GetStateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.state.PutStateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.state.RunStateMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.system.SystemProcessResult", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.text.AnyPrettyMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.text.AnyToDisplayTextMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.text.AnyToTextMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.text.ConcatMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.text.PrimTextHelper", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.text.RegexCompileMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.node.expression.builtin.text.Text", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.enso.interpreter.runtime.data.atom.StructsLibrary" +}, +{ + "name":"org.enso.interpreter.runtime.data.hash.HashMapContainsKeyMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.runtime.data.hash.HashMapGetMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.runtime.data.hash.HashMapInsertMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.runtime.data.hash.HashMapRemoveMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.runtime.data.hash.HashMapSizeMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.runtime.data.hash.HashMapToTextMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.runtime.data.hash.HashMapToVectorMethodGen", + "methods":[{"name":"makeFunction","parameterTypes":["org.enso.interpreter.EnsoLanguage","boolean"] }] +}, +{ + "name":"org.enso.interpreter.runtime.error.WarningsLibrary" +}, +{ + "name":"org.enso.interpreter.runtime.library.dispatch.TypesLibrary" +}, +{ + "name":"org.enso.persist.Persistance" +}, +{ + "name":"org.enso.polyglot.common_utils.Core_Math_Utils" +}, +{ + "name":"org.enso.runner.Main", + "methods":[{"name":"main","parameterTypes":["java.lang.String[]"] }] +}, +{ + "name":"org.graalvm.collections.Pair" +}, +{ + "name":"org.graalvm.polyglot.io.IOHelper", + "fields":[{"name":"ACCESS"}] +}, +{ + "name":"org.graalvm.polyglot.management.Management", + "fields":[{"name":"ACCESS"}] +}, +{ + "name":"org.jline.terminal.impl.exec.ExecTerminalProvider", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.jline.terminal.impl.jansi.JansiTerminalProvider", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.jline.terminal.impl.jna.JnaTerminalProvider", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"org.jline.terminal.impl.jna.linux.CLibrary$termios", + "allDeclaredFields":true +}, +{ + "name":"org.jline.terminal.impl.jna.linux.CLibrary$winsize", + "allDeclaredFields":true +}, +{ + "name":"org.openide.util.RequestProcessor" +}, +{ + "name":"org.w3c.dom.Document" +}, +{ + "name":"org.w3c.dom.Element" +}, +{ + "name":"org.w3c.dom.Node" +}, +{ + "name":"org.w3c.dom.NodeList" +}, +{ + "name":"org.w3c.dom.Text" +}, +{ + "name":"org.xml.sax.InputSource" +}, +{ + "name":"org.xml.sax.SAXException" +}, +{ + "name":"org.xml.sax.SAXParseException" +}, +{ + "name":"scala.collection.concurrent.CNodeBase", + "fields":[{"name":"csize"}] +}, +{ + "name":"scala.collection.concurrent.INodeBase", + "fields":[{"name":"mainnode"}] +}, +{ + "name":"scala.collection.concurrent.MainNode", + "fields":[{"name":"prev"}] +}, +{ + "name":"scala.collection.concurrent.TrieMap", + "fields":[{"name":"root"}] +}, +{ + "name":"sun.management.ClassLoadingImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.CompilationImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.ManagementFactoryHelper$1", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.ManagementFactoryHelper$PlatformLoggingImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.MemoryImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.MemoryManagerImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.MemoryPoolImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.management.RuntimeImpl", + "queryAllPublicConstructors":true +}, +{ + "name":"sun.security.pkcs12.PKCS12KeyStore", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.pkcs12.PKCS12KeyStore$DualFormatPKCS12", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.DSA$SHA224withDSA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.DSA$SHA256withDSA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.JavaKeyStore$DualFormatJKS", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.JavaKeyStore$JKS", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.NativePRNG", + "methods":[{"name":"","parameterTypes":[] }, {"name":"","parameterTypes":["java.security.SecureRandomParameters"] }] +}, +{ + "name":"sun.security.provider.NativePRNG$NonBlocking", + "methods":[{"name":"","parameterTypes":[] }, {"name":"","parameterTypes":["java.security.SecureRandomParameters"] }] +}, +{ + "name":"sun.security.provider.SHA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA2$SHA224", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA2$SHA256", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA5$SHA384", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.SHA5$SHA512", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.X509Factory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.provider.certpath.PKIXCertPathValidator", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.PSSParameters", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSAKeyFactory$Legacy", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSAPSSSignature", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSASignature$SHA224withRSA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.rsa.RSASignature$SHA256withRSA", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.ssl.KeyManagerFactoryImpl$SunX509", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.ssl.SSLContextImpl$DefaultSSLContext", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.ssl.TrustManagerFactoryImpl$PKIXFactory", + "methods":[{"name":"","parameterTypes":[] }] +}, +{ + "name":"sun.security.x509.AuthorityInfoAccessExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.AuthorityKeyIdentifierExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.BasicConstraintsExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.CRLDistributionPointsExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.CertificatePoliciesExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.ExtendedKeyUsageExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.IssuerAlternativeNameExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.KeyUsageExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.NetscapeCertTypeExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.PrivateKeyUsageExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.SubjectAlternativeNameExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +}, +{ + "name":"sun.security.x509.SubjectKeyIdentifierExtension", + "methods":[{"name":"","parameterTypes":["java.lang.Boolean","java.lang.Object"] }] +} ] diff --git a/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/resource-config.json b/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/resource-config.json index 429aea7bd773..db8b9343c210 100644 --- a/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/resource-config.json +++ b/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/resource-config.json @@ -1,39 +1,614 @@ { "resources":{ - "includes":[ - { - "pattern":"\\QMETA-INF/org/enso/interpreter/node/expression/builtin/BuiltinMethods.metadata\\E" - }, - { - "pattern":"\\QMETA-INF/org/enso/interpreter/node/expression/builtin/BuiltinTypes.metadata\\E" - }, - { - "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.TruffleLanguage$Provider\\E" - }, - { - "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.instrumentation.TruffleInstrument$Provider\\E" - }, - { - "pattern":"\\QMETA-INF/services/java.nio.file.spi.FileSystemProvider\\E" - }, - { - "pattern":"\\Qcom/oracle/truffle/nfi/backend/libffi/LibFFILanguage.class\\E" - }, - { - "pattern":"\\Qorg/enso/interpreter/Language.class\\E" - }, - { - "pattern":"\\Qorg/enso/interpreter/epb/EpbLanguage.class\\E" - }, - { - "pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E" - }, - { - "pattern":"\\Qapplication.conf\\E" - }, - { - "pattern":"\\Qch/qos/logback/classic/spi/Configurator.class\\E" - } - ]}, - "bundles":[] + "includes":[{ + "pattern":"\\QMETA-INF/org/enso/interpreter/node/expression/builtin/BuiltinMethods.metadata\\E" + }, { + "pattern":"\\QMETA-INF/org/enso/interpreter/node/expression/builtin/BuiltinTypes.metadata\\E" + }, { + "pattern":"\\QMETA-INF/services/ch.qos.logback.classic.spi.Configurator\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.graal.python.builtins.PythonBuiltins\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.TruffleLanguage$Provider\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.impl.TruffleLocator\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.instrumentation.TruffleInstrument$Provider\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.instrumentation.provider.TruffleInstrumentProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.library.DefaultExportProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.library.provider.DefaultExportProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.object.LayoutFactory\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.provider.InternalResourceProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.api.provider.TruffleLanguageProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.runtime.EngineCacheSupport\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.runtime.FloodControlHandler\\E" + }, { + "pattern":"\\QMETA-INF/services/com.oracle.truffle.runtime.TruffleTypes\\E" + }, { + "pattern":"\\QMETA-INF/services/java.lang.Cloneable\\E" + }, { + "pattern":"\\QMETA-INF/services/java.lang.System$LoggerFinder\\E" + }, { + "pattern":"\\QMETA-INF/services/java.net.ContentHandlerFactory\\E" + }, { + "pattern":"\\QMETA-INF/services/java.net.spi.InetAddressResolverProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/java.net.spi.URLStreamHandlerProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/java.nio.channels.spi.SelectorProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/java.nio.charset.spi.CharsetProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/java.nio.file.spi.FileSystemProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/java.time.zone.ZoneRulesProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/javax.xml.parsers.DocumentBuilderFactory\\E" + }, { + "pattern":"\\QMETA-INF/services/javax.xml.xpath.XPathFactory\\E" + }, { + "pattern":"\\QMETA-INF/services/jdk.vm.ci.services.JVMCIServiceLocator\\E" + }, { + "pattern":"\\QMETA-INF/services/org.apache.tika.detect.EncodingDetector\\E" + }, { + "pattern":"\\QMETA-INF/services/org.enso.base.file_format.FileFormatSPI\\E" + }, { + "pattern":"\\QMETA-INF/services/org.enso.logger.LoggerSetup\\E" + }, { + "pattern":"\\QMETA-INF/services/org.enso.persist.Persistance\\E" + }, { + "pattern":"\\QMETA-INF/services/org.slf4j.spi.SLF4JServiceProvider\\E" + }, { + "pattern":"\\QMETA-INF/services/org.w3c.dom.DOMImplementationSourceList\\E" + }, { + "pattern":"\\QMETA-INF/services/org/jline/terminal/provider/exec\\E" + }, { + "pattern":"\\QMETA-INF/services/org/jline/terminal/provider/jansi\\E" + }, { + "pattern":"\\QMETA-INF/services/org/jline/terminal/provider/jna\\E" + }, { + "pattern":"\\Qakka-http-version.conf\\E" + }, { + "pattern":"\\Qakka-http-version.json\\E" + }, { + "pattern":"\\Qakka-http-version.properties\\E" + }, { + "pattern":"\\Qapplication.conf\\E" + }, { + "pattern":"\\Qapplication.json\\E" + }, { + "pattern":"\\Qapplication.properties\\E" + }, { + "pattern":"\\Qch/qos/logback/classic/spi/Configurator.class\\E" + }, { + "pattern":"\\Qcom/ibm/icu/ICUConfig.properties\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/Thai.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/Thai_graphclust.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/Thai_graphclust_model4.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/Thai_graphclust_model4_heavy.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/char.brk\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/cjdict.dict\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/en.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/en_GB.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/en_Latn.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/en_US.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/root.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/thaidict.dict\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/word.brk\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/coll/\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/coll/en.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/coll/en_US.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/coll/root.res\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/coll/ucadata.icu\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/nfc.nrm\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/nfkc.nrm\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/nfkc_cf.nrm\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/pnames.icu\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/ucase.icu\\E" + }, { + "pattern":"\\Qcom/ibm/icu/impl/data/icudt73b/uprops.icu\\E" + }, { + "pattern":"\\Qcom/oracle/truffle/nfi/backend/libffi/LibFFILanguage.class\\E" + }, { + "pattern":"\\Qcom/sun/jna/linux-x86-64/libjnidispatch.so\\E" + }, { + "pattern":"\\Qlogback-test.xml\\E" + }, { + "pattern":"\\Qlogback.xml\\E" + }, { + "pattern":"\\Qorg/enso/interpreter/Language.class\\E" + }, { + "pattern":"\\Qorg/enso/interpreter/epb/EpbLanguage.class\\E" + }, { + "pattern":"\\Qorg/jline/utils/capabilities.txt\\E" + }, { + "pattern":"\\Qorg/jline/utils/xterm-256color.caps\\E" + }, { + "pattern":"\\Qorg/slf4j/impl/StaticLoggerBinder.class\\E" + }, { + "pattern":"\\Qreference.conf\\E" + }, { + "pattern":"\\Qurlhandler.props\\E" + }, { + "pattern":"\\Qversion.conf\\E" + }, { + "pattern":"\\Qversion.json\\E" + }, { + "pattern":"\\Qversion.properties\\E" + }, { + "pattern":"java.base:\\Qjdk/internal/icu/impl/data/icudt72b/uprops.icu\\E" + }, { + "pattern":"java.base:\\Qsun/net/idn/uidna.spp\\E" + }, { + "pattern":"java.base:\\Qsun/net/www/content-types.properties\\E" + }, { + "pattern":"java.xml:\\Qcom/sun/org/apache/xml/internal/serializer/Encodings.properties\\E" + }, { + "pattern":"jdk.jfr:\\Qjdk/jfr/internal/query/view.ini\\E" + }, { + "pattern":"jdk.jfr:\\Qjdk/jfr/internal/types/metadata.bin\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/ICUConfig.properties\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/Thai.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/Thai_graphclust.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/Thai_graphclust_model4.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/Thai_graphclust_model4_heavy.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/char.brk\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/cjdict.dict\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/en.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/en_GB.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/en_Latn.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/en_US.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/root.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/thaidict.dict\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/brkitr/word.brk\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/coll/en.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/coll/en_US.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/coll/root.res\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/coll/ucadata.icu\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/nfc.nrm\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/nfkc.nrm\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/nfkc_cf.nrm\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/pnames.icu\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/ucase.icu\\E" + }, { + "pattern":"org.enso.runtime:\\Qcom/ibm/icu/impl/data/icudt73b/uprops.icu\\E" + }, { + "pattern":"org.graalvm.polyglot:\\QMETA-INF/graalvm/org.graalvm.polyglot/version\\E" + }, { + "pattern":"org.graalvm.py.resources:\\QMETA-INF/resources/include.sha256\\E" + }, { + "pattern":"org.graalvm.py.resources:\\QMETA-INF/resources/libgraalpy.sha256\\E" + }, { + "pattern":"org.graalvm.py.resources:\\QMETA-INF/resources/libpython.sha256\\E" + }, { + "pattern":"org.graalvm.py.resources:\\QMETA-INF/resources/linux/amd64/native.sha256\\E" + }, { + "pattern":"org.graalvm.py.resources:\\QMETA-INF/resources/ni.sha256\\E" + }, { + "pattern":"org.graalvm.py.resources:\\Qgraalpy_versions\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/PythonBuiltins.class\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenABC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenCODECS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenCOLLECTIONS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenCOLLECTIONS_ABC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenCOPYREG.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ALIASES.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ASCII.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_BASE64_CODEC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_BIG5.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_BIG5HKSCS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_BZ2_CODEC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CHARMAP.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP037.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1006.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1026.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1125.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1140.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1250.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1251.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1252.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1253.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1254.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1255.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1256.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1257.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP1258.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP273.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP424.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP437.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP500.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP720.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP737.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP775.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP850.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP852.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP855.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP856.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP857.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP858.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP860.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP861.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP862.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP863.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP864.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP865.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP866.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP869.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP874.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP875.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP932.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP949.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_CP950.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_EUC_JISX0213.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_EUC_JIS_2004.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_EUC_JP.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_EUC_KR.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_GB18030.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_GB2312.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_GBK.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_HEX_CODEC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_HP_ROMAN8.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_HZ.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_IDNA.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO2022_JP.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO2022_JP_1.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO2022_JP_2.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO2022_JP_2004.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO2022_JP_3.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO2022_JP_EXT.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO2022_KR.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_1.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_10.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_11.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_13.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_14.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_15.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_16.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_2.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_3.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_4.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_5.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_6.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_7.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_8.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ISO8859_9.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_JOHAB.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_KOI8_R.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_KOI8_T.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_KOI8_U.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_KZ1048.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_LATIN_1.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MAC_ARABIC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MAC_CROATIAN.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MAC_CYRILLIC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MAC_FARSI.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MAC_GREEK.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MAC_ICELAND.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MAC_LATIN2.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MAC_ROMAN.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MAC_ROMANIAN.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MAC_TURKISH.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_MBCS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_OEM.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_PALMOS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_PTCP154.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_PUNYCODE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_QUOPRI_CODEC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_RAW_UNICODE_ESCAPE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ROT_13.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_SHIFT_JIS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_SHIFT_JISX0213.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_SHIFT_JIS_2004.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_TIS_620.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UNDEFINED.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UNICODE_ESCAPE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UTF_16.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UTF_16_BE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UTF_16_LE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UTF_32.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UTF_32_BE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UTF_32_LE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UTF_7.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UTF_8.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UTF_8_SIG.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_UU_CODEC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENCODINGS_ZLIB_CODEC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenENUM.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenFROZEN_ONLY.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenFUNCTOOLS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGENERICPATH.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY_BUILTINS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY_FUNCTION.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY_JAVA.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY_PIP_HOOK.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY_SULONG_SUPPORT.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY_UNICODEDATA.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY__SRE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY__STRUCT.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY__SYSCONFIG.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY__WEAKREF.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenGRAALPY___GRAALPYTHON__.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenHEAPQ.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenIMPORTLIB__BOOTSTRAP.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenIMPORTLIB__BOOTSTRAP_EXTERNAL.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenIO.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenKEYWORD.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenLOCALE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenNTPATH.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenOPERATOR.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenOS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenPOSIXPATH.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenRE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenREPRLIB.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenRLCOMPLETER.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenSITE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenSRE_COMPILE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenSRE_CONSTANTS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenSRE_PARSE.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenSTAT.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenTYPES.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/FrozenZIPIMPORT.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/Frozen_COLLECTIONS_ABC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/Frozen_PY_ABC.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/Frozen_SITEBUILTINS.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/Frozen_SYSCONFIGDATA.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/Frozen_WEAKREFSET.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qcom/oracle/graal/python/builtins/objects/module/Frozen__HELLO__.bin\\E" + }, { + "pattern":"org.graalvm.py:\\Qgraalpy_versions\\E" + }, { + "pattern":"org.graalvm.shadowed.icu4j:\\Qorg/graalvm/shadowed/com/ibm/icu/ICUConfig.properties\\E" + }, { + "pattern":"org.graalvm.shadowed.icu4j:\\Qorg/graalvm/shadowed/com/ibm/icu/impl/data/icudt74b/pool.res\\E" + }, { + "pattern":"org.graalvm.shadowed.icu4j:\\Qorg/graalvm/shadowed/com/ibm/icu/impl/data/icudt74b/root.res\\E" + }, { + "pattern":"org.graalvm.shadowed.icu4j:\\Qorg/graalvm/shadowed/com/ibm/icu/impl/data/icudt74b/uprops.icu\\E" + }, { + "pattern":"org.graalvm.shadowed.icu4j:\\Qorg/graalvm/shadowed/com/ibm/icu/impl/data/icudt74b/zoneinfo64.res\\E" + }, { + "pattern":"org.graalvm.truffle.runtime:\\QMETA-INF/resources/engine/libtruffleattach/linux/amd64/sha256\\E" + }, { + "pattern":"org.graalvm.truffle:\\QMETA-INF/graalvm/org.graalvm.truffle/version\\E" + }]}, + "bundles":[{ + "name":"com.oracle.js.parser.resources.Messages", + "locales":[""] + }, { + "name":"com.sun.org.apache.xerces.internal.impl.msg.XMLMessages", + "locales":[""] + }, { + "name":"com.sun.org.apache.xml.internal.serializer.XMLEntities", + "locales":[""] + }, { + "name":"com.sun.org.apache.xml.internal.serializer.utils.SerializerMessages", + "classNames":["com.sun.org.apache.xml.internal.serializer.utils.SerializerMessages", "com.sun.org.apache.xml.internal.serializer.utils.SerializerMessages_en"] + }, { + "name":"com.sun.org.apache.xpath.internal.res.XPATHErrorResources", + "classNames":["com.sun.org.apache.xpath.internal.res.XPATHErrorResources", "com.sun.org.apache.xpath.internal.res.XPATHErrorResources_en"] + }] } diff --git a/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/serialization-config.json b/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/serialization-config.json index b92d4090ecc7..b8f5b003a4eb 100644 --- a/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/serialization-config.json +++ b/engine/runner/src/main/resources/META-INF/native-image/org/enso/runner/serialization-config.json @@ -1,269 +1,275 @@ -[ - { - "name":"java.lang.Integer" - }, - { - "name":"java.lang.Number" - }, - { - "name":"java.lang.String" - }, - { - "name":"java.util.UUID" - }, - { - "name":"org.enso.compiler.core.ir.DiagnosticStorage" - }, - { - "name":"org.enso.compiler.core.ir.MetadataStorage" - }, - { - "name":"org.enso.compiler.data.BindingsMap" - }, - { - "name":"org.enso.compiler.data.BindingsMap$Cons" - }, - { - "name":"org.enso.compiler.data.BindingsMap$ExportedModule" - }, - { - "name":"org.enso.compiler.data.BindingsMap$ModuleMethod" - }, - { - "name":"org.enso.compiler.data.BindingsMap$ModuleReference$Abstract" - }, - { - "name":"org.enso.compiler.data.BindingsMap$PolyglotSymbol" - }, - { - "name":"org.enso.compiler.data.BindingsMap$Resolution" - }, - { - "name":"org.enso.compiler.data.BindingsMap$ResolvedConstructor" - }, - { - "name":"org.enso.compiler.data.BindingsMap$ResolvedImport" - }, - { - "name":"org.enso.compiler.data.BindingsMap$ResolvedMethod" - }, - { - "name":"org.enso.compiler.data.BindingsMap$ResolvedModule" - }, - { - "name":"org.enso.compiler.data.BindingsMap$ResolvedPolyglotSymbol" - }, - { - "name":"org.enso.compiler.data.BindingsMap$SymbolRestriction$AllowedResolution" - }, - { - "name":"org.enso.compiler.data.BindingsMap$SymbolRestriction$Hiding" - }, - { - "name":"org.enso.compiler.data.BindingsMap$SymbolRestriction$Intersect" - }, - { - "name":"org.enso.compiler.data.BindingsMap$SymbolRestriction$Only" - }, - { - "name":"org.enso.compiler.data.BindingsMap$SymbolRestriction$Union" - }, - { - "name":"org.enso.compiler.data.BindingsMap$Type" - }, - { - "name":"org.enso.compiler.pass.analyse.AliasAnalysis$" - }, - { - "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Graph" - }, - { - "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Graph$Link" - }, - { - "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Graph$Occurrence$Def" - }, - { - "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Graph$Occurrence$Use" - }, - { - "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Graph$Scope" - }, - { - "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Info$Occurrence" - }, - { - "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Info$Scope$Child" - }, - { - "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Info$Scope$Root" - }, - { - "name":"org.enso.compiler.pass.analyse.BindingAnalysis$" - }, - { - "name":"org.enso.compiler.pass.analyse.CachePreferenceAnalysis$" - }, - { - "name":"org.enso.compiler.pass.analyse.CachePreferenceAnalysis$WeightInfo" - }, - { - "name":"org.enso.compiler.pass.analyse.DataflowAnalysis$" - }, - { - "name":"org.enso.compiler.pass.analyse.DataflowAnalysis$DependencyInfo" - }, - { - "name":"org.enso.compiler.pass.analyse.DataflowAnalysis$DependencyInfo$Type$Dynamic" - }, - { - "name":"org.enso.compiler.pass.analyse.DataflowAnalysis$DependencyInfo$Type$Static" - }, - { - "name":"org.enso.compiler.pass.analyse.DataflowAnalysis$DependencyMapping" - }, - { - "name":"org.enso.compiler.pass.analyse.GatherDiagnostics$" - }, - { - "name":"org.enso.compiler.pass.analyse.GatherDiagnostics$DiagnosticsMeta" - }, - { - "name":"org.enso.compiler.pass.analyse.TailCall$" - }, - { - "name":"org.enso.compiler.pass.analyse.TailCall$TailPosition$NotTail$" - }, - { - "name":"org.enso.compiler.pass.analyse.TailCall$TailPosition$Tail$" - }, - { - "name":"org.enso.compiler.pass.resolve.DocumentationComments$" - }, - { - "name":"org.enso.compiler.pass.resolve.DocumentationComments$Doc" - }, - { - "name":"org.enso.compiler.pass.resolve.ExpressionAnnotations$" - }, - { - "name":"org.enso.compiler.pass.resolve.GlobalNames$" - }, - { - "name":"org.enso.compiler.pass.resolve.IgnoredBindings$" - }, - { - "name":"org.enso.compiler.pass.resolve.IgnoredBindings$State$Ignored$" - }, - { - "name":"org.enso.compiler.pass.resolve.IgnoredBindings$State$NotIgnored$" - }, - { - "name":"org.enso.compiler.pass.resolve.MethodCalls$" - }, - { - "name":"org.enso.compiler.pass.resolve.MethodDefinitions$" - }, - { - "name":"org.enso.compiler.pass.resolve.ModuleAnnotations$" - }, - { - "name":"org.enso.compiler.pass.resolve.ModuleAnnotations$Annotations" - }, - { - "name":"org.enso.compiler.pass.resolve.Patterns$" - }, - { - "name":"org.enso.compiler.pass.resolve.TypeSignatures$" - }, - { - "name":"org.enso.compiler.pass.resolve.TypeSignatures$Signature" - }, - { - "name":"org.enso.pkg.QualifiedName" - }, - { - "name":"org.enso.syntax.text.Location" - }, - { - "name":"scala.None$" - }, - { - "name":"scala.Option" - }, - { - "name":"scala.Some" - }, - { - "name":"scala.Tuple2" - }, - { - "name":"scala.collection.IterableFactory$ToFactory" - }, - { - "name":"scala.collection.MapFactory$ToFactory" - }, - { - "name":"scala.collection.generic.DefaultSerializationProxy" - }, - { - "name":"scala.collection.generic.SerializeEnd$" - }, - { - "name":"scala.collection.immutable.HashMap$" - }, - { - "name":"scala.collection.immutable.HashMap" - }, - { - "name":"scala.collection.immutable.HashSet$" - }, - { - "name":"scala.collection.immutable.HashSet" - }, - { - "name":"scala.collection.immutable.List$" - }, - { - "name":"scala.collection.immutable.List" - }, - { - "name":"scala.collection.immutable.Map$EmptyMap$" - }, - { - "name":"scala.collection.immutable.Map$Map1" - }, - { - "name":"scala.collection.immutable.Map$Map2" - }, - { - "name":"scala.collection.immutable.Map$Map3" - }, - { - "name":"scala.collection.immutable.Map$Map4" - }, - { - "name":"scala.collection.immutable.Map" - }, - { - "name":"scala.collection.immutable.Set$EmptySet$" - }, - { - "name":"scala.collection.immutable.Set$Set1" - }, - { - "name":"scala.collection.immutable.Set$Set2" - }, - { - "name":"scala.collection.immutable.Set$Set3" - }, - { - "name":"scala.collection.immutable.Set$Set4" - }, - { - "name":"scala.collection.mutable.HashMap$DeserializationFactory" - }, - { - "name":"scala.runtime.ModuleSerializationProxy" - } -] +{ + "types":[ + { + "name":"java.lang.Integer" + }, + { + "name":"java.lang.Number" + }, + { + "name":"java.lang.String" + }, + { + "name":"java.util.UUID" + }, + { + "name":"org.enso.compiler.core.ir.DiagnosticStorage" + }, + { + "name":"org.enso.compiler.core.ir.MetadataStorage" + }, + { + "name":"org.enso.compiler.data.BindingsMap" + }, + { + "name":"org.enso.compiler.data.BindingsMap$Cons" + }, + { + "name":"org.enso.compiler.data.BindingsMap$ExportedModule" + }, + { + "name":"org.enso.compiler.data.BindingsMap$ModuleMethod" + }, + { + "name":"org.enso.compiler.data.BindingsMap$ModuleReference$Abstract" + }, + { + "name":"org.enso.compiler.data.BindingsMap$PolyglotSymbol" + }, + { + "name":"org.enso.compiler.data.BindingsMap$Resolution" + }, + { + "name":"org.enso.compiler.data.BindingsMap$ResolvedConstructor" + }, + { + "name":"org.enso.compiler.data.BindingsMap$ResolvedImport" + }, + { + "name":"org.enso.compiler.data.BindingsMap$ResolvedMethod" + }, + { + "name":"org.enso.compiler.data.BindingsMap$ResolvedModule" + }, + { + "name":"org.enso.compiler.data.BindingsMap$ResolvedPolyglotSymbol" + }, + { + "name":"org.enso.compiler.data.BindingsMap$SymbolRestriction$AllowedResolution" + }, + { + "name":"org.enso.compiler.data.BindingsMap$SymbolRestriction$Hiding" + }, + { + "name":"org.enso.compiler.data.BindingsMap$SymbolRestriction$Intersect" + }, + { + "name":"org.enso.compiler.data.BindingsMap$SymbolRestriction$Only" + }, + { + "name":"org.enso.compiler.data.BindingsMap$SymbolRestriction$Union" + }, + { + "name":"org.enso.compiler.data.BindingsMap$Type" + }, + { + "name":"org.enso.compiler.pass.analyse.AliasAnalysis$" + }, + { + "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Graph" + }, + { + "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Graph$Link" + }, + { + "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Graph$Occurrence$Def" + }, + { + "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Graph$Occurrence$Use" + }, + { + "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Graph$Scope" + }, + { + "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Info$Occurrence" + }, + { + "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Info$Scope$Child" + }, + { + "name":"org.enso.compiler.pass.analyse.AliasAnalysis$Info$Scope$Root" + }, + { + "name":"org.enso.compiler.pass.analyse.BindingAnalysis$" + }, + { + "name":"org.enso.compiler.pass.analyse.CachePreferenceAnalysis$" + }, + { + "name":"org.enso.compiler.pass.analyse.CachePreferenceAnalysis$WeightInfo" + }, + { + "name":"org.enso.compiler.pass.analyse.DataflowAnalysis$" + }, + { + "name":"org.enso.compiler.pass.analyse.DataflowAnalysis$DependencyInfo" + }, + { + "name":"org.enso.compiler.pass.analyse.DataflowAnalysis$DependencyInfo$Type$Dynamic" + }, + { + "name":"org.enso.compiler.pass.analyse.DataflowAnalysis$DependencyInfo$Type$Static" + }, + { + "name":"org.enso.compiler.pass.analyse.DataflowAnalysis$DependencyMapping" + }, + { + "name":"org.enso.compiler.pass.analyse.GatherDiagnostics$" + }, + { + "name":"org.enso.compiler.pass.analyse.GatherDiagnostics$DiagnosticsMeta" + }, + { + "name":"org.enso.compiler.pass.analyse.TailCall$" + }, + { + "name":"org.enso.compiler.pass.analyse.TailCall$TailPosition$NotTail$" + }, + { + "name":"org.enso.compiler.pass.analyse.TailCall$TailPosition$Tail$" + }, + { + "name":"org.enso.compiler.pass.resolve.DocumentationComments$" + }, + { + "name":"org.enso.compiler.pass.resolve.DocumentationComments$Doc" + }, + { + "name":"org.enso.compiler.pass.resolve.ExpressionAnnotations$" + }, + { + "name":"org.enso.compiler.pass.resolve.GlobalNames$" + }, + { + "name":"org.enso.compiler.pass.resolve.IgnoredBindings$" + }, + { + "name":"org.enso.compiler.pass.resolve.IgnoredBindings$State$Ignored$" + }, + { + "name":"org.enso.compiler.pass.resolve.IgnoredBindings$State$NotIgnored$" + }, + { + "name":"org.enso.compiler.pass.resolve.MethodCalls$" + }, + { + "name":"org.enso.compiler.pass.resolve.MethodDefinitions$" + }, + { + "name":"org.enso.compiler.pass.resolve.ModuleAnnotations$" + }, + { + "name":"org.enso.compiler.pass.resolve.ModuleAnnotations$Annotations" + }, + { + "name":"org.enso.compiler.pass.resolve.Patterns$" + }, + { + "name":"org.enso.compiler.pass.resolve.TypeSignatures$" + }, + { + "name":"org.enso.compiler.pass.resolve.TypeSignatures$Signature" + }, + { + "name":"org.enso.pkg.QualifiedName" + }, + { + "name":"org.enso.syntax.text.Location" + }, + { + "name":"scala.None$" + }, + { + "name":"scala.Option" + }, + { + "name":"scala.Some" + }, + { + "name":"scala.Tuple2" + }, + { + "name":"scala.collection.IterableFactory$ToFactory" + }, + { + "name":"scala.collection.MapFactory$ToFactory" + }, + { + "name":"scala.collection.generic.DefaultSerializationProxy" + }, + { + "name":"scala.collection.generic.SerializeEnd$" + }, + { + "name":"scala.collection.immutable.HashMap" + }, + { + "name":"scala.collection.immutable.HashMap$" + }, + { + "name":"scala.collection.immutable.HashSet" + }, + { + "name":"scala.collection.immutable.HashSet$" + }, + { + "name":"scala.collection.immutable.List" + }, + { + "name":"scala.collection.immutable.List$" + }, + { + "name":"scala.collection.immutable.Map" + }, + { + "name":"scala.collection.immutable.Map$EmptyMap$" + }, + { + "name":"scala.collection.immutable.Map$Map1" + }, + { + "name":"scala.collection.immutable.Map$Map2" + }, + { + "name":"scala.collection.immutable.Map$Map3" + }, + { + "name":"scala.collection.immutable.Map$Map4" + }, + { + "name":"scala.collection.immutable.Set$EmptySet$" + }, + { + "name":"scala.collection.immutable.Set$Set1" + }, + { + "name":"scala.collection.immutable.Set$Set2" + }, + { + "name":"scala.collection.immutable.Set$Set3" + }, + { + "name":"scala.collection.immutable.Set$Set4" + }, + { + "name":"scala.collection.mutable.HashMap$DeserializationFactory" + }, + { + "name":"scala.runtime.ModuleSerializationProxy" + } + ], + "lambdaCapturingTypes":[ + ], + "proxies":[ + ] +} From a62f7472326bfad333ef8fc60a46c421a47deb73 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Mon, 6 May 2024 17:29:44 +0200 Subject: [PATCH 03/21] Include all Standard/Base JARs on classpath when building NI of engine/runner --- build.sbt | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/build.sbt b/build.sbt index 23c723d35cec..dffa2c92ec34 100644 --- a/build.sbt +++ b/build.sbt @@ -2351,7 +2351,9 @@ lazy val `engine-runner` = project additionalCp = Seq( "runtime.jar", "runner.jar" - ), + ) ++ (`base-polyglot-root` + .listFiles("*.jar") + .map(_.getAbsolutePath())), initializeAtRuntime = Seq( "org.jline.nativ.JLineLibrary", "org.jline.terminal.impl.jna", From b9f8fecfe71c67fd0b9b3a0f81388fb875c57375 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Mon, 6 May 2024 17:32:40 +0200 Subject: [PATCH 04/21] Importing from Standard.Base works in NI mode again --- engine/runner/src/test/resources/Factorial.enso | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/engine/runner/src/test/resources/Factorial.enso b/engine/runner/src/test/resources/Factorial.enso index a4aac8e64891..ef86800b699f 100644 --- a/engine/runner/src/test/resources/Factorial.enso +++ b/engine/runner/src/test/resources/Factorial.enso @@ -1,13 +1,12 @@ +import Standard.Base.Data.Numbers +import Standard.Base.IO + fac n = - facacc n v = if int_lte n 1 then v else @Tail_Call facacc (int_minus n 1) (int_mul n v) + facacc n v = if n <= 1 then v else @Tail_Call facacc n-1 n*v res = facacc n 1 res -int_lte a b = @Builtin_Method "Integer.<=" -int_minus a b = @Builtin_Method "Integer.-" -int_mul a b = @Builtin_Method "Integer.*" - -main number = - ## Note: This assumes that number is of type Integer already - fac number +main number=5 = + v = fac number + IO.println v From 46b48d6da13e0d60d5086c2d4a0b8f3835f28691 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Tue, 7 May 2024 06:24:19 +0200 Subject: [PATCH 05/21] base-polyglot-root may not exist --- build.sbt | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/build.sbt b/build.sbt index dffa2c92ec34..6d50c8a54043 100644 --- a/build.sbt +++ b/build.sbt @@ -2351,9 +2351,14 @@ lazy val `engine-runner` = project additionalCp = Seq( "runtime.jar", "runner.jar" - ) ++ (`base-polyglot-root` - .listFiles("*.jar") - .map(_.getAbsolutePath())), + ) ++ { + val jars = `base-polyglot-root`.listFiles("*.jar") + if (jars == null) { + Seq() + } else { + jars.map(_.getAbsolutePath()) + } + }, initializeAtRuntime = Seq( "org.jline.nativ.JLineLibrary", "org.jline.terminal.impl.jna", @@ -2372,6 +2377,9 @@ lazy val `engine-runner` = project ) ) .dependsOn(assembly) + .dependsOn( + buildEngineDistribution + ) .value, buildNativeImage := NativeImage .incrementalNativeImageBuild( From 2556a2cf3752a82496f4eea3065913b4e547a246 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Tue, 7 May 2024 06:59:00 +0200 Subject: [PATCH 06/21] Compute additional path at invocation of the buildNativeImage task --- build.sbt | 13 +++++++------ project/NativeImage.scala | 6 +++--- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/build.sbt b/build.sbt index 6d50c8a54043..50f76049da22 100644 --- a/build.sbt +++ b/build.sbt @@ -2348,15 +2348,16 @@ lazy val `engine-runner` = project "-Dnic=nic" ), mainClass = Some("org.enso.runner.Main"), - additionalCp = Seq( - "runtime.jar", - "runner.jar" - ) ++ { + additionalCp = () => { + val core = Seq( + "runtime.jar", + "runner.jar" + ) val jars = `base-polyglot-root`.listFiles("*.jar") if (jars == null) { - Seq() + core } else { - jars.map(_.getAbsolutePath()) + core ++ jars.map(_.getAbsolutePath()) } }, initializeAtRuntime = Seq( diff --git a/project/NativeImage.scala b/project/NativeImage.scala index b312664aeba3..b8d1d3b809a7 100644 --- a/project/NativeImage.scala +++ b/project/NativeImage.scala @@ -86,7 +86,7 @@ object NativeImage { initializeAtRuntime: Seq[String] = Seq.empty, initializeAtBuildtime: Seq[String] = defaultBuildTimeInitClasses, mainClass: Option[String] = None, - additionalCp: Seq[String] = Seq(), + additionalCp: () => Seq[String] = () => Seq(), verbose: Boolean = false, includeRuntime: Boolean = true ): Def.Initialize[Task[Unit]] = Def @@ -186,9 +186,9 @@ object NativeImage { val fullCp = if (includeRuntime) { - componentModules ++ additionalCp + componentModules ++ additionalCp() } else { - ourCp.map(_.data.getAbsolutePath) ++ additionalCp + ourCp.map(_.data.getAbsolutePath) ++ additionalCp() } val cpStr = fullCp.mkString(File.pathSeparator) log.debug("Class-path: " + cpStr) From 0d24b3e2c83252035512597e1416f60aa5999b96 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Tue, 7 May 2024 08:38:39 +0200 Subject: [PATCH 07/21] Useful perf and debug switches --- build.sbt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/build.sbt b/build.sbt index 50f76049da22..9288585d6129 100644 --- a/build.sbt +++ b/build.sbt @@ -2342,9 +2342,10 @@ lazy val `engine-runner` = project additionalOptions = Seq( "-Dorg.apache.commons.logging.Log=org.apache.commons.logging.impl.NoOpLog", "-H:IncludeResources=.*Main.enso$", + // useful perf & debug switches: // "-g", - // "-H:+DashboardAll", - // "-H:DashboardDump=runner.bgv" + // "-H:+SourceLevelDebug", + // "-H:-DeleteLocalSymbols", "-Dnic=nic" ), mainClass = Some("org.enso.runner.Main"), From 9d75c72cdfee05f9374b465ceaa8f322f798c79c Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Mon, 13 May 2024 18:35:45 +0200 Subject: [PATCH 08/21] Configuration for NI debugging of the runner --- .vscode/launch.json | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.vscode/launch.json b/.vscode/launch.json index 1bb51155a541..86ced2f1ac0a 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -27,6 +27,13 @@ "command": "npm run dev", // "env": {"NODE_OPTIONS": "--inspect"}, "cwd": "${workspaceFolder}/app/gui2" + }, + { + "type": "nativeimage", + "request": "launch", + "name": "Launch Native Image", + "nativeImagePath": "${workspaceFolder}/runner", + "args": "--help" } ] } \ No newline at end of file From c507a470867ca27097fd3c7d93c8465bed17b726 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Mon, 13 May 2024 18:36:59 +0200 Subject: [PATCH 09/21] NI is built from -cp - we need other method of detecting presence of Espresso --- .../java/org/enso/runner/ContextFactory.java | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/engine/runner/src/main/java/org/enso/runner/ContextFactory.java b/engine/runner/src/main/java/org/enso/runner/ContextFactory.java index 14112186d2d4..5488173dc7d9 100644 --- a/engine/runner/src/main/java/org/enso/runner/ContextFactory.java +++ b/engine/runner/src/main/java/org/enso/runner/ContextFactory.java @@ -181,17 +181,13 @@ PolyglotContext build() { } if (ENGINE_HAS_JAVA) { var javaHome = System.getProperty("java.home"); - if (javaHome == null) { - javaHome = System.getenv("JAVA_HOME"); - } - if (javaHome == null) { - throw new IllegalStateException("Specify JAVA_HOME environment property"); + if (javaHome != null) { + builder.option("java.JavaHome", javaHome); } builder .option("java.ExposeNativeJavaVM", "true") .option("java.Polyglot", "true") .option("java.UseBindingsLoader", "true") - .option("java.JavaHome", javaHome) .allowCreateThread(true); } return new PolyglotContext(builder.build()); @@ -205,6 +201,13 @@ PolyglotContext build() { static { var modules = ModuleLayer.boot().modules().stream(); - ENGINE_HAS_JAVA = modules.anyMatch(m -> "org.graalvm.espresso".equals(m.getName())); + var found = modules.anyMatch(m -> "org.graalvm.espresso".equals(m.getName())); + if (!found) { + var url = + ContextFactory.class.getResource( + "/META-INF/native-image/com.oracle.truffle.espresso/native-image.properties"); + found = url != null; + } + ENGINE_HAS_JAVA = found; } } From 2473812b810e3cbdd68ad5ef855e7abcbe43f28c Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Mon, 13 May 2024 19:24:42 +0200 Subject: [PATCH 10/21] Script to generate 'small JDK' with native-image in jdk directory --- jdk.sh | 27 +++++++++++++++++++++++++++ project/NativeImage.scala | 23 +++++++++++++++-------- 2 files changed, 42 insertions(+), 8 deletions(-) create mode 100755 jdk.sh diff --git a/jdk.sh b/jdk.sh new file mode 100755 index 000000000000..8419332712ef --- /dev/null +++ b/jdk.sh @@ -0,0 +1,27 @@ +#!/bin/bash -x +set -e + +if ! [ -f $JAVA_HOME/bin/jlink ]; then + echo Specify JAVA_HOME environment variable + exit 1 +fi + +rm -rf jdk + +JS_MODULES=org.graalvm.nativeimage,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.base,org.graalvm.nativeimage.driver,org.graalvm.nativeimage.librarysupport,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.compiler.graal,jdk.httpserver,java.naming,java.net.http +DEBUG_MODULES=jdk.jdwp.agent +PYTHON_MODULES=jdk.security.auth,java.naming + +$JAVA_HOME/bin/jlink --module-path $JAVA_HOME/lib/svm/bin/../../graalvm/svm-driver.jar:$JAVA_HOME/lib/svm/bin/../builder/native-image-base.jar:$JAVA_HOME/lib/svm/bin/../builder/objectfile.jar:$JAVA_HOME/lib/svm/bin/../builder/pointsto.jar:$JAVA_HOME/lib/svm/bin/../builder/svm-enterprise.jar:$JAVA_HOME/lib/svm/bin/../builder/svm.jar:$JAVA_HOME/lib/svm/bin/../library-support.jar --output jdk --add-modules $JS_MODULES,$DEBUG_MODULES,$PYTHON_MODULES +cp -r $JAVA_HOME/lib/graalvm/ $JAVA_HOME/lib/svm/ $JAVA_HOME/lib/static/ $JAVA_HOME/lib/truffle/ ./jdk/lib/ + +cd jdk/bin/ +ln -s ../lib/svm/bin/native-image ./ +cd ../../ + +cp $HOME/.m2/repository/org/graalvm/shadowed/icu4j/24.1.0-SNAPSHOT/icu4j-24.1.0-SNAPSHOT.jar ./built-distribution/enso-engine-0.0.0-dev-linux-amd64/enso-0.0.0-dev/component/icu4j-24.0.0.jar + +#rm ./built-distribution/enso-engine*/enso-*/component/icu4j*.jar +#rm ./built-distribution/enso-engine*/enso-*/component/js-language*.jar +#rm ./built-distribution/enso-engine*/enso-*/component/regex*.jar +#rm ./built-distribution/enso-engine*/enso-*/component/python-*.jar diff --git a/project/NativeImage.scala b/project/NativeImage.scala index b8d1d3b809a7..0bdc68b3f970 100644 --- a/project/NativeImage.scala +++ b/project/NativeImage.scala @@ -91,17 +91,24 @@ object NativeImage { includeRuntime: Boolean = true ): Def.Initialize[Task[Unit]] = Def .task { - val log = state.value.log - val javaHome = System.getProperty("java.home") - val subProjectRoot = baseDirectory.value - val nativeImagePath = + val log = state.value.log + + def nativeImagePath(path: String): String = if (Platform.isWindows) - s"$javaHome\\bin\\native-image.cmd" - else s"$javaHome/bin/native-image" + s"$path\\bin\\native-image.cmd" + else s"$path/bin/native-image" + + val localJdk = baseDirectory.value / ".." / ".." / "jdk" + val localNI = nativeImagePath(localJdk.getPath()) + val javaHome = + if (file(localNI).exists()) localJdk.getPath() + else System.getProperty("java.home") + + val subProjectRoot = baseDirectory.value val pathToJAR = (assembly / assemblyOutputPath).value.toPath.toAbsolutePath.normalize - if (!file(nativeImagePath).exists()) { + if (!file(nativeImagePath(javaHome)).exists()) { log.error( "Unexpected: Native Image component not found in the JVM distribution." ) @@ -225,7 +232,7 @@ object NativeImage { val newPath = pathParts.mkString(File.pathSeparator) val cmd = - Seq(nativeImagePath) ++ + Seq(nativeImagePath(javaHome)) ++ verboseOpt ++ Seq("@" + argFile.toAbsolutePath.toString) From 1933c77b66dabdf970938776206469dcafe9c1a1 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Tue, 14 May 2024 19:01:01 +0200 Subject: [PATCH 11/21] Exclude Graal.js and Graal Python when using Espresso, as they don't run without java.desktop --- project/GraalVM.scala | 50 ++++++++++++++++++++++++++----------------- 1 file changed, 30 insertions(+), 20 deletions(-) diff --git a/project/GraalVM.scala b/project/GraalVM.scala index 06431bf264c5..9a3eb4a265eb 100644 --- a/project/GraalVM.scala +++ b/project/GraalVM.scala @@ -51,27 +51,35 @@ object GraalVM { * into engine distribution build, so we have to maintain these manually. */ - val pythonPkgs = Seq( - "org.graalvm.python" % "python-language" % version, - "org.graalvm.python" % "python-resources" % version, - "org.bouncycastle" % "bcutil-jdk18on" % "1.76", - "org.bouncycastle" % "bcpkix-jdk18on" % "1.76", - "org.bouncycastle" % "bcprov-jdk18on" % "1.76", - "org.graalvm.llvm" % "llvm-api" % version, - "org.graalvm.truffle" % "truffle-nfi" % version, - "org.graalvm.truffle" % "truffle-nfi-libffi" % version, - "org.graalvm.regex" % "regex" % version, - "org.graalvm.tools" % "profiler-tool" % version, - "org.graalvm.shadowed" % "json" % version, - "org.graalvm.shadowed" % "icu4j" % version, - "org.graalvm.shadowed" % "xz" % version - ) + val pythonPkgs = if ("espresso".equals(System.getenv("ENSO_JAVA"))) { + Seq() + } else { + Seq( + "org.graalvm.python" % "python-language" % version, + "org.graalvm.python" % "python-resources" % version, + "org.bouncycastle" % "bcutil-jdk18on" % "1.76", + "org.bouncycastle" % "bcpkix-jdk18on" % "1.76", + "org.bouncycastle" % "bcprov-jdk18on" % "1.76", + "org.graalvm.llvm" % "llvm-api" % version, + "org.graalvm.truffle" % "truffle-nfi" % version, + "org.graalvm.truffle" % "truffle-nfi-libffi" % version, + "org.graalvm.regex" % "regex" % version, + "org.graalvm.tools" % "profiler-tool" % version, + "org.graalvm.shadowed" % "json" % version, + "org.graalvm.shadowed" % "icu4j" % version, + "org.graalvm.shadowed" % "xz" % version + ) + } - val jsPkgs = Seq( - "org.graalvm.js" % "js-language" % version, - "org.graalvm.regex" % "regex" % version, - "org.graalvm.shadowed" % "icu4j" % version - ) + val jsPkgs = if ("espresso".equals(System.getenv("ENSO_JAVA"))) { + Seq() + } else { + Seq( + "org.graalvm.js" % "js-language" % version, + "org.graalvm.regex" % "regex" % version, + "org.graalvm.shadowed" % "icu4j" % version + ) + } val chromeInspectorPkgs = Seq( "org.graalvm.tools" % "chromeinspector-tool" % version, @@ -89,6 +97,8 @@ object GraalVM { val espressoPkgs = if ("espresso".equals(System.getenv("ENSO_JAVA"))) { Seq( + "org.graalvm.truffle" % "truffle-nfi" % version, + "org.graalvm.truffle" % "truffle-nfi-libffi" % version, "org.graalvm.espresso" % "espresso-language" % version, "org.graalvm.espresso" % "espresso-libs-resources-linux-amd64" % version, "org.graalvm.espresso" % "espresso-runtime-resources-linux-amd64" % version From 593e9b0135e3c56877c08ad435630269e66ce3f2 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Wed, 15 May 2024 05:40:38 +0200 Subject: [PATCH 12/21] Avoid special Graal.js settings --- engine/runner/src/main/java/org/enso/runner/ContextFactory.java | 1 - 1 file changed, 1 deletion(-) diff --git a/engine/runner/src/main/java/org/enso/runner/ContextFactory.java b/engine/runner/src/main/java/org/enso/runner/ContextFactory.java index 5488173dc7d9..1cd5e7c217dd 100644 --- a/engine/runner/src/main/java/org/enso/runner/ContextFactory.java +++ b/engine/runner/src/main/java/org/enso/runner/ContextFactory.java @@ -149,7 +149,6 @@ PolyglotContext build() { .options(options) .option(RuntimeOptions.ENABLE_AUTO_PARALLELISM, Boolean.toString(enableAutoParallelism)) .option(RuntimeOptions.WARNINGS_LIMIT, Integer.toString(warningsLimit)) - .option("js.foreign-object-prototype", "true") .out(out) .in(in) .serverTransport( From e20308be5fc6fcd3fa6fd2cbec1cf79df6ee70ea Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Wed, 15 May 2024 05:42:46 +0200 Subject: [PATCH 13/21] Patching SnakeYaml to run without java.desktop --- build.sbt | 3 + .../introspector/MethodProperty.java | 185 ++++++++++++++++++ .../snakeyaml/introspector/PropertyUtils.java | 172 ++++++++++++++++ 3 files changed, 360 insertions(+) create mode 100644 engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java create mode 100644 engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java diff --git a/build.sbt b/build.sbt index 20ca185f16f5..b906d94f8fcd 100644 --- a/build.sbt +++ b/build.sbt @@ -2246,6 +2246,9 @@ lazy val `runtime-fat-jar` = MergeStrategy.concat case PathList("module-info.class") => MergeStrategy.preferProject + // remove once https://github.com/snakeyaml/snakeyaml/pull/12 gets integrated + case PathList("org", "yaml", "snakeyaml", "introspector", xs @ _*) => + MergeStrategy.preferProject case PathList(xs @ _*) if xs.last.contains("module-info.class") => MergeStrategy.discard case _ => MergeStrategy.first diff --git a/engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java b/engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java new file mode 100644 index 000000000000..720e719d0d3d --- /dev/null +++ b/engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java @@ -0,0 +1,185 @@ +/** + * Copyright (c) 2008, SnakeYAML + * + *

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + *

http://www.apache.org/licenses/LICENSE-2.0 + * + *

Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.yaml.snakeyaml.introspector; + +// remove once https://github.com/snakeyaml/snakeyaml/pull/12 gets integrated +import java.beans.FeatureDescriptor; +import java.beans.IntrospectionException; +import java.beans.Introspector; +import java.beans.PropertyDescriptor; +import java.lang.annotation.Annotation; +import java.lang.reflect.Field; +import java.lang.reflect.Method; +import java.lang.reflect.Modifier; +import java.lang.reflect.Type; +import java.util.List; +import java.util.Map; +import org.yaml.snakeyaml.error.YAMLException; +import org.yaml.snakeyaml.util.ArrayUtils; + +/** + * A MethodProperty is a Property which is accessed through accessor + * methods (setX, getX). It is possible to have a MethodProperty which has only setter, + * only getter, or both. It is not possible to have a MethodProperty which has neither + * setter nor getter. + */ +public class MethodProperty extends GenericProperty { + + private final PropertyDescriptor property; + private final boolean readable; + private final boolean writable; + + private static Type discoverGenericType(PropertyDescriptor property) { + Method readMethod = property.getReadMethod(); + if (readMethod != null) { + return readMethod.getGenericReturnType(); + } + + Method writeMethod = property.getWriteMethod(); + if (writeMethod != null) { + Type[] paramTypes = writeMethod.getGenericParameterTypes(); + if (paramTypes.length > 0) { + return paramTypes[0]; + } + } + /* + * This actually may happen if PropertyDescriptor is of type IndexedPropertyDescriptor and it + * has only IndexedGetter/Setter. ATM we simply skip type discovery. + */ + return null; + } + + public MethodProperty(PropertyDescriptor property) { + super( + property.getName(), + property.getPropertyType(), + MethodProperty.discoverGenericType(property)); + this.property = property; + this.readable = property.getReadMethod() != null; + this.writable = property.getWriteMethod() != null; + } + + @Override + public void set(Object object, Object value) throws Exception { + if (!writable) { + throw new YAMLException( + "No writable property '" + getName() + "' on class: " + object.getClass().getName()); + } + property.getWriteMethod().invoke(object, value); + } + + @Override + public Object get(Object object) { + try { + property.getReadMethod().setAccessible(true); // issue 50 + return property.getReadMethod().invoke(object); + } catch (Exception e) { + throw new YAMLException( + "Unable to find getter for property '" + + property.getName() + + "' on object " + + object + + ":" + + e); + } + } + + /** + * Returns the annotations that are present on read and write methods of this property or empty + * {@code List} if there're no annotations. + * + * @return the annotations that are present on this property or empty {@code List} if there're no + * annotations + */ + @Override + public List getAnnotations() { + List annotations; + if (isReadable() && isWritable()) { + annotations = + ArrayUtils.toUnmodifiableCompositeList( + property.getReadMethod().getAnnotations(), + property.getWriteMethod().getAnnotations()); + } else if (isReadable()) { + annotations = ArrayUtils.toUnmodifiableList(property.getReadMethod().getAnnotations()); + } else { + annotations = ArrayUtils.toUnmodifiableList(property.getWriteMethod().getAnnotations()); + } + return annotations; + } + + /** + * Returns property's annotation for the given type or {@code null} if it's not present. If the + * annotation is present on both read and write methods, the annotation on read method takes + * precedence. + * + * @param annotationType the type of the annotation to be returned + * @return property's annotation for the given type or {@code null} if it's not present + */ + @Override + public A getAnnotation(Class annotationType) { + A annotation = null; + if (isReadable()) { + annotation = property.getReadMethod().getAnnotation(annotationType); + } + if (annotation == null && isWritable()) { + annotation = property.getWriteMethod().getAnnotation(annotationType); + } + return annotation; + } + + @Override + public boolean isWritable() { + return writable; + } + + @Override + public boolean isReadable() { + return readable; + } + + private static final String TRANSIENT = "transient"; + + private static boolean isTransient(FeatureDescriptor fd) { + return Boolean.TRUE.equals(fd.getValue(TRANSIENT)); + } + + static void addProperties( + Class type, Map properties, boolean[] inaccessableFieldsExist) { + try { + for (PropertyDescriptor property : Introspector.getBeanInfo(type).getPropertyDescriptors()) { + Method readMethod = property.getReadMethod(); + if ((readMethod == null || !readMethod.getName().equals("getClass")) + && !isTransient(property)) { + properties.put(property.getName(), new MethodProperty(property)); + } + } + } catch (IntrospectionException e) { + throw new YAMLException(e); + } + + // add public fields + for (Class c = type; c != null; c = c.getSuperclass()) { + for (Field field : c.getDeclaredFields()) { + int modifiers = field.getModifiers(); + if (!Modifier.isStatic(modifiers) && !Modifier.isTransient(modifiers)) { + if (Modifier.isPublic(modifiers)) { + properties.put(field.getName(), new FieldProperty(field)); + } else { + inaccessableFieldsExist[0] = true; + } + } + } + } + } +} diff --git a/engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java b/engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java new file mode 100644 index 000000000000..d40687311d24 --- /dev/null +++ b/engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java @@ -0,0 +1,172 @@ +/** + * Copyright (c) 2008, SnakeYAML + * + *

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file + * except in compliance with the License. You may obtain a copy of the License at + * + *

http://www.apache.org/licenses/LICENSE-2.0 + * + *

Unless required by applicable law or agreed to in writing, software distributed under the + * License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either + * express or implied. See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.yaml.snakeyaml.introspector; + +// remove once https://github.com/snakeyaml/snakeyaml/pull/12 gets integrated +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.Collection; +import java.util.HashMap; +import java.util.LinkedHashMap; +import java.util.Map; +import java.util.Set; +import java.util.TreeSet; +import org.yaml.snakeyaml.error.YAMLException; +import org.yaml.snakeyaml.util.PlatformFeatureDetector; + +public class PropertyUtils { + + private final Map, Map> propertiesCache = + new HashMap, Map>(); + private final Map, Set> readableProperties = + new HashMap, Set>(); + private BeanAccess beanAccess = BeanAccess.DEFAULT; + private boolean allowReadOnlyProperties = false; + private boolean skipMissingProperties = false; + + private final PlatformFeatureDetector platformFeatureDetector; + + public PropertyUtils() { + this(new PlatformFeatureDetector()); + } + + PropertyUtils(PlatformFeatureDetector platformFeatureDetector) { + this.platformFeatureDetector = platformFeatureDetector; + + /* + * Android lacks much of java.beans (including the Introspector class, used here), because + * java.beans classes tend to rely on java.awt, which isn't supported in the Android SDK. That + * means we have to fall back on FIELD access only when SnakeYAML is running on the Android + * Runtime. + */ + if (platformFeatureDetector.isRunningOnAndroid()) { + beanAccess = BeanAccess.FIELD; + } + + /* when running with jlink restricted JDK without java.desktop package */ + try { + Class.forName("java.beans.Introspector"); + } catch (ClassNotFoundException ex) { + beanAccess = BeanAccess.FIELD; + } + } + + protected Map getPropertiesMap(Class type, BeanAccess bAccess) { + if (propertiesCache.containsKey(type)) { + return propertiesCache.get(type); + } + + Map properties = new LinkedHashMap(); + boolean[] inaccessableFieldsExist = {false}; + if (bAccess == BeanAccess.FIELD) { + for (Class c = type; c != null; c = c.getSuperclass()) { + for (Field field : c.getDeclaredFields()) { + int modifiers = field.getModifiers(); + if (!Modifier.isStatic(modifiers) + && !Modifier.isTransient(modifiers) + && !properties.containsKey(field.getName())) { + properties.put(field.getName(), new FieldProperty(field)); + } + } + } + } else { // add JavaBean properties + MethodProperty.addProperties(type, properties, inaccessableFieldsExist); + } + if (properties.isEmpty() && inaccessableFieldsExist[0]) { + throw new YAMLException("No JavaBean properties found in " + type.getName()); + } + propertiesCache.put(type, properties); + return properties; + } + + public Set getProperties(Class type) { + return getProperties(type, beanAccess); + } + + public Set getProperties(Class type, BeanAccess bAccess) { + if (readableProperties.containsKey(type)) { + return readableProperties.get(type); + } + Set properties = createPropertySet(type, bAccess); + readableProperties.put(type, properties); + return properties; + } + + protected Set createPropertySet(Class type, BeanAccess bAccess) { + Set properties = new TreeSet(); + Collection props = getPropertiesMap(type, bAccess).values(); + for (Property property : props) { + if (property.isReadable() && (allowReadOnlyProperties || property.isWritable())) { + properties.add(property); + } + } + return properties; + } + + public Property getProperty(Class type, String name) { + return getProperty(type, name, beanAccess); + } + + public Property getProperty(Class type, String name, BeanAccess bAccess) { + Map properties = getPropertiesMap(type, bAccess); + Property property = properties.get(name); + if (property == null && skipMissingProperties) { + property = new MissingProperty(name); + } + if (property == null) { + throw new YAMLException("Unable to find property '" + name + "' on class: " + type.getName()); + } + return property; + } + + public void setBeanAccess(BeanAccess beanAccess) { + if (platformFeatureDetector.isRunningOnAndroid() && beanAccess != BeanAccess.FIELD) { + throw new IllegalArgumentException("JVM is Android - only BeanAccess.FIELD is available"); + } + + if (this.beanAccess != beanAccess) { + this.beanAccess = beanAccess; + propertiesCache.clear(); + readableProperties.clear(); + } + } + + public void setAllowReadOnlyProperties(boolean allowReadOnlyProperties) { + if (this.allowReadOnlyProperties != allowReadOnlyProperties) { + this.allowReadOnlyProperties = allowReadOnlyProperties; + readableProperties.clear(); + } + } + + public boolean isAllowReadOnlyProperties() { + return allowReadOnlyProperties; + } + + /** + * Skip properties that are missing during deserialization of YAML to a Java object. The default + * is false. + * + * @param skipMissingProperties true if missing properties should be skipped, false otherwise. + */ + public void setSkipMissingProperties(boolean skipMissingProperties) { + if (this.skipMissingProperties != skipMissingProperties) { + this.skipMissingProperties = skipMissingProperties; + readableProperties.clear(); + } + } + + public boolean isSkipMissingProperties() { + return skipMissingProperties; + } +} From 38fca73e80b75fcdca8456bdc739554e465442e3 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Wed, 15 May 2024 07:02:49 +0200 Subject: [PATCH 14/21] Copy all JARs to polyglot/java directory in Espresso mode --- project/StdBits.scala | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/project/StdBits.scala b/project/StdBits.scala index 1e17616de34a..4184e3591cc8 100644 --- a/project/StdBits.scala +++ b/project/StdBits.scala @@ -36,7 +36,11 @@ object StdBits { else baseFilter val configFilter: ConfigurationFilter = DependencyFilter.configurationFilter(name = validConfig) - val graalVmOrgs = GraalVM.modules.map(_.organization).distinct + val graalVmOrgs = if ("espresso".equals(System.getenv("ENSO_JAVA"))) { + Seq() + } else { + GraalVM.modules.map(_.organization).distinct + } // All graal related modules must be filtered away - they will be provided in // module-path, and so, they must not be included in std-bits polyglot directories. val graalModuleFilter = DependencyFilter.moduleFilter( From 87a15e09df836dd15ca5c4b5e9ddb708d10f69a9 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Wed, 15 May 2024 10:52:09 +0200 Subject: [PATCH 15/21] Shelve SnakeYaml patches into a single project --- build.sbt | 15 +++++++++++++++ .../snakeyaml/introspector/MethodProperty.java | 0 .../snakeyaml/introspector/PropertyUtils.java | 0 3 files changed, 15 insertions(+) rename {engine/runtime-instrument-common => lib/java/yaml}/src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java (100%) rename {engine/runtime-instrument-common => lib/java/yaml}/src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java (100%) diff --git a/build.sbt b/build.sbt index b906d94f8fcd..05c8b6e0e5c4 100644 --- a/build.sbt +++ b/build.sbt @@ -283,6 +283,7 @@ lazy val enso = (project in file(".")) `syntax-definition`, `syntax-rust-definition`, `text-buffer`, + yaml, pkg, cli, `task-progress-notifications`, @@ -693,6 +694,15 @@ lazy val `syntax-rust-definition` = project Compile / javaSource := baseDirectory.value / "generate-java" / "java" ) +lazy val yaml = (project in file("lib/java/yaml")) + .settings( + frgaalJavaCompilerSetting, + version := "0.1", + libraryDependencies ++= Seq( + "io.circe" %% "circe-yaml" % circeYamlVersion % "provided" + ) + ) + lazy val pkg = (project in file("lib/scala/pkg")) .settings( Compile / run / mainClass := Some("org.enso.pkg.Main"), @@ -2259,6 +2269,7 @@ lazy val `runtime-fat-jar` = .dependsOn(`runtime-instrument-repl-debugger`) .dependsOn(`runtime-instrument-runtime-server`) .dependsOn(`runtime-language-epb`) + .dependsOn(yaml) .dependsOn(LocalProject("runtime")) /* Note [Unmanaged Classpath] @@ -2314,6 +2325,9 @@ lazy val `engine-runner` = project MergeStrategy.concat case "reference.conf" => MergeStrategy.concat + // remove once https://github.com/snakeyaml/snakeyaml/pull/12 gets integrated + case PathList("org", "yaml", "snakeyaml", "introspector", xs @ _*) => + MergeStrategy.preferProject case PathList(xs @ _*) if xs.last.contains("module-info") => // runner.jar must not be a JPMS module MergeStrategy.discard @@ -2396,6 +2410,7 @@ lazy val `engine-runner` = project .value ) .dependsOn(`version-output`) + .dependsOn(yaml) .dependsOn(pkg) .dependsOn(cli) .dependsOn(`library-manager`) diff --git a/engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java b/lib/java/yaml/src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java similarity index 100% rename from engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java rename to lib/java/yaml/src/main/java/org/yaml/snakeyaml/introspector/MethodProperty.java diff --git a/engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java b/lib/java/yaml/src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java similarity index 100% rename from engine/runtime-instrument-common/src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java rename to lib/java/yaml/src/main/java/org/yaml/snakeyaml/introspector/PropertyUtils.java From d29c9a1ae97dd0b4c5c87065f5cc91b45eedbe6e Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Wed, 15 May 2024 12:11:05 +0200 Subject: [PATCH 16/21] Build smalljdk before buildNativeImage --- build.sbt | 15 +++++++++++++++ project/NativeImage.scala | 13 +++++++------ jdk.sh => project/smalljdk.sh | 18 ++++++------------ 3 files changed, 28 insertions(+), 18 deletions(-) rename jdk.sh => project/smalljdk.sh (63%) diff --git a/build.sbt b/build.sbt index 05c8b6e0e5c4..feeda0a22110 100644 --- a/build.sbt +++ b/build.sbt @@ -2380,6 +2380,21 @@ lazy val `engine-runner` = project core ++ jars.map(_.getAbsolutePath()) } }, + localJdk = Some(() => { + var smalljdk = (new File("target") / "jdk").getAbsoluteFile() + val exitCode = scala.sys.process + .Process( + "bash project/smalljdk.sh " + smalljdk, + None, + "JAVA_HOME" -> System.getProperty("java.home") + ) + .! + if (exitCode != 0) { + throw new RuntimeException(s"Cannot execute jdk.sh.") + } + assert(smalljdk.exists(), "Dir created " + smalljdk) + smalljdk + }), initializeAtRuntime = Seq( "org.jline.nativ.JLineLibrary", "org.jline.terminal.impl.jna", diff --git a/project/NativeImage.scala b/project/NativeImage.scala index 0bdc68b3f970..981d15e63e8f 100644 --- a/project/NativeImage.scala +++ b/project/NativeImage.scala @@ -88,7 +88,8 @@ object NativeImage { mainClass: Option[String] = None, additionalCp: () => Seq[String] = () => Seq(), verbose: Boolean = false, - includeRuntime: Boolean = true + includeRuntime: Boolean = true, + localJdk: Option[() => File] = None ): Def.Initialize[Task[Unit]] = Def .task { val log = state.value.log @@ -98,11 +99,11 @@ object NativeImage { s"$path\\bin\\native-image.cmd" else s"$path/bin/native-image" - val localJdk = baseDirectory.value / ".." / ".." / "jdk" - val localNI = nativeImagePath(localJdk.getPath()) val javaHome = - if (file(localNI).exists()) localJdk.getPath() - else System.getProperty("java.home") + localJdk + .map(f => f().getPath()) + .filter(p => file(nativeImagePath(p)).exists()) + .getOrElse(System.getProperty("java.home")) val subProjectRoot = baseDirectory.value val pathToJAR = @@ -110,7 +111,7 @@ object NativeImage { if (!file(nativeImagePath(javaHome)).exists()) { log.error( - "Unexpected: Native Image component not found in the JVM distribution." + "Unexpected: Native Image component not found in the JVM distribution: " + javaHome ) log.error("Is this a GraalVM distribution?") log.error( diff --git a/jdk.sh b/project/smalljdk.sh similarity index 63% rename from jdk.sh rename to project/smalljdk.sh index 8419332712ef..b7a8f0c06b9b 100755 --- a/jdk.sh +++ b/project/smalljdk.sh @@ -6,22 +6,16 @@ if ! [ -f $JAVA_HOME/bin/jlink ]; then exit 1 fi -rm -rf jdk +JDK=$1 +echo Generating small JDK to $JDK from $JAVA_HOME +rm -rf $JDK JS_MODULES=org.graalvm.nativeimage,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.base,org.graalvm.nativeimage.driver,org.graalvm.nativeimage.librarysupport,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.compiler.graal,jdk.httpserver,java.naming,java.net.http DEBUG_MODULES=jdk.jdwp.agent PYTHON_MODULES=jdk.security.auth,java.naming -$JAVA_HOME/bin/jlink --module-path $JAVA_HOME/lib/svm/bin/../../graalvm/svm-driver.jar:$JAVA_HOME/lib/svm/bin/../builder/native-image-base.jar:$JAVA_HOME/lib/svm/bin/../builder/objectfile.jar:$JAVA_HOME/lib/svm/bin/../builder/pointsto.jar:$JAVA_HOME/lib/svm/bin/../builder/svm-enterprise.jar:$JAVA_HOME/lib/svm/bin/../builder/svm.jar:$JAVA_HOME/lib/svm/bin/../library-support.jar --output jdk --add-modules $JS_MODULES,$DEBUG_MODULES,$PYTHON_MODULES -cp -r $JAVA_HOME/lib/graalvm/ $JAVA_HOME/lib/svm/ $JAVA_HOME/lib/static/ $JAVA_HOME/lib/truffle/ ./jdk/lib/ +$JAVA_HOME/bin/jlink --module-path $JAVA_HOME/lib/svm/bin/../../graalvm/svm-driver.jar:$JAVA_HOME/lib/svm/bin/../builder/native-image-base.jar:$JAVA_HOME/lib/svm/bin/../builder/objectfile.jar:$JAVA_HOME/lib/svm/bin/../builder/pointsto.jar:$JAVA_HOME/lib/svm/bin/../builder/svm-enterprise.jar:$JAVA_HOME/lib/svm/bin/../builder/svm.jar:$JAVA_HOME/lib/svm/bin/../library-support.jar --output $JDK --add-modules $JS_MODULES,$DEBUG_MODULES,$PYTHON_MODULES +cp -r $JAVA_HOME/lib/graalvm/ $JAVA_HOME/lib/svm/ $JAVA_HOME/lib/static/ $JAVA_HOME/lib/truffle/ $JDK/lib/ -cd jdk/bin/ +cd $JDK/bin/ ln -s ../lib/svm/bin/native-image ./ -cd ../../ - -cp $HOME/.m2/repository/org/graalvm/shadowed/icu4j/24.1.0-SNAPSHOT/icu4j-24.1.0-SNAPSHOT.jar ./built-distribution/enso-engine-0.0.0-dev-linux-amd64/enso-0.0.0-dev/component/icu4j-24.0.0.jar - -#rm ./built-distribution/enso-engine*/enso-*/component/icu4j*.jar -#rm ./built-distribution/enso-engine*/enso-*/component/js-language*.jar -#rm ./built-distribution/enso-engine*/enso-*/component/regex*.jar -#rm ./built-distribution/enso-engine*/enso-*/component/python-*.jar From 2e3b0ed8ee9e2d8652a8ca1f2d5dba741aa25174 Mon Sep 17 00:00:00 2001 From: Jaroslav Tulach Date: Wed, 15 May 2024 15:54:48 +0200 Subject: [PATCH 17/21] Hide access to various Pkgs constants --- project/GraalVM.scala | 39 ++++++++++++++++++++------------------- 1 file changed, 20 insertions(+), 19 deletions(-) diff --git a/project/GraalVM.scala b/project/GraalVM.scala index 67dd60cea335..85c6124b767a 100644 --- a/project/GraalVM.scala +++ b/project/GraalVM.scala @@ -9,8 +9,13 @@ import scala.collection.immutable.Seq /** A collection of utility methods for everything related to the GraalVM and Truffle. */ object GraalVM { + + /** Has the user requested to use Espresso for Java interop? */ + private def isEspressoMode(): Boolean = + "espresso".equals(System.getenv("ENSO_JAVA")) + // Keep in sync with graalMavenPackagesVersion in build.sbt - val version: String = "24.0.0" + private val version: String = "24.0.0" /** The list of modules that are included in the `component` directory in engine distribution. * When invoking the `java` command, these modules need to be put on the module-path. @@ -26,7 +31,7 @@ object GraalVM { "org.graalvm.truffle" % "truffle-compiler" % version ) - val sdkPkgs = Seq( + private val sdkPkgs = Seq( "org.graalvm.sdk" % "polyglot-tck" % version, "org.graalvm.sdk" % "nativeimage" % version, "org.graalvm.sdk" % "word" % version, @@ -34,11 +39,11 @@ object GraalVM { "org.graalvm.sdk" % "collections" % version ) - val polyglotPkgs = Seq( + private val polyglotPkgs = Seq( "org.graalvm.polyglot" % "polyglot" % version ) - val trufflePkgs = Seq( + private val trufflePkgs = Seq( "org.graalvm.truffle" % "truffle-api" % version, "org.graalvm.truffle" % "truffle-runtime" % version, "org.graalvm.truffle" % "truffle-compiler" % version, @@ -51,9 +56,7 @@ object GraalVM { * into engine distribution build, so we have to maintain these manually. */ - val pythonPkgs = if ("espresso".equals(System.getenv("ENSO_JAVA"))) { - Seq() - } else { + private val pythonPkgs = Seq( "org.graalvm.python" % "python-language" % version, "org.graalvm.python" % "python-resources" % version, @@ -69,25 +72,21 @@ object GraalVM { "org.graalvm.shadowed" % "icu4j" % version, "org.graalvm.shadowed" % "xz" % version ) - } - val jsPkgs = if ("espresso".equals(System.getenv("ENSO_JAVA"))) { - Seq() - } else { + private val jsPkgs = Seq( "org.graalvm.js" % "js-language" % version, "org.graalvm.regex" % "regex" % version, "org.graalvm.shadowed" % "icu4j" % version ) - } - val chromeInspectorPkgs = Seq( + private val chromeInspectorPkgs = Seq( "org.graalvm.tools" % "chromeinspector-tool" % version, "org.graalvm.shadowed" % "json" % version, "org.graalvm.tools" % "profiler-tool" % version ) - val debugAdapterProtocolPkgs = Seq( + private val debugAdapterProtocolPkgs = Seq( "org.graalvm.tools" % "dap-tool" % version ) @@ -95,7 +94,7 @@ object GraalVM { "org.graalvm.tools" % "insight-tool" % version ) - val espressoPkgs = if ("espresso".equals(System.getenv("ENSO_JAVA"))) { + private val espressoPkgs = Seq( "org.graalvm.truffle" % "truffle-nfi" % version, "org.graalvm.truffle" % "truffle-nfi-libffi" % version, @@ -103,13 +102,15 @@ object GraalVM { "org.graalvm.espresso" % "espresso-libs-resources-linux-amd64" % version, "org.graalvm.espresso" % "espresso-runtime-resources-linux-amd64" % version ) - } else { - Seq() - } val toolsPkgs = chromeInspectorPkgs ++ debugAdapterProtocolPkgs ++ insightPkgs - val langsPkgs = jsPkgs ++ pythonPkgs ++ espressoPkgs + val langsPkgs = + if (isEspressoMode()) { + espressoPkgs + } else { + jsPkgs ++ pythonPkgs + } private val allowedJavaVendors = Seq( "GraalVM Community", From 4d90834f35b4442534247ec955c4c8d05f42723f Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Thu, 16 May 2024 17:04:42 +0200 Subject: [PATCH 18/21] Rewrite SBT support - ditch bash script in favour of platform agnostic solution - use proper dependencies between tasks to avoid dummy function calls --- build.sbt | 79 ++++++++++++++++++++++++++++----------- project/NativeImage.scala | 15 ++++---- project/smalljdk.sh | 21 ----------- 3 files changed, 66 insertions(+), 49 deletions(-) delete mode 100755 project/smalljdk.sh diff --git a/build.sbt b/build.sbt index 65f813a44508..f4c418b70bb1 100644 --- a/build.sbt +++ b/build.sbt @@ -18,6 +18,7 @@ import src.main.scala.licenses.{ import JPMSPlugin.autoImport._ import java.io.File +import java.nio.file.Paths // ============================================================================ // === Global Configuration =================================================== @@ -1029,6 +1030,7 @@ lazy val `project-manager` = (project in file("lib/scala/project-manager")) Test / javaOptions ++= testLogProviderOptions ) .settings( + NativeImage.smallJdk := None, rebuildNativeImage := NativeImage .buildNativeImage( "project-manager", @@ -2350,6 +2352,55 @@ lazy val `engine-runner` = project run / connectInput := true ) .settings( + NativeImage.smallJdk := Some(buildSmallJdk.value), + buildSmallJdk := { + val smallJdkDirectory = (target.value / "jdk").getAbsoluteFile() + val JS_MODULES = + "org.graalvm.nativeimage,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.base,org.graalvm.nativeimage.driver,org.graalvm.nativeimage.librarysupport,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.compiler.graal,jdk.httpserver,java.naming,java.net.http" + val DEBUG_MODULES = "jdk.jdwp.agent" + val PYTHON_MODULES = "jdk.security.auth,java.naming" + + val javaHome = Option(System.getProperty("java.home")).map(Paths.get(_)) + val (jlink, modules, libDirs) = javaHome match { + case None => + throw new RuntimeException("Missing java.home variable") + case Some(jh) => + val exec = jh.resolve("bin").resolve("jlink") + val moduleJars = List( + "lib/svm/bin/../../graalvm/svm-driver.jar", + "lib/svm/bin/../builder/native-image-base.jar", + "lib/svm/bin/../builder/objectfile.jar", + "lib/svm/bin/../builder/pointsto.jar", + "lib/svm/bin/../builder/svm-enterprise.jar", + "lib/svm/bin/../builder/svm.jar", + "lib/svm/bin/../library-support.jar" + ) + val targetLibDirs = List("graalvm", "svm", "static", "truffle") + ( + exec, + moduleJars.map(jar => jh.resolve(jar).toString), + targetLibDirs.map(d => jh.resolve("lib").resolve("d")) + ) + } + + val exec = + s"$jlink --module-path ${modules.mkString(":")} --output $smallJdkDirectory --add-modules $JS_MODULES,$DEBUG_MODULES,$PYTHON_MODULES" + val exitCode = scala.sys.process.Process(exec).! + libDirs.foreach(libDir => + IO.copyDirectory( + libDir.toFile, + smallJdkDirectory.toPath.resolve("lib").toFile + ) + ) + if (exitCode != 0) { + throw new RuntimeException(s"Cannot execute smalljdk.sh") + } + assert( + smallJdkDirectory.exists(), + "Directory of small JDK " + smallJdkDirectory + " is not present" + ) + smallJdkDirectory + }, assembly := assembly .dependsOn(`runtime-fat-jar` / assembly) .value, @@ -2368,33 +2419,14 @@ lazy val `engine-runner` = project "-Dnic=nic" ), mainClass = Some("org.enso.runner.Main"), - additionalCp = () => { + additionalCp = { val core = Seq( "runtime.jar", "runner.jar" ) val jars = `base-polyglot-root`.listFiles("*.jar") - if (jars == null) { - core - } else { - core ++ jars.map(_.getAbsolutePath()) - } + core ++ jars.map(_.getAbsolutePath()) }, - localJdk = Some(() => { - var smalljdk = (new File("target") / "jdk").getAbsoluteFile() - val exitCode = scala.sys.process - .Process( - "bash project/smalljdk.sh " + smalljdk, - None, - "JAVA_HOME" -> System.getProperty("java.home") - ) - .! - if (exitCode != 0) { - throw new RuntimeException(s"Cannot execute jdk.sh.") - } - assert(smalljdk.exists(), "Dir created " + smalljdk) - smalljdk - }), initializeAtRuntime = Seq( "org.jline.nativ.JLineLibrary", "org.jline.terminal.impl.jna", @@ -2412,6 +2444,7 @@ lazy val `engine-runner` = project "akka.http" ) ) + .dependsOn(`std-base` / Compile / packageBin) .dependsOn(assembly) .dependsOn( buildEngineDistribution @@ -2435,6 +2468,9 @@ lazy val `engine-runner` = project .dependsOn(`logging-service-logback` % Runtime) .dependsOn(`polyglot-api`) +lazy val buildSmallJdk = + taskKey[File]("Build a minimal JDK used for native image generation") + lazy val launcher = project .in(file("engine/launcher")) .configs(Test) @@ -2449,6 +2485,7 @@ lazy val launcher = project ) ) .settings( + NativeImage.smallJdk := None, rebuildNativeImage := NativeImage .buildNativeImage( "enso", diff --git a/project/NativeImage.scala b/project/NativeImage.scala index 981d15e63e8f..bc6d400ea9b3 100644 --- a/project/NativeImage.scala +++ b/project/NativeImage.scala @@ -16,6 +16,8 @@ object NativeImage { */ private val includeDebugInfo: Boolean = false + lazy val smallJdk = taskKey[Option[File]]("Location of a minimal JDK") + /** List of classes that should be initialized at build time by the native image. * Note that we strive to initialize as much classes during the native image build * time as possible, as this reduces the time needed to start the native image. @@ -86,10 +88,9 @@ object NativeImage { initializeAtRuntime: Seq[String] = Seq.empty, initializeAtBuildtime: Seq[String] = defaultBuildTimeInitClasses, mainClass: Option[String] = None, - additionalCp: () => Seq[String] = () => Seq(), + additionalCp: Seq[String] = Seq(), verbose: Boolean = false, - includeRuntime: Boolean = true, - localJdk: Option[() => File] = None + includeRuntime: Boolean = true ): Def.Initialize[Task[Unit]] = Def .task { val log = state.value.log @@ -100,8 +101,8 @@ object NativeImage { else s"$path/bin/native-image" val javaHome = - localJdk - .map(f => f().getPath()) + smallJdk.value + .map(f => f.getPath()) .filter(p => file(nativeImagePath(p)).exists()) .getOrElse(System.getProperty("java.home")) @@ -194,9 +195,9 @@ object NativeImage { val fullCp = if (includeRuntime) { - componentModules ++ additionalCp() + componentModules ++ additionalCp } else { - ourCp.map(_.data.getAbsolutePath) ++ additionalCp() + ourCp.map(_.data.getAbsolutePath) ++ additionalCp } val cpStr = fullCp.mkString(File.pathSeparator) log.debug("Class-path: " + cpStr) diff --git a/project/smalljdk.sh b/project/smalljdk.sh deleted file mode 100755 index b7a8f0c06b9b..000000000000 --- a/project/smalljdk.sh +++ /dev/null @@ -1,21 +0,0 @@ -#!/bin/bash -x -set -e - -if ! [ -f $JAVA_HOME/bin/jlink ]; then - echo Specify JAVA_HOME environment variable - exit 1 -fi - -JDK=$1 -echo Generating small JDK to $JDK from $JAVA_HOME -rm -rf $JDK - -JS_MODULES=org.graalvm.nativeimage,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.base,org.graalvm.nativeimage.driver,org.graalvm.nativeimage.librarysupport,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.compiler.graal,jdk.httpserver,java.naming,java.net.http -DEBUG_MODULES=jdk.jdwp.agent -PYTHON_MODULES=jdk.security.auth,java.naming - -$JAVA_HOME/bin/jlink --module-path $JAVA_HOME/lib/svm/bin/../../graalvm/svm-driver.jar:$JAVA_HOME/lib/svm/bin/../builder/native-image-base.jar:$JAVA_HOME/lib/svm/bin/../builder/objectfile.jar:$JAVA_HOME/lib/svm/bin/../builder/pointsto.jar:$JAVA_HOME/lib/svm/bin/../builder/svm-enterprise.jar:$JAVA_HOME/lib/svm/bin/../builder/svm.jar:$JAVA_HOME/lib/svm/bin/../library-support.jar --output $JDK --add-modules $JS_MODULES,$DEBUG_MODULES,$PYTHON_MODULES -cp -r $JAVA_HOME/lib/graalvm/ $JAVA_HOME/lib/svm/ $JAVA_HOME/lib/static/ $JAVA_HOME/lib/truffle/ $JDK/lib/ - -cd $JDK/bin/ -ln -s ../lib/svm/bin/native-image ./ From 9cf154354893872eac2fd5e33670b5afe96f976a Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Thu, 16 May 2024 22:21:26 +0200 Subject: [PATCH 19/21] fix NPE --- build.sbt | 17 +++++++++-------- project/NativeImage.scala | 12 +++++++----- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/build.sbt b/build.sbt index f4c418b70bb1..083752c7eca4 100644 --- a/build.sbt +++ b/build.sbt @@ -1031,6 +1031,7 @@ lazy val `project-manager` = (project in file("lib/scala/project-manager")) ) .settings( NativeImage.smallJdk := None, + NativeImage.additionalCp := Seq.empty, rebuildNativeImage := NativeImage .buildNativeImage( "project-manager", @@ -2353,6 +2354,13 @@ lazy val `engine-runner` = project ) .settings( NativeImage.smallJdk := Some(buildSmallJdk.value), + NativeImage.additionalCp := { + val core = Seq( + "runtime.jar", + "runner.jar" + ) + core ++ `base-polyglot-root`.listFiles("*.jar").map(_.getAbsolutePath()) + }, buildSmallJdk := { val smallJdkDirectory = (target.value / "jdk").getAbsoluteFile() val JS_MODULES = @@ -2419,14 +2427,6 @@ lazy val `engine-runner` = project "-Dnic=nic" ), mainClass = Some("org.enso.runner.Main"), - additionalCp = { - val core = Seq( - "runtime.jar", - "runner.jar" - ) - val jars = `base-polyglot-root`.listFiles("*.jar") - core ++ jars.map(_.getAbsolutePath()) - }, initializeAtRuntime = Seq( "org.jline.nativ.JLineLibrary", "org.jline.terminal.impl.jna", @@ -2486,6 +2486,7 @@ lazy val launcher = project ) .settings( NativeImage.smallJdk := None, + NativeImage.additionalCp := Seq.empty, rebuildNativeImage := NativeImage .buildNativeImage( "enso", diff --git a/project/NativeImage.scala b/project/NativeImage.scala index bc6d400ea9b3..f3c4db2119df 100644 --- a/project/NativeImage.scala +++ b/project/NativeImage.scala @@ -17,6 +17,10 @@ object NativeImage { private val includeDebugInfo: Boolean = false lazy val smallJdk = taskKey[Option[File]]("Location of a minimal JDK") + lazy val additionalCp = + taskKey[Seq[String]]( + "Additional class-path entries to be added to the native image" + ) /** List of classes that should be initialized at build time by the native image. * Note that we strive to initialize as much classes during the native image build @@ -72,8 +76,6 @@ object NativeImage { * time initialization is set to default * @param initializeAtBuildtime a list of classes that should be initialized at * build time. - * @param additionalCp additional class-path entries to be added to the - * native image. * @param includeRuntime Whether `org.enso.runtime` should is included. If yes, then * it will be passed as a module to the native-image along with other * Graal and Truffle related modules. @@ -88,7 +90,6 @@ object NativeImage { initializeAtRuntime: Seq[String] = Seq.empty, initializeAtBuildtime: Seq[String] = defaultBuildTimeInitClasses, mainClass: Option[String] = None, - additionalCp: Seq[String] = Seq(), verbose: Boolean = false, includeRuntime: Boolean = true ): Def.Initialize[Task[Unit]] = Def @@ -193,11 +194,12 @@ object NativeImage { ) .map(_.data.getAbsolutePath) + val auxCp = additionalCp.value val fullCp = if (includeRuntime) { - componentModules ++ additionalCp + componentModules ++ auxCp } else { - ourCp.map(_.data.getAbsolutePath) ++ additionalCp + ourCp.map(_.data.getAbsolutePath) ++ auxCp } val cpStr = fullCp.mkString(File.pathSeparator) log.debug("Class-path: " + cpStr) From c627c0f07660f64bcc325a2a82e86f2116e54ff8 Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Fri, 17 May 2024 00:20:05 +0200 Subject: [PATCH 20/21] Correctly detect new javaHome for NI --- build.sbt | 20 ++++++++++++++------ project/NativeImage.scala | 32 +++++++++++++++++++++++--------- 2 files changed, 37 insertions(+), 15 deletions(-) diff --git a/build.sbt b/build.sbt index 083752c7eca4..e4a884305ded 100644 --- a/build.sbt +++ b/build.sbt @@ -2363,6 +2363,9 @@ lazy val `engine-runner` = project }, buildSmallJdk := { val smallJdkDirectory = (target.value / "jdk").getAbsoluteFile() + if (smallJdkDirectory.exists()) { + IO.delete(smallJdkDirectory) + } val JS_MODULES = "org.graalvm.nativeimage,org.graalvm.nativeimage.builder,org.graalvm.nativeimage.base,org.graalvm.nativeimage.driver,org.graalvm.nativeimage.librarysupport,org.graalvm.nativeimage.objectfile,org.graalvm.nativeimage.pointsto,com.oracle.graal.graal_enterprise,com.oracle.svm.svm_enterprise,jdk.compiler.graal,jdk.httpserver,java.naming,java.net.http" val DEBUG_MODULES = "jdk.jdwp.agent" @@ -2387,22 +2390,26 @@ lazy val `engine-runner` = project ( exec, moduleJars.map(jar => jh.resolve(jar).toString), - targetLibDirs.map(d => jh.resolve("lib").resolve("d")) + targetLibDirs.map(d => jh.resolve("lib").resolve(d)) ) } val exec = s"$jlink --module-path ${modules.mkString(":")} --output $smallJdkDirectory --add-modules $JS_MODULES,$DEBUG_MODULES,$PYTHON_MODULES" val exitCode = scala.sys.process.Process(exec).! + + if (exitCode != 0) { + throw new RuntimeException(s"Cannot execute smalljdk.sh") + } libDirs.foreach(libDir => IO.copyDirectory( libDir.toFile, - smallJdkDirectory.toPath.resolve("lib").toFile + smallJdkDirectory.toPath + .resolve("lib") + .resolve(libDir.toFile.getName) + .toFile ) ) - if (exitCode != 0) { - throw new RuntimeException(s"Cannot execute smalljdk.sh") - } assert( smallJdkDirectory.exists(), "Directory of small JDK " + smallJdkDirectory + " is not present" @@ -2444,7 +2451,8 @@ lazy val `engine-runner` = project "akka.http" ) ) - .dependsOn(`std-base` / Compile / packageBin) + .dependsOn(NativeImage.additionalCp) + .dependsOn(NativeImage.smallJdk) .dependsOn(assembly) .dependsOn( buildEngineDistribution diff --git a/project/NativeImage.scala b/project/NativeImage.scala index f3c4db2119df..1c5dea2faed0 100644 --- a/project/NativeImage.scala +++ b/project/NativeImage.scala @@ -8,6 +8,7 @@ import sbtassembly.AssemblyKeys.assembly import sbtassembly.AssemblyPlugin.autoImport.assemblyOutputPath import scala.sys.process._ +import java.nio.file.Paths object NativeImage { @@ -96,22 +97,35 @@ object NativeImage { .task { val log = state.value.log - def nativeImagePath(path: String): String = + def nativeImagePath(path: Path): Path = { + val base = path.resolve("bin") if (Platform.isWindows) - s"$path\\bin\\native-image.cmd" - else s"$path/bin/native-image" + base.resolve("native-image.cmd") + else base.resolve("native-image") + } + + def nativeImagePathSmallJdk(path: Path): Path = { + val base = path.resolve(Paths.get("lib", "svm", "bin")) + if (Platform.isWindows) + base.resolve("native-image.cmd") + else base.resolve("native-image") + } - val javaHome = + val (javaHome: Path, nativeImagePathResolver) = smallJdk.value - .map(f => f.getPath()) - .filter(p => file(nativeImagePath(p)).exists()) - .getOrElse(System.getProperty("java.home")) + .map(f => (f.toPath(), nativeImagePathSmallJdk _)) + .filter { case (p, resolver) => resolver(p).toFile.exists() } + .getOrElse( + (Paths.get(System.getProperty("java.home")), nativeImagePath _) + ) + + log.info("Native image JAVA_HOME: " + javaHome) val subProjectRoot = baseDirectory.value val pathToJAR = (assembly / assemblyOutputPath).value.toPath.toAbsolutePath.normalize - if (!file(nativeImagePath(javaHome)).exists()) { + if (!nativeImagePathResolver(javaHome).toFile.exists()) { log.error( "Unexpected: Native Image component not found in the JVM distribution: " + javaHome ) @@ -236,7 +250,7 @@ object NativeImage { val newPath = pathParts.mkString(File.pathSeparator) val cmd = - Seq(nativeImagePath(javaHome)) ++ + Seq(nativeImagePathResolver(javaHome).toString) ++ verboseOpt ++ Seq("@" + argFile.toAbsolutePath.toString) From 58ed0bc2c57ec0391943411f90cc9c1159cf824d Mon Sep 17 00:00:00 2001 From: Hubert Plociniczak Date: Fri, 17 May 2024 11:10:58 +0200 Subject: [PATCH 21/21] nit --- project/NativeImage.scala | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/project/NativeImage.scala b/project/NativeImage.scala index 1c5dea2faed0..a04697ebbb33 100644 --- a/project/NativeImage.scala +++ b/project/NativeImage.scala @@ -97,15 +97,8 @@ object NativeImage { .task { val log = state.value.log - def nativeImagePath(path: Path): Path = { - val base = path.resolve("bin") - if (Platform.isWindows) - base.resolve("native-image.cmd") - else base.resolve("native-image") - } - - def nativeImagePathSmallJdk(path: Path): Path = { - val base = path.resolve(Paths.get("lib", "svm", "bin")) + def nativeImagePath(prefix: Path)(path: Path): Path = { + val base = path.resolve(prefix) if (Platform.isWindows) base.resolve("native-image.cmd") else base.resolve("native-image") @@ -113,10 +106,15 @@ object NativeImage { val (javaHome: Path, nativeImagePathResolver) = smallJdk.value - .map(f => (f.toPath(), nativeImagePathSmallJdk _)) + .map(f => + (f.toPath(), nativeImagePath(Path.of("lib", "svm", "bin")) _) + ) .filter { case (p, resolver) => resolver(p).toFile.exists() } .getOrElse( - (Paths.get(System.getProperty("java.home")), nativeImagePath _) + ( + Paths.get(System.getProperty("java.home")), + nativeImagePath(Path.of("bin")) _ + ) ) log.info("Native image JAVA_HOME: " + javaHome)