Add Rust
authorSergiu <srg.pscs@gmail.com>
Wed, 20 Jan 2016 19:15:22 +0000 (21:15 +0200)
committerMarius Gavrilescu <marius@ieval.ro>
Sat, 23 Jan 2016 15:51:09 +0000 (15:51 +0000)
gruntmaster-compile
lib/Gruntmaster/Daemon.pm
t/01-jobs.t
t/problems/hello/tests/rust/meta.yml [new file with mode: 0644]
t/problems/hello/tests/rust/prog.rs [new file with mode: 0644]

index 89b10c5..78c4745 100755 (executable)
@@ -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
index 84b57ad..b64d56a 100644 (file)
@@ -30,6 +30,7 @@ use constant FORMAT_EXTENSION => {
        PERL => 'pl',
        PYTHON => 'py',
        RUBY => 'rb',
+       RUST => 'rs',
        SBCL => 'l',
 };
 
index bda315a..d178f85 100644 (file)
@@ -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 (file)
index 0000000..8b0fe76
--- /dev/null
@@ -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 (file)
index 0000000..47ad8c6
--- /dev/null
@@ -0,0 +1,3 @@
+fn main() {
+    println!("Hello World!");
+}
This page took 0.029495 seconds and 4 git commands to generate.