Swift とは JVM 上で動くスクリプト言語だという事は知っています。
非常に有名なプログラミング言語であるにも関わらず、しかし事前知識はそれだけで他のことは全く知りませんでした。
こんな有名なプログラミング言語を知らないなんて、それは少し恥ずかしいな思い立って、プログラミング言語 Swift を調べてみます。少しずついくつかの記事にかに分けて調べていってみようと思います。
目次はこちら
チュートリアルの URL
今回見つけた公式チュートリアルの URL です。
http://swift-lang.org/swift-tutorial/doc/tutorial.html
と思ったけどまずは クイックスタート
というところまで見てクイックスタートを見つけました。まずはこちらで環境を整えるチャレンジをしてみたいと思います。
http://swift-lang.org/guides/release-0.96/quickstart/quickstart.html
[ 最初に ] 今回の記事は成功しなかったパターンです
今回の記事は試してみて成功しなかったパターンです。うまくいかない方法を一つ見つけた、というやつです。実際高価値記事!
■ Java の準備
ドキュメントによると JDK 1.7 以上が必要という事です。私の環境には Microsoft OpenJDK 11 がインストール済みでした。
この Java でやっていきます。
■ Swift コマンド
次の URL から Java で作られた Swift コマンドをダウンロードします。
http://swift-lang.org/packages/swift-0.96.2.tar.gz
ダウンロードしたら tar コマンドで展開します。今の Windows には tar コマンドがあるので PowerShell のターミナルを開いて次のように。
tar xfz swift-0.96.2.tar.gz
展開してみると bin フォルダの中に swift.bat ファイルがありました。もしや Windows でも動くのか!? と思ったらダメでした。というのが今回の記事です。
■ swift.bat
実行してみると......動きません。
PS > \swift-0.96.2\bin\swift.bat -Djava.endorsed.dirs=C:\Users\XXXXXXXXXXXX\Downloads\swift-0.96.2\lib\endorsed is not supported. Endorsed standards and standalone APIs in modular form will be supported via the concept of upgradeable modules. Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
どうもこの -Djava.endorsed.dirs
という Java の起動オプション、Java 9 以降には存在せずエラーになるようです。ということはこの bat、Java 8 以前、2017 年以前のものということですね。公式サイト等を見ていると Swift は 2016 年にほとんど止まっているようなのでそういうことなのでしょう。
とりあえず起動オプションを外してみます。場所は \swift-0.96.2\bin\swift.bat ファイルの 52 行目です。
set OPTS=-DCOG_INSTALL_PATH="%SWIFT_HOME%" -Dswift.home="%SWIFT_HOME%"%COG_OPTS% -Djava.endorsed.dirs="%SWIFT_HOME%\lib\endorsed"
↓
set OPTS=-DCOG_INSTALL_PATH="%SWIFT_HOME%" -Dswift.home="%SWIFT_HOME%"%COG_OPTS%
実行すると
PS > \swift-0.96.2\bin\swift.bat Swift 0.96.2 git-rev: b9611649002eecd640fc6c58bbb88cb35ce03539 heads/release-0.96-swift 6287 No Swift script specified
動作はしました。ただ Swift で実行するコードを指定していないのでエラーになっています。
■ Swift のコード
環境はできたようなので、クイックスタートのコードファイルを次の URL からダウンロードします。
http://swift-lang.org/guides/release-0.96/quickstart/hello.swift
ダウンロードしたファイルの中のコードはこんな感じでした。これが Swift のコードなんですね!
// Define file as a type type file; // A simple app that echo's a string to a file app (file output) echo (string s) { echo s stdout=@output ; } // Map a filename to a variable of type file file output <"hello.out">; // Call the app output = echo("hi");
■ もういちど Swift 実行
実行してみます。
PS > \swift-0.96.2\bin\swift.bat hello.swift 2023-01-22 XX:XX:XX,XXX+0900 DEBUG Loader Detailed exception: com.typesafe.config.ConfigException$BadPath: path parameter: Invalid path 'env.=::': Token not allowed in path expression: '=' (you can double-quote this token if you really want it here) at com.typesafe.config.impl.Parser.parsePathExpression(Parser.java:1095) at com.typesafe.config.impl.Parser.parsePath(Parser.java:1135) at com.typesafe.config.impl.Path.newPath(Path.java:224) at com.typesafe.config.impl.PropertiesParser.fromPathMap(PropertiesParser.java:79) at com.typesafe.config.impl.ConfigImpl.fromAnyRef(ConfigImpl.java:260) at com.typesafe.config.impl.ConfigImpl.fromPathMap(ConfigImpl.java:200) at com.typesafe.config.ConfigFactory.parseMap(ConfigFactory.java:855) at com.typesafe.config.ConfigFactory.parseMap(ConfigFactory.java:866) at org.griphyn.vdl.util.SwiftConfig.getSubstitutions(SwiftConfig.java:336) at org.griphyn.vdl.util.SwiftConfig.load(SwiftConfig.java:253) at org.griphyn.vdl.karajan.Loader.loadConfig(Loader.java:598) at org.griphyn.vdl.karajan.Loader.main(Loader.java:148) Could not start execution: path parameter: Invalid path 'env.=::': Token not allowed in path expression: '=' (you can double-quote this token if you really want it here)
動きません!
ちょっと Java のことは全然わからないので。org.griphyn.vdl.karajan is 何ぞ......。
次回
■ Swift はどうもかつては Windows でも動いていた形跡
Swift はどうもかつては Windows でも動いていた形跡があります。しかし動かなかったので、おとなしく次回は WSL で試してみようと思います。