haskell-jp / atcoder-lang-updates #4

Doneになってましたね!
あとは、期待通りにちゃんと動いてくれれば・・・。
@yoshi has joined the channel
ああ,これでやっと read @ IntreadInt みたいに書く一連の関数を書かなくても良くなったんですね………
不具合報告は質問タブから行うそうです。
https://twitter.com/atcoder/status/1223141246475984897?s=20
Language Testの“Welcome to AtCoder”への提出ですが,これが75msかかるって何かおかしくなってますね.これまでのGHC7.10.3なら1msで通っていたはずの提出です.
{-# LANGUAGE TypeApplications #-}

main :: IO ()
main = do
    a <- readLn @ Int
    [b, c] <- map read . words <$> getLine
    s <- getLine
    putStrLn $ show (a + b + c) ++ " " ++ s
ジャッジサーバー側の問題かもしれないです。
https://atcoder.jp/contests/language-test-202001/submissions/9837502
https://atcoder.jp/contests/language-test-202001/submissions/9838632

同じサンプルコードを入力しましたが、最初は 1ms で、今は 74ms になりました。
16:22時点の提出ならGHC7.10.3による処理かもしれません
https://twitter.com/chokudai/status/1223145615607001093?s=21
そんなことが起きていたとは・・・。
アップデートで何かおかしくなった可能性ありますね。
-O2 の overrideか,あるいはcompilation timeが誤って算入されたかあたりではないかと睨んでいます.あ,そうだ,自分のtemplate fileに組み込んで提出してみますね
提案パッケージに含まれるモジュールが全てコンパイルできることは確認しました。
以下のファイルに含まれるモジュールは全部OK
https://github.com/haskell-jp/atcoder-haskell-resources/blob/master/Import.hs
不具合? かわかりませんが、コンパイルエラーのところに以下のメッセージが出てますね。
Loaded package environment from /home/contestant/.ghc/x86_64-linux-8.6.5/environments/default
これ関連
Hide “Loading package environment” message
https://gitlab.haskell.org/ghc/ghc/issues/16879
コードテスト動いてないっぽいですよね。以下のエラーが表示されている・・・。
Loaded package environment from /home/contestant/.ghc/x86_64-linux-8.6.5/environments/default
target `{filename}' is not a module name or a source file
たしかに.こちらでも再現を確認しました.
main :: IO ()
main = putStrLn "Hello World!"
不具合報告しました。
こちらも一応不具合報告ずみ
私の方でも報告してるんですが,これ,同じ件について大量の問い合わせがきてると思うと頭が下がりますね………
質問って自分の画面には自分の内容しか表示されないんですね。
はい,それはそうなってます.全体に公開するかはコンテスト運営側の判断になりますね.
なるほど。それだと確かに誰も質問していないと思って同じ質問めっちゃありそう・・・
Rust などの他の言語でも動いていないっぽいので、Haskell 特有の問題ってわけじゃなさそうですね。
@o3o has joined the channel
@ has joined the channel
この1ms提出が75ms提出になる問題、コンテナの起動を数え外すのが難しい関係で75msが30msになるけれども仕様として固定化されるようです(下のライブの50:00あたり)

https://youtu.be/VjI-iL_ZEbM
ちなみにコードテストは動くようになってます
GHC 8.8.3 Running になってました!!!
これって、今からでもライブラリ追加間に合ったりするんですかね?
どうなんでしょう・・・。
言語アップデートは透明性が無いので、何をやっているのか全然わからないです・・・。
GHC 8.8.3 になったんですね。
コードテストはまた壊れてる感じがしますね。
あとインストールされているライブラリも提案したものと違う感じになっているような
1. GHCのバージョンを上げられてしまった(Stackage LTS/ghcup-recommendedなバージョンの採用になって良かったと思うべきか…)ので、GHC-includedなパッケージのバージョンがそもそもずれるから、仕方ない部分はあると思います。パッケージ自体の追加・削除がありましたか?
2. コードテストは main = putStrLn "Hello World!" なら動いたのですが、何が動かないですか?
bug fixのminor bumpくらいは受け入れてもらえる気がしますが、せいぜいそれくらいかなあと。
例えば解答例のコードを実行すると a.out: <stdin>: hGetLine: end of file となります。

{- お客様の中でHaskellを書ける方はいらっしゃいますか?
    と、Haskellの例がなくて困っていたところを @tanakh さんに助けて頂きました。本当にありがとうございました。-}
import Control.Applicative
 
main :: IO ()
main = do
    -- 整数の入力
    a <- readLn
    -- スペース区切り整数の入力
    [b, c] <- map read . words <$> getLine
    -- 文字列の入力
    s <- getLine
    -- 出力
    putStrLn $ show (a + b + c) ++ " " ++ s
時間がかかっているので、アップデートが出た言語についてはバージョンを上げている旨AtCoderの情報提供YouTube liveでも出ていました。`vector-algorithms` でbugfixが出たけど放置だったから、あんだけパッケージ数も多いし、Haskellは例外になるのかな? と思ってたら、ghcup recommendedの8.8.3が出た途端にGHCのバージョンごと上げてこられるのは、ちょっと面食らいましたね…。
対応が一貫しないのは困りますね... :confused:
…あ。そうか。定期的に指定通りのアップデートが通るかやり直しているのか。あのリポジトリのインストール手順、ghcupにバージョンの指示をしてなかったから、何もしないとrecommendedのバージョンを引っ張って落としてきますね。
そんでライブラリとバージョン競合を起こしたから一斉にバージョンを最新にしたと。
入力が足りてないだけではないでしょうか。以下の入力だと正常終了します。
100
2 3
hoge
本当ですね!入力足りてませんでした。
ちゃんと動いていました。
パッケージ自体の追加・削除がありましたか?
例えば massiv をインポートしようとしてエラーになってます。

前回はAC
https://atcoder.jp/contests/language-test-202001/submissions/9838835

今回は CE
https://atcoder.jp/contests/language-test-202001/submissions/11418966
なるほど、どうなるかわかりませんが一応手順を更新しておいた方が良さそうですね。
ああー、`massiv`, 0.4.2.0から0.5.1.0のmajor updateですね。
ghc-8.8.3 に合わせてライブラリのバージョンを更新する方針が良いですかねー?
ですかね。と言っても、大体バージョンを最新ににしているように見えるので、現状追認でいい気がします。
randomized eye-grepなんですけどね
では、更新内容としては以下のような方針でいいですかね。
• GHC-8.8.3 に更新
• ライブラリのバージョンについては、できる限り最新を採用
@ 追加したいライブラリ教えてください。(追加理由もあると嬉しいです)
現状の提案ライブラリは以下にまとまっています。
https://github.com/haskell-jp/atcoder-haskell-resources/blob/master/spec.md#%E8%BF%BD%E5%8A%A0%E3%83%91%E3%83%83%E3%82%B1%E3%83%BC%E3%82%B8
念のため ghcup のインストール方法も少し変更して、明示的に ghc-8.8.3 をインストールするように変更します。