浏览代码

* multiple fpc version support for shootout

git-svn-id: trunk@7494 -
peter 18 年之前
父节点
当前提交
b9a384ba08
共有 3 个文件被更改,包括 172 次插入0 次删除
  1. 1 0
      .gitattributes
  2. 15 0
      tests/bench/shootout/README.txt
  3. 156 0
      tests/bench/shootout/fpascal2.diff

+ 1 - 0
.gitattributes

@@ -5520,6 +5520,7 @@ tests/bench/drystone.pas svneol=native#text/plain
 tests/bench/pi.c -text
 tests/bench/pi.c -text
 tests/bench/pi.pp svneol=native#text/plain
 tests/bench/pi.pp svneol=native#text/plain
 tests/bench/shootout/README.txt svneol=native#text/plain
 tests/bench/shootout/README.txt svneol=native#text/plain
+tests/bench/shootout/fpascal2.diff svneol=native#text/plain
 tests/bench/shootout/io/binarytrees-output.txt svneol=native#text/plain
 tests/bench/shootout/io/binarytrees-output.txt svneol=native#text/plain
 tests/bench/shootout/io/knucleotide-output.txt svneol=native#text/plain
 tests/bench/shootout/io/knucleotide-output.txt svneol=native#text/plain
 tests/bench/shootout/io/moments.in -text
 tests/bench/shootout/io/moments.in -text

+ 15 - 0
tests/bench/shootout/README.txt

@@ -15,4 +15,19 @@ log       Logs from shootout tests on website.
 io        Input and expected output files for some tests.
 io        Input and expected output files for some tests.
 
 
 
 
+Files:
+fpascal2.diff   Patch for shootout CVS checkout to add a second FPC release for
+                comparison with 2 FPC versions
 
 
+Running shootout tip:
+
+If you want to run the tests for FPC and GCC don't forget to include a * in front of the name
+otherwise it will not newer revisions (called benchmark.lang-#.lang) of some benchmarks
+
+To run multiple languages use:
+
+make SELECT_LANGS='{*fpascal,*fpascal2,*gcc}' clean plot
+
+to run a single language don't use the { }:
+
+make SELECT_LANGS='*fpascal' clean plot

+ 156 - 0
tests/bench/shootout/fpascal2.diff

@@ -0,0 +1,156 @@
+Index: Make.header
+===================================================================
+RCS file: /cvsroot/shootout/shootout/Make.header,v
+retrieving revision 1.95
+diff -u -r1.95 Make.header
+--- Make.header	18 May 2007 03:09:48 -0000	1.95
++++ Make.header	28 May 2007 10:36:22 -0000
+@@ -26,6 +26,7 @@
+ ERLANG := /usr/bin/erl
+ FELIX := /usr/bin/flx
+ FPASCAL := /usr/bin/fpc
++FPASCAL2 := /usr/bin/fpc2
+ G95 := /usr/bin/g95
+ GFORTRAN := /usr/bin/gfortran
+ GAWK := /usr/bin/gawk
+@@ -113,7 +114,7 @@
+ XEMACS := /usr/bin/xemacs
+ 
+ LANGS := $(BASH) $(BIGLOO) $(CHICKEN) $(CIAOC) $(CLM) $(CMUCL) $(CURRY) $(CYCLONE) \
+-	 $(DLANG) $(ERLANG) $(FELIX) $(FPASCAL) $(G95) $(GFORTRAN) \
++	 $(DLANG) $(ERLANG) $(FELIX) $(FPASCAL) $(FPASCAL2) $(G95) $(GFORTRAN) \
+ 	 $(GAWK) $(GCC) $(GCL) $(GCJ) $(GFORTH) $(GHC) $(GPC) $(GST) $(GUILE) \
+ 	 $(GWYDION) $(GXX) $(HUGS) $(ICON) $(ICPP) $(IFC) $(IO) $(IRON) $(GIJ) \
+ 	 $(JAVA14) $(JAVA15) $(KAFFE) $(JAVASCRIPT) $(LUA) $(MAWK) $(MERCURY) \
+Index: Minibench.conf
+===================================================================
+RCS file: /cvsroot/shootout/shootout/Minibench.conf,v
+retrieving revision 1.101
+diff -u -r1.101 Minibench.conf
+--- Minibench.conf	18 May 2007 03:09:48 -0000	1.101
++++ Minibench.conf	28 May 2007 10:36:22 -0000
+@@ -6,7 +6,7 @@
+ tabdir       data
+ 
+ automake     bigloo,chicken,ciao,clean,cmucl,csharp,curry,cyc,dlang,erlang,
+-automake     felix,fpascal,g95,gpp,gcc,gcj,gcl,gfortran,ghc,gij,gnat,gpc,
++automake     felix,fpascal,fpascal2,g95,gpp,gcc,gcj,gcl,gfortran,ghc,gij,gnat,gpc,
+ automake     gprolog,gwydion,hipe,hugs,icc,icon,icpp,ifc,iron,java,java14,javaxint,
+ automake     javaclient,kaffe,mercury,mlton,mzscheme,mzc,
+ automake     nhc98,nice,objc,ocaml,ocamlb,ooc,oz,parrot,pike,poly,python,psyco,
+Index: langs.pl
+===================================================================
+RCS file: /cvsroot/shootout/shootout/langs.pl,v
+retrieving revision 1.100
+diff -u -r1.100 langs.pl
+--- langs.pl	1 May 2007 20:43:32 -0000	1.100
++++ langs.pl	28 May 2007 10:36:22 -0000
+@@ -932,6 +932,22 @@
+        },
+      },
+ 
++     fpascal2 =>
++     { Lang => 'Pascal2',
++       Name => 'Free Pascal',
++       Status => '+',
++       Home => 'http://www.freepascal.org',
++       Down => 'http://www.freepascal.org/download.html',
++       Type => 'native compiled',
++       Note => 'Structured programming plus objects',
++       Ext  => 'pas',
++       Verfun => sub {
++           my $ver = `$ENV{FPASCAL2} -i`;
++	   $ver =~ /(Free Pascal.*version [\d\.]+)/;
++	   return $1;
++       },
++     },
++
+      php =>
+      { Lang => 'PHP',
+        Home => 'http://www.php.net/',
+Index: bench/Makefile.mb
+===================================================================
+RCS file: /cvsroot/shootout/shootout/bench/Makefile.mb,v
+retrieving revision 1.148
+diff -u -r1.148 Makefile.mb
+--- bench/Makefile.mb	8 Apr 2007 06:17:43 -0000	1.148
++++ bench/Makefile.mb	28 May 2007 10:36:22 -0000
+@@ -23,6 +23,7 @@
+ DLANGOPTS := -O -inline -release $(DLANGOPTS)
+ FLXOPTS := -c --optimize --static
+ FPCOPTS := -XX -Xs -O3p3r -Fi../../Include/fpascal -Fu../../Include/fpascal -I../../Include/fpascal $(FPCOPTS)
++FPC2OPTS := -XX -Xs -O3 -Fi../../Include/fpascal -Fu../../Include/fpascal -I../../Include/fpascal $(FPC2OPTS)
+ G95OPTS := -pipe -Wall $(COPTS) $(G95OPTS)
+ GCCOPTS := -pipe -Wall $(COPTS) $(GCCOPTS)
+ GCJOPTS := $(COPTS) $(GCJOPTS)
+@@ -665,6 +666,15 @@
+ 	-mv FPASCAL_RUN $@
+ 	-@rm -f $*.o
+ 
++%.pas: $(MB_SRCDIR)/%.fpascal2 $(FPASCAL2)
++	-cp $< $@
++
++%.fpascal2_run: %.pas
++	-@rm -f $@ 
++	-$(FPASCAL2) $(FPC2OPTS) -oFPASCAL_RUN $<
++	-mv FPASCAL_RUN $@
++	-@rm -f $*.o
++
+ ########################################
+ # gpc (GNU Pascal Compiler)
+ ########################################
+Index: bench/hello/Minibench.conf
+===================================================================
+RCS file: /cvsroot/shootout/shootout/bench/hello/Minibench.conf,v
+retrieving revision 1.76
+diff -u -r1.76 Minibench.conf
+--- bench/hello/Minibench.conf	18 May 2007 03:09:48 -0000	1.76
++++ bench/hello/Minibench.conf	28 May 2007 10:36:23 -0000
+@@ -2,7 +2,7 @@
+ #
+ 
+ automake     bigloo,chicken,ciao,clean,cmucl,csharp,cyc,dlang,erlang,felix,
+-automake     fpascal,g95,gfortran,gpp,gcc,gcj,gcl,ghc,gij,gnat,gprolog,gwydion,hipe,hugs,
++automake     fpascal,fpascal2,g95,gfortran,gpp,gcc,gcj,gcl,ghc,gij,gnat,gprolog,gwydion,hipe,hugs,
+ automake     icon,icc,icpp,ifc,iron,java,java14,javaxint,javaclient,kaffe,mercury,
+ automake     mlton,mzc,nhc98,nice,oberon2,objc,ocaml,ocamlb,ooc,oz,parrot,pike,
+ automake     python,poly,psyco,rep,sablevm,sbcl,scala,se,smlnj,stalin,swiprolog,
+@@ -27,6 +27,7 @@
+ commandline  gwydion: repeat %A ./%X
+ commandline  felix: repeat %A %X
+ commandline  fpascal: repeat %A %X
++commandline  fpascal2: repeat %A %X
+ commandline  erlang: repeat %A $ERLANG $ERLFLAGS -noinput -run %T main
+ commandline  gawk: repeat %A $GAWK -f ../%X
+ commandline  g95: repeat %A %X
+Index: bench/lists/Minibench.conf
+===================================================================
+RCS file: /cvsroot/shootout/shootout/bench/lists/Minibench.conf,v
+retrieving revision 1.29
+diff -u -r1.29 Minibench.conf
+--- bench/lists/Minibench.conf	3 Nov 2006 15:16:11 -0000	1.29
++++ bench/lists/Minibench.conf	28 May 2007 10:36:23 -0000
+@@ -6,7 +6,7 @@
+ tabdir       data
+ 
+ automake     bigloo,chicken,ciao,clean,cmucl,csharp,curry,cyc,dlang,erlang,
+-automake     felix,fpascal,g95,gfortran,gpp,gcc,gcj,gcl,ghc,gij,gnat,gprolog,
++automake     felix,fpascal,fpascal2,g95,gfortran,gpp,gcc,gcj,gcl,ghc,gij,gnat,gprolog,
+ automake     gwydion,hipe,hugs,icon,icc,icpp,iron,java,java14,kaffe,mercury,mlton,
+ automake     mzc,nhc98,nice,oberon2,objc,ocaml,ocamlb,ooc,oz,poly,python,psyco,
+ automake     rep,sablevm,sbcl,scala,se,smlnj,stalin,tcc,xds,xemacs,njs
+Index: bin/make_links
+===================================================================
+RCS file: /cvsroot/shootout/shootout/bin/make_links,v
+retrieving revision 1.11
+diff -u -r1.11 make_links
+--- bin/make_links	6 Oct 2006 17:00:29 -0000	1.11
++++ bin/make_links	28 May 2007 10:36:24 -0000
+@@ -11,6 +11,7 @@
+ 
+    cmucl =>    [ 'sbcl', 'gcl' ],
+    erlang =>   [ 'hipe' ],
++   fpascal =>  [ 'fpascal2' ],
+    ghc =>      [ 'nhc98', 'hugs' ],
+    gcc =>      [ 'icc', 'tcc' ],
+    gpp =>      [ 'icpp' ],