From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mail-lj1-x233.google.com (mail-lj1-x233.google.com [IPv6:2a00:1450:4864:20::233]) by sourceware.org (Postfix) with ESMTPS id B5F243857831 for ; Sat, 21 Nov 2020 04:47:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.3.2 sourceware.org B5F243857831 Received: by mail-lj1-x233.google.com with SMTP id y16so12272184ljh.0 for ; Fri, 20 Nov 2020 20:47:09 -0800 (PST) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=Lt5P5ObJzqE/cxyJWK7JO91SYpEDH00gN2kYon9F29I=; b=C2e9BX6cfqLdYze26eyp5vFFMY8I0KJPMD3ijaEi1dkHlF6WruWkWkBMqk7ab4beln UWa6sQ/IOQVgKhLI7WWJwAzz6A44Ono37HHGL+iDZ/egG7bwthukt5755ZyuZmV6PQOz zSoQnKo3E5P+iDv12daxTzR83ZDm8oM133RMn69GH9aMDDdsjLulI1QSdVIbGR+CpPLs kHq/j8dx9Nj1tyPRekO9VT6/SA3cj8ox3XQXXV8FOU50PO1XAEKpEoJbJXuIcQv8TjTt ZwBPYBJCucaDP2nHYqDefGZQPjvTxOtieAWLMVeClRsF/gabJ2Lr3xOMdgqgWfYj1VKV ETOQ== X-Gm-Message-State: AOAM531S1Na0OSfcyQZgrbAYvgBZECR7FeXRrOIB1/mR7dNqN/iev5J/ G1eQlbUeUl0PzQ8KTZnrs+NsuHxEcaU8tjaWOFM= X-Google-Smtp-Source: ABdhPJx1lBa7aMoVPqb/kauC7f3IiD8MOi14EEoY6X7zGrQfDAAxFCQ/DM6X86BAV7WhZ++goGjLu0JflAgKhONeuDg= X-Received: by 2002:a2e:9b07:: with SMTP id u7mr8431447lji.219.1605934028048; Fri, 20 Nov 2020 20:47:08 -0800 (PST) MIME-Version: 1.0 References: In-Reply-To: From: Duncan Mak Date: Fri, 20 Nov 2020 23:46:31 -0500 Message-ID: Subject: Re: Kawa maven plugin To: Arvydas Silanskas , Per Bothner Cc: kawa mailing list X-Spam-Status: No, score=-1.8 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, HTML_MESSAGE, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, TXREP autolearn=ham autolearn_force=no version=3.4.2 X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on server2.sourceware.org Content-Type: text/plain; charset="UTF-8" X-Content-Filtered-By: Mailman/MimeDel 2.1.29 X-BeenThere: kawa@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Kawa mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sat, 21 Nov 2020 04:47:12 -0000 Right after sending my mail, I was reminded of (module-compile-options main: #t) and with a few changes, I was able to make mvn compile work. https://github.com/duncanmak/kawa-javafx-graalvm/commit/f06d1d839aeb0a3243145fdea9b5107ddfc3e53d The next thing I tried is to use GraalVM and see if I can generate a native image, alas, it looks like it's not working yet. it looks like there are methods that cannot be compiled into a native image by GraalVM. [Fri Nov 20 23:38:11 EST 2020][INFO] [SUB] Error: com.oracle.graal.pointsto.constraints.UnsupportedFeatureException: Invoke with MethodHandle argument could not be reduced to at most a single call or single field access. The method handle must be a compile time constant, e.g., be loaded from a `static final` field. Method that contains the method handle invocation: gnu.expr.CompiledProc.init(boolean, MethodHandle, Object, int) [Fri Nov 20 23:38:11 EST 2020][INFO] [SUB] To enable method handles that do not require LambdaForm interpretation (e.g. because of a call to MethodHandle.bindTo()) or to diagnose the issue, you can add the option --report-unsupported-elements-at-runtime. The error is then reported at run time when the invoke is executed and the method handle has to be interpreted. [Fri Nov 20 23:38:11 EST 2020][INFO] [SUB] Trace: [Fri Nov 20 23:38:11 EST 2020][INFO] [SUB] at parsing javafx-from-kawa.(main.scm) [Fri Nov 20 23:38:11 EST 2020][INFO] [SUB] Call path from entry point to javafx-from-kawa.(): [Fri Nov 20 23:38:11 EST 2020][INFO] [SUB] no path found from entry point to target method I see that GraalVM does work for Clojure, https://github.com/BrunoBonacci/graalvm-clojure, I wonder what's to be done to Kawa to make it work here. Duncan. On Fri, Nov 20, 2020 at 10:38 PM Duncan Mak wrote: > Hello Arvydas, > > I wanted to give your maven plugin a try, so I took the pom.xml from > Gluon's HelloFX and tried to make it work with Kawa sources instead of Java. > > https://github.com/duncanmak/kawa-javafx-graalvm > > I wonder what I'm doing wrong in my pom.xml - > > mvn kawa:run works, and mvn compile claims it succeeded, but I don't see > any class files in the target output directory, in fact, it's empty. > > hangul:kawa-javafx-graalvm (main) % mvn compile > > [*INFO*] Scanning for projects... > > [*INFO*] > > [*INFO*] *--------------< *com.github.duncanmak:kawa-javafx-graalvm* > >--------------* > > [*INFO*] *Building HelloFXFromKawa 1.0.0-SNAPSHOT* > > [*INFO*] *--------------------------------[ jar > ]---------------------------------* > > [*INFO*] > > [*INFO*] *--- *maven-resources-plugin:2.6:resources *(default-resources)* > @ kawa-javafx-graalvm* ---* > > [*INFO*] Using 'UTF-8' encoding to copy filtered resources. > > [*INFO*] skip non existing resourceDirectory > /Users/duncan/git/duncanmak/kawa-javafx-graalvm/src/main/resources > > [*INFO*] > > [*INFO*] *--- *maven-compiler-plugin:3.8.1:compile *(default-compile)* @ > kawa-javafx-graalvm* ---* > > [*INFO*] No sources to compile > > [*INFO*] > > [*INFO*] *--- *kawa-maven-plugin:0.0.5:compile *(compile)* @ > kawa-javafx-graalvm* ---* > > (compiling > /Users/duncan/git/duncanmak/kawa-javafx-graalvm/./src/main/scheme/main.scm > to javafx-app) > > /Users/duncan/git/duncanmak/kawa-javafx-graalvm/./src/main/scheme/main.scm:11:10: > no use of hello-world > > /Users/duncan/git/duncanmak/kawa-javafx-graalvm/./src/main/scheme/main.scm:13:10: > no use of start > > [*INFO*] > *------------------------------------------------------------------------* > > [*INFO*] *BUILD SUCCESS* > > [*INFO*] > *------------------------------------------------------------------------* > > [*INFO*] Total time: 2.948 s > > [*INFO*] Finished at: 2020-11-20T22:36:08-05:00 > > [*INFO*] > *------------------------------------------------------------------------* > > I wonder if this has to do with the fact that Kawa doesn't seem to be > handling the main method correctly (see the warnings saying "no use of > start"). > > Any ideas? Per, maybe you know what's missing? I noticed that I get the > error even if I just run kawa --main -C src/main/scheme/main.scm, so it > might not have to do with the Maven plugin. > > Thanks! > > > On Sat, Nov 7, 2020 at 4:39 PM Duncan Mak wrote: > >> Very cool work! I'm interested in using it in my personal project. >> >> It'd be interesting to see if this can be the basis for something like >> https://clojure.org/guides/deps_and_cli for Kawa. >> >> On Sat, Nov 7, 2020 at 10:09 AM Arvydas Silanskas via Kawa < >> kawa@sourceware.org> wrote: >> >>> Good evening, >>> >>> I'd like to share a maven plugin I've been working on lately >>> https://github.com/arvyy/kawa-maven-plugin/ (examples on how it can be >>> used >>> can be seen https://github.com/arvyy/kawa-maven-plugin-example/). The >>> main >>> premise for using maven (with this plugin), is the automatic dependency >>> (including kawa runtime) gathering. I hope some of you find this useful. >>> >>> Arvydas >>> >> >> >> -- >> Duncan. >> > > > -- > Duncan. > -- Duncan.