From 69c2540886d549bcd11b375cdaeb83ec4646f619 Mon Sep 17 00:00:00 2001 From: Marius Gavrilescu Date: Mon, 3 Feb 2014 12:30:16 +0200 Subject: [PATCH] Update POD --- gruntmaster-compile | 71 +++++++++++++++++++++++++++++++++++++++++++-- gruntmaster-exec | 33 +++++++++++++++++++++ gruntmasterd | 32 ++++++++++++++++++++ 3 files changed, 134 insertions(+), 2 deletions(-) diff --git a/gruntmaster-compile b/gruntmaster-compile index 2d98d14..bc9c4f5 100755 --- a/gruntmaster-compile +++ b/gruntmaster-compile @@ -13,11 +13,78 @@ if ($ret) { exit $? >> 8 } else { given ($format){ - exec 'gcc', qw/-DONLINE_JUDGE -std=gnu11 -Wextra -O2 -o/, $basename, $name when 'C'; - exec 'g++', qw/-DONLINE_JUDGE -std=gnu++11 -fabi-version=6 -Wextra -O2 -o/, $basename, $name when 'CPP'; + exec 'gcc', qw/-DONLINE_JUDGE -std=gnu11 -Wall -Wextra -O2 -o/, $basename, $name when 'C'; + exec 'g++', qw/-DONLINE_JUDGE -std=gnu++11 -fabi-version=6 -Wall -Wextra -O2 -o/, $basename, $name when 'CPP'; exec 'gmcs', '-d:ONLINE_JUDGE', $name when 'MONO'; exec 'javac', $name when 'JAVA'; exec 'fpc', qw/-dONLINE_JUDGE -O2 -n/, $name when 'PASCAL'; copy $name, $basename when ['PERL', 'PYTHON'] } } + +__END__ + +=encoding utf-8 + +=head1 NAME + +gruntmaster-compile - Gruntmaster 6000 compiler frontend + +=head1 SYNOPSIS + + gruntmaster-compile CPP file.cpp + gruntmaster-compile JAVA file.java + +=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. + +Compile commands for each format: + +=over + +=item C + + gcc -DONLINE_JUDGE -std=gnu11 -Wall -Wextra -O2 -o $output $input + +=item CPP + + g++ -DONLINE_JUDGE -std=gnu11 -fabi-version=6 -Wall -Wextra -O2 -o $output $input + +=item MONO + + gmcs -d:ONLINE_JUDGE $input + +=item JAVA + + javac $input + +=item PASCAL + + fpc -dONLINE_JUDGE -O2 -n $input + +=item PERL + + cp $input $output + +=item PYTHON + + cp $input $output + +=back + +=head1 AUTHOR + +Marius Gavrilescu Emarius@ieval.roE + +=head1 COPYRIGHT AND LICENSE + +Copyright (C) 2014 by Marius Gavrilescu + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + + +=cut diff --git a/gruntmaster-exec b/gruntmaster-exec index d11803f..1bb5758 100755 --- a/gruntmaster-exec +++ b/gruntmaster-exec @@ -14,3 +14,36 @@ setrlimit RLIMIT_FSIZE, $olimit, $olimit or die $! if $olimit; %ENV = (ONLINE_JUDGE => 1, PATH => $ENV{PATH}, HOME => $ENV{PATH}); exec @args; + +__END__ + +=encoding utf-8 + +=head1 NAME + +gruntmaster-exec - Gruntmaster 6000 executor + +=head1 SYNOPSIS + + gruntmaster-exec 20000000 111 echo 'Hello, world!' + +=head1 DESCRIPTION + +gruntmaster-exec is the script used by gruntmasterd to run programs. + +The first argument is the address space limit (in bytes), the second argument is the output limit (also in bytes). The rest of the arguments are the command that should be run and its arguments. + +gruntmaster-exec sets the resource limits, cleans the environment (except for PATH and HOME), adds the ONLINE_JUDGE environment variable with value 1, and finally Cs the given command. + +=head1 AUTHOR + +Marius Gavrilescu Emarius@ieval.roE + +=head1 COPYRIGHT AND LICENSE + +Copyright (C) 2014 by Marius Gavrilescu + +This program is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. diff --git a/gruntmasterd b/gruntmasterd index 100a78e..09a09bd 100755 --- a/gruntmasterd +++ b/gruntmasterd @@ -3,3 +3,35 @@ use v5.14; use Gruntmaster::Daemon; Gruntmaster::Daemon->run; + +__END__ + +=head1 NAME + +gruntmasterd - Gruntmaster 6000 Online Judge -- daemon + +=head1 SYNOPSIS + + gruntmasterd + +=head1 DESCRIPTION + +Gruntmaster::Daemon is the daemon component of the Gruntmaster 6000 online judge. + +gruntmasterd is a shortcut for calling C<< Gruntmaster::Daemon->run >>. It takes no arguments. + +=head1 AUTHOR + +Marius Gavrilescu Emarius@ieval.roE + +=head1 COPYRIGHT AND LICENSE + +Copyright (C) 2014 by Marius Gavrilescu + +This library is free software: you can redistribute it and/or modify +it under the terms of the GNU Affero General Public License as published by +the Free Software Foundation, either version 3 of the License, or +(at your option) any later version. + + +=cut -- 2.30.2