コンテストシステム
OCamlのソースが仕様にあっているかを人間が見ないで判断するために、コンテストシステムを作ろうとしてみた。
元々のOCamlのソースコードが標準入力を読んで標準出力に書くという形式でないので意外とめんどくさい。
今考えていること:
- cgiにして提出者が使えるようにする
- セキュリティの問題。networkとUnixモジュールを殺せばいける?
- 何故か仕様が異なる(関数名が違う、引数の数が違う)
- rejectする
- スタックオーバーフロー、無限ループ
- 「このテストケースで間違えとなりました」という出力がめんどい
- intだったりstringだったりint*intだったり…
- 現状はテストデータもOCamlのデータとして直接書いてるのが問題
- 外部から読み込むようにしてもいいけど、そうすると今度は基本データ型以外(関数とか)をテストデータとして使っているとやっかい
- 問題の仕様を「標準入力を読んで標準出力に書く」にしてしまう
- やりすぎ?後々困るかも
以下、妄想中…。