CLOVIS
12/08/2024, 12:28 PMCLOVIS
12/08/2024, 12:28 PMCLOVIS
12/08/2024, 12:29 PMdave08
12/08/2024, 12:54 PMCLOVIS
12/09/2024, 8:12 AMdave08
12/09/2024, 10:37 AMdave08
12/09/2024, 11:02 AMdave08
12/09/2024, 11:23 AMdave08
12/09/2024, 11:28 AMCLOVIS
12/09/2024, 2:25 PMDo you really use java features higher than 11?I don't really know… And I don't know either which dependencies I have depend on 11+. The problem is I maintain a lot of projects, and I want them to be consistent, so they need to all depend on the same JDK version. It's already a problem with libraries like Kotest. I can't support WASI even in Prepared Suite because it is tested using Kotest, and Kotest doesn't support it…
dave08
12/09/2024, 2:33 PMI can't support WASI even in Prepared Suite because it is tested using Kotest, and Kotest doesn't support it…😵💫 Yeah, that's not so nice... https://github.com/kotest/kotest/issues/4015, it's still open...
dave08
12/09/2024, 2:35 PMCLOVIS
12/09/2024, 2:37 PMCLOVIS
12/09/2024, 2:38 PMkotlin {
jvmToolchain(11)
}
at the very end of each build.gradle.kts
and see what happensCLOVIS
12/09/2024, 2:38 PMcompat-filesystem
will not work (including all the resource stuff) because of Path
, but maybe the other modules could be compatible with Java 11CLOVIS
12/09/2024, 2:39 PMdave08
12/09/2024, 2:41 PMPath Features and Limitations in Java 11
No Built-in Watcher for Individual Path:
While Java provides the WatchService API to monitor file system changes, it does not directly support watching changes on an individual Path object. Instead, you need to monitor directories.
No File Metadata Beyond Basics:
The Path API itself does not provide methods for reading extended file attributes or metadata beyond what is supported by the BasicFileAttributes. For more advanced metadata, you need to use Files.getFileAttributeView or similar approaches.
No Automatic Path Normalization:
Path objects do not automatically normalize themselves. For example, if a Path contains redundant elements like . or .., you need to explicitly call .normalize() to remove them.
No Network Resource Support:
The Path API is designed for file system paths and does not support paths for network resources (e.g., <http://example.com/file>). For handling such URIs, you would use the java.net.URI or similar APIs.
No Built-in Support for Path Serialization:
While you can convert a Path to a String using toString() or a URI using toUri(), the Path API itself does not provide direct serialization or deserialization methods. You need to handle this manually.
No In-Memory Virtual Path Support:
Path is tied to the underlying file system and does not support virtual or in-memory paths. For in-memory file systems, you would need third-party libraries like Jimfs.
Platform-Specific Behaviors:
Some methods, like toAbsolutePath(), rely on the underlying operating system's behavior, which might lead to platform-specific differences.
dave08
12/09/2024, 2:42 PMdave08
12/09/2024, 2:43 PMdave08
12/11/2024, 11:40 AM> Task :compat:compat-parameterize:linkDebugTestMingwX64
e: Compilation failed: Error occurred while optimizing an expression:
CALL 'public abstract fun <get-name> (): kotlin.String declared in kotlin.reflect.KCallable' type=kotlin.String origin=GET_PROPERTY
$this: PROPERTY_REFERENCE 'private final currentIterationScope: com.benwoodworth.parameterize.ParameterizeScope? [var] declared in com.benwoodworth.parameterize.ParameterizeIterator' field=null getter='private final fun <get-currentIterationScope> (): com.benwoodworth.parameterize.ParameterizeScope? declared in com.benwoodworth.parameterize.ParameterizeIterator' setter='private final fun <set-currentIterationScope> (<set-?>: com.benwoodworth.parameterize.ParameterizeScope?): kotlin.Unit declared in com.benwoodworth.parameterize.ParameterizeIterator' type=kotlin.reflect.KMutableProperty0<com.benwoodworth.parameterize.ParameterizeScope?> origin=null
* Source files:
* Compiler version: 2.0.20
* Output kind: PROGRAM
e: java.lang.AssertionError: Error occurred while optimizing an expression:
CALL 'public abstract fun <get-name> (): kotlin.String declared in kotlin.reflect.KCallable' type=kotlin.String origin=GET_PROPERTY
$this: PROPERTY_REFERENCE 'private final currentIterationScope: com.benwoodworth.parameterize.ParameterizeScope? [var] declared in com.benwoodworth.parameterize.ParameterizeIterator' field=null getter='private final fun <get-currentIterationScope> (): com.benwoodworth.parameterize.ParameterizeScope? declared in com.benwoodworth.parameterize.ParameterizeIterator' setter='private final fun <set-currentIterationScope> (<set-?>: com.benwoodworth.parameterize.ParameterizeScope?): kotlin.Unit declared in com.benwoodworth.parameterize.ParameterizeIterator' type=kotlin.reflect.KMutableProperty0<com.benwoodworth.parameterize.ParameterizeScope?> origin=null
dave08
12/11/2024, 11:40 AMdave08
12/11/2024, 11:41 AMdave08
12/11/2024, 11:44 AMdave08
12/11/2024, 11:46 AMdave08
12/11/2024, 11:47 AM./gradlew clean build
dave08
12/11/2024, 11:50 AMdave08
12/11/2024, 11:51 AMCLOVIS
12/11/2024, 1:27 PMdave08
12/11/2024, 1:40 PM./gradlew clean build
so I don't think it matters, no?CLOVIS
12/11/2024, 1:41 PMsealed
as viewed from Java. So it becomes a question of deciding what is more important: supporting Java users, or supporting Android users. Prepared is meant specifically for Kotlin, but Pedestal must be usable from Java as well.dave08
12/11/2024, 1:54 PMdave08
12/11/2024, 1:56 PMdave08
12/11/2024, 1:57 PMCLOVIS
12/11/2024, 2:25 PMCLOVIS
12/11/2024, 2:26 PMdave08
12/11/2024, 2:28 PMdave08
12/11/2024, 2:30 PMCLOVIS
12/11/2024, 2:36 PMCLOVIS
12/11/2024, 2:36 PMdave08
12/11/2024, 2:47 PM