Description:
[grader] fixed to work with free pascal git-svn-id: http://theory.cpe.ku.ac.th/grader/judge/trunk/scripts@221 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r53:45abc6ae27d1 - - 3 files changed: 10 inserted, 7 deleted

@@ -248,24 +248,27
248 case __NR_pwrite:
248 case __NR_pwrite:
249 #endif
249 #endif
250 case __NR_ftruncate64:
250 case __NR_ftruncate64:
251 case __NR_fstat64:
251 case __NR_fstat64:
252 case __NR_fcntl:
252 case __NR_fcntl:
253 case __NR_fcntl64:
253 case __NR_fcntl64:
254 case __NR_mmap:
254 case __NR_mmap:
255 case __NR_munmap:
255 case __NR_munmap:
256 case __NR_ioctl:
256 case __NR_ioctl:
257 case __NR_uname:
257 case __NR_uname:
258 case 252:
258 case 252:
259 case 243:
259 case 243:
260 + // added for free pascal
261 + case __NR_ugetrlimit:
262 + case __NR_readlink:
260 return 1;
263 return 1;
261 // case __NR_time:
264 // case __NR_time:
262 case __NR_alarm:
265 case __NR_alarm:
263 // case __NR_pause:
266 // case __NR_pause:
264 case __NR_signal:
267 case __NR_signal:
265 case __NR_fchmod:
268 case __NR_fchmod:
266 case __NR_sigaction:
269 case __NR_sigaction:
267 case __NR_sgetmask:
270 case __NR_sgetmask:
268 case __NR_ssetmask:
271 case __NR_ssetmask:
269 case __NR_sigsuspend:
272 case __NR_sigsuspend:
270 case __NR_sigpending:
273 case __NR_sigpending:
271 case __NR_getrlimit:
274 case __NR_getrlimit:
@@ -1,37 +1,37
1 #!/bin/sh
1 #!/bin/sh
2
2
3 ##############################
3 ##############################
4 #
4 #
5 # Standard Compile Script
5 # Standard Compile Script
6 #
6 #
7 # Supported compilers:
7 # Supported compilers:
8 - # gcc, g++, and gpc.
8 + # gcc, g++, and fpc.
9 #
9 #
10 ##############################
10 ##############################
11
11
12 talk ()
12 talk ()
13 {
13 {
14 if [ "$TALKATIVE" != "" ]; then
14 if [ "$TALKATIVE" != "" ]; then
15 echo "$1"
15 echo "$1"
16 fi
16 fi
17 }
17 }
18
18
19 export C_COMPILER=/usr/bin/gcc
19 export C_COMPILER=/usr/bin/gcc
20 export CPLUSPLUS_COMPILER=/usr/bin/g++
20 export CPLUSPLUS_COMPILER=/usr/bin/g++
21 - export PASCAL_COMPILER=/usr/bin/gpc
21 + export PASCAL_COMPILER=/usr/bin/fpc
22
22
23 export C_OPTIONS="-O2 -s -static -lm -Wall"
23 export C_OPTIONS="-O2 -s -static -lm -Wall"
24 export CPLUSPLUS_OPTIONS="-O2 -s -static -lm -Wall"
24 export CPLUSPLUS_OPTIONS="-O2 -s -static -lm -Wall"
25 - export PASCAL_OPTIONS="-O2 -XS -lm -Wall"
25 + export PASCAL_OPTIONS="-O1 -XS"
26
26
27 # Check for the correct number of arguments. Otherwise, print usage.
27 # Check for the correct number of arguments. Otherwise, print usage.
28 if [ $# -eq 0 -o $# -gt 4 ]
28 if [ $# -eq 0 -o $# -gt 4 ]
29 then
29 then
30 echo "Usage: $0 <language> [<source-file>] [<output-file>] [<message-file>]"
30 echo "Usage: $0 <language> [<source-file>] [<output-file>] [<message-file>]"
31 echo
31 echo
32 echo "<source-file> is defaulted to \"source\"."
32 echo "<source-file> is defaulted to \"source\"."
33 echo "<output-file> is defaulted to \"a.out\"."
33 echo "<output-file> is defaulted to \"a.out\"."
34 echo "<message-file> is defaulted to \"compiler_message\"."
34 echo "<message-file> is defaulted to \"compiler_message\"."
35 echo
35 echo
36 exit 127
36 exit 127
37 fi
37 fi
@@ -77,27 +77,27
77 talk "ERROR: The source file does not exist!"
77 talk "ERROR: The source file does not exist!"
78 echo "ERROR: The source file did not exist." > $MESSAGE_FILE
78 echo "ERROR: The source file did not exist." > $MESSAGE_FILE
79 exit 127
79 exit 127
80 fi
80 fi
81
81
82 # Compile.
82 # Compile.
83 if [ $PROG_LANG = "c" ]
83 if [ $PROG_LANG = "c" ]
84 then
84 then
85 $C_COMPILER $SOURCE_FILE -o $OUTPUT_FILE $C_OPTIONS 2>$MESSAGE_FILE
85 $C_COMPILER $SOURCE_FILE -o $OUTPUT_FILE $C_OPTIONS 2>$MESSAGE_FILE
86 elif [ $PROG_LANG = "c++" ]
86 elif [ $PROG_LANG = "c++" ]
87 then
87 then
88 $CPLUSPLUS_COMPILER $SOURCE_FILE -o $OUTPUT_FILE $CPLUSPLUS_OPTIONS 2>$MESSAGE_FILE
88 $CPLUSPLUS_COMPILER $SOURCE_FILE -o $OUTPUT_FILE $CPLUSPLUS_OPTIONS 2>$MESSAGE_FILE
89 - elif [ $PROG_LANG = "pascal" ]
89 + elif [ $PROG_LANG = "pas" ]
90 then
90 then
91 - $PASCAL_COMPILER $SOURCE_FILE -o $OUTPUT_FILE $PASCAL_OPTIONS 2>$MESSAGE_FILE
91 + $PASCAL_COMPILER $SOURCE_FILE -o$OUTPUT_FILE $PASCAL_OPTIONS >$MESSAGE_FILE
92 else
92 else
93 talk "ERROR: Invalid language specified!"
93 talk "ERROR: Invalid language specified!"
94 echo "ERROR: Invalid language specified!" > $MESSAGE_FILE
94 echo "ERROR: Invalid language specified!" > $MESSAGE_FILE
95 exit 127
95 exit 127
96 fi
96 fi
97
97
98 # Report success or failure.
98 # Report success or failure.
99 if [ -f $OUTPUT_FILE ]
99 if [ -f $OUTPUT_FILE ]
100 then
100 then
101 talk "Compilation was successful!"
101 talk "Compilation was successful!"
102 else
102 else
103 talk "ERROR: Something was wrong during the compilation!"
103 talk "ERROR: Something was wrong during the compilation!"
@@ -27,26 +27,26
27 # ARGV[2] --- test result directory
27 # ARGV[2] --- test result directory
28 # ARGV[3] --- sandbox directory
28 # ARGV[3] --- sandbox directory
29
29
30 if ARGV.length < 2 || ARGV.length > 4
30 if ARGV.length < 2 || ARGV.length > 4
31 puts "Usage: judge <language> <program-source> [<test-result-directory>] [<sandbox-directory>]"
31 puts "Usage: judge <language> <program-source> [<test-result-directory>] [<sandbox-directory>]"
32 puts " <sandbox-directory> is defaulted to ./sandbox"
32 puts " <sandbox-directory> is defaulted to ./sandbox"
33 puts " <test-result-directory> is defaulted to ./test-result"
33 puts " <test-result-directory> is defaulted to ./test-result"
34 puts "WARNING: The judge script will forcefully create the (implicitly and explicitly) specified directories and remove anything inside it."
34 puts "WARNING: The judge script will forcefully create the (implicitly and explicitly) specified directories and remove anything inside it."
35 exit(127)
35 exit(127)
36 end
36 end
37
37
38 language = ARGV[0]
38 language = ARGV[0]
39 - if language != "c" && language != "c++" && language != "pascal"
39 + if language != "c" && language != "c++" && language != "pas"
40 - log "You specified a language that is not supported."
40 + log "You specified a language that is not supported: #{language}."
41 exit(127)
41 exit(127)
42 end
42 end
43
43
44 source_file = ARGV[1]
44 source_file = ARGV[1]
45 if File.exist?(source_file) == false
45 if File.exist?(source_file) == false
46 log "The source file does not exist."
46 log "The source file does not exist."
47 exit(127)
47 exit(127)
48 end
48 end
49
49
50 log "Making test result and sandbox directories..."
50 log "Making test result and sandbox directories..."
51
51
52 current_dir = `pwd`
52 current_dir = `pwd`
You need to be logged in to leave comments. Login now