月別アーカイブ: 2018年9月

GraalVM Community Edition

JavaでJavaScriptを実行する「Nashorn」が非推奨に、ECMAScriptの速い進化に追いつけないと。代替案はGraalVM ? Publickey

今頃知った、覚書ページはどうしよう?
てか色々検索したけど GraalVM って何なのかよくワカラン。
とりあえず公式サイトのインストールページでも。

Getting started with GraalVM

js や node コマンドが含まれているみたい。
GNOME だと mozjs と被るヤン、モノホン node.js 入れていたら被るヤン!
使う時だけ先にパスが通るようにする必要があるな。

ダウンロードした tar.gz を展開、とりあえずホームに置く。
~/bin に以下を jjjs という仮の名前で置いて +x パーミッション。

#!/bin/sh

export PATH=~/graalvm-ce-1.0.0-rc6/bin:$PATH
[[ $# -eq 0 ]] && js --jvm || js --jvm $1

これで振り分けできる、print, console.log 両方使えてワロタ!
インポートは Nashorn と同じみたい、ES6 はどうなった?

const System  = Java.type("java.lang.System");
 
class GraalvmTest {
    constructor() {
        System.out.println("May I ask your name?");
        let console = System.console();
        let s = console.readLine();
        print(`Hello ${s} !`);
    }
}
new GraalvmTest();

カオス!

ES6 も完全に使えるようです。
Nashorn のもどかしさもないし結構面白いかも。
OpenJDK ベースだし次の Fedora には入っているのかな?

JXA: doShellScript Line feed code

macOS の JXA で
doShellScript(“ls -l”);
とやっても一行目しか得られない、と思っていました。

#!/usr/bin/osascript
 
let app = Application.currentApplication();
app.includeStandardAdditions = true;
let res = app.doShellScript("pwd");
console.log(res);

res = app.doShellScript("ls -l");
//console.log(res);
let output = res.split("\r").join("\n");
console.log(output);

replace じゃ駄目。

これなら全部表示できる。
doShellScript が戻す文字列の改行コードは CR だったようだ。
古い mac のままな部分が色々あって面倒臭いや。
とにかくコレさえ解れば色々応用できそう。

ところで iPhone XS 買いました、iPhone 7 からの機種変更。
13インチの廉価版MacBookが9月にやってくる!?
これを期待していたのに出ないんでヤケクソで。

au shop から家に帰って初期化して iCloud から復元を選択。
「他の iCloud デバイスに確認コードを送信しました」
と出たので慌てて Macbook Air を引っ張り出す。
コレって Mac や iPad を持っていない人だとどうなるんだろう?