Changeset 4eb07bc


Ignore:
Timestamp:
Jan 9, 2020, 1:20:22 PM (21 months ago)
Author:
Peter A. Buhr <pabuhr@…>
Branches:
arm-eh, jacob/cs343-translation, jenkins-sandbox, master, new-ast, new-ast-unique-expr
Children:
c93fd72
Parents:
6e540ea
Message:

create specific and generic duration variables for benchmarks

Location:
benchmark
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • benchmark/Makefile.am

    r6e540ea r4eb07bc  
    1111## Created On       : Sun May 31 09:08:15 2015
    1212## Last Modified By : Peter A. Buhr
    13 ## Last Modified On : Tue Jan  7 21:04:53 2020
    14 ## Update Count     : 105
     13## Last Modified On : Thu Jan  9 13:03:04 2020
     14## Update Count     : 203
    1515###############################################################################
    1616
     
    7272        echo "int main() { return 0; }" > ${@}
    7373
    74 .SILENT:                # do not print recipe
     74#.SILENT:               # do not print recipe
    7575.ONESHELL:              # use one shell to execute recipe
    7676.NOTPARALLEL:
     
    8080
    8181all : basic$(EXEEXT) ctxswitch$(EXEEXT) mutex$(EXEEXT) signal$(EXEEXT) waitfor$(EXEEXT) creation$(EXEEXT)
     82
     83basic_loop_DURATION = 15000000000
     84basic_function_DURATION = 10000000000
     85basic_DURATION = 250000000
     86
     87ctxswitch_pthread_DURATION = 50000000
     88ctxswitch_cfa_generator_DURATION = 5000000000
     89ctxswitch_DURATION = 100000000
     90
     91mutex_DURATION = 50000000
     92
     93signal_pthread_DURATION = 5000000
     94signal_DURATION = 50000000
     95
     96waitfor_upp_DURATION = 5000000
     97waitfor_DURATION = 500000
     98
     99creation_cfa_coroutine_DURATION = 10000000
     100creation_cfa_coroutine_eager_DURATION = ${creation_cfa_coroutine_DURATION}
     101creation_cfa_thread_DURATION = ${creation_cfa_coroutine_DURATION}
     102creation_upp_coroutine_DURATION = 50000000
     103creation_upp_thread_DURATION = ${creation_upp_coroutine_DURATION}
     104creation_pthread_DURATION = 250000
     105creation_DURATION = 50000000
     106
    82107
    83108%.run : %$(EXEEXT) ${REPEAT}
     
    85110        echo "------------------------------------------------------"
    86111        echo $<
    87         ${REPEAT} ${repeats} ./a.out | tee -a .result.log
     112        ${REPEAT} ${repeats} -- /usr/bin/time -f "%Uu %Ss %Er %Mkb" ./a.out $(if ${$(subst -,_,$(basename $@))_DURATION},${$(subst -,_,$(basename $@))_DURATION},${$(firstword $(subst -, ,$(basename $@)))_DURATION}) | tee -a .result.log
    88113        ${STATS} .result.log
    89114        echo "------------------------------------------------------"
     
    178203## =========================================================================================================
    179204
    180 BASIC_DEPEND  =                         \
    181         basic-loop.run                  \
     205BASIC_DEPEND  =                                 \
     206        basic-loop.run                          \
    182207        basic-function.run                      \
    183208        basic-fetch_add.run                     \
     
    201226
    202227basic$(EXEEXT): $(BASIC_DEPEND)
    203 
    204 basic-loop.run : basic-loop$(EXEEXT) ${REPEAT}
    205         rm -f .result.log
    206         echo "------------------------------------------------------"
    207         echo $<
    208         ${REPEAT} ${repeats} ./a.out 10000000000 | tee -a .result.log
    209         ${STATS} .result.log
    210         echo "------------------------------------------------------"
    211         rm -f a.out .result.log *.class
    212 
    213 basic-function.run : basic-function$(EXEEXT) ${REPEAT}
    214         rm -f .result.log
    215         echo "------------------------------------------------------"
    216         echo $<
    217         ${REPEAT} ${repeats} ./a.out 5000000000 | tee -a .result.log
    218         ${STATS} .result.log
    219         echo "------------------------------------------------------"
    220         rm -f a.out .result.log *.class
    221 
    222 basic-%.run : basic-%$(EXEEXT) ${REPEAT}
    223         rm -f .result.log
    224         echo "------------------------------------------------------"
    225         echo $<
    226         ${REPEAT} ${repeats} ./a.out 500000000 | tee -a .result.log
    227         ${STATS} .result.log
    228         echo "------------------------------------------------------"
    229         rm -f a.out .result.log *.class
    230228
    231229## =========================================================================================================
     
    286284
    287285ctxswitch-nodejs_coroutine$(EXEEXT):
     286        echo "#!/bin/sh" > a.out
     287        echo "node $(srcdir)/ctxswitch/node_cor.js" >> a.out
     288        chmod a+x a.out
    288289
    289290ctxswitch-java_thread$(EXEEXT):
     
    292293        echo "java JavaThread" >> a.out
    293294        chmod a+x a.out
    294 
    295 ctxswitch-nodejs_coroutine.run : ctxswitch-nodejs_coroutine$(EXEEXT) ${REPEAT}
    296         rm -f .result.log
    297         echo "------------------------------------------------------"
    298         echo $<
    299         for (( i = 1; i <= ${repeats}; i += 1 )) ; do
    300                 node $(srcdir)/ctxswitch/node_cor.js 50000000 | tee -a .result.log
    301         done
    302         ${STATS} .result.log
    303         echo "------------------------------------------------------"
    304         rm -f a.out .result.log *.class
    305 
    306 ctxswitch-%.run : ctxswitch-%$(EXEEXT) ${REPEAT}
    307         rm -f .result.log
    308         echo "------------------------------------------------------"
    309         echo $<
    310         ${REPEAT} ${repeats} ./a.out 50000000 | tee -a .result.log
    311         ${STATS} .result.log
    312         echo "------------------------------------------------------"
    313         rm -f a.out .result.log *.class
    314295
    315296## =========================================================================================================
     
    326307
    327308mutex-pthread$(EXEEXT):
    328         $(BENCH_V_CC)$(COMPILE)     -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
     309        $(BENCH_V_CC)$(COMPILE) $(srcdir)/mutex/pthreads.c
    329310
    330311mutex-upp$(EXEEXT):
    331         $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
     312        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/mutex/upp.cc
    332313
    333314mutex-cfa1$(EXEEXT):
    334         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa1.cfa
     315        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa1.cfa
    335316
    336317mutex-cfa2$(EXEEXT):
    337         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa2.cfa
     318        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa2.cfa
    338319
    339320mutex-cfa4$(EXEEXT):
    340         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa4.cfa
     321        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa4.cfa
    341322
    342323mutex-go$(EXEEXT):
     
    364345
    365346signal-pthread$(EXEEXT):
    366         $(BENCH_V_CC)$(COMPILE)     -DBENCH_N=5000000  $(srcdir)/schedint/pthreads.c
     347        $(BENCH_V_CC)$(COMPILE) $(srcdir)/schedint/pthreads.c
    367348
    368349signal-upp$(EXEEXT):
    369         $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/upp.cc
     350        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedint/upp.cc
    370351
    371352signal-cfa1$(EXEEXT):
    372         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa1.cfa
     353        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa1.cfa
    373354
    374355signal-cfa2$(EXEEXT):
    375         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa2.cfa
     356        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa2.cfa
    376357
    377358signal-cfa4$(EXEEXT):
    378         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa4.cfa
     359        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa4.cfa
    379360
    380361signal-rust$(EXEEXT):
     
    396377
    397378waitfor-upp$(EXEEXT):
    398         $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
     379        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedext/upp.cc
    399380
    400381waitfor-cfa1$(EXEEXT):
    401         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa1.cfa
     382        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa1.cfa
    402383
    403384waitfor-cfa2$(EXEEXT):
    404         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa2.cfa
     385        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa2.cfa
    405386
    406387waitfor-cfa4$(EXEEXT):
    407         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa4.cfa
     388        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa4.cfa
    408389
    409390## =========================================================================================================
     
    421402
    422403creation-cfa_coroutine$(EXEEXT):
    423         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa
     404        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa
    424405
    425406creation-cfa_coroutine_eager$(EXEEXT):
    426         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa  -DEAGER
     407        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa  -DEAGER
    427408
    428409creation-cfa_thread$(EXEEXT):
    429         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.cfa
     410        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_thrd.cfa
    430411
    431412creation-upp_coroutine$(EXEEXT):
    432         $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
     413        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_cor.cc
    433414
    434415creation-upp_thread$(EXEEXT):
    435         $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
     416        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_thrd.cc
    436417
    437418creation-pthread$(EXEEXT):
    438         $(BENCH_V_CC)$(COMPILE) -DBENCH_N=250000 $(srcdir)/creation/pthreads.c
     419        $(BENCH_V_CC)$(COMPILE) $(srcdir)/creation/pthreads.c
    439420
    440421creation-goroutine$(EXEEXT):
  • benchmark/Makefile.in

    r6e540ea r4eb07bc  
    419419PRINT_FORMAT = %20s: #Comments needed for spacing
    420420dummy_SOURCES = dummyC.c dummyCXX.cpp
     421basic_loop_DURATION = 15000000000
     422basic_function_DURATION = 10000000000
     423basic_DURATION = 250000000
     424ctxswitch_pthread_DURATION = 50000000
     425ctxswitch_cfa_generator_DURATION = 5000000000
     426ctxswitch_DURATION = 100000000
     427mutex_DURATION = 50000000
     428signal_pthread_DURATION = 5000000
     429signal_DURATION = 50000000
     430waitfor_upp_DURATION = 5000000
     431waitfor_DURATION = 500000
     432creation_cfa_coroutine_DURATION = 10000000
     433creation_cfa_coroutine_eager_DURATION = ${creation_cfa_coroutine_DURATION}
     434creation_cfa_thread_DURATION = ${creation_cfa_coroutine_DURATION}
     435creation_upp_coroutine_DURATION = 50000000
     436creation_upp_thread_DURATION = ${creation_upp_coroutine_DURATION}
     437creation_pthread_DURATION = 250000
     438creation_DURATION = 50000000
    421439FIX_NEW_LINES = cat $@ | tr "\n" "\t" | sed -r 's/\t,/,/' | tr "\t" "\n" > $@
    422440BASIC_DEPEND = \
    423         basic-loop.run                  \
     441        basic-loop.run                          \
    424442        basic-function.run                      \
    425443        basic-fetch_add.run                     \
     
    756774        echo "int main() { return 0; }" > ${@}
    757775
    758 .SILENT:                # do not print recipe
     776#.SILENT:               # do not print recipe
    759777.ONESHELL:              # use one shell to execute recipe
    760778.NOTPARALLEL:
     
    767785        echo "------------------------------------------------------"
    768786        echo $<
    769         ${REPEAT} ${repeats} ./a.out | tee -a .result.log
     787        ${REPEAT} ${repeats} -- /usr/bin/time -f "%Uu %Ss %Er %Mkb" ./a.out $(if ${$(subst -,_,$(basename $@))_DURATION},${$(subst -,_,$(basename $@))_DURATION},${$(firstword $(subst -, ,$(basename $@)))_DURATION}) | tee -a .result.log
    770788        ${STATS} .result.log
    771789        echo "------------------------------------------------------"
     
    871889basic$(EXEEXT): $(BASIC_DEPEND)
    872890
    873 basic-loop.run : basic-loop$(EXEEXT) ${REPEAT}
    874         rm -f .result.log
    875         echo "------------------------------------------------------"
    876         echo $<
    877         ${REPEAT} ${repeats} ./a.out 10000000000 | tee -a .result.log
    878         ${STATS} .result.log
    879         echo "------------------------------------------------------"
    880         rm -f a.out .result.log *.class
    881 
    882 basic-function.run : basic-function$(EXEEXT) ${REPEAT}
    883         rm -f .result.log
    884         echo "------------------------------------------------------"
    885         echo $<
    886         ${REPEAT} ${repeats} ./a.out 5000000000 | tee -a .result.log
    887         ${STATS} .result.log
    888         echo "------------------------------------------------------"
    889         rm -f a.out .result.log *.class
    890 
    891 basic-%.run : basic-%$(EXEEXT) ${REPEAT}
    892         rm -f .result.log
    893         echo "------------------------------------------------------"
    894         echo $<
    895         ${REPEAT} ${repeats} ./a.out 500000000 | tee -a .result.log
    896         ${STATS} .result.log
    897         echo "------------------------------------------------------"
    898         rm -f a.out .result.log *.class
    899 
    900891@WITH_LIBFIBRE_TRUE@ctxswitch-kos_fibre$(EXEEXT):
    901892@WITH_LIBFIBRE_TRUE@    $(BENCH_V_CXX)$(CXXCOMPILE) -DBENCH_N=50000000 $(srcdir)/ctxswitch/kos_fibre.cpp  -I$(LIBFIBRE_DIR) -lfibre
     
    934925
    935926ctxswitch-nodejs_coroutine$(EXEEXT):
     927        echo "#!/bin/sh" > a.out
     928        echo "node $(srcdir)/ctxswitch/node_cor.js" >> a.out
     929        chmod a+x a.out
    936930
    937931ctxswitch-java_thread$(EXEEXT):
     
    940934        echo "java JavaThread" >> a.out
    941935        chmod a+x a.out
    942 
    943 ctxswitch-nodejs_coroutine.run : ctxswitch-nodejs_coroutine$(EXEEXT) ${REPEAT}
    944         rm -f .result.log
    945         echo "------------------------------------------------------"
    946         echo $<
    947         for (( i = 1; i <= ${repeats}; i += 1 )) ; do
    948                 node $(srcdir)/ctxswitch/node_cor.js 50000000 | tee -a .result.log
    949         done
    950         ${STATS} .result.log
    951         echo "------------------------------------------------------"
    952         rm -f a.out .result.log *.class
    953 
    954 ctxswitch-%.run : ctxswitch-%$(EXEEXT) ${REPEAT}
    955         rm -f .result.log
    956         echo "------------------------------------------------------"
    957         echo $<
    958         ${REPEAT} ${repeats} ./a.out 50000000 | tee -a .result.log
    959         ${STATS} .result.log
    960         echo "------------------------------------------------------"
    961         rm -f a.out .result.log *.class
    962936
    963937mutex$(EXEEXT) :                \
     
    972946
    973947mutex-pthread$(EXEEXT):
    974         $(BENCH_V_CC)$(COMPILE)     -DBENCH_N=50000000 $(srcdir)/mutex/pthreads.c
     948        $(BENCH_V_CC)$(COMPILE) $(srcdir)/mutex/pthreads.c
    975949
    976950mutex-upp$(EXEEXT):
    977         $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/upp.cc
     951        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/mutex/upp.cc
    978952
    979953mutex-cfa1$(EXEEXT):
    980         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa1.cfa
     954        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa1.cfa
    981955
    982956mutex-cfa2$(EXEEXT):
    983         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa2.cfa
     957        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa2.cfa
    984958
    985959mutex-cfa4$(EXEEXT):
    986         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/mutex/cfa4.cfa
     960        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/mutex/cfa4.cfa
    987961
    988962mutex-go$(EXEEXT):
     
    1008982
    1009983signal-pthread$(EXEEXT):
    1010         $(BENCH_V_CC)$(COMPILE)     -DBENCH_N=5000000  $(srcdir)/schedint/pthreads.c
     984        $(BENCH_V_CC)$(COMPILE) $(srcdir)/schedint/pthreads.c
    1011985
    1012986signal-upp$(EXEEXT):
    1013         $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/upp.cc
     987        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedint/upp.cc
    1014988
    1015989signal-cfa1$(EXEEXT):
    1016         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa1.cfa
     990        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa1.cfa
    1017991
    1018992signal-cfa2$(EXEEXT):
    1019         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa2.cfa
     993        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa2.cfa
    1020994
    1021995signal-cfa4$(EXEEXT):
    1022         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=50000000 $(srcdir)/schedint/cfa4.cfa
     996        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedint/cfa4.cfa
    1023997
    1024998signal-rust$(EXEEXT):
     
    10381012
    10391013waitfor-upp$(EXEEXT):
    1040         $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=5000000 $(srcdir)/schedext/upp.cc
     1014        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/schedext/upp.cc
    10411015
    10421016waitfor-cfa1$(EXEEXT):
    1043         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa1.cfa
     1017        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa1.cfa
    10441018
    10451019waitfor-cfa2$(EXEEXT):
    1046         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa2.cfa
     1020        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa2.cfa
    10471021
    10481022waitfor-cfa4$(EXEEXT):
    1049         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=500000  $(srcdir)/schedext/cfa4.cfa
     1023        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/schedext/cfa4.cfa
    10501024
    10511025creation$(EXEEXT) :                             \
     
    10611035
    10621036creation-cfa_coroutine$(EXEEXT):
    1063         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa
     1037        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa
    10641038
    10651039creation-cfa_coroutine_eager$(EXEEXT):
    1066         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_cor.cfa  -DEAGER
     1040        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_cor.cfa  -DEAGER
    10671041
    10681042creation-cfa_thread$(EXEEXT):
    1069         $(BENCH_V_CFA)$(CFACOMPILE) -DBENCH_N=10000000 $(srcdir)/creation/cfa_thrd.cfa
     1043        $(BENCH_V_CFA)$(CFACOMPILE) $(srcdir)/creation/cfa_thrd.cfa
    10701044
    10711045creation-upp_coroutine$(EXEEXT):
    1072         $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_cor.cc
     1046        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_cor.cc
    10731047
    10741048creation-upp_thread$(EXEEXT):
    1075         $(BENCH_V_UPP)$(UPPCOMPILE) -DBENCH_N=50000000 $(srcdir)/creation/upp_thrd.cc
     1049        $(BENCH_V_UPP)$(UPPCOMPILE) $(srcdir)/creation/upp_thrd.cc
    10761050
    10771051creation-pthread$(EXEEXT):
    1078         $(BENCH_V_CC)$(COMPILE) -DBENCH_N=250000 $(srcdir)/creation/pthreads.c
     1052        $(BENCH_V_CC)$(COMPILE) $(srcdir)/creation/pthreads.c
    10791053
    10801054creation-goroutine$(EXEEXT):
Note: See TracChangeset for help on using the changeset viewer.