AtCoderの新環境
先日、AtCoder社より、下記のツイートがありました。
また、今回のコンテストから、言語のバージョンや、使用可能な言語が変更となっております。問題なければ次回からこのバージョンでのコンテスト開催となります。
— AtCoder (@atcoder) April 5, 2020
次回コンテストまでに、新環境のテストをしておくことをオススメしておきます。
そこで、現/新の「コードテスト」ページで選択できる言語を比較してみました。1 2
サポート言語(バージョン)
バージョアップとともに言語自体の追加もなされたようです。知らない言語も多くあります。
# | 現環境 | 新環境 |
---|---|---|
1 | Ada2012 (GNAT 9.2.1) | |
2 | Awk (mawk 1.3.3) | Awk (GNU Awk 4.1.4) |
3 | Bash (GNU bash v4.3.11) | Bash (5.0.11) |
4 | bc (1.07.1) | |
5 | Brainfuck (bf 20041219) | Brainfuck (bf 20041219) |
6 | C (Clang 3.8.0) | C (Clang 10.0.0) |
7 | C (GCC 5.4.1) | C (GCC 9.2.1) |
8 | C# (.NET Core 3.1.201) | |
9 | C# (Mono-csc 3.5.0) | |
10 | C# (Mono 4.6.2.0) | C# (Mono-mcs 6.8.0.105) |
11 | C++ (Clang 3.8.0) | C++ (Clang 10.0.0) |
12 | C++ (GCC 5.4.1) | C++ (GCC 9.2.1) |
13 | C++14 (Clang 3.8.0) | |
14 | C++14 (GCC 5.4.1) | |
15 | Ceylon (1.2.1) | |
16 | Clojure (1.8.0) | Clojure (1.10.1.536) |
17 | COBOL - Fixed (OpenCOBOL 1.1.0) | COBOL - Fixed (OpenCOBOL 1.1.0) |
18 | COBOL - Free (OpenCOBOL 1.1.0) | COBOL - Free (OpenCOBOL 1.1.0) |
19 | Common Lisp (SBCL 1.1.14) | Common Lisp (SBCL 2.0.3) |
20 | Crystal (0.20.5) | Crystal (0.33.0) |
21 | Cython (0.29.16) | |
22 | D (DMD64 v2.070.1) | D (DMD 2.091.0) |
23 | D (GDC 4.9.4) | D (GDC 9.2.1) |
24 | D (LDC 0.17.0) | D (LDC 1.20.1) |
25 | Dart (2.7.2) | |
26 | Dash (0.5.8) | |
27 | dc (1.4.1) | |
28 | Elixir (1.10.2) | |
29 | Erlang (22.3) | |
30 | F# (.NET Core 3.1.201) | |
31 | F# (Mono 4.0) | F# (Mono 10.2.3) |
32 | Forth (gforth 0.7.3) | |
33 | Fortran (gfortran v4.8.4) | Fortran(GNU Fortran 9.2.1) |
34 | Go (1.6) | Go (1.14.1) |
35 | Haskell (GHC 7.10.3) | Haskell (GHC 8.8.3) |
36 | Haxe (4.0.3); Java | |
37 | Haxe (4.0.3); js | |
38 | Java7 (OpenJDK 1.7.0) | |
39 | Java8 (OpenJDK 1.8.0) | Java (OpenJDK 1.8.0) |
40 | Java (OpenJDK 11.0.6) | |
41 | JavaScript (node.js v5.12) | JavaScript (Node.js 12.16.1) |
42 | Julia (0.5.0) | Julia (1.4.0) |
43 | Kotlin (1.0.0) | Kotlin (1.3.71) |
44 | Lua (5.3.2) | Lua (Lua 5.3.5) |
45 | LuaJIT (2.0.4) | Lua (LuaJIT 2.1.0) |
46 | MoonScript (0.5.0) | |
47 | Nim (0.13.0) | Nim (1.0.6) |
48 | Objective-C (Clang3.8.0) | Objective-C (Clang 10.0.0) |
49 | Objective-C (GCC 5.3.0) | |
50 | OCaml (4.02.3) | OCaml (4.10.0) |
51 | Octave (4.0.2) | Octave (5.2.0) |
52 | Pascal (FPC 2.6.2) | Pascal (FPC 3.0.4) |
53 | Perl (v5.18.2) | Perl (5.26.1) |
54 | Perl6 (rakudo-star 2016.01) | |
55 | PHP (5.6.30) | |
56 | PHP7 (7.0.15) | PHP (7.4.4) |
57 | Prolog (SWI-Prolog 8.0.3) | |
58 | PyPy2 (5.6.0) | PyPy2 (7.3.0) |
59 | PyPy3 (2.4.0) | PyPy3 (7.3.0) |
60 | Python2 (2.7.6) | |
61 | Python3 (3.4.3) | Python (3.8.2) |
62 | Racket (7.6) | |
63 | Raku (Rakudo 2020.02.1) | |
64 | Ruby (2.3.3) | Ruby (2.7.1) |
65 | Rust (1.15.1) | Rust (1.42.0) |
66 | Scala (2.11.7) | Scala (2.13.1) |
67 | Scheme (Gauche 0.9.3.3) | Scheme (Gauche 0.9.9) |
68 | Sed (GNU sed 4.2.2) | Sed (4.4) |
69 | Standard ML (MLton 20100608) | Standard ML (MLton 20130715) |
70 | Swift (swift-2.2-RELEASE) | Swift (5.2.1) |
71 | Text (cat) | Text (cat 8.28) |
72 | TypeScript (2.1.6) | TypeScript (3.8) |
73 | Unlambda (0.1.3) | Unlambda (2.0.0) |
74 | Vim (8.2.0460) | |
75 | Visual Basic (Mono 4.0.1) | Visual Basic (.NET Core 3.1.101) |
76 | Zsh (5.4.2) |
Kotlinの環境
私がメインで使用しているKotlinのバージョンも1.0.0から1.3.71にアップされるようです。
そこで、以下のコードを現/新の「コードテスト」ページで実行させ、実行環境を取得しました。1 2 3
fun main(arg: Array<String>) {
var n = 0
for ((k, v) in System.getProperties()) {
n += 1
if (n > 0) println("$n\t$k\t$v")
//変数nを判定するのは、一回の実行で出力できる標準出力の出力量に制限があるため
}
}
しかし、Kotlin自体のバージョンを実行環境から確認することはできませんでした。
# | Key | Kotlin 1.0.0 | Kotlin 1.3.71 |
---|---|---|---|
1 | awt.toolkit | sun.awt.X11.XToolkit | sun.awt.X11.XToolkit |
2 | file.encoding | UTF-8 | UTF-8 |
3 | file.encoding.pkg | sun.io | |
4 | file.separator | / | / |
5 | java.awt.graphicsenv | sun.awt.X11GraphicsEnvironment | sun.awt.X11GraphicsEnvironment |
6 | java.awt.printerjob | sun.print.PSPrinterJob | sun.print.PSPrinterJob |
7 | java.class.path | /opt/kotlinc/lib/kotlin-runner.jar | ./Main.jar |
8 | java.class.version | 51 | 55 |
9 | java.endorsed.dirs | /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/endorsed | |
10 | java.ext.dirs | /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/ext:/usr/java/packages/lib/ext | |
11 | java.home | /usr/lib/jvm/java-7-openjdk-amd64/jre | /usr/lib/jvm/java-11-openjdk-amd64 |
12 | java.io.tmpdir | /tmp | /tmp |
13 | java.library.path | /usr/java/packages/lib/amd64:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib | /usr/java/packages/lib:/usr/lib/x86_64-linux-gnu/jni:/lib/x86_64-linux-gnu:/usr/lib/x86_64-linux-gnu:/usr/lib/jni:/lib:/usr/lib |
14 | java.runtime.name | OpenJDK Runtime Environment | OpenJDK Runtime Environment |
15 | java.runtime.version | 1.7.0_121-b00 | 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 |
16 | java.specification.name | Java Platform API Specification | Java Platform API Specification |
17 | java.specification.vendor | Oracle Corporation | Oracle Corporation |
18 | java.specification.version | 1.7 | 11 |
19 | java.vendor | Oracle Corporation | Ubuntu |
20 | java.vendor.url | http://java.oracle.com/ | https://ubuntu.com/ |
21 | java.vendor.url.bug | http://bugreport.sun.com/bugreport/ | https://bugs.launchpad.net/ubuntu/+source/openjdk-lts |
22 | java.version | 1.7.0_121 | 11.0.6 |
23 | java.version.date | 2020/1/14 | |
24 | java.vm.compressedOopsMode | 32-bit | |
25 | java.vm.info | mixed mode | mixed mode, sharing |
26 | java.vm.name | OpenJDK 64-Bit Server VM | OpenJDK 64-Bit Server VM |
27 | java.vm.specification.name | Java Virtual Machine Specification | Java Virtual Machine Specification |
28 | java.vm.specification.vendor | Oracle Corporation | Oracle Corporation |
29 | java.vm.specification.version | 1.7 | 11 |
30 | java.vm.vendor | Oracle Corporation | Ubuntu |
31 | java.vm.version | 24.121-b00 | 11.0.6+10-post-Ubuntu-1ubuntu118.04.1 |
32 | jdk.debug | release | |
33 | kotlin.home | /opt/kotlinc | |
34 | line.separator | \n | \n |
35 | os.arch | amd64 | amd64 |
36 | os.name | Linux | Linux |
37 | os.version | 3.13.0-108-generic | 4.15.0-1063-aws |
38 | path.separator | : | : |
39 | sun.arch.data.model | 64 | 64 |
40 | sun.boot.class.path | (長いので省略) | |
41 | sun.boot.library.path | /usr/lib/jvm/java-7-openjdk-amd64/jre/lib/amd64 | /usr/lib/jvm/java-11-openjdk-amd64/lib |
42 | sun.cpu.endian | little | little |
43 | sun.cpu.isalist | ||
44 | sun.io.unicode.encoding | UnicodeLittle | UnicodeLittle |
45 | sun.java.command | org.jetbrains.kotlin.runner.Main -classpath ./Main.jar MainKt | MainKt -Xss256m |
46 | sun.java.launcher | SUN_STANDARD | SUN_STANDARD |
47 | sun.jnu.encoding | UTF-8 | UTF-8 |
48 | sun.management.compiler | HotSpot 64-Bit Tiered Compilers | HotSpot 64-Bit Tiered Compilers |
49 | sun.os.patch.level | unknown | unknown |
50 | user.country | US | US |
51 | user.dir | /imojudge | /imojudge/sandbox |
52 | user.home | /home/contestant | /home/contestant |
53 | user.language | en | en |
54 | user.name | contestant | contestant |
55 | user.timezone |
終わりに
Javaのバージョンが1.7.0から11.0.6にアップされ、Java11の新機能を使うことができるのか楽しみです。
また、Swiftも2.2から5.2.1にアップされるようです。もし4.1以上に上がったらKotlinから乗り換えようかと考えていた時もありましたので、こちらも楽しみです。
何かの参考になれば幸いです。以上
2020.4.13追記
予告されていた通り昨日(2020.4.12)のABC162から新環境に変わりました。そこで自分のKotlin(及びJava)の環境も新しくしました。
$ kotlin -version
Kotlin version 1.3.71-release-431 (JRE 11.0.6+10)
$ kotlinc -version
info: kotlinc-jvm 1.3.71 (JRE 11.0.6+10)
$ java -version
openjdk version "11.0.6" 2020-01-14
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.6+10)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.6+10, mixed mode)