λRPC allows using code with high-order functions as a service

Overview

λRPC

Simple native RPC with high order functions support.

Inspired by @altavir and Communicator.

λRPC allows using code with high-order functions as a service.

Example

Let’s suppose that we have a code that loads data and fits a machine learning model. It also calls a given function on each epoch and continues fitting while it returns true.

@Serializable
data class Model(...)

typealias DataLoader = suspend () -> Data

suspend fun fit(
    model: Model, loader: DataLoader,
    continueFitting: suspend (Epoch, Loss) -> Boolean
): Weights

To transform the code to a service just add a facade declaration and a main function:

val conf = Configuration(mlServiceId)
val loader = f(j<Data>()) // Coder for the function: suspend () -> Data
val fit by conf.def(
    j<Model>(), loader, f(j<Epoch>(), j<Loss>(), j<Boolean>()),
    j<Weights>()
)

fun main() {
    val service = LibService(mlServiceId, mlEndpoint) {
        fit of ::fit // Bind declaration and implementation
    }
    service.start()
    service.awaitTermination()
}

To make calls from the client, add a ServiceDispatcher to the coroutine context and just invoke the declaration:

val serviceDispatcher = ServiceDispatcher(
    mlServiceId to mlEndpoint, // Endpoint of the service with GPU for fitting
    dataServiceId to dataEndpoint // Service that provides the data
)

fun main() = runBlocking(serviceDispatcher) {
    // Keep track of the loss function values
    val history = mutableListOf<Loss>()
    var lastEpoch = 0
    val model = Model(...)
    // Bind dataloader with its endpoint, so fit will communicate directly
    // with the service on the dataEndpoint
    val loader = bf(dataloaders.loader)
    val weights = fit(model, loader) { epoch, loss ->
        // Lambda will be executed on the client site
        println("Epoch = $epoch, loss = $loss")
        val continueFitting = if (epoch < 300) true else {
            val max = history.takeLast(50).max()
            loss < max
        }
        lastEpoch = epoch
        history += loss
        continueFitting
    }
    println("Learning finished! Epoch = $lastEpoch, loss = ${history.last()}")
    weights.save(path)
}

λRPC does not serialize lambdas and execute them on the client site. Thus, closures can be passed even to the services written in other languages.

For instance, for this code, the call diagram is the following:
// Service
suspend fun f(g: suspend (Int) -> Int) = g(5) + 1

// Client
val m = 36
f { it + m }
153264790 74784fb7 3be6 44a9 a4cf aa80bb706306

Service as a library

λRPC does not use standalone declarations to generate code (native). It uses library-specific data structures and default or custom serializers instead.

Functions can receive and return other functions as first-class objects. Provided lambdas are executed on the client side, so they can easily capture state and be "sent" to the other language process.

All of it makes multi-process communication smooth enough to recognize remote service just as a common library.

Service-decomposition purposes

  • Code execution in different containers or on various hardware (GPU for instance).

  • Parallel execution of independent tasks.

  • Communication with code written in other languages.

  • Rerun subtasks in case of failures or resume them using some state snapshot.

  • Run tasks that live longer then single process.

  • Microservice architecture.

Some high order functions (HOF) possible use-cases

  • Communication protocol simplification:

    • Service function can easily request additional information in some cases.

    • Reduce service code duplication: make HOF and receive specific operations from the client.

  • Interactive computations: receive client lambda, provide information about computation (loss function value for instance), and lambda cancels computation (machine learning process) if something is not good.

  • Security:

    • Send closures operating on the sensitive data instead of the data itself.

    • Provide computational resources as a library of functions that are parametrized by client lambdas instead of receiving client’s code and executing it.

  • Choose dynamically computation location: compute something that uses a large amount of data on a client or send data to the server and compute there.

  • Load balancing: task is done, request new via client’s lambda.

  • Stateful streaming computations: nodes provide theirs lambdas for a mapper.

λRPC functions

λRPC functions consist of two parts: backend and frontend.
  • The backend part contains the programming language closure and serializers (coders) for the arguments and for the result types.

  • The frontend one is a callable proxy object that communicates with its backend part on call and awaits for the result.

Frontend functions can be sent to other services and λRPC provides efficient communication with the corresponding backend parts.

Getting started

Run both :detekt and :test tasks
$ ./gradlew :lambdarpc:check
Generate documentation
$ ./gradlew :lambdarpc:dokkaHtml
$ cd ./lambdarpc/build/dokka/html

Repository organization

examples
  • basic — examples that demonstrate usage of basic λRPC functionality.

$ cd LambdaRPC.kt
$ ./gradlew :examples:basic.service1
$ ./gradlew :examples:basic.service2
$ ./gradlew :examples:basic.client  # or :examples:basic.stress
  • lazy — interesting example that shows possibility to build lazy data processing pipelines using common λRPC functionality.

$ cd LambdaRPC.kt
$ ./gradlew :examples:lazy.service --args=8090
$ ./gradlew :examples:lazy.service --args=8091
# Any number of services on different ports
$ ./gradlew :examples:lazy.client --args='8090 8091' # Ports of all services
lambdarpc
  • dsl — domain-specific language for λRPC library users.

  • exceptions — base λRPC exception classes.

  • functions — λRPC functions: backend and frontend parts.

  • coders — data coder (serializer) and function coder.

    • λRPC provides some default data coders based on kotlinx.serialization, but users can also implement thier own.

    • Function encoding saves language closure as backend function to the registry with some access name. Function decoding creates frontend function that is able to communicate with the corresponding backend function.

  • service — libservice implementation.

  • transport — service and connection interfaces, extensions and implementations related to the gRPC backend.

  • utils — some useful utils.

Comments
  • Kotlin backend internal error

    Kotlin backend internal error

    e: org.jetbrains.kotlin.backend.common.BackendException: Backend Internal error: Exception during IR lowering
    File being compiled: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/lambdarpc/src/main/kotlin/io/lambdarpc/dsl/ServiceDispatcher.kt
    The root cause java.lang.RuntimeException was thrown at: org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.generate(FunctionCodegen.kt:50)
            at org.jetbrains.kotlin.backend.common.CodegenUtil.reportBackendException(CodegenUtil.kt:239)
            at org.jetbrains.kotlin.backend.common.CodegenUtil.reportBackendException$default(CodegenUtil.kt:235)
            at org.jetbrains.kotlin.backend.common.phaser.PerformByIrFilePhase.invokeSequential(performByIrFile.kt:68)
            at org.jetbrains.kotlin.backend.common.phaser.PerformByIrFilePhase.invoke(performByIrFile.kt:55)
            at org.jetbrains.kotlin.backend.common.phaser.PerformByIrFilePhase.invoke(performByIrFile.kt:41)
            at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:96)
            at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:29)
            at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:96)
            at org.jetbrains.kotlin.backend.common.phaser.CompositePhase.invoke(PhaseBuilders.kt:29)
            at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:96)
            at org.jetbrains.kotlin.backend.common.phaser.CompilerPhaseKt.invokeToplevel(CompilerPhase.kt:43)
            at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.doGenerateFilesInternal(JvmIrCodegenFactory.kt:195)
            at org.jetbrains.kotlin.backend.jvm.JvmIrCodegenFactory.generateModule(JvmIrCodegenFactory.kt:60)
            at org.jetbrains.kotlin.codegen.KotlinCodegenFacade.compileCorrectFiles(KotlinCodegenFacade.java:35)
            at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.generate(KotlinToJVMBytecodeCompiler.kt:331)
            at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:123)
            at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:58)
            at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:170)
            at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
            at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:92)
            at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
            at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
            at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:434)
            at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:120)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:357)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally$default(IncrementalCompilerRunner.kt:299)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:159)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:80)
            at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:622)
            at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:100)
            at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1713)
            at jdk.internal.reflect.GeneratedMethodAccessor105.invoke(Unknown Source)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
            at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
            at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
            at java.base/java.security.AccessController.doPrivileged(Native Method)
            at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
            at java.base/java.security.AccessController.doPrivileged(Native Method)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at java.base/java.lang.Thread.run(Thread.java:829)
    Caused by: java.lang.RuntimeException: Exception while generating code for:
    FUN name:ServiceDispatcher visibility:public modality:FINAL <> (endpoints:kotlin.Array<out kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint>>) returnType:io.lambdarpc.dsl.ServiceDispatcher
      VALUE_PARAMETER name:endpoints index:0 type:kotlin.Array<out kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint>> varargElementType:kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint> [vararg]
      BLOCK_BODY
        VAR name:registry type:io.lambdarpc.transport.MapServiceRegistry [val]
          CONSTRUCTOR_CALL 'public constructor <init> (endpoints: kotlin.collections.Map<io.lambdarpc.utils.ServiceId, kotlin.collections.List<io.lambdarpc.utils.Endpoint>>) [primary] declared in io.lambdarpc.transport.MapServiceRegistry' type=io.lambdarpc.transport.MapServiceRegistry origin=null
            endpoints: CALL 'public final fun associateRepeatable <T, K, V> (transform: kotlin.Function1<T of io.lambdarpc.utils._KotlinKt.associateRepeatable, kotlin.Pair<K of io.lambdarpc.utils._KotlinKt.associateRepeatable, V of io.lambdarpc.utils._KotlinKt.associateRepeatable>>): kotlin.collections.MutableMap<K of io.lambdarpc.utils._KotlinKt.associateRepeatable, out kotlin.collections.MutableList<V of io.lambdarpc.utils._KotlinKt.associateRepeatable>> [inline] declared in io.lambdarpc.utils._KotlinKt' type=kotlin.collections.MutableMap<io.lambdarpc.utils.ServiceId, out kotlin.collections.MutableList<io.lambdarpc.utils.Endpoint>> origin=null
              <T>: kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint>
              <K>: io.lambdarpc.utils.ServiceId
              <V>: io.lambdarpc.utils.Endpoint
              $receiver: GET_VAR 'endpoints: kotlin.Array<out kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint>> [vararg] declared in io.lambdarpc.dsl.ServiceDispatcherKt.ServiceDispatcher' type=kotlin.Array<out kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint>> origin=null
              transform: BLOCK type=kotlin.Function1<kotlin.Nothing, kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint>> origin=LAMBDA
                COMPOSITE type=kotlin.Unit origin=null
                FUNCTION_REFERENCE 'private final fun ServiceDispatcher$lambda-0 (it: kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint>): kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint> declared in io.lambdarpc.dsl.ServiceDispatcherKt' type=kotlin.Function1<kotlin.Nothing, kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint>> origin=INLINE_LAMBDA reflectionTarget=null
        RETURN type=kotlin.Nothing from='public final fun ServiceDispatcher (vararg endpoints: kotlin.Pair<io.lambdarpc.utils.ServiceId, io.lambdarpc.utils.Endpoint>): io.lambdarpc.dsl.ServiceDispatcher declared in io.lambdarpc.dsl.ServiceDispatcherKt'
          CONSTRUCTOR_CALL 'public constructor <init> (registry: io.lambdarpc.transport.ServiceRegistry) [primary] declared in io.lambdarpc.dsl.ServiceDispatcher' type=io.lambdarpc.dsl.ServiceDispatcher origin=null
            registry: GET_VAR 'val registry: io.lambdarpc.transport.MapServiceRegistry [val] declared in io.lambdarpc.dsl.ServiceDispatcherKt.ServiceDispatcher' type=io.lambdarpc.transport.MapServiceRegistry origin=null
    
            at org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.generate(FunctionCodegen.kt:50)
            at org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.generate$default(FunctionCodegen.kt:43)
            at org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen.generateMethodNode(ClassCodegen.kt:360)
            at org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen.generateMethod(ClassCodegen.kt:377)
            at org.jetbrains.kotlin.backend.jvm.codegen.ClassCodegen.generate(ClassCodegen.kt:131)
            at org.jetbrains.kotlin.backend.jvm.JvmLowerKt$codegenPhase$1$1.lower(JvmLower.kt:304)
            at org.jetbrains.kotlin.backend.common.phaser.FileLoweringPhaseAdapter.invoke(PhaseBuilders.kt:120)
            at org.jetbrains.kotlin.backend.common.phaser.FileLoweringPhaseAdapter.invoke(PhaseBuilders.kt:116)
            at org.jetbrains.kotlin.backend.common.phaser.NamedCompilerPhase.invoke(CompilerPhase.kt:96)
            at org.jetbrains.kotlin.backend.common.phaser.PerformByIrFilePhase.invokeSequential(performByIrFile.kt:65)
            ... 44 more
    Caused by: org.jetbrains.kotlin.codegen.CompilationException: Back-end (JVM) Internal error: Couldn't inline method call: CALL 'public final fun associateRepeatable <T, K, V> (transform: kotlin.Function1<T of io.lambdarpc.utils._KotlinKt.associateRepeatable, kotlin.Pair<K of io.lambdarpc.utils._KotlinKt.associateRepeatable, V of io.lambdarpc.utils._KotlinKt.associateRepeatable>>): kotlin.collections.MutableMap<K of io.lambdarpc.utils._KotlinKt.associateRepeatable, out kotlin.collections.MutableList<V of io.lambdarpc.utils._KotlinKt.associateRepeatable>> [inline] declared in io.lambdarpc.utils._KotlinKt' type=kotlin.collections.MutableMap<io.lambdarpc.utils.ServiceId, out kotlin.collections.MutableList<io.lambdarpc.utils.Endpoint>> origin=null
    Method: null
    File is unknown
    The root cause java.io.FileNotFoundException was thrown at: java.base/java.io.FileInputStream.open0(Native Method)
            at org.jetbrains.kotlin.codegen.inline.InlineCodegen.performInline(InlineCodegen.kt:63)
            at org.jetbrains.kotlin.backend.jvm.codegen.IrInlineCodegen.genInlineCall(IrInlineCodegen.kt:159)
            at org.jetbrains.kotlin.backend.jvm.codegen.IrInlineCallGenerator$DefaultImpls.genCall(IrInlineCallGenerator.kt:29)
            at org.jetbrains.kotlin.backend.jvm.codegen.IrInlineCodegen.genCall(IrInlineCodegen.kt:32)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitCall(ExpressionCodegen.kt:495)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitCall(ExpressionCodegen.kt:131)
            at org.jetbrains.kotlin.ir.expressions.impl.IrCallImpl.accept(IrCallImpl.kt:47)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.gen(ExpressionCodegen.kt:211)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.generateConstructorArguments(ExpressionCodegen.kt:615)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitConstructorCall(ExpressionCodegen.kt:603)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitConstructorCall(ExpressionCodegen.kt:131)
            at org.jetbrains.kotlin.ir.expressions.impl.IrConstructorCallImpl.accept(IrConstructorCallImpl.kt:28)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitVariable(ExpressionCodegen.kt:625)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitVariable(ExpressionCodegen.kt:131)
            at org.jetbrains.kotlin.ir.declarations.impl.IrVariableImpl.accept(IrVariableImpl.kt:74)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitStatementContainer(ExpressionCodegen.kt:433)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitBlockBody(ExpressionCodegen.kt:437)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.visitBlockBody(ExpressionCodegen.kt:131)
            at org.jetbrains.kotlin.ir.expressions.IrBlockBody.accept(IrBody.kt:54)
            at org.jetbrains.kotlin.backend.jvm.codegen.ExpressionCodegen.generate(ExpressionCodegen.kt:228)
            at org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.doGenerate(FunctionCodegen.kt:122)
            at org.jetbrains.kotlin.backend.jvm.codegen.FunctionCodegen.generate(FunctionCodegen.kt:48)
            ... 53 more
    Caused by: java.io.FileNotFoundException: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/lambdarpc/build/classes/kotlin/main/io/lambdarpc/utils/_KotlinKt.class (No such file or directory)
            at java.base/java.io.FileInputStream.open0(Native Method)
            at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
            at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
            at org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil.loadFileBytes(FileUtil.java:194)
            at org.jetbrains.kotlin.com.intellij.openapi.vfs.local.CoreLocalVirtualFile.contentsToByteArray(CoreLocalVirtualFile.java:100)
            at org.jetbrains.kotlin.codegen.inline.SourceCompilerForInlineKt.loadCompiledInlineFunction(SourceCompilerForInline.kt:91)
            at org.jetbrains.kotlin.backend.jvm.codegen.IrSourceCompilerForInline.compileInlineFunction(IrSourceCompilerForInline.kt:91)
            at org.jetbrains.kotlin.codegen.inline.InlineCodegen.performInline(InlineCodegen.kt:47)
            ... 74 more
    
    
    > Task :examples:compileKotlin FAILED
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/Conf.kt: (3, 21): Unresolved reference: utils
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/Conf.kt: (4, 21): Unresolved reference: utils
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/Conf.kt: (6, 57): Unresolved reference: toSid
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/Conf.kt: (7, 17): Unresolved reference: Endpoint
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/Conf.kt: (9, 57): Unresolved reference: toSid
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/Conf.kt: (10, 17): Unresolved reference: Endpoint
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/client/Main.kt: (3, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/client/Main.kt: (4, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/client/Main.kt: (13, 25): Unresolved reference: ServiceDispatcher
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/client/Main.kt: (21, 43): Unresolved reference: it
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/client/Main.kt: (23, 65): Unresolved reference: it
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/client/Main.kt: (29, 79): Cannot infer a type for this parameter. Please specify it explicitly.
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/client/Main.kt: (29, 82): Cannot infer a type for this parameter. Please specify it explicitly.
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/client/Main.kt: (31, 54): Unresolved reference: ff
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/client/Main.kt: (34, 72): Cannot infer a type for this parameter. Please specify it explicitly.
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/client/Main.kt: (34, 82): Cannot infer a type for this parameter. Please specify it explicitly.
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (5, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (6, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (7, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (8, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (13, 20): Unresolved reference: Configuration
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (15, 22): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (15, 32): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (16, 23): Unresolved reference: f
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (16, 25): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (16, 35): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (16, 46): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (18, 31): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (18, 41): Unresolved reference: f
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (18, 43): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (18, 53): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (19, 31): Unresolved reference: f
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (19, 33): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (19, 43): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (19, 54): Unresolved reference: f
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (19, 56): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (19, 66): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (21, 26): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (21, 38): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (21, 50): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (24, 5): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (25, 5): Unresolved reference: f
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (25, 7): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (25, 19): Unresolved reference: f
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (25, 21): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (25, 33): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (25, 47): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (26, 5): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (29, 27): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (29, 45): Unresolved reference: f
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (29, 47): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (29, 59): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (29, 73): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (31, 20): Unresolved reference: f
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (31, 22): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (31, 34): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (32, 25): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (32, 43): Unresolved reference: f
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (32, 58): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Facade.kt: (33, 26): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (4, 21): Unresolved reference: coders
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (6, 21): Unresolved reference: functions
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (7, 36): Unresolved reference: serialization
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (8, 36): Unresolved reference: serialization
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (25, 21): Unresolved reference: CallDisconnectedChannelFunction
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (55, 29): Unresolved reference: DataCoder
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (56, 5): 'encode' overrides nothing
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (56, 50): Unresolved reference: RawData
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (57, 60): Unresolved reference: rd
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (59, 5): 'decode' overrides nothing
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Lib.kt: (59, 31): Unresolved reference: RawData
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Main.kt: (3, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service1/Main.kt: (9, 19): Unresolved reference: LibService
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Facade.kt: (5, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Facade.kt: (6, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Facade.kt: (7, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Facade.kt: (8, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Facade.kt: (12, 20): Unresolved reference: Configuration
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Facade.kt: (14, 23): Unresolved reference: f
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Facade.kt: (14, 25): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Facade.kt: (14, 37): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Facade.kt: (15, 23): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Facade.kt: (15, 35): Unresolved reference: j
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Main.kt: (5, 21): Unresolved reference: dsl
    e: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/src/main/kotlin/io/lambdarpc/examples/basic/service2/Main.kt: (10, 19): Unresolved reference: LibService
    Caught exception: Couldn't add watch, error = 2: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/build/classes/kotlin/main/META-INF
    Unable to watch the file system for changes
    net.rubygrapefruit.platform.NativeException: Couldn't add watch, error = 2: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/build/classes/kotlin/main/META-INF
            at net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher.startWatching0(Native Method)
            at net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher.startWatching(AbstractFileEventFunctions.java:196)
            at org.gradle.internal.watch.registry.impl.NonHierarchicalFileWatcherUpdater.updateWatchedDirectories(NonHierarchicalFileWatcherUpdater.java:151)
            at org.gradle.internal.watch.registry.impl.NonHierarchicalFileWatcherUpdater.virtualFileSystemContentsChanged(NonHierarchicalFileWatcherUpdater.java:83)
            at org.gradle.internal.watch.registry.impl.DefaultFileWatcherRegistry.virtualFileSystemContentsChanged(DefaultFileWatcherRegistry.java:147)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.lambda$updateNotifyingListeners$0(WatchingVirtualFileSystem.java:89)
            at org.gradle.internal.watch.registry.SnapshotCollectingDiffListener.publishSnapshotDiff(SnapshotCollectingDiffListener.java:32)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.lambda$updateNotifyingListeners$1(WatchingVirtualFileSystem.java:88)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.lambda$withWatcherChangeErrorHandling$7(WatchingVirtualFileSystem.java:313)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.withWatcherChangeErrorHandling(WatchingVirtualFileSystem.java:320)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.withWatcherChangeErrorHandling(WatchingVirtualFileSystem.java:312)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.updateNotifyingListeners(WatchingVirtualFileSystem.java:88)
            at org.gradle.internal.vfs.impl.AbstractVirtualFileSystem.lambda$store$1(AbstractVirtualFileSystem.java:46)
            at org.gradle.internal.vfs.impl.VfsRootReference.update(VfsRootReference.java:40)
            at org.gradle.internal.vfs.impl.AbstractVirtualFileSystem.store(AbstractVirtualFileSystem.java:46)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.snapshot(DefaultFileSystemAccess.java:162)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.lambda$readLocation$6(DefaultFileSystemAccess.java:171)
            at java.base/java.util.Optional.orElseGet(Optional.java:369)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.lambda$readSnapshotFromLocation$7(DefaultFileSystemAccess.java:196)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess$StripedProducerGuard.guardByKey(DefaultFileSystemAccess.java:219)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.lambda$readSnapshotFromLocation$8(DefaultFileSystemAccess.java:193)
            at java.base/java.util.Optional.orElseGet(Optional.java:369)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.readSnapshotFromLocation(DefaultFileSystemAccess.java:193)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.readSnapshotFromLocation(DefaultFileSystemAccess.java:178)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.readLocation(DefaultFileSystemAccess.java:171)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.read(DefaultFileSystemAccess.java:83)
            at org.gradle.internal.fingerprint.impl.DefaultFileCollectionSnapshotter$SnapshottingVisitor.visitCollection(DefaultFileCollectionSnapshotter.java:61)
            at org.gradle.api.internal.file.AbstractOpaqueFileCollection.visitContents(AbstractOpaqueFileCollection.java:55)
            at org.gradle.api.internal.file.AbstractFileCollection.visitStructure(AbstractFileCollection.java:330)
            at org.gradle.api.internal.file.CompositeFileCollection.lambda$visitContents$0(CompositeFileCollection.java:119)
            at org.gradle.api.internal.file.collections.UnpackingVisitor.visitSingleFile(UnpackingVisitor.java:111)
            at org.gradle.api.internal.file.collections.UnpackingVisitor.add(UnpackingVisitor.java:106)
            at org.gradle.api.internal.file.DefaultFileCollectionFactory$ResolvingFileCollection.visitChildren(DefaultFileCollectionFactory.java:333)
            at org.gradle.api.internal.file.CompositeFileCollection.visitContents(CompositeFileCollection.java:119)
            at org.gradle.api.internal.file.AbstractFileCollection.visitStructure(AbstractFileCollection.java:330)
            at org.gradle.internal.fingerprint.impl.DefaultFileCollectionSnapshotter.snapshot(DefaultFileCollectionSnapshotter.java:51)
            at org.gradle.internal.execution.DefaultOutputSnapshotter$1.visitOutputProperty(DefaultOutputSnapshotter.java:40)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.visitOutputs(ExecuteActionsTaskExecuter.java:338)
            at org.gradle.internal.execution.DefaultOutputSnapshotter.snapshotOutputs(DefaultOutputSnapshotter.java:37)
            at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.captureOutputs(CaptureStateAfterExecutionStep.java:96)
            at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.lambda$execute$0(CaptureStateAfterExecutionStep.java:57)
            at org.gradle.internal.execution.steps.BuildOperationStep$1.call(BuildOperationStep.java:37)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
            at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
            at org.gradle.internal.execution.steps.BuildOperationStep.operation(BuildOperationStep.java:34)
            at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:55)
            at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:35)
            at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60)
            at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27)
            at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:174)
            at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:74)
            at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:45)
            at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:40)
            at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:29)
            at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
            at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:99)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:92)
            at java.base/java.util.Optional.map(Optional.java:265)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
            at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:85)
            at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:42)
            at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
            at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
            at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:91)
            at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
            at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:106)
            at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:51)
            at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:72)
            at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:46)
            at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:86)
            at java.base/java.util.Optional.orElseGet(Optional.java:369)
            at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86)
            at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:32)
            at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
            at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:43)
            at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:31)
            at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$2.withWorkspace(ExecuteActionsTaskExecuter.java:284)
            at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
            at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
            at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
            at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
            at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
            at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
            at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:185)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:174)
            at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
            at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
            at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
            at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
            at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
            at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
            at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
            at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:408)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:388)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
            at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
            at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
            at java.base/java.lang.Thread.run(Thread.java:829)
    Stopping file watching and invalidating VFS after an error happened
    w: Detected multiple Kotlin daemon sessions at build/kotlin/sessions
    
    FAILURE: Build failed with an exception.
    
    * What went wrong:
    Execution failed for task ':examples:compileKotlin'.
    > Compilation error. See log for more details
    
    * Try:
    Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
    
    * Get more help at https://help.gradle.org
    
    BUILD FAILED in 7s
    9 actionable tasks: 4 executed, 5 up-to-date
    Gradle was unable to watch the file system for changes
    net.rubygrapefruit.platform.NativeException: Couldn't add watch, error = 2: /home/yukio/Diary/things/lambdarpc/LambdaRPC.kt/examples/build/classes/kotlin/main/META-INF
            at net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher.startWatching0(Native Method)
            at net.rubygrapefruit.platform.internal.jni.AbstractFileEventFunctions$NativeFileWatcher.startWatching(AbstractFileEventFunctions.java:196)
            at org.gradle.internal.watch.registry.impl.NonHierarchicalFileWatcherUpdater.updateWatchedDirectories(NonHierarchicalFileWatcherUpdater.java:151)
            at org.gradle.internal.watch.registry.impl.NonHierarchicalFileWatcherUpdater.virtualFileSystemContentsChanged(NonHierarchicalFileWatcherUpdater.java:83)
            at org.gradle.internal.watch.registry.impl.DefaultFileWatcherRegistry.virtualFileSystemContentsChanged(DefaultFileWatcherRegistry.java:147)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.lambda$updateNotifyingListeners$0(WatchingVirtualFileSystem.java:89)
            at org.gradle.internal.watch.registry.SnapshotCollectingDiffListener.publishSnapshotDiff(SnapshotCollectingDiffListener.java:32)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.lambda$updateNotifyingListeners$1(WatchingVirtualFileSystem.java:88)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.lambda$withWatcherChangeErrorHandling$7(WatchingVirtualFileSystem.java:313)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.withWatcherChangeErrorHandling(WatchingVirtualFileSystem.java:320)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.withWatcherChangeErrorHandling(WatchingVirtualFileSystem.java:312)
            at org.gradle.internal.watch.vfs.impl.WatchingVirtualFileSystem.updateNotifyingListeners(WatchingVirtualFileSystem.java:88)
            at org.gradle.internal.vfs.impl.AbstractVirtualFileSystem.lambda$store$1(AbstractVirtualFileSystem.java:46)
            at org.gradle.internal.vfs.impl.VfsRootReference.update(VfsRootReference.java:40)
            at org.gradle.internal.vfs.impl.AbstractVirtualFileSystem.store(AbstractVirtualFileSystem.java:46)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.snapshot(DefaultFileSystemAccess.java:162)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.lambda$readLocation$6(DefaultFileSystemAccess.java:171)
            at java.base/java.util.Optional.orElseGet(Optional.java:369)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.lambda$readSnapshotFromLocation$7(DefaultFileSystemAccess.java:196)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess$StripedProducerGuard.guardByKey(DefaultFileSystemAccess.java:219)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.lambda$readSnapshotFromLocation$8(DefaultFileSystemAccess.java:193)
            at java.base/java.util.Optional.orElseGet(Optional.java:369)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.readSnapshotFromLocation(DefaultFileSystemAccess.java:193)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.readSnapshotFromLocation(DefaultFileSystemAccess.java:178)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.readLocation(DefaultFileSystemAccess.java:171)
            at org.gradle.internal.vfs.impl.DefaultFileSystemAccess.read(DefaultFileSystemAccess.java:83)
            at org.gradle.internal.fingerprint.impl.DefaultFileCollectionSnapshotter$SnapshottingVisitor.visitCollection(DefaultFileCollectionSnapshotter.java:61)
            at org.gradle.api.internal.file.AbstractOpaqueFileCollection.visitContents(AbstractOpaqueFileCollection.java:55)
            at org.gradle.api.internal.file.AbstractFileCollection.visitStructure(AbstractFileCollection.java:330)
            at org.gradle.api.internal.file.CompositeFileCollection.lambda$visitContents$0(CompositeFileCollection.java:119)
            at org.gradle.api.internal.file.collections.UnpackingVisitor.visitSingleFile(UnpackingVisitor.java:111)
            at org.gradle.api.internal.file.collections.UnpackingVisitor.add(UnpackingVisitor.java:106)
            at org.gradle.api.internal.file.DefaultFileCollectionFactory$ResolvingFileCollection.visitChildren(DefaultFileCollectionFactory.java:333)
            at org.gradle.api.internal.file.CompositeFileCollection.visitContents(CompositeFileCollection.java:119)
            at org.gradle.api.internal.file.AbstractFileCollection.visitStructure(AbstractFileCollection.java:330)
            at org.gradle.internal.fingerprint.impl.DefaultFileCollectionSnapshotter.snapshot(DefaultFileCollectionSnapshotter.java:51)
            at org.gradle.internal.execution.DefaultOutputSnapshotter$1.visitOutputProperty(DefaultOutputSnapshotter.java:40)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.visitOutputs(ExecuteActionsTaskExecuter.java:338)
            at org.gradle.internal.execution.DefaultOutputSnapshotter.snapshotOutputs(DefaultOutputSnapshotter.java:37)
            at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.captureOutputs(CaptureStateAfterExecutionStep.java:96)
            at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.lambda$execute$0(CaptureStateAfterExecutionStep.java:57)
            at org.gradle.internal.execution.steps.BuildOperationStep$1.call(BuildOperationStep.java:37)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
            at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
            at org.gradle.internal.execution.steps.BuildOperationStep.operation(BuildOperationStep.java:34)
            at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:55)
            at org.gradle.internal.execution.steps.CaptureStateAfterExecutionStep.execute(CaptureStateAfterExecutionStep.java:35)
            at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:60)
            at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:27)
            at org.gradle.internal.execution.steps.BuildCacheStep.executeWithoutCache(BuildCacheStep.java:174)
            at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:74)
            at org.gradle.internal.execution.steps.BuildCacheStep.execute(BuildCacheStep.java:45)
            at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:40)
            at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:29)
            at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:36)
            at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:22)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:99)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:92)
            at java.base/java.util.Optional.map(Optional.java:265)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:52)
            at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:36)
            at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:85)
            at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:42)
            at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:37)
            at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:27)
            at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:91)
            at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
            at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:106)
            at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:51)
            at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:72)
            at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:46)
            at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:86)
            at java.base/java.util.Optional.orElseGet(Optional.java:369)
            at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:86)
            at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:32)
            at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:38)
            at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:43)
            at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:31)
            at org.gradle.internal.execution.steps.AssignWorkspaceStep.lambda$execute$0(AssignWorkspaceStep.java:40)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution$2.withWorkspace(ExecuteActionsTaskExecuter.java:284)
            at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:40)
            at org.gradle.internal.execution.steps.AssignWorkspaceStep.execute(AssignWorkspaceStep.java:30)
            at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:37)
            at org.gradle.internal.execution.steps.IdentityCacheStep.execute(IdentityCacheStep.java:27)
            at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:44)
            at org.gradle.internal.execution.steps.IdentifyStep.execute(IdentifyStep.java:33)
            at org.gradle.internal.execution.impl.DefaultExecutionEngine$1.execute(DefaultExecutionEngine.java:76)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:185)
            at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:174)
            at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:109)
            at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
            at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:51)
            at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
            at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
            at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:200)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$CallableBuildOperationWorker.execute(DefaultBuildOperationRunner.java:195)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:75)
            at org.gradle.internal.operations.DefaultBuildOperationRunner$3.execute(DefaultBuildOperationRunner.java:68)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:153)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.execute(DefaultBuildOperationRunner.java:68)
            at org.gradle.internal.operations.DefaultBuildOperationRunner.call(DefaultBuildOperationRunner.java:62)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.lambda$call$2(DefaultBuildOperationExecutor.java:79)
            at org.gradle.internal.operations.UnmanagedBuildOperationWrapper.callWithUnmanagedSupport(UnmanagedBuildOperationWrapper.java:54)
            at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:79)
            at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
            at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:74)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:408)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:395)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:388)
            at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:374)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
            at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
            at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
            at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
            at java.base/java.lang.Thread.run(Thread.java:829)
    
    bug build blinking 
    opened by winter-yuki 1
  • Channel function returning channel function

    Channel function returning channel function

    Lib:

    suspend fun normMap(xs: List<Point>, transformNorm: suspend (Norm) -> Norm): List<Double> =
        xs.map { point -> transformNorm { it.x * it.x + it.y * it.y }(point) }
    

    Client:

    normMap(ps) { norm -> { point -> sqrt(norm(point)) } }
    

    If ps points list contains only one point, everything is fine. If ps has more than one element, there is an exception on service

    Exception in thread "DefaultDispatcher-worker-1" java.util.NoSuchElementException: Key 7bdf8f30-870a-4af0-a8a4-1cd5b99eaf94 is missing in the map.
            at kotlin.collections.MapsKt__MapWithDefaultKt.getOrImplicitDefaultNullable(MapWithDefault.kt:24)
            at kotlin.collections.MapsKt__MapsKt.getValue(Maps.kt:346)
            at io.lambdarpc.service.LibService.processResponse(LibService.kt:107)
            at io.lambdarpc.service.LibService.access$processResponse(LibService.kt:18)
            at io.lambdarpc.service.LibService$execute$1$invokeSuspend$lambda-1$$inlined$collect$1.emit(Collect.kt:142)
            at kotlinx.coroutines.flow.internal.SafeCollectorKt$emitFun$1.invoke(SafeCollector.kt:15)
            at kotlinx.coroutines.flow.internal.SafeCollectorKt$emitFun$1.invoke(SafeCollector.kt:15)
            at kotlinx.coroutines.flow.internal.SafeCollector.emit(SafeCollector.kt:77)
            at kotlinx.coroutines.flow.internal.SafeCollector.emit(SafeCollector.kt:59)
            at io.grpc.kotlin.ServerCalls$serverCallListener$requests$1.invokeSuspend(ServerCalls.kt:227)
            at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
            at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
            at kotlinx.coroutines.scheduling.CoroutineScheduler.runSafely(CoroutineScheduler.kt:571)
            at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.executeTask(CoroutineScheduler.kt:750)
            at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.runWorker(CoroutineScheduler.kt:678)
            at kotlinx.coroutines.scheduling.CoroutineScheduler$Worker.run(CoroutineScheduler.kt:665)
    

    If working execution channel cleanup is disabled, map duplicates first block result for each input list element.

    bug 
    opened by winter-yuki 1
  • Cleanup of returned from libservice functions

    Cleanup of returned from libservice functions

    When libservice function returns a lambda, it saves it to the service's functional registry, and nobody deletes it. This is some kind of memory leak. So service should have a cleanup method that will be called by serviceContext at the end of its life.

    enhancement 
    opened by winter-yuki 1
  • org.jetbrains.kotlin.util.KotlinFrontEndException: Exception while analyzing expression

    org.jetbrains.kotlin.util.KotlinFrontEndException: Exception while analyzing expression

    Occurred once on build:

    $ ./gradlew example.basic.service1                                                     130 ↵
    
    > Task :compileKotlin
    'compileJava' task (current target is 11) and 'compileKotlin' task (current target is 1.8) jvm target compatibility should be set to the same Java version.
    e: org.jetbrains.kotlin.util.KotlinFrontEndException: Exception while analyzing expression at (32,9) in /home/yukio/Diary/things/jbr/communicator/LambdaRPC.kt/src/main/kotlin/io/lambdarpc/serialization/FunctionSerializer.kt
    
    Attachments:
    expression.kt
    function {
                if (f is ClientFunction) {
                    clientFunction = f.encode()
                } else {
                    val name = registry.register(f.toBackendFunction())
                    channelFunction = channelFunction { accessName = name.n }
                }
            }
            at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.logOrThrowException(ExpressionTypingVisitorDispatcher.java:253)
            at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.lambda$getTypeInfo$0(ExpressionTypingVisitorDispatcher.java:224)
            at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:101)
            at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.getTypeInfo(ExpressionTypingVisitorDispatcher.java:164)
            at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.getTypeInfo(ExpressionTypingVisitorDispatcher.java:134)
            at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.getTypeInfo(ExpressionTypingVisitorDispatcher.java:146)
            at org.jetbrains.kotlin.types.expressions.ExpressionTypingServices.checkFunctionReturnType(ExpressionTypingServices.java:178)
            at org.jetbrains.kotlin.types.expressions.ExpressionTypingServices.checkFunctionReturnType(ExpressionTypingServices.java:165)
            at org.jetbrains.kotlin.resolve.BodyResolver.resolveFunctionBody(BodyResolver.java:1036)
            at org.jetbrains.kotlin.resolve.BodyResolver.resolveFunctionBody(BodyResolver.java:981)
            at org.jetbrains.kotlin.resolve.BodyResolver.resolveFunctionBodies(BodyResolver.java:966)
            at org.jetbrains.kotlin.resolve.BodyResolver.resolveBehaviorDeclarationBodies(BodyResolver.java:126)
            at org.jetbrains.kotlin.resolve.BodyResolver.resolveBodies(BodyResolver.java:253)
            at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations(LazyTopDownAnalyzer.kt:227)
            at org.jetbrains.kotlin.resolve.LazyTopDownAnalyzer.analyzeDeclarations$default(LazyTopDownAnalyzer.kt:58)
            at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration(TopDownAnalyzerFacadeForJVM.kt:127)
            at org.jetbrains.kotlin.cli.jvm.compiler.TopDownAnalyzerFacadeForJVM.analyzeFilesWithJavaIntegration$default(TopDownAnalyzerFacadeForJVM.kt:96)
            at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:262)
            at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler$analyze$1.invoke(KotlinToJVMBytecodeCompiler.kt:53)
            at org.jetbrains.kotlin.cli.common.messages.AnalyzerWithCompilerReport.analyzeAndReport(AnalyzerWithCompilerReport.kt:113)
            at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.analyze(KotlinToJVMBytecodeCompiler.kt:253)
            at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli(KotlinToJVMBytecodeCompiler.kt:100)
            at org.jetbrains.kotlin.cli.jvm.compiler.KotlinToJVMBytecodeCompiler.compileModules$cli$default(KotlinToJVMBytecodeCompiler.kt:58)
            at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:170)
            at org.jetbrains.kotlin.cli.jvm.K2JVMCompiler.doExecute(K2JVMCompiler.kt:52)
            at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:92)
            at org.jetbrains.kotlin.cli.common.CLICompiler.execImpl(CLICompiler.kt:44)
            at org.jetbrains.kotlin.cli.common.CLITool.exec(CLITool.kt:98)
            at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:434)
            at org.jetbrains.kotlin.incremental.IncrementalJvmCompilerRunner.runCompiler(IncrementalJvmCompilerRunner.kt:120)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally(IncrementalCompilerRunner.kt:357)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileIncrementally$default(IncrementalCompilerRunner.kt:299)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compileImpl(IncrementalCompilerRunner.kt:159)
            at org.jetbrains.kotlin.incremental.IncrementalCompilerRunner.compile(IncrementalCompilerRunner.kt:80)
            at org.jetbrains.kotlin.daemon.CompileServiceImplBase.execIncrementalCompiler(CompileServiceImpl.kt:622)
            at org.jetbrains.kotlin.daemon.CompileServiceImplBase.access$execIncrementalCompiler(CompileServiceImpl.kt:100)
            at org.jetbrains.kotlin.daemon.CompileServiceImpl.compile(CompileServiceImpl.kt:1713)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.base/java.lang.reflect.Method.invoke(Method.java:566)
            at java.rmi/sun.rmi.server.UnicastServerRef.dispatch(UnicastServerRef.java:359)
            at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:200)
            at java.rmi/sun.rmi.transport.Transport$1.run(Transport.java:197)
            at java.base/java.security.AccessController.doPrivileged(Native Method)
            at java.rmi/sun.rmi.transport.Transport.serviceCall(Transport.java:196)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport.handleMessages(TCPTransport.java:562)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run0(TCPTransport.java:796)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.lambda$run$0(TCPTransport.java:677)
            at java.base/java.security.AccessController.doPrivileged(Native Method)
            at java.rmi/sun.rmi.transport.tcp.TCPTransport$ConnectionHandler.run(TCPTransport.java:676)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at java.base/java.lang.Thread.run(Thread.java:829)
    Caused by: java.io.FileNotFoundException: /home/yukio/Diary/things/jbr/communicator/LambdaRPC.kt/build/classes/kotlin/main/io/lambdarpc/transport/grpc/FunctionKt.class (No such file or directory)
            at java.base/java.io.FileInputStream.open0(Native Method)
            at java.base/java.io.FileInputStream.open(FileInputStream.java:219)
            at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)
            at org.jetbrains.kotlin.com.intellij.openapi.util.io.FileUtil.loadFileBytes(FileUtil.java:194)
            at org.jetbrains.kotlin.com.intellij.openapi.vfs.local.CoreLocalVirtualFile.contentsToByteArray(CoreLocalVirtualFile.java:100)
            at org.jetbrains.kotlin.cli.jvm.compiler.KotlinCliJavaFileManagerImpl.findClass(KotlinCliJavaFileManagerImpl.kt:110)
            at org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade$CliFinder.findClass(KotlinJavaPsiFacade.java:491)
            at org.jetbrains.kotlin.resolve.jvm.KotlinJavaPsiFacade.findClass(KotlinJavaPsiFacade.java:189)
            at org.jetbrains.kotlin.load.java.JavaClassFinderImpl.findClass(JavaClassFinderImpl.kt:38)
            at org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageScope$classes$1.invoke(LazyJavaPackageScope.kt:76)
            at org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageScope$classes$1.invoke(LazyJavaPackageScope.kt:54)
            at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
            at org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageScope.findClassifier(LazyJavaPackageScope.kt:142)
            at org.jetbrains.kotlin.load.java.lazy.descriptors.LazyJavaPackageScope.getContributedClassifier(LazyJavaPackageScope.kt:132)
            at org.jetbrains.kotlin.load.java.lazy.descriptors.JvmPackageScope.getContributedClassifier(JvmPackageScope.kt:55)
            at org.jetbrains.kotlin.resolve.scopes.ChainedMemberScope.getContributedClassifier(ChainedMemberScope.kt:35)
            at org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter.getContributedClassifier(AbstractScopeAdapter.kt:44)
            at org.jetbrains.kotlin.descriptors.FindClassInModuleKt.findClassifierAcrossModuleDependencies(findClassInModule.kt:26)
            at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.computeClassifierDescriptor(TypeDeserializer.kt:246)
            at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.access$computeClassifierDescriptor(TypeDeserializer.kt:27)
            at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer$classifierDescriptors$1.invoke(TypeDeserializer.kt:36)
            at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer$classifierDescriptors$1.invoke(TypeDeserializer.kt:35)
            at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
            at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.typeConstructor(TypeDeserializer.kt:141)
            at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.simpleType(TypeDeserializer.kt:79)
            at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.type(TypeDeserializer.kt:67)
            at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.typeArgument(TypeDeserializer.kt:277)
            at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.simpleType(TypeDeserializer.kt:92)
            at org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer.type(TypeDeserializer.kt:67)
            at org.jetbrains.kotlin.serialization.deserialization.MemberDeserializer.valueParameters(MemberDeserializer.kt:332)
            at org.jetbrains.kotlin.serialization.deserialization.MemberDeserializer.loadFunction(MemberDeserializer.kt:209)
            at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.computeFunctions(DeserializedMemberScope.kt:276)
            at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.access$computeFunctions(DeserializedMemberScope.kt:228)
            at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation$functions$1.invoke(DeserializedMemberScope.kt:251)
            at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation$functions$1.invoke(DeserializedMemberScope.kt:251)
            at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunction.invoke(LockBasedStorageManager.java:578)
            at org.jetbrains.kotlin.storage.LockBasedStorageManager$MapBasedMemoizedFunctionToNotNull.invoke(LockBasedStorageManager.java:651)
            at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope$OptimizedImplementation.getContributedFunctions(DeserializedMemberScope.kt:329)
            at org.jetbrains.kotlin.serialization.deserialization.descriptors.DeserializedMemberScope.getContributedFunctions(DeserializedMemberScope.kt:82)
            at org.jetbrains.kotlin.load.java.lazy.descriptors.JvmPackageScope.getContributedFunctions(JvmPackageScope.kt:68)
            at org.jetbrains.kotlin.resolve.scopes.ChainedMemberScope.getContributedFunctions(ChainedMemberScope.kt:41)
            at org.jetbrains.kotlin.resolve.scopes.AbstractScopeAdapter.getContributedFunctions(AbstractScopeAdapter.kt:40)
            at org.jetbrains.kotlin.resolve.LazyExplicitImportScope$getContributedFunctions$1.invoke(LazyExplicitImportScope.kt:52)
            at org.jetbrains.kotlin.resolve.LazyExplicitImportScope$getContributedFunctions$1.invoke(LazyExplicitImportScope.kt:52)
            at org.jetbrains.kotlin.resolve.LazyExplicitImportScope.collectCallableMemberDescriptors(LazyExplicitImportScope.kt:123)
            at org.jetbrains.kotlin.resolve.LazyExplicitImportScope.getContributedFunctions(LazyExplicitImportScope.kt:52)
            at org.jetbrains.kotlin.resolve.lazy.LazyImportScope$getContributedFunctions$1.invoke(LazyImportScope.kt:303)
            at org.jetbrains.kotlin.resolve.lazy.LazyImportScope$getContributedFunctions$1.invoke(LazyImportScope.kt:303)
            at org.jetbrains.kotlin.resolve.lazy.LazyImportResolver$collectFromImports$1.invoke(LazyImportScope.kt:116)
            at org.jetbrains.kotlin.resolve.lazy.LazyImportResolver$collectFromImports$1.invoke(LazyImportScope.kt:113)
            at org.jetbrains.kotlin.storage.LockBasedStorageManager.compute(LockBasedStorageManager.java:290)
            at org.jetbrains.kotlin.resolve.lazy.LazyImportResolver.collectFromImports(LazyImportScope.kt:113)
            at org.jetbrains.kotlin.resolve.lazy.LazyImportScope.getContributedFunctions(LazyImportScope.kt:303)
            at org.jetbrains.kotlin.resolve.calls.tower.TowerLevelsKt.getContributedFunctionsAndConstructors(TowerLevels.kt:393)
            at org.jetbrains.kotlin.resolve.calls.tower.TowerLevelsKt.access$getContributedFunctionsAndConstructors(TowerLevels.kt:1)
            at org.jetbrains.kotlin.resolve.calls.tower.ScopeBasedTowerLevel.getFunctions(TowerLevels.kt:281)
            at org.jetbrains.kotlin.resolve.calls.tower.ScopeTowerProcessorsKt$createSimpleFunctionProcessor$1.invoke(ScopeTowerProcessors.kt:234)
            at org.jetbrains.kotlin.resolve.calls.tower.ScopeTowerProcessorsKt$createSimpleFunctionProcessor$1.invoke(ScopeTowerProcessors.kt:234)
            at org.jetbrains.kotlin.resolve.calls.tower.NoExplicitReceiverScopeTowerProcessor.simpleProcess(ScopeTowerProcessors.kt:152)
            at org.jetbrains.kotlin.resolve.calls.tower.SimpleScopeTowerProcessor$DefaultImpls.process(ScopeTowerProcessors.kt:60)
            at org.jetbrains.kotlin.resolve.calls.tower.AbstractSimpleScopeTowerProcessor.process(ScopeTowerProcessors.kt:63)
            at org.jetbrains.kotlin.resolve.calls.tower.PrioritizedCompositeScopeTowerProcessor.process(ScopeTowerProcessors.kt:38)
            at org.jetbrains.kotlin.resolve.calls.tower.TowerResolver.processTowerData(TowerResolver.kt:287)
            at org.jetbrains.kotlin.resolve.calls.tower.TowerResolver.access$processTowerData(TowerResolver.kt:80)
            at org.jetbrains.kotlin.resolve.calls.tower.TowerResolver$Task.process(TowerResolver.kt:161)
            at org.jetbrains.kotlin.resolve.calls.tower.TowerResolver$Task.processImplicitReceiver(TowerResolver.kt:246)
            at org.jetbrains.kotlin.resolve.calls.tower.TowerResolver$Task.run$processScope(TowerResolver.kt:198)
            at org.jetbrains.kotlin.resolve.calls.tower.TowerResolver$Task.run(TowerResolver.kt:209)
            at org.jetbrains.kotlin.resolve.calls.tower.TowerResolver.run(TowerResolver.kt:99)
            at org.jetbrains.kotlin.resolve.calls.tower.TowerResolver.runResolve(TowerResolver.kt:86)
            at org.jetbrains.kotlin.resolve.calls.KotlinCallResolver.resolveCall(KotlinCallResolver.kt:75)
            at org.jetbrains.kotlin.resolve.calls.tower.PSICallResolver.runResolutionAndInference(PSICallResolver.kt:101)
            at org.jetbrains.kotlin.resolve.calls.CallResolver.doResolveCallOrGetCachedResults(CallResolver.java:601)
            at org.jetbrains.kotlin.resolve.calls.CallResolver.lambda$computeTasksAndResolveCall$0(CallResolver.java:213)
            at org.jetbrains.kotlin.util.PerformanceCounter.time(PerformanceCounter.kt:101)
            at org.jetbrains.kotlin.resolve.calls.CallResolver.computeTasksAndResolveCall(CallResolver.java:211)
            at org.jetbrains.kotlin.resolve.calls.CallResolver.computeTasksAndResolveCall(CallResolver.java:199)
            at org.jetbrains.kotlin.resolve.calls.CallResolver.resolveFunctionCall(CallResolver.java:329)
            at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getResolvedCallForFunction(CallExpressionResolver.kt:88)
            at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getCallExpressionTypeInfoWithoutFinalTypeCheck(CallExpressionResolver.kt:210)
            at org.jetbrains.kotlin.resolve.calls.CallExpressionResolver.getCallExpressionTypeInfo(CallExpressionResolver.kt:187)
            at org.jetbrains.kotlin.types.expressions.BasicExpressionTypingVisitor.visitCallExpression(BasicExpressionTypingVisitor.java:708)
            at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.visitCallExpression(ExpressionTypingVisitorDispatcher.java:388)
            at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher$ForDeclarations.visitCallExpression(ExpressionTypingVisitorDispatcher.java:46)
            at org.jetbrains.kotlin.psi.KtCallExpression.accept(KtCallExpression.java:35)
            at org.jetbrains.kotlin.types.expressions.ExpressionTypingVisitorDispatcher.lambda$getTypeInfo$0(ExpressionTypingVisitorDispatcher.java:175)
            ... 52 more
    
    
    > Task :example.basic.service1
    581 [main] INFO io.lambdarpc.service.LibService - Lib service f74127d2-d27f-4271-b46e-10b79143260e started on localhost:8088
    
    bug build blinking 
    opened by winter-yuki 1
  • Collection of requests completed exceptionally

    Collection of requests completed exceptionally

    On stress test evaluation

    Exception in thread "main" io.lambdarpc.exceptions.OtherException: CANCELLED: Collection of requests completed exceptionally
            at io.lambdarpc.functions.frontend.AbstractConnectedFunction$invoke$2.invokeSuspend(AbstractConnectedFunction.kt:120)
            at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
            at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:106)
            at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515)
            at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
            at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at java.base/java.lang.Thread.run(Thread.java:829)
    
    bug blinking 
    opened by winter-yuki 0
  • The Kotlin Gradle plugin was loaded multiple times

    The Kotlin Gradle plugin was loaded multiple times

    The Kotlin Gradle plugin was loaded multiple times in different subprojects, which is not supported and may break the build. 
    This might happen in subprojects that apply the Kotlin plugins with the Gradle 'plugins { ... }' DSL if they specify explicit versions, even if the versions are equal.
    Please add the Kotlin plugin to the common parent project or the root project, then remove the versions in the subprojects.
    If the parent project does not need the plugin, add 'apply false' to the plugin line.
    
    bug build 
    opened by winter-yuki 0
  • Cancelled: Collection of requests completed

    Cancelled: Collection of requests completed

    Occurs when running lazy example

    Exception in thread "DefaultDispatcher-worker-1" io.grpc.StatusException: CANCELLED: Collection of requests completed exceptionally
            at io.grpc.Status.asException(Status.java:550)
            at io.grpc.kotlin.ClientCalls$rpcImpl$1$1$1.onClose(ClientCalls.kt:295)
            at io.grpc.internal.DelayedClientCall$DelayedListener$3.run(DelayedClientCall.java:463)
            at io.grpc.internal.DelayedClientCall$DelayedListener.delayOrExecute(DelayedClientCall.java:427)
            at io.grpc.internal.DelayedClientCall$DelayedListener.onClose(DelayedClientCall.java:460)
            at io.grpc.internal.ClientCallImpl.closeObserver(ClientCallImpl.java:562)
            at io.grpc.internal.ClientCallImpl.access$300(ClientCallImpl.java:70)
            at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInternal(ClientCallImpl.java:743)
            at io.grpc.internal.ClientCallImpl$ClientStreamListenerImpl$1StreamClosed.runInContext(ClientCallImpl.java:722)
            at io.grpc.internal.ContextRunnable.run(ContextRunnable.java:37)
            at io.grpc.internal.SerializingExecutor.run(SerializingExecutor.java:133)
            at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
            at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
            at java.base/java.lang.Thread.run(Thread.java:829)
    Caused by: kotlinx.coroutines.JobCancellationException: StandaloneCoroutine was cancelled; job=StandaloneCoroutine{Cancelled}@6f9c4367
    
    bug 
    opened by winter-yuki 0
Owner
Andrey Stoyan
Andrey Stoyan
High level parsing to ensure your input is in the right shape and satisfies all constraints that business logic requires.

Parsix High level parsing to ensure your input is in the right shape and satisfies all constraints that business logic requires. It is highly inspired

null 190 Oct 16, 2022
General purpose utilities and hash functions for Android and Java (aka java-common)

Essentials Essentials are a collection of general-purpose classes we found useful in many occasions. Beats standard Java API performance, e.g. LongHas

Markus Junginger 1.4k Dec 29, 2022
General purpose utilities and hash functions for Android and Java (aka java-common)

Essentials Essentials are a collection of general-purpose classes we found useful in many occasions. Beats standard Java API performance, e.g. LongHas

Markus Junginger 1.4k Dec 29, 2022
A collection of small utility functions to make it easier to deal with some otherwise nullable APIs on Android.

requireKTX is a collection of small utility functions to make it easier to deal with some otherwise nullable APIs on Android, using the same idea as requireContext, requireArguments, and other similar Android SDK methods.

Márton Braun 82 Oct 1, 2022
FractalUtils - A collection of utility functions and classes, with an emphasis on game related utilities

A collection of utility functions and classes written in Kotlin. There is some emphasis on utilities useful for games (Geometry, Random, Time, Updating, etc).

null 2 Nov 11, 2022
Android library which makes it easy to handle the different obstacles while calling an API (Web Service) in Android App.

API Calling Flow API Calling Flow is a Android library which can help you to simplify handling different conditions while calling an API (Web Service)

Rohit Surwase 19 Nov 9, 2021
Bar Service Kotlin Client

A simple starter service client written in Kotlin against generated models (protos)A simple starter service client written in Kotlin against generated models (protos)

Logesh Dinakaran 0 Nov 9, 2021
This project is an add-on for the excellent J2V8 Project. It allows users to debug JS running in V8 using Chrome DevTools. Uses Stetho for communication with Chrome DevTools.

J2V8-Debugger This project is an add-on for the excellent J2V8 Project. It allows users to debug JS running in V8 using Chrome DevTools. Uses Stetho f

Alex Trotsenko 76 Jan 3, 2023
Trail is a simple logging system for Java and Android. Create logs using the same API and the library will detect automatically in which platform the code is running.

Trail Trail is a simple logging system for Java and Android. Create logs using the same API and the library will detect automatically in which platfor

Mauricio Togneri 13 Aug 29, 2022
recompose is a tool for converting Android layouts in XML to Kotlin code using Jetpack Compose.

recompose is a tool for converting Android layouts in XML to Kotlin code using Jetpack Compose.

Sebastian Kaspari 565 Jan 2, 2023
Expirable Disk Lru Cache is a secure(with encryption) wrapper for [DiskLruCache](https://github.com/JakeWharton/DiskLruCache) that allows expiring of key/value pairs by specifying evictionTimeSpan. It has very simple API.

ExpirableDiskLruCache ExpirableDiskLruCache is a wrapper for DiskLruCache that allows expiring of key/value pairs by specifying evictionTimeSpan. It h

Vijay Rawat 24 Oct 3, 2022
adds an option to the Android Sharesheet that allows you to save files to your device.

Save On Device adds an option to the Android Sharesheet that allows you to save files to your device. Download Get the app from the Google Play Store

null 24 Nov 29, 2022
Allows usage of iCalendar files with the Android calendar provider

ical4android ical4android is a library for Android that brings together iCalendar and Android. It's a framework for parsing and generating iCalendar r

bitfire web engineering 9 Dec 29, 2022
Runtime code generation for the Java virtual machine.

Byte Buddy runtime code generation for the Java virtual machine Byte Buddy is a code generation and manipulation library for creating and modifying Ja

Rafael Winterhalter 5.3k Jan 7, 2023
iTunes 11-style color matching code for Android

##About ColorArt is a library that uses an image to create a themed image/text display. It's a port of the idea found on the Panic Blog to work on And

Michael Evans 896 Jan 8, 2023
A small library which will save you from writing the same intent creation code again and again for the most simple tasks

Android Intents A small library which will save you from writing the same intent creation code again and again for the most simple tasks. I found myse

MarvinLabs 420 Nov 20, 2022
Polytech computer graphics couerse code scam script

Js-code-parser Polytech computer graphics couerse code scam script Копируйте строку скрипта с дебаггера с странички лабы. Вставляйте в файлик test.txt

Daniil Bakin 2 Dec 18, 2022
A Telegram bot utilities that help to reduce the code amount

Flume Party A Telegram bot utilities that help to reduce code amount. Real project examples Pull Party Bot: 19% of code has been reduced. Resistance B

pool party 1 Jun 8, 2022
SoLoader is a native code loader for Android.

SoLoader is a native code loader for Android. It takes care of unpacking your native libraries and recursively loads dependencies on platforms that don't support that out of the box.

Meta 1.2k Jan 3, 2023