Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • ghc/nofib
  • sgraf812/nofib
  • Abhiroop/nofib
  • ggreif/nofib
  • phadej/nofib
  • AndreasK/nofib
  • takenobu-hs/nofib
  • hsyl20/nofib
  • trac-matthewbauer/nofib
  • bgamari/nofib
  • trac-vdukhovni/nofib
  • cptwunderlich/nofib
  • alinab/nofib
  • fp/nofib
  • teo/nofib
15 results
Show changes
Commits on Source (33)
Showing
with 581 additions and 240 deletions
# Commit taken from https://gitlab.haskell.org/ghc/ci-images
variables:
DOCKER_REV: 853f348f9caf38b08740b280296fbd34e09abb3a
DOCKER_REV: f2d12519f45a13a61fcca03a949f927ceead6492
# Always start with a fresh clone to avoid non-hermetic builds
GIT_STRATEGY: clone
.validate-hadrian:
image: "registry.gitlab.haskell.org/ghc/ci-images/x86_64-linux-deb10:$DOCKER_REV"
tags:
- x86_64-linux
before_script:
- sudo chown ghc:ghc -R .
- git clean -xdf
- $GHC --version
- cabal --version
......
......@@ -423,6 +423,11 @@ sorting
~~~~~~~
Same issue with GHC.IO.Encoding.UTF8 as treejoin
life
~~~~
The call to zipWith3 in row is quite close to the inlining threshold.
Makes a difference of about 2% last time it flipped.
---------------------------------------
Real suite
......
......@@ -32,6 +32,7 @@ gen = SamplerGen
instance StatefulGen Gen (SamplerM s) where
uniformWord64 _ = SamplerM $ StateT $ pure . genWord64
uniformShortByteString = undefined
uniformByteArrayM = undefined
runSamplerM
:: Word64 -> (forall s. SamplerM s a) -> a
......
......@@ -275,9 +275,9 @@ environment).
> main :: IO ()
> main = do
> (n:_) <- getArgs
> input <- unlines <$> words <$> getContents
> replicateM_ (read n) $ do
> (_:argv) <- getArgs
> parse_args defaultEnv (unlines argv)
> parse_args defaultEnv input
\end{haskell}
......
......@@ -3,12 +3,6 @@ include $(TOP)/mk/boilerplate.mk
include $(TOP)/mk/target.mk
ARGS = -a Int -b Float -c Foo -d Bar -e Double \
-f String -g String -h Int -j Double -k Bool -n Basil -p Knob -q Wizzle \
-r Wissle -s Wibble -u Widdle -A Int -B Float -C Foo -D Bar -E Double \
-F String -G String -H Int -I Float -J Double -K Bool -L Bool -M Buzzle \
-N Basil -P Knob -Q Wizzle -R Wissle -S Wibble -T Widdle
FAST_OPTS = 200 $(ARGS)
NORM_OPTS = 2000 $(ARGS)
SLOW_OPTS = 10000 $(ARGS)
FAST_OPTS = 350
NORM_OPTS = 3800
SLOW_OPTS = 18000
-a Int
-b Float
-c Foo
-d Bar
-e Double
-f String
-g String
-h Int
-i Double
-j Double
-k Bool
-l Int
-m Foo
-n Basil
-o Float
-p Knob
-q Wizzle
-r Wissle
-s Wibble
-t Foobar
-u Widdle
-A Int
-B Float
-C Foo
-D Bar
-E Double
-F String
-G String
-H Int
-I Float
-J Double
-K Bool
-L Bool
-M Buzzle
-N Basil
-P Knob
-Q Wizzle
-R Wissle
-S Wibble
-T Widdle
-X Int
......@@ -7,8 +7,10 @@ import System.Environment
import NofibUtils
main = do
(iters:_) <- getArgs
let n = read iters :: Int
input <- getContents
replicateM_ 100 $ do
replicateM_ n $ do
input' <- salt input
print (hash (encrypt 2036450659413645137870851576872812267542175329986469156678671505255564383842535488743101632280716717779536712424613501441720195827856504007305662157107
387784473137902876992546516170169092918207676456888779623592396031349415024943784869634893342729620092877891356118467738167515879252473323905128540213
......
......@@ -3,3 +3,7 @@ include $(TOP)/mk/boilerplate.mk
-include opts.mk
include $(TOP)/mk/target.mk
FAST_OPTS = 100
NORM_OPTS = 150
SLOW_OPTS = 250
......@@ -5,3 +5,9 @@ where
encrypt, decrypt :: Integer -> Integer -> String -> String
encrypt n e = unlines . map (show . power e n . code) . collect (size n)
decrypt n d = concat . map (decode . power d n . read) . lines
-------- Converting between Strings and Integers -----------
code :: String -> Integer
code = foldl accum 0
where accum x y = (128 * x) + fromIntegral (fromEnum y)
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
7070291556905191903
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
18864594872723566
......@@ -98,3 +98,153 @@
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
5782777958546550349
......@@ -69,3 +69,69 @@ sqr x = x * x
This module imports the contents of Densematrix and exports some of the
functions renaming many of them for use by Matrix. The original %include
statement(from Matrix) is left as a comment at the foot of this file.
\begin{code}
module AbsDensematrix(Block,Vec,bmult,bvecmult,vecbmult,vecdot,vecnorm,
vecouter,badd,bsub,vecadd,vecsub,bsize,vecsize,bneg,
bxpose,bident,vecneg,svecmult,mkblock,bswaprow,bswapcol,
bdroprow,bgetrow,bgetcol,bsubscript,vecsubscript,bupdate,
vecupdate,vechd,vectl,mergevecs,binverse,showblock,
showvec, mkvec,mkrvec,vecpart,update2,veclist,matlist)
where
import Densematrix
type Block = Matrix
type Vec = Vector
bmult = mmult
bvecmult = matvecmult
vecbmult = vmmult
vecdot = vdot
vecnorm = norm
vecouter = vouter
badd = madd
bsub = msub
vecadd = vadd
vecsub = vsub
bsize = msize
vecsize = vsize
bneg = mneg
bxpose = mxpose
bident = mident
vecneg = vneg
svecmult = svmult
mkblock = mkmat
bswaprow = swaprow
bswapcol = swapcol
bdroprow = droprow
bgetrow = getrow
bgetcol = getcol
bsubscript = subscript
vecsubscript = vsubscript
bupdate = update
vecupdate = vupdate
vechd = vhd
vectl = vtl
mergevecs = mergevectors
binverse = minverse
showblock = showmatrix
showvec = displayvector
\end{code}
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
-8068683040965007191
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
815920302423014274
module Parse(parse_circuit, parse_exact, parse_approx, parse_integer) where
import Data.Char
import Data.List
import Data.List hiding (List)
import Data.Maybe
import Data.Ratio
......
106985.997119
......@@ -384,7 +384,7 @@ constructor (SG sg) i j k
{- Datatype elimination -}
recurse tmL (TM (tm@(Binder Pi (Symbol_dec tm1 _) _ _ _)) _ sg)
= if forall ok (zip tmL tyL)
= if vforall ok (zip tmL tyL)
then
TM (Recurse (map fst tmL) tm [] []) tm sg
else
......@@ -407,10 +407,10 @@ widen (TM tm1 tm2 sg1) (TH (Binary' Issubtype tm3 tm4 _ _) sg2)
then
TM (add_type tm1 tm4) tm4 sg1
else
TM_Err "widen: error"
TM_Err "widen: error"
widen _ _ = TM_Err "widen: error (2)"
......@@ -515,7 +515,7 @@ get_Sgn_att (SG sg) = get_sgn_att sg
{- Set the attributes of a signature -}
set_Sgn_att (SG sg) att = (SG (set_sgn_att sg att))
......@@ -523,7 +523,7 @@ set_Sgn_att (SG sg) att = (SG (set_sgn_att sg att))
{- Return the internal representation of a signature -}
internal_Sgn (SG sg) = sg
......@@ -548,7 +548,7 @@ symbol_dec (TM tm1 tm2 sg)
{- declare a new axiom -}
axiom_dec (TM tm (Constant Bool' _ _) sg)
......@@ -570,7 +570,7 @@ def (TM tm1 tm2 sg)
make_data tmLL (TH tm sg)
= if forall (forall (wf_param sg1)) tmLL
= if vforall (vforall (wf_param sg1)) tmLL
then
if exists (eq_trm tm) non_empty_thms
then
......@@ -647,7 +647,7 @@ set_Dec_att (DC dc sg) att
internal_Dec (DC dc sg) = (dc,sg)
......@@ -816,7 +816,7 @@ beta_rw (TH tm sg) i
{- Eta reduce a subterm of a theorem -}
{- Eta reduce a subterm of a theorem -}
eta_rw (TH tm sg) i
= case select_trm tm i of
......@@ -998,7 +998,7 @@ eq_of_ty _ _ = TH_Err "eq_of_ty error (2)"
from (TM tm1 (Binder Subtype dc tm2 _ _) sg)
= TH (subst_trm dc tm2 tm1) sg
from _ = TH_Err "from: argument must be term of subtype sort"
......@@ -1035,7 +1035,7 @@ weaken (SG sg1) (TH tm sg2)
set_Thm_att (TH tm sg) iL att
= TH (set_trm_att tm iL att) sg
......@@ -1050,7 +1050,7 @@ get_Thm_att (TH tm sg) iL
{- Restore a theorem from the database -}
restore_Thm s = error "BadTheorem" -- ** exn
......@@ -1167,8 +1167,8 @@ write_obj magic_str type_str obj file
| NONE => (write (sgn_dir ^ anon_sgn_name_header ^ name) sgn_rep;
anon_sgn_name_header ^ name)
end
val a_chr = fromEnum "a"
and z_chr = fromEnum "z"
and A_chr = fromEnum "A"
......@@ -1193,7 +1193,7 @@ write_obj magic_str type_str obj file
(ch = minus_chr) orelse
(ch = underline_chr) orelse
(ch = dot_cht)
in forall ok_ch (map fromEnum (explode name)) end
in vforall ok_ch (map fromEnum (explode name)) end
in (* local *)
......@@ -1306,7 +1306,7 @@ typ_of_Thm ( TH tm sg )
shift_Trm i (SG sg1) (TM tm1 tm2 sg2)
= if eq_sgn sg2 sg3
then TM (shift_trm sm i tm1) (shift_trm sm i tm2) sg1
else TM_Err "shift_Trm: signatures unequal"
else TM_Err "shift_Trm: signatures unequal"
where
sg3 = nth_sgn i sg1
sm = get_share_map sg2
......
......@@ -107,7 +107,7 @@ goto_next tr@(TreeSt t _ _)
incomplete_tree (Tree _ tl (SOME _) _ _ ) = False
incomplete_tree (Tree _ tl NONE _ _ ) = forall is_complete tl
incomplete_tree (Tree _ tl NONE _ _ ) = vforall is_complete tl
......
......@@ -6,7 +6,7 @@
*
* Each constructors last argument (of the tuple) is a list of
* information attributes that the parser, unparsers, tactics etc use.
*
*
* Each terms' next to last argument is a list of alternative types the the
* term can have to its natutal type.
*
......@@ -246,9 +246,9 @@ eval (Constant T _ _) = True
eval (Constant F _ _) = False
--eval (Constant _ _ _) = error "EvalError" -- ** exn
eval (Binder Forall dc tm _ _)
= eval_quant forall dc tm
= eval_quant vforall dc tm
eval (Binder Exists dc tm _ _)
= eval_quant exists dc tm
......
module Vtslib( Option(..) , Sum(..) , forall , exists , assoc ,
module Vtslib( Option(..) , Sum(..) , vforall , exists , assoc ,
haskey , uncurry , curry , for , map' , module Core_datatype )
where
import Core_datatype
data Option a = NONE | SOME a
......@@ -11,12 +11,12 @@ data Sum a b = Inl a | Inr b
{-
(* Apply the predicate p to all the elements of *)
(* a list, and then AND the results together. *)
N.B. forall & exists rewritten from ML
N.B. vforall & exists rewritten from ML
-}
forall :: ( a -> Bool ) -> [a] -> Bool
vforall :: ( a -> Bool ) -> [a] -> Bool
forall p = and . ( map p )
vforall p = and . ( map p )
......@@ -74,7 +74,7 @@ haskey key al
let fun fold e [] = e
| fold e (a::l) = fold (f a e) l
in fold end
fun foldr f e =
let fun fold [] = e
| fold (a::l) = f a (fold l)
......
......@@ -50,6 +50,23 @@ A number of classes of metrics are collected:
allocations) from the execution of `ghc` while compiling the testcase
* runtime system statistics from the execution of the testcase
### Running a subset of tests
Individual tests or groups of tests can be run by pointing the runner to their location.
To benchmark only spectral simple we would add `spectral/simple` to the command line. A full cmd line will then
look like this:
`cabal run nofib-run -- -w /opt/ghc-9.0.1/bin/ghc spectral/simple -o_simple`
Multiple benchmarks can be passed this way as well. For example to run the `simple` and `dom-lt` benchmarks we might use:
`cabal run nofib-run -- -w /opt/ghc-9.0.1/bin/ghc spectral/simple -o_simple spectral/dom-lt/`
We can also pass a folder to the runner, which will then run all benchmarks within the folder. E.g. to run all the spectral benchmarks we would use:
`cabal run nofib-run -- -w /opt/ghc-9.0.1/bin/ghc -o_simple spectral/`
### Cachegrind
The benchmarks can also be run under valgrind's
......