Received: from malur.postgresql.org ([217.196.149.56]) by arkaria.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jn8fE-0001aG-BX for pljava-dev@arkaria.postgresql.org; Sun, 21 Jun 2020 22:42:12 +0000 Received: from localhost ([127.0.0.1] helo=malur.postgresql.org) by malur.postgresql.org with esmtp (Exim 4.92) (envelope-from ) id 1jn8fD-0001pT-9d for pljava-dev@arkaria.postgresql.org; Sun, 21 Jun 2020 22:42:11 +0000 Received: from magus.postgresql.org ([2a02:c0:301:0:ffff::29]) by malur.postgresql.org with esmtps (TLS1.3:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jn8fD-0001pM-4k for pljava-dev@lists.postgresql.org; Sun, 21 Jun 2020 22:42:11 +0000 Received: from anastigmatix.net ([68.171.219.55]) by magus.postgresql.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1jn8fA-0000hq-N7 for pljava-dev@lists.postgresql.org; Sun, 21 Jun 2020 22:42:10 +0000 DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=anastigmatix.net; s=default; h=Content-Transfer-Encoding:Content-Type: In-Reply-To:MIME-Version:Date:Message-ID:From:Cc:References:To:Subject:Sender :Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Id:List-Help: List-Unsubscribe:List-Subscribe:List-Post:List-Owner:List-Archive; bh=WPtTR1SXB4StI2Z7Yh5fMOo/+NzoI6NbHqvnDgOftSs=; b=TWOT7Ajo4MbU81LWHDjbpjND9Z 7/vsPkLRnICRbJ+crvZDaDe6C+e7RobfJnS08uSx4S4lsQjIqIHgsLrPpqy1hS5EZcooJeeB2a7VV OnuLDJ7TPb/1VONRUk5nJaeiHzddZQ8jmzuZt2g38bbLXIjl/yB3DbuyvxrO+VFrp8tDqXA2ls7SZ ZyZrpuYcUF8fAlu8jAHINMuUm6p3Qv49cQs+TpkSTg0pVCtrupvQL4H+1lLDbugFeYVX2AiXmwilj igkwlYW5zeGPDJMwS12g6idVchP9pCjyjzSpJfVqGS+gfRqDLEUmnVNsa93tpyf73pcACyQEJnXqb LUPB4eOw==; Received: from [184.19.31.139] (port=42634) by bay.acenet.us with esmtpsa (TLS1.2) tls TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 (Exim 4.93) (envelope-from ) id 1jn8f8-001rgn-84; Sun, 21 Jun 2020 18:42:06 -0400 Subject: Building on Java 15, using graaljs in place of Nashorn To: Kartik Ohri References: <5EC17E17.7070002@anastigmatix.net> <5ED270BA.9010001@anastigmatix.net> <5ED3D488.1010401@anastigmatix.net> <5ED474CA.3000106@anastigmatix.net> <5ED4EA10.4030801@anastigmatix.net> <5ED7E74B.9020800@anastigmatix.net> <5EDA576E.2000204@anastigmatix.net> <5EDBA5D9.8090506@anastigmatix.net> <5EE7AE8C.2040201@anastigmatix.net> <5EEA6E2C.5030004@anastigmatix.net> Cc: pljava-dev@lists.postgresql.org From: Chapman Flack X-Enigmail-Draft-Status: N1110 Message-ID: <5EEFE23D.8080306@anastigmatix.net> Date: Sun, 21 Jun 2020 18:42:05 -0400 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.7.0 MIME-Version: 1.0 In-Reply-To: <5EEA6E2C.5030004@anastigmatix.net> Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit X-OutGoing-Spam-Status: No, score=-95.0 X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - bay.acenet.us X-AntiAbuse: Original Domain - lists.postgresql.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - anastigmatix.net X-Get-Message-Sender-Via: bay.acenet.us: authenticated_id: chap@anastigmatix.net X-Authenticated-Sender: bay.acenet.us: chap@anastigmatix.net X-Source: X-Source-Args: X-Source-Dir: X-From-Rewrite: unmodified, already matched List-Id: List-Help: List-Subscribe: List-Post: List-Owner: List-Archive: Precedence: bulk On 06/17/20 15:25, Chapman Flack wrote: > That means it'll be time to add a profile with build-time dependencies > on org.graalvm.js:js and org.graalvm.js:js-scriptengine. That ought to > handle the uses of JS in the build itself (modulo whatever Nashorn -> > GraalJS compatibility kinks we discover). I have pushed a branch chore/master/denashorn that does that exactly, when Java 15 or later is detected. It also sets the system property polyglot.js.nashorn-compat, which lets the existing JavaScript bits continue to work without any changes. > Probably time to work on the self-installer Java code and just build in > the work that is currently done in the included JS. That makes it less > transparent and configurable, but it hasn't needed to change much in > several years so it's probably ok. I ended up refactoring it just slightly so it can be usefully subclassed, then writing a PL/Java-specific subclass that handles the pathname mapping. So now it's a self-extracting jar made by adding two extra .class files rather than just one. Relatively painless. Kartik, could you check that the branch works with Java 15 in CI? Now that there is a small PL/Java-specific class file inside the installer jar, I may go ahead and give it a few extra small methods useful for testing, just so they could be run from jshell with a classpath pointing to the jar. It would be a sensible place to put them. Regards, -Chap