Swift とは JVM 上で動くスクリプト言語だという事は知っています。
非常に有名なプログラミング言語であるにも関わらず、しかし事前知識はそれだけで他のことは全く知りませんでした。
こんな有名なプログラミング言語を知らないなんて、それは少し恥ずかしいな思い立って、プログラミング言語 Swift を調べてみます。少しずついくつかの記事にかに分けて調べていってみようと思います。
目次はこちら
クイックスタートの URL
今回やってみるクイックスタートの URL です。
http://swift-lang.org/guides/release-0.96/quickstart/quickstart.html
前回は Windows 用の起動 bat らしきファイルが見えたので Windows で試してみましたが動きませんでした。今回は WSL でやってみます。
■ WSL の準備
まずは Windows の WSL (Windows Subsystem for Linux) の準備です。ターミナルでコマンドを実行します。
wsl --install Ubuntu
今回は Ubuntu 22.04.01 がインストールされました。
■ swift コマンド実行
前回ダウンロードしていた swift コマンドを実行します。
http://swift-lang.org/packages/swift-0.96.2.tar.gz
http://swift-lang.org/guides/release-0.96/quickstart/hello.swift
xxxxxxxxxx@XXXXXXXXXX:/mnt/x/xxxxxxxxxxxx$ /mnt/x/xxxxxxxxxxxx/swift-0.96.2/bin/swift hello.swift /mnt/x/xxxxxxxxxxxx/swift-0.96.2/bin/swift: line 178: java: command not found
java
コマンドが見つからない、と怒られました。それはそうですね。Java をインストールします。
■ Java のインストール
Java のインストール方法はこちら。
learn.microsoft.com
# Valid values are only '18.04' and '20.04' # For other versions of Ubuntu, please use the tar.gz package ubuntu_release=`lsb_release -rs` wget https://packages.microsoft.com/config/ubuntu/${ubuntu_release}/packages-microsoft-prod.deb -O packages-microsoft-prod.deb sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get install apt-transport-https sudo apt-get update sudo apt-get install msopenjdk-17
$ java --version openjdk 17.0.6 2023-01-17 LTS OpenJDK Runtime Environment Microsoft-7209853 (build 17.0.6+10-LTS) OpenJDK 64-Bit Server VM Microsoft-7209853 (build 17.0.6+10-LTS, mixed mode, sharing)
openjdk 17.0.6 がインストールされました。
■ 実行
満を持して実行!
$ /mnt/x/xxxxxxxxxxx/swift-0.96.2/bin/swift hello.swift -Djava.endorsed.dirs=/mnt/c/Users/owner/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.
エラーになりました。これは 前回 見たやつですね。
rksoftware.hatenablog.com
■ swift ファイルを編集
\swift-0.96.2\bin\swift ファイルを編集してみましょう。\swift-0.96.2\bin\swift ファイルの 44 行目です。
OPTIONS="$OPTIONS -Djava.endorsed.dirs=$SWIFT_HOME/lib/endorsed"
↓
OPTIONS="$OPTIONS "
■ もういちど実行
$ /mnt/x/xxxxxxxxxxxx/swift-0.96.2/bin/swift hello.swift Swift 0.96.2 git-rev: b9611649002eecd640fc6c58bbb88cb35ce03539 heads/release-0.96-swift 6287 RunID: run008 Progress: Xxx, xx Jan 2023 xx:xx:31+0900 Progress: Xxx, xx Jan 2023 xx:xx:32+0900 Active:1 Final status: Xxx, xx Jan 2023 xx:xx:32+0900 Finished successfully:1
うごいたっぽいです。
ここで実行した 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");
どうやら hello.out というファイルに hi と書き込むコードですね?
■ 実行結果確認
実際 hello.out というファイルが作られているので中身を見てみましょう。
hi
計画通り! 動作しました。
次回
次回こそ、チュートリアルをやって完全に理解したいと思います。