# Known source file extensions
EXTENSIONS="c cc C cpp p pas"
+# Some of the extensions can be aliases for other extensions
+ALIAS_EXT_cc=cpp
+ALIAS_EXT_C=cpp
+ALIAS_EXT_p=pas
+
## Variables which control compilation and execution
## (see below for values for individual languages)
# Sandbox options used when compiling
COMP_SANDBOX_OPTS='-m262144 -w60 -e -i/dev/null'
-# Sandbox initialization commands for compilation
-COMP_SANDBOX_INIT=
+# Extra per-language sandbox options used when testing
+LANG_SANDBOX_OPTS=
# Translation of runtime errors: a function, which receives the exit code as an argument and
# if it is recognized as a runtime error code, it prints its name to the standard output.
EXIT_CODE_HOOK=
+# Hooks which can alter the contents of the sandbox in $BOXDIR before/after compilation/running
+PRE_COMPILE_HOOK=
+POST_COMPILE_HOOK=
+PRE_RUN_HOOK=
+POST_RUN_HOOK=
+
## Settings for individual languages
# C
EXTRA_CFLAGS=
# C++
-EXT_C_COMP='/usr/bin/g++ -O2 -g -o $EXE $EXTRA_CXXFLAGS $SRC -lm'
-EXT_cpp_COMP="$EXT_C_COMP"
-EXT_cc_COMP="$EXT_C_COMP"
+EXT_cpp_COMP='/usr/bin/g++ -O2 -g -o $EXE $EXTRA_CXXFLAGS $SRC -lm'
EXTRA_CXXFLAGS=
# Pascal
-EXT_p_COMP='/usr/bin/fpc -Ci -Cr -Ct -g -O2 -Sg -o$EXE $EXTRA_PFLAGS $SRC'
-EXT_pas_COMP="$EXT_p_COMP"
+EXT_pas_COMP='/usr/bin/fpc -Ci -Cr -Ct -g -O2 -Sg -o$EXE $EXTRA_PFLAGS $SRC'
EXTRA_PFLAGS=
-EXT_p_EXIT_CODE_HOOK=fpc-exit-code
EXT_pas_EXIT_CODE_HOOK=fpc-exit-code
### Per-task configuration variables (default values, override in per-task config)
#IC_CHECK='$PDIR/checker $PDIR/$TEST.in $PDIR/$TEST.chk'
# Sandbox options used when testing
-TEST_SANDBOX_OPTS='-a2 -f -m$MEM_LIMIT -t$TIME_LIMIT $BOX_EXTRAS'
+TEST_SANDBOX_OPTS='-a2 -f -m$MEM_LIMIT -t$TIME_LIMIT $LANG_SANDBOX_OPTS $BOX_EXTRAS'
# Extra options to be overridden in task configuration
BOX_EXTRAS=
-# Sandbox initialization commands
-SANDBOX_INIT=
-
### Debugging and testing
# DEBUG: Let `ev' run sample tests, too.