From 27be856063e024220d36e42d2b55c319c3fee384 Mon Sep 17 00:00:00 2001 From: Sergiu Date: Wed, 20 Jan 2016 21:15:22 +0200 Subject: [PATCH] Add Rust --- gruntmaster-compile | 9 +++++++-- lib/Gruntmaster/Daemon.pm | 1 + t/01-jobs.t | 1 + t/problems/hello/tests/rust/meta.yml | 7 +++++++ t/problems/hello/tests/rust/prog.rs | 3 +++ 5 files changed, 19 insertions(+), 2 deletions(-) create mode 100644 t/problems/hello/tests/rust/meta.yml create mode 100644 t/problems/hello/tests/rust/prog.rs diff --git a/gruntmaster-compile b/gruntmaster-compile index 89b10c5..78c4745 100755 --- a/gruntmaster-compile +++ b/gruntmaster-compile @@ -16,7 +16,7 @@ given ($format){ rename "$basename.exe", $basename; chmod 0755, $basename; } - exec 'gmcs', '-d:ONLINE_JUDGE', $name when 'MONO'; + exec 'gmcs', '-d:ONLINE_JUDGE', $name when 'MONO'; when ('JAVA') { unlink $_ for <*.class>; system 'javac', $name and die "javac failed: errno=$! return=$?"; @@ -28,6 +28,7 @@ given ($format){ exec 'go', qw/build -compiler gc/, $name when 'GOLANG'; exec 'go', qw/build -compiler gccgo/, $name, when 'GCCGO'; exec 'ghc', qw/-DONLINE_JUDGE -Wall -O2 -o/, $basename, $name when 'HASKELL'; + exec 'rustc', qw/-O -o/, $basename, $name when 'RUST'; when ([qw/GOLFSCRIPT PERL PYTHON RUBY SBCL/]){ open IN, '<', $name; @@ -61,7 +62,7 @@ gruntmaster-compile - Gruntmaster 6000 compiler frontend =head1 DESCRIPTION -gruntmaster-compile is a very simple frontend to various comilers. It takes two arguments: the file format and the file name, and produces a compiled executable. The executable's name is the basename of the input file. +gruntmaster-compile is a very simple frontend to various compilers. It takes two arguments: the file format and the file name, and produces a compiled executable. The executable's name is the basename of the input file. Compile commands for each format: @@ -99,6 +100,10 @@ Compile commands for each format: ghc -DONLINE_JUDGE -Wall -O2 -o $output $input +=item RUST + + rustc -O -o $output $input + =item PERL cp $input $output diff --git a/lib/Gruntmaster/Daemon.pm b/lib/Gruntmaster/Daemon.pm index 84b57ad..b64d56a 100644 --- a/lib/Gruntmaster/Daemon.pm +++ b/lib/Gruntmaster/Daemon.pm @@ -30,6 +30,7 @@ use constant FORMAT_EXTENSION => { PERL => 'pl', PYTHON => 'py', RUBY => 'rb', + RUST => 'rs', SBCL => 'l', }; diff --git a/t/01-jobs.t b/t/01-jobs.t index bda315a..d178f85 100644 --- a/t/01-jobs.t +++ b/t/01-jobs.t @@ -31,6 +31,7 @@ use constant COMPILER => { PERL perl PYTHON python RUBY ruby + RUST rustc SBCL sbcl/}; my %needs_fork = map { $_ => 1 } qw/GOLANG GOLFSCRIPT GCCGO JAVA RUBY/; diff --git a/t/problems/hello/tests/rust/meta.yml b/t/problems/hello/tests/rust/meta.yml new file mode 100644 index 0000000..8b0fe76 --- /dev/null +++ b/t/problems/hello/tests/rust/meta.yml @@ -0,0 +1,7 @@ +test_name: Rust +test_description: Hello world in Rust +problem: hello +files: + prog: + format: RUST + name: prog.rs diff --git a/t/problems/hello/tests/rust/prog.rs b/t/problems/hello/tests/rust/prog.rs new file mode 100644 index 0000000..47ad8c6 --- /dev/null +++ b/t/problems/hello/tests/rust/prog.rs @@ -0,0 +1,3 @@ +fn main() { + println!("Hello World!"); +} -- 2.30.2