timberc 1.0.2 → 1.0.3
raw patch · 63 files changed
+11029/−10315 lines, 63 files
Files
- LICENSE +1/−1
- dist/build/timberc/timberc-tmp/Parser.hs +3330/−3316
- examples/Makefile +3/−4
- include/arrays.c +1/−1
- include/float.c +1/−1
- include/timber.c +5/−1
- include/timber.h +27/−3
- lib/ARM.t +26/−0
- lib/BitOps.t +1/−1
- lib/Data.Functional.List.t +1/−1
- lib/Data.Objects.Dictionary.t +2/−8
- lib/Data.Objects.Stack.t +1/−1
- lib/POSIX.t +1/−1
- lib/Prelude.t +38/−26
- lib/RandomGenerator.t +1/−1
- rtsPOSIX/Makefile.in +2/−4
- rtsPOSIX/config.h.in +3/−0
- rtsPOSIX/configure +6408/−6118
- rtsPOSIX/cyclic.c +16/−16
- rtsPOSIX/env.c +25/−10
- rtsPOSIX/env.h +0/−46
- rtsPOSIX/gc.c +31/−27
- rtsPOSIX/main.c +7/−14
- rtsPOSIX/rts.c +96/−42
- rtsPOSIX/rts.h +5/−13
- rtsPOSIX/timberc.cfg.in +1/−0
- rtsPOSIX/timer.c +186/−184
- src/Common.hs +17/−9
- src/Config.hs +15/−11
- src/Core.hs +62/−27
- src/Core2Kindle.hs +159/−95
- src/Decls.hs +1/−1
- src/Depend.hs +3/−2
- src/Derive.hs +1/−1
- src/Desugar1.hs +17/−5
- src/Desugar2.hs +11/−11
- src/Env.hs +12/−12
- src/Execution.hs +2/−2
- src/Fixity.hs +1/−1
- src/Interfaces.hs +8/−7
- src/Kind.hs +1/−1
- src/Kindle.hs +47/−27
- src/Kindle2C.hs +26/−5
- src/Kindlered.hs +54/−4
- src/Lambdalift.hs +5/−3
- src/Lexer.hs +2/−2
- src/Main.hs +34/−12
- src/Match.hs +1/−1
- src/Name.hs +22/−8
- src/PP.hs +1/−1
- src/ParseMonad.hs +2/−2
- src/Parser.y +9/−6
- src/Prepare4C.hs +92/−85
- src/Reduce.hs +30/−13
- src/Rename.hs +5/−3
- src/Syntax.hs +6/−11
- src/Syntax2Core.hs +1/−1
- src/Termred.hs +73/−20
- src/Token.hs +2/−4
- src/Type.hs +13/−13
- src/Type2.hs +55/−58
- timberc.cabal +2/−2
- timberc.spec +18/−9
LICENSE view
@@ -1,6 +1,6 @@ The Timber compiler <timber-lang.org> -Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> All rights reserved. Redistribution and use in source and binary forms, with or without
dist/build/timberc/timberc-tmp/Parser.hs view
@@ -134,3322 +134,3336 @@ happyOut21 :: (HappyAbsSyn ) -> ([Constr]) happyOut21 x = unsafeCoerce# x {-# INLINE happyOut21 #-}-happyIn22 :: ([Sig]) -> (HappyAbsSyn )-happyIn22 x = unsafeCoerce# x-{-# INLINE happyIn22 #-}-happyOut22 :: (HappyAbsSyn ) -> ([Sig])-happyOut22 x = unsafeCoerce# x-{-# INLINE happyOut22 #-}-happyIn23 :: ([Sig]) -> (HappyAbsSyn )-happyIn23 x = unsafeCoerce# x-{-# INLINE happyIn23 #-}-happyOut23 :: (HappyAbsSyn ) -> ([Sig])-happyOut23 x = unsafeCoerce# x-{-# INLINE happyOut23 #-}-happyIn24 :: ([Sig]) -> (HappyAbsSyn )-happyIn24 x = unsafeCoerce# x-{-# INLINE happyIn24 #-}-happyOut24 :: (HappyAbsSyn ) -> ([Sig])-happyOut24 x = unsafeCoerce# x-{-# INLINE happyOut24 #-}-happyIn25 :: ([Sig]) -> (HappyAbsSyn )-happyIn25 x = unsafeCoerce# x-{-# INLINE happyIn25 #-}-happyOut25 :: (HappyAbsSyn ) -> ([Sig])-happyOut25 x = unsafeCoerce# x-{-# INLINE happyOut25 #-}-happyIn26 :: (Sig) -> (HappyAbsSyn )-happyIn26 x = unsafeCoerce# x-{-# INLINE happyIn26 #-}-happyOut26 :: (HappyAbsSyn ) -> (Sig)-happyOut26 x = unsafeCoerce# x-{-# INLINE happyOut26 #-}-happyIn27 :: ([Bind]) -> (HappyAbsSyn )-happyIn27 x = unsafeCoerce# x-{-# INLINE happyIn27 #-}-happyOut27 :: (HappyAbsSyn ) -> ([Bind])-happyOut27 x = unsafeCoerce# x-{-# INLINE happyOut27 #-}-happyIn28 :: ([Bind]) -> (HappyAbsSyn )-happyIn28 x = unsafeCoerce# x-{-# INLINE happyIn28 #-}-happyOut28 :: (HappyAbsSyn ) -> ([Bind])-happyOut28 x = unsafeCoerce# x-{-# INLINE happyOut28 #-}-happyIn29 :: (Bind) -> (HappyAbsSyn )-happyIn29 x = unsafeCoerce# x-{-# INLINE happyIn29 #-}-happyOut29 :: (HappyAbsSyn ) -> (Bind)-happyOut29 x = unsafeCoerce# x-{-# INLINE happyOut29 #-}-happyIn30 :: ([Field]) -> (HappyAbsSyn )-happyIn30 x = unsafeCoerce# x-{-# INLINE happyIn30 #-}-happyOut30 :: (HappyAbsSyn ) -> ([Field])-happyOut30 x = unsafeCoerce# x-{-# INLINE happyOut30 #-}-happyIn31 :: (Field) -> (HappyAbsSyn )-happyIn31 x = unsafeCoerce# x-{-# INLINE happyIn31 #-}-happyOut31 :: (HappyAbsSyn ) -> (Field)-happyOut31 x = unsafeCoerce# x-{-# INLINE happyOut31 #-}-happyIn32 :: ([Name]) -> (HappyAbsSyn )-happyIn32 x = unsafeCoerce# x-{-# INLINE happyIn32 #-}-happyOut32 :: (HappyAbsSyn ) -> ([Name])-happyOut32 x = unsafeCoerce# x-{-# INLINE happyOut32 #-}-happyIn33 :: (Lhs) -> (HappyAbsSyn )-happyIn33 x = unsafeCoerce# x-{-# INLINE happyIn33 #-}-happyOut33 :: (HappyAbsSyn ) -> (Lhs)-happyOut33 x = unsafeCoerce# x-{-# INLINE happyOut33 #-}-happyIn34 :: (Rhs Exp) -> (HappyAbsSyn )-happyIn34 x = unsafeCoerce# x-{-# INLINE happyIn34 #-}-happyOut34 :: (HappyAbsSyn ) -> (Rhs Exp)-happyOut34 x = unsafeCoerce# x-{-# INLINE happyOut34 #-}-happyIn35 :: ([GExp Exp]) -> (HappyAbsSyn )-happyIn35 x = unsafeCoerce# x-{-# INLINE happyIn35 #-}-happyOut35 :: (HappyAbsSyn ) -> ([GExp Exp])-happyOut35 x = unsafeCoerce# x-{-# INLINE happyOut35 #-}-happyIn36 :: (GExp Exp) -> (HappyAbsSyn )-happyIn36 x = unsafeCoerce# x-{-# INLINE happyIn36 #-}-happyOut36 :: (HappyAbsSyn ) -> (GExp Exp)-happyOut36 x = unsafeCoerce# x-{-# INLINE happyOut36 #-}-happyIn37 :: (Type) -> (HappyAbsSyn )-happyIn37 x = unsafeCoerce# x-{-# INLINE happyIn37 #-}-happyOut37 :: (HappyAbsSyn ) -> (Type)-happyOut37 x = unsafeCoerce# x-{-# INLINE happyOut37 #-}-happyIn38 :: (Type) -> (HappyAbsSyn )-happyIn38 x = unsafeCoerce# x-{-# INLINE happyIn38 #-}-happyOut38 :: (HappyAbsSyn ) -> (Type)-happyOut38 x = unsafeCoerce# x-{-# INLINE happyOut38 #-}-happyIn39 :: ([Type]) -> (HappyAbsSyn )-happyIn39 x = unsafeCoerce# x-{-# INLINE happyIn39 #-}-happyOut39 :: (HappyAbsSyn ) -> ([Type])-happyOut39 x = unsafeCoerce# x-{-# INLINE happyOut39 #-}-happyIn40 :: (Type) -> (HappyAbsSyn )-happyIn40 x = unsafeCoerce# x-{-# INLINE happyIn40 #-}-happyOut40 :: (HappyAbsSyn ) -> (Type)-happyOut40 x = unsafeCoerce# x-{-# INLINE happyOut40 #-}-happyIn41 :: (Type) -> (HappyAbsSyn )-happyIn41 x = unsafeCoerce# x-{-# INLINE happyIn41 #-}-happyOut41 :: (HappyAbsSyn ) -> (Type)-happyOut41 x = unsafeCoerce# x-{-# INLINE happyOut41 #-}-happyIn42 :: ([Type]) -> (HappyAbsSyn )-happyIn42 x = unsafeCoerce# x-{-# INLINE happyIn42 #-}-happyOut42 :: (HappyAbsSyn ) -> ([Type])-happyOut42 x = unsafeCoerce# x-{-# INLINE happyOut42 #-}-happyIn43 :: (Int) -> (HappyAbsSyn )-happyIn43 x = unsafeCoerce# x-{-# INLINE happyIn43 #-}-happyOut43 :: (HappyAbsSyn ) -> (Int)-happyOut43 x = unsafeCoerce# x-{-# INLINE happyOut43 #-}-happyIn44 :: ([Pred]) -> (HappyAbsSyn )-happyIn44 x = unsafeCoerce# x-{-# INLINE happyIn44 #-}-happyOut44 :: (HappyAbsSyn ) -> ([Pred])-happyOut44 x = unsafeCoerce# x-{-# INLINE happyOut44 #-}-happyIn45 :: (Pred) -> (HappyAbsSyn )-happyIn45 x = unsafeCoerce# x-{-# INLINE happyIn45 #-}-happyOut45 :: (HappyAbsSyn ) -> (Pred)-happyOut45 x = unsafeCoerce# x-{-# INLINE happyOut45 #-}-happyIn46 :: (Kind) -> (HappyAbsSyn )-happyIn46 x = unsafeCoerce# x-{-# INLINE happyIn46 #-}-happyOut46 :: (HappyAbsSyn ) -> (Kind)-happyOut46 x = unsafeCoerce# x-{-# INLINE happyOut46 #-}-happyIn47 :: (Kind) -> (HappyAbsSyn )-happyIn47 x = unsafeCoerce# x-{-# INLINE happyIn47 #-}-happyOut47 :: (HappyAbsSyn ) -> (Kind)-happyOut47 x = unsafeCoerce# x-{-# INLINE happyOut47 #-}-happyIn48 :: (Exp) -> (HappyAbsSyn )-happyIn48 x = unsafeCoerce# x-{-# INLINE happyIn48 #-}-happyOut48 :: (HappyAbsSyn ) -> (Exp)-happyOut48 x = unsafeCoerce# x-{-# INLINE happyOut48 #-}-happyIn49 :: (Exp) -> (HappyAbsSyn )-happyIn49 x = unsafeCoerce# x-{-# INLINE happyIn49 #-}-happyOut49 :: (HappyAbsSyn ) -> (Exp)-happyOut49 x = unsafeCoerce# x-{-# INLINE happyOut49 #-}-happyIn50 :: (Exp) -> (HappyAbsSyn )-happyIn50 x = unsafeCoerce# x-{-# INLINE happyIn50 #-}-happyOut50 :: (HappyAbsSyn ) -> (Exp)-happyOut50 x = unsafeCoerce# x-{-# INLINE happyOut50 #-}-happyIn51 :: (Exp) -> (HappyAbsSyn )-happyIn51 x = unsafeCoerce# x-{-# INLINE happyIn51 #-}-happyOut51 :: (HappyAbsSyn ) -> (Exp)-happyOut51 x = unsafeCoerce# x-{-# INLINE happyOut51 #-}-happyIn52 :: (OpExp) -> (HappyAbsSyn )-happyIn52 x = unsafeCoerce# x-{-# INLINE happyIn52 #-}-happyOut52 :: (HappyAbsSyn ) -> (OpExp)-happyOut52 x = unsafeCoerce# x-{-# INLINE happyOut52 #-}-happyIn53 :: (OpExp) -> (HappyAbsSyn )-happyIn53 x = unsafeCoerce# x-{-# INLINE happyIn53 #-}-happyOut53 :: (HappyAbsSyn ) -> (OpExp)-happyOut53 x = unsafeCoerce# x-{-# INLINE happyOut53 #-}-happyIn54 :: (Exp) -> (HappyAbsSyn )-happyIn54 x = unsafeCoerce# x-{-# INLINE happyIn54 #-}-happyOut54 :: (HappyAbsSyn ) -> (Exp)-happyOut54 x = unsafeCoerce# x-{-# INLINE happyOut54 #-}-happyIn55 :: (Exp) -> (HappyAbsSyn )-happyIn55 x = unsafeCoerce# x-{-# INLINE happyIn55 #-}-happyOut55 :: (HappyAbsSyn ) -> (Exp)-happyOut55 x = unsafeCoerce# x-{-# INLINE happyOut55 #-}-happyIn56 :: (Exp) -> (HappyAbsSyn )-happyIn56 x = unsafeCoerce# x-{-# INLINE happyIn56 #-}-happyOut56 :: (HappyAbsSyn ) -> (Exp)-happyOut56 x = unsafeCoerce# x-{-# INLINE happyOut56 #-}-happyIn57 :: (Exp) -> (HappyAbsSyn )-happyIn57 x = unsafeCoerce# x-{-# INLINE happyIn57 #-}-happyOut57 :: (HappyAbsSyn ) -> (Exp)-happyOut57 x = unsafeCoerce# x-{-# INLINE happyOut57 #-}-happyIn58 :: (Exp) -> (HappyAbsSyn )-happyIn58 x = unsafeCoerce# x-{-# INLINE happyIn58 #-}-happyOut58 :: (HappyAbsSyn ) -> (Exp)-happyOut58 x = unsafeCoerce# x-{-# INLINE happyOut58 #-}-happyIn59 :: (Exp) -> (HappyAbsSyn )-happyIn59 x = unsafeCoerce# x-{-# INLINE happyIn59 #-}-happyOut59 :: (HappyAbsSyn ) -> (Exp)-happyOut59 x = unsafeCoerce# x-{-# INLINE happyOut59 #-}-happyIn60 :: (Exp) -> (HappyAbsSyn )-happyIn60 x = unsafeCoerce# x-{-# INLINE happyIn60 #-}-happyOut60 :: (HappyAbsSyn ) -> (Exp)-happyOut60 x = unsafeCoerce# x-{-# INLINE happyOut60 #-}-happyIn61 :: (Lit) -> (HappyAbsSyn )-happyIn61 x = unsafeCoerce# x-{-# INLINE happyIn61 #-}-happyOut61 :: (HappyAbsSyn ) -> (Lit)-happyOut61 x = unsafeCoerce# x-{-# INLINE happyOut61 #-}-happyIn62 :: (Exp) -> (HappyAbsSyn )-happyIn62 x = unsafeCoerce# x-{-# INLINE happyIn62 #-}-happyOut62 :: (HappyAbsSyn ) -> (Exp)-happyOut62 x = unsafeCoerce# x-{-# INLINE happyOut62 #-}-happyIn63 :: ([Exp]) -> (HappyAbsSyn )-happyIn63 x = unsafeCoerce# x-{-# INLINE happyIn63 #-}-happyOut63 :: (HappyAbsSyn ) -> ([Exp])-happyOut63 x = unsafeCoerce# x-{-# INLINE happyOut63 #-}-happyIn64 :: ([Qual]) -> (HappyAbsSyn )-happyIn64 x = unsafeCoerce# x-{-# INLINE happyIn64 #-}-happyOut64 :: (HappyAbsSyn ) -> ([Qual])-happyOut64 x = unsafeCoerce# x-{-# INLINE happyOut64 #-}-happyIn65 :: (Qual) -> (HappyAbsSyn )-happyIn65 x = unsafeCoerce# x-{-# INLINE happyIn65 #-}-happyOut65 :: (HappyAbsSyn ) -> (Qual)-happyOut65 x = unsafeCoerce# x-{-# INLINE happyOut65 #-}-happyIn66 :: ([Alt Exp]) -> (HappyAbsSyn )-happyIn66 x = unsafeCoerce# x-{-# INLINE happyIn66 #-}-happyOut66 :: (HappyAbsSyn ) -> ([Alt Exp])-happyOut66 x = unsafeCoerce# x-{-# INLINE happyOut66 #-}-happyIn67 :: ([Alt Exp]) -> (HappyAbsSyn )-happyIn67 x = unsafeCoerce# x-{-# INLINE happyIn67 #-}-happyOut67 :: (HappyAbsSyn ) -> ([Alt Exp])-happyOut67 x = unsafeCoerce# x-{-# INLINE happyOut67 #-}-happyIn68 :: (Alt Exp) -> (HappyAbsSyn )-happyIn68 x = unsafeCoerce# x-{-# INLINE happyIn68 #-}-happyOut68 :: (HappyAbsSyn ) -> (Alt Exp)-happyOut68 x = unsafeCoerce# x-{-# INLINE happyOut68 #-}-happyIn69 :: (Rhs Exp) -> (HappyAbsSyn )-happyIn69 x = unsafeCoerce# x-{-# INLINE happyIn69 #-}-happyOut69 :: (HappyAbsSyn ) -> (Rhs Exp)-happyOut69 x = unsafeCoerce# x-{-# INLINE happyOut69 #-}-happyIn70 :: ([GExp Exp]) -> (HappyAbsSyn )-happyIn70 x = unsafeCoerce# x-{-# INLINE happyIn70 #-}-happyOut70 :: (HappyAbsSyn ) -> ([GExp Exp])-happyOut70 x = unsafeCoerce# x-{-# INLINE happyOut70 #-}-happyIn71 :: (GExp Exp) -> (HappyAbsSyn )-happyIn71 x = unsafeCoerce# x-{-# INLINE happyIn71 #-}-happyOut71 :: (HappyAbsSyn ) -> (GExp Exp)-happyOut71 x = unsafeCoerce# x-{-# INLINE happyOut71 #-}-happyIn72 :: ([Alt [Stmt]]) -> (HappyAbsSyn )-happyIn72 x = unsafeCoerce# x-{-# INLINE happyIn72 #-}-happyOut72 :: (HappyAbsSyn ) -> ([Alt [Stmt]])-happyOut72 x = unsafeCoerce# x-{-# INLINE happyOut72 #-}-happyIn73 :: ([Alt [Stmt]]) -> (HappyAbsSyn )-happyIn73 x = unsafeCoerce# x-{-# INLINE happyIn73 #-}-happyOut73 :: (HappyAbsSyn ) -> ([Alt [Stmt]])-happyOut73 x = unsafeCoerce# x-{-# INLINE happyOut73 #-}-happyIn74 :: (Alt [Stmt]) -> (HappyAbsSyn )-happyIn74 x = unsafeCoerce# x-{-# INLINE happyIn74 #-}-happyOut74 :: (HappyAbsSyn ) -> (Alt [Stmt])-happyOut74 x = unsafeCoerce# x-{-# INLINE happyOut74 #-}-happyIn75 :: (Rhs [Stmt]) -> (HappyAbsSyn )-happyIn75 x = unsafeCoerce# x-{-# INLINE happyIn75 #-}-happyOut75 :: (HappyAbsSyn ) -> (Rhs [Stmt])-happyOut75 x = unsafeCoerce# x-{-# INLINE happyOut75 #-}-happyIn76 :: ([GExp [Stmt]]) -> (HappyAbsSyn )-happyIn76 x = unsafeCoerce# x-{-# INLINE happyIn76 #-}-happyOut76 :: (HappyAbsSyn ) -> ([GExp [Stmt]])-happyOut76 x = unsafeCoerce# x-{-# INLINE happyOut76 #-}-happyIn77 :: (GExp [Stmt]) -> (HappyAbsSyn )-happyIn77 x = unsafeCoerce# x-{-# INLINE happyIn77 #-}-happyOut77 :: (HappyAbsSyn ) -> (GExp [Stmt])-happyOut77 x = unsafeCoerce# x-{-# INLINE happyOut77 #-}-happyIn78 :: ([Stmt]) -> (HappyAbsSyn )-happyIn78 x = unsafeCoerce# x-{-# INLINE happyIn78 #-}-happyOut78 :: (HappyAbsSyn ) -> ([Stmt])-happyOut78 x = unsafeCoerce# x-{-# INLINE happyOut78 #-}-happyIn79 :: ([Stmt]) -> (HappyAbsSyn )-happyIn79 x = unsafeCoerce# x-{-# INLINE happyIn79 #-}-happyOut79 :: (HappyAbsSyn ) -> ([Stmt])-happyOut79 x = unsafeCoerce# x-{-# INLINE happyOut79 #-}-happyIn80 :: ([Stmt]) -> (HappyAbsSyn )-happyIn80 x = unsafeCoerce# x-{-# INLINE happyIn80 #-}-happyOut80 :: (HappyAbsSyn ) -> ([Stmt])-happyOut80 x = unsafeCoerce# x-{-# INLINE happyOut80 #-}-happyIn81 :: (Stmt) -> (HappyAbsSyn )-happyIn81 x = unsafeCoerce# x-{-# INLINE happyIn81 #-}-happyOut81 :: (HappyAbsSyn ) -> (Stmt)-happyOut81 x = unsafeCoerce# x-{-# INLINE happyOut81 #-}-happyIn82 :: (Exp) -> (HappyAbsSyn )-happyIn82 x = unsafeCoerce# x-{-# INLINE happyIn82 #-}-happyOut82 :: (HappyAbsSyn ) -> (Exp)-happyOut82 x = unsafeCoerce# x-{-# INLINE happyOut82 #-}-happyIn83 :: (Exp) -> (HappyAbsSyn )-happyIn83 x = unsafeCoerce# x-{-# INLINE happyIn83 #-}-happyOut83 :: (HappyAbsSyn ) -> (Exp)-happyOut83 x = unsafeCoerce# x-{-# INLINE happyOut83 #-}-happyIn84 :: (Exp) -> (HappyAbsSyn )-happyIn84 x = unsafeCoerce# x-{-# INLINE happyIn84 #-}-happyOut84 :: (HappyAbsSyn ) -> (Exp)-happyOut84 x = unsafeCoerce# x-{-# INLINE happyOut84 #-}-happyIn85 :: (Exp) -> (HappyAbsSyn )-happyIn85 x = unsafeCoerce# x-{-# INLINE happyIn85 #-}-happyOut85 :: (HappyAbsSyn ) -> (Exp)-happyOut85 x = unsafeCoerce# x-{-# INLINE happyOut85 #-}-happyIn86 :: (OpExp) -> (HappyAbsSyn )-happyIn86 x = unsafeCoerce# x-{-# INLINE happyIn86 #-}-happyOut86 :: (HappyAbsSyn ) -> (OpExp)-happyOut86 x = unsafeCoerce# x-{-# INLINE happyOut86 #-}-happyIn87 :: (OpExp) -> (HappyAbsSyn )-happyIn87 x = unsafeCoerce# x-{-# INLINE happyIn87 #-}-happyOut87 :: (HappyAbsSyn ) -> (OpExp)-happyOut87 x = unsafeCoerce# x-{-# INLINE happyOut87 #-}-happyIn88 :: (Pat) -> (HappyAbsSyn )-happyIn88 x = unsafeCoerce# x-{-# INLINE happyIn88 #-}-happyOut88 :: (HappyAbsSyn ) -> (Pat)-happyOut88 x = unsafeCoerce# x-{-# INLINE happyOut88 #-}-happyIn89 :: ([Pat]) -> (HappyAbsSyn )-happyIn89 x = unsafeCoerce# x-{-# INLINE happyIn89 #-}-happyOut89 :: (HappyAbsSyn ) -> ([Pat])-happyOut89 x = unsafeCoerce# x-{-# INLINE happyOut89 #-}-happyIn90 :: (Pat) -> (HappyAbsSyn )-happyIn90 x = unsafeCoerce# x-{-# INLINE happyIn90 #-}-happyOut90 :: (HappyAbsSyn ) -> (Pat)-happyOut90 x = unsafeCoerce# x-{-# INLINE happyOut90 #-}-happyIn91 :: (Name) -> (HappyAbsSyn )-happyIn91 x = unsafeCoerce# x-{-# INLINE happyIn91 #-}-happyOut91 :: (HappyAbsSyn ) -> (Name)-happyOut91 x = unsafeCoerce# x-{-# INLINE happyOut91 #-}-happyIn92 :: (Name) -> (HappyAbsSyn )-happyIn92 x = unsafeCoerce# x-{-# INLINE happyIn92 #-}-happyOut92 :: (HappyAbsSyn ) -> (Name)-happyOut92 x = unsafeCoerce# x-{-# INLINE happyOut92 #-}-happyIn93 :: (Name) -> (HappyAbsSyn )-happyIn93 x = unsafeCoerce# x-{-# INLINE happyIn93 #-}-happyOut93 :: (HappyAbsSyn ) -> (Name)-happyOut93 x = unsafeCoerce# x-{-# INLINE happyOut93 #-}-happyIn94 :: (Name) -> (HappyAbsSyn )-happyIn94 x = unsafeCoerce# x-{-# INLINE happyIn94 #-}-happyOut94 :: (HappyAbsSyn ) -> (Name)-happyOut94 x = unsafeCoerce# x-{-# INLINE happyOut94 #-}-happyIn95 :: (Name) -> (HappyAbsSyn )-happyIn95 x = unsafeCoerce# x-{-# INLINE happyIn95 #-}-happyOut95 :: (HappyAbsSyn ) -> (Name)-happyOut95 x = unsafeCoerce# x-{-# INLINE happyOut95 #-}-happyIn96 :: (Name) -> (HappyAbsSyn )-happyIn96 x = unsafeCoerce# x-{-# INLINE happyIn96 #-}-happyOut96 :: (HappyAbsSyn ) -> (Name)-happyOut96 x = unsafeCoerce# x-{-# INLINE happyOut96 #-}-happyIn97 :: (Name) -> (HappyAbsSyn )-happyIn97 x = unsafeCoerce# x-{-# INLINE happyIn97 #-}-happyOut97 :: (HappyAbsSyn ) -> (Name)-happyOut97 x = unsafeCoerce# x-{-# INLINE happyOut97 #-}-happyIn98 :: (Name) -> (HappyAbsSyn )-happyIn98 x = unsafeCoerce# x-{-# INLINE happyIn98 #-}-happyOut98 :: (HappyAbsSyn ) -> (Name)-happyOut98 x = unsafeCoerce# x-{-# INLINE happyOut98 #-}-happyIn99 :: (Name) -> (HappyAbsSyn )-happyIn99 x = unsafeCoerce# x-{-# INLINE happyIn99 #-}-happyOut99 :: (HappyAbsSyn ) -> (Name)-happyOut99 x = unsafeCoerce# x-{-# INLINE happyOut99 #-}-happyIn100 :: (Name) -> (HappyAbsSyn )-happyIn100 x = unsafeCoerce# x-{-# INLINE happyIn100 #-}-happyOut100 :: (HappyAbsSyn ) -> (Name)-happyOut100 x = unsafeCoerce# x-{-# INLINE happyOut100 #-}-happyIn101 :: (Name) -> (HappyAbsSyn )-happyIn101 x = unsafeCoerce# x-{-# INLINE happyIn101 #-}-happyOut101 :: (HappyAbsSyn ) -> (Name)-happyOut101 x = unsafeCoerce# x-{-# INLINE happyOut101 #-}-happyIn102 :: ((String,String)) -> (HappyAbsSyn )-happyIn102 x = unsafeCoerce# x-{-# INLINE happyIn102 #-}-happyOut102 :: (HappyAbsSyn ) -> ((String,String))-happyOut102 x = unsafeCoerce# x-{-# INLINE happyOut102 #-}-happyIn103 :: ((String,String)) -> (HappyAbsSyn )-happyIn103 x = unsafeCoerce# x-{-# INLINE happyIn103 #-}-happyOut103 :: (HappyAbsSyn ) -> ((String,String))-happyOut103 x = unsafeCoerce# x-{-# INLINE happyOut103 #-}-happyIn104 :: (()) -> (HappyAbsSyn )-happyIn104 x = unsafeCoerce# x-{-# INLINE happyIn104 #-}-happyOut104 :: (HappyAbsSyn ) -> (())-happyOut104 x = unsafeCoerce# x-{-# INLINE happyOut104 #-}-happyIn105 :: (()) -> (HappyAbsSyn )-happyIn105 x = unsafeCoerce# x-{-# INLINE happyIn105 #-}-happyOut105 :: (HappyAbsSyn ) -> (())-happyOut105 x = unsafeCoerce# x-{-# INLINE happyOut105 #-}-happyIn106 :: (()) -> (HappyAbsSyn )-happyIn106 x = unsafeCoerce# x-{-# INLINE happyIn106 #-}-happyOut106 :: (HappyAbsSyn ) -> (())-happyOut106 x = unsafeCoerce# x-{-# INLINE happyOut106 #-}-happyIn107 :: ((Int,Int)) -> (HappyAbsSyn )-happyIn107 x = unsafeCoerce# x-{-# INLINE happyIn107 #-}-happyOut107 :: (HappyAbsSyn ) -> ((Int,Int))-happyOut107 x = unsafeCoerce# x-{-# INLINE happyOut107 #-}-happyInTok :: (Token) -> (HappyAbsSyn )-happyInTok x = unsafeCoerce# x-{-# INLINE happyInTok #-}-happyOutTok :: (HappyAbsSyn ) -> (Token)-happyOutTok x = unsafeCoerce# x-{-# INLINE happyOutTok #-}---happyActOffsets :: HappyAddr-happyActOffsets = HappyA# "\xbe\x04\xbe\x04\x00\x00\xaf\x04\xae\x04\xe7\x04\x00\x00\xda\x04\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x06\xd9\x04\xbc\x01\x00\x00\x4f\x02\x31\x03\xd0\x01\x00\x00\x39\x07\xcb\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x01\x00\x00\x35\x02\xd4\x04\x00\x00\xc8\x04\x88\x01\xb7\x03\x1c\x07\xf1\x07\x00\x00\x06\x03\x06\x03\x06\x03\x00\x00\xd1\x04\x00\x00\xd3\x04\xcd\x04\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x06\xb6\x02\x00\x00\xc7\x04\x00\x00\x00\x00\x0f\x00\x2d\x01\x00\x00\x00\x00\xab\x04\x12\x0b\x00\x00\xbd\x04\xb5\x04\xb1\x04\x00\x00\x9e\x01\x00\x00\x00\x00\xbb\x04\x00\x00\x00\x00\xd5\x07\x00\x00\x00\x00\x00\x00\x66\x03\xd5\x07\x84\x04\x08\x01\x00\x00\x6d\x01\x00\x00\x81\x04\x00\x00\xd0\x01\x00\x00\xd0\x01\x00\x00\x00\x00\x00\x00\x86\x04\x83\x04\x2f\x0b\x00\x00\x0d\x08\x0d\x08\x89\x04\x0a\x03\xa2\x02\x53\x0b\xa1\x02\x00\x00\x06\x03\x88\x04\x7e\x04\x00\x00\x7a\x04\x91\x07\x24\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x74\x04\x74\x04\x74\x04\x74\x04\xa2\x01\x00\x00\x00\x00\x00\x00\xff\x0a\x00\x00\x00\x00\x00\x00\x7b\x04\x00\x00\x00\x00\x6d\x04\x5b\x04\xf7\x0a\x3a\x04\x52\x04\x00\x00\x0d\x08\xec\x0a\x37\x04\xbd\x02\x0e\x04\x00\x00\xed\x06\x00\x00\x00\x00\x00\x00\x00\x00\x32\x04\x00\x00\x20\x04\x14\x04\xe9\x02\x00\x00\x00\x00\x00\x00\x7c\x03\xf6\x02\x00\x00\x00\x00\x2f\x04\x36\x02\x00\x00\x21\x04\x1f\x04\x1d\x04\x00\x00\x00\x00\x1d\x04\x00\x00\x00\x00\xb7\x03\x00\x00\x16\x04\x15\x04\x00\x00\x00\x00\x00\x00\xb7\x03\x10\x01\x00\x00\x02\x04\x00\x00\xa2\x01\x00\x00\x00\x00\x57\x03\x00\x00\x00\x00\x00\x00\x00\x00\x11\x04\x05\x04\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x02\x00\x00\x0d\x08\x47\x0a\x00\x00\x0d\x08\x00\x00\x00\x00\x00\x00\xb3\x03\xe4\x03\x76\x02\x00\x00\x6f\x0a\x4c\x0a\xbd\x02\x0d\x08\x0d\x08\xec\x0a\x00\x00\x0d\x08\x00\x00\x00\x00\x81\x02\xd6\x03\x58\x01\x00\x00\x0b\x00\xbd\x02\x00\x00\xda\x0a\x48\x01\x00\x00\xfe\x01\x95\x02\x0d\x08\x1c\x00\xcf\x03\x09\x00\xb5\x03\x00\x00\xac\x03\x00\x00\xbd\x02\xd7\x03\xbd\x02\x00\x00\xa9\x03\x00\x00\xa4\x03\xbd\x02\x00\x00\xda\x0a\x93\x02\x00\x00\x7d\x00\xd3\x03\xbd\x02\x00\x00\xd3\x03\x59\x02\xc6\x03\xbd\x02\x00\x00\xc7\x03\x00\x00\xc0\x03\xeb\x01\x00\x00\x00\x00\x2f\x0b\x00\x00\x00\x00\x2f\x0b\x3b\x02\x00\x00\xb6\x03\x00\x00\xc8\x03\x0d\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\x06\xb8\x01\x49\x02\x81\x00\xc4\x03\x00\x00\x00\x00\x58\x02\xe4\x01\x0d\x08\xc5\x03\x0d\x08\xcf\x0a\x0d\x08\x0d\x08\x0d\x08\xbf\x03\xa2\x01\x32\x00\x00\x00\xbb\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9b\x03\xc7\x0a\xb4\x0a\x0d\x08\xb1\x03\x00\x00\xb9\x03\xcd\x00\xec\x01\xa6\x00\xb8\x03\x8d\x01\x00\x00\x00\x00\xbd\x02\xbd\x02\xbd\x02\x00\x00\xed\x06\x00\x00\xed\x06\x37\x01\x00\x00\xae\x03\x00\x00\xa6\x03\xeb\x01\xeb\x01\x00\x00\x00\x00\xbd\x02\xbd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\x00\x7f\x03\x00\x00\x00\x00\x6b\x03\x00\x00\x59\x03\x38\x00\x52\x03\x00\x00\x58\x03\x0d\x08\x0d\x08\xab\x06\x00\x00\x4a\x03\xb6\x07\xbd\x02\x75\x03\x5b\x03\x00\x00\xb2\x0a\x00\x00\x0d\x08\x00\x00\x72\x03\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x08\x00\x00\x61\x03\x00\x00\xbd\x02\x00\x00\x00\x00\x00\x00\x00\x00\x41\x03\x68\x03\x00\x00\x00\x00\x00\x00\x00\x00\x67\x03\x00\x00\x00\x00\x14\x00\x00\x00\x00\x00\x5e\x03\x00\x00\xd8\x01\x81\x00\x5c\x03\x00\x00\xa3\x01\x00\x00\x00\x00\x00\x00\x4b\x03\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x0a\x1e\x01\x00\x00\x00\x00\xf9\x01\x0d\x08\x00\x00\x00\x00\x0d\x08\x00\x00\x00\x00\x00\x00\x4f\x03\x40\x03\x40\x03\x40\x03\x40\x03\x00\x00\x39\x03\x00\x00\x00\x00\xa2\x01\xbd\x02\x00\x00\x9a\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2\x0a\x00\x00\x00\x00\x00\x00\xfc\x02\xf9\x02\x00\x00\x9f\x0a\x0d\x08\x00\x00\x97\x0a\x61\x01\xbd\x02\xbd\x02\x21\x03\x00\x00\x0b\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb5\x00\x00\x00\x04\x03\x97\x0a\x04\x01\x00\x00\xfc\x00\xc7\x02\xee\x02\x00\x00\x8c\x0a\xe8\x02\x00\x00\x74\x0a\x74\x00\x00\x00\x0d\x08\x00\x00\x00\x00\x00\x00\x00\x00\x95\x00\x00\x00\xdf\x02\x00\x00\xd9\x02\x00\x00\x00\x00"#--happyGotoOffsets :: HappyAddr-happyGotoOffsets = HappyA# "\xe6\x02\x00\x00\xb7\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xcb\x02\x80\x02\xc2\x02\x37\x00\x00\x00\x3d\x02\x00\x00\x00\x00\x3e\x03\x73\x04\x00\x00\xf4\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x30\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xdc\x09\xf4\x02\x0e\x03\x00\x00\x43\x09\x6e\x09\x98\x08\xb3\x01\x05\x00\x65\x01\x1b\x00\x1a\x00\x40\x01\xbb\xff\xfc\xff\xb7\xff\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x02\x00\x00\xaa\x02\x8d\x02\x00\x00\x26\x01\x2e\x02\x00\x00\x00\x00\x00\x00\x00\x00\xf8\x01\x00\x00\x00\x00\x36\x00\x2d\x02\x7d\x02\x46\x06\x00\x00\x00\x00\x00\x00\x00\x00\x38\x06\x00\x00\xea\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1b\x04\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x07\x20\x02\x2a\x06\xee\x05\x19\x00\x00\x00\x00\x00\xc3\x03\x00\x00\x00\x00\xaf\x06\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x77\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xce\x01\x59\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x7f\x00\x7b\x00\x73\x00\x72\x00\x23\x02\x13\x02\x00\x00\x00\x00\xd2\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0a\x01\xe9\x00\x00\x00\xc5\x08\x00\x00\x64\x02\x00\x00\xe0\x05\x30\x09\x8c\x00\x85\x02\x77\x02\x00\x00\xd4\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\x00\x00\x00\x00\x00\x00\xe2\xff\x00\x00\x00\x00\x00\x00\x3f\x01\x7b\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x18\x00\x00\x00\x00\x00\x17\x00\x00\x00\x00\x00\x6b\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x11\x08\xb9\x00\x00\x00\x00\x00\x00\x00\x15\x02\x00\x00\x00\x00\xbd\x01\xf4\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa7\x02\x00\x00\xd2\x05\x6d\x07\x00\x00\x96\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb1\x00\x00\x00\x6d\x07\x37\x07\xb7\x02\x88\x05\x7a\x05\x1f\x09\x00\x00\x3e\x05\x00\x00\x00\x00\x0a\x00\x1d\x00\xd2\x01\x00\x00\x00\x00\x6a\x02\x9d\x01\x1c\x01\xca\x01\x00\x00\x00\x00\x18\x03\x30\x05\x02\x00\x94\x00\xfb\xff\x29\x02\x00\x00\xf3\x01\x00\x00\x0e\x02\xf9\xff\x5a\x02\x00\x00\xee\x01\x00\x00\x00\x00\x4d\x02\x00\x00\x63\x01\x00\x00\x00\x00\x15\x03\xc1\xff\x3c\x02\x00\x00\x39\x00\x00\x00\xed\x01\x04\x02\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\x00\x00\x00\x00\x2d\x07\x00\x00\x00\x00\x23\x07\x00\x00\x00\x00\x00\x00\x00\x00\xd3\xff\x22\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x90\x01\x00\x00\x12\x03\x28\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe6\x04\x62\x00\xd8\x04\xf2\x08\xca\x04\x8e\x04\x80\x04\x00\x00\xc0\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc8\x09\x9b\x09\x72\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x96\x02\x89\x02\x9b\x02\x00\x00\xa7\x00\xf1\x00\x6f\x00\xe0\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\xff\xe2\xff\x00\x00\x00\x00\xb3\x02\xde\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x36\x04\x28\x04\xea\x01\x00\x00\x00\x00\x1a\x04\x32\x02\x00\x00\x00\x00\x00\x00\xe1\x08\xdc\x00\xde\x03\x00\x00\x3a\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd0\x03\x00\x00\x00\x00\x00\x00\x8e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x16\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xff\x00\x00\x00\x00\xd3\x00\xaf\x00\x00\x00\x00\x00\x00\x00\xbb\x00\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb4\x08\x6e\x00\x00\x00\x00\x00\x8e\x01\xc2\x03\x00\x00\x00\x00\x86\x03\x00\x00\x00\x00\x00\x00\xd5\xff\x52\x00\x50\x00\xdc\xff\xd9\xff\x00\x00\x00\x00\x00\x00\x00\x00\xd2\x00\xa9\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x87\x08\x54\x00\x00\x00\x00\x00\x00\x00\x22\x00\x00\x00\x5a\x08\x78\x03\x00\x00\x8a\x09\x00\x00\x22\x02\x29\x01\x8d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x2d\x08\xe6\xff\x00\x00\x4e\x02\x00\x00\x49\x00\x00\x00\x00\x08\xcd\xff\x00\x00\x5d\x09\x00\x00\x00\x00\x6a\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x0d\x00\x00\x00\xc4\xff\x00\x00\x00\x00"#--happyDefActions :: HappyAddr-happyDefActions = HappyA# "\x00\x00\x00\x00\xf1\xfe\x00\x00\x00\x00\x00\x00\xff\xfe\xf2\xfe\xfe\xff\xf6\xff\xf3\xfe\xf6\xff\xf1\xfe\x00\x00\x00\x00\xf2\xff\x00\x00\x00\x00\x20\xff\x1e\xff\x75\xff\x6d\xff\x6b\xff\x67\xff\xba\xff\x23\xff\x22\xff\x21\xff\x1f\xff\x6a\xff\x68\xff\x0f\xff\x0d\xff\x00\x00\xf1\xfe\xf1\xfe\xf1\xfe\x69\xff\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf2\xfe\xf1\xfe\xf1\xfe\xf2\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x00\x00\xf4\xff\xeb\xff\xd9\xff\x05\xff\x04\xff\x00\x00\xdb\xff\xdb\xff\x00\x00\xf1\xfe\xf3\xfe\xe7\xff\x00\x00\x05\xff\x04\xff\x00\x00\xf5\xff\xe6\xff\xf1\xfe\xf3\xfe\xdb\xff\xf1\xfe\x6a\xff\x68\xff\x0d\xff\x00\x00\xf1\xfe\x10\xff\xf1\xfe\x11\xff\x59\xff\x94\xff\x92\xff\x91\xff\x90\xff\x8e\xff\x8f\xff\x7f\xff\x8d\xff\x73\xff\x00\x00\x58\xff\xf1\xfe\xf3\xfe\xf1\xfe\xf1\xfe\xf2\xfe\x00\x00\x00\x00\xf1\xfe\x00\x00\x01\xff\xf1\xfe\x00\x00\x09\xff\xfe\xfe\x03\xff\x00\x00\xf1\xfe\xf9\xfe\xf8\xfe\xf7\xfe\xfa\xfe\x66\xff\x9f\xff\xf1\xfe\xf1\xfe\xf6\xfe\x1b\xff\x16\xff\x00\xff\x5e\xff\x5d\xff\x5c\xff\x5b\xff\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\x00\x00\xf3\xfe\x07\xff\x06\xff\xf1\xfe\x0b\xff\x09\xff\xfc\xfe\x00\x00\xfb\xfe\xf1\xfe\xf1\xfe\x6e\xff\xf1\xfe\xe4\xff\xb8\xff\xb5\xff\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xfa\xff\xf4\xfe\xf1\xfe\xf5\xfe\xf7\xff\xf3\xff\xfc\xff\xf2\xfe\xe5\xff\xb2\xff\xb1\xff\xae\xff\xac\xff\xab\xff\xaa\xff\xf1\xfe\xf1\xfe\xa9\xff\xbc\xff\x00\x00\x00\x00\x51\xff\x4f\xff\x00\x00\xf2\xfe\xb9\xff\xb6\xff\xf2\xfe\x19\xff\x14\xff\xf1\xfe\x6c\xff\x00\x00\x00\x00\xfd\xfe\x1c\xff\x17\xff\xf1\xfe\xf1\xfe\xf1\xff\x99\xff\x98\xff\x00\x00\x97\xff\x7b\xff\x34\xff\xf3\xfe\x7e\xff\x7d\xff\x7c\xff\x00\x00\x00\x00\x8a\xff\x85\xff\x0c\xff\x0e\xff\xf1\xfe\x63\xff\xf1\xfe\xf1\xfe\x64\xff\xf1\xfe\x5f\xff\xa0\xff\x93\xff\x00\x00\x00\x00\xf1\xfe\x62\xff\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x12\xff\xf1\xfe\x70\xff\x6f\xff\xdd\xff\xf1\xfe\x00\x00\xd5\xff\x00\x00\xf1\xfe\xf1\xfe\xf1\xfe\x00\x00\xc2\xff\x00\x00\x00\x00\xf1\xfe\xe0\xff\xf1\xfe\xf1\xfe\xfa\xff\xfd\xff\xcd\xff\xdc\xff\xf1\xfe\xf2\xfe\xf1\xfe\xe1\xff\xcd\xff\x71\xff\xc0\xff\xf1\xfe\xc4\xff\xf1\xfe\x00\x00\xda\xff\xea\xff\xf1\xfe\xf1\xfe\xd7\xff\xf1\xfe\x00\x00\xd1\xff\xf1\xfe\x72\xff\x55\xff\x57\xff\x53\xff\x95\xff\x8b\xff\x86\xff\xf1\xfe\x88\xff\x83\xff\xf1\xfe\x00\x00\xbe\xff\x00\x00\x80\xff\xf2\xfe\xf1\xfe\x53\xff\x61\xff\x54\xff\x60\xff\x02\xff\x65\xff\xf1\xfe\x00\x00\x00\x00\x00\x00\x35\xff\x32\xff\x30\xff\x24\xff\x00\x00\xf1\xfe\xf2\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x00\x00\x00\x00\x00\x00\x76\xff\x00\x00\x1d\xff\x18\xff\x08\xff\x0a\xff\x1a\xff\x15\xff\xb7\xff\x4e\xff\xf1\xfe\xf1\xfe\xf1\xfe\x00\x00\xa8\xff\x00\x00\xb2\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa6\xff\xad\xff\xf1\xfe\xf1\xfe\xf1\xfe\xfb\xff\xf1\xfe\xf3\xfe\xf1\xfe\x00\x00\x9c\xff\xb3\xff\x9d\xff\xaa\xff\xaf\xff\xb0\xff\xa7\xff\xa4\xff\xf1\xfe\xf1\xfe\xa5\xff\xa3\xff\xb4\xff\x52\xff\x50\xff\x77\xff\x7a\xff\xf1\xfe\x00\x00\x9a\xff\x96\xff\x00\x00\x2b\xff\x00\x00\x00\x00\x00\x00\x27\xff\x00\x00\xf1\xfe\xf1\xfe\xf1\xfe\x36\xff\x2e\xff\xf1\xfe\xf1\xfe\x00\x00\x00\x00\x82\xff\xf1\xfe\xf3\xfe\xf1\xfe\x81\xff\xf1\xfe\x89\xff\x84\xff\x8c\xff\x87\xff\xf1\xfe\xde\xff\xdf\xff\xef\xff\xf1\xfe\xd8\xff\xd6\xff\xd3\xff\xd4\xff\xe8\xff\xf2\xfe\xc5\xff\xc3\xff\xc1\xff\xee\xff\xf2\xfe\xf0\xff\xec\xff\xc9\xff\xf3\xfe\xe2\xff\xe3\xff\xed\xff\xf1\xfe\x00\x00\xca\xff\xc7\xff\x00\x00\xbb\xff\xce\xff\xe9\xff\xd2\xff\xcf\xff\x56\xff\xbf\xff\xbd\xff\xf1\xfe\x00\x00\x4a\xff\x13\xff\x00\x00\xf1\xfe\x37\xff\x2f\xff\xf1\xfe\x33\xff\x31\xff\x2c\xff\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\xf2\xfe\x79\xff\x00\x00\xa1\xff\xa2\xff\x00\x00\xf1\xfe\xf8\xff\x00\x00\xf9\xff\x9e\xff\x9b\xff\x78\xff\x26\xff\x29\xff\x2a\xff\x28\xff\x25\xff\xf1\xfe\xf3\xfe\x2d\xff\x74\xff\x49\xff\x47\xff\x44\xff\xf1\xfe\xf1\xfe\x4c\xff\xf1\xfe\x00\x00\xf1\xfe\xf1\xfe\xf1\xfe\xcb\xff\x00\x00\xcc\xff\xc8\xff\xc6\xff\xd0\xff\x4d\xff\x4b\xff\x48\xff\x00\x00\x45\xff\xf2\xfe\xf1\xfe\x00\x00\x3f\xff\x00\x00\x3e\xff\x3c\xff\x39\xff\xf1\xfe\xf2\xfe\x41\xff\xf1\xfe\x00\x00\x46\xff\xf1\xfe\x43\xff\x42\xff\x40\xff\x3d\xff\x00\x00\x3a\xff\xf2\xfe\x3b\xff\xf2\xfe\x38\xff"#--happyCheck :: HappyAddr-happyCheck = HappyA# "\xff\xff\x03\x00\x01\x00\x08\x00\x05\x00\x06\x00\x07\x00\x25\x00\x0c\x00\x13\x00\x08\x00\x09\x00\x13\x00\x04\x00\x4a\x00\x04\x00\x01\x00\x3e\x00\x0d\x00\x04\x00\x0a\x00\x01\x00\x5f\x00\x4a\x00\x57\x00\x44\x00\x5f\x00\x1c\x00\x1d\x00\x01\x00\x67\x00\x5e\x00\x04\x00\x0d\x00\x67\x00\x4a\x00\x17\x00\x1a\x00\x4a\x00\x0c\x00\x67\x00\x17\x00\x66\x00\x0e\x00\x0f\x00\x17\x00\x17\x00\x17\x00\x17\x00\x17\x00\x33\x00\x66\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x66\x00\x58\x00\x66\x00\x05\x00\x06\x00\x07\x00\x66\x00\x5e\x00\x5f\x00\x66\x00\x11\x00\x0e\x00\x0f\x00\x3d\x00\x15\x00\x0f\x00\x67\x00\x64\x00\x19\x00\x3d\x00\x15\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x1c\x00\x1d\x00\x1b\x00\x57\x00\x58\x00\x5c\x00\x5e\x00\x5e\x00\x5f\x00\x66\x00\x5e\x00\x5f\x00\x66\x00\x5e\x00\x29\x00\x67\x00\x67\x00\x66\x00\x43\x00\x67\x00\x66\x00\x5e\x00\x67\x00\x33\x00\x66\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x66\x00\x57\x00\x06\x00\x07\x00\x5c\x00\x66\x00\x5e\x00\x5f\x00\x5e\x00\x66\x00\x66\x00\x66\x00\x66\x00\x66\x00\x00\x00\x67\x00\x0f\x00\x67\x00\x11\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x1c\x00\x1d\x00\x57\x00\x57\x00\x58\x00\x57\x00\x57\x00\x49\x00\x12\x00\x5e\x00\x5e\x00\x5f\x00\x5e\x00\x5e\x00\x1c\x00\x4a\x00\x1e\x00\x4a\x00\x67\x00\x67\x00\x11\x00\x67\x00\x67\x00\x33\x00\x16\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1c\x00\x15\x00\x0d\x00\x4a\x00\x06\x00\x07\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x0e\x00\x20\x00\x66\x00\x19\x00\x66\x00\x65\x00\x3d\x00\x15\x00\x4a\x00\x4a\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x1c\x00\x1d\x00\x4a\x00\x57\x00\x58\x00\x66\x00\x4a\x00\x15\x00\x1a\x00\x1b\x00\x5e\x00\x5f\x00\x14\x00\x15\x00\x16\x00\x64\x00\x1a\x00\x1b\x00\x20\x00\x67\x00\x1c\x00\x66\x00\x66\x00\x33\x00\x07\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x66\x00\x15\x00\x57\x00\x57\x00\x66\x00\x58\x00\x14\x00\x15\x00\x16\x00\x5e\x00\x5e\x00\x5e\x00\x5f\x00\x21\x00\x1c\x00\x1c\x00\x1d\x00\x5e\x00\x67\x00\x67\x00\x67\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x67\x00\x2a\x00\x2b\x00\x57\x00\x58\x00\x22\x00\x23\x00\x24\x00\x25\x00\x00\x00\x5e\x00\x5f\x00\x33\x00\x57\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x5e\x00\x57\x00\x64\x00\x57\x00\x0f\x00\x65\x00\x0d\x00\x12\x00\x5e\x00\x67\x00\x5e\x00\x1e\x00\x13\x00\x20\x00\x0d\x00\x00\x00\x17\x00\x67\x00\x11\x00\x67\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x20\x00\x19\x00\x57\x00\x57\x00\x58\x00\x0f\x00\x01\x00\x02\x00\x12\x00\x5e\x00\x5e\x00\x5f\x00\x18\x00\x19\x00\x58\x00\x00\x00\x1c\x00\x1d\x00\x67\x00\x67\x00\x5e\x00\x5f\x00\x18\x00\x19\x00\x57\x00\x65\x00\x1c\x00\x1d\x00\x64\x00\x67\x00\x0f\x00\x5e\x00\x00\x00\x12\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x33\x00\x67\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x65\x00\x0f\x00\x00\x00\x33\x00\x12\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x0f\x00\x5e\x00\x5f\x00\x12\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x0f\x00\x67\x00\x11\x00\x57\x00\x58\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x5e\x00\x5f\x00\x19\x00\x57\x00\x58\x00\x1c\x00\x1d\x00\x58\x00\x15\x00\x67\x00\x5e\x00\x5f\x00\x19\x00\x5e\x00\x5f\x00\x01\x00\x02\x00\x1e\x00\x64\x00\x67\x00\x01\x00\x02\x00\x67\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x08\x00\x33\x00\x58\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x5e\x00\x5f\x00\x5f\x00\x61\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x67\x00\x67\x00\x06\x00\x0f\x00\x22\x00\x11\x00\x1c\x00\x1d\x00\x26\x00\x0d\x00\x57\x00\x29\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x5e\x00\x15\x00\x17\x00\x57\x00\x58\x00\x00\x00\x1a\x00\x36\x00\x21\x00\x67\x00\x5e\x00\x5f\x00\x33\x00\x5f\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x0f\x00\x67\x00\x15\x00\x12\x00\x41\x00\x42\x00\x43\x00\x1a\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x1c\x00\x1d\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x0d\x00\x16\x00\x57\x00\x58\x00\x11\x00\x2a\x00\x2b\x00\x01\x00\x02\x00\x5e\x00\x5f\x00\x33\x00\x21\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x0d\x00\x5c\x00\x0e\x00\x5e\x00\x5f\x00\x10\x00\x13\x00\x1b\x00\x12\x00\x15\x00\x17\x00\x1f\x00\x67\x00\x12\x00\x1c\x00\x1d\x00\x4b\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x5f\x00\x15\x00\x57\x00\x58\x00\x5f\x00\x1e\x00\x1a\x00\x20\x00\x67\x00\x5e\x00\x5f\x00\x33\x00\x67\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x02\x00\x5e\x00\x5f\x00\x64\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x67\x00\x64\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x2a\x00\x2b\x00\x57\x00\x58\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x15\x00\x15\x00\x11\x00\x2a\x00\x2b\x00\x1a\x00\x15\x00\x67\x00\x1c\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x60\x00\x65\x00\x62\x00\x63\x00\x58\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x15\x00\x1c\x00\x58\x00\x1e\x00\x0f\x00\x1a\x00\x11\x00\x67\x00\x5e\x00\x5f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x1b\x00\x1c\x00\x67\x00\x1e\x00\x1f\x00\x65\x00\x02\x00\x58\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x01\x00\x0d\x00\x20\x00\x65\x00\x05\x00\x11\x00\x0b\x00\x67\x00\x58\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x65\x00\x65\x00\x58\x00\x47\x00\x48\x00\x49\x00\x0b\x00\x67\x00\x5e\x00\x5f\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x64\x00\x0f\x00\x67\x00\x11\x00\x58\x00\x21\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x24\x00\x25\x00\x0e\x00\x0e\x00\x1c\x00\x58\x00\x1e\x00\x67\x00\x0b\x00\x15\x00\x15\x00\x5e\x00\x5f\x00\x24\x00\x25\x00\x0b\x00\x22\x00\x23\x00\x24\x00\x25\x00\x67\x00\x58\x00\x28\x00\x29\x00\x0f\x00\x04\x00\x11\x00\x5e\x00\x5f\x00\x0d\x00\x22\x00\x23\x00\x24\x00\x25\x00\x04\x00\x13\x00\x67\x00\x29\x00\x58\x00\x17\x00\x22\x00\x23\x00\x24\x00\x25\x00\x5e\x00\x5f\x00\x24\x00\x25\x00\x58\x00\x37\x00\x38\x00\x39\x00\x58\x00\x67\x00\x5e\x00\x5f\x00\x65\x00\x00\x00\x5e\x00\x5f\x00\x10\x00\x01\x00\x02\x00\x67\x00\x04\x00\x58\x00\x10\x00\x67\x00\x0d\x00\x0e\x00\x58\x00\x5e\x00\x5f\x00\x0d\x00\x13\x00\x10\x00\x5e\x00\x5f\x00\x17\x00\x13\x00\x67\x00\x57\x00\x58\x00\x17\x00\x58\x00\x67\x00\x0d\x00\x3d\x00\x5e\x00\x5f\x00\x5e\x00\x5f\x00\x13\x00\x14\x00\x58\x00\x1e\x00\x17\x00\x67\x00\x58\x00\x67\x00\x5e\x00\x5f\x00\x0d\x00\x10\x00\x5e\x00\x5f\x00\x1e\x00\x0e\x00\x13\x00\x67\x00\x27\x00\x11\x00\x17\x00\x67\x00\x15\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0d\x00\x3b\x00\x1e\x00\x1f\x00\x20\x00\x1e\x00\x1f\x00\x20\x00\x1e\x00\x1f\x00\x20\x00\x3d\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x11\x00\x57\x00\x58\x00\x1c\x00\x5a\x00\x1e\x00\x10\x00\x5d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x01\x00\x02\x00\x03\x00\x67\x00\x1e\x00\x1f\x00\x20\x00\x10\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\x57\x00\x58\x00\x01\x00\x02\x00\x1e\x00\x13\x00\x0f\x00\x5e\x00\x5f\x00\x17\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x15\x00\x1d\x00\x67\x00\x15\x00\x10\x00\x10\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x3d\x00\x0d\x00\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\x2a\x00\x11\x00\x3d\x00\x31\x00\x0d\x00\x0e\x00\x39\x00\x34\x00\x36\x00\x37\x00\x13\x00\x11\x00\x15\x00\x39\x00\x17\x00\x29\x00\x3e\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1a\x00\x57\x00\x58\x00\x15\x00\x0d\x00\x14\x00\x0e\x00\x0e\x00\x5e\x00\x5f\x00\x13\x00\x30\x00\x11\x00\x0e\x00\x17\x00\x57\x00\x58\x00\x67\x00\x1c\x00\x0f\x00\x1d\x00\x10\x00\x5e\x00\x5f\x00\x10\x00\x19\x00\x23\x00\x24\x00\x15\x00\x57\x00\x58\x00\x67\x00\x0d\x00\x3d\x00\x1c\x00\x0d\x00\x5e\x00\x5f\x00\x3d\x00\x10\x00\x31\x00\x3d\x00\x35\x00\x1c\x00\x39\x00\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x34\x00\x57\x00\x58\x00\x16\x00\x59\x00\x5a\x00\x5b\x00\x0e\x00\x5e\x00\x5f\x00\x20\x00\x60\x00\x61\x00\x62\x00\x63\x00\x57\x00\x58\x00\x67\x00\x67\x00\x16\x00\x16\x00\x10\x00\x5e\x00\x5f\x00\x01\x00\x59\x00\x5a\x00\x5b\x00\x20\x00\x57\x00\x58\x00\x67\x00\x60\x00\x61\x00\x62\x00\x63\x00\x5e\x00\x5f\x00\x1f\x00\x67\x00\x1f\x00\x21\x00\x10\x00\x35\x00\x0d\x00\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x1e\x00\x57\x00\x58\x00\x18\x00\x59\x00\x5a\x00\x5b\x00\x3d\x00\x5e\x00\x5f\x00\x0d\x00\x60\x00\x61\x00\x62\x00\x63\x00\x57\x00\x58\x00\x67\x00\x67\x00\x08\x00\x10\x00\x0d\x00\x5e\x00\x5f\x00\x0e\x00\x59\x00\x5a\x00\x5b\x00\x0e\x00\x57\x00\x58\x00\x67\x00\x60\x00\x61\x00\x62\x00\x63\x00\x5e\x00\x5f\x00\x0e\x00\x67\x00\x15\x00\x10\x00\x14\x00\x1a\x00\x18\x00\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x0d\x00\x57\x00\x58\x00\x1a\x00\x59\x00\x5a\x00\x5b\x00\x1a\x00\x5e\x00\x5f\x00\x15\x00\x60\x00\x61\x00\x62\x00\x63\x00\x57\x00\x58\x00\x67\x00\x67\x00\x30\x00\x15\x00\x10\x00\x5e\x00\x5f\x00\x0d\x00\x10\x00\x1a\x00\x18\x00\x10\x00\x57\x00\x58\x00\x67\x00\x0f\x00\x02\x00\x10\x00\x3d\x00\x5e\x00\x5f\x00\x3f\x00\xff\xff\x32\x00\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2c\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x67\x00\x03\x00\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x57\x00\x58\x00\x67\x00\x11\x00\xff\xff\x13\x00\xff\xff\x5e\x00\x5f\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x67\x00\x03\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x13\x00\xff\xff\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x37\x00\xff\xff\x1d\x00\xff\xff\x03\x00\xff\xff\xff\xff\x3e\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x13\x00\xff\xff\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x37\x00\xff\xff\x1d\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3e\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\x28\x00\x03\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2e\x00\x2f\x00\xff\xff\x31\x00\xff\xff\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x13\x00\x3a\x00\x3b\x00\x3c\x00\x17\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\x28\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x2f\x00\xff\xff\x31\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\x38\x00\xff\xff\x3a\x00\x3b\x00\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\xff\xff\x13\x00\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x01\x00\x02\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x13\x00\x31\x00\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x38\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x5e\x00\x5f\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\x01\x00\x02\x00\x67\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x67\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\x26\x00\xff\xff\x03\x00\x29\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x57\x00\x58\x00\x10\x00\x36\x00\xff\xff\x13\x00\xff\xff\x5e\x00\x5f\x00\x17\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x67\x00\x5e\x00\x5f\x00\xff\xff\x03\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x67\x00\xff\xff\xff\xff\xff\xff\x0d\x00\x2d\x00\xff\xff\x10\x00\xff\xff\x31\x00\x13\x00\x33\x00\xff\xff\xff\xff\x17\x00\x18\x00\x38\x00\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\x2d\x00\xff\xff\x13\x00\x14\x00\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x1d\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\x2d\x00\xff\xff\x13\x00\xff\xff\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x2d\x00\xff\xff\x3c\x00\x3d\x00\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\x38\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\x45\x00\x46\x00\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\x45\x00\x46\x00\xff\xff\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\xff\xff\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\x3f\x00\x40\x00\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\x3c\x00\x3d\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\x3c\x00\x3d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x3c\x00\x3d\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\x37\x00\x38\x00\x39\x00\x5e\x00\x5f\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x55\x00\x56\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x46\x00\xff\xff\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x67\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\x40\x00\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\xff\xff\x3d\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\x67\x00\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x67\x00\xff\xff\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\xff\xff\x33\x00\xff\xff\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\xff\xff\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\xff\xff\xff\xff\xff\xff\x57\x00\x58\x00\x37\x00\x38\x00\x39\x00\xff\xff\xff\xff\x5e\x00\x5f\x00\xff\xff\x57\x00\x58\x00\x37\x00\x38\x00\x39\x00\xff\xff\x67\x00\x5e\x00\x5f\x00\xff\xff\x57\x00\x58\x00\xff\xff\xff\xff\xff\xff\xff\xff\x67\x00\x5e\x00\x5f\x00\xff\xff\xff\xff\xff\xff\xff\xff\x56\x00\x57\x00\x58\x00\x67\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5e\x00\x5f\x00\x03\x00\x57\x00\x58\x00\xff\xff\xff\xff\x03\x00\xff\xff\x67\x00\x5e\x00\x5f\x00\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x0d\x00\x13\x00\x67\x00\x10\x00\xff\xff\x17\x00\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x03\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x03\x00\x31\x00\x2d\x00\xff\xff\xff\xff\x0d\x00\x31\x00\xff\xff\x10\x00\xff\xff\x0d\x00\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\x1d\x00\xff\xff\xff\xff\x03\x00\xff\xff\x1d\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x23\x00\x24\x00\x0d\x00\x03\x00\xff\xff\x2d\x00\xff\xff\xff\xff\x13\x00\x31\x00\xff\xff\x03\x00\x17\x00\x0d\x00\x31\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x13\x00\xff\xff\x0d\x00\xff\xff\x17\x00\x23\x00\x24\x00\xff\xff\x13\x00\xff\xff\x1d\x00\x03\x00\x17\x00\x03\x00\xff\xff\xff\xff\x23\x00\x24\x00\x1d\x00\x31\x00\xff\xff\x0d\x00\xff\xff\x0d\x00\x23\x00\x24\x00\xff\xff\x13\x00\xff\xff\x13\x00\x31\x00\x17\x00\x03\x00\x17\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x31\x00\x1d\x00\x03\x00\xff\xff\x0d\x00\x23\x00\x24\x00\x23\x00\x24\x00\xff\xff\x13\x00\xff\xff\x0d\x00\x03\x00\x17\x00\xff\xff\xff\xff\xff\xff\x13\x00\x31\x00\x1d\x00\x31\x00\x17\x00\x0d\x00\xff\xff\xff\xff\x23\x00\x24\x00\x1d\x00\x13\x00\xff\xff\x03\x00\xff\xff\x17\x00\x23\x00\x24\x00\xff\xff\xff\xff\xff\xff\x1d\x00\x31\x00\x0d\x00\x03\x00\xff\xff\xff\xff\x23\x00\x24\x00\x13\x00\x31\x00\xff\xff\x03\x00\x17\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x13\x00\x31\x00\x0d\x00\xff\xff\x17\x00\x23\x00\x24\x00\xff\xff\x13\x00\xff\xff\x1d\x00\x03\x00\x17\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x1d\x00\x31\x00\xff\xff\x0d\x00\xff\xff\xff\xff\x23\x00\x24\x00\xff\xff\x13\x00\xff\xff\xff\xff\x31\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x31\x00\x0d\x00\x0e\x00\xff\xff\x10\x00\x23\x00\x24\x00\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\x1d\x00\x13\x00\x31\x00\xff\xff\xff\xff\x17\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x2d\x00\x23\x00\x24\x00\x25\x00\x31\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x0e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#--happyTable :: HappyAddr-happyTable = HappyA# "\x00\x00\x53\x01\x08\x00\xf9\x00\x0d\x00\x33\x00\x0f\x00\x4f\x01\x35\x00\xa4\x01\xfe\x00\xff\x00\x98\x01\xfc\x00\xff\x01\x09\x01\xdb\xff\x7d\x01\x45\x00\xdb\xff\x0d\x01\xf1\xfe\x34\x00\xf9\x01\x8f\x01\xcc\x01\x3a\x00\x10\x00\x11\x00\xf1\xfe\x05\x00\x1f\x00\xfc\x00\x44\x00\x05\x00\xc8\x01\xfd\x01\x0a\x01\xc9\x01\x3f\x00\xab\x00\xf4\x01\xc5\x00\x0c\x01\xea\x00\xa5\x01\x41\x01\x42\x01\xd8\x00\x3c\x00\x12\x00\xc5\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x7e\x01\xa5\x00\xcd\x01\x0d\x00\x0e\x00\x0f\x00\xc5\x00\xa6\x00\x4c\x00\xc5\x00\x69\x01\xe9\x00\xea\x00\xfd\x00\x6a\x01\x8d\x01\x39\x00\xf1\x01\x6b\x01\xdb\xff\x45\x01\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\xa9\x01\x1d\x00\x1e\x00\x36\x00\xfa\x00\x37\x00\x38\x00\x99\x01\x1f\x00\x20\x00\x99\x01\xfa\x00\xba\x01\xab\x00\x39\x00\x54\x01\xe6\x01\x21\x00\x09\x00\xfa\x00\xab\x00\x12\x00\x46\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xab\x00\x40\x00\x3d\x00\xeb\x00\xc3\x01\x0f\x00\x36\x00\x3d\x00\x41\x00\x42\x00\x1f\x00\x3d\x00\x3d\x00\x3d\x00\x3d\x00\x3d\x00\x9a\x00\x39\x00\xf3\x01\xab\x00\xf8\x01\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\xeb\x00\x1d\x00\x1e\x00\xeb\x00\x1c\x01\xfb\x01\x9c\x00\x1f\x00\x1f\x00\x20\x00\x1f\x00\x1f\x00\x95\x00\xca\x01\x96\x00\xcb\x01\xab\x00\x21\x00\xa6\x01\xab\x00\xab\x00\x12\x00\xdf\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa2\x01\x45\x01\x44\x00\x72\x01\x57\x01\x0f\x00\xa7\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x5f\x01\xff\x01\xc5\x00\xbe\x01\xc5\x00\xe8\x01\x92\x01\xd8\x00\xc4\x00\xc7\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\xc8\x00\x1d\x00\x1e\x00\xc5\x00\xc9\x00\x45\x01\x1a\x01\x1b\x01\x1f\x00\x20\x00\xdd\x01\xa0\x01\xa1\x01\xd6\x01\x38\x01\x1b\x01\xf6\x01\x21\x00\xa2\x01\xc5\x00\xc5\x00\x12\x00\x9d\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xc5\x00\x62\x01\xaa\x00\xa3\x01\xc5\x00\xa5\x00\x9f\x01\xa0\x01\xa1\x01\x1f\x00\x1f\x00\xa6\x00\x4c\x00\x53\x01\xa2\x01\x10\x00\x11\x00\xfa\x00\xab\x00\xab\x00\x39\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xab\x00\xc6\x01\xc0\x00\x1d\x00\x1e\x00\xbe\x01\xa2\x00\xa3\x00\xa4\x00\x9a\x00\x1f\x00\x20\x00\x12\x00\x1c\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x1f\x00\x1c\x01\xdc\x01\xa3\x01\xf3\x01\x9e\x01\x24\x00\x9c\x00\x1f\x00\xab\x00\x1f\x00\xf0\x01\x25\x00\xf1\x01\x44\x00\x9a\x00\x26\x00\xab\x00\x3a\x01\xab\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xe5\x00\x3b\x01\xa3\x01\x1d\x00\x1e\x00\xd8\x01\x7b\x00\x07\x00\x9c\x00\x1f\x00\x1f\x00\x20\x00\x05\x01\xf0\x00\xa5\x00\x9a\x00\xf1\x00\xf2\x00\xab\x00\x21\x00\xa6\x00\x4c\x00\xef\x00\xf0\x00\xb7\x00\xab\x01\xf1\x00\xf2\x00\xc2\x01\x39\x00\x9b\x00\x1f\x00\x9a\x00\x9c\x00\xe0\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x12\x00\xab\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x56\x01\x05\x01\x9a\x00\x12\x00\x9c\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x48\x01\x49\x01\xa2\x00\xa3\x00\xa4\x00\x4a\x01\x4b\x01\x0c\x01\xb8\x00\xb9\x00\x9c\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xd8\x01\x39\x00\xe3\x01\x1d\x00\x1e\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1f\x00\x4c\x00\x93\x01\x1d\x00\x1e\x00\xf1\x00\xf2\x00\xa5\x00\xe1\x00\x21\x00\x1f\x00\x4c\x00\xe2\x00\xa6\x00\x4c\x00\x7b\x00\x07\x00\xe3\x00\x77\x01\x21\x00\x7b\x00\x07\x00\x39\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xbb\x00\x12\x00\xa5\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa6\x00\x4c\x00\x3b\x00\x4c\x01\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\x4d\x01\x05\x00\xc2\x00\x9b\x00\x80\x00\xc5\x01\x27\x01\x28\x01\x81\x00\xc3\x00\xca\x00\x82\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1f\x00\x97\x00\xc4\x00\x1d\x00\x1e\x00\x9a\x00\xdb\x01\x83\x00\x78\x00\xab\x00\x1f\x00\x4c\x00\x12\x00\x44\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x9b\x00\x05\x00\x97\x00\x9c\x00\xd1\x01\xd2\x01\xd3\x01\x7b\x01\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\xf1\xfe\x27\x01\x28\x01\x7b\x01\x2a\x01\x2b\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x44\x00\x8e\x00\x1d\x00\x1e\x00\xc9\xff\x6b\x01\xc0\x00\xf1\xfe\xf1\xfe\x1f\x00\x4c\x00\x12\x00\x78\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\xa8\x00\x06\x01\x60\x01\x37\x00\x42\x00\x8a\x01\xa9\x00\x75\x01\x95\x01\x61\x01\xaa\x00\x76\x01\x39\x00\x9d\x01\x27\x01\x28\x01\x29\x01\x2a\x01\x2b\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x48\x00\x97\x00\x1d\x00\x1e\x00\x04\x00\xd5\x01\x03\x01\xd6\x01\x05\x00\x1f\x00\x4c\x00\x12\x00\x05\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x88\x01\x49\x01\xa2\x00\xa3\x00\xa4\x00\x89\x01\xf8\x00\xcb\x00\xb9\x00\x03\x01\x9b\x01\x49\x01\xa2\x00\xa3\x00\xa4\x00\x9c\x01\x39\x00\x0a\x01\xb4\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x36\x01\xc0\x00\x1d\x00\x1e\x00\xe1\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x1f\x00\x4c\x00\xbb\xff\x45\x01\x82\x01\xbf\x00\xc0\x00\xbb\xff\x83\x01\x21\x00\x46\x01\xb2\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x69\x00\x26\x01\x6b\x00\x8a\x00\xa5\x00\x8e\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x97\x00\x7a\x01\xa5\x00\x96\x00\x0c\x01\x98\x00\x8d\x01\x39\x00\xa6\x00\x4c\x00\x94\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x13\xff\xba\xff\x39\x00\xba\xff\x13\xff\xbe\x00\x9e\x00\xa5\x00\x97\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\xf1\xfe\x44\x00\xb2\x00\xdb\x00\x0f\x01\x1e\x01\xe7\x00\x39\x00\xa5\x00\x07\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\xe8\x00\xee\x00\xa5\x00\xec\x01\xed\x01\xee\x01\xf4\x00\x39\x00\xa6\x00\x4c\x00\x46\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x98\x00\x05\x01\x39\x00\x93\x01\xa5\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x5c\x01\xa4\x00\xd2\x00\xd5\x00\x95\x00\xa5\x00\x96\x00\x39\x00\xf5\x00\xd3\x00\xd6\x00\xa6\x00\x4c\x00\x5d\x01\xa4\x00\xf6\x00\x58\x01\xa2\x00\xa3\x00\xa4\x00\x39\x00\xa5\x00\x59\x01\x5a\x01\x9b\x00\x32\x00\xf8\x00\xa6\x00\x4c\x00\xa8\x00\x58\x01\xa2\x00\xa3\x00\xa4\x00\x0c\x00\xa9\x00\x39\x00\xc5\x01\xa5\x00\xaa\x00\xbf\x01\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x13\x01\xa4\x00\xa5\x00\x8f\x00\x16\x00\x17\x00\xa5\x00\x39\x00\xa6\x00\x4c\x00\x0b\x00\x03\x00\xa6\x00\x4c\x00\xc7\x00\xf1\xfe\xf1\xfe\x39\x00\x51\x01\xa5\x00\x3f\x00\x39\x00\x24\x00\x24\x01\xa5\x00\xa6\x00\x4c\x00\xa8\x00\x25\x00\xc7\x00\x5b\x01\x4c\x00\x26\x00\xa9\x00\x39\x00\x4a\x00\x4b\x00\xaa\x00\xa5\x00\x39\x00\xa8\x00\xfd\x01\x1f\x00\x4c\x00\x5b\x01\x4c\x00\xa9\x00\x48\x01\xa5\x00\xf0\x01\xaa\x00\x4d\x00\xa5\x00\x39\x00\xa6\x00\x4c\x00\x24\x00\x3f\x00\xa6\x00\x4c\x00\xd5\x01\xd7\x00\x25\x00\x39\x00\x63\x00\xdf\x01\x26\x00\x39\x00\xd8\x00\x64\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x65\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x44\x00\x66\x00\x78\x01\x92\x00\x93\x00\x90\x01\x92\x00\x93\x00\x01\x01\x92\x00\x93\x00\xe8\x01\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x5c\x00\x5d\x00\xc8\x01\x4a\x00\x1e\x00\x95\x00\x67\x00\x96\x00\xc7\x00\x68\x00\x1f\x00\x4c\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\xf1\xfe\xf1\xfe\x23\x00\x6d\x00\x91\x00\x92\x00\x93\x00\xcf\x01\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x24\x00\x4a\x00\x1e\x00\x7b\x00\x07\x00\xda\x01\x25\x00\xdc\x01\x1f\x00\x4c\x00\x26\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x61\x01\x27\x00\x21\x00\x61\x01\x9b\x01\x3f\x00\xf1\xfe\x28\x00\x29\x00\x30\x01\xf1\xfe\xb4\x00\x44\x00\xf1\xfe\x31\x01\x32\x01\x33\x01\x34\x01\xb1\x01\xb2\x01\xb4\x00\x2e\x00\xa8\x00\x4f\x01\xb9\x01\xb8\x01\xf1\xfe\x35\x01\xa9\x00\xbd\x01\x75\x00\xbb\x01\xaa\x00\xbc\x01\x36\x01\xf6\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe4\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xcf\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xc1\x01\x4a\x00\x1e\x00\xc2\x01\x24\x00\x64\x01\xcf\x00\x63\x01\x1f\x00\x4c\x00\x25\x00\xf4\x00\x68\x01\x6d\x01\x26\x00\x4a\x00\x1e\x00\x21\x00\x81\x01\x77\x01\x27\x00\xc7\x00\x1f\x00\x4c\x00\x80\x01\x88\x01\x28\x00\x29\x00\x45\x01\x4a\x00\x1e\x00\x21\x00\x44\x00\xb4\x00\x8c\x01\x44\x00\x1f\x00\x4c\x00\x97\x01\x9b\x01\x2e\x00\x97\x01\xa0\x00\xfe\x00\x20\x01\x21\x00\xd0\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa8\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xaa\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x1f\x01\x4a\x00\x1e\x00\x25\x01\x85\x00\x86\x00\xd3\x00\x26\x01\x1f\x00\x4c\x00\x38\x01\x88\x00\x89\x00\x6b\x00\x8a\x00\x4a\x00\x1e\x00\x21\x00\x8b\x00\x3e\x01\x3f\x01\x3f\x00\x1f\x00\x4c\x00\x7b\x00\x85\x00\x86\x00\xdd\x00\x52\x01\x4a\x00\x1e\x00\x21\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x1f\x00\x4c\x00\x44\x01\x8b\x00\x13\xff\x53\x01\x56\x01\xa0\x00\x44\x00\x21\x00\xb1\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb5\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb6\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x96\x00\x4a\x00\x1e\x00\x8f\x00\x85\x00\x86\x00\xde\x00\xb4\x00\x1f\x00\x4c\x00\x44\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x4a\x00\x1e\x00\x21\x00\x8b\x00\xbb\x00\xc7\x00\x44\x00\x1f\x00\x4c\x00\xfc\xfe\x85\x00\x86\x00\x87\x00\xcf\x00\x4a\x00\x1e\x00\x21\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x1f\x00\x4c\x00\xd0\x00\x8b\x00\xd3\x00\x3f\x00\xdd\x00\xe0\x00\x8f\x00\x21\x00\x64\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x6d\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x6e\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x44\x00\x4a\x00\x1e\x00\x0f\xff\x85\x00\x86\x00\x90\x00\xed\x00\x1f\x00\x4c\x00\xee\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x4a\x00\x1e\x00\x21\x00\x8b\x00\xf4\x00\xee\x00\x3f\x00\x1f\x00\x4c\x00\x44\x00\x48\x00\x84\x00\x8f\x00\x85\x00\x4a\x00\x1e\x00\x21\x00\x9d\x00\x07\x00\x0b\x00\x08\x00\x1f\x00\x4c\x00\xff\xff\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x6f\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x71\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x73\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x7c\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x0f\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x11\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x12\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x20\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x22\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb1\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xd9\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xda\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe5\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe6\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x23\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x4a\x00\x1e\x00\x21\x00\x34\xff\x00\x00\x25\x00\x00\x00\x1f\x00\x4c\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x21\x00\x23\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x30\x01\x00\x00\x00\x00\x00\x00\x24\x00\x31\x01\x32\x01\x33\x01\x34\x01\x00\x00\x25\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\x27\x00\x00\x00\x23\x00\x00\x00\x00\x00\x36\x01\x28\x00\x29\x00\x30\x01\x00\x00\x00\x00\x00\x00\x24\x00\x31\x01\x32\x01\x33\x01\x34\x01\x00\x00\x25\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x35\x01\x00\x00\x27\x00\xd0\x00\x15\x00\x16\x00\x17\x00\x36\x01\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x23\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2f\x00\x25\x00\x30\x00\x31\x00\x32\x00\x26\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\x27\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x4d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x31\x00\x24\x00\x74\x00\x00\x00\x60\x00\x00\x00\x00\x00\x25\x00\x00\x00\x75\x00\x76\x00\x26\x00\x77\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\xf1\xfe\xf1\xfe\x00\x00\x78\x00\x00\x00\x28\x00\x29\x00\x61\x00\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x24\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x25\x00\x2e\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x63\x00\x83\x01\x59\x00\x84\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x85\x01\x59\x00\x86\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x14\x01\x59\x00\x15\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x7b\x00\x07\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\xbb\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x21\x00\x17\x01\x59\x00\x18\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\xcc\x00\x59\x00\xcd\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x5f\x00\x82\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x4a\x00\x1e\x00\x60\x00\x83\x00\x00\x00\x25\x00\x00\x00\x1f\x00\x4c\x00\x26\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x27\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x5f\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\x24\x00\x62\x00\x00\x00\x60\x00\x00\x00\x2e\x00\x25\x00\xb4\x01\x00\x00\x00\x00\x26\x00\x8f\x00\x63\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x60\x00\x62\x00\x00\x00\x25\x00\x5a\xff\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x27\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x60\x00\x62\x00\x00\x00\x25\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x62\x00\x00\x00\xfa\x01\xad\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3b\x01\x63\x00\x3c\x01\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\xf3\x01\xea\x01\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xeb\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\xe5\x01\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3f\x01\x00\x00\x40\x01\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\xe9\x01\xea\x01\x00\x00\x49\x00\x16\x00\x17\x00\x21\x00\x00\x00\x00\x00\x00\x00\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xeb\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\xd8\x01\xad\x01\x00\x00\x1f\x00\x4c\x00\xb4\x00\x00\x00\xb5\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4d\x00\x00\x00\x00\x00\x00\x00\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\xac\x01\xad\x01\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x70\x01\xad\x00\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x10\x01\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\xac\x00\xad\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x4f\x00\x16\x00\x17\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x50\x00\x51\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xf8\x01\x00\x00\x4e\x00\x16\x00\x17\x00\x00\x00\x00\x00\x4d\x00\x00\x00\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xeb\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\x00\x00\xe3\x01\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4d\x00\x00\x00\x00\x00\x65\x01\xae\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbc\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x79\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x66\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x4f\x00\x16\x00\x17\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x8f\x00\x16\x00\x17\x00\x00\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe3\x00\x4a\x00\x4b\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x1a\x01\x4a\x00\x4b\x00\x00\x00\x00\x00\x17\x01\x00\x00\x4d\x00\x1f\x00\x4c\x00\x24\x00\x22\x01\x00\x00\x60\x00\x00\x00\x24\x00\x25\x00\x4d\x00\x60\x00\x00\x00\x26\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x1a\x01\x00\x00\x62\x00\x00\x00\x00\x00\x23\x00\x2e\x00\x62\x00\x00\x00\x00\x00\x24\x00\x2e\x00\x00\x00\x60\x00\x00\x00\x24\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x27\x00\x00\x00\x00\x00\x23\x00\x00\x00\x27\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x28\x00\x29\x00\x24\x00\x23\x00\x00\x00\x62\x00\x00\x00\x00\x00\x25\x00\x2e\x00\x00\x00\x23\x00\x26\x00\x24\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x27\x00\x25\x00\x00\x00\x24\x00\x00\x00\x26\x00\x28\x00\x29\x00\x00\x00\x25\x00\x00\x00\x27\x00\x23\x00\x26\x00\x23\x00\x00\x00\x00\x00\x28\x00\x29\x00\x27\x00\xb1\x00\x00\x00\x24\x00\x00\x00\x24\x00\x28\x00\x29\x00\x00\x00\x25\x00\x00\x00\x25\x00\x2e\x00\x26\x00\x23\x00\x26\x00\x00\x00\x00\x00\x00\x00\x27\x00\xb1\x00\x27\x00\x23\x00\x00\x00\x24\x00\x28\x00\x29\x00\x28\x00\x29\x00\x00\x00\x25\x00\x00\x00\x24\x00\x23\x00\x26\x00\x00\x00\x00\x00\x00\x00\x25\x00\x2e\x00\x27\x00\xb1\x00\x26\x00\x24\x00\x00\x00\x00\x00\x28\x00\x29\x00\x27\x00\x25\x00\x00\x00\x23\x00\x00\x00\x26\x00\x28\x00\x29\x00\x00\x00\x00\x00\x00\x00\x27\x00\x2e\x00\x24\x00\xb7\x00\x00\x00\x00\x00\x28\x00\x29\x00\x25\x00\xb1\x00\x00\x00\xbe\x00\x26\x00\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x25\x00\x2e\x00\x24\x00\x00\x00\x26\x00\x28\x00\x29\x00\x00\x00\x25\x00\x00\x00\x27\x00\x23\x00\x26\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x27\x00\xb1\x00\x00\x00\x24\x00\x00\x00\x00\x00\x28\x00\x29\x00\x00\x00\x25\x00\x00\x00\x00\x00\x2e\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x2e\x00\x24\x00\xfb\xfe\x00\x00\x60\x00\x28\x00\x29\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x24\x00\x00\x00\x00\x00\x60\x00\x00\x00\x27\x00\x25\x00\x2e\x00\x00\x00\x00\x00\x26\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x62\x00\x28\x00\x29\x00\x61\x00\x2e\x00\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x8f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x8e\x00\x00\x00\x00\x00\x00\x00\x8f\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#--happyReduceArr = array (1, 270) [- (1 , happyReduce_1),- (2 , happyReduce_2),- (3 , happyReduce_3),- (4 , happyReduce_4),- (5 , happyReduce_5),- (6 , happyReduce_6),- (7 , happyReduce_7),- (8 , happyReduce_8),- (9 , happyReduce_9),- (10 , happyReduce_10),- (11 , happyReduce_11),- (12 , happyReduce_12),- (13 , happyReduce_13),- (14 , happyReduce_14),- (15 , happyReduce_15),- (16 , happyReduce_16),- (17 , happyReduce_17),- (18 , happyReduce_18),- (19 , happyReduce_19),- (20 , happyReduce_20),- (21 , happyReduce_21),- (22 , happyReduce_22),- (23 , happyReduce_23),- (24 , happyReduce_24),- (25 , happyReduce_25),- (26 , happyReduce_26),- (27 , happyReduce_27),- (28 , happyReduce_28),- (29 , happyReduce_29),- (30 , happyReduce_30),- (31 , happyReduce_31),- (32 , happyReduce_32),- (33 , happyReduce_33),- (34 , happyReduce_34),- (35 , happyReduce_35),- (36 , happyReduce_36),- (37 , happyReduce_37),- (38 , happyReduce_38),- (39 , happyReduce_39),- (40 , happyReduce_40),- (41 , happyReduce_41),- (42 , happyReduce_42),- (43 , happyReduce_43),- (44 , happyReduce_44),- (45 , happyReduce_45),- (46 , happyReduce_46),- (47 , happyReduce_47),- (48 , happyReduce_48),- (49 , happyReduce_49),- (50 , happyReduce_50),- (51 , happyReduce_51),- (52 , happyReduce_52),- (53 , happyReduce_53),- (54 , happyReduce_54),- (55 , happyReduce_55),- (56 , happyReduce_56),- (57 , happyReduce_57),- (58 , happyReduce_58),- (59 , happyReduce_59),- (60 , happyReduce_60),- (61 , happyReduce_61),- (62 , happyReduce_62),- (63 , happyReduce_63),- (64 , happyReduce_64),- (65 , happyReduce_65),- (66 , happyReduce_66),- (67 , happyReduce_67),- (68 , happyReduce_68),- (69 , happyReduce_69),- (70 , happyReduce_70),- (71 , happyReduce_71),- (72 , happyReduce_72),- (73 , happyReduce_73),- (74 , happyReduce_74),- (75 , happyReduce_75),- (76 , happyReduce_76),- (77 , happyReduce_77),- (78 , happyReduce_78),- (79 , happyReduce_79),- (80 , happyReduce_80),- (81 , happyReduce_81),- (82 , happyReduce_82),- (83 , happyReduce_83),- (84 , happyReduce_84),- (85 , happyReduce_85),- (86 , happyReduce_86),- (87 , happyReduce_87),- (88 , happyReduce_88),- (89 , happyReduce_89),- (90 , happyReduce_90),- (91 , happyReduce_91),- (92 , happyReduce_92),- (93 , happyReduce_93),- (94 , happyReduce_94),- (95 , happyReduce_95),- (96 , happyReduce_96),- (97 , happyReduce_97),- (98 , happyReduce_98),- (99 , happyReduce_99),- (100 , happyReduce_100),- (101 , happyReduce_101),- (102 , happyReduce_102),- (103 , happyReduce_103),- (104 , happyReduce_104),- (105 , happyReduce_105),- (106 , happyReduce_106),- (107 , happyReduce_107),- (108 , happyReduce_108),- (109 , happyReduce_109),- (110 , happyReduce_110),- (111 , happyReduce_111),- (112 , happyReduce_112),- (113 , happyReduce_113),- (114 , happyReduce_114),- (115 , happyReduce_115),- (116 , happyReduce_116),- (117 , happyReduce_117),- (118 , happyReduce_118),- (119 , happyReduce_119),- (120 , happyReduce_120),- (121 , happyReduce_121),- (122 , happyReduce_122),- (123 , happyReduce_123),- (124 , happyReduce_124),- (125 , happyReduce_125),- (126 , happyReduce_126),- (127 , happyReduce_127),- (128 , happyReduce_128),- (129 , happyReduce_129),- (130 , happyReduce_130),- (131 , happyReduce_131),- (132 , happyReduce_132),- (133 , happyReduce_133),- (134 , happyReduce_134),- (135 , happyReduce_135),- (136 , happyReduce_136),- (137 , happyReduce_137),- (138 , happyReduce_138),- (139 , happyReduce_139),- (140 , happyReduce_140),- (141 , happyReduce_141),- (142 , happyReduce_142),- (143 , happyReduce_143),- (144 , happyReduce_144),- (145 , happyReduce_145),- (146 , happyReduce_146),- (147 , happyReduce_147),- (148 , happyReduce_148),- (149 , happyReduce_149),- (150 , happyReduce_150),- (151 , happyReduce_151),- (152 , happyReduce_152),- (153 , happyReduce_153),- (154 , happyReduce_154),- (155 , happyReduce_155),- (156 , happyReduce_156),- (157 , happyReduce_157),- (158 , happyReduce_158),- (159 , happyReduce_159),- (160 , happyReduce_160),- (161 , happyReduce_161),- (162 , happyReduce_162),- (163 , happyReduce_163),- (164 , happyReduce_164),- (165 , happyReduce_165),- (166 , happyReduce_166),- (167 , happyReduce_167),- (168 , happyReduce_168),- (169 , happyReduce_169),- (170 , happyReduce_170),- (171 , happyReduce_171),- (172 , happyReduce_172),- (173 , happyReduce_173),- (174 , happyReduce_174),- (175 , happyReduce_175),- (176 , happyReduce_176),- (177 , happyReduce_177),- (178 , happyReduce_178),- (179 , happyReduce_179),- (180 , happyReduce_180),- (181 , happyReduce_181),- (182 , happyReduce_182),- (183 , happyReduce_183),- (184 , happyReduce_184),- (185 , happyReduce_185),- (186 , happyReduce_186),- (187 , happyReduce_187),- (188 , happyReduce_188),- (189 , happyReduce_189),- (190 , happyReduce_190),- (191 , happyReduce_191),- (192 , happyReduce_192),- (193 , happyReduce_193),- (194 , happyReduce_194),- (195 , happyReduce_195),- (196 , happyReduce_196),- (197 , happyReduce_197),- (198 , happyReduce_198),- (199 , happyReduce_199),- (200 , happyReduce_200),- (201 , happyReduce_201),- (202 , happyReduce_202),- (203 , happyReduce_203),- (204 , happyReduce_204),- (205 , happyReduce_205),- (206 , happyReduce_206),- (207 , happyReduce_207),- (208 , happyReduce_208),- (209 , happyReduce_209),- (210 , happyReduce_210),- (211 , happyReduce_211),- (212 , happyReduce_212),- (213 , happyReduce_213),- (214 , happyReduce_214),- (215 , happyReduce_215),- (216 , happyReduce_216),- (217 , happyReduce_217),- (218 , happyReduce_218),- (219 , happyReduce_219),- (220 , happyReduce_220),- (221 , happyReduce_221),- (222 , happyReduce_222),- (223 , happyReduce_223),- (224 , happyReduce_224),- (225 , happyReduce_225),- (226 , happyReduce_226),- (227 , happyReduce_227),- (228 , happyReduce_228),- (229 , happyReduce_229),- (230 , happyReduce_230),- (231 , happyReduce_231),- (232 , happyReduce_232),- (233 , happyReduce_233),- (234 , happyReduce_234),- (235 , happyReduce_235),- (236 , happyReduce_236),- (237 , happyReduce_237),- (238 , happyReduce_238),- (239 , happyReduce_239),- (240 , happyReduce_240),- (241 , happyReduce_241),- (242 , happyReduce_242),- (243 , happyReduce_243),- (244 , happyReduce_244),- (245 , happyReduce_245),- (246 , happyReduce_246),- (247 , happyReduce_247),- (248 , happyReduce_248),- (249 , happyReduce_249),- (250 , happyReduce_250),- (251 , happyReduce_251),- (252 , happyReduce_252),- (253 , happyReduce_253),- (254 , happyReduce_254),- (255 , happyReduce_255),- (256 , happyReduce_256),- (257 , happyReduce_257),- (258 , happyReduce_258),- (259 , happyReduce_259),- (260 , happyReduce_260),- (261 , happyReduce_261),- (262 , happyReduce_262),- (263 , happyReduce_263),- (264 , happyReduce_264),- (265 , happyReduce_265),- (266 , happyReduce_266),- (267 , happyReduce_267),- (268 , happyReduce_268),- (269 , happyReduce_269),- (270 , happyReduce_270)- ]--happy_n_terms = 64 :: Int-happy_n_nonterms = 104 :: Int--happyReduce_1 = happyReduce 4# 0# happyReduction_1-happyReduction_1 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut99 happy_x_2 of { happy_var_2 -> - case happyOut5 happy_x_4 of { happy_var_4 -> - happyIn4- (mkModule happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_2 = happyReduce 6# 1# happyReduction_2-happyReduction_2 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut8 happy_x_3 of { happy_var_3 -> - case happyOut10 happy_x_4 of { happy_var_4 -> - case happyOut6 happy_x_6 of { happy_var_6 -> - happyIn5- ((reverse happy_var_3,reverse happy_var_4, happy_var_6)- ) `HappyStk` happyRest}}}--happyReduce_3 = happyReduce 5# 1# happyReduction_3-happyReduction_3 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut8 happy_x_2 of { happy_var_2 -> - case happyOut10 happy_x_3 of { happy_var_3 -> - case happyOut6 happy_x_5 of { happy_var_5 -> - happyIn5- ((reverse happy_var_2, reverse happy_var_3, happy_var_5)- ) `HappyStk` happyRest}}}--happyReduce_4 = happySpecReduce_2 2# happyReduction_4-happyReduction_4 happy_x_2- happy_x_1- = case happyOut7 happy_x_2 of { happy_var_2 -> - happyIn6- (happy_var_2- )}--happyReduce_5 = happySpecReduce_0 2# happyReduction_5-happyReduction_5 = happyIn6- ([]- )--happyReduce_6 = happyReduce 4# 3# happyReduction_6-happyReduction_6 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut10 happy_x_3 of { happy_var_3 -> - happyIn7- (reverse happy_var_3- ) `HappyStk` happyRest}--happyReduce_7 = happySpecReduce_3 3# happyReduction_7-happyReduction_7 happy_x_3- happy_x_2- happy_x_1- = case happyOut10 happy_x_2 of { happy_var_2 -> - happyIn7- (reverse happy_var_2- )}--happyReduce_8 = happySpecReduce_3 4# happyReduction_8-happyReduction_8 happy_x_3- happy_x_2- happy_x_1- = case happyOut8 happy_x_1 of { happy_var_1 -> - case happyOut9 happy_x_2 of { happy_var_2 -> - happyIn8- (happy_var_2 : happy_var_1- )}}--happyReduce_9 = happySpecReduce_0 4# happyReduction_9-happyReduction_9 = happyIn8- ([]- )--happyReduce_10 = happySpecReduce_2 5# happyReduction_10-happyReduction_10 happy_x_2- happy_x_1- = case happyOut99 happy_x_2 of { happy_var_2 -> - happyIn9- (Import True (modId happy_var_2)- )}--happyReduce_11 = happySpecReduce_2 5# happyReduction_11-happyReduction_11 happy_x_2- happy_x_1- = case happyOut99 happy_x_2 of { happy_var_2 -> - happyIn9- (Import False (modId happy_var_2)- )}--happyReduce_12 = happySpecReduce_3 6# happyReduction_12-happyReduction_12 happy_x_3- happy_x_2- happy_x_1- = case happyOut10 happy_x_1 of { happy_var_1 -> - case happyOut11 happy_x_3 of { happy_var_3 -> - happyIn10- (happy_var_3 ++ happy_var_1- )}}--happyReduce_13 = happySpecReduce_1 6# happyReduction_13-happyReduction_13 happy_x_1- = case happyOut11 happy_x_1 of { happy_var_1 -> - happyIn10- (happy_var_1- )}--happyReduce_14 = happySpecReduce_3 7# happyReduction_14-happyReduction_14 happy_x_3- happy_x_2- happy_x_1- = case happyOut99 happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_3 of { happy_var_3 -> - happyIn11- ([DKSig happy_var_1 happy_var_3]- )}}--happyReduce_15 = happyReduce 5# 7# happyReduction_15-happyReduction_15 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut99 happy_x_2 of { happy_var_2 -> - case happyOut15 happy_x_3 of { happy_var_3 -> - case happyOut37 happy_x_5 of { happy_var_5 -> - happyIn11- ([DType happy_var_2 (reverse happy_var_3) happy_var_5]- ) `HappyStk` happyRest}}}--happyReduce_16 = happyReduce 5# 7# happyReduction_16-happyReduction_16 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut99 happy_x_2 of { happy_var_2 -> - case happyOut15 happy_x_3 of { happy_var_3 -> - case happyOut14 happy_x_4 of { happy_var_4 -> - case happyOut20 happy_x_5 of { happy_var_5 -> - happyIn11- ([DData happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]- ) `HappyStk` happyRest}}}}--happyReduce_17 = happyReduce 5# 7# happyReduction_17-happyReduction_17 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut99 happy_x_2 of { happy_var_2 -> - case happyOut15 happy_x_3 of { happy_var_3 -> - case happyOut13 happy_x_4 of { happy_var_4 -> - case happyOut22 happy_x_5 of { happy_var_5 -> - happyIn11- ([DRec False happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]- ) `HappyStk` happyRest}}}}--happyReduce_18 = happyReduce 5# 7# happyReduction_18-happyReduction_18 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut99 happy_x_2 of { happy_var_2 -> - case happyOut15 happy_x_3 of { happy_var_3 -> - case happyOut12 happy_x_4 of { happy_var_4 -> - case happyOut22 happy_x_5 of { happy_var_5 -> - happyIn11- ([DRec True happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]- ) `HappyStk` happyRest}}}}--happyReduce_19 = happyReduce 5# 7# happyReduction_19-happyReduction_19 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut99 happy_x_2 of { happy_var_2 -> - case happyOut15 happy_x_3 of { happy_var_3 -> - case happyOut23 happy_x_5 of { happy_var_5 -> - happyIn11- ([DRec True happy_var_2 (reverse happy_var_3) [] happy_var_5]- ) `HappyStk` happyRest}}}--happyReduce_20 = happySpecReduce_2 7# happyReduction_20-happyReduction_20 happy_x_2- happy_x_1- = case happyOut16 happy_x_2 of { happy_var_2 -> - happyIn11- ([DTClass happy_var_2]- )}--happyReduce_21 = happyReduce 4# 7# happyReduction_21-happyReduction_21 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut91 happy_x_2 of { happy_var_2 -> - case happyOut37 happy_x_4 of { happy_var_4 -> - happyIn11- ([DPSig happy_var_2 happy_var_4]- ) `HappyStk` happyRest}}--happyReduce_22 = happyReduce 6# 7# happyReduction_22-happyReduction_22 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut91 happy_x_2 of { happy_var_2 -> - case happyOut37 happy_x_4 of { happy_var_4 -> - case happyOut27 happy_x_6 of { happy_var_6 -> - happyIn11- ([DBind [BEqn (exp2lhs (EVar happy_var_2)) (RExp (EBStruct Nothing [] happy_var_6))], DPSig happy_var_2 happy_var_4]- ) `HappyStk` happyRest}}}--happyReduce_23 = happyReduce 5# 7# happyReduction_23-happyReduction_23 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut91 happy_x_2 of { happy_var_2 -> - case happyOut37 happy_x_4 of { happy_var_4 -> - case happyOut34 happy_x_5 of { happy_var_5 -> - happyIn11- ([DBind [BEqn (exp2lhs (EVar happy_var_2)) happy_var_5], DPSig happy_var_2 happy_var_4]- ) `HappyStk` happyRest}}}--happyReduce_24 = happySpecReduce_2 7# happyReduction_24-happyReduction_24 happy_x_2- happy_x_1- = case happyOut16 happy_x_2 of { happy_var_2 -> - happyIn11- ([DInstance happy_var_2]- )}--happyReduce_25 = happySpecReduce_2 7# happyReduction_25-happyReduction_25 happy_x_2- happy_x_1- = case happyOut17 happy_x_2 of { happy_var_2 -> - happyIn11- ([DDefault (reverse happy_var_2)]- )}--happyReduce_26 = happySpecReduce_3 7# happyReduction_26-happyReduction_26 happy_x_3- happy_x_2- happy_x_1- = case happyOut32 happy_x_1 of { happy_var_1 -> - case happyOut37 happy_x_3 of { happy_var_3 -> - happyIn11- ([DBind [BSig (reverse happy_var_1) happy_var_3]]- )}}--happyReduce_27 = happySpecReduce_2 7# happyReduction_27-happyReduction_27 happy_x_2- happy_x_1- = case happyOut33 happy_x_1 of { happy_var_1 -> - case happyOut34 happy_x_2 of { happy_var_2 -> - happyIn11- ([DBind [BEqn happy_var_1 happy_var_2]]- )}}--happyReduce_28 = happySpecReduce_2 8# happyReduction_28-happyReduction_28 happy_x_2- happy_x_1- = case happyOut42 happy_x_2 of { happy_var_2 -> - happyIn12- (reverse happy_var_2- )}--happyReduce_29 = happySpecReduce_2 8# happyReduction_29-happyReduction_29 happy_x_2- happy_x_1- = case happyOut37 happy_x_2 of { happy_var_2 -> - happyIn12- ([happy_var_2]- )}--happyReduce_30 = happySpecReduce_1 9# happyReduction_30-happyReduction_30 happy_x_1- = case happyOut12 happy_x_1 of { happy_var_1 -> - happyIn13- (happy_var_1- )}--happyReduce_31 = happySpecReduce_0 9# happyReduction_31-happyReduction_31 = happyIn13- ([]- )--happyReduce_32 = happySpecReduce_2 10# happyReduction_32-happyReduction_32 happy_x_2- happy_x_1- = case happyOut42 happy_x_2 of { happy_var_2 -> - happyIn14- (reverse happy_var_2- )}--happyReduce_33 = happySpecReduce_2 10# happyReduction_33-happyReduction_33 happy_x_2- happy_x_1- = case happyOut37 happy_x_2 of { happy_var_2 -> - happyIn14- ([happy_var_2]- )}--happyReduce_34 = happySpecReduce_0 10# happyReduction_34-happyReduction_34 = happyIn14- ([]- )--happyReduce_35 = happySpecReduce_2 11# happyReduction_35-happyReduction_35 happy_x_2- happy_x_1- = case happyOut15 happy_x_1 of { happy_var_1 -> - case happyOut98 happy_x_2 of { happy_var_2 -> - happyIn15- (happy_var_2 : happy_var_1- )}}--happyReduce_36 = happySpecReduce_0 11# happyReduction_36-happyReduction_36 = happyIn15- ([]- )--happyReduce_37 = happySpecReduce_3 12# happyReduction_37-happyReduction_37 happy_x_3- happy_x_2- happy_x_1- = case happyOut16 happy_x_1 of { happy_var_1 -> - case happyOut96 happy_x_3 of { happy_var_3 -> - happyIn16- (happy_var_3 : happy_var_1- )}}--happyReduce_38 = happySpecReduce_1 12# happyReduction_38-happyReduction_38 happy_x_1- = case happyOut96 happy_x_1 of { happy_var_1 -> - happyIn16- ([happy_var_1]- )}--happyReduce_39 = happyReduce 4# 13# happyReduction_39-happyReduction_39 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut18 happy_x_3 of { happy_var_3 -> - happyIn17- (happy_var_3- ) `HappyStk` happyRest}--happyReduce_40 = happySpecReduce_3 13# happyReduction_40-happyReduction_40 happy_x_3- happy_x_2- happy_x_1- = case happyOut18 happy_x_2 of { happy_var_2 -> - happyIn17- (happy_var_2- )}--happyReduce_41 = happySpecReduce_3 14# happyReduction_41-happyReduction_41 happy_x_3- happy_x_2- happy_x_1- = case happyOut18 happy_x_1 of { happy_var_1 -> - case happyOut19 happy_x_3 of { happy_var_3 -> - happyIn18- (happy_var_3 : happy_var_1- )}}--happyReduce_42 = happySpecReduce_1 14# happyReduction_42-happyReduction_42 happy_x_1- = case happyOut19 happy_x_1 of { happy_var_1 -> - happyIn18- ([happy_var_1]- )}--happyReduce_43 = happySpecReduce_3 15# happyReduction_43-happyReduction_43 happy_x_3- happy_x_2- happy_x_1- = case happyOut91 happy_x_1 of { happy_var_1 -> - case happyOut91 happy_x_3 of { happy_var_3 -> - happyIn19- (Default True happy_var_1 happy_var_3- )}}--happyReduce_44 = happySpecReduce_3 15# happyReduction_44-happyReduction_44 happy_x_3- happy_x_2- happy_x_1- = case happyOut91 happy_x_1 of { happy_var_1 -> - case happyOut37 happy_x_3 of { happy_var_3 -> - happyIn19- (Derive happy_var_1 happy_var_3- )}}--happyReduce_45 = happySpecReduce_2 16# happyReduction_45-happyReduction_45 happy_x_2- happy_x_1- = case happyOut21 happy_x_2 of { happy_var_2 -> - happyIn20- (reverse happy_var_2- )}--happyReduce_46 = happySpecReduce_0 16# happyReduction_46-happyReduction_46 = happyIn20- ([]- )--happyReduce_47 = happySpecReduce_3 17# happyReduction_47-happyReduction_47 happy_x_3- happy_x_2- happy_x_1- = case happyOut21 happy_x_1 of { happy_var_1 -> - case happyOut37 happy_x_3 of { happy_var_3 -> - happyIn21- (type2cons happy_var_3 : happy_var_1- )}}--happyReduce_48 = happySpecReduce_1 17# happyReduction_48-happyReduction_48 happy_x_1- = case happyOut37 happy_x_1 of { happy_var_1 -> - happyIn21- ([type2cons happy_var_1]- )}--happyReduce_49 = happySpecReduce_2 18# happyReduction_49-happyReduction_49 happy_x_2- happy_x_1- = case happyOut23 happy_x_2 of { happy_var_2 -> - happyIn22- (happy_var_2- )}--happyReduce_50 = happySpecReduce_0 18# happyReduction_50-happyReduction_50 = happyIn22- ([]- )--happyReduce_51 = happyReduce 4# 19# happyReduction_51-happyReduction_51 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut24 happy_x_3 of { happy_var_3 -> - happyIn23- (reverse happy_var_3- ) `HappyStk` happyRest}--happyReduce_52 = happySpecReduce_3 19# happyReduction_52-happyReduction_52 happy_x_3- happy_x_2- happy_x_1- = case happyOut24 happy_x_2 of { happy_var_2 -> - happyIn23- (reverse happy_var_2- )}--happyReduce_53 = happySpecReduce_1 20# happyReduction_53-happyReduction_53 happy_x_1- = case happyOut25 happy_x_1 of { happy_var_1 -> - happyIn24- (happy_var_1- )}--happyReduce_54 = happySpecReduce_0 20# happyReduction_54-happyReduction_54 = happyIn24- ([]- )--happyReduce_55 = happySpecReduce_3 21# happyReduction_55-happyReduction_55 happy_x_3- happy_x_2- happy_x_1- = case happyOut25 happy_x_1 of { happy_var_1 -> - case happyOut26 happy_x_3 of { happy_var_3 -> - happyIn25- (happy_var_3 : happy_var_1- )}}--happyReduce_56 = happySpecReduce_1 21# happyReduction_56-happyReduction_56 happy_x_1- = case happyOut26 happy_x_1 of { happy_var_1 -> - happyIn25- ([happy_var_1]- )}--happyReduce_57 = happySpecReduce_3 22# happyReduction_57-happyReduction_57 happy_x_3- happy_x_2- happy_x_1- = case happyOut32 happy_x_1 of { happy_var_1 -> - case happyOut37 happy_x_3 of { happy_var_3 -> - happyIn26- (Sig (reverse happy_var_1) happy_var_3- )}}--happyReduce_58 = happyReduce 4# 23# happyReduction_58-happyReduction_58 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut28 happy_x_3 of { happy_var_3 -> - happyIn27- (reverse happy_var_3- ) `HappyStk` happyRest}--happyReduce_59 = happySpecReduce_3 23# happyReduction_59-happyReduction_59 happy_x_3- happy_x_2- happy_x_1- = case happyOut28 happy_x_2 of { happy_var_2 -> - happyIn27- (reverse happy_var_2- )}--happyReduce_60 = happySpecReduce_3 24# happyReduction_60-happyReduction_60 happy_x_3- happy_x_2- happy_x_1- = case happyOut28 happy_x_1 of { happy_var_1 -> - case happyOut29 happy_x_3 of { happy_var_3 -> - happyIn28- (happy_var_3 : happy_var_1- )}}--happyReduce_61 = happySpecReduce_1 24# happyReduction_61-happyReduction_61 happy_x_1- = case happyOut29 happy_x_1 of { happy_var_1 -> - happyIn28- ([happy_var_1]- )}--happyReduce_62 = happySpecReduce_3 25# happyReduction_62-happyReduction_62 happy_x_3- happy_x_2- happy_x_1- = case happyOut32 happy_x_1 of { happy_var_1 -> - case happyOut37 happy_x_3 of { happy_var_3 -> - happyIn29- (BSig (reverse happy_var_1) happy_var_3- )}}--happyReduce_63 = happySpecReduce_2 25# happyReduction_63-happyReduction_63 happy_x_2- happy_x_1- = case happyOut33 happy_x_1 of { happy_var_1 -> - case happyOut34 happy_x_2 of { happy_var_2 -> - happyIn29- (BEqn happy_var_1 happy_var_2- )}}--happyReduce_64 = happySpecReduce_3 26# happyReduction_64-happyReduction_64 happy_x_3- happy_x_2- happy_x_1- = case happyOut30 happy_x_1 of { happy_var_1 -> - case happyOut31 happy_x_3 of { happy_var_3 -> - happyIn30- (happy_var_3 : happy_var_1- )}}--happyReduce_65 = happySpecReduce_1 26# happyReduction_65-happyReduction_65 happy_x_1- = case happyOut31 happy_x_1 of { happy_var_1 -> - happyIn30- ([happy_var_1]- )}--happyReduce_66 = happySpecReduce_3 27# happyReduction_66-happyReduction_66 happy_x_3- happy_x_2- happy_x_1- = case happyOut91 happy_x_1 of { happy_var_1 -> - case happyOut48 happy_x_3 of { happy_var_3 -> - happyIn31- (Field happy_var_1 happy_var_3- )}}--happyReduce_67 = happySpecReduce_3 28# happyReduction_67-happyReduction_67 happy_x_3- happy_x_2- happy_x_1- = case happyOut32 happy_x_1 of { happy_var_1 -> - case happyOut91 happy_x_3 of { happy_var_3 -> - happyIn32- (happy_var_3 : happy_var_1- )}}--happyReduce_68 = happySpecReduce_1 28# happyReduction_68-happyReduction_68 happy_x_1- = case happyOut91 happy_x_1 of { happy_var_1 -> - happyIn32- ([happy_var_1]- )}--happyReduce_69 = happySpecReduce_1 29# happyReduction_69-happyReduction_69 happy_x_1- = case happyOut83 happy_x_1 of { happy_var_1 -> - happyIn33- (exp2lhs happy_var_1- )}--happyReduce_70 = happySpecReduce_2 30# happyReduction_70-happyReduction_70 happy_x_2- happy_x_1- = case happyOut48 happy_x_2 of { happy_var_2 -> - happyIn34- (RExp happy_var_2- )}--happyReduce_71 = happySpecReduce_1 30# happyReduction_71-happyReduction_71 happy_x_1- = case happyOut35 happy_x_1 of { happy_var_1 -> - happyIn34- (RGrd (reverse happy_var_1)- )}--happyReduce_72 = happySpecReduce_3 30# happyReduction_72-happyReduction_72 happy_x_3- happy_x_2- happy_x_1- = case happyOut34 happy_x_1 of { happy_var_1 -> - case happyOut27 happy_x_3 of { happy_var_3 -> - happyIn34- (RWhere happy_var_1 happy_var_3- )}}--happyReduce_73 = happySpecReduce_2 31# happyReduction_73-happyReduction_73 happy_x_2- happy_x_1- = case happyOut35 happy_x_1 of { happy_var_1 -> - case happyOut36 happy_x_2 of { happy_var_2 -> - happyIn35- (happy_var_2 : happy_var_1- )}}--happyReduce_74 = happySpecReduce_1 31# happyReduction_74-happyReduction_74 happy_x_1- = case happyOut36 happy_x_1 of { happy_var_1 -> - happyIn35- ([happy_var_1]- )}--happyReduce_75 = happyReduce 4# 32# happyReduction_75-happyReduction_75 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut64 happy_x_2 of { happy_var_2 -> - case happyOut48 happy_x_4 of { happy_var_4 -> - happyIn36- (GExp (reverse happy_var_2) happy_var_4- ) `HappyStk` happyRest}}--happyReduce_76 = happySpecReduce_3 33# happyReduction_76-happyReduction_76 happy_x_3- happy_x_2- happy_x_1- = case happyOut38 happy_x_1 of { happy_var_1 -> - case happyOut44 happy_x_3 of { happy_var_3 -> - happyIn37- (TQual happy_var_1 happy_var_3- )}}--happyReduce_77 = happySpecReduce_1 33# happyReduction_77-happyReduction_77 happy_x_1- = case happyOut38 happy_x_1 of { happy_var_1 -> - happyIn37- (happy_var_1- )}--happyReduce_78 = happySpecReduce_1 34# happyReduction_78-happyReduction_78 happy_x_1- = case happyOut39 happy_x_1 of { happy_var_1 -> - happyIn38- (tFun (reverse (tail happy_var_1)) (head happy_var_1)- )}--happyReduce_79 = happySpecReduce_3 34# happyReduction_79-happyReduction_79 happy_x_3- happy_x_2- happy_x_1- = case happyOut40 happy_x_1 of { happy_var_1 -> - case happyOut40 happy_x_3 of { happy_var_3 -> - happyIn38- (TSub happy_var_1 happy_var_3- )}}--happyReduce_80 = happySpecReduce_3 35# happyReduction_80-happyReduction_80 happy_x_3- happy_x_2- happy_x_1- = case happyOut39 happy_x_1 of { happy_var_1 -> - case happyOut40 happy_x_3 of { happy_var_3 -> - happyIn39- (happy_var_3 : happy_var_1- )}}--happyReduce_81 = happySpecReduce_1 35# happyReduction_81-happyReduction_81 happy_x_1- = case happyOut40 happy_x_1 of { happy_var_1 -> - happyIn39- ([happy_var_1]- )}--happyReduce_82 = happySpecReduce_2 36# happyReduction_82-happyReduction_82 happy_x_2- happy_x_1- = case happyOut40 happy_x_1 of { happy_var_1 -> - case happyOut41 happy_x_2 of { happy_var_2 -> - happyIn40- (TAp happy_var_1 happy_var_2- )}}--happyReduce_83 = happySpecReduce_1 36# happyReduction_83-happyReduction_83 happy_x_1- = case happyOut41 happy_x_1 of { happy_var_1 -> - happyIn40- (happy_var_1- )}--happyReduce_84 = happySpecReduce_1 37# happyReduction_84-happyReduction_84 happy_x_1- = case happyOut92 happy_x_1 of { happy_var_1 -> - happyIn41- (TCon happy_var_1- )}--happyReduce_85 = happySpecReduce_1 37# happyReduction_85-happyReduction_85 happy_x_1- = case happyOut98 happy_x_1 of { happy_var_1 -> - happyIn41- (TVar happy_var_1- )}--happyReduce_86 = happySpecReduce_1 37# happyReduction_86-happyReduction_86 happy_x_1- = happyIn41- (TWild- )--happyReduce_87 = happySpecReduce_2 37# happyReduction_87-happyReduction_87 happy_x_2- happy_x_1- = happyIn41- (TCon (prim LIST)- )--happyReduce_88 = happySpecReduce_3 37# happyReduction_88-happyReduction_88 happy_x_3- happy_x_2- happy_x_1- = case happyOut43 happy_x_2 of { happy_var_2 -> - happyIn41- (TCon (tuple (happy_var_2+1))- )}--happyReduce_89 = happySpecReduce_2 37# happyReduction_89-happyReduction_89 happy_x_2- happy_x_1- = happyIn41- (TCon (prim UNITTYPE)- )--happyReduce_90 = happySpecReduce_3 37# happyReduction_90-happyReduction_90 happy_x_3- happy_x_2- happy_x_1- = case happyOut37 happy_x_2 of { happy_var_2 -> - happyIn41- (happy_var_2- )}--happyReduce_91 = happySpecReduce_3 37# happyReduction_91-happyReduction_91 happy_x_3- happy_x_2- happy_x_1- = case happyOut42 happy_x_2 of { happy_var_2 -> - happyIn41- (TTup (reverse happy_var_2)- )}--happyReduce_92 = happySpecReduce_3 37# happyReduction_92-happyReduction_92 happy_x_3- happy_x_2- happy_x_1- = case happyOut37 happy_x_2 of { happy_var_2 -> - happyIn41- (TList happy_var_2- )}--happyReduce_93 = happySpecReduce_3 38# happyReduction_93-happyReduction_93 happy_x_3- happy_x_2- happy_x_1- = case happyOut42 happy_x_1 of { happy_var_1 -> - case happyOut38 happy_x_3 of { happy_var_3 -> - happyIn42- (happy_var_3 : happy_var_1- )}}--happyReduce_94 = happySpecReduce_3 38# happyReduction_94-happyReduction_94 happy_x_3- happy_x_2- happy_x_1- = case happyOut38 happy_x_1 of { happy_var_1 -> - case happyOut38 happy_x_3 of { happy_var_3 -> - happyIn42- ([happy_var_3, happy_var_1]- )}}--happyReduce_95 = happySpecReduce_2 39# happyReduction_95-happyReduction_95 happy_x_2- happy_x_1- = case happyOut43 happy_x_1 of { happy_var_1 -> - happyIn43- (happy_var_1 + 1- )}--happyReduce_96 = happySpecReduce_1 39# happyReduction_96-happyReduction_96 happy_x_1- = happyIn43- (1- )--happyReduce_97 = happySpecReduce_3 40# happyReduction_97-happyReduction_97 happy_x_3- happy_x_2- happy_x_1- = case happyOut44 happy_x_1 of { happy_var_1 -> - case happyOut45 happy_x_3 of { happy_var_3 -> - happyIn44- (happy_var_3 : happy_var_1- )}}--happyReduce_98 = happySpecReduce_1 40# happyReduction_98-happyReduction_98 happy_x_1- = case happyOut45 happy_x_1 of { happy_var_1 -> - happyIn44- ([happy_var_1]- )}--happyReduce_99 = happySpecReduce_1 41# happyReduction_99-happyReduction_99 happy_x_1- = case happyOut38 happy_x_1 of { happy_var_1 -> - happyIn45- (PType happy_var_1- )}--happyReduce_100 = happySpecReduce_3 41# happyReduction_100-happyReduction_100 happy_x_3- happy_x_2- happy_x_1- = case happyOut98 happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_3 of { happy_var_3 -> - happyIn45- (PKind happy_var_1 happy_var_3- )}}--happyReduce_101 = happySpecReduce_3 42# happyReduction_101-happyReduction_101 happy_x_3- happy_x_2- happy_x_1- = case happyOut47 happy_x_1 of { happy_var_1 -> - case happyOut46 happy_x_3 of { happy_var_3 -> - happyIn46- (KFun happy_var_1 happy_var_3- )}}--happyReduce_102 = happySpecReduce_1 42# happyReduction_102-happyReduction_102 happy_x_1- = case happyOut47 happy_x_1 of { happy_var_1 -> - happyIn46- (happy_var_1- )}--happyReduce_103 = happySpecReduce_1 43# happyReduction_103-happyReduction_103 happy_x_1- = happyIn47- (Star- )--happyReduce_104 = happySpecReduce_1 43# happyReduction_104-happyReduction_104 happy_x_1- = happyIn47- (KWild- )--happyReduce_105 = happySpecReduce_3 43# happyReduction_105-happyReduction_105 happy_x_3- happy_x_2- happy_x_1- = case happyOut46 happy_x_2 of { happy_var_2 -> - happyIn47- (happy_var_2- )}--happyReduce_106 = happySpecReduce_3 44# happyReduction_106-happyReduction_106 happy_x_3- happy_x_2- happy_x_1- = case happyOut50 happy_x_1 of { happy_var_1 -> - case happyOut40 happy_x_3 of { happy_var_3 -> - happyIn48- (ESig happy_var_1 happy_var_3- )}}--happyReduce_107 = happySpecReduce_1 44# happyReduction_107-happyReduction_107 happy_x_1- = case happyOut49 happy_x_1 of { happy_var_1 -> - happyIn48- (happy_var_1- )}--happyReduce_108 = happySpecReduce_2 44# happyReduction_108-happyReduction_108 happy_x_2- happy_x_1- = case happyOut27 happy_x_2 of { happy_var_2 -> - happyIn48- (EBStruct Nothing [] happy_var_2- )}--happyReduce_109 = happySpecReduce_1 45# happyReduction_109-happyReduction_109 happy_x_1- = case happyOut50 happy_x_1 of { happy_var_1 -> - happyIn49- (happy_var_1- )}--happyReduce_110 = happySpecReduce_1 45# happyReduction_110-happyReduction_110 happy_x_1- = case happyOut51 happy_x_1 of { happy_var_1 -> - happyIn49- (happy_var_1- )}--happyReduce_111 = happySpecReduce_1 46# happyReduction_111-happyReduction_111 happy_x_1- = case happyOut52 happy_x_1 of { happy_var_1 -> - happyIn50- (transFix happy_var_1- )}--happyReduce_112 = happySpecReduce_1 46# happyReduction_112-happyReduction_112 happy_x_1- = case happyOut54 happy_x_1 of { happy_var_1 -> - happyIn50- (happy_var_1- )}--happyReduce_113 = happySpecReduce_1 47# happyReduction_113-happyReduction_113 happy_x_1- = case happyOut53 happy_x_1 of { happy_var_1 -> - happyIn51- (transFix happy_var_1- )}--happyReduce_114 = happySpecReduce_1 47# happyReduction_114-happyReduction_114 happy_x_1- = case happyOut56 happy_x_1 of { happy_var_1 -> - happyIn51- (happy_var_1- )}--happyReduce_115 = happyReduce 4# 48# happyReduction_115-happyReduction_115 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut54 happy_x_4 of { happy_var_4 -> - happyIn52- (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)- ) `HappyStk` happyRest}}}--happyReduce_116 = happySpecReduce_3 48# happyReduction_116-happyReduction_116 happy_x_3- happy_x_2- happy_x_1- = case happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut54 happy_x_3 of { happy_var_3 -> - happyIn52- (Cons happy_var_1 happy_var_2 happy_var_3- )}}}--happyReduce_117 = happySpecReduce_2 48# happyReduction_117-happyReduction_117 happy_x_2- happy_x_1- = case happyOut54 happy_x_2 of { happy_var_2 -> - happyIn52- (Nil (ENeg happy_var_2)- )}--happyReduce_118 = happyReduce 4# 48# happyReduction_118-happyReduction_118 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut54 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut54 happy_x_4 of { happy_var_4 -> - happyIn52- (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)- ) `HappyStk` happyRest}}}--happyReduce_119 = happySpecReduce_3 48# happyReduction_119-happyReduction_119 happy_x_3- happy_x_2- happy_x_1- = case happyOut54 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut54 happy_x_3 of { happy_var_3 -> - happyIn52- (Cons (Nil happy_var_1) happy_var_2 happy_var_3- )}}}--happyReduce_120 = happyReduce 4# 49# happyReduction_120-happyReduction_120 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut56 happy_x_4 of { happy_var_4 -> - happyIn53- (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)- ) `HappyStk` happyRest}}}--happyReduce_121 = happySpecReduce_3 49# happyReduction_121-happyReduction_121 happy_x_3- happy_x_2- happy_x_1- = case happyOut52 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut56 happy_x_3 of { happy_var_3 -> - happyIn53- (Cons happy_var_1 happy_var_2 happy_var_3- )}}}--happyReduce_122 = happySpecReduce_2 49# happyReduction_122-happyReduction_122 happy_x_2- happy_x_1- = case happyOut56 happy_x_2 of { happy_var_2 -> - happyIn53- (Nil (ENeg happy_var_2)- )}--happyReduce_123 = happyReduce 4# 49# happyReduction_123-happyReduction_123 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut54 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut56 happy_x_4 of { happy_var_4 -> - happyIn53- (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)- ) `HappyStk` happyRest}}}--happyReduce_124 = happySpecReduce_3 49# happyReduction_124-happyReduction_124 happy_x_3- happy_x_2- happy_x_1- = case happyOut54 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut56 happy_x_3 of { happy_var_3 -> - happyIn53- (Cons (Nil happy_var_1) happy_var_2 happy_var_3- )}}}--happyReduce_125 = happyReduce 4# 50# happyReduction_125-happyReduction_125 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut48 happy_x_2 of { happy_var_2 -> - case happyOut66 happy_x_4 of { happy_var_4 -> - happyIn54- (ECase happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_126 = happyReduce 4# 50# happyReduction_126-happyReduction_126 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut30 happy_x_3 of { happy_var_3 -> - happyIn54- (ERec Nothing (reverse happy_var_3)- ) `HappyStk` happyRest}--happyReduce_127 = happySpecReduce_3 50# happyReduction_127-happyReduction_127 happy_x_3- happy_x_2- happy_x_1- = happyIn54- (ERec Nothing []- )--happyReduce_128 = happySpecReduce_1 50# happyReduction_128-happyReduction_128 happy_x_1- = case happyOut55 happy_x_1 of { happy_var_1 -> - happyIn54- (happy_var_1- )}--happyReduce_129 = happySpecReduce_3 51# happyReduction_129-happyReduction_129 happy_x_3- happy_x_2- happy_x_1- = case happyOut78 happy_x_3 of { happy_var_3 -> - happyIn55- (EDo Nothing Nothing happy_var_3- )}--happyReduce_130 = happySpecReduce_3 51# happyReduction_130-happyReduction_130 happy_x_3- happy_x_2- happy_x_1- = case happyOut78 happy_x_3 of { happy_var_3 -> - happyIn55- (ETempl Nothing Nothing happy_var_3- )}--happyReduce_131 = happySpecReduce_3 51# happyReduction_131-happyReduction_131 happy_x_3- happy_x_2- happy_x_1- = case happyOut78 happy_x_3 of { happy_var_3 -> - happyIn55- (EAct Nothing happy_var_3- )}--happyReduce_132 = happySpecReduce_3 51# happyReduction_132-happyReduction_132 happy_x_3- happy_x_2- happy_x_1- = case happyOut78 happy_x_3 of { happy_var_3 -> - happyIn55- (EReq Nothing happy_var_3- )}--happyReduce_133 = happyReduce 5# 51# happyReduction_133-happyReduction_133 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut92 happy_x_1 of { happy_var_1 -> - case happyOut30 happy_x_4 of { happy_var_4 -> - happyIn55- (ERec (Just (happy_var_1,True)) (reverse happy_var_4)- ) `HappyStk` happyRest}}--happyReduce_134 = happyReduce 6# 51# happyReduction_134-happyReduction_134 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut92 happy_x_1 of { happy_var_1 -> - case happyOut30 happy_x_4 of { happy_var_4 -> - happyIn55- (ERec (Just (happy_var_1,False)) (reverse happy_var_4)- ) `HappyStk` happyRest}}--happyReduce_135 = happyReduce 7# 51# happyReduction_135-happyReduction_135 (happy_x_7 `HappyStk`- happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut92 happy_x_1 of { happy_var_1 -> - case happyOut30 happy_x_4 of { happy_var_4 -> - happyIn55- (ERec (Just (happy_var_1,False)) (reverse happy_var_4)- ) `HappyStk` happyRest}}--happyReduce_136 = happyReduce 5# 51# happyReduction_136-happyReduction_136 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut92 happy_x_1 of { happy_var_1 -> - happyIn55- (ERec (Just (happy_var_1,False)) []- ) `HappyStk` happyRest}--happyReduce_137 = happyReduce 4# 51# happyReduction_137-happyReduction_137 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut92 happy_x_1 of { happy_var_1 -> - happyIn55- (ERec (Just (happy_var_1,True)) []- ) `HappyStk` happyRest}--happyReduce_138 = happySpecReduce_1 51# happyReduction_138-happyReduction_138 happy_x_1- = case happyOut58 happy_x_1 of { happy_var_1 -> - happyIn55- (happy_var_1- )}--happyReduce_139 = happyReduce 6# 52# happyReduction_139-happyReduction_139 (happy_x_6 `HappyStk`- happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut48 happy_x_2 of { happy_var_2 -> - case happyOut48 happy_x_4 of { happy_var_4 -> - case happyOut48 happy_x_6 of { happy_var_6 -> - happyIn56- (EIf happy_var_2 happy_var_4 happy_var_6- ) `HappyStk` happyRest}}}--happyReduce_140 = happySpecReduce_1 52# happyReduction_140-happyReduction_140 happy_x_1- = case happyOut57 happy_x_1 of { happy_var_1 -> - happyIn56- (happy_var_1- )}--happyReduce_141 = happyReduce 4# 53# happyReduction_141-happyReduction_141 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut89 happy_x_2 of { happy_var_2 -> - case happyOut48 happy_x_4 of { happy_var_4 -> - happyIn57- (ELam (reverse happy_var_2) happy_var_4- ) `HappyStk` happyRest}}--happyReduce_142 = happyReduce 4# 53# happyReduction_142-happyReduction_142 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut27 happy_x_2 of { happy_var_2 -> - case happyOut48 happy_x_4 of { happy_var_4 -> - happyIn57- (ELet happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_143 = happySpecReduce_3 53# happyReduction_143-happyReduction_143 happy_x_3- happy_x_2- happy_x_1- = case happyOut59 happy_x_2 of { happy_var_2 -> - case happyOut48 happy_x_3 of { happy_var_3 -> - happyIn57- (EAfter happy_var_2 happy_var_3- )}}--happyReduce_144 = happySpecReduce_3 53# happyReduction_144-happyReduction_144 happy_x_3- happy_x_2- happy_x_1- = case happyOut59 happy_x_2 of { happy_var_2 -> - case happyOut48 happy_x_3 of { happy_var_3 -> - happyIn57- (EBefore happy_var_2 happy_var_3- )}}--happyReduce_145 = happySpecReduce_2 54# happyReduction_145-happyReduction_145 happy_x_2- happy_x_1- = case happyOut58 happy_x_1 of { happy_var_1 -> - case happyOut59 happy_x_2 of { happy_var_2 -> - happyIn58- (EAp happy_var_1 happy_var_2- )}}--happyReduce_146 = happySpecReduce_1 54# happyReduction_146-happyReduction_146 happy_x_1- = case happyOut59 happy_x_1 of { happy_var_1 -> - happyIn58- (happy_var_1- )}--happyReduce_147 = happySpecReduce_3 55# happyReduction_147-happyReduction_147 happy_x_3- happy_x_2- happy_x_1- = case happyOut59 happy_x_1 of { happy_var_1 -> - case happyOut91 happy_x_3 of { happy_var_3 -> - happyIn59- (ESelect happy_var_1 happy_var_3- )}}--happyReduce_148 = happySpecReduce_1 55# happyReduction_148-happyReduction_148 happy_x_1- = case happyOut60 happy_x_1 of { happy_var_1 -> - happyIn59- (happy_var_1- )}--happyReduce_149 = happySpecReduce_1 56# happyReduction_149-happyReduction_149 happy_x_1- = case happyOut91 happy_x_1 of { happy_var_1 -> - happyIn60- (EVar happy_var_1- )}--happyReduce_150 = happySpecReduce_1 56# happyReduction_150-happyReduction_150 happy_x_1- = happyIn60- (EWild- )--happyReduce_151 = happySpecReduce_1 56# happyReduction_151-happyReduction_151 happy_x_1- = case happyOut92 happy_x_1 of { happy_var_1 -> - happyIn60- (ECon happy_var_1- )}--happyReduce_152 = happySpecReduce_1 56# happyReduction_152-happyReduction_152 happy_x_1- = case happyOut61 happy_x_1 of { happy_var_1 -> - happyIn60- (ELit happy_var_1- )}--happyReduce_153 = happySpecReduce_2 56# happyReduction_153-happyReduction_153 happy_x_2- happy_x_1- = happyIn60- (ECon (prim UNITTERM)- )--happyReduce_154 = happyReduce 4# 56# happyReduction_154-happyReduction_154 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut91 happy_x_3 of { happy_var_3 -> - happyIn60- (ESel happy_var_3- ) `HappyStk` happyRest}--happyReduce_155 = happySpecReduce_3 56# happyReduction_155-happyReduction_155 happy_x_3- happy_x_2- happy_x_1- = case happyOut48 happy_x_2 of { happy_var_2 -> - happyIn60- (happy_var_2- )}--happyReduce_156 = happySpecReduce_3 56# happyReduction_156-happyReduction_156 happy_x_3- happy_x_2- happy_x_1- = case happyOut63 happy_x_2 of { happy_var_2 -> - happyIn60- (ETup (reverse happy_var_2)- )}--happyReduce_157 = happySpecReduce_3 56# happyReduction_157-happyReduction_157 happy_x_3- happy_x_2- happy_x_1- = case happyOut62 happy_x_2 of { happy_var_2 -> - happyIn60- (happy_var_2- )}--happyReduce_158 = happyReduce 4# 56# happyReduction_158-happyReduction_158 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut54 happy_x_2 of { happy_var_2 -> - case happyOut95 happy_x_3 of { happy_var_3 -> - happyIn60- (ESectR happy_var_2 happy_var_3- ) `HappyStk` happyRest}}--happyReduce_159 = happyReduce 4# 56# happyReduction_159-happyReduction_159 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut97 happy_x_2 of { happy_var_2 -> - case happyOut58 happy_x_3 of { happy_var_3 -> - happyIn60- (ESectL happy_var_2 happy_var_3- ) `HappyStk` happyRest}}--happyReduce_160 = happySpecReduce_3 56# happyReduction_160-happyReduction_160 happy_x_3- happy_x_2- happy_x_1- = case happyOut43 happy_x_2 of { happy_var_2 -> - happyIn60- (ECon (tuple (happy_var_2+1))- )}--happyReduce_161 = happySpecReduce_2 57# happyReduction_161-happyReduction_161 happy_x_2- happy_x_1- = case happyOut107 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { (IntTok happy_var_2) -> - happyIn61- (LInt (Just happy_var_1) (readInteger happy_var_2)- )}}--happyReduce_162 = happySpecReduce_2 57# happyReduction_162-happyReduction_162 happy_x_2- happy_x_1- = case happyOut107 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { (FloatTok happy_var_2) -> - happyIn61- (LRat (Just happy_var_1) (readRational happy_var_2)- )}}--happyReduce_163 = happySpecReduce_2 57# happyReduction_163-happyReduction_163 happy_x_2- happy_x_1- = case happyOut107 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { (Character happy_var_2) -> - happyIn61- (LChr (Just happy_var_1) happy_var_2- )}}--happyReduce_164 = happySpecReduce_2 57# happyReduction_164-happyReduction_164 happy_x_2- happy_x_1- = case happyOut107 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { (StringTok happy_var_2) -> - happyIn61- (LStr (Just happy_var_1) happy_var_2- )}}--happyReduce_165 = happySpecReduce_0 58# happyReduction_165-happyReduction_165 = happyIn62- (EList []- )--happyReduce_166 = happySpecReduce_1 58# happyReduction_166-happyReduction_166 happy_x_1- = case happyOut48 happy_x_1 of { happy_var_1 -> - happyIn62- (EList [happy_var_1]- )}--happyReduce_167 = happySpecReduce_1 58# happyReduction_167-happyReduction_167 happy_x_1- = case happyOut63 happy_x_1 of { happy_var_1 -> - happyIn62- (EList (reverse happy_var_1)- )}--happyReduce_168 = happySpecReduce_3 58# happyReduction_168-happyReduction_168 happy_x_3- happy_x_2- happy_x_1- = case happyOut48 happy_x_1 of { happy_var_1 -> - case happyOut48 happy_x_3 of { happy_var_3 -> - happyIn62- (ESeq happy_var_1 Nothing happy_var_3- )}}--happyReduce_169 = happyReduce 5# 58# happyReduction_169-happyReduction_169 (happy_x_5 `HappyStk`- happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut48 happy_x_1 of { happy_var_1 -> - case happyOut48 happy_x_3 of { happy_var_3 -> - case happyOut48 happy_x_5 of { happy_var_5 -> - happyIn62- (ESeq happy_var_1 (Just happy_var_3) happy_var_5- ) `HappyStk` happyRest}}}--happyReduce_170 = happySpecReduce_3 58# happyReduction_170-happyReduction_170 happy_x_3- happy_x_2- happy_x_1- = case happyOut48 happy_x_1 of { happy_var_1 -> - case happyOut64 happy_x_3 of { happy_var_3 -> - happyIn62- (EComp happy_var_1 (reverse happy_var_3)- )}}--happyReduce_171 = happySpecReduce_3 59# happyReduction_171-happyReduction_171 happy_x_3- happy_x_2- happy_x_1- = case happyOut63 happy_x_1 of { happy_var_1 -> - case happyOut48 happy_x_3 of { happy_var_3 -> - happyIn63- (happy_var_3 : happy_var_1- )}}--happyReduce_172 = happySpecReduce_3 59# happyReduction_172-happyReduction_172 happy_x_3- happy_x_2- happy_x_1- = case happyOut48 happy_x_1 of { happy_var_1 -> - case happyOut48 happy_x_3 of { happy_var_3 -> - happyIn63- ([happy_var_3,happy_var_1]- )}}--happyReduce_173 = happySpecReduce_3 60# happyReduction_173-happyReduction_173 happy_x_3- happy_x_2- happy_x_1- = case happyOut64 happy_x_1 of { happy_var_1 -> - case happyOut65 happy_x_3 of { happy_var_3 -> - happyIn64- (happy_var_3 : happy_var_1- )}}--happyReduce_174 = happySpecReduce_1 60# happyReduction_174-happyReduction_174 happy_x_1- = case happyOut65 happy_x_1 of { happy_var_1 -> - happyIn64- ([happy_var_1]- )}--happyReduce_175 = happySpecReduce_3 61# happyReduction_175-happyReduction_175 happy_x_3- happy_x_2- happy_x_1- = case happyOut88 happy_x_1 of { happy_var_1 -> - case happyOut83 happy_x_3 of { happy_var_3 -> - happyIn65- (QGen happy_var_1 happy_var_3- )}}--happyReduce_176 = happySpecReduce_1 61# happyReduction_176-happyReduction_176 happy_x_1- = case happyOut83 happy_x_1 of { happy_var_1 -> - happyIn65- (QExp happy_var_1- )}--happyReduce_177 = happySpecReduce_2 61# happyReduction_177-happyReduction_177 happy_x_2- happy_x_1- = case happyOut27 happy_x_2 of { happy_var_2 -> - happyIn65- (QLet happy_var_2- )}--happyReduce_178 = happyReduce 4# 62# happyReduction_178-happyReduction_178 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut67 happy_x_3 of { happy_var_3 -> - happyIn66- (reverse happy_var_3- ) `HappyStk` happyRest}--happyReduce_179 = happySpecReduce_3 62# happyReduction_179-happyReduction_179 happy_x_3- happy_x_2- happy_x_1- = case happyOut67 happy_x_2 of { happy_var_2 -> - happyIn66- (reverse happy_var_2- )}--happyReduce_180 = happySpecReduce_3 63# happyReduction_180-happyReduction_180 happy_x_3- happy_x_2- happy_x_1- = case happyOut67 happy_x_1 of { happy_var_1 -> - case happyOut68 happy_x_3 of { happy_var_3 -> - happyIn67- (happy_var_3 : happy_var_1- )}}--happyReduce_181 = happySpecReduce_1 63# happyReduction_181-happyReduction_181 happy_x_1- = case happyOut68 happy_x_1 of { happy_var_1 -> - happyIn67- ([happy_var_1]- )}--happyReduce_182 = happySpecReduce_2 64# happyReduction_182-happyReduction_182 happy_x_2- happy_x_1- = case happyOut88 happy_x_1 of { happy_var_1 -> - case happyOut69 happy_x_2 of { happy_var_2 -> - happyIn68- (Alt happy_var_1 happy_var_2- )}}--happyReduce_183 = happySpecReduce_2 65# happyReduction_183-happyReduction_183 happy_x_2- happy_x_1- = case happyOut48 happy_x_2 of { happy_var_2 -> - happyIn69- (RExp happy_var_2- )}--happyReduce_184 = happySpecReduce_1 65# happyReduction_184-happyReduction_184 happy_x_1- = case happyOut70 happy_x_1 of { happy_var_1 -> - happyIn69- (RGrd (reverse happy_var_1)- )}--happyReduce_185 = happySpecReduce_3 65# happyReduction_185-happyReduction_185 happy_x_3- happy_x_2- happy_x_1- = case happyOut69 happy_x_1 of { happy_var_1 -> - case happyOut27 happy_x_3 of { happy_var_3 -> - happyIn69- (RWhere happy_var_1 happy_var_3- )}}--happyReduce_186 = happySpecReduce_2 66# happyReduction_186-happyReduction_186 happy_x_2- happy_x_1- = case happyOut70 happy_x_1 of { happy_var_1 -> - case happyOut71 happy_x_2 of { happy_var_2 -> - happyIn70- (happy_var_2 : happy_var_1- )}}--happyReduce_187 = happySpecReduce_1 66# happyReduction_187-happyReduction_187 happy_x_1- = case happyOut71 happy_x_1 of { happy_var_1 -> - happyIn70- ([happy_var_1]- )}--happyReduce_188 = happyReduce 4# 67# happyReduction_188-happyReduction_188 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut64 happy_x_2 of { happy_var_2 -> - case happyOut48 happy_x_4 of { happy_var_4 -> - happyIn71- (GExp (reverse happy_var_2) happy_var_4- ) `HappyStk` happyRest}}--happyReduce_189 = happyReduce 4# 68# happyReduction_189-happyReduction_189 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut73 happy_x_3 of { happy_var_3 -> - happyIn72- (reverse happy_var_3- ) `HappyStk` happyRest}--happyReduce_190 = happySpecReduce_3 68# happyReduction_190-happyReduction_190 happy_x_3- happy_x_2- happy_x_1- = case happyOut73 happy_x_2 of { happy_var_2 -> - happyIn72- (reverse happy_var_2- )}--happyReduce_191 = happySpecReduce_3 69# happyReduction_191-happyReduction_191 happy_x_3- happy_x_2- happy_x_1- = case happyOut73 happy_x_1 of { happy_var_1 -> - case happyOut74 happy_x_3 of { happy_var_3 -> - happyIn73- (happy_var_3 : happy_var_1- )}}--happyReduce_192 = happySpecReduce_1 69# happyReduction_192-happyReduction_192 happy_x_1- = case happyOut74 happy_x_1 of { happy_var_1 -> - happyIn73- ([happy_var_1]- )}--happyReduce_193 = happySpecReduce_2 70# happyReduction_193-happyReduction_193 happy_x_2- happy_x_1- = case happyOut88 happy_x_1 of { happy_var_1 -> - case happyOut75 happy_x_2 of { happy_var_2 -> - happyIn74- (Alt happy_var_1 happy_var_2- )}}--happyReduce_194 = happySpecReduce_2 71# happyReduction_194-happyReduction_194 happy_x_2- happy_x_1- = case happyOut78 happy_x_2 of { happy_var_2 -> - happyIn75- (RExp happy_var_2- )}--happyReduce_195 = happySpecReduce_1 71# happyReduction_195-happyReduction_195 happy_x_1- = case happyOut76 happy_x_1 of { happy_var_1 -> - happyIn75- (RGrd (reverse happy_var_1)- )}--happyReduce_196 = happySpecReduce_3 71# happyReduction_196-happyReduction_196 happy_x_3- happy_x_2- happy_x_1- = case happyOut75 happy_x_1 of { happy_var_1 -> - case happyOut27 happy_x_3 of { happy_var_3 -> - happyIn75- (RWhere happy_var_1 happy_var_3- )}}--happyReduce_197 = happySpecReduce_2 72# happyReduction_197-happyReduction_197 happy_x_2- happy_x_1- = case happyOut76 happy_x_1 of { happy_var_1 -> - case happyOut77 happy_x_2 of { happy_var_2 -> - happyIn76- (happy_var_2 : happy_var_1- )}}--happyReduce_198 = happySpecReduce_1 72# happyReduction_198-happyReduction_198 happy_x_1- = case happyOut77 happy_x_1 of { happy_var_1 -> - happyIn76- ([happy_var_1]- )}--happyReduce_199 = happyReduce 4# 73# happyReduction_199-happyReduction_199 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut64 happy_x_2 of { happy_var_2 -> - case happyOut78 happy_x_4 of { happy_var_4 -> - happyIn77- (GExp (reverse happy_var_2) happy_var_4- ) `HappyStk` happyRest}}--happyReduce_200 = happyReduce 4# 74# happyReduction_200-happyReduction_200 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut79 happy_x_3 of { happy_var_3 -> - happyIn78- (reverse happy_var_3- ) `HappyStk` happyRest}--happyReduce_201 = happySpecReduce_3 74# happyReduction_201-happyReduction_201 happy_x_3- happy_x_2- happy_x_1- = case happyOut79 happy_x_2 of { happy_var_2 -> - happyIn78- (reverse happy_var_2- )}--happyReduce_202 = happySpecReduce_1 75# happyReduction_202-happyReduction_202 happy_x_1- = case happyOut80 happy_x_1 of { happy_var_1 -> - happyIn79- (happy_var_1- )}--happyReduce_203 = happySpecReduce_0 75# happyReduction_203-happyReduction_203 = happyIn79- ([]- )--happyReduce_204 = happySpecReduce_3 76# happyReduction_204-happyReduction_204 happy_x_3- happy_x_2- happy_x_1- = case happyOut80 happy_x_1 of { happy_var_1 -> - case happyOut81 happy_x_3 of { happy_var_3 -> - happyIn80- (happy_var_3 : happy_var_1- )}}--happyReduce_205 = happySpecReduce_1 76# happyReduction_205-happyReduction_205 happy_x_1- = case happyOut81 happy_x_1 of { happy_var_1 -> - happyIn80- ([happy_var_1]- )}--happyReduce_206 = happySpecReduce_3 77# happyReduction_206-happyReduction_206 happy_x_3- happy_x_2- happy_x_1- = case happyOut88 happy_x_1 of { happy_var_1 -> - case happyOut48 happy_x_3 of { happy_var_3 -> - happyIn81- (SGen happy_var_1 happy_var_3- )}}--happyReduce_207 = happySpecReduce_1 77# happyReduction_207-happyReduction_207 happy_x_1- = case happyOut82 happy_x_1 of { happy_var_1 -> - happyIn81- (SExp happy_var_1- )}--happyReduce_208 = happySpecReduce_3 77# happyReduction_208-happyReduction_208 happy_x_3- happy_x_2- happy_x_1- = case happyOut32 happy_x_1 of { happy_var_1 -> - case happyOut37 happy_x_3 of { happy_var_3 -> - happyIn81- (SBind [BSig happy_var_1 happy_var_3]- )}}--happyReduce_209 = happySpecReduce_2 77# happyReduction_209-happyReduction_209 happy_x_2- happy_x_1- = case happyOut33 happy_x_1 of { happy_var_1 -> - case happyOut34 happy_x_2 of { happy_var_2 -> - happyIn81- (SBind [BEqn happy_var_1 happy_var_2]- )}}--happyReduce_210 = happyReduce 4# 77# happyReduction_210-happyReduction_210 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut33 happy_x_1 of { happy_var_1 -> - case happyOut48 happy_x_4 of { happy_var_4 -> - happyIn81- (SBind [BEqn happy_var_1 (RExp (EAp (EVar (prim New)) happy_var_4))]- ) `HappyStk` happyRest}}--happyReduce_211 = happySpecReduce_3 77# happyReduction_211-happyReduction_211 happy_x_3- happy_x_2- happy_x_1- = case happyOut88 happy_x_1 of { happy_var_1 -> - case happyOut48 happy_x_3 of { happy_var_3 -> - happyIn81- (SAss happy_var_1 happy_var_3- )}}--happyReduce_212 = happySpecReduce_2 77# happyReduction_212-happyReduction_212 happy_x_2- happy_x_1- = case happyOut48 happy_x_2 of { happy_var_2 -> - happyIn81- (SRet happy_var_2- )}--happyReduce_213 = happyReduce 4# 77# happyReduction_213-happyReduction_213 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut64 happy_x_2 of { happy_var_2 -> - case happyOut78 happy_x_4 of { happy_var_4 -> - happyIn81- (SForall (reverse happy_var_2) happy_var_4- ) `HappyStk` happyRest}}--happyReduce_214 = happyReduce 4# 77# happyReduction_214-happyReduction_214 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut48 happy_x_2 of { happy_var_2 -> - case happyOut78 happy_x_4 of { happy_var_4 -> - happyIn81- (SIf happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_215 = happyReduce 4# 77# happyReduction_215-happyReduction_215 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut48 happy_x_2 of { happy_var_2 -> - case happyOut78 happy_x_4 of { happy_var_4 -> - happyIn81- (SElsif happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_216 = happySpecReduce_2 77# happyReduction_216-happyReduction_216 happy_x_2- happy_x_1- = case happyOut78 happy_x_2 of { happy_var_2 -> - happyIn81- (SElse happy_var_2- )}--happyReduce_217 = happyReduce 4# 77# happyReduction_217-happyReduction_217 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut48 happy_x_2 of { happy_var_2 -> - case happyOut78 happy_x_4 of { happy_var_4 -> - happyIn81- (SWhile happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_218 = happyReduce 4# 77# happyReduction_218-happyReduction_218 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut48 happy_x_2 of { happy_var_2 -> - case happyOut72 happy_x_4 of { happy_var_4 -> - happyIn81- (SCase happy_var_2 happy_var_4- ) `HappyStk` happyRest}}--happyReduce_219 = happySpecReduce_1 78# happyReduction_219-happyReduction_219 happy_x_1- = case happyOut83 happy_x_1 of { happy_var_1 -> - happyIn82- (happy_var_1- )}--happyReduce_220 = happySpecReduce_1 79# happyReduction_220-happyReduction_220 happy_x_1- = case happyOut84 happy_x_1 of { happy_var_1 -> - happyIn83- (happy_var_1- )}--happyReduce_221 = happySpecReduce_1 79# happyReduction_221-happyReduction_221 happy_x_1- = case happyOut85 happy_x_1 of { happy_var_1 -> - happyIn83- (happy_var_1- )}--happyReduce_222 = happySpecReduce_1 80# happyReduction_222-happyReduction_222 happy_x_1- = case happyOut86 happy_x_1 of { happy_var_1 -> - happyIn84- (transFix happy_var_1- )}--happyReduce_223 = happySpecReduce_1 80# happyReduction_223-happyReduction_223 happy_x_1- = case happyOut55 happy_x_1 of { happy_var_1 -> - happyIn84- (happy_var_1- )}--happyReduce_224 = happySpecReduce_1 81# happyReduction_224-happyReduction_224 happy_x_1- = case happyOut87 happy_x_1 of { happy_var_1 -> - happyIn85- (transFix happy_var_1- )}--happyReduce_225 = happySpecReduce_1 81# happyReduction_225-happyReduction_225 happy_x_1- = case happyOut57 happy_x_1 of { happy_var_1 -> - happyIn85- (happy_var_1- )}--happyReduce_226 = happyReduce 4# 82# happyReduction_226-happyReduction_226 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut86 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut55 happy_x_4 of { happy_var_4 -> - happyIn86- (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)- ) `HappyStk` happyRest}}}--happyReduce_227 = happySpecReduce_3 82# happyReduction_227-happyReduction_227 happy_x_3- happy_x_2- happy_x_1- = case happyOut86 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut55 happy_x_3 of { happy_var_3 -> - happyIn86- (Cons happy_var_1 happy_var_2 happy_var_3- )}}}--happyReduce_228 = happySpecReduce_2 82# happyReduction_228-happyReduction_228 happy_x_2- happy_x_1- = case happyOut55 happy_x_2 of { happy_var_2 -> - happyIn86- (Nil (ENeg happy_var_2)- )}--happyReduce_229 = happyReduce 4# 82# happyReduction_229-happyReduction_229 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut55 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut55 happy_x_4 of { happy_var_4 -> - happyIn86- (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)- ) `HappyStk` happyRest}}}--happyReduce_230 = happySpecReduce_3 82# happyReduction_230-happyReduction_230 happy_x_3- happy_x_2- happy_x_1- = case happyOut55 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut55 happy_x_3 of { happy_var_3 -> - happyIn86- (Cons (Nil happy_var_1) happy_var_2 happy_var_3- )}}}--happyReduce_231 = happyReduce 4# 83# happyReduction_231-happyReduction_231 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut86 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut57 happy_x_4 of { happy_var_4 -> - happyIn87- (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)- ) `HappyStk` happyRest}}}--happyReduce_232 = happySpecReduce_3 83# happyReduction_232-happyReduction_232 happy_x_3- happy_x_2- happy_x_1- = case happyOut86 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut57 happy_x_3 of { happy_var_3 -> - happyIn87- (Cons happy_var_1 happy_var_2 happy_var_3- )}}}--happyReduce_233 = happySpecReduce_2 83# happyReduction_233-happyReduction_233 happy_x_2- happy_x_1- = case happyOut57 happy_x_2 of { happy_var_2 -> - happyIn87- (Nil (ENeg happy_var_2)- )}--happyReduce_234 = happyReduce 4# 83# happyReduction_234-happyReduction_234 (happy_x_4 `HappyStk`- happy_x_3 `HappyStk`- happy_x_2 `HappyStk`- happy_x_1 `HappyStk`- happyRest)- = case happyOut55 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut57 happy_x_4 of { happy_var_4 -> - happyIn87- (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)- ) `HappyStk` happyRest}}}--happyReduce_235 = happySpecReduce_3 83# happyReduction_235-happyReduction_235 happy_x_3- happy_x_2- happy_x_1- = case happyOut55 happy_x_1 of { happy_var_1 -> - case happyOut95 happy_x_2 of { happy_var_2 -> - case happyOut57 happy_x_3 of { happy_var_3 -> - happyIn87- (Cons (Nil happy_var_1) happy_var_2 happy_var_3- )}}}--happyReduce_236 = happySpecReduce_1 84# happyReduction_236-happyReduction_236 happy_x_1- = case happyOut83 happy_x_1 of { happy_var_1 -> - happyIn88- (happy_var_1- )}--happyReduce_237 = happySpecReduce_2 85# happyReduction_237-happyReduction_237 happy_x_2- happy_x_1- = case happyOut89 happy_x_1 of { happy_var_1 -> - case happyOut90 happy_x_2 of { happy_var_2 -> - happyIn89- (happy_var_2 : happy_var_1- )}}--happyReduce_238 = happySpecReduce_1 85# happyReduction_238-happyReduction_238 happy_x_1- = case happyOut90 happy_x_1 of { happy_var_1 -> - happyIn89- ([happy_var_1]- )}--happyReduce_239 = happySpecReduce_1 86# happyReduction_239-happyReduction_239 happy_x_1- = case happyOut59 happy_x_1 of { happy_var_1 -> - happyIn90- (happy_var_1- )}--happyReduce_240 = happySpecReduce_1 87# happyReduction_240-happyReduction_240 happy_x_1- = case happyOut98 happy_x_1 of { happy_var_1 -> - happyIn91- (happy_var_1- )}--happyReduce_241 = happySpecReduce_3 87# happyReduction_241-happyReduction_241 happy_x_3- happy_x_2- happy_x_1- = case happyOut100 happy_x_2 of { happy_var_2 -> - happyIn91- (happy_var_2- )}--happyReduce_242 = happySpecReduce_1 88# happyReduction_242-happyReduction_242 happy_x_1- = case happyOut99 happy_x_1 of { happy_var_1 -> - happyIn92- (happy_var_1- )}--happyReduce_243 = happySpecReduce_3 88# happyReduction_243-happyReduction_243 happy_x_3- happy_x_2- happy_x_1- = case happyOut101 happy_x_2 of { happy_var_2 -> - happyIn92- (happy_var_2- )}--happyReduce_244 = happySpecReduce_1 89# happyReduction_244-happyReduction_244 happy_x_1- = case happyOut100 happy_x_1 of { happy_var_1 -> - happyIn93- (happy_var_1- )}--happyReduce_245 = happySpecReduce_3 89# happyReduction_245-happyReduction_245 happy_x_3- happy_x_2- happy_x_1- = case happyOut98 happy_x_2 of { happy_var_2 -> - happyIn93- (happy_var_2- )}--happyReduce_246 = happySpecReduce_1 90# happyReduction_246-happyReduction_246 happy_x_1- = case happyOut101 happy_x_1 of { happy_var_1 -> - happyIn94- (happy_var_1- )}--happyReduce_247 = happySpecReduce_3 90# happyReduction_247-happyReduction_247 happy_x_3- happy_x_2- happy_x_1- = case happyOut99 happy_x_2 of { happy_var_2 -> - happyIn94- (happy_var_2- )}--happyReduce_248 = happySpecReduce_1 91# happyReduction_248-happyReduction_248 happy_x_1- = case happyOut93 happy_x_1 of { happy_var_1 -> - happyIn95- (happy_var_1- )}--happyReduce_249 = happySpecReduce_1 91# happyReduction_249-happyReduction_249 happy_x_1- = case happyOut94 happy_x_1 of { happy_var_1 -> - happyIn95- (happy_var_1- )}--happyReduce_250 = happySpecReduce_1 92# happyReduction_250-happyReduction_250 happy_x_1- = case happyOut98 happy_x_1 of { happy_var_1 -> - happyIn96- (happy_var_1- )}--happyReduce_251 = happySpecReduce_1 92# happyReduction_251-happyReduction_251 happy_x_1- = case happyOut99 happy_x_1 of { happy_var_1 -> - happyIn96- (happy_var_1- )}--happyReduce_252 = happyMonadReduce 1# 93# happyReduction_252-happyReduction_252 (happy_x_1 `HappyStk`- happyRest) tk- = happyThen (case happyOut103 happy_x_1 of { happy_var_1 -> - ( do l <- getSrcLoc; return (name l happy_var_1))}- ) (\r -> happyReturn (happyIn97 r))--happyReduce_253 = happySpecReduce_3 93# happyReduction_253-happyReduction_253 happy_x_3- happy_x_2- happy_x_1- = case happyOut98 happy_x_2 of { happy_var_2 -> - happyIn97- (happy_var_2- )}--happyReduce_254 = happySpecReduce_1 93# happyReduction_254-happyReduction_254 happy_x_1- = case happyOut94 happy_x_1 of { happy_var_1 -> - happyIn97- (happy_var_1- )}--happyReduce_255 = happySpecReduce_2 94# happyReduction_255-happyReduction_255 happy_x_2- happy_x_1- = case happyOut107 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { (VarId happy_var_2) -> - happyIn98- (name happy_var_1 happy_var_2- )}}--happyReduce_256 = happySpecReduce_2 95# happyReduction_256-happyReduction_256 happy_x_2- happy_x_1- = case happyOut107 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { (ConId happy_var_2) -> - happyIn99- (name happy_var_1 happy_var_2- )}}--happyReduce_257 = happyMonadReduce 1# 96# happyReduction_257-happyReduction_257 (happy_x_1 `HappyStk`- happyRest) tk- = happyThen (case happyOut102 happy_x_1 of { happy_var_1 -> - ( do l <- getSrcLoc; return (name l happy_var_1))}- ) (\r -> happyReturn (happyIn100 r))--happyReduce_258 = happySpecReduce_2 97# happyReduction_258-happyReduction_258 happy_x_2- happy_x_1- = case happyOut107 happy_x_1 of { happy_var_1 -> - case happyOutTok happy_x_2 of { (ConSym happy_var_2) -> - happyIn101- (name happy_var_1 happy_var_2- )}}--happyReduce_259 = happySpecReduce_1 98# happyReduction_259-happyReduction_259 happy_x_1- = case happyOut103 happy_x_1 of { happy_var_1 -> - happyIn102- (happy_var_1- )}--happyReduce_260 = happySpecReduce_1 98# happyReduction_260-happyReduction_260 happy_x_1- = happyIn102- (("","-")- )--happyReduce_261 = happySpecReduce_1 99# happyReduction_261-happyReduction_261 happy_x_1- = case happyOutTok happy_x_1 of { (VarSym happy_var_1) -> - happyIn103- (happy_var_1- )}--happyReduce_262 = happySpecReduce_1 99# happyReduction_262-happyReduction_262 happy_x_1- = happyIn103- (("","<")- )--happyReduce_263 = happySpecReduce_1 99# happyReduction_263-happyReduction_263 happy_x_1- = happyIn103- (("",">")- )--happyReduce_264 = happySpecReduce_1 99# happyReduction_264-happyReduction_264 happy_x_1- = happyIn103- (("","*")- )--happyReduce_265 = happySpecReduce_1 99# happyReduction_265-happyReduction_265 happy_x_1- = happyIn103- (("","\\\\")- )--happyReduce_266 = happySpecReduce_1 100# happyReduction_266-happyReduction_266 happy_x_1- = happyIn104- (()- )--happyReduce_267 = happyMonadReduce 1# 100# happyReduction_267-happyReduction_267 (happy_x_1 `HappyStk`- happyRest) tk- = happyThen (( popContext)- ) (\r -> happyReturn (happyIn104 r))--happyReduce_268 = happyMonadReduce 0# 101# happyReduction_268-happyReduction_268 (happyRest) tk- = happyThen (( pushContext NoLayout)- ) (\r -> happyReturn (happyIn105 r))--happyReduce_269 = happyMonadReduce 0# 102# happyReduction_269-happyReduction_269 (happyRest) tk- = happyThen (( do { (r,c) <- getSrcLoc ;- pushContext (Layout c)- })- ) (\r -> happyReturn (happyIn106 r))--happyReduce_270 = happyMonadReduce 0# 103# happyReduction_270-happyReduction_270 (happyRest) tk- = happyThen (( getSrcLoc)- ) (\r -> happyReturn (happyIn107 r))--happyNewToken action sts stk- = lexer(\tk -> - let cont i = happyDoAction i tk action sts stk in- case tk of {- EOF -> happyDoAction 63# tk action sts stk;- VarId happy_dollar_dollar -> cont 1#;- ConId happy_dollar_dollar -> cont 2#;- VarSym ("","-") -> cont 3#;- VarSym ("","<") -> cont 4#;- VarSym ("",">") -> cont 5#;- VarSym ("","*") -> cont 6#;- VarSym happy_dollar_dollar -> cont 7#;- ConSym happy_dollar_dollar -> cont 8#;- IntTok happy_dollar_dollar -> cont 9#;- FloatTok happy_dollar_dollar -> cont 10#;- Character happy_dollar_dollar -> cont 11#;- StringTok happy_dollar_dollar -> cont 12#;- LeftParen -> cont 13#;- RightParen -> cont 14#;- SemiColon -> cont 15#;- LeftCurly -> cont 16#;- RightCurly -> cont 17#;- VRightCurly -> cont 18#;- LeftSquare -> cont 19#;- RightSquare -> cont 20#;- Comma -> cont 21#;- BackQuote -> cont 22#;- Wildcard -> cont 23#;- Dot -> cont 24#;- DotDot -> cont 25#;- DoubleColon -> cont 26#;- Assign -> cont 27#;- Equals -> cont 28#;- Backslash -> cont 29#;- Bar -> cont 30#;- LeftArrow -> cont 31#;- RightArrow -> cont 32#;- Backslash2 -> cont 33#;- KW_Action -> cont 34#;- KW_After -> cont 35#;- KW_Before -> cont 36#;- KW_Case -> cont 37#;- KW_Class -> cont 38#;- KW_Data -> cont 39#;- KW_Default -> cont 40#;- KW_Do -> cont 41#;- KW_Else -> cont 42#;- KW_Elsif -> cont 43#;- KW_Forall -> cont 44#;- KW_If -> cont 45#;- KW_Import -> cont 46#;- KW_Instance -> cont 47#;- KW_In -> cont 48#;- KW_Let -> cont 49#;- KW_Module -> cont 50#;- KW_New -> cont 51#;- KW_Of -> cont 52#;- KW_Private -> cont 53#;- KW_Request -> cont 54#;- KW_Result -> cont 55#;- KW_Struct -> cont 56#;- KW_Then -> cont 57#;- KW_Type -> cont 58#;- KW_Typeclass -> cont 59#;- KW_Use -> cont 60#;- KW_Where -> cont 61#;- KW_While -> cont 62#;- _ -> happyError' tk- })--happyError_ tk = happyError' tk--happyThen :: () => PM a -> (a -> PM b) -> PM b-happyThen = (thenPM)-happyReturn :: () => a -> PM a-happyReturn = (returnPM)-happyThen1 = happyThen-happyReturn1 :: () => a -> PM a-happyReturn1 = happyReturn-happyError' :: () => (Token) -> PM a-happyError' tk = (\token -> happyError) tk--parse = happySomeParser where- happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut4 x))--happySeq = happyDontSeq---parser :: String -> M s Module-parser str = runPM2 parse str--happyError = parseError "parse error"-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "templates/GenericTemplate.hs" #-}-{-# LINE 1 "<built-in>" #-}-{-# LINE 1 "<command-line>" #-}+happyIn22 :: (Constr) -> (HappyAbsSyn )+happyIn22 x = unsafeCoerce# x+{-# INLINE happyIn22 #-}+happyOut22 :: (HappyAbsSyn ) -> (Constr)+happyOut22 x = unsafeCoerce# x+{-# INLINE happyOut22 #-}+happyIn23 :: ([Sig]) -> (HappyAbsSyn )+happyIn23 x = unsafeCoerce# x+{-# INLINE happyIn23 #-}+happyOut23 :: (HappyAbsSyn ) -> ([Sig])+happyOut23 x = unsafeCoerce# x+{-# INLINE happyOut23 #-}+happyIn24 :: ([Sig]) -> (HappyAbsSyn )+happyIn24 x = unsafeCoerce# x+{-# INLINE happyIn24 #-}+happyOut24 :: (HappyAbsSyn ) -> ([Sig])+happyOut24 x = unsafeCoerce# x+{-# INLINE happyOut24 #-}+happyIn25 :: ([Sig]) -> (HappyAbsSyn )+happyIn25 x = unsafeCoerce# x+{-# INLINE happyIn25 #-}+happyOut25 :: (HappyAbsSyn ) -> ([Sig])+happyOut25 x = unsafeCoerce# x+{-# INLINE happyOut25 #-}+happyIn26 :: ([Sig]) -> (HappyAbsSyn )+happyIn26 x = unsafeCoerce# x+{-# INLINE happyIn26 #-}+happyOut26 :: (HappyAbsSyn ) -> ([Sig])+happyOut26 x = unsafeCoerce# x+{-# INLINE happyOut26 #-}+happyIn27 :: (Sig) -> (HappyAbsSyn )+happyIn27 x = unsafeCoerce# x+{-# INLINE happyIn27 #-}+happyOut27 :: (HappyAbsSyn ) -> (Sig)+happyOut27 x = unsafeCoerce# x+{-# INLINE happyOut27 #-}+happyIn28 :: ([Bind]) -> (HappyAbsSyn )+happyIn28 x = unsafeCoerce# x+{-# INLINE happyIn28 #-}+happyOut28 :: (HappyAbsSyn ) -> ([Bind])+happyOut28 x = unsafeCoerce# x+{-# INLINE happyOut28 #-}+happyIn29 :: ([Bind]) -> (HappyAbsSyn )+happyIn29 x = unsafeCoerce# x+{-# INLINE happyIn29 #-}+happyOut29 :: (HappyAbsSyn ) -> ([Bind])+happyOut29 x = unsafeCoerce# x+{-# INLINE happyOut29 #-}+happyIn30 :: (Bind) -> (HappyAbsSyn )+happyIn30 x = unsafeCoerce# x+{-# INLINE happyIn30 #-}+happyOut30 :: (HappyAbsSyn ) -> (Bind)+happyOut30 x = unsafeCoerce# x+{-# INLINE happyOut30 #-}+happyIn31 :: ([Field]) -> (HappyAbsSyn )+happyIn31 x = unsafeCoerce# x+{-# INLINE happyIn31 #-}+happyOut31 :: (HappyAbsSyn ) -> ([Field])+happyOut31 x = unsafeCoerce# x+{-# INLINE happyOut31 #-}+happyIn32 :: (Field) -> (HappyAbsSyn )+happyIn32 x = unsafeCoerce# x+{-# INLINE happyIn32 #-}+happyOut32 :: (HappyAbsSyn ) -> (Field)+happyOut32 x = unsafeCoerce# x+{-# INLINE happyOut32 #-}+happyIn33 :: ([Name]) -> (HappyAbsSyn )+happyIn33 x = unsafeCoerce# x+{-# INLINE happyIn33 #-}+happyOut33 :: (HappyAbsSyn ) -> ([Name])+happyOut33 x = unsafeCoerce# x+{-# INLINE happyOut33 #-}+happyIn34 :: (Lhs) -> (HappyAbsSyn )+happyIn34 x = unsafeCoerce# x+{-# INLINE happyIn34 #-}+happyOut34 :: (HappyAbsSyn ) -> (Lhs)+happyOut34 x = unsafeCoerce# x+{-# INLINE happyOut34 #-}+happyIn35 :: (Rhs Exp) -> (HappyAbsSyn )+happyIn35 x = unsafeCoerce# x+{-# INLINE happyIn35 #-}+happyOut35 :: (HappyAbsSyn ) -> (Rhs Exp)+happyOut35 x = unsafeCoerce# x+{-# INLINE happyOut35 #-}+happyIn36 :: ([GExp Exp]) -> (HappyAbsSyn )+happyIn36 x = unsafeCoerce# x+{-# INLINE happyIn36 #-}+happyOut36 :: (HappyAbsSyn ) -> ([GExp Exp])+happyOut36 x = unsafeCoerce# x+{-# INLINE happyOut36 #-}+happyIn37 :: (GExp Exp) -> (HappyAbsSyn )+happyIn37 x = unsafeCoerce# x+{-# INLINE happyIn37 #-}+happyOut37 :: (HappyAbsSyn ) -> (GExp Exp)+happyOut37 x = unsafeCoerce# x+{-# INLINE happyOut37 #-}+happyIn38 :: (Type) -> (HappyAbsSyn )+happyIn38 x = unsafeCoerce# x+{-# INLINE happyIn38 #-}+happyOut38 :: (HappyAbsSyn ) -> (Type)+happyOut38 x = unsafeCoerce# x+{-# INLINE happyOut38 #-}+happyIn39 :: (Type) -> (HappyAbsSyn )+happyIn39 x = unsafeCoerce# x+{-# INLINE happyIn39 #-}+happyOut39 :: (HappyAbsSyn ) -> (Type)+happyOut39 x = unsafeCoerce# x+{-# INLINE happyOut39 #-}+happyIn40 :: ([Type]) -> (HappyAbsSyn )+happyIn40 x = unsafeCoerce# x+{-# INLINE happyIn40 #-}+happyOut40 :: (HappyAbsSyn ) -> ([Type])+happyOut40 x = unsafeCoerce# x+{-# INLINE happyOut40 #-}+happyIn41 :: (Type) -> (HappyAbsSyn )+happyIn41 x = unsafeCoerce# x+{-# INLINE happyIn41 #-}+happyOut41 :: (HappyAbsSyn ) -> (Type)+happyOut41 x = unsafeCoerce# x+{-# INLINE happyOut41 #-}+happyIn42 :: (Type) -> (HappyAbsSyn )+happyIn42 x = unsafeCoerce# x+{-# INLINE happyIn42 #-}+happyOut42 :: (HappyAbsSyn ) -> (Type)+happyOut42 x = unsafeCoerce# x+{-# INLINE happyOut42 #-}+happyIn43 :: ([Type]) -> (HappyAbsSyn )+happyIn43 x = unsafeCoerce# x+{-# INLINE happyIn43 #-}+happyOut43 :: (HappyAbsSyn ) -> ([Type])+happyOut43 x = unsafeCoerce# x+{-# INLINE happyOut43 #-}+happyIn44 :: (Int) -> (HappyAbsSyn )+happyIn44 x = unsafeCoerce# x+{-# INLINE happyIn44 #-}+happyOut44 :: (HappyAbsSyn ) -> (Int)+happyOut44 x = unsafeCoerce# x+{-# INLINE happyOut44 #-}+happyIn45 :: ([Pred]) -> (HappyAbsSyn )+happyIn45 x = unsafeCoerce# x+{-# INLINE happyIn45 #-}+happyOut45 :: (HappyAbsSyn ) -> ([Pred])+happyOut45 x = unsafeCoerce# x+{-# INLINE happyOut45 #-}+happyIn46 :: (Pred) -> (HappyAbsSyn )+happyIn46 x = unsafeCoerce# x+{-# INLINE happyIn46 #-}+happyOut46 :: (HappyAbsSyn ) -> (Pred)+happyOut46 x = unsafeCoerce# x+{-# INLINE happyOut46 #-}+happyIn47 :: (Kind) -> (HappyAbsSyn )+happyIn47 x = unsafeCoerce# x+{-# INLINE happyIn47 #-}+happyOut47 :: (HappyAbsSyn ) -> (Kind)+happyOut47 x = unsafeCoerce# x+{-# INLINE happyOut47 #-}+happyIn48 :: (Kind) -> (HappyAbsSyn )+happyIn48 x = unsafeCoerce# x+{-# INLINE happyIn48 #-}+happyOut48 :: (HappyAbsSyn ) -> (Kind)+happyOut48 x = unsafeCoerce# x+{-# INLINE happyOut48 #-}+happyIn49 :: (Exp) -> (HappyAbsSyn )+happyIn49 x = unsafeCoerce# x+{-# INLINE happyIn49 #-}+happyOut49 :: (HappyAbsSyn ) -> (Exp)+happyOut49 x = unsafeCoerce# x+{-# INLINE happyOut49 #-}+happyIn50 :: (Exp) -> (HappyAbsSyn )+happyIn50 x = unsafeCoerce# x+{-# INLINE happyIn50 #-}+happyOut50 :: (HappyAbsSyn ) -> (Exp)+happyOut50 x = unsafeCoerce# x+{-# INLINE happyOut50 #-}+happyIn51 :: (Exp) -> (HappyAbsSyn )+happyIn51 x = unsafeCoerce# x+{-# INLINE happyIn51 #-}+happyOut51 :: (HappyAbsSyn ) -> (Exp)+happyOut51 x = unsafeCoerce# x+{-# INLINE happyOut51 #-}+happyIn52 :: (Exp) -> (HappyAbsSyn )+happyIn52 x = unsafeCoerce# x+{-# INLINE happyIn52 #-}+happyOut52 :: (HappyAbsSyn ) -> (Exp)+happyOut52 x = unsafeCoerce# x+{-# INLINE happyOut52 #-}+happyIn53 :: (OpExp) -> (HappyAbsSyn )+happyIn53 x = unsafeCoerce# x+{-# INLINE happyIn53 #-}+happyOut53 :: (HappyAbsSyn ) -> (OpExp)+happyOut53 x = unsafeCoerce# x+{-# INLINE happyOut53 #-}+happyIn54 :: (OpExp) -> (HappyAbsSyn )+happyIn54 x = unsafeCoerce# x+{-# INLINE happyIn54 #-}+happyOut54 :: (HappyAbsSyn ) -> (OpExp)+happyOut54 x = unsafeCoerce# x+{-# INLINE happyOut54 #-}+happyIn55 :: (Exp) -> (HappyAbsSyn )+happyIn55 x = unsafeCoerce# x+{-# INLINE happyIn55 #-}+happyOut55 :: (HappyAbsSyn ) -> (Exp)+happyOut55 x = unsafeCoerce# x+{-# INLINE happyOut55 #-}+happyIn56 :: (Exp) -> (HappyAbsSyn )+happyIn56 x = unsafeCoerce# x+{-# INLINE happyIn56 #-}+happyOut56 :: (HappyAbsSyn ) -> (Exp)+happyOut56 x = unsafeCoerce# x+{-# INLINE happyOut56 #-}+happyIn57 :: (Exp) -> (HappyAbsSyn )+happyIn57 x = unsafeCoerce# x+{-# INLINE happyIn57 #-}+happyOut57 :: (HappyAbsSyn ) -> (Exp)+happyOut57 x = unsafeCoerce# x+{-# INLINE happyOut57 #-}+happyIn58 :: (Exp) -> (HappyAbsSyn )+happyIn58 x = unsafeCoerce# x+{-# INLINE happyIn58 #-}+happyOut58 :: (HappyAbsSyn ) -> (Exp)+happyOut58 x = unsafeCoerce# x+{-# INLINE happyOut58 #-}+happyIn59 :: (Exp) -> (HappyAbsSyn )+happyIn59 x = unsafeCoerce# x+{-# INLINE happyIn59 #-}+happyOut59 :: (HappyAbsSyn ) -> (Exp)+happyOut59 x = unsafeCoerce# x+{-# INLINE happyOut59 #-}+happyIn60 :: (Exp) -> (HappyAbsSyn )+happyIn60 x = unsafeCoerce# x+{-# INLINE happyIn60 #-}+happyOut60 :: (HappyAbsSyn ) -> (Exp)+happyOut60 x = unsafeCoerce# x+{-# INLINE happyOut60 #-}+happyIn61 :: (Exp) -> (HappyAbsSyn )+happyIn61 x = unsafeCoerce# x+{-# INLINE happyIn61 #-}+happyOut61 :: (HappyAbsSyn ) -> (Exp)+happyOut61 x = unsafeCoerce# x+{-# INLINE happyOut61 #-}+happyIn62 :: (Lit) -> (HappyAbsSyn )+happyIn62 x = unsafeCoerce# x+{-# INLINE happyIn62 #-}+happyOut62 :: (HappyAbsSyn ) -> (Lit)+happyOut62 x = unsafeCoerce# x+{-# INLINE happyOut62 #-}+happyIn63 :: (Exp) -> (HappyAbsSyn )+happyIn63 x = unsafeCoerce# x+{-# INLINE happyIn63 #-}+happyOut63 :: (HappyAbsSyn ) -> (Exp)+happyOut63 x = unsafeCoerce# x+{-# INLINE happyOut63 #-}+happyIn64 :: ([Exp]) -> (HappyAbsSyn )+happyIn64 x = unsafeCoerce# x+{-# INLINE happyIn64 #-}+happyOut64 :: (HappyAbsSyn ) -> ([Exp])+happyOut64 x = unsafeCoerce# x+{-# INLINE happyOut64 #-}+happyIn65 :: ([Qual]) -> (HappyAbsSyn )+happyIn65 x = unsafeCoerce# x+{-# INLINE happyIn65 #-}+happyOut65 :: (HappyAbsSyn ) -> ([Qual])+happyOut65 x = unsafeCoerce# x+{-# INLINE happyOut65 #-}+happyIn66 :: (Qual) -> (HappyAbsSyn )+happyIn66 x = unsafeCoerce# x+{-# INLINE happyIn66 #-}+happyOut66 :: (HappyAbsSyn ) -> (Qual)+happyOut66 x = unsafeCoerce# x+{-# INLINE happyOut66 #-}+happyIn67 :: ([Alt Exp]) -> (HappyAbsSyn )+happyIn67 x = unsafeCoerce# x+{-# INLINE happyIn67 #-}+happyOut67 :: (HappyAbsSyn ) -> ([Alt Exp])+happyOut67 x = unsafeCoerce# x+{-# INLINE happyOut67 #-}+happyIn68 :: ([Alt Exp]) -> (HappyAbsSyn )+happyIn68 x = unsafeCoerce# x+{-# INLINE happyIn68 #-}+happyOut68 :: (HappyAbsSyn ) -> ([Alt Exp])+happyOut68 x = unsafeCoerce# x+{-# INLINE happyOut68 #-}+happyIn69 :: (Alt Exp) -> (HappyAbsSyn )+happyIn69 x = unsafeCoerce# x+{-# INLINE happyIn69 #-}+happyOut69 :: (HappyAbsSyn ) -> (Alt Exp)+happyOut69 x = unsafeCoerce# x+{-# INLINE happyOut69 #-}+happyIn70 :: (Rhs Exp) -> (HappyAbsSyn )+happyIn70 x = unsafeCoerce# x+{-# INLINE happyIn70 #-}+happyOut70 :: (HappyAbsSyn ) -> (Rhs Exp)+happyOut70 x = unsafeCoerce# x+{-# INLINE happyOut70 #-}+happyIn71 :: ([GExp Exp]) -> (HappyAbsSyn )+happyIn71 x = unsafeCoerce# x+{-# INLINE happyIn71 #-}+happyOut71 :: (HappyAbsSyn ) -> ([GExp Exp])+happyOut71 x = unsafeCoerce# x+{-# INLINE happyOut71 #-}+happyIn72 :: (GExp Exp) -> (HappyAbsSyn )+happyIn72 x = unsafeCoerce# x+{-# INLINE happyIn72 #-}+happyOut72 :: (HappyAbsSyn ) -> (GExp Exp)+happyOut72 x = unsafeCoerce# x+{-# INLINE happyOut72 #-}+happyIn73 :: ([Alt [Stmt]]) -> (HappyAbsSyn )+happyIn73 x = unsafeCoerce# x+{-# INLINE happyIn73 #-}+happyOut73 :: (HappyAbsSyn ) -> ([Alt [Stmt]])+happyOut73 x = unsafeCoerce# x+{-# INLINE happyOut73 #-}+happyIn74 :: ([Alt [Stmt]]) -> (HappyAbsSyn )+happyIn74 x = unsafeCoerce# x+{-# INLINE happyIn74 #-}+happyOut74 :: (HappyAbsSyn ) -> ([Alt [Stmt]])+happyOut74 x = unsafeCoerce# x+{-# INLINE happyOut74 #-}+happyIn75 :: (Alt [Stmt]) -> (HappyAbsSyn )+happyIn75 x = unsafeCoerce# x+{-# INLINE happyIn75 #-}+happyOut75 :: (HappyAbsSyn ) -> (Alt [Stmt])+happyOut75 x = unsafeCoerce# x+{-# INLINE happyOut75 #-}+happyIn76 :: (Rhs [Stmt]) -> (HappyAbsSyn )+happyIn76 x = unsafeCoerce# x+{-# INLINE happyIn76 #-}+happyOut76 :: (HappyAbsSyn ) -> (Rhs [Stmt])+happyOut76 x = unsafeCoerce# x+{-# INLINE happyOut76 #-}+happyIn77 :: ([GExp [Stmt]]) -> (HappyAbsSyn )+happyIn77 x = unsafeCoerce# x+{-# INLINE happyIn77 #-}+happyOut77 :: (HappyAbsSyn ) -> ([GExp [Stmt]])+happyOut77 x = unsafeCoerce# x+{-# INLINE happyOut77 #-}+happyIn78 :: (GExp [Stmt]) -> (HappyAbsSyn )+happyIn78 x = unsafeCoerce# x+{-# INLINE happyIn78 #-}+happyOut78 :: (HappyAbsSyn ) -> (GExp [Stmt])+happyOut78 x = unsafeCoerce# x+{-# INLINE happyOut78 #-}+happyIn79 :: ([Stmt]) -> (HappyAbsSyn )+happyIn79 x = unsafeCoerce# x+{-# INLINE happyIn79 #-}+happyOut79 :: (HappyAbsSyn ) -> ([Stmt])+happyOut79 x = unsafeCoerce# x+{-# INLINE happyOut79 #-}+happyIn80 :: ([Stmt]) -> (HappyAbsSyn )+happyIn80 x = unsafeCoerce# x+{-# INLINE happyIn80 #-}+happyOut80 :: (HappyAbsSyn ) -> ([Stmt])+happyOut80 x = unsafeCoerce# x+{-# INLINE happyOut80 #-}+happyIn81 :: ([Stmt]) -> (HappyAbsSyn )+happyIn81 x = unsafeCoerce# x+{-# INLINE happyIn81 #-}+happyOut81 :: (HappyAbsSyn ) -> ([Stmt])+happyOut81 x = unsafeCoerce# x+{-# INLINE happyOut81 #-}+happyIn82 :: (Stmt) -> (HappyAbsSyn )+happyIn82 x = unsafeCoerce# x+{-# INLINE happyIn82 #-}+happyOut82 :: (HappyAbsSyn ) -> (Stmt)+happyOut82 x = unsafeCoerce# x+{-# INLINE happyOut82 #-}+happyIn83 :: (Exp) -> (HappyAbsSyn )+happyIn83 x = unsafeCoerce# x+{-# INLINE happyIn83 #-}+happyOut83 :: (HappyAbsSyn ) -> (Exp)+happyOut83 x = unsafeCoerce# x+{-# INLINE happyOut83 #-}+happyIn84 :: (Exp) -> (HappyAbsSyn )+happyIn84 x = unsafeCoerce# x+{-# INLINE happyIn84 #-}+happyOut84 :: (HappyAbsSyn ) -> (Exp)+happyOut84 x = unsafeCoerce# x+{-# INLINE happyOut84 #-}+happyIn85 :: (Exp) -> (HappyAbsSyn )+happyIn85 x = unsafeCoerce# x+{-# INLINE happyIn85 #-}+happyOut85 :: (HappyAbsSyn ) -> (Exp)+happyOut85 x = unsafeCoerce# x+{-# INLINE happyOut85 #-}+happyIn86 :: (Exp) -> (HappyAbsSyn )+happyIn86 x = unsafeCoerce# x+{-# INLINE happyIn86 #-}+happyOut86 :: (HappyAbsSyn ) -> (Exp)+happyOut86 x = unsafeCoerce# x+{-# INLINE happyOut86 #-}+happyIn87 :: (OpExp) -> (HappyAbsSyn )+happyIn87 x = unsafeCoerce# x+{-# INLINE happyIn87 #-}+happyOut87 :: (HappyAbsSyn ) -> (OpExp)+happyOut87 x = unsafeCoerce# x+{-# INLINE happyOut87 #-}+happyIn88 :: (OpExp) -> (HappyAbsSyn )+happyIn88 x = unsafeCoerce# x+{-# INLINE happyIn88 #-}+happyOut88 :: (HappyAbsSyn ) -> (OpExp)+happyOut88 x = unsafeCoerce# x+{-# INLINE happyOut88 #-}+happyIn89 :: (Pat) -> (HappyAbsSyn )+happyIn89 x = unsafeCoerce# x+{-# INLINE happyIn89 #-}+happyOut89 :: (HappyAbsSyn ) -> (Pat)+happyOut89 x = unsafeCoerce# x+{-# INLINE happyOut89 #-}+happyIn90 :: ([Pat]) -> (HappyAbsSyn )+happyIn90 x = unsafeCoerce# x+{-# INLINE happyIn90 #-}+happyOut90 :: (HappyAbsSyn ) -> ([Pat])+happyOut90 x = unsafeCoerce# x+{-# INLINE happyOut90 #-}+happyIn91 :: (Pat) -> (HappyAbsSyn )+happyIn91 x = unsafeCoerce# x+{-# INLINE happyIn91 #-}+happyOut91 :: (HappyAbsSyn ) -> (Pat)+happyOut91 x = unsafeCoerce# x+{-# INLINE happyOut91 #-}+happyIn92 :: (Name) -> (HappyAbsSyn )+happyIn92 x = unsafeCoerce# x+{-# INLINE happyIn92 #-}+happyOut92 :: (HappyAbsSyn ) -> (Name)+happyOut92 x = unsafeCoerce# x+{-# INLINE happyOut92 #-}+happyIn93 :: (Name) -> (HappyAbsSyn )+happyIn93 x = unsafeCoerce# x+{-# INLINE happyIn93 #-}+happyOut93 :: (HappyAbsSyn ) -> (Name)+happyOut93 x = unsafeCoerce# x+{-# INLINE happyOut93 #-}+happyIn94 :: (Name) -> (HappyAbsSyn )+happyIn94 x = unsafeCoerce# x+{-# INLINE happyIn94 #-}+happyOut94 :: (HappyAbsSyn ) -> (Name)+happyOut94 x = unsafeCoerce# x+{-# INLINE happyOut94 #-}+happyIn95 :: (Name) -> (HappyAbsSyn )+happyIn95 x = unsafeCoerce# x+{-# INLINE happyIn95 #-}+happyOut95 :: (HappyAbsSyn ) -> (Name)+happyOut95 x = unsafeCoerce# x+{-# INLINE happyOut95 #-}+happyIn96 :: (Name) -> (HappyAbsSyn )+happyIn96 x = unsafeCoerce# x+{-# INLINE happyIn96 #-}+happyOut96 :: (HappyAbsSyn ) -> (Name)+happyOut96 x = unsafeCoerce# x+{-# INLINE happyOut96 #-}+happyIn97 :: (Name) -> (HappyAbsSyn )+happyIn97 x = unsafeCoerce# x+{-# INLINE happyIn97 #-}+happyOut97 :: (HappyAbsSyn ) -> (Name)+happyOut97 x = unsafeCoerce# x+{-# INLINE happyOut97 #-}+happyIn98 :: (Name) -> (HappyAbsSyn )+happyIn98 x = unsafeCoerce# x+{-# INLINE happyIn98 #-}+happyOut98 :: (HappyAbsSyn ) -> (Name)+happyOut98 x = unsafeCoerce# x+{-# INLINE happyOut98 #-}+happyIn99 :: (Name) -> (HappyAbsSyn )+happyIn99 x = unsafeCoerce# x+{-# INLINE happyIn99 #-}+happyOut99 :: (HappyAbsSyn ) -> (Name)+happyOut99 x = unsafeCoerce# x+{-# INLINE happyOut99 #-}+happyIn100 :: (Name) -> (HappyAbsSyn )+happyIn100 x = unsafeCoerce# x+{-# INLINE happyIn100 #-}+happyOut100 :: (HappyAbsSyn ) -> (Name)+happyOut100 x = unsafeCoerce# x+{-# INLINE happyOut100 #-}+happyIn101 :: (Name) -> (HappyAbsSyn )+happyIn101 x = unsafeCoerce# x+{-# INLINE happyIn101 #-}+happyOut101 :: (HappyAbsSyn ) -> (Name)+happyOut101 x = unsafeCoerce# x+{-# INLINE happyOut101 #-}+happyIn102 :: (Name) -> (HappyAbsSyn )+happyIn102 x = unsafeCoerce# x+{-# INLINE happyIn102 #-}+happyOut102 :: (HappyAbsSyn ) -> (Name)+happyOut102 x = unsafeCoerce# x+{-# INLINE happyOut102 #-}+happyIn103 :: ((String,String)) -> (HappyAbsSyn )+happyIn103 x = unsafeCoerce# x+{-# INLINE happyIn103 #-}+happyOut103 :: (HappyAbsSyn ) -> ((String,String))+happyOut103 x = unsafeCoerce# x+{-# INLINE happyOut103 #-}+happyIn104 :: ((String,String)) -> (HappyAbsSyn )+happyIn104 x = unsafeCoerce# x+{-# INLINE happyIn104 #-}+happyOut104 :: (HappyAbsSyn ) -> ((String,String))+happyOut104 x = unsafeCoerce# x+{-# INLINE happyOut104 #-}+happyIn105 :: (()) -> (HappyAbsSyn )+happyIn105 x = unsafeCoerce# x+{-# INLINE happyIn105 #-}+happyOut105 :: (HappyAbsSyn ) -> (())+happyOut105 x = unsafeCoerce# x+{-# INLINE happyOut105 #-}+happyIn106 :: (()) -> (HappyAbsSyn )+happyIn106 x = unsafeCoerce# x+{-# INLINE happyIn106 #-}+happyOut106 :: (HappyAbsSyn ) -> (())+happyOut106 x = unsafeCoerce# x+{-# INLINE happyOut106 #-}+happyIn107 :: (()) -> (HappyAbsSyn )+happyIn107 x = unsafeCoerce# x+{-# INLINE happyIn107 #-}+happyOut107 :: (HappyAbsSyn ) -> (())+happyOut107 x = unsafeCoerce# x+{-# INLINE happyOut107 #-}+happyIn108 :: ((Int,Int)) -> (HappyAbsSyn )+happyIn108 x = unsafeCoerce# x+{-# INLINE happyIn108 #-}+happyOut108 :: (HappyAbsSyn ) -> ((Int,Int))+happyOut108 x = unsafeCoerce# x+{-# INLINE happyOut108 #-}+happyInTok :: (Token) -> (HappyAbsSyn )+happyInTok x = unsafeCoerce# x+{-# INLINE happyInTok #-}+happyOutTok :: (HappyAbsSyn ) -> (Token)+happyOutTok x = unsafeCoerce# x+{-# INLINE happyOutTok #-}+++happyActOffsets :: HappyAddr+happyActOffsets = HappyA# "\xb2\x04\xb2\x04\x00\x00\xa5\x04\xa2\x04\xdb\x04\x00\x00\xce\x04\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x06\xcd\x04\x68\x01\x00\x00\x45\x02\xd3\x02\xe0\x01\x00\x00\x1e\x07\xc3\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x01\x00\x00\x0e\x02\xc8\x04\x00\x00\xbd\x04\x6c\x07\xc0\x03\x01\x07\xc4\x07\x00\x00\x38\x03\x38\x03\x38\x03\x00\x00\xc6\x04\x00\x00\x97\x04\x92\x04\x00\x00\x00\x00\x00\x00\x00\x00\x8a\x06\x97\x02\x00\x00\x90\x04\x00\x00\x00\x00\x0f\x00\xbf\x02\x00\x00\x00\x00\x70\x04\xf8\x0a\x00\x00\x8e\x04\xbb\x04\xba\x04\x00\x00\x1f\x00\x00\x00\x00\x00\x8f\x04\x00\x00\x00\x00\xa8\x07\x00\x00\x00\x00\x00\x00\x07\x02\xa8\x07\x83\x04\xa8\x01\x00\x00\xf6\x01\x00\x00\xb7\x04\x00\x00\xe0\x01\x00\x00\xe0\x01\x00\x00\x00\x00\x00\x00\x8d\x04\x8a\x04\x15\x0b\x00\x00\xe0\x07\xe0\x07\x84\x04\x6a\x03\x67\x03\x44\x0b\x66\x03\x00\x00\x38\x03\x8c\x04\x8b\x04\x00\x00\x87\x04\xfe\x07\x10\x0b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x86\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x04\x82\x04\x82\x04\x82\x04\x98\x01\x00\x00\x00\x00\x00\x00\xe9\x0a\x00\x00\x00\x00\x00\x00\x89\x04\x00\x00\x00\x00\x81\x04\x75\x04\xe6\x0a\x4f\x04\x65\x04\x00\x00\xe0\x07\xd1\x0a\x3f\x04\x89\x01\x4b\x04\x00\x00\x99\x06\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x04\x00\x00\x58\x04\x2d\x04\xb0\x02\x00\x00\x00\x00\x00\x00\x22\x03\x10\x03\x00\x00\x00\x00\x3c\x04\xa9\x02\x00\x00\x2c\x04\x2b\x04\x29\x04\x00\x00\x00\x00\x29\x04\x00\x00\x00\x00\xc0\x03\x00\x00\x33\x04\x31\x04\x00\x00\x00\x00\x00\x00\xc0\x03\x32\x00\x00\x00\x16\x04\x00\x00\x98\x01\x00\x00\x00\x00\xcc\x06\x00\x00\x00\x00\x00\x00\x00\x00\x27\x04\x1e\x04\x00\x00\x00\x00\x00\x00\x00\x00\x33\x03\x00\x00\xe0\x07\x39\x0a\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\xf2\x03\xf4\x03\xbf\x01\x00\x00\x61\x0a\x52\x0a\x89\x01\xe0\x07\xe0\x07\xd1\x0a\x00\x00\xe0\x07\x00\x00\x00\x00\x65\x01\x17\x04\x4c\x01\x00\x00\x1a\x00\x89\x01\x00\x00\xce\x0a\x4b\x01\x00\x00\x8a\x01\x89\x02\xe0\x07\x28\x00\xd9\x03\x11\x00\xec\x03\x00\x00\xb7\x03\x00\x00\x89\x01\xe2\x03\x89\x01\x00\x00\xb6\x03\x00\x00\xb2\x03\x89\x01\x00\x00\xce\x0a\x87\x02\x00\x00\xf3\xff\xdd\x03\x89\x01\x00\x00\xdd\x03\x84\x02\xd4\x03\x89\x01\x00\x00\xd7\x03\x00\x00\xd0\x03\x29\x01\x00\x00\x00\x00\x15\x0b\x00\x00\x00\x00\x15\x0b\x06\x00\x00\x00\xcf\x03\x00\x00\xd5\x03\xe0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf7\x09\xf3\x00\x76\x02\x19\x00\xd3\x03\x00\x00\x00\x00\x59\x02\x9b\x00\xe0\x07\xd1\x03\xe0\x07\xbf\x0a\xe0\x07\xe0\x07\xce\x03\x98\x01\x31\x00\x00\x00\xcd\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xab\x03\xbc\x0a\xa7\x0a\xe0\x07\xc2\x03\x00\x00\xc7\x03\x3b\x01\x65\x03\xc5\x02\xc6\x03\xda\x01\x00\x00\x00\x00\x89\x01\x89\x01\x89\x01\x00\x00\x99\x06\x00\x00\x99\x06\x12\x01\x00\x00\xbb\x03\x00\x00\xb5\x03\x29\x01\x29\x01\x00\x00\x00\x00\x89\x01\x89\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe8\x00\xbd\x03\x00\x00\x00\x00\x00\x00\x93\x03\xf7\xff\x90\x03\x00\x00\x69\x03\xe0\x07\xe0\x07\x13\x0a\x00\x00\x5f\x03\x89\x07\x89\x01\x8a\x03\x70\x03\x00\x00\xa4\x0a\x00\x00\xe0\x07\x00\x00\x8c\x03\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x07\x00\x00\x7b\x03\x00\x00\x89\x01\x00\x00\x00\x00\x00\x00\x00\x00\x45\x03\x87\x03\x00\x00\x00\x00\x00\x00\x00\x00\x71\x03\x00\x00\x00\x00\x40\x00\x00\x00\x00\x00\x64\x03\x00\x00\x55\x00\x19\x00\x68\x03\x00\x00\x6c\x00\x00\x00\x00\x00\x00\x00\x58\x03\x00\x00\x5a\x03\x00\x00\x00\x00\x00\x00\xa4\x0a\x10\x01\x00\x00\x00\x00\x66\x02\xe0\x07\x00\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\x50\x03\x40\x03\x40\x03\x40\x03\x00\x00\x3d\x03\x00\x00\x00\x00\x98\x01\x89\x01\x00\x00\x2d\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa4\x0a\x00\x00\x00\x00\x00\x00\xfe\x02\x18\x03\x00\x00\x95\x0a\xe0\x07\x00\x00\x8c\x0a\x18\x02\x89\x01\x89\x01\x89\x01\x1f\x03\x00\x00\x17\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x01\x00\x00\x0c\x03\x8c\x0a\x02\x01\x00\x00\x62\x01\xec\x02\xfc\x02\x00\x00\x7d\x0a\x06\x03\x00\x00\x7a\x0a\xfd\x00\x00\x00\xe0\x07\x00\x00\x00\x00\x00\x00\x00\x00\x0e\x01\x00\x00\xf6\x02\x00\x00\xeb\x02\x00\x00\x00\x00"#++happyGotoOffsets :: HappyAddr+happyGotoOffsets = HappyA# "\xf0\x02\x00\x00\xdd\x01\x00\x00\x00\x00\x00\x00\x00\x00\x01\x00\x00\x00\xea\x02\x7e\x02\xdb\x02\x37\x00\x00\x00\x1e\x02\x00\x00\x00\x00\x68\x02\x23\x04\x00\x00\x53\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfb\x09\x25\x03\x36\x03\x00\x00\x61\x01\x26\x09\x7d\x08\xc6\x01\x05\x00\xc2\x01\x1b\x00\x17\x00\x95\x01\x67\x01\xfc\xff\xdb\x00\xff\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x02\x00\x00\x8c\x02\x3b\x02\x00\x00\x35\x01\x6f\x02\x00\x00\x00\x00\x00\x00\x00\x00\x50\x01\x00\x00\x00\x00\x39\x00\x6e\x02\xc3\x01\x40\x06\x00\x00\x00\x00\x00\x00\x00\x00\x32\x06\x00\x00\x72\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xcb\x03\x00\x00\x30\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x07\xfa\x01\xf6\x05\xe8\x05\x16\x00\x00\x00\x00\x00\xb1\x02\x00\x00\x00\x00\xc6\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x51\x07\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x19\x01\x78\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x82\x00\x81\x00\x71\x00\x6d\x00\x77\x02\xd5\x01\x00\x00\x00\x00\xbf\x09\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8c\x00\x67\x02\x00\x00\xaa\x08\x00\x00\xed\x01\x00\x00\xda\x05\x15\x09\x03\x02\xa8\x02\xf7\x01\x00\x00\xdf\x00\x00\x00\x00\x00\x00\x00\x00\x00\xfe\xff\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x00\x00\x4e\x01\x94\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x15\x00\x00\x00\x00\x00\x12\x00\x00\x00\x00\x00\x50\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\x07\x39\x01\x00\x00\x00\x00\x00\x00\x4e\x02\x00\x00\x00\x00\xcc\x01\x7b\x01\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb3\x06\x00\x00\x9e\x05\x1b\x07\x00\x00\x90\x05\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd5\x00\x00\x00\x1b\x07\x11\x07\xe9\x02\x82\x05\x46\x05\x04\x09\x00\x00\x38\x05\x00\x00\x00\x00\x0a\x00\x36\x00\x59\x01\x00\x00\x00\x00\x8a\x02\xad\x01\x2b\x01\x4d\x01\x00\x00\x00\x00\x49\x02\x2a\x05\x02\x00\xc1\x00\xfb\xff\xa1\x01\x00\x00\x7f\x01\x00\x00\x1d\x02\x0d\x00\x79\x02\x00\x00\x54\x01\x00\x00\x00\x00\x69\x02\x00\x00\x72\x01\x00\x00\x00\x00\x3d\x02\x75\x01\x5c\x02\x00\x00\x3a\x00\x00\x00\x49\x01\x13\x02\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x00\x00\x00\x00\x07\x07\x00\x00\x00\x00\x4b\x06\x00\x00\x00\x00\x00\x00\x00\x00\xca\xff\xee\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\x01\x00\x00\xdb\x01\xdd\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe0\x04\x52\x00\xd2\x04\xd7\x08\x96\x04\x88\x04\x00\x00\x24\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xad\x09\x80\x09\x7a\x04\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe4\x02\xd4\x02\xc2\x02\x00\x00\xa7\x00\xd3\x00\x6f\x00\x8a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x5e\x00\x5e\x00\x00\x00\x00\x00\xdf\x02\xd2\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x04\x30\x04\xf9\x01\x00\x00\x00\x00\x22\x04\x4b\x02\x00\x00\x00\x00\x00\x00\xc6\x08\x73\x00\xe6\x03\x00\x00\xe2\x00\x00\x00\x00\x00\x00\x00\x00\x00\xd8\x03\x00\x00\x00\x00\x00\x00\xf8\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf9\xff\x00\x00\x00\x00\xee\x00\x70\x00\x00\x00\x00\x00\x00\x00\xcd\x00\x6e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x53\x00\x00\x00\x00\x00\x00\x00\x99\x08\x6b\x00\x00\x00\x00\x00\x9c\x01\xca\x03\x00\x00\x00\x00\x8e\x03\x00\x00\x00\x00\x00\x00\xd3\xff\x48\x00\x35\x00\x34\x00\x00\x00\x00\x00\x00\x00\x00\x00\xc7\x00\xb8\x02\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x6c\x08\x3e\x00\x00\x00\x00\x00\x00\x00\x41\x00\x00\x00\x3f\x08\x80\x03\x00\x00\x6f\x09\x00\x00\x41\x02\x8e\x00\x31\x02\x7d\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf6\xff\x12\x08\x1d\x00\x00\x00\xde\x00\x00\x00\xd0\xff\x00\x00\xe5\x07\xd4\xff\x00\x00\x42\x09\x00\x00\x00\x00\x72\x03\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xef\xff\x00\x00\xcb\xff\x00\x00\x00\x00"#++happyDefActions :: HappyAddr+happyDefActions = HappyA# "\x00\x00\x00\x00\xf0\xfe\x00\x00\x00\x00\x00\x00\xfe\xfe\xf1\xfe\xfe\xff\xf6\xff\xf2\xfe\xf6\xff\xf0\xfe\x00\x00\x00\x00\xf2\xff\x00\x00\x00\x00\x1f\xff\x1d\xff\x73\xff\x6b\xff\x69\xff\x65\xff\xb8\xff\x22\xff\x21\xff\x20\xff\x1e\xff\x68\xff\x66\xff\x0e\xff\x0c\xff\x00\x00\xf0\xfe\xf0\xfe\xf0\xfe\x67\xff\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf1\xfe\xf0\xfe\xf0\xfe\xf1\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\x00\x00\xf4\xff\xeb\xff\xd9\xff\x04\xff\x03\xff\x00\x00\xdb\xff\xdb\xff\x00\x00\xf0\xfe\xf2\xfe\xe7\xff\x00\x00\x04\xff\x03\xff\x00\x00\xf5\xff\xe6\xff\xf0\xfe\xf2\xfe\xdb\xff\xf0\xfe\x68\xff\x66\xff\x0c\xff\x00\x00\xf0\xfe\x0f\xff\xf0\xfe\x10\xff\x57\xff\x92\xff\x90\xff\x8f\xff\x8e\xff\x8c\xff\x8d\xff\x7d\xff\x8b\xff\x71\xff\x00\x00\x56\xff\xf0\xfe\xf2\xfe\xf0\xfe\xf0\xfe\xf1\xfe\x00\x00\x00\x00\xf0\xfe\x00\x00\x00\xff\xf0\xfe\x00\x00\x08\xff\xfd\xfe\x02\xff\x00\x00\xf0\xfe\xf8\xfe\xf7\xfe\xf6\xfe\xf9\xfe\x64\xff\x9d\xff\xf0\xfe\xf0\xfe\xf5\xfe\x1a\xff\x15\xff\xff\xfe\x5c\xff\x5b\xff\x5a\xff\x59\xff\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x00\x00\xf2\xfe\x06\xff\x05\xff\xf0\xfe\x0a\xff\x08\xff\xfb\xfe\x00\x00\xfa\xfe\xf0\xfe\xf0\xfe\x6c\xff\xf0\xfe\xe4\xff\xb6\xff\xb3\xff\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xfa\xff\xf3\xfe\xf0\xfe\xf4\xfe\xf7\xff\xf3\xff\xfc\xff\xf1\xfe\xe5\xff\xb0\xff\xaf\xff\xac\xff\xaa\xff\xa9\xff\xa8\xff\xf0\xfe\xf0\xfe\xa7\xff\xba\xff\x00\x00\x00\x00\x4f\xff\x4d\xff\x00\x00\xf1\xfe\xb7\xff\xb4\xff\xf1\xfe\x18\xff\x13\xff\xf0\xfe\x6a\xff\x00\x00\x00\x00\xfc\xfe\x1b\xff\x16\xff\xf0\xfe\xf0\xfe\xf1\xff\x97\xff\x96\xff\x00\x00\x95\xff\x79\xff\x32\xff\xf2\xfe\x7c\xff\x7b\xff\x7a\xff\x00\x00\x00\x00\x88\xff\x83\xff\x0b\xff\x0d\xff\xf0\xfe\x61\xff\xf0\xfe\xf0\xfe\x62\xff\xf0\xfe\x5d\xff\x9e\xff\x91\xff\x00\x00\x00\x00\xf0\xfe\x60\xff\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\x11\xff\xf0\xfe\x6e\xff\x6d\xff\xdd\xff\xf0\xfe\x00\x00\xd5\xff\x00\x00\xf0\xfe\xf0\xfe\xf0\xfe\x00\x00\xc0\xff\x00\x00\x00\x00\xf0\xfe\xe0\xff\xf0\xfe\xf0\xfe\xfa\xff\xfd\xff\xcb\xff\xdc\xff\xf0\xfe\xf1\xfe\xf0\xfe\xe1\xff\xcb\xff\x6f\xff\xbe\xff\xf0\xfe\xc2\xff\xf0\xfe\x00\x00\xda\xff\xea\xff\xf0\xfe\xf0\xfe\xd7\xff\xf0\xfe\x00\x00\xd1\xff\xf0\xfe\x70\xff\x53\xff\x55\xff\x51\xff\x93\xff\x89\xff\x84\xff\xf0\xfe\x86\xff\x81\xff\xf0\xfe\x00\x00\xbc\xff\x00\x00\x7e\xff\xf1\xfe\xf0\xfe\x51\xff\x5f\xff\x52\xff\x5e\xff\x01\xff\x63\xff\xf0\xfe\x00\x00\x00\x00\x00\x00\x33\xff\x30\xff\x2e\xff\x23\xff\x00\x00\xf0\xfe\xf1\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\x00\x00\x00\x00\x00\x00\x74\xff\x00\x00\x1c\xff\x17\xff\x07\xff\x09\xff\x19\xff\x14\xff\xb5\xff\x4c\xff\xf0\xfe\xf0\xfe\xf0\xfe\x00\x00\xa6\xff\x00\x00\xb0\xff\x00\x00\x00\x00\x00\x00\x00\x00\xa4\xff\xab\xff\xf0\xfe\xf0\xfe\xf0\xfe\xfb\xff\xf0\xfe\xf2\xfe\xf0\xfe\x00\x00\x9a\xff\xb1\xff\x9b\xff\xa8\xff\xad\xff\xae\xff\xa5\xff\xa2\xff\xf0\xfe\xf0\xfe\xa3\xff\xa1\xff\xb2\xff\x50\xff\x4e\xff\x75\xff\x78\xff\xf0\xfe\x00\x00\x98\xff\x94\xff\x29\xff\x00\x00\x00\x00\x00\x00\x25\xff\x00\x00\xf0\xfe\xf0\xfe\xf0\xfe\x34\xff\x2c\xff\xf0\xfe\xf0\xfe\x00\x00\x00\x00\x80\xff\xf0\xfe\xf2\xfe\xf0\xfe\x7f\xff\xf0\xfe\x87\xff\x82\xff\x8a\xff\x85\xff\xf0\xfe\xde\xff\xdf\xff\xef\xff\xf0\xfe\xd8\xff\xd6\xff\xd3\xff\xd4\xff\xe8\xff\xf1\xfe\xc3\xff\xc1\xff\xbf\xff\xee\xff\xf1\xfe\xf0\xff\xec\xff\xc7\xff\xf2\xfe\xe2\xff\xe3\xff\xed\xff\xf0\xfe\x00\x00\xc8\xff\xc5\xff\x00\x00\xb9\xff\xcc\xff\xe9\xff\xd2\xff\xcf\xff\xcd\xff\x54\xff\xbd\xff\xbb\xff\xf0\xfe\x00\x00\x48\xff\x12\xff\x00\x00\xf0\xfe\x35\xff\x2d\xff\xf0\xfe\x31\xff\x2f\xff\x2a\xff\xf1\xfe\xf1\xfe\xf1\xfe\xf1\xfe\x77\xff\x00\x00\x9f\xff\xa0\xff\x00\x00\xf0\xfe\xf8\xff\x00\x00\xf9\xff\x9c\xff\x99\xff\x76\xff\x27\xff\x28\xff\x26\xff\x24\xff\xf0\xfe\xf2\xfe\x2b\xff\x72\xff\x47\xff\x45\xff\x42\xff\xf0\xfe\xf0\xfe\x4a\xff\xf0\xfe\x00\x00\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\xc9\xff\x00\x00\xca\xff\xc6\xff\xc4\xff\xd0\xff\xce\xff\x4b\xff\x49\xff\x46\xff\x00\x00\x43\xff\xf1\xfe\xf0\xfe\x00\x00\x3d\xff\x00\x00\x3c\xff\x3a\xff\x37\xff\xf0\xfe\xf1\xfe\x3f\xff\xf0\xfe\x00\x00\x44\xff\xf0\xfe\x41\xff\x40\xff\x3e\xff\x3b\xff\x00\x00\x38\xff\xf1\xfe\x39\xff\xf1\xfe\x36\xff"#++happyCheck :: HappyAddr+happyCheck = HappyA# "\xff\xff\x03\x00\x01\x00\x08\x00\x05\x00\x06\x00\x07\x00\x18\x00\x0c\x00\x3f\x00\x08\x00\x09\x00\x15\x00\x14\x00\x18\x00\x1c\x00\x01\x00\x1e\x00\x0d\x00\x04\x00\x0a\x00\x04\x00\x4b\x00\x11\x00\x45\x00\x00\x00\x4a\x00\x15\x00\x1d\x00\x1e\x00\x04\x00\x4b\x00\x29\x00\x14\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x0c\x00\x18\x00\x01\x00\x18\x00\x12\x00\x04\x00\x18\x00\x18\x00\x18\x00\x3d\x00\x67\x00\x67\x00\x34\x00\x1a\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x67\x00\x67\x00\x05\x00\x06\x00\x07\x00\x0d\x00\x21\x00\x01\x00\x11\x00\x11\x00\x0e\x00\x0f\x00\x15\x00\x0e\x00\x0f\x00\x0f\x00\x19\x00\x19\x00\x3d\x00\x0d\x00\x3d\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1d\x00\x1e\x00\x67\x00\x58\x00\x59\x00\x5d\x00\x5f\x00\x5f\x00\x60\x00\x67\x00\x5f\x00\x60\x00\x67\x00\x5f\x00\x0d\x00\x68\x00\x68\x00\x67\x00\x11\x00\x68\x00\x67\x00\x5f\x00\x68\x00\x34\x00\x67\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x67\x00\x06\x00\x07\x00\x67\x00\x5d\x00\x67\x00\x5f\x00\x60\x00\x67\x00\x67\x00\x67\x00\x4b\x00\x4b\x00\x15\x00\x65\x00\x68\x00\x26\x00\x44\x00\x1a\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1d\x00\x1e\x00\x58\x00\x58\x00\x59\x00\x58\x00\x58\x00\x4b\x00\x17\x00\x5f\x00\x5f\x00\x60\x00\x5f\x00\x5f\x00\x1d\x00\x67\x00\x67\x00\x4b\x00\x68\x00\x68\x00\x12\x00\x68\x00\x68\x00\x34\x00\x66\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x38\x00\x39\x00\x3a\x00\x06\x00\x07\x00\x67\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x62\x00\x1b\x00\x59\x00\x4b\x00\x67\x00\x1f\x00\x68\x00\x4b\x00\x5f\x00\x60\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1d\x00\x1e\x00\x68\x00\x58\x00\x59\x00\x57\x00\x58\x00\x59\x00\x4b\x00\x4b\x00\x5f\x00\x60\x00\x65\x00\x5f\x00\x60\x00\x65\x00\x67\x00\x58\x00\x66\x00\x68\x00\x67\x00\x66\x00\x68\x00\x34\x00\x5f\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x15\x00\x16\x00\x17\x00\x68\x00\x07\x00\x59\x00\x67\x00\x67\x00\x1d\x00\x5f\x00\x60\x00\x5f\x00\x60\x00\x65\x00\x1b\x00\x1c\x00\x2b\x00\x2c\x00\x68\x00\x0d\x00\x68\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1d\x00\x1e\x00\x1c\x00\x58\x00\x59\x00\x19\x00\x00\x00\x15\x00\x16\x00\x17\x00\x5f\x00\x60\x00\x15\x00\x11\x00\x12\x00\x1d\x00\x0f\x00\x1a\x00\x11\x00\x68\x00\x00\x00\x0f\x00\x00\x00\x34\x00\x12\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x0f\x00\x5f\x00\x0f\x00\x12\x00\x15\x00\x12\x00\x58\x00\x48\x00\x49\x00\x4a\x00\x68\x00\x01\x00\x02\x00\x5f\x00\x58\x00\x20\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x5f\x00\x68\x00\x0d\x00\x58\x00\x59\x00\x66\x00\x58\x00\x60\x00\x13\x00\x68\x00\x5f\x00\x60\x00\x17\x00\x5f\x00\x65\x00\x68\x00\x19\x00\x1a\x00\x58\x00\x68\x00\x1d\x00\x1e\x00\x68\x00\x00\x00\x00\x00\x5f\x00\x19\x00\x1a\x00\x15\x00\x59\x00\x1d\x00\x1e\x00\x1b\x00\x1c\x00\x68\x00\x5f\x00\x60\x00\x10\x00\x0f\x00\x0f\x00\x21\x00\x12\x00\x12\x00\x34\x00\x68\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x01\x00\x13\x00\x00\x00\x34\x00\x05\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x28\x00\x0f\x00\x5f\x00\x60\x00\x12\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x1e\x00\x68\x00\x20\x00\x58\x00\x59\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x5f\x00\x60\x00\x1a\x00\x58\x00\x59\x00\x1d\x00\x1e\x00\x58\x00\x13\x00\x68\x00\x5f\x00\x60\x00\x0d\x00\x15\x00\x5f\x00\x38\x00\x39\x00\x3a\x00\x13\x00\x68\x00\x06\x00\x15\x00\x17\x00\x68\x00\x20\x00\x02\x00\x1a\x00\x0d\x00\x34\x00\x59\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x5f\x00\x60\x00\x17\x00\x62\x00\x61\x00\x65\x00\x63\x00\x64\x00\x0d\x00\x68\x00\x56\x00\x57\x00\x58\x00\x59\x00\x13\x00\x1d\x00\x1e\x00\x65\x00\x17\x00\x5f\x00\x60\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x60\x00\x20\x00\x68\x00\x58\x00\x59\x00\x0d\x00\x58\x00\x0b\x00\x68\x00\x11\x00\x5f\x00\x60\x00\x34\x00\x5f\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x01\x00\x02\x00\x68\x00\x42\x00\x43\x00\x44\x00\x66\x00\x08\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\x08\x00\x1d\x00\x1e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x60\x00\x16\x00\x58\x00\x59\x00\x02\x00\x1f\x00\x20\x00\x21\x00\x68\x00\x5f\x00\x60\x00\x34\x00\x21\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x01\x00\x02\x00\x5d\x00\x15\x00\x5f\x00\x60\x00\x21\x00\x19\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x1e\x00\x68\x00\x1d\x00\x1e\x00\x4c\x00\x4d\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x60\x00\x15\x00\x58\x00\x59\x00\x60\x00\x0f\x00\x1a\x00\x11\x00\x68\x00\x5f\x00\x60\x00\x34\x00\x68\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x66\x00\x0f\x00\x60\x00\x11\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x27\x00\x68\x00\x0b\x00\x4e\x00\x4f\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\x2b\x00\x2c\x00\x58\x00\x59\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x15\x00\x58\x00\x1f\x00\x20\x00\x21\x00\x1a\x00\x66\x00\x68\x00\x5f\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x1f\x00\x20\x00\x21\x00\x68\x00\x59\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x1b\x00\x1c\x00\x59\x00\x1e\x00\x1f\x00\x2b\x00\x2c\x00\x68\x00\x5f\x00\x60\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x65\x00\x1e\x00\x68\x00\x20\x00\x1f\x00\x20\x00\x21\x00\x59\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x1c\x00\x0f\x00\x1e\x00\x11\x00\x0f\x00\x0b\x00\x11\x00\x68\x00\x59\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x2b\x00\x2c\x00\x59\x00\x1c\x00\x0f\x00\x1e\x00\x11\x00\x68\x00\x5f\x00\x60\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x01\x00\x02\x00\x68\x00\x04\x00\x59\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x0d\x00\x15\x00\x58\x00\x01\x00\x02\x00\x59\x00\x13\x00\x68\x00\x1c\x00\x5f\x00\x17\x00\x5f\x00\x60\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\x68\x00\x58\x00\x68\x00\x59\x00\x0e\x00\x66\x00\x66\x00\x0b\x00\x5f\x00\x5f\x00\x60\x00\x15\x00\x23\x00\x24\x00\x25\x00\x26\x00\x04\x00\x68\x00\x68\x00\x2a\x00\x59\x00\x66\x00\x23\x00\x24\x00\x25\x00\x26\x00\x5f\x00\x60\x00\x29\x00\x2a\x00\x59\x00\x04\x00\x1c\x00\x00\x00\x1e\x00\x68\x00\x5f\x00\x60\x00\x23\x00\x24\x00\x25\x00\x26\x00\x25\x00\x26\x00\x10\x00\x68\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x59\x00\x23\x00\x24\x00\x25\x00\x26\x00\x10\x00\x5f\x00\x60\x00\x25\x00\x26\x00\x5a\x00\x5b\x00\x5c\x00\x25\x00\x26\x00\x68\x00\x59\x00\x61\x00\x62\x00\x63\x00\x64\x00\x10\x00\x5f\x00\x60\x00\x68\x00\x1e\x00\x59\x00\x10\x00\x0d\x00\x58\x00\x59\x00\x68\x00\x5f\x00\x60\x00\x13\x00\x14\x00\x5f\x00\x60\x00\x17\x00\x11\x00\x3d\x00\x68\x00\x59\x00\x0d\x00\x59\x00\x68\x00\x0d\x00\x0e\x00\x5f\x00\x60\x00\x5f\x00\x60\x00\x13\x00\x1e\x00\x15\x00\x59\x00\x17\x00\x68\x00\x3d\x00\x68\x00\x59\x00\x5f\x00\x60\x00\x0d\x00\x0e\x00\x59\x00\x5f\x00\x60\x00\x0d\x00\x13\x00\x68\x00\x5f\x00\x60\x00\x17\x00\x13\x00\x68\x00\x28\x00\x11\x00\x17\x00\x10\x00\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x10\x00\x3c\x00\x08\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x3b\x00\x3c\x00\x0e\x00\x0e\x00\x0e\x00\x1e\x00\x0f\x00\x0e\x00\x15\x00\x15\x00\x15\x00\x15\x00\x58\x00\x59\x00\x15\x00\x5b\x00\x10\x00\x3d\x00\x5e\x00\x5f\x00\x60\x00\x61\x00\x62\x00\x63\x00\x64\x00\x5a\x00\x5b\x00\x5c\x00\x68\x00\x58\x00\x59\x00\x15\x00\x61\x00\x62\x00\x63\x00\x64\x00\x5f\x00\x60\x00\x10\x00\x68\x00\x0d\x00\x2a\x00\x11\x00\x3d\x00\x34\x00\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x39\x00\x58\x00\x59\x00\x39\x00\x0d\x00\x11\x00\x1a\x00\x15\x00\x5f\x00\x60\x00\x13\x00\x0e\x00\x0e\x00\x14\x00\x17\x00\x58\x00\x59\x00\x68\x00\x30\x00\x0e\x00\x1d\x00\x11\x00\x5f\x00\x60\x00\x10\x00\x0f\x00\x23\x00\x24\x00\x10\x00\x58\x00\x59\x00\x68\x00\x19\x00\x0d\x00\x1c\x00\x15\x00\x5f\x00\x60\x00\x3d\x00\x1c\x00\x31\x00\x10\x00\x3d\x00\x3d\x00\x1c\x00\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x35\x00\x58\x00\x59\x00\x0d\x00\x5a\x00\x5b\x00\x5c\x00\x34\x00\x5f\x00\x60\x00\x39\x00\x61\x00\x62\x00\x63\x00\x64\x00\x58\x00\x59\x00\x68\x00\x68\x00\x16\x00\x0e\x00\x20\x00\x5f\x00\x60\x00\x10\x00\x5a\x00\x5b\x00\x5c\x00\x01\x00\x58\x00\x59\x00\x68\x00\x61\x00\x62\x00\x63\x00\x64\x00\x5f\x00\x60\x00\x16\x00\x68\x00\x16\x00\x1f\x00\x1f\x00\x0d\x00\x20\x00\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x21\x00\x58\x00\x59\x00\x10\x00\x5a\x00\x5b\x00\x5c\x00\x35\x00\x5f\x00\x60\x00\x1e\x00\x61\x00\x62\x00\x63\x00\x64\x00\x58\x00\x59\x00\x68\x00\x68\x00\x3d\x00\x18\x00\x0d\x00\x5f\x00\x60\x00\x08\x00\x10\x00\x0d\x00\x10\x00\x0e\x00\x58\x00\x59\x00\x68\x00\x0e\x00\x0e\x00\x18\x00\x0d\x00\x5f\x00\x60\x00\x15\x00\x30\x00\x14\x00\x10\x00\x15\x00\x0d\x00\x15\x00\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x1a\x00\x58\x00\x59\x00\x1a\x00\x1a\x00\x10\x00\x1a\x00\x10\x00\x5f\x00\x60\x00\x18\x00\x0f\x00\x02\x00\x10\x00\x3d\x00\x58\x00\x59\x00\x68\x00\x3e\x00\x32\x00\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x2d\x00\x2e\x00\x2f\x00\x30\x00\x31\x00\x32\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\x0d\x00\x58\x00\x59\x00\x68\x00\xff\xff\x03\x00\x13\x00\xff\xff\x5f\x00\x60\x00\x17\x00\xff\xff\x58\x00\x59\x00\xff\xff\x0d\x00\x1d\x00\x68\x00\xff\xff\x5f\x00\x60\x00\x13\x00\x23\x00\x24\x00\xff\xff\x17\x00\x27\x00\x28\x00\x68\x00\xff\xff\xff\xff\x1d\x00\xff\xff\x2e\x00\x2f\x00\xff\xff\x31\x00\x23\x00\x24\x00\xff\xff\xff\xff\x27\x00\x28\x00\x38\x00\xff\xff\x3a\x00\x3b\x00\x3c\x00\xff\xff\x2f\x00\xff\xff\x31\x00\xff\xff\xff\xff\x01\x00\x02\x00\x03\x00\xff\xff\x38\x00\xff\xff\x3a\x00\x3b\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x38\x00\x39\x00\x3a\x00\x22\x00\x23\x00\x24\x00\x25\x00\x26\x00\xff\xff\xff\xff\x29\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\x36\x00\x37\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\x5f\x00\x60\x00\x13\x00\xff\xff\x15\x00\x16\x00\x17\x00\x18\x00\xff\xff\x68\x00\xff\xff\xff\xff\x1d\x00\x01\x00\x02\x00\xff\xff\x21\x00\xff\xff\x23\x00\x24\x00\x25\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x0d\x00\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\x13\x00\x31\x00\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x38\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\x01\x00\x02\x00\x68\x00\x5f\x00\x60\x00\xff\xff\x58\x00\x59\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\x68\x00\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\x33\x00\x34\x00\x35\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x03\x00\xff\xff\x22\x00\xff\xff\xff\xff\xff\xff\x26\x00\xff\xff\xff\xff\x29\x00\x0d\x00\xff\xff\xff\xff\x10\x00\xff\xff\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\x36\x00\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\xff\xff\x58\x00\x59\x00\x03\x00\x23\x00\x24\x00\x25\x00\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\xff\xff\x0d\x00\x2d\x00\xff\xff\x10\x00\x68\x00\x31\x00\x13\x00\x33\x00\xff\xff\xff\xff\x17\x00\x18\x00\x38\x00\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\x2d\x00\xff\xff\x13\x00\x14\x00\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x1d\x00\xff\xff\x03\x00\xff\xff\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x10\x00\x2d\x00\xff\xff\x13\x00\xff\xff\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x1d\x00\xff\xff\x01\x00\x02\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\x08\x00\x09\x00\x0a\x00\x0b\x00\x0c\x00\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x38\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x22\x00\xff\xff\x3d\x00\x3e\x00\x26\x00\xff\xff\xff\xff\x29\x00\xff\xff\xff\xff\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\x36\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\x46\x00\x47\x00\xff\xff\xff\xff\xff\xff\xff\xff\x68\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\x46\x00\x47\x00\xff\xff\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\x40\x00\x41\x00\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\x40\x00\x41\x00\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\x3d\x00\x3e\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\x3d\x00\x3e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x3d\x00\x3e\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\x38\x00\x39\x00\x3a\x00\xff\xff\xff\xff\x5f\x00\x60\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\xff\xff\xff\xff\x47\x00\xff\xff\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\x41\x00\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\xff\xff\x3e\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\xff\xff\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\x55\x00\xff\xff\x68\x00\x58\x00\x59\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x68\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x34\x00\xff\xff\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x03\x00\xff\xff\xff\xff\x50\x00\x51\x00\x52\x00\x53\x00\x54\x00\xff\xff\xff\xff\x0d\x00\x58\x00\x59\x00\xff\xff\x11\x00\xff\xff\x13\x00\xff\xff\x5f\x00\x60\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x68\x00\x03\x00\x58\x00\x59\x00\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\x5f\x00\x60\x00\x0d\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\x13\x00\x68\x00\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\x37\x00\x34\x00\x1d\x00\x36\x00\x37\x00\x38\x00\x39\x00\x3a\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\xff\xff\x03\x00\x2a\x00\x2b\x00\x2c\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\xff\xff\x0d\x00\x0e\x00\xff\xff\x10\x00\x37\x00\xff\xff\x13\x00\xff\xff\xff\xff\xff\xff\x17\x00\xff\xff\xff\xff\x58\x00\x59\x00\x03\x00\x1d\x00\xff\xff\xff\xff\xff\xff\x5f\x00\x60\x00\x23\x00\x24\x00\x25\x00\x0d\x00\xff\xff\xff\xff\x10\x00\x68\x00\x03\x00\x13\x00\x2d\x00\xff\xff\xff\xff\x17\x00\x31\x00\xff\xff\xff\xff\xff\xff\x0d\x00\x1d\x00\xff\xff\x10\x00\xff\xff\xff\xff\x13\x00\x23\x00\x24\x00\x25\x00\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\x03\x00\x1d\x00\x2d\x00\x03\x00\xff\xff\xff\xff\x31\x00\x23\x00\x24\x00\x25\x00\x0d\x00\xff\xff\xff\xff\x0d\x00\xff\xff\xff\xff\x13\x00\x2d\x00\x03\x00\x13\x00\x17\x00\x31\x00\xff\xff\x17\x00\xff\xff\xff\xff\x1d\x00\x03\x00\x0d\x00\x1d\x00\xff\xff\xff\xff\x23\x00\x24\x00\x13\x00\x23\x00\x24\x00\x0d\x00\x17\x00\xff\xff\xff\xff\xff\xff\x03\x00\x13\x00\x1d\x00\x03\x00\x31\x00\x17\x00\xff\xff\x31\x00\x23\x00\x24\x00\x0d\x00\x1d\x00\xff\xff\x0d\x00\xff\xff\xff\xff\x13\x00\x23\x00\x24\x00\x13\x00\x17\x00\xff\xff\x31\x00\x17\x00\x03\x00\xff\xff\x1d\x00\x03\x00\xff\xff\x1d\x00\xff\xff\x31\x00\x23\x00\x24\x00\x0d\x00\x23\x00\x24\x00\x0d\x00\xff\xff\xff\xff\x13\x00\xff\xff\x03\x00\x13\x00\x17\x00\x03\x00\x31\x00\x17\x00\xff\xff\x31\x00\x1d\x00\xff\xff\x0d\x00\x1d\x00\xff\xff\x0d\x00\x23\x00\x24\x00\x13\x00\x23\x00\x24\x00\x13\x00\x17\x00\xff\xff\xff\xff\x17\x00\x03\x00\xff\xff\x1d\x00\x03\x00\x31\x00\x1d\x00\xff\xff\x31\x00\x23\x00\x24\x00\x0d\x00\x23\x00\x24\x00\x0d\x00\xff\xff\xff\xff\x13\x00\xff\xff\x03\x00\x13\x00\x17\x00\xff\xff\x31\x00\x17\x00\xff\xff\x31\x00\x1d\x00\xff\xff\x0d\x00\x1d\x00\xff\xff\xff\xff\x23\x00\x24\x00\x13\x00\x23\x00\x24\x00\xff\xff\x17\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\xff\xff\x31\x00\xff\xff\xff\xff\x31\x00\x23\x00\x24\x00\x0d\x00\x0e\x00\xff\xff\x10\x00\xff\xff\x0d\x00\x13\x00\xff\xff\x10\x00\xff\xff\x17\x00\x13\x00\x31\x00\xff\xff\xff\xff\x17\x00\x1d\x00\xff\xff\xff\xff\xff\xff\xff\xff\x1d\x00\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x23\x00\x24\x00\x25\x00\xff\xff\xff\xff\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x2d\x00\xff\xff\xff\xff\xff\xff\x31\x00\x03\x00\x04\x00\x05\x00\x06\x00\x07\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x0e\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x15\x00\x16\x00\xff\xff\xff\xff\xff\xff\x1a\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\x21\x00\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff\xff"#++happyTable :: HappyAddr+happyTable = HappyA# "\x00\x00\x52\x01\x08\x00\xf9\x00\x0d\x00\x33\x00\x0f\x00\xfc\x01\x35\x00\x7b\x01\xfe\x00\xff\x00\x44\x01\xa2\x01\xf3\x01\x95\x00\xdb\xff\x96\x00\x45\x00\xdb\xff\x0d\x01\xfc\x00\xfe\x01\x80\x01\xc9\x01\x9a\x00\xfa\x01\x81\x01\x10\x00\x11\x00\x09\x01\xf8\x01\xb9\x01\x96\x01\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\x3f\x00\xa3\x01\xf0\xfe\x40\x01\x9c\x00\xfc\x00\x41\x01\xd8\x00\x3c\x00\x90\x01\x7c\x01\xc5\x00\x12\x00\x0a\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xca\x01\xc5\x00\x0d\x00\x0e\x00\x0f\x00\x44\x00\x78\x00\xf0\xfe\x68\x01\x39\x01\x0c\x01\xea\x00\x69\x01\xe9\x00\xea\x00\x8b\x01\x6a\x01\x3a\x01\xdb\xff\x44\x00\xfd\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\x3d\x00\x1d\x00\x1e\x00\x36\x00\xfa\x00\x37\x00\x38\x00\x3d\x00\x1f\x00\x20\x00\x97\x01\xfa\x00\x44\x00\xab\x00\x39\x00\x53\x01\xc7\xff\x21\x00\x09\x00\xfa\x00\xab\x00\x12\x00\x46\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xab\x00\x40\x00\x97\x01\xc1\x01\x0f\x00\x3d\x00\x36\x00\x3d\x00\x41\x00\x42\x00\x3d\x00\x3d\x00\x3d\x00\xc6\x01\xc7\x01\x97\x00\xf0\x01\x39\x00\x4e\x01\xe5\x01\xd9\x01\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\xeb\x00\x1d\x00\x1e\x00\xeb\x00\xeb\x00\xc8\x01\xdd\x01\x1f\x00\x1f\x00\x20\x00\x1f\x00\x1f\x00\xa0\x01\xc5\x00\xc5\x00\x70\x01\xab\x00\x21\x00\xdf\x01\xab\x00\xab\x00\x12\x00\xe7\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4f\x00\x16\x00\x17\x00\x56\x01\x0f\x00\xc5\x00\xa6\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xd6\x01\x73\x01\xa5\x00\xc4\x00\xc5\x00\x74\x01\x8b\x00\xc7\x00\xa6\x00\x4c\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\x39\x00\x1d\x00\x1e\x00\xe3\x00\x4a\x00\x4b\x00\xc8\x00\xc9\x00\x1f\x00\x20\x00\xd3\x01\x1f\x00\x4c\x00\xda\x01\xc5\x00\xa1\x01\x9c\x01\x21\x00\xc5\x00\xaa\x01\x4d\x00\x12\x00\x1f\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xdb\x01\x9e\x01\x9f\x01\xab\x00\x9d\x00\xa5\x00\xc5\x00\xc5\x00\xa0\x01\xb8\x00\xb9\x00\xa6\x00\x4c\x00\xc0\x01\x1a\x01\x1b\x01\xc4\x01\xc0\x00\x39\x00\x44\x00\x39\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x10\x00\x11\x00\xa8\x01\x1d\x00\x1e\x00\xbc\x01\x9a\x00\x9d\x01\x9e\x01\x9f\x01\x1f\x00\x20\x00\x97\x00\xa4\x01\xa5\x01\xa0\x01\xf2\x01\x79\x01\xf7\x01\x21\x00\x9a\x00\xf2\x01\x9a\x00\x12\x00\x9c\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa6\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xd5\x01\xfa\x00\x9b\x00\x9c\x00\x44\x01\x9c\x00\xa1\x01\xeb\x01\xec\x01\xed\x01\xab\x00\xf0\xfe\xf0\xfe\x1f\x00\x1c\x01\xfe\x01\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1f\x00\xab\x00\xa8\x00\x1d\x00\x1e\x00\x55\x01\x1c\x01\x34\x00\xa9\x00\xab\x00\x1f\x00\x20\x00\xaa\x00\x1f\x00\x75\x01\x05\x00\x05\x01\xf0\x00\xa1\x01\x21\x00\xf1\x00\xf2\x00\xab\x00\x9a\x00\x9a\x00\x1f\x00\xef\x00\xf0\x00\x61\x01\xa5\x00\xf1\x00\xf2\x00\x37\x01\x1b\x01\xab\x00\xa6\x00\x4c\x00\x88\x01\x05\x01\x0c\x01\x52\x01\x9c\x00\x9c\x00\x12\x00\x39\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xf0\xfe\x93\x01\x9a\x00\x12\x00\x0f\x01\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x47\x01\x48\x01\xa2\x00\xa3\x00\xa4\x00\x49\x01\x4a\x01\x9b\x00\xcb\x00\xb9\x00\x9c\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xef\x01\x39\x00\xf0\x01\x1d\x00\x1e\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x1f\x00\x4c\x00\x91\x01\x1d\x00\x1e\x00\xf1\x00\xf2\x00\x1c\x01\x9b\x01\x21\x00\x1f\x00\x4c\x00\xa8\x00\x44\x01\x1f\x00\x4f\x00\x16\x00\x17\x00\xa9\x00\x21\x00\xc2\x00\x97\x00\xaa\x00\xab\x00\xf5\x01\xf8\x00\x03\x01\xc3\x00\x12\x00\xa5\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa6\x00\x4c\x00\xc4\x00\x4b\x01\x69\x00\x03\x01\x6b\x00\x8a\x00\x24\x00\x4c\x01\x50\x00\x51\x00\x4a\x00\x4b\x00\x25\x00\x27\x01\x28\x01\x0a\x01\x26\x00\x1f\x00\x4c\x00\x18\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\x3a\x00\xe5\x00\x4d\x00\x1d\x00\x1e\x00\x44\x00\x8d\x01\xe7\x00\x05\x00\x1e\x01\x1f\x00\x4c\x00\x12\x00\x1f\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x7b\x00\x07\x00\xab\x00\xce\x01\xcf\x01\xd0\x01\x26\x01\xbb\x00\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\xf0\xfe\x27\x01\x28\x01\x79\x01\x2a\x01\x2b\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x3b\x00\x8e\x00\x1d\x00\x1e\x00\x9e\x00\x76\x01\x92\x00\x93\x00\x05\x00\x1f\x00\x4c\x00\x12\x00\x78\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x7b\x00\x07\x00\x06\x01\xe1\x00\x37\x00\x42\x00\xb2\x00\xe2\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\xe3\x00\x39\x00\x27\x01\x28\x01\x29\x01\x2a\x01\x2b\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x44\x00\xb9\xff\x1d\x00\x1e\x00\x48\x00\xd5\x01\xb9\xff\xe2\x01\x05\x00\x1f\x00\x4c\x00\x12\x00\x05\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x86\x01\x48\x01\xa2\x00\xa3\x00\xa4\x00\x87\x01\xbe\x00\x9b\x00\x04\x00\xc3\x01\x99\x01\x48\x01\xa2\x00\xa3\x00\xa4\x00\x9a\x01\x05\x00\xf4\x00\xb3\x01\x2c\x01\x2d\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x2e\x01\x6a\x01\xc0\x00\x1d\x00\x1e\x00\xde\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x1f\x00\x4c\x00\x97\x00\xaa\x00\x8e\x01\x92\x00\x93\x00\x98\x00\xdb\x00\x21\x00\x1f\x00\xe0\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x01\x01\x92\x00\x93\x00\xab\x00\xa5\x00\xb1\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x12\xff\xb8\xff\xa5\x00\xb8\xff\x12\xff\x35\x01\xc0\x00\x39\x00\xa6\x00\x4c\x00\x8c\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\x98\x00\xd2\x01\x39\x00\xd3\x01\x91\x00\x92\x00\x93\x00\xa5\x00\x92\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x78\x01\x0c\x01\x96\x00\x8b\x01\x05\x01\xf5\x00\x91\x01\x39\x00\xa5\x00\x95\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\xbf\x00\xc0\x00\xa5\x00\x95\x00\x9b\x00\x96\x00\xf8\x00\x39\x00\xa6\x00\x4c\x00\x07\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xf0\xfe\xf0\xfe\x39\x00\x50\x01\xa5\x00\x45\x01\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\xa8\x00\x44\x01\xb7\x00\x7b\x00\x07\x00\xa5\x00\xa9\x00\x39\x00\x45\x01\x1f\x00\xaa\x00\xa6\x00\x4c\x00\xa0\x00\xa1\x00\xa2\x00\xa3\x00\xa4\x00\xab\x00\xca\x00\x39\x00\xa5\x00\x5e\x01\xe8\x00\xee\x00\xf6\x00\x1f\x00\xa6\x00\x4c\x00\xd8\x00\x57\x01\xa2\x00\xa3\x00\xa4\x00\x32\x00\xab\x00\x39\x00\xc3\x01\xa5\x00\x0b\x00\x57\x01\xa2\x00\xa3\x00\xa4\x00\xa6\x00\x4c\x00\x58\x01\x59\x01\xa5\x00\x0c\x00\x95\x00\x03\x00\x96\x00\x39\x00\xa6\x00\x4c\x00\xbc\x01\xa2\x00\xa3\x00\xa4\x00\x5b\x01\xa4\x00\xc7\x00\x39\x00\xd0\x00\x15\x00\x16\x00\x17\x00\xa5\x00\xbd\x01\xa2\x00\xa3\x00\xa4\x00\x3f\x00\xa6\x00\x4c\x00\x5c\x01\xa4\x00\x85\x00\x86\x00\xd3\x00\x13\x01\xa4\x00\x39\x00\xa5\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\xc7\x00\x5a\x01\x4c\x00\x8b\x00\xef\x01\xa5\x00\x3f\x00\xa8\x00\x4a\x00\x4b\x00\x39\x00\x5a\x01\x4c\x00\xa9\x00\x47\x01\x1f\x00\x4c\x00\xaa\x00\xdd\x01\xfc\x01\x39\x00\xa5\x00\x44\x00\xa5\x00\x4d\x00\xa8\x00\x4e\x01\xa6\x00\x4c\x00\xa6\x00\x4c\x00\xa9\x00\xd2\x01\x75\x00\xa5\x00\xaa\x00\x39\x00\xe7\x01\x39\x00\xa5\x00\xa6\x00\x4c\x00\x24\x00\x24\x01\xa5\x00\xa6\x00\x4c\x00\x24\x00\x25\x00\x39\x00\xa6\x00\x4c\x00\x26\x00\x25\x00\x39\x00\x63\x00\xc6\x01\x26\x00\xc7\x00\x39\x00\x64\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x65\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xcc\x01\x66\x00\xf0\xfe\x52\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x5c\x00\x5d\x00\x5f\x01\xd2\x00\xd5\x00\xd8\x01\xda\x01\xd7\x00\x60\x01\x60\x01\xd3\x00\xd6\x00\x4a\x00\x1e\x00\xd8\x00\x67\x00\x99\x01\xb4\x00\x68\x00\x1f\x00\x4c\x00\x69\x00\x6a\x00\x6b\x00\x6c\x00\x85\x00\x86\x00\xdd\x00\x6d\x00\x4a\x00\x1e\x00\x60\x01\x88\x00\x89\x00\x6b\x00\x8a\x00\x1f\x00\x4c\x00\x3f\x00\x8b\x00\x44\x00\xb0\x01\xb1\x01\xb4\x00\xb7\x01\x21\x00\xf5\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe3\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xcc\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb8\x01\x4a\x00\x1e\x00\xba\x01\x24\x00\xbb\x01\xbf\x01\xc0\x01\x1f\x00\x4c\x00\x25\x00\xcf\x00\x62\x01\x63\x01\x26\x00\x4a\x00\x1e\x00\x21\x00\xf4\x00\x6c\x01\x27\x00\x67\x01\x1f\x00\x4c\x00\xc7\x00\x75\x01\x28\x00\x29\x00\x7e\x01\x4a\x00\x1e\x00\x21\x00\x86\x01\x44\x00\x7f\x01\x44\x01\x1f\x00\x4c\x00\xb4\x00\x8a\x01\x2e\x00\x99\x01\x95\x01\x95\x01\xfe\x00\x21\x00\xcd\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa7\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa9\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xa0\x00\x4a\x00\x1e\x00\x44\x00\x85\x00\x86\x00\xde\x00\x1f\x01\x1f\x00\x4c\x00\x20\x01\x88\x00\x89\x00\x6b\x00\x8a\x00\x4a\x00\x1e\x00\x21\x00\x8b\x00\x25\x01\x26\x01\x37\x01\x1f\x00\x4c\x00\x3f\x00\x85\x00\x86\x00\x87\x00\x7b\x00\x4a\x00\x1e\x00\x21\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x1f\x00\x4c\x00\x3d\x01\x8b\x00\x3e\x01\x43\x01\x12\xff\x44\x00\x51\x01\x21\x00\xb1\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb4\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xb5\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x52\x01\x4a\x00\x1e\x00\x55\x01\x85\x00\x86\x00\x90\x00\xa0\x00\x1f\x00\x4c\x00\x96\x00\x88\x00\x89\x00\x6b\x00\x8a\x00\x4a\x00\x1e\x00\x21\x00\x8b\x00\xb4\x00\x8f\x00\x44\x00\x1f\x00\x4c\x00\xbb\x00\xc7\x00\x44\x00\x3f\x00\xfb\xfe\x4a\x00\x1e\x00\x21\x00\xcf\x00\xd0\x00\x8f\x00\x44\x00\x1f\x00\x4c\x00\xd3\x00\xf4\x00\xdd\x00\x3f\x00\xee\x00\x44\x00\xee\x00\x21\x00\x63\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x6c\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x6d\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe0\x00\x4a\x00\x1e\x00\x0e\xff\xed\x00\x48\x00\x84\x00\x85\x00\x1f\x00\x4c\x00\x8f\x00\x9d\x00\x07\x00\x0b\x00\x08\x00\x4a\x00\x1e\x00\x21\x00\xff\xff\x03\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x6f\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x71\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x7a\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x0f\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x11\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x12\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x20\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x22\x01\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xb1\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xd9\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xda\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xe5\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\xe6\x00\x53\x00\x54\x00\x55\x00\x56\x00\x57\x00\x58\x00\x59\x00\x5a\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x81\x01\x59\x00\x82\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x23\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x24\x00\x4a\x00\x1e\x00\x21\x00\x00\x00\x23\x00\x25\x00\x00\x00\x1f\x00\x4c\x00\x26\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x24\x00\x27\x00\x21\x00\x00\x00\x1f\x00\x4c\x00\x25\x00\x28\x00\x29\x00\x00\x00\x26\x00\x2a\x00\x2b\x00\x21\x00\x00\x00\x00\x00\x27\x00\x00\x00\x2c\x00\x2d\x00\x00\x00\x2e\x00\x28\x00\x29\x00\x00\x00\x00\x00\x2a\x00\x2b\x00\x2f\x00\x00\x00\x30\x00\x31\x00\x32\x00\x00\x00\x2d\x00\x00\x00\x2e\x00\x00\x00\x00\x00\xf0\xfe\xf0\xfe\x23\x00\x00\x00\x2f\x00\x00\x00\x30\x00\x31\x00\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\x24\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x8f\x00\x16\x00\x17\x00\xf0\xfe\x28\x00\x29\x00\x30\x01\xf0\xfe\x00\x00\x00\x00\xf0\xfe\x31\x01\x32\x01\x33\x01\x34\x01\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\xf0\xfe\x35\x01\x6f\x00\x70\x00\x71\x00\x72\x00\x73\x00\x00\x00\x00\x00\x4a\x00\x4b\x00\x00\x00\x24\x00\x74\x00\x00\x00\x60\x00\x1f\x00\x4c\x00\x25\x00\x00\x00\x75\x00\x76\x00\x26\x00\x77\x00\x00\x00\x4d\x00\x00\x00\x00\x00\x27\x00\xf0\xfe\xf0\xfe\x00\x00\x78\x00\x00\x00\x28\x00\x29\x00\x61\x00\xf0\xfe\xf0\xfe\xf0\xfe\xf0\xfe\x24\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x25\x00\x2e\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x63\x00\x83\x01\x59\x00\x84\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x14\x01\x59\x00\x15\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x17\x01\x59\x00\x18\x01\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x7b\x00\x07\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x4a\x00\x1e\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x21\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\xcc\x00\x59\x00\xcd\x00\x5b\x00\x14\x00\x15\x00\x16\x00\x17\x00\x5f\x00\x00\x00\x80\x00\x00\x00\x00\x00\x00\x00\x81\x00\x00\x00\x00\x00\x82\x00\x24\x00\x00\x00\x00\x00\x60\x00\x00\x00\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x83\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x5f\x00\x28\x00\x29\x00\x61\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\x00\x00\x24\x00\x62\x00\x00\x00\x60\x00\x21\x00\x2e\x00\x25\x00\xb3\x01\x00\x00\x00\x00\x26\x00\x8f\x00\x63\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x60\x00\x62\x00\x00\x00\x25\x00\x58\xff\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x27\x00\x00\x00\x5f\x00\x00\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x60\x00\x62\x00\x00\x00\x25\x00\x00\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x27\x00\x00\x00\x7b\x00\x07\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\xbb\x00\x7c\x00\x7d\x00\x7e\x00\x7f\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x63\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x80\x00\x00\x00\xf9\x01\xad\x00\x81\x00\x00\x00\x00\x00\x82\x00\x00\x00\x00\x00\x3a\x01\x00\x00\x3b\x01\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x83\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\xf2\x01\xe9\x01\x00\x00\x00\x00\x00\x00\x00\x00\x21\x00\x00\x00\x00\x00\x00\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xea\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\xe4\x01\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x3e\x01\x00\x00\x3f\x01\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\x00\x00\x00\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\xe8\x01\xe9\x01\x00\x00\x49\x00\x16\x00\x17\x00\x21\x00\x00\x00\x00\x00\x00\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xea\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\xd5\x01\xac\x01\x00\x00\x1f\x00\x4c\x00\xb4\x00\x00\x00\xb5\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4d\x00\x00\x00\x00\x00\x00\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xae\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\xab\x01\xac\x01\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x6e\x01\xad\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xae\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x10\x01\xad\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x00\x00\x00\x00\xac\x00\xad\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x4e\x00\x16\x00\x17\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x00\x00\x00\x00\xf7\x01\x00\x00\x8f\x00\x16\x00\x17\x00\x4d\x00\x00\x00\x00\x00\x00\x00\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xea\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x4a\x00\x4b\x00\x00\x00\x00\x00\x00\x00\xe2\x01\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x4d\x00\x00\x00\x00\x00\x64\x01\xad\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\xae\x01\x00\x00\x00\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\xae\x00\x19\x00\x1a\x00\x1b\x00\x1c\x00\xaf\x00\x00\x00\x21\x00\x4a\x00\x1e\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x12\x00\x00\x00\x13\x00\x14\x00\x15\x00\x16\x00\x17\x00\x21\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xbb\x00\x00\x00\xbc\x00\x14\x00\x15\x00\x16\x00\x17\x00\x23\x00\x00\x00\x00\x00\x65\x01\x19\x00\x1a\x00\x1b\x00\x1c\x00\x00\x00\x00\x00\x24\x00\x4a\x00\x1e\x00\x00\x00\x32\xff\x00\x00\x25\x00\x00\x00\x1f\x00\x4c\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x21\x00\x23\x00\x4a\x00\x1e\x00\x00\x00\x28\x00\x29\x00\x30\x01\x00\x00\x1f\x00\x4c\x00\x24\x00\x31\x01\x32\x01\x33\x01\x34\x01\x00\x00\x25\x00\x21\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x35\x01\x78\x00\x27\x00\x79\x00\x14\x00\x15\x00\x16\x00\x17\x00\x28\x00\x29\x00\x30\x01\x00\x00\x00\x00\x00\x00\x1a\x01\x31\x01\x32\x01\x33\x01\x34\x01\x00\x00\x00\x00\x00\x00\x2e\x00\x00\x00\x24\x00\x22\x01\x00\x00\x60\x00\x35\x01\x00\x00\x25\x00\x00\x00\x00\x00\x00\x00\x26\x00\x00\x00\x00\x00\x4a\x00\x1e\x00\x17\x01\x27\x00\x00\x00\x00\x00\x00\x00\x1f\x00\x4c\x00\x28\x00\x29\x00\x61\x00\x24\x00\x00\x00\x00\x00\x60\x00\x21\x00\x1a\x01\x25\x00\x62\x00\x00\x00\x00\x00\x26\x00\x2e\x00\x00\x00\x00\x00\x00\x00\x24\x00\x27\x00\x00\x00\x60\x00\x00\x00\x00\x00\x25\x00\x28\x00\x29\x00\x61\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x23\x00\x27\x00\x62\x00\x23\x00\x00\x00\x00\x00\x2e\x00\x28\x00\x29\x00\x61\x00\x24\x00\x00\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x62\x00\x23\x00\x25\x00\x26\x00\x2e\x00\x00\x00\x26\x00\x00\x00\x00\x00\x27\x00\x23\x00\x24\x00\x27\x00\x00\x00\x00\x00\x28\x00\x29\x00\x25\x00\x28\x00\x29\x00\x24\x00\x26\x00\x00\x00\x00\x00\x00\x00\x23\x00\x25\x00\x27\x00\x23\x00\x2e\x00\x26\x00\x00\x00\xb1\x00\x28\x00\x29\x00\x24\x00\x27\x00\x00\x00\x24\x00\x00\x00\x00\x00\x25\x00\x28\x00\x29\x00\x25\x00\x26\x00\x00\x00\x2e\x00\x26\x00\x23\x00\x00\x00\x27\x00\x23\x00\x00\x00\x27\x00\x00\x00\xb1\x00\x28\x00\x29\x00\x24\x00\x28\x00\x29\x00\x24\x00\x00\x00\x00\x00\x25\x00\x00\x00\x23\x00\x25\x00\x26\x00\x23\x00\x2e\x00\x26\x00\x00\x00\xb1\x00\x27\x00\x00\x00\x24\x00\x27\x00\x00\x00\x24\x00\x28\x00\x29\x00\x25\x00\x28\x00\x29\x00\x25\x00\x26\x00\x00\x00\x00\x00\x26\x00\xb7\x00\x00\x00\x27\x00\xbe\x00\x2e\x00\x27\x00\x00\x00\xb1\x00\x28\x00\x29\x00\x24\x00\x28\x00\x29\x00\x24\x00\x00\x00\x00\x00\x25\x00\x00\x00\x23\x00\x25\x00\x26\x00\x00\x00\x2e\x00\x26\x00\x00\x00\xb1\x00\x27\x00\x00\x00\x24\x00\x27\x00\x00\x00\x00\x00\x28\x00\x29\x00\x25\x00\x28\x00\x29\x00\x00\x00\x26\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x00\x00\x2e\x00\x00\x00\x00\x00\x2e\x00\x28\x00\x29\x00\x24\x00\xfa\xfe\x00\x00\x60\x00\x00\x00\x24\x00\x25\x00\x00\x00\x60\x00\x00\x00\x26\x00\x25\x00\x2e\x00\x00\x00\x00\x00\x26\x00\x27\x00\x00\x00\x00\x00\x00\x00\x00\x00\x27\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x28\x00\x29\x00\x61\x00\x00\x00\x00\x00\x62\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x62\x00\x00\x00\x00\x00\x00\x00\x2e\x00\x8d\x00\x70\x00\x71\x00\x72\x00\x73\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x8e\x00\x00\x00\x00\x00\x00\x00\x8d\xff\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x78\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00"#++happyReduceArr = array (1, 271) [+ (1 , happyReduce_1),+ (2 , happyReduce_2),+ (3 , happyReduce_3),+ (4 , happyReduce_4),+ (5 , happyReduce_5),+ (6 , happyReduce_6),+ (7 , happyReduce_7),+ (8 , happyReduce_8),+ (9 , happyReduce_9),+ (10 , happyReduce_10),+ (11 , happyReduce_11),+ (12 , happyReduce_12),+ (13 , happyReduce_13),+ (14 , happyReduce_14),+ (15 , happyReduce_15),+ (16 , happyReduce_16),+ (17 , happyReduce_17),+ (18 , happyReduce_18),+ (19 , happyReduce_19),+ (20 , happyReduce_20),+ (21 , happyReduce_21),+ (22 , happyReduce_22),+ (23 , happyReduce_23),+ (24 , happyReduce_24),+ (25 , happyReduce_25),+ (26 , happyReduce_26),+ (27 , happyReduce_27),+ (28 , happyReduce_28),+ (29 , happyReduce_29),+ (30 , happyReduce_30),+ (31 , happyReduce_31),+ (32 , happyReduce_32),+ (33 , happyReduce_33),+ (34 , happyReduce_34),+ (35 , happyReduce_35),+ (36 , happyReduce_36),+ (37 , happyReduce_37),+ (38 , happyReduce_38),+ (39 , happyReduce_39),+ (40 , happyReduce_40),+ (41 , happyReduce_41),+ (42 , happyReduce_42),+ (43 , happyReduce_43),+ (44 , happyReduce_44),+ (45 , happyReduce_45),+ (46 , happyReduce_46),+ (47 , happyReduce_47),+ (48 , happyReduce_48),+ (49 , happyReduce_49),+ (50 , happyReduce_50),+ (51 , happyReduce_51),+ (52 , happyReduce_52),+ (53 , happyReduce_53),+ (54 , happyReduce_54),+ (55 , happyReduce_55),+ (56 , happyReduce_56),+ (57 , happyReduce_57),+ (58 , happyReduce_58),+ (59 , happyReduce_59),+ (60 , happyReduce_60),+ (61 , happyReduce_61),+ (62 , happyReduce_62),+ (63 , happyReduce_63),+ (64 , happyReduce_64),+ (65 , happyReduce_65),+ (66 , happyReduce_66),+ (67 , happyReduce_67),+ (68 , happyReduce_68),+ (69 , happyReduce_69),+ (70 , happyReduce_70),+ (71 , happyReduce_71),+ (72 , happyReduce_72),+ (73 , happyReduce_73),+ (74 , happyReduce_74),+ (75 , happyReduce_75),+ (76 , happyReduce_76),+ (77 , happyReduce_77),+ (78 , happyReduce_78),+ (79 , happyReduce_79),+ (80 , happyReduce_80),+ (81 , happyReduce_81),+ (82 , happyReduce_82),+ (83 , happyReduce_83),+ (84 , happyReduce_84),+ (85 , happyReduce_85),+ (86 , happyReduce_86),+ (87 , happyReduce_87),+ (88 , happyReduce_88),+ (89 , happyReduce_89),+ (90 , happyReduce_90),+ (91 , happyReduce_91),+ (92 , happyReduce_92),+ (93 , happyReduce_93),+ (94 , happyReduce_94),+ (95 , happyReduce_95),+ (96 , happyReduce_96),+ (97 , happyReduce_97),+ (98 , happyReduce_98),+ (99 , happyReduce_99),+ (100 , happyReduce_100),+ (101 , happyReduce_101),+ (102 , happyReduce_102),+ (103 , happyReduce_103),+ (104 , happyReduce_104),+ (105 , happyReduce_105),+ (106 , happyReduce_106),+ (107 , happyReduce_107),+ (108 , happyReduce_108),+ (109 , happyReduce_109),+ (110 , happyReduce_110),+ (111 , happyReduce_111),+ (112 , happyReduce_112),+ (113 , happyReduce_113),+ (114 , happyReduce_114),+ (115 , happyReduce_115),+ (116 , happyReduce_116),+ (117 , happyReduce_117),+ (118 , happyReduce_118),+ (119 , happyReduce_119),+ (120 , happyReduce_120),+ (121 , happyReduce_121),+ (122 , happyReduce_122),+ (123 , happyReduce_123),+ (124 , happyReduce_124),+ (125 , happyReduce_125),+ (126 , happyReduce_126),+ (127 , happyReduce_127),+ (128 , happyReduce_128),+ (129 , happyReduce_129),+ (130 , happyReduce_130),+ (131 , happyReduce_131),+ (132 , happyReduce_132),+ (133 , happyReduce_133),+ (134 , happyReduce_134),+ (135 , happyReduce_135),+ (136 , happyReduce_136),+ (137 , happyReduce_137),+ (138 , happyReduce_138),+ (139 , happyReduce_139),+ (140 , happyReduce_140),+ (141 , happyReduce_141),+ (142 , happyReduce_142),+ (143 , happyReduce_143),+ (144 , happyReduce_144),+ (145 , happyReduce_145),+ (146 , happyReduce_146),+ (147 , happyReduce_147),+ (148 , happyReduce_148),+ (149 , happyReduce_149),+ (150 , happyReduce_150),+ (151 , happyReduce_151),+ (152 , happyReduce_152),+ (153 , happyReduce_153),+ (154 , happyReduce_154),+ (155 , happyReduce_155),+ (156 , happyReduce_156),+ (157 , happyReduce_157),+ (158 , happyReduce_158),+ (159 , happyReduce_159),+ (160 , happyReduce_160),+ (161 , happyReduce_161),+ (162 , happyReduce_162),+ (163 , happyReduce_163),+ (164 , happyReduce_164),+ (165 , happyReduce_165),+ (166 , happyReduce_166),+ (167 , happyReduce_167),+ (168 , happyReduce_168),+ (169 , happyReduce_169),+ (170 , happyReduce_170),+ (171 , happyReduce_171),+ (172 , happyReduce_172),+ (173 , happyReduce_173),+ (174 , happyReduce_174),+ (175 , happyReduce_175),+ (176 , happyReduce_176),+ (177 , happyReduce_177),+ (178 , happyReduce_178),+ (179 , happyReduce_179),+ (180 , happyReduce_180),+ (181 , happyReduce_181),+ (182 , happyReduce_182),+ (183 , happyReduce_183),+ (184 , happyReduce_184),+ (185 , happyReduce_185),+ (186 , happyReduce_186),+ (187 , happyReduce_187),+ (188 , happyReduce_188),+ (189 , happyReduce_189),+ (190 , happyReduce_190),+ (191 , happyReduce_191),+ (192 , happyReduce_192),+ (193 , happyReduce_193),+ (194 , happyReduce_194),+ (195 , happyReduce_195),+ (196 , happyReduce_196),+ (197 , happyReduce_197),+ (198 , happyReduce_198),+ (199 , happyReduce_199),+ (200 , happyReduce_200),+ (201 , happyReduce_201),+ (202 , happyReduce_202),+ (203 , happyReduce_203),+ (204 , happyReduce_204),+ (205 , happyReduce_205),+ (206 , happyReduce_206),+ (207 , happyReduce_207),+ (208 , happyReduce_208),+ (209 , happyReduce_209),+ (210 , happyReduce_210),+ (211 , happyReduce_211),+ (212 , happyReduce_212),+ (213 , happyReduce_213),+ (214 , happyReduce_214),+ (215 , happyReduce_215),+ (216 , happyReduce_216),+ (217 , happyReduce_217),+ (218 , happyReduce_218),+ (219 , happyReduce_219),+ (220 , happyReduce_220),+ (221 , happyReduce_221),+ (222 , happyReduce_222),+ (223 , happyReduce_223),+ (224 , happyReduce_224),+ (225 , happyReduce_225),+ (226 , happyReduce_226),+ (227 , happyReduce_227),+ (228 , happyReduce_228),+ (229 , happyReduce_229),+ (230 , happyReduce_230),+ (231 , happyReduce_231),+ (232 , happyReduce_232),+ (233 , happyReduce_233),+ (234 , happyReduce_234),+ (235 , happyReduce_235),+ (236 , happyReduce_236),+ (237 , happyReduce_237),+ (238 , happyReduce_238),+ (239 , happyReduce_239),+ (240 , happyReduce_240),+ (241 , happyReduce_241),+ (242 , happyReduce_242),+ (243 , happyReduce_243),+ (244 , happyReduce_244),+ (245 , happyReduce_245),+ (246 , happyReduce_246),+ (247 , happyReduce_247),+ (248 , happyReduce_248),+ (249 , happyReduce_249),+ (250 , happyReduce_250),+ (251 , happyReduce_251),+ (252 , happyReduce_252),+ (253 , happyReduce_253),+ (254 , happyReduce_254),+ (255 , happyReduce_255),+ (256 , happyReduce_256),+ (257 , happyReduce_257),+ (258 , happyReduce_258),+ (259 , happyReduce_259),+ (260 , happyReduce_260),+ (261 , happyReduce_261),+ (262 , happyReduce_262),+ (263 , happyReduce_263),+ (264 , happyReduce_264),+ (265 , happyReduce_265),+ (266 , happyReduce_266),+ (267 , happyReduce_267),+ (268 , happyReduce_268),+ (269 , happyReduce_269),+ (270 , happyReduce_270),+ (271 , happyReduce_271)+ ]++happy_n_terms = 63 :: Int+happy_n_nonterms = 105 :: Int++happyReduce_1 = happyReduce 4# 0# happyReduction_1+happyReduction_1 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut100 happy_x_2 of { happy_var_2 -> + case happyOut5 happy_x_4 of { happy_var_4 -> + happyIn4+ (mkModule happy_var_2 happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_2 = happyReduce 6# 1# happyReduction_2+happyReduction_2 (happy_x_6 `HappyStk`+ happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut8 happy_x_3 of { happy_var_3 -> + case happyOut10 happy_x_4 of { happy_var_4 -> + case happyOut6 happy_x_6 of { happy_var_6 -> + happyIn5+ ((reverse happy_var_3,reverse happy_var_4, happy_var_6)+ ) `HappyStk` happyRest}}}++happyReduce_3 = happyReduce 5# 1# happyReduction_3+happyReduction_3 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut8 happy_x_2 of { happy_var_2 -> + case happyOut10 happy_x_3 of { happy_var_3 -> + case happyOut6 happy_x_5 of { happy_var_5 -> + happyIn5+ ((reverse happy_var_2, reverse happy_var_3, happy_var_5)+ ) `HappyStk` happyRest}}}++happyReduce_4 = happySpecReduce_2 2# happyReduction_4+happyReduction_4 happy_x_2+ happy_x_1+ = case happyOut7 happy_x_2 of { happy_var_2 -> + happyIn6+ (happy_var_2+ )}++happyReduce_5 = happySpecReduce_0 2# happyReduction_5+happyReduction_5 = happyIn6+ ([]+ )++happyReduce_6 = happyReduce 4# 3# happyReduction_6+happyReduction_6 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut10 happy_x_3 of { happy_var_3 -> + happyIn7+ (reverse happy_var_3+ ) `HappyStk` happyRest}++happyReduce_7 = happySpecReduce_3 3# happyReduction_7+happyReduction_7 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut10 happy_x_2 of { happy_var_2 -> + happyIn7+ (reverse happy_var_2+ )}++happyReduce_8 = happySpecReduce_3 4# happyReduction_8+happyReduction_8 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut8 happy_x_1 of { happy_var_1 -> + case happyOut9 happy_x_2 of { happy_var_2 -> + happyIn8+ (happy_var_2 : happy_var_1+ )}}++happyReduce_9 = happySpecReduce_0 4# happyReduction_9+happyReduction_9 = happyIn8+ ([]+ )++happyReduce_10 = happySpecReduce_2 5# happyReduction_10+happyReduction_10 happy_x_2+ happy_x_1+ = case happyOut100 happy_x_2 of { happy_var_2 -> + happyIn9+ (Import True (modId happy_var_2)+ )}++happyReduce_11 = happySpecReduce_2 5# happyReduction_11+happyReduction_11 happy_x_2+ happy_x_1+ = case happyOut100 happy_x_2 of { happy_var_2 -> + happyIn9+ (Import False (modId happy_var_2)+ )}++happyReduce_12 = happySpecReduce_3 6# happyReduction_12+happyReduction_12 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut10 happy_x_1 of { happy_var_1 -> + case happyOut11 happy_x_3 of { happy_var_3 -> + happyIn10+ (happy_var_3 ++ happy_var_1+ )}}++happyReduce_13 = happySpecReduce_1 6# happyReduction_13+happyReduction_13 happy_x_1+ = case happyOut11 happy_x_1 of { happy_var_1 -> + happyIn10+ (happy_var_1+ )}++happyReduce_14 = happySpecReduce_3 7# happyReduction_14+happyReduction_14 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut100 happy_x_1 of { happy_var_1 -> + case happyOut47 happy_x_3 of { happy_var_3 -> + happyIn11+ ([DKSig happy_var_1 happy_var_3]+ )}}++happyReduce_15 = happyReduce 5# 7# happyReduction_15+happyReduction_15 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut100 happy_x_2 of { happy_var_2 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + case happyOut38 happy_x_5 of { happy_var_5 -> + happyIn11+ ([DType happy_var_2 (reverse happy_var_3) happy_var_5]+ ) `HappyStk` happyRest}}}++happyReduce_16 = happyReduce 5# 7# happyReduction_16+happyReduction_16 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut100 happy_x_2 of { happy_var_2 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + case happyOut14 happy_x_4 of { happy_var_4 -> + case happyOut20 happy_x_5 of { happy_var_5 -> + happyIn11+ ([DData happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]+ ) `HappyStk` happyRest}}}}++happyReduce_17 = happyReduce 5# 7# happyReduction_17+happyReduction_17 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut100 happy_x_2 of { happy_var_2 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + case happyOut13 happy_x_4 of { happy_var_4 -> + case happyOut23 happy_x_5 of { happy_var_5 -> + happyIn11+ ([DRec False happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]+ ) `HappyStk` happyRest}}}}++happyReduce_18 = happyReduce 5# 7# happyReduction_18+happyReduction_18 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut100 happy_x_2 of { happy_var_2 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + case happyOut12 happy_x_4 of { happy_var_4 -> + case happyOut23 happy_x_5 of { happy_var_5 -> + happyIn11+ ([DRec True happy_var_2 (reverse happy_var_3) happy_var_4 happy_var_5]+ ) `HappyStk` happyRest}}}}++happyReduce_19 = happyReduce 5# 7# happyReduction_19+happyReduction_19 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut100 happy_x_2 of { happy_var_2 -> + case happyOut15 happy_x_3 of { happy_var_3 -> + case happyOut24 happy_x_5 of { happy_var_5 -> + happyIn11+ ([DRec True happy_var_2 (reverse happy_var_3) [] happy_var_5]+ ) `HappyStk` happyRest}}}++happyReduce_20 = happySpecReduce_2 7# happyReduction_20+happyReduction_20 happy_x_2+ happy_x_1+ = case happyOut16 happy_x_2 of { happy_var_2 -> + happyIn11+ ([DTClass happy_var_2]+ )}++happyReduce_21 = happyReduce 4# 7# happyReduction_21+happyReduction_21 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut92 happy_x_2 of { happy_var_2 -> + case happyOut38 happy_x_4 of { happy_var_4 -> + happyIn11+ ([DPSig happy_var_2 happy_var_4]+ ) `HappyStk` happyRest}}++happyReduce_22 = happyReduce 6# 7# happyReduction_22+happyReduction_22 (happy_x_6 `HappyStk`+ happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut92 happy_x_2 of { happy_var_2 -> + case happyOut38 happy_x_4 of { happy_var_4 -> + case happyOut28 happy_x_6 of { happy_var_6 -> + happyIn11+ ([DBind [BEqn (exp2lhs (EVar happy_var_2)) + (RExp (EBStruct (Just (type2head happy_var_4)) [] happy_var_6))],+ DPSig happy_var_2 happy_var_4]+ ) `HappyStk` happyRest}}}++happyReduce_23 = happyReduce 5# 7# happyReduction_23+happyReduction_23 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut92 happy_x_2 of { happy_var_2 -> + case happyOut38 happy_x_4 of { happy_var_4 -> + case happyOut35 happy_x_5 of { happy_var_5 -> + happyIn11+ ([DBind [BEqn (exp2lhs (EVar happy_var_2)) happy_var_5], DPSig happy_var_2 happy_var_4]+ ) `HappyStk` happyRest}}}++happyReduce_24 = happySpecReduce_2 7# happyReduction_24+happyReduction_24 happy_x_2+ happy_x_1+ = case happyOut16 happy_x_2 of { happy_var_2 -> + happyIn11+ ([DInstance happy_var_2]+ )}++happyReduce_25 = happySpecReduce_2 7# happyReduction_25+happyReduction_25 happy_x_2+ happy_x_1+ = case happyOut17 happy_x_2 of { happy_var_2 -> + happyIn11+ ([DDefault (reverse happy_var_2)]+ )}++happyReduce_26 = happySpecReduce_3 7# happyReduction_26+happyReduction_26 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOut38 happy_x_3 of { happy_var_3 -> + happyIn11+ ([DBind [BSig (reverse happy_var_1) happy_var_3]]+ )}}++happyReduce_27 = happySpecReduce_2 7# happyReduction_27+happyReduction_27 happy_x_2+ happy_x_1+ = case happyOut34 happy_x_1 of { happy_var_1 -> + case happyOut35 happy_x_2 of { happy_var_2 -> + happyIn11+ ([DBind [BEqn happy_var_1 happy_var_2]]+ )}}++happyReduce_28 = happySpecReduce_2 8# happyReduction_28+happyReduction_28 happy_x_2+ happy_x_1+ = case happyOut43 happy_x_2 of { happy_var_2 -> + happyIn12+ (reverse happy_var_2+ )}++happyReduce_29 = happySpecReduce_2 8# happyReduction_29+happyReduction_29 happy_x_2+ happy_x_1+ = case happyOut38 happy_x_2 of { happy_var_2 -> + happyIn12+ ([happy_var_2]+ )}++happyReduce_30 = happySpecReduce_1 9# happyReduction_30+happyReduction_30 happy_x_1+ = case happyOut12 happy_x_1 of { happy_var_1 -> + happyIn13+ (happy_var_1+ )}++happyReduce_31 = happySpecReduce_0 9# happyReduction_31+happyReduction_31 = happyIn13+ ([]+ )++happyReduce_32 = happySpecReduce_2 10# happyReduction_32+happyReduction_32 happy_x_2+ happy_x_1+ = case happyOut43 happy_x_2 of { happy_var_2 -> + happyIn14+ (reverse happy_var_2+ )}++happyReduce_33 = happySpecReduce_2 10# happyReduction_33+happyReduction_33 happy_x_2+ happy_x_1+ = case happyOut38 happy_x_2 of { happy_var_2 -> + happyIn14+ ([happy_var_2]+ )}++happyReduce_34 = happySpecReduce_0 10# happyReduction_34+happyReduction_34 = happyIn14+ ([]+ )++happyReduce_35 = happySpecReduce_2 11# happyReduction_35+happyReduction_35 happy_x_2+ happy_x_1+ = case happyOut15 happy_x_1 of { happy_var_1 -> + case happyOut99 happy_x_2 of { happy_var_2 -> + happyIn15+ (happy_var_2 : happy_var_1+ )}}++happyReduce_36 = happySpecReduce_0 11# happyReduction_36+happyReduction_36 = happyIn15+ ([]+ )++happyReduce_37 = happySpecReduce_3 12# happyReduction_37+happyReduction_37 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut16 happy_x_1 of { happy_var_1 -> + case happyOut97 happy_x_3 of { happy_var_3 -> + happyIn16+ (happy_var_3 : happy_var_1+ )}}++happyReduce_38 = happySpecReduce_1 12# happyReduction_38+happyReduction_38 happy_x_1+ = case happyOut97 happy_x_1 of { happy_var_1 -> + happyIn16+ ([happy_var_1]+ )}++happyReduce_39 = happyReduce 4# 13# happyReduction_39+happyReduction_39 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut18 happy_x_3 of { happy_var_3 -> + happyIn17+ (happy_var_3+ ) `HappyStk` happyRest}++happyReduce_40 = happySpecReduce_3 13# happyReduction_40+happyReduction_40 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut18 happy_x_2 of { happy_var_2 -> + happyIn17+ (happy_var_2+ )}++happyReduce_41 = happySpecReduce_3 14# happyReduction_41+happyReduction_41 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut18 happy_x_1 of { happy_var_1 -> + case happyOut19 happy_x_3 of { happy_var_3 -> + happyIn18+ (happy_var_3 : happy_var_1+ )}}++happyReduce_42 = happySpecReduce_1 14# happyReduction_42+happyReduction_42 happy_x_1+ = case happyOut19 happy_x_1 of { happy_var_1 -> + happyIn18+ ([happy_var_1]+ )}++happyReduce_43 = happySpecReduce_3 15# happyReduction_43+happyReduction_43 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut92 happy_x_1 of { happy_var_1 -> + case happyOut92 happy_x_3 of { happy_var_3 -> + happyIn19+ (Default True happy_var_1 happy_var_3+ )}}++happyReduce_44 = happySpecReduce_3 15# happyReduction_44+happyReduction_44 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut92 happy_x_1 of { happy_var_1 -> + case happyOut38 happy_x_3 of { happy_var_3 -> + happyIn19+ (Derive happy_var_1 happy_var_3+ )}}++happyReduce_45 = happySpecReduce_2 16# happyReduction_45+happyReduction_45 happy_x_2+ happy_x_1+ = case happyOut21 happy_x_2 of { happy_var_2 -> + happyIn20+ (reverse happy_var_2+ )}++happyReduce_46 = happySpecReduce_0 16# happyReduction_46+happyReduction_46 = happyIn20+ ([]+ )++happyReduce_47 = happySpecReduce_3 17# happyReduction_47+happyReduction_47 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut21 happy_x_1 of { happy_var_1 -> + case happyOut22 happy_x_3 of { happy_var_3 -> + happyIn21+ (happy_var_3 : happy_var_1+ )}}++happyReduce_48 = happySpecReduce_1 17# happyReduction_48+happyReduction_48 happy_x_1+ = case happyOut22 happy_x_1 of { happy_var_1 -> + happyIn21+ ([happy_var_1]+ )}++happyReduce_49 = happySpecReduce_3 18# happyReduction_49+happyReduction_49 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut38 happy_x_1 of { happy_var_1 -> + case happyOut102 happy_x_2 of { happy_var_2 -> + case happyOut38 happy_x_3 of { happy_var_3 -> + happyIn22+ (Constr happy_var_2 [happy_var_1, happy_var_3] []+ )}}}++happyReduce_50 = happySpecReduce_1 18# happyReduction_50+happyReduction_50 happy_x_1+ = case happyOut38 happy_x_1 of { happy_var_1 -> + happyIn22+ (type2cons happy_var_1+ )}++happyReduce_51 = happySpecReduce_2 19# happyReduction_51+happyReduction_51 happy_x_2+ happy_x_1+ = case happyOut24 happy_x_2 of { happy_var_2 -> + happyIn23+ (happy_var_2+ )}++happyReduce_52 = happySpecReduce_0 19# happyReduction_52+happyReduction_52 = happyIn23+ ([]+ )++happyReduce_53 = happyReduce 4# 20# happyReduction_53+happyReduction_53 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut25 happy_x_3 of { happy_var_3 -> + happyIn24+ (reverse happy_var_3+ ) `HappyStk` happyRest}++happyReduce_54 = happySpecReduce_3 20# happyReduction_54+happyReduction_54 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut25 happy_x_2 of { happy_var_2 -> + happyIn24+ (reverse happy_var_2+ )}++happyReduce_55 = happySpecReduce_1 21# happyReduction_55+happyReduction_55 happy_x_1+ = case happyOut26 happy_x_1 of { happy_var_1 -> + happyIn25+ (happy_var_1+ )}++happyReduce_56 = happySpecReduce_0 21# happyReduction_56+happyReduction_56 = happyIn25+ ([]+ )++happyReduce_57 = happySpecReduce_3 22# happyReduction_57+happyReduction_57 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut26 happy_x_1 of { happy_var_1 -> + case happyOut27 happy_x_3 of { happy_var_3 -> + happyIn26+ (happy_var_3 : happy_var_1+ )}}++happyReduce_58 = happySpecReduce_1 22# happyReduction_58+happyReduction_58 happy_x_1+ = case happyOut27 happy_x_1 of { happy_var_1 -> + happyIn26+ ([happy_var_1]+ )}++happyReduce_59 = happySpecReduce_3 23# happyReduction_59+happyReduction_59 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOut38 happy_x_3 of { happy_var_3 -> + happyIn27+ (Sig (reverse happy_var_1) happy_var_3+ )}}++happyReduce_60 = happyReduce 4# 24# happyReduction_60+happyReduction_60 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut29 happy_x_3 of { happy_var_3 -> + happyIn28+ (reverse happy_var_3+ ) `HappyStk` happyRest}++happyReduce_61 = happySpecReduce_3 24# happyReduction_61+happyReduction_61 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut29 happy_x_2 of { happy_var_2 -> + happyIn28+ (reverse happy_var_2+ )}++happyReduce_62 = happySpecReduce_3 25# happyReduction_62+happyReduction_62 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut29 happy_x_1 of { happy_var_1 -> + case happyOut30 happy_x_3 of { happy_var_3 -> + happyIn29+ (happy_var_3 : happy_var_1+ )}}++happyReduce_63 = happySpecReduce_1 25# happyReduction_63+happyReduction_63 happy_x_1+ = case happyOut30 happy_x_1 of { happy_var_1 -> + happyIn29+ ([happy_var_1]+ )}++happyReduce_64 = happySpecReduce_3 26# happyReduction_64+happyReduction_64 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOut38 happy_x_3 of { happy_var_3 -> + happyIn30+ (BSig (reverse happy_var_1) happy_var_3+ )}}++happyReduce_65 = happySpecReduce_2 26# happyReduction_65+happyReduction_65 happy_x_2+ happy_x_1+ = case happyOut34 happy_x_1 of { happy_var_1 -> + case happyOut35 happy_x_2 of { happy_var_2 -> + happyIn30+ (BEqn happy_var_1 happy_var_2+ )}}++happyReduce_66 = happySpecReduce_3 27# happyReduction_66+happyReduction_66 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut31 happy_x_1 of { happy_var_1 -> + case happyOut32 happy_x_3 of { happy_var_3 -> + happyIn31+ (happy_var_3 : happy_var_1+ )}}++happyReduce_67 = happySpecReduce_1 27# happyReduction_67+happyReduction_67 happy_x_1+ = case happyOut32 happy_x_1 of { happy_var_1 -> + happyIn31+ ([happy_var_1]+ )}++happyReduce_68 = happySpecReduce_3 28# happyReduction_68+happyReduction_68 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut92 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn32+ (Field happy_var_1 happy_var_3+ )}}++happyReduce_69 = happySpecReduce_3 29# happyReduction_69+happyReduction_69 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOut92 happy_x_3 of { happy_var_3 -> + happyIn33+ (happy_var_3 : happy_var_1+ )}}++happyReduce_70 = happySpecReduce_1 29# happyReduction_70+happyReduction_70 happy_x_1+ = case happyOut92 happy_x_1 of { happy_var_1 -> + happyIn33+ ([happy_var_1]+ )}++happyReduce_71 = happySpecReduce_1 30# happyReduction_71+happyReduction_71 happy_x_1+ = case happyOut84 happy_x_1 of { happy_var_1 -> + happyIn34+ (exp2lhs happy_var_1+ )}++happyReduce_72 = happySpecReduce_2 31# happyReduction_72+happyReduction_72 happy_x_2+ happy_x_1+ = case happyOut49 happy_x_2 of { happy_var_2 -> + happyIn35+ (RExp happy_var_2+ )}++happyReduce_73 = happySpecReduce_1 31# happyReduction_73+happyReduction_73 happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + happyIn35+ (RGrd (reverse happy_var_1)+ )}++happyReduce_74 = happySpecReduce_3 31# happyReduction_74+happyReduction_74 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut35 happy_x_1 of { happy_var_1 -> + case happyOut28 happy_x_3 of { happy_var_3 -> + happyIn35+ (RWhere happy_var_1 happy_var_3+ )}}++happyReduce_75 = happySpecReduce_2 32# happyReduction_75+happyReduction_75 happy_x_2+ happy_x_1+ = case happyOut36 happy_x_1 of { happy_var_1 -> + case happyOut37 happy_x_2 of { happy_var_2 -> + happyIn36+ (happy_var_2 : happy_var_1+ )}}++happyReduce_76 = happySpecReduce_1 32# happyReduction_76+happyReduction_76 happy_x_1+ = case happyOut37 happy_x_1 of { happy_var_1 -> + happyIn36+ ([happy_var_1]+ )}++happyReduce_77 = happyReduce 4# 33# happyReduction_77+happyReduction_77 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut65 happy_x_2 of { happy_var_2 -> + case happyOut49 happy_x_4 of { happy_var_4 -> + happyIn37+ (GExp (reverse happy_var_2) happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_78 = happySpecReduce_3 34# happyReduction_78+happyReduction_78 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut39 happy_x_1 of { happy_var_1 -> + case happyOut45 happy_x_3 of { happy_var_3 -> + happyIn38+ (TQual happy_var_1 happy_var_3+ )}}++happyReduce_79 = happySpecReduce_1 34# happyReduction_79+happyReduction_79 happy_x_1+ = case happyOut39 happy_x_1 of { happy_var_1 -> + happyIn38+ (happy_var_1+ )}++happyReduce_80 = happySpecReduce_1 35# happyReduction_80+happyReduction_80 happy_x_1+ = case happyOut40 happy_x_1 of { happy_var_1 -> + happyIn39+ (tFun (reverse (tail happy_var_1)) (head happy_var_1)+ )}++happyReduce_81 = happySpecReduce_3 35# happyReduction_81+happyReduction_81 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut41 happy_x_1 of { happy_var_1 -> + case happyOut41 happy_x_3 of { happy_var_3 -> + happyIn39+ (TSub happy_var_1 happy_var_3+ )}}++happyReduce_82 = happySpecReduce_3 36# happyReduction_82+happyReduction_82 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut40 happy_x_1 of { happy_var_1 -> + case happyOut41 happy_x_3 of { happy_var_3 -> + happyIn40+ (happy_var_3 : happy_var_1+ )}}++happyReduce_83 = happySpecReduce_1 36# happyReduction_83+happyReduction_83 happy_x_1+ = case happyOut41 happy_x_1 of { happy_var_1 -> + happyIn40+ ([happy_var_1]+ )}++happyReduce_84 = happySpecReduce_2 37# happyReduction_84+happyReduction_84 happy_x_2+ happy_x_1+ = case happyOut41 happy_x_1 of { happy_var_1 -> + case happyOut42 happy_x_2 of { happy_var_2 -> + happyIn41+ (TAp happy_var_1 happy_var_2+ )}}++happyReduce_85 = happySpecReduce_1 37# happyReduction_85+happyReduction_85 happy_x_1+ = case happyOut42 happy_x_1 of { happy_var_1 -> + happyIn41+ (happy_var_1+ )}++happyReduce_86 = happySpecReduce_1 38# happyReduction_86+happyReduction_86 happy_x_1+ = case happyOut93 happy_x_1 of { happy_var_1 -> + happyIn42+ (TCon happy_var_1+ )}++happyReduce_87 = happySpecReduce_1 38# happyReduction_87+happyReduction_87 happy_x_1+ = case happyOut99 happy_x_1 of { happy_var_1 -> + happyIn42+ (TVar happy_var_1+ )}++happyReduce_88 = happySpecReduce_1 38# happyReduction_88+happyReduction_88 happy_x_1+ = happyIn42+ (TWild+ )++happyReduce_89 = happySpecReduce_2 38# happyReduction_89+happyReduction_89 happy_x_2+ happy_x_1+ = happyIn42+ (TCon (prim LIST)+ )++happyReduce_90 = happySpecReduce_3 38# happyReduction_90+happyReduction_90 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut44 happy_x_2 of { happy_var_2 -> + happyIn42+ (TCon (tuple (happy_var_2+1))+ )}++happyReduce_91 = happySpecReduce_2 38# happyReduction_91+happyReduction_91 happy_x_2+ happy_x_1+ = happyIn42+ (TCon (prim UNITTYPE)+ )++happyReduce_92 = happySpecReduce_3 38# happyReduction_92+happyReduction_92 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut38 happy_x_2 of { happy_var_2 -> + happyIn42+ (happy_var_2+ )}++happyReduce_93 = happySpecReduce_3 38# happyReduction_93+happyReduction_93 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut43 happy_x_2 of { happy_var_2 -> + happyIn42+ (TTup (reverse happy_var_2)+ )}++happyReduce_94 = happySpecReduce_3 38# happyReduction_94+happyReduction_94 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut38 happy_x_2 of { happy_var_2 -> + happyIn42+ (TList happy_var_2+ )}++happyReduce_95 = happySpecReduce_3 39# happyReduction_95+happyReduction_95 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut43 happy_x_1 of { happy_var_1 -> + case happyOut39 happy_x_3 of { happy_var_3 -> + happyIn43+ (happy_var_3 : happy_var_1+ )}}++happyReduce_96 = happySpecReduce_3 39# happyReduction_96+happyReduction_96 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut39 happy_x_1 of { happy_var_1 -> + case happyOut39 happy_x_3 of { happy_var_3 -> + happyIn43+ ([happy_var_3, happy_var_1]+ )}}++happyReduce_97 = happySpecReduce_2 40# happyReduction_97+happyReduction_97 happy_x_2+ happy_x_1+ = case happyOut44 happy_x_1 of { happy_var_1 -> + happyIn44+ (happy_var_1 + 1+ )}++happyReduce_98 = happySpecReduce_1 40# happyReduction_98+happyReduction_98 happy_x_1+ = happyIn44+ (1+ )++happyReduce_99 = happySpecReduce_3 41# happyReduction_99+happyReduction_99 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut45 happy_x_1 of { happy_var_1 -> + case happyOut46 happy_x_3 of { happy_var_3 -> + happyIn45+ (happy_var_3 : happy_var_1+ )}}++happyReduce_100 = happySpecReduce_1 41# happyReduction_100+happyReduction_100 happy_x_1+ = case happyOut46 happy_x_1 of { happy_var_1 -> + happyIn45+ ([happy_var_1]+ )}++happyReduce_101 = happySpecReduce_1 42# happyReduction_101+happyReduction_101 happy_x_1+ = case happyOut39 happy_x_1 of { happy_var_1 -> + happyIn46+ (PType happy_var_1+ )}++happyReduce_102 = happySpecReduce_3 42# happyReduction_102+happyReduction_102 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut99 happy_x_1 of { happy_var_1 -> + case happyOut47 happy_x_3 of { happy_var_3 -> + happyIn46+ (PKind happy_var_1 happy_var_3+ )}}++happyReduce_103 = happySpecReduce_3 43# happyReduction_103+happyReduction_103 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut48 happy_x_1 of { happy_var_1 -> + case happyOut47 happy_x_3 of { happy_var_3 -> + happyIn47+ (KFun happy_var_1 happy_var_3+ )}}++happyReduce_104 = happySpecReduce_1 43# happyReduction_104+happyReduction_104 happy_x_1+ = case happyOut48 happy_x_1 of { happy_var_1 -> + happyIn47+ (happy_var_1+ )}++happyReduce_105 = happySpecReduce_1 44# happyReduction_105+happyReduction_105 happy_x_1+ = happyIn48+ (Star+ )++happyReduce_106 = happySpecReduce_1 44# happyReduction_106+happyReduction_106 happy_x_1+ = happyIn48+ (KWild+ )++happyReduce_107 = happySpecReduce_3 44# happyReduction_107+happyReduction_107 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut47 happy_x_2 of { happy_var_2 -> + happyIn48+ (happy_var_2+ )}++happyReduce_108 = happySpecReduce_3 45# happyReduction_108+happyReduction_108 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut51 happy_x_1 of { happy_var_1 -> + case happyOut41 happy_x_3 of { happy_var_3 -> + happyIn49+ (ESig happy_var_1 happy_var_3+ )}}++happyReduce_109 = happySpecReduce_1 45# happyReduction_109+happyReduction_109 happy_x_1+ = case happyOut50 happy_x_1 of { happy_var_1 -> + happyIn49+ (happy_var_1+ )}++happyReduce_110 = happySpecReduce_2 45# happyReduction_110+happyReduction_110 happy_x_2+ happy_x_1+ = case happyOut28 happy_x_2 of { happy_var_2 -> + happyIn49+ (EBStruct Nothing [] happy_var_2+ )}++happyReduce_111 = happySpecReduce_1 46# happyReduction_111+happyReduction_111 happy_x_1+ = case happyOut51 happy_x_1 of { happy_var_1 -> + happyIn50+ (happy_var_1+ )}++happyReduce_112 = happySpecReduce_1 46# happyReduction_112+happyReduction_112 happy_x_1+ = case happyOut52 happy_x_1 of { happy_var_1 -> + happyIn50+ (happy_var_1+ )}++happyReduce_113 = happySpecReduce_1 47# happyReduction_113+happyReduction_113 happy_x_1+ = case happyOut53 happy_x_1 of { happy_var_1 -> + happyIn51+ (transFix happy_var_1+ )}++happyReduce_114 = happySpecReduce_1 47# happyReduction_114+happyReduction_114 happy_x_1+ = case happyOut55 happy_x_1 of { happy_var_1 -> + happyIn51+ (happy_var_1+ )}++happyReduce_115 = happySpecReduce_1 48# happyReduction_115+happyReduction_115 happy_x_1+ = case happyOut54 happy_x_1 of { happy_var_1 -> + happyIn52+ (transFix happy_var_1+ )}++happyReduce_116 = happySpecReduce_1 48# happyReduction_116+happyReduction_116 happy_x_1+ = case happyOut57 happy_x_1 of { happy_var_1 -> + happyIn52+ (happy_var_1+ )}++happyReduce_117 = happyReduce 4# 49# happyReduction_117+happyReduction_117 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut53 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut55 happy_x_4 of { happy_var_4 -> + happyIn53+ (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_118 = happySpecReduce_3 49# happyReduction_118+happyReduction_118 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut53 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut55 happy_x_3 of { happy_var_3 -> + happyIn53+ (Cons happy_var_1 happy_var_2 happy_var_3+ )}}}++happyReduce_119 = happySpecReduce_2 49# happyReduction_119+happyReduction_119 happy_x_2+ happy_x_1+ = case happyOut55 happy_x_2 of { happy_var_2 -> + happyIn53+ (Nil (ENeg happy_var_2)+ )}++happyReduce_120 = happyReduce 4# 49# happyReduction_120+happyReduction_120 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut55 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut55 happy_x_4 of { happy_var_4 -> + happyIn53+ (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_121 = happySpecReduce_3 49# happyReduction_121+happyReduction_121 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut55 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut55 happy_x_3 of { happy_var_3 -> + happyIn53+ (Cons (Nil happy_var_1) happy_var_2 happy_var_3+ )}}}++happyReduce_122 = happyReduce 4# 50# happyReduction_122+happyReduction_122 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut53 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut57 happy_x_4 of { happy_var_4 -> + happyIn54+ (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_123 = happySpecReduce_3 50# happyReduction_123+happyReduction_123 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut53 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut57 happy_x_3 of { happy_var_3 -> + happyIn54+ (Cons happy_var_1 happy_var_2 happy_var_3+ )}}}++happyReduce_124 = happySpecReduce_2 50# happyReduction_124+happyReduction_124 happy_x_2+ happy_x_1+ = case happyOut57 happy_x_2 of { happy_var_2 -> + happyIn54+ (Nil (ENeg happy_var_2)+ )}++happyReduce_125 = happyReduce 4# 50# happyReduction_125+happyReduction_125 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut55 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut57 happy_x_4 of { happy_var_4 -> + happyIn54+ (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_126 = happySpecReduce_3 50# happyReduction_126+happyReduction_126 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut55 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut57 happy_x_3 of { happy_var_3 -> + happyIn54+ (Cons (Nil happy_var_1) happy_var_2 happy_var_3+ )}}}++happyReduce_127 = happyReduce 4# 51# happyReduction_127+happyReduction_127 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut49 happy_x_2 of { happy_var_2 -> + case happyOut67 happy_x_4 of { happy_var_4 -> + happyIn55+ (ECase happy_var_2 happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_128 = happyReduce 4# 51# happyReduction_128+happyReduction_128 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut31 happy_x_3 of { happy_var_3 -> + happyIn55+ (ERec Nothing (reverse happy_var_3)+ ) `HappyStk` happyRest}++happyReduce_129 = happySpecReduce_3 51# happyReduction_129+happyReduction_129 happy_x_3+ happy_x_2+ happy_x_1+ = happyIn55+ (ERec Nothing []+ )++happyReduce_130 = happySpecReduce_1 51# happyReduction_130+happyReduction_130 happy_x_1+ = case happyOut56 happy_x_1 of { happy_var_1 -> + happyIn55+ (happy_var_1+ )}++happyReduce_131 = happySpecReduce_3 52# happyReduction_131+happyReduction_131 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut79 happy_x_3 of { happy_var_3 -> + happyIn56+ (EDo Nothing Nothing happy_var_3+ )}++happyReduce_132 = happySpecReduce_3 52# happyReduction_132+happyReduction_132 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut79 happy_x_3 of { happy_var_3 -> + happyIn56+ (ETempl Nothing Nothing happy_var_3+ )}++happyReduce_133 = happySpecReduce_3 52# happyReduction_133+happyReduction_133 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut79 happy_x_3 of { happy_var_3 -> + happyIn56+ (EAct Nothing happy_var_3+ )}++happyReduce_134 = happySpecReduce_3 52# happyReduction_134+happyReduction_134 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut79 happy_x_3 of { happy_var_3 -> + happyIn56+ (EReq Nothing happy_var_3+ )}++happyReduce_135 = happyReduce 5# 52# happyReduction_135+happyReduction_135 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut93 happy_x_1 of { happy_var_1 -> + case happyOut31 happy_x_4 of { happy_var_4 -> + happyIn56+ (ERec (Just (happy_var_1,True)) (reverse happy_var_4)+ ) `HappyStk` happyRest}}++happyReduce_136 = happyReduce 6# 52# happyReduction_136+happyReduction_136 (happy_x_6 `HappyStk`+ happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut93 happy_x_1 of { happy_var_1 -> + case happyOut31 happy_x_4 of { happy_var_4 -> + happyIn56+ (ERec (Just (happy_var_1,False)) (reverse happy_var_4)+ ) `HappyStk` happyRest}}++happyReduce_137 = happyReduce 7# 52# happyReduction_137+happyReduction_137 (happy_x_7 `HappyStk`+ happy_x_6 `HappyStk`+ happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut93 happy_x_1 of { happy_var_1 -> + case happyOut31 happy_x_4 of { happy_var_4 -> + happyIn56+ (ERec (Just (happy_var_1,False)) (reverse happy_var_4)+ ) `HappyStk` happyRest}}++happyReduce_138 = happyReduce 5# 52# happyReduction_138+happyReduction_138 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut93 happy_x_1 of { happy_var_1 -> + happyIn56+ (ERec (Just (happy_var_1,False)) []+ ) `HappyStk` happyRest}++happyReduce_139 = happyReduce 4# 52# happyReduction_139+happyReduction_139 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut93 happy_x_1 of { happy_var_1 -> + happyIn56+ (ERec (Just (happy_var_1,True)) []+ ) `HappyStk` happyRest}++happyReduce_140 = happySpecReduce_1 52# happyReduction_140+happyReduction_140 happy_x_1+ = case happyOut59 happy_x_1 of { happy_var_1 -> + happyIn56+ (happy_var_1+ )}++happyReduce_141 = happyReduce 6# 53# happyReduction_141+happyReduction_141 (happy_x_6 `HappyStk`+ happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut49 happy_x_2 of { happy_var_2 -> + case happyOut49 happy_x_4 of { happy_var_4 -> + case happyOut49 happy_x_6 of { happy_var_6 -> + happyIn57+ (EIf happy_var_2 happy_var_4 happy_var_6+ ) `HappyStk` happyRest}}}++happyReduce_142 = happySpecReduce_1 53# happyReduction_142+happyReduction_142 happy_x_1+ = case happyOut58 happy_x_1 of { happy_var_1 -> + happyIn57+ (happy_var_1+ )}++happyReduce_143 = happyReduce 4# 54# happyReduction_143+happyReduction_143 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut90 happy_x_2 of { happy_var_2 -> + case happyOut49 happy_x_4 of { happy_var_4 -> + happyIn58+ (ELam (reverse happy_var_2) happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_144 = happyReduce 4# 54# happyReduction_144+happyReduction_144 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut28 happy_x_2 of { happy_var_2 -> + case happyOut49 happy_x_4 of { happy_var_4 -> + happyIn58+ (ELet happy_var_2 happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_145 = happySpecReduce_3 54# happyReduction_145+happyReduction_145 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut60 happy_x_2 of { happy_var_2 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn58+ (EAfter happy_var_2 happy_var_3+ )}}++happyReduce_146 = happySpecReduce_3 54# happyReduction_146+happyReduction_146 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut60 happy_x_2 of { happy_var_2 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn58+ (EBefore happy_var_2 happy_var_3+ )}}++happyReduce_147 = happySpecReduce_2 55# happyReduction_147+happyReduction_147 happy_x_2+ happy_x_1+ = case happyOut59 happy_x_1 of { happy_var_1 -> + case happyOut60 happy_x_2 of { happy_var_2 -> + happyIn59+ (EAp happy_var_1 happy_var_2+ )}}++happyReduce_148 = happySpecReduce_1 55# happyReduction_148+happyReduction_148 happy_x_1+ = case happyOut60 happy_x_1 of { happy_var_1 -> + happyIn59+ (happy_var_1+ )}++happyReduce_149 = happySpecReduce_3 56# happyReduction_149+happyReduction_149 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut60 happy_x_1 of { happy_var_1 -> + case happyOut92 happy_x_3 of { happy_var_3 -> + happyIn60+ (ESelect happy_var_1 happy_var_3+ )}}++happyReduce_150 = happySpecReduce_1 56# happyReduction_150+happyReduction_150 happy_x_1+ = case happyOut61 happy_x_1 of { happy_var_1 -> + happyIn60+ (happy_var_1+ )}++happyReduce_151 = happySpecReduce_1 57# happyReduction_151+happyReduction_151 happy_x_1+ = case happyOut92 happy_x_1 of { happy_var_1 -> + happyIn61+ (EVar happy_var_1+ )}++happyReduce_152 = happySpecReduce_1 57# happyReduction_152+happyReduction_152 happy_x_1+ = happyIn61+ (EWild+ )++happyReduce_153 = happySpecReduce_1 57# happyReduction_153+happyReduction_153 happy_x_1+ = case happyOut93 happy_x_1 of { happy_var_1 -> + happyIn61+ (ECon happy_var_1+ )}++happyReduce_154 = happySpecReduce_1 57# happyReduction_154+happyReduction_154 happy_x_1+ = case happyOut62 happy_x_1 of { happy_var_1 -> + happyIn61+ (ELit happy_var_1+ )}++happyReduce_155 = happySpecReduce_2 57# happyReduction_155+happyReduction_155 happy_x_2+ happy_x_1+ = happyIn61+ (ECon (prim UNITTERM)+ )++happyReduce_156 = happyReduce 4# 57# happyReduction_156+happyReduction_156 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut92 happy_x_3 of { happy_var_3 -> + happyIn61+ (ESel happy_var_3+ ) `HappyStk` happyRest}++happyReduce_157 = happySpecReduce_3 57# happyReduction_157+happyReduction_157 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut49 happy_x_2 of { happy_var_2 -> + happyIn61+ (happy_var_2+ )}++happyReduce_158 = happySpecReduce_3 57# happyReduction_158+happyReduction_158 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut64 happy_x_2 of { happy_var_2 -> + happyIn61+ (ETup (reverse happy_var_2)+ )}++happyReduce_159 = happySpecReduce_3 57# happyReduction_159+happyReduction_159 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut63 happy_x_2 of { happy_var_2 -> + happyIn61+ (happy_var_2+ )}++happyReduce_160 = happyReduce 4# 57# happyReduction_160+happyReduction_160 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut55 happy_x_2 of { happy_var_2 -> + case happyOut96 happy_x_3 of { happy_var_3 -> + happyIn61+ (ESectR happy_var_2 happy_var_3+ ) `HappyStk` happyRest}}++happyReduce_161 = happyReduce 4# 57# happyReduction_161+happyReduction_161 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut98 happy_x_2 of { happy_var_2 -> + case happyOut59 happy_x_3 of { happy_var_3 -> + happyIn61+ (ESectL happy_var_2 happy_var_3+ ) `HappyStk` happyRest}}++happyReduce_162 = happySpecReduce_3 57# happyReduction_162+happyReduction_162 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut44 happy_x_2 of { happy_var_2 -> + happyIn61+ (ECon (tuple (happy_var_2+1))+ )}++happyReduce_163 = happySpecReduce_2 58# happyReduction_163+happyReduction_163 happy_x_2+ happy_x_1+ = case happyOut108 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { (IntTok happy_var_2) -> + happyIn62+ (LInt (Just happy_var_1) (readInteger happy_var_2)+ )}}++happyReduce_164 = happySpecReduce_2 58# happyReduction_164+happyReduction_164 happy_x_2+ happy_x_1+ = case happyOut108 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { (FloatTok happy_var_2) -> + happyIn62+ (LRat (Just happy_var_1) (readRational happy_var_2)+ )}}++happyReduce_165 = happySpecReduce_2 58# happyReduction_165+happyReduction_165 happy_x_2+ happy_x_1+ = case happyOut108 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { (Character happy_var_2) -> + happyIn62+ (LChr (Just happy_var_1) happy_var_2+ )}}++happyReduce_166 = happySpecReduce_2 58# happyReduction_166+happyReduction_166 happy_x_2+ happy_x_1+ = case happyOut108 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { (StringTok happy_var_2) -> + happyIn62+ (LStr (Just happy_var_1) happy_var_2+ )}}++happyReduce_167 = happySpecReduce_0 59# happyReduction_167+happyReduction_167 = happyIn63+ (EList []+ )++happyReduce_168 = happySpecReduce_1 59# happyReduction_168+happyReduction_168 happy_x_1+ = case happyOut49 happy_x_1 of { happy_var_1 -> + happyIn63+ (EList [happy_var_1]+ )}++happyReduce_169 = happySpecReduce_1 59# happyReduction_169+happyReduction_169 happy_x_1+ = case happyOut64 happy_x_1 of { happy_var_1 -> + happyIn63+ (EList (reverse happy_var_1)+ )}++happyReduce_170 = happySpecReduce_3 59# happyReduction_170+happyReduction_170 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut49 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn63+ (ESeq happy_var_1 Nothing happy_var_3+ )}}++happyReduce_171 = happyReduce 5# 59# happyReduction_171+happyReduction_171 (happy_x_5 `HappyStk`+ happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut49 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + case happyOut49 happy_x_5 of { happy_var_5 -> + happyIn63+ (ESeq happy_var_1 (Just happy_var_3) happy_var_5+ ) `HappyStk` happyRest}}}++happyReduce_172 = happySpecReduce_3 59# happyReduction_172+happyReduction_172 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut49 happy_x_1 of { happy_var_1 -> + case happyOut65 happy_x_3 of { happy_var_3 -> + happyIn63+ (EComp happy_var_1 (reverse happy_var_3)+ )}}++happyReduce_173 = happySpecReduce_3 60# happyReduction_173+happyReduction_173 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut64 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn64+ (happy_var_3 : happy_var_1+ )}}++happyReduce_174 = happySpecReduce_3 60# happyReduction_174+happyReduction_174 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut49 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn64+ ([happy_var_3,happy_var_1]+ )}}++happyReduce_175 = happySpecReduce_3 61# happyReduction_175+happyReduction_175 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut65 happy_x_1 of { happy_var_1 -> + case happyOut66 happy_x_3 of { happy_var_3 -> + happyIn65+ (happy_var_3 : happy_var_1+ )}}++happyReduce_176 = happySpecReduce_1 61# happyReduction_176+happyReduction_176 happy_x_1+ = case happyOut66 happy_x_1 of { happy_var_1 -> + happyIn65+ ([happy_var_1]+ )}++happyReduce_177 = happySpecReduce_3 62# happyReduction_177+happyReduction_177 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut89 happy_x_1 of { happy_var_1 -> + case happyOut84 happy_x_3 of { happy_var_3 -> + happyIn66+ (QGen happy_var_1 happy_var_3+ )}}++happyReduce_178 = happySpecReduce_1 62# happyReduction_178+happyReduction_178 happy_x_1+ = case happyOut84 happy_x_1 of { happy_var_1 -> + happyIn66+ (QExp happy_var_1+ )}++happyReduce_179 = happySpecReduce_2 62# happyReduction_179+happyReduction_179 happy_x_2+ happy_x_1+ = case happyOut28 happy_x_2 of { happy_var_2 -> + happyIn66+ (QLet happy_var_2+ )}++happyReduce_180 = happyReduce 4# 63# happyReduction_180+happyReduction_180 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut68 happy_x_3 of { happy_var_3 -> + happyIn67+ (reverse happy_var_3+ ) `HappyStk` happyRest}++happyReduce_181 = happySpecReduce_3 63# happyReduction_181+happyReduction_181 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut68 happy_x_2 of { happy_var_2 -> + happyIn67+ (reverse happy_var_2+ )}++happyReduce_182 = happySpecReduce_3 64# happyReduction_182+happyReduction_182 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut68 happy_x_1 of { happy_var_1 -> + case happyOut69 happy_x_3 of { happy_var_3 -> + happyIn68+ (happy_var_3 : happy_var_1+ )}}++happyReduce_183 = happySpecReduce_1 64# happyReduction_183+happyReduction_183 happy_x_1+ = case happyOut69 happy_x_1 of { happy_var_1 -> + happyIn68+ ([happy_var_1]+ )}++happyReduce_184 = happySpecReduce_2 65# happyReduction_184+happyReduction_184 happy_x_2+ happy_x_1+ = case happyOut89 happy_x_1 of { happy_var_1 -> + case happyOut70 happy_x_2 of { happy_var_2 -> + happyIn69+ (Alt happy_var_1 happy_var_2+ )}}++happyReduce_185 = happySpecReduce_2 66# happyReduction_185+happyReduction_185 happy_x_2+ happy_x_1+ = case happyOut49 happy_x_2 of { happy_var_2 -> + happyIn70+ (RExp happy_var_2+ )}++happyReduce_186 = happySpecReduce_1 66# happyReduction_186+happyReduction_186 happy_x_1+ = case happyOut71 happy_x_1 of { happy_var_1 -> + happyIn70+ (RGrd (reverse happy_var_1)+ )}++happyReduce_187 = happySpecReduce_3 66# happyReduction_187+happyReduction_187 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut70 happy_x_1 of { happy_var_1 -> + case happyOut28 happy_x_3 of { happy_var_3 -> + happyIn70+ (RWhere happy_var_1 happy_var_3+ )}}++happyReduce_188 = happySpecReduce_2 67# happyReduction_188+happyReduction_188 happy_x_2+ happy_x_1+ = case happyOut71 happy_x_1 of { happy_var_1 -> + case happyOut72 happy_x_2 of { happy_var_2 -> + happyIn71+ (happy_var_2 : happy_var_1+ )}}++happyReduce_189 = happySpecReduce_1 67# happyReduction_189+happyReduction_189 happy_x_1+ = case happyOut72 happy_x_1 of { happy_var_1 -> + happyIn71+ ([happy_var_1]+ )}++happyReduce_190 = happyReduce 4# 68# happyReduction_190+happyReduction_190 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut65 happy_x_2 of { happy_var_2 -> + case happyOut49 happy_x_4 of { happy_var_4 -> + happyIn72+ (GExp (reverse happy_var_2) happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_191 = happyReduce 4# 69# happyReduction_191+happyReduction_191 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut74 happy_x_3 of { happy_var_3 -> + happyIn73+ (reverse happy_var_3+ ) `HappyStk` happyRest}++happyReduce_192 = happySpecReduce_3 69# happyReduction_192+happyReduction_192 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut74 happy_x_2 of { happy_var_2 -> + happyIn73+ (reverse happy_var_2+ )}++happyReduce_193 = happySpecReduce_3 70# happyReduction_193+happyReduction_193 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut74 happy_x_1 of { happy_var_1 -> + case happyOut75 happy_x_3 of { happy_var_3 -> + happyIn74+ (happy_var_3 : happy_var_1+ )}}++happyReduce_194 = happySpecReduce_1 70# happyReduction_194+happyReduction_194 happy_x_1+ = case happyOut75 happy_x_1 of { happy_var_1 -> + happyIn74+ ([happy_var_1]+ )}++happyReduce_195 = happySpecReduce_2 71# happyReduction_195+happyReduction_195 happy_x_2+ happy_x_1+ = case happyOut89 happy_x_1 of { happy_var_1 -> + case happyOut76 happy_x_2 of { happy_var_2 -> + happyIn75+ (Alt happy_var_1 happy_var_2+ )}}++happyReduce_196 = happySpecReduce_2 72# happyReduction_196+happyReduction_196 happy_x_2+ happy_x_1+ = case happyOut79 happy_x_2 of { happy_var_2 -> + happyIn76+ (RExp happy_var_2+ )}++happyReduce_197 = happySpecReduce_1 72# happyReduction_197+happyReduction_197 happy_x_1+ = case happyOut77 happy_x_1 of { happy_var_1 -> + happyIn76+ (RGrd (reverse happy_var_1)+ )}++happyReduce_198 = happySpecReduce_3 72# happyReduction_198+happyReduction_198 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut76 happy_x_1 of { happy_var_1 -> + case happyOut28 happy_x_3 of { happy_var_3 -> + happyIn76+ (RWhere happy_var_1 happy_var_3+ )}}++happyReduce_199 = happySpecReduce_2 73# happyReduction_199+happyReduction_199 happy_x_2+ happy_x_1+ = case happyOut77 happy_x_1 of { happy_var_1 -> + case happyOut78 happy_x_2 of { happy_var_2 -> + happyIn77+ (happy_var_2 : happy_var_1+ )}}++happyReduce_200 = happySpecReduce_1 73# happyReduction_200+happyReduction_200 happy_x_1+ = case happyOut78 happy_x_1 of { happy_var_1 -> + happyIn77+ ([happy_var_1]+ )}++happyReduce_201 = happyReduce 4# 74# happyReduction_201+happyReduction_201 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut65 happy_x_2 of { happy_var_2 -> + case happyOut79 happy_x_4 of { happy_var_4 -> + happyIn78+ (GExp (reverse happy_var_2) happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_202 = happyReduce 4# 75# happyReduction_202+happyReduction_202 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut80 happy_x_3 of { happy_var_3 -> + happyIn79+ (reverse happy_var_3+ ) `HappyStk` happyRest}++happyReduce_203 = happySpecReduce_3 75# happyReduction_203+happyReduction_203 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut80 happy_x_2 of { happy_var_2 -> + happyIn79+ (reverse happy_var_2+ )}++happyReduce_204 = happySpecReduce_1 76# happyReduction_204+happyReduction_204 happy_x_1+ = case happyOut81 happy_x_1 of { happy_var_1 -> + happyIn80+ (happy_var_1+ )}++happyReduce_205 = happySpecReduce_0 76# happyReduction_205+happyReduction_205 = happyIn80+ ([]+ )++happyReduce_206 = happySpecReduce_3 77# happyReduction_206+happyReduction_206 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut81 happy_x_1 of { happy_var_1 -> + case happyOut82 happy_x_3 of { happy_var_3 -> + happyIn81+ (happy_var_3 : happy_var_1+ )}}++happyReduce_207 = happySpecReduce_1 77# happyReduction_207+happyReduction_207 happy_x_1+ = case happyOut82 happy_x_1 of { happy_var_1 -> + happyIn81+ ([happy_var_1]+ )}++happyReduce_208 = happySpecReduce_3 78# happyReduction_208+happyReduction_208 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut89 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn82+ (SGen happy_var_1 happy_var_3+ )}}++happyReduce_209 = happySpecReduce_1 78# happyReduction_209+happyReduction_209 happy_x_1+ = case happyOut83 happy_x_1 of { happy_var_1 -> + happyIn82+ (SExp happy_var_1+ )}++happyReduce_210 = happySpecReduce_3 78# happyReduction_210+happyReduction_210 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut33 happy_x_1 of { happy_var_1 -> + case happyOut38 happy_x_3 of { happy_var_3 -> + happyIn82+ (SBind [BSig happy_var_1 happy_var_3]+ )}}++happyReduce_211 = happySpecReduce_2 78# happyReduction_211+happyReduction_211 happy_x_2+ happy_x_1+ = case happyOut34 happy_x_1 of { happy_var_1 -> + case happyOut35 happy_x_2 of { happy_var_2 -> + happyIn82+ (SBind [BEqn happy_var_1 happy_var_2]+ )}}++happyReduce_212 = happyReduce 4# 78# happyReduction_212+happyReduction_212 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut34 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_4 of { happy_var_4 -> + happyIn82+ (SBind [BEqn happy_var_1 (RExp (EAp (EVar (prim New)) happy_var_4))]+ ) `HappyStk` happyRest}}++happyReduce_213 = happySpecReduce_3 78# happyReduction_213+happyReduction_213 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut89 happy_x_1 of { happy_var_1 -> + case happyOut49 happy_x_3 of { happy_var_3 -> + happyIn82+ (SAss happy_var_1 happy_var_3+ )}}++happyReduce_214 = happySpecReduce_2 78# happyReduction_214+happyReduction_214 happy_x_2+ happy_x_1+ = case happyOut49 happy_x_2 of { happy_var_2 -> + happyIn82+ (SRet happy_var_2+ )}++happyReduce_215 = happyReduce 4# 78# happyReduction_215+happyReduction_215 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut65 happy_x_2 of { happy_var_2 -> + case happyOut79 happy_x_4 of { happy_var_4 -> + happyIn82+ (SForall (reverse happy_var_2) happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_216 = happyReduce 4# 78# happyReduction_216+happyReduction_216 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut49 happy_x_2 of { happy_var_2 -> + case happyOut79 happy_x_4 of { happy_var_4 -> + happyIn82+ (SIf happy_var_2 happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_217 = happyReduce 4# 78# happyReduction_217+happyReduction_217 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut49 happy_x_2 of { happy_var_2 -> + case happyOut79 happy_x_4 of { happy_var_4 -> + happyIn82+ (SElsif happy_var_2 happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_218 = happySpecReduce_2 78# happyReduction_218+happyReduction_218 happy_x_2+ happy_x_1+ = case happyOut79 happy_x_2 of { happy_var_2 -> + happyIn82+ (SElse happy_var_2+ )}++happyReduce_219 = happyReduce 4# 78# happyReduction_219+happyReduction_219 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut49 happy_x_2 of { happy_var_2 -> + case happyOut73 happy_x_4 of { happy_var_4 -> + happyIn82+ (SCase happy_var_2 happy_var_4+ ) `HappyStk` happyRest}}++happyReduce_220 = happySpecReduce_1 79# happyReduction_220+happyReduction_220 happy_x_1+ = case happyOut84 happy_x_1 of { happy_var_1 -> + happyIn83+ (happy_var_1+ )}++happyReduce_221 = happySpecReduce_1 80# happyReduction_221+happyReduction_221 happy_x_1+ = case happyOut85 happy_x_1 of { happy_var_1 -> + happyIn84+ (happy_var_1+ )}++happyReduce_222 = happySpecReduce_1 80# happyReduction_222+happyReduction_222 happy_x_1+ = case happyOut86 happy_x_1 of { happy_var_1 -> + happyIn84+ (happy_var_1+ )}++happyReduce_223 = happySpecReduce_1 81# happyReduction_223+happyReduction_223 happy_x_1+ = case happyOut87 happy_x_1 of { happy_var_1 -> + happyIn85+ (transFix happy_var_1+ )}++happyReduce_224 = happySpecReduce_1 81# happyReduction_224+happyReduction_224 happy_x_1+ = case happyOut56 happy_x_1 of { happy_var_1 -> + happyIn85+ (happy_var_1+ )}++happyReduce_225 = happySpecReduce_1 82# happyReduction_225+happyReduction_225 happy_x_1+ = case happyOut88 happy_x_1 of { happy_var_1 -> + happyIn86+ (transFix happy_var_1+ )}++happyReduce_226 = happySpecReduce_1 82# happyReduction_226+happyReduction_226 happy_x_1+ = case happyOut58 happy_x_1 of { happy_var_1 -> + happyIn86+ (happy_var_1+ )}++happyReduce_227 = happyReduce 4# 83# happyReduction_227+happyReduction_227 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut87 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut56 happy_x_4 of { happy_var_4 -> + happyIn87+ (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_228 = happySpecReduce_3 83# happyReduction_228+happyReduction_228 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut87 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut56 happy_x_3 of { happy_var_3 -> + happyIn87+ (Cons happy_var_1 happy_var_2 happy_var_3+ )}}}++happyReduce_229 = happySpecReduce_2 83# happyReduction_229+happyReduction_229 happy_x_2+ happy_x_1+ = case happyOut56 happy_x_2 of { happy_var_2 -> + happyIn87+ (Nil (ENeg happy_var_2)+ )}++happyReduce_230 = happyReduce 4# 83# happyReduction_230+happyReduction_230 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut56 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut56 happy_x_4 of { happy_var_4 -> + happyIn87+ (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_231 = happySpecReduce_3 83# happyReduction_231+happyReduction_231 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut56 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut56 happy_x_3 of { happy_var_3 -> + happyIn87+ (Cons (Nil happy_var_1) happy_var_2 happy_var_3+ )}}}++happyReduce_232 = happyReduce 4# 84# happyReduction_232+happyReduction_232 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut87 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut58 happy_x_4 of { happy_var_4 -> + happyIn88+ (Cons happy_var_1 happy_var_2 (ENeg happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_233 = happySpecReduce_3 84# happyReduction_233+happyReduction_233 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut87 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut58 happy_x_3 of { happy_var_3 -> + happyIn88+ (Cons happy_var_1 happy_var_2 happy_var_3+ )}}}++happyReduce_234 = happySpecReduce_2 84# happyReduction_234+happyReduction_234 happy_x_2+ happy_x_1+ = case happyOut58 happy_x_2 of { happy_var_2 -> + happyIn88+ (Nil (ENeg happy_var_2)+ )}++happyReduce_235 = happyReduce 4# 84# happyReduction_235+happyReduction_235 (happy_x_4 `HappyStk`+ happy_x_3 `HappyStk`+ happy_x_2 `HappyStk`+ happy_x_1 `HappyStk`+ happyRest)+ = case happyOut56 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut58 happy_x_4 of { happy_var_4 -> + happyIn88+ (Cons (Nil happy_var_1) happy_var_2 (ENeg happy_var_4)+ ) `HappyStk` happyRest}}}++happyReduce_236 = happySpecReduce_3 84# happyReduction_236+happyReduction_236 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut56 happy_x_1 of { happy_var_1 -> + case happyOut96 happy_x_2 of { happy_var_2 -> + case happyOut58 happy_x_3 of { happy_var_3 -> + happyIn88+ (Cons (Nil happy_var_1) happy_var_2 happy_var_3+ )}}}++happyReduce_237 = happySpecReduce_1 85# happyReduction_237+happyReduction_237 happy_x_1+ = case happyOut84 happy_x_1 of { happy_var_1 -> + happyIn89+ (happy_var_1+ )}++happyReduce_238 = happySpecReduce_2 86# happyReduction_238+happyReduction_238 happy_x_2+ happy_x_1+ = case happyOut90 happy_x_1 of { happy_var_1 -> + case happyOut91 happy_x_2 of { happy_var_2 -> + happyIn90+ (happy_var_2 : happy_var_1+ )}}++happyReduce_239 = happySpecReduce_1 86# happyReduction_239+happyReduction_239 happy_x_1+ = case happyOut91 happy_x_1 of { happy_var_1 -> + happyIn90+ ([happy_var_1]+ )}++happyReduce_240 = happySpecReduce_1 87# happyReduction_240+happyReduction_240 happy_x_1+ = case happyOut60 happy_x_1 of { happy_var_1 -> + happyIn91+ (happy_var_1+ )}++happyReduce_241 = happySpecReduce_1 88# happyReduction_241+happyReduction_241 happy_x_1+ = case happyOut99 happy_x_1 of { happy_var_1 -> + happyIn92+ (happy_var_1+ )}++happyReduce_242 = happySpecReduce_3 88# happyReduction_242+happyReduction_242 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut101 happy_x_2 of { happy_var_2 -> + happyIn92+ (happy_var_2+ )}++happyReduce_243 = happySpecReduce_1 89# happyReduction_243+happyReduction_243 happy_x_1+ = case happyOut100 happy_x_1 of { happy_var_1 -> + happyIn93+ (happy_var_1+ )}++happyReduce_244 = happySpecReduce_3 89# happyReduction_244+happyReduction_244 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut102 happy_x_2 of { happy_var_2 -> + happyIn93+ (happy_var_2+ )}++happyReduce_245 = happySpecReduce_1 90# happyReduction_245+happyReduction_245 happy_x_1+ = case happyOut101 happy_x_1 of { happy_var_1 -> + happyIn94+ (happy_var_1+ )}++happyReduce_246 = happySpecReduce_3 90# happyReduction_246+happyReduction_246 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut99 happy_x_2 of { happy_var_2 -> + happyIn94+ (happy_var_2+ )}++happyReduce_247 = happySpecReduce_1 91# happyReduction_247+happyReduction_247 happy_x_1+ = case happyOut102 happy_x_1 of { happy_var_1 -> + happyIn95+ (happy_var_1+ )}++happyReduce_248 = happySpecReduce_3 91# happyReduction_248+happyReduction_248 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut100 happy_x_2 of { happy_var_2 -> + happyIn95+ (happy_var_2+ )}++happyReduce_249 = happySpecReduce_1 92# happyReduction_249+happyReduction_249 happy_x_1+ = case happyOut94 happy_x_1 of { happy_var_1 -> + happyIn96+ (happy_var_1+ )}++happyReduce_250 = happySpecReduce_1 92# happyReduction_250+happyReduction_250 happy_x_1+ = case happyOut95 happy_x_1 of { happy_var_1 -> + happyIn96+ (happy_var_1+ )}++happyReduce_251 = happySpecReduce_1 93# happyReduction_251+happyReduction_251 happy_x_1+ = case happyOut99 happy_x_1 of { happy_var_1 -> + happyIn97+ (happy_var_1+ )}++happyReduce_252 = happySpecReduce_1 93# happyReduction_252+happyReduction_252 happy_x_1+ = case happyOut100 happy_x_1 of { happy_var_1 -> + happyIn97+ (happy_var_1+ )}++happyReduce_253 = happyMonadReduce 1# 94# happyReduction_253+happyReduction_253 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut104 happy_x_1 of { happy_var_1 -> + ( do l <- getSrcLoc; return (name l happy_var_1))}+ ) (\r -> happyReturn (happyIn98 r))++happyReduce_254 = happySpecReduce_3 94# happyReduction_254+happyReduction_254 happy_x_3+ happy_x_2+ happy_x_1+ = case happyOut99 happy_x_2 of { happy_var_2 -> + happyIn98+ (happy_var_2+ )}++happyReduce_255 = happySpecReduce_1 94# happyReduction_255+happyReduction_255 happy_x_1+ = case happyOut95 happy_x_1 of { happy_var_1 -> + happyIn98+ (happy_var_1+ )}++happyReduce_256 = happySpecReduce_2 95# happyReduction_256+happyReduction_256 happy_x_2+ happy_x_1+ = case happyOut108 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { (VarId happy_var_2) -> + happyIn99+ (name happy_var_1 happy_var_2+ )}}++happyReduce_257 = happySpecReduce_2 96# happyReduction_257+happyReduction_257 happy_x_2+ happy_x_1+ = case happyOut108 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { (ConId happy_var_2) -> + happyIn100+ (name happy_var_1 happy_var_2+ )}}++happyReduce_258 = happyMonadReduce 1# 97# happyReduction_258+happyReduction_258 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (case happyOut103 happy_x_1 of { happy_var_1 -> + ( do l <- getSrcLoc; return (name l happy_var_1))}+ ) (\r -> happyReturn (happyIn101 r))++happyReduce_259 = happySpecReduce_2 98# happyReduction_259+happyReduction_259 happy_x_2+ happy_x_1+ = case happyOut108 happy_x_1 of { happy_var_1 -> + case happyOutTok happy_x_2 of { (ConSym happy_var_2) -> + happyIn102+ (name happy_var_1 happy_var_2+ )}}++happyReduce_260 = happySpecReduce_1 99# happyReduction_260+happyReduction_260 happy_x_1+ = case happyOut104 happy_x_1 of { happy_var_1 -> + happyIn103+ (happy_var_1+ )}++happyReduce_261 = happySpecReduce_1 99# happyReduction_261+happyReduction_261 happy_x_1+ = happyIn103+ (("","-")+ )++happyReduce_262 = happySpecReduce_1 100# happyReduction_262+happyReduction_262 happy_x_1+ = case happyOutTok happy_x_1 of { (VarSym happy_var_1) -> + happyIn104+ (happy_var_1+ )}++happyReduce_263 = happySpecReduce_1 100# happyReduction_263+happyReduction_263 happy_x_1+ = happyIn104+ (("","<")+ )++happyReduce_264 = happySpecReduce_1 100# happyReduction_264+happyReduction_264 happy_x_1+ = happyIn104+ (("",">")+ )++happyReduce_265 = happySpecReduce_1 100# happyReduction_265+happyReduction_265 happy_x_1+ = happyIn104+ (("","*")+ )++happyReduce_266 = happySpecReduce_1 100# happyReduction_266+happyReduction_266 happy_x_1+ = happyIn104+ (("","\\\\")+ )++happyReduce_267 = happySpecReduce_1 101# happyReduction_267+happyReduction_267 happy_x_1+ = happyIn105+ (()+ )++happyReduce_268 = happyMonadReduce 1# 101# happyReduction_268+happyReduction_268 (happy_x_1 `HappyStk`+ happyRest) tk+ = happyThen (( popContext)+ ) (\r -> happyReturn (happyIn105 r))++happyReduce_269 = happyMonadReduce 0# 102# happyReduction_269+happyReduction_269 (happyRest) tk+ = happyThen (( pushContext NoLayout)+ ) (\r -> happyReturn (happyIn106 r))++happyReduce_270 = happyMonadReduce 0# 103# happyReduction_270+happyReduction_270 (happyRest) tk+ = happyThen (( do { (r,c) <- getSrcLoc ;+ pushContext (Layout c)+ })+ ) (\r -> happyReturn (happyIn107 r))++happyReduce_271 = happyMonadReduce 0# 104# happyReduction_271+happyReduction_271 (happyRest) tk+ = happyThen (( getSrcLoc)+ ) (\r -> happyReturn (happyIn108 r))++happyNewToken action sts stk+ = lexer(\tk -> + let cont i = happyDoAction i tk action sts stk in+ case tk of {+ EOF -> happyDoAction 62# tk action sts stk;+ VarId happy_dollar_dollar -> cont 1#;+ ConId happy_dollar_dollar -> cont 2#;+ VarSym ("","-") -> cont 3#;+ VarSym ("","<") -> cont 4#;+ VarSym ("",">") -> cont 5#;+ VarSym ("","*") -> cont 6#;+ VarSym happy_dollar_dollar -> cont 7#;+ ConSym happy_dollar_dollar -> cont 8#;+ IntTok happy_dollar_dollar -> cont 9#;+ FloatTok happy_dollar_dollar -> cont 10#;+ Character happy_dollar_dollar -> cont 11#;+ StringTok happy_dollar_dollar -> cont 12#;+ LeftParen -> cont 13#;+ RightParen -> cont 14#;+ SemiColon -> cont 15#;+ LeftCurly -> cont 16#;+ RightCurly -> cont 17#;+ VRightCurly -> cont 18#;+ LeftSquare -> cont 19#;+ RightSquare -> cont 20#;+ Comma -> cont 21#;+ BackQuote -> cont 22#;+ Wildcard -> cont 23#;+ Dot -> cont 24#;+ DotDot -> cont 25#;+ DoubleColon -> cont 26#;+ Assign -> cont 27#;+ Equals -> cont 28#;+ Backslash -> cont 29#;+ Bar -> cont 30#;+ LeftArrow -> cont 31#;+ RightArrow -> cont 32#;+ Backslash2 -> cont 33#;+ KW_Action -> cont 34#;+ KW_After -> cont 35#;+ KW_Before -> cont 36#;+ KW_Case -> cont 37#;+ KW_Class -> cont 38#;+ KW_Data -> cont 39#;+ KW_Default -> cont 40#;+ KW_Do -> cont 41#;+ KW_Else -> cont 42#;+ KW_Elsif -> cont 43#;+ KW_Forall -> cont 44#;+ KW_If -> cont 45#;+ KW_Import -> cont 46#;+ KW_Instance -> cont 47#;+ KW_In -> cont 48#;+ KW_Let -> cont 49#;+ KW_Module -> cont 50#;+ KW_New -> cont 51#;+ KW_Of -> cont 52#;+ KW_Private -> cont 53#;+ KW_Request -> cont 54#;+ KW_Result -> cont 55#;+ KW_Struct -> cont 56#;+ KW_Then -> cont 57#;+ KW_Type -> cont 58#;+ KW_Typeclass -> cont 59#;+ KW_Use -> cont 60#;+ KW_Where -> cont 61#;+ _ -> happyError' tk+ })++happyError_ tk = happyError' tk++happyThen :: () => PM a -> (a -> PM b) -> PM b+happyThen = (thenPM)+happyReturn :: () => a -> PM a+happyReturn = (returnPM)+happyThen1 = happyThen+happyReturn1 :: () => a -> PM a+happyReturn1 = happyReturn+happyError' :: () => (Token) -> PM a+happyError' tk = (\token -> happyError) tk++parse = happySomeParser where+ happySomeParser = happyThen (happyParse 0#) (\x -> happyReturn (happyOut4 x))++happySeq = happyDontSeq+++parser :: String -> M s Module+parser str = runPM2 parse str++happyError = parseError "parse error"+{-# LINE 1 "templates/GenericTemplate.hs" #-}+{-# LINE 1 "templates/GenericTemplate.hs" #-}+{-# LINE 1 "<built-in>" #-}+{-# LINE 1 "<command line>" #-} {-# LINE 1 "templates/GenericTemplate.hs" #-} -- Id: GenericTemplate.hs,v 1.26 2005/01/14 14:47:22 simonmar Exp
examples/Makefile view
@@ -1,14 +1,13 @@-LOCALCOMP = ../dist/build/timberc/timberc --datadir .. TIMBERC=timberc -EXAMPLES = Echo Echo2 Echo3 EchoServer EchoServer2 MasterMind Primes Reflex TCPClient PingTimeServers+EXAMPLES = Echo Echo2 Echo3 EchoServer EchoServer2 MasterMind Primes Reflex TCPClient PingTimeServers SantaProblem2 examples: @for ex in $(EXAMPLES); do \ $(TIMBERC) --make $$ex; \ done -local:+local: @for ex in $(EXAMPLES); do \- $(LOCALCOMP) --make $$ex; \+ ../timberc --make $$ex; \ done
include/arrays.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without
include/float.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without
include/timber.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without@@ -73,6 +73,10 @@ HEAD(TUP4), OFF(TUP4, a), 0,0,0,0, HEAD(TUP4), 0,0,0,0,0 };++WORD __GC__CLOS1[] = {WORDS(sizeof(struct CLOS1)),0,0};+WORD __GC__CLOS2[] = {WORDS(sizeof(struct CLOS2)),0,0};+WORD __GC__CLOS3[] = {WORDS(sizeof(struct CLOS3)),0,0}; WORD __GC__CONS[] = { HEAD(CONS), OFF(CONS, a), OFF(CONS, b), 0,
include/timber.h view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without@@ -41,6 +41,12 @@ typedef struct TUP3 *TUP3; struct TUP4; typedef struct TUP4 *TUP4;+struct CLOS1;+typedef struct CLOS1 *CLOS1;+struct CLOS2;+typedef struct CLOS2 *CLOS2;+struct CLOS3;+typedef struct CLOS3 *CLOS3; struct LIST; typedef struct LIST *LIST; struct NIL;@@ -81,6 +87,24 @@ }; extern WORD __GC__TUP4[]; +struct CLOS1 {+ POLY GCINFO;+ POLY (*Code) (CLOS1, POLY);+};+extern WORD __GC__CLOS1[];++struct CLOS2 {+ POLY GCINFO;+ POLY (*Code) (CLOS2, POLY, POLY);+};+extern WORD __GC__CLOS2[];+ +struct CLOS3 {+ POLY GCINFO;+ POLY (*Code) (CLOS3, POLY, POLY, POLY);+};+extern WORD __GC__CLOS3[];+ struct LIST { WORD *GCINFO; };@@ -146,8 +170,8 @@ UNITTYPE ASYNC(Msg, Time, Time);-PID LOCK(PID);-UNITTYPE UNLOCK(PID);+OID LOCK(OID);+UNITTYPE UNLOCK(OID); void RAISE(Int); POLY Raise(BITS32, Int);
+ lib/ARM.t view
@@ -0,0 +1,26 @@+module ARM where++type RootType = Env -> TFT -> Class Prog++type Prog = Action++type Addr = Int++struct Env where+ debug :: String -> Request ()+ portwrite :: Addr -> BITS32 -> Request ()+ portset :: Addr -> BITS32 -> Request ()+ portclear :: Addr -> BITS32 -> Request ()+ portread :: Addr -> Request BITS32+ install :: Int -> Cmd () a -> Request () + netmemread :: Addr -> Int -> Request (Array BITS32)+ netmemwrite :: Array BITS32 -> Addr -> Int -> Request ()++struct TFT where+ drawchar :: Char -> Int{-x-} -> Int{-y-} -> Request Int+ drawbox :: Int{-color-} -> Int{-x-} -> Int{-y-} -> Int{-w-} -> Int{-h-} -> Request ()+ xsize :: Int+ ysize :: Int+ charwidth :: Int+ charheight :: Int+
lib/BitOps.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
lib/Data.Functional.List.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
lib/Data.Objects.Dictionary.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -67,7 +67,7 @@ Int -> Class (Dictionary a b) hashDict hash dictC n = class - ds = new seqC dictC n+ ds = new mapM (\_ -> dictC) [1..n] dict = array ds insert a b = (dict!(hash a n)).insert a b@@ -96,9 +96,3 @@ | a == x = Just y | a < x = look a l | a > x = look a r-- seqC c 0 = class result []- seqC c n = class- x = new c- xs = new seqC c (n-1)- result (x:xs)
lib/Data.Objects.Stack.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
lib/POSIX.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
lib/Prelude.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -87,7 +87,7 @@ (==) = primTimeEQ (/=) = primTimeNE -instance eqPID :: Eq PID where+instance eqOID :: Eq OID where (==) = primPidEQ (/=) = primPidNE @@ -248,10 +248,11 @@ typeclass Applicative m < Functor m where ($*) :: m (a -> b) -> m a -> m b- return :: a -> m a+ pure :: a -> m a -typeclass Monad m < Applicative m where+typeclass Monad m where (>>=) :: m a -> (a -> m b) -> m b+ return :: a -> m a typeclass MPlus m where mempty :: m a@@ -261,15 +262,17 @@ f $^ Nothing = Nothing f $^ Just a = Just (f a) -instance applicativeMaybe :: Applicative Maybe = Applicative {..}- where Functor {..} = functorMaybe- Just f $* Just a = Just (f a)- _ $* _ = Nothing+instance applicativeMaybe :: Applicative Maybe where+-- Functor {..} = functorMaybe+ ($^) = functorMaybe.($^)+ Just f $* Just a = Just (f a)+ _ $* _ = Nothing+ pure a = Just a -instance monadMaybe :: Monad Maybe = Monad {..}- where Applicative {..} = applicativeMaybe- Just a >>= f = f a- Nothing >>= _ = Nothing+instance monadMaybe :: Monad Maybe where+ Just a >>= f = f a+ Nothing >>= _ = Nothing+ return a = Just a instance mPlusMaybe :: MPlus Maybe where mempty = Nothing@@ -286,6 +289,23 @@ join :: m (m a) -> m a \\ Monad m join m = m >>= id +sequence [] = return []+sequence (x : xs) = x >>= \y -> sequence xs >>= \ys -> return (y:ys)++mapM f [] = return []+mapM f (x : xs) = f x >>= \y -> mapM f xs >>= \ys -> return (y:ys)++instance monadCmd :: Monad (Cmd s) where+ return a = do result a+ a >>= b = do x <- a+ b x++instance monadClass :: Monad Class where+ return a = class result a+ a >>= b = class x = new a+ y = new b x+ result y+ -- Prelude support for forall statement -------------------- forallList f [] = do result ()@@ -332,7 +352,7 @@ -- Maybe --------------------------------------------------- -data Maybe a = Just a | Nothing+data Maybe a = Nothing | Just a isNothing :: Maybe a -> Bool isNothing Nothing = True@@ -342,6 +362,10 @@ isJust Nothing = False isJust (Just _) = True +fromJust :: Maybe a -> a+fromJust Nothing = raise 2+fromJust (Just a) = a+ -- Either -------------------------------------------------- isLeft (Left _) = True@@ -432,7 +456,7 @@ replicate :: Int -> a -> [a] replicate n x- | n < 0 = []+ | n <= 0 = [] | otherwise = x : replicate (n-1) x take, drop :: Int -> [a] -> [a]@@ -538,16 +562,4 @@ floor = primFloatToInt round x = floor (x + 0.5)---- Command sequencing ----------------------------------------sequence [] = do result []-sequence (x : xs) = do a <- x- as <- sequence xs- result a : as--mapM f [] = do result []-mapM f (x : xs) = do a <- f x- as <- mapM f xs- result a : as
lib/RandomGenerator.t view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
rtsPOSIX/Makefile.in view
@@ -22,7 +22,7 @@ $(OBJS): %.o: ../lib/%.t ../include/timber.h $(TIMBERC) --target POSIX --api -c $< -rts.o: rts.c cyclic.c gc.c env.c env.h timer.c rts.h ../include/timber.h ../include/timber.c ../include/float.c+rts.o: rts.c cyclic.c gc.c env.c timer.c rts.h ../include/timber.h ../include/timber.c ../include/float.c $(CC) $(CFLAGS) -Wall -O2 -fno-strict-aliasing -g -I../include -I../lib -I. -c rts.c install: @@ -34,9 +34,7 @@ $(INSTALL) config.h $(DESTDIR)$(prefix)/rtsPOSIX $(INSTALL) gc.c $(DESTDIR)$(prefix)/rtsPOSIX $(INSTALL) env.c $(DESTDIR)$(prefix)/rtsPOSIX- $(INSTALL) env.h $(DESTDIR)$(prefix)/rtsPOSIX $(INSTALL) timer.c $(DESTDIR)$(prefix)/rtsPOSIX $(INSTALL) main.c $(DESTDIR)$(prefix)/rtsPOSIX $(INSTALL) Makefile $(DESTDIR)$(prefix)/rtsPOSIX- cd $(DESTDIR)$(prefix)/rtsPOSIX && make $(DEST) -+ cd $(DESTDIR)$(prefix)/rtsPOSIX && make TIMBERC=$(TIMBERC) $(DEST)
rtsPOSIX/config.h.in view
@@ -1,6 +1,9 @@ /* Define to 1 if you have the `gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY +/* Define to 1 if you have the `sysconf' function. */+#undef HAVE_SYSCONF+ /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H
rtsPOSIX/configure view
@@ -1,6122 +1,6412 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles.-# Generated by GNU Autoconf 2.61 for rtsPOSIX 0.9.9.-#-# Report bugs to <nordland@csee.ltu.se>.-#-# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,-# 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.-# This configure script is free software; the Free Software Foundation-# gives unlimited permission to copy, distribute and modify it.-## --------------------- ##-## M4sh Initialization. ##-## --------------------- ##--# Be more Bourne compatible-DUALCASE=1; export DUALCASE # for MKS sh-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then- emulate sh- NULLCMD=:- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which- # is contrary to our usage. Disable this feature.- alias -g '${1+"$@"}'='"$@"'- setopt NO_GLOB_SUBST-else- case `(set -o) 2>/dev/null` in- *posix*) set -o posix ;;-esac--fi-----# PATH needs CR-# Avoid depending upon Character Ranges.-as_cr_letters='abcdefghijklmnopqrstuvwxyz'-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'-as_cr_Letters=$as_cr_letters$as_cr_LETTERS-as_cr_digits='0123456789'-as_cr_alnum=$as_cr_Letters$as_cr_digits--# The user is always right.-if test "${PATH_SEPARATOR+set}" != set; then- echo "#! /bin/sh" >conf$$.sh- echo "exit 0" >>conf$$.sh- chmod +x conf$$.sh- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then- PATH_SEPARATOR=';'- else- PATH_SEPARATOR=:- fi- rm -f conf$$.sh-fi--# Support unset when possible.-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then- as_unset=unset-else- as_unset=false-fi---# IFS-# We need space, tab and new line, in precisely that order. Quoting is-# there to prevent editors from complaining about space-tab.-# (If _AS_PATH_WALK were called with IFS unset, it would disable word-# splitting by setting IFS to empty value.)-as_nl='-'-IFS=" "" $as_nl"--# Find who we are. Look in the path if we contain no directory separator.-case $0 in- *[\\/]* ) as_myself=$0 ;;- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break-done-IFS=$as_save_IFS-- ;;-esac-# We did not find ourselves, most probably we were run as `sh COMMAND'-# in which case we are not to be found in the path.-if test "x$as_myself" = x; then- as_myself=$0-fi-if test ! -f "$as_myself"; then- echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2- { (exit 1); exit 1; }-fi--# Work around bugs in pre-3.0 UWIN ksh.-for as_var in ENV MAIL MAILPATH-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var-done-PS1='$ '-PS2='> '-PS4='+ '--# NLS nuisances.-for as_var in \- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \- LC_TELEPHONE LC_TIME-do- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then- eval $as_var=C; export $as_var- else- ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var- fi-done--# Required to use basename.-if expr a : '\(a\)' >/dev/null 2>&1 &&- test "X`expr 00001 : '.*\(...\)'`" = X001; then- as_expr=expr-else- as_expr=false-fi--if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then- as_basename=basename-else- as_basename=false-fi---# Name of the executable.-as_me=`$as_basename -- "$0" ||-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \- X"$0" : 'X\(//\)$' \| \- X"$0" : 'X\(/\)' \| . 2>/dev/null ||-echo X/"$0" |- sed '/^.*\/\([^/][^/]*\)\/*$/{- s//\1/- q- }- /^X\/\(\/\/\)$/{- s//\1/- q- }- /^X\/\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`--# CDPATH.-$as_unset CDPATH---if test "x$CONFIG_SHELL" = x; then- if (eval ":") 2>/dev/null; then- as_have_required=yes-else- as_have_required=no-fi-- if test $as_have_required = yes && (eval ":-(as_func_return () {- (exit \$1)-}-as_func_success () {- as_func_return 0-}-as_func_failure () {- as_func_return 1-}-as_func_ret_success () {- return 0-}-as_func_ret_failure () {- return 1-}--exitcode=0-if as_func_success; then- :-else- exitcode=1- echo as_func_success failed.-fi--if as_func_failure; then- exitcode=1- echo as_func_failure succeeded.-fi--if as_func_ret_success; then- :-else- exitcode=1- echo as_func_ret_success failed.-fi--if as_func_ret_failure; then- exitcode=1- echo as_func_ret_failure succeeded.-fi--if ( set x; as_func_ret_success y && test x = \"\$1\" ); then- :-else- exitcode=1- echo positional parameters were not saved.-fi--test \$exitcode = 0) || { (exit 1); exit 1; }--(- as_lineno_1=\$LINENO- as_lineno_2=\$LINENO- test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&- test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }-") 2> /dev/null; then- :-else- as_candidate_shells=- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- case $as_dir in- /*)- for as_base in sh bash ksh sh5; do- as_candidate_shells="$as_candidate_shells $as_dir/$as_base"- done;;- esac-done-IFS=$as_save_IFS--- for as_shell in $as_candidate_shells $SHELL; do- # Try only shells that exist, to save several forks.- if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&- { ("$as_shell") 2> /dev/null <<\_ASEOF-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then- emulate sh- NULLCMD=:- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which- # is contrary to our usage. Disable this feature.- alias -g '${1+"$@"}'='"$@"'- setopt NO_GLOB_SUBST-else- case `(set -o) 2>/dev/null` in- *posix*) set -o posix ;;-esac--fi---:-_ASEOF-}; then- CONFIG_SHELL=$as_shell- as_have_required=yes- if { "$as_shell" 2> /dev/null <<\_ASEOF-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then- emulate sh- NULLCMD=:- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which- # is contrary to our usage. Disable this feature.- alias -g '${1+"$@"}'='"$@"'- setopt NO_GLOB_SUBST-else- case `(set -o) 2>/dev/null` in- *posix*) set -o posix ;;-esac--fi---:-(as_func_return () {- (exit $1)-}-as_func_success () {- as_func_return 0-}-as_func_failure () {- as_func_return 1-}-as_func_ret_success () {- return 0-}-as_func_ret_failure () {- return 1-}--exitcode=0-if as_func_success; then- :-else- exitcode=1- echo as_func_success failed.-fi--if as_func_failure; then- exitcode=1- echo as_func_failure succeeded.-fi--if as_func_ret_success; then- :-else- exitcode=1- echo as_func_ret_success failed.-fi--if as_func_ret_failure; then- exitcode=1- echo as_func_ret_failure succeeded.-fi--if ( set x; as_func_ret_success y && test x = "$1" ); then- :-else- exitcode=1- echo positional parameters were not saved.-fi--test $exitcode = 0) || { (exit 1); exit 1; }--(- as_lineno_1=$LINENO- as_lineno_2=$LINENO- test "x$as_lineno_1" != "x$as_lineno_2" &&- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }--_ASEOF-}; then- break-fi--fi-- done-- if test "x$CONFIG_SHELL" != x; then- for as_var in BASH_ENV ENV- do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var- done- export CONFIG_SHELL- exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}-fi--- if test $as_have_required = no; then- echo This script requires a shell more modern than all the- echo shells that I found on your system. Please install a- echo modern shell, or manually run the script under such a- echo shell if you do have one.- { (exit 1); exit 1; }-fi---fi--fi----(eval "as_func_return () {- (exit \$1)-}-as_func_success () {- as_func_return 0-}-as_func_failure () {- as_func_return 1-}-as_func_ret_success () {- return 0-}-as_func_ret_failure () {- return 1-}--exitcode=0-if as_func_success; then- :-else- exitcode=1- echo as_func_success failed.-fi--if as_func_failure; then- exitcode=1- echo as_func_failure succeeded.-fi--if as_func_ret_success; then- :-else- exitcode=1- echo as_func_ret_success failed.-fi--if as_func_ret_failure; then- exitcode=1- echo as_func_ret_failure succeeded.-fi--if ( set x; as_func_ret_success y && test x = \"\$1\" ); then- :-else- exitcode=1- echo positional parameters were not saved.-fi--test \$exitcode = 0") || {- echo No shell found that supports shell functions.- echo Please tell autoconf@gnu.org about your system,- echo including any error possibly output before this- echo message-}---- as_lineno_1=$LINENO- as_lineno_2=$LINENO- test "x$as_lineno_1" != "x$as_lineno_2" &&- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {-- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO- # uniformly replaced by the line number. The first 'sed' inserts a- # line-number line after each line using $LINENO; the second 'sed'- # does the real work. The second script uses 'N' to pair each- # line-number line with the line containing $LINENO, and appends- # trailing '-' during substitution so that $LINENO is not a special- # case at line end.- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the- # scripts with optimization help from Paolo Bonzini. Blame Lee- # E. McMahon (1931-1989) for sed's syntax. :-)- sed -n '- p- /[$]LINENO/=- ' <$as_myself |- sed '- s/[$]LINENO.*/&-/- t lineno- b- :lineno- N- :loop- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/- t loop- s/-\n.*//- ' >$as_me.lineno &&- chmod +x "$as_me.lineno" ||- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2- { (exit 1); exit 1; }; }-- # Don't try to exec as it changes $[0], causing all sort of problems- # (the dirname of $[0] is not the place where we might find the- # original and so on. Autoconf is especially sensitive to this).- . "./$as_me.lineno"- # Exit status is that of the last command.- exit-}---if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then- as_dirname=dirname-else- as_dirname=false-fi--ECHO_C= ECHO_N= ECHO_T=-case `echo -n x` in--n*)- case `echo 'x\c'` in- *c*) ECHO_T=' ';; # ECHO_T is single tab character.- *) ECHO_C='\c';;- esac;;-*)- ECHO_N='-n';;-esac--if expr a : '\(a\)' >/dev/null 2>&1 &&- test "X`expr 00001 : '.*\(...\)'`" = X001; then- as_expr=expr-else- as_expr=false-fi--rm -f conf$$ conf$$.exe conf$$.file-if test -d conf$$.dir; then- rm -f conf$$.dir/conf$$.file-else- rm -f conf$$.dir- mkdir conf$$.dir-fi-echo >conf$$.file-if ln -s conf$$.file conf$$ 2>/dev/null; then- as_ln_s='ln -s'- # ... but there are two gotchas:- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.- # In both cases, we have to default to `cp -p'.- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||- as_ln_s='cp -p'-elif ln conf$$.file conf$$ 2>/dev/null; then- as_ln_s=ln-else- as_ln_s='cp -p'-fi-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file-rmdir conf$$.dir 2>/dev/null--if mkdir -p . 2>/dev/null; then- as_mkdir_p=:-else- test -d ./-p && rmdir ./-p- as_mkdir_p=false-fi--if test -x / >/dev/null 2>&1; then- as_test_x='test -x'-else- if ls -dL / >/dev/null 2>&1; then- as_ls_L_option=L- else- as_ls_L_option=- fi- as_test_x='- eval sh -c '\''- if test -d "$1"; then- test -d "$1/.";- else- case $1 in- -*)set "./$1";;- esac;- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in- ???[sx]*):;;*)false;;esac;fi- '\'' sh- '-fi-as_executable_p=$as_test_x--# Sed expression to map a string onto a valid CPP name.-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"--# Sed expression to map a string onto a valid variable name.-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"----exec 7<&0 </dev/null 6>&1--# Name of the host.-# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,-# so uname gets run too.-ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`--#-# Initializations.-#-ac_default_prefix=/usr/local-ac_clean_files=-ac_config_libobj_dir=.-LIBOBJS=-cross_compiling=no-subdirs=-MFLAGS=-MAKEFLAGS=-SHELL=${CONFIG_SHELL-/bin/sh}--# Identity of this package.-PACKAGE_NAME='rtsPOSIX'-PACKAGE_TARNAME='rtsposix'-PACKAGE_VERSION='0.9.9'-PACKAGE_STRING='rtsPOSIX 0.9.9'-PACKAGE_BUGREPORT='nordland@csee.ltu.se'--ac_unique_file="main.c"-# Factoring default headers for most tests.-ac_includes_default="\-#include <stdio.h>-#ifdef HAVE_SYS_TYPES_H-# include <sys/types.h>-#endif-#ifdef HAVE_SYS_STAT_H-# include <sys/stat.h>-#endif-#ifdef STDC_HEADERS-# include <stdlib.h>-# include <stddef.h>-#else-# ifdef HAVE_STDLIB_H-# include <stdlib.h>-# endif-#endif-#ifdef HAVE_STRING_H-# if !defined STDC_HEADERS && defined HAVE_MEMORY_H-# include <memory.h>-# endif-# include <string.h>-#endif-#ifdef HAVE_STRINGS_H-# include <strings.h>-#endif-#ifdef HAVE_INTTYPES_H-# include <inttypes.h>-#endif-#ifdef HAVE_STDINT_H-# include <stdint.h>-#endif-#ifdef HAVE_UNISTD_H-# include <unistd.h>-#endif"--ac_subst_vars='SHELL-PATH_SEPARATOR-PACKAGE_NAME-PACKAGE_TARNAME-PACKAGE_VERSION-PACKAGE_STRING-PACKAGE_BUGREPORT-exec_prefix-prefix-program_transform_name-bindir-sbindir-libexecdir-datarootdir-datadir-sysconfdir-sharedstatedir-localstatedir-includedir-oldincludedir-docdir-infodir-htmldir-dvidir-pdfdir-psdir-libdir-localedir-mandir-DEFS-ECHO_C-ECHO_N-ECHO_T-LIBS-build_alias-host_alias-target_alias-CC-CFLAGS-LDFLAGS-CPPFLAGS-ac_ct_CC-EXEEXT-OBJEXT-INSTALL_PROGRAM-INSTALL_SCRIPT-INSTALL_DATA-build-build_cpu-build_vendor-build_os-host-host_cpu-host_vendor-host_os-acx_pthread_config-PTHREAD_CC-PTHREAD_LIBS-PTHREAD_CFLAGS-TIMBERC-CPP-GREP-EGREP-LIBOBJS-SRC-DEST-LTLIBOBJS'-ac_subst_files=''- ac_precious_vars='build_alias-host_alias-target_alias-CC-CFLAGS-LDFLAGS-LIBS-CPPFLAGS-CPP'---# Initialize some variables set by options.-ac_init_help=-ac_init_version=false-# The variables have the same names as the options, with-# dashes changed to underlines.-cache_file=/dev/null-exec_prefix=NONE-no_create=-no_recursion=-prefix=NONE-program_prefix=NONE-program_suffix=NONE-program_transform_name=s,x,x,-silent=-site=-srcdir=-verbose=-x_includes=NONE-x_libraries=NONE--# Installation directory options.-# These are left unexpanded so users can "make install exec_prefix=/foo"-# and all the variables that are supposed to be based on exec_prefix-# by default will actually change.-# Use braces instead of parens because sh, perl, etc. also accept them.-# (The list follows the same order as the GNU Coding Standards.)-bindir='${exec_prefix}/bin'-sbindir='${exec_prefix}/sbin'-libexecdir='${exec_prefix}/libexec'-datarootdir='${prefix}/share'-datadir='${datarootdir}'-sysconfdir='${prefix}/etc'-sharedstatedir='${prefix}/com'-localstatedir='${prefix}/var'-includedir='${prefix}/include'-oldincludedir='/usr/include'-docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'-infodir='${datarootdir}/info'-htmldir='${docdir}'-dvidir='${docdir}'-pdfdir='${docdir}'-psdir='${docdir}'-libdir='${exec_prefix}/lib'-localedir='${datarootdir}/locale'-mandir='${datarootdir}/man'--ac_prev=-ac_dashdash=-for ac_option-do- # If the previous option needs an argument, assign it.- if test -n "$ac_prev"; then- eval $ac_prev=\$ac_option- ac_prev=- continue- fi-- case $ac_option in- *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;- *) ac_optarg=yes ;;- esac-- # Accept the important Cygnus configure options, so we can diagnose typos.-- case $ac_dashdash$ac_option in- --)- ac_dashdash=yes ;;-- -bindir | --bindir | --bindi | --bind | --bin | --bi)- ac_prev=bindir ;;- -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)- bindir=$ac_optarg ;;-- -build | --build | --buil | --bui | --bu)- ac_prev=build_alias ;;- -build=* | --build=* | --buil=* | --bui=* | --bu=*)- build_alias=$ac_optarg ;;-- -cache-file | --cache-file | --cache-fil | --cache-fi \- | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)- ac_prev=cache_file ;;- -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \- | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)- cache_file=$ac_optarg ;;-- --config-cache | -C)- cache_file=config.cache ;;-- -datadir | --datadir | --datadi | --datad)- ac_prev=datadir ;;- -datadir=* | --datadir=* | --datadi=* | --datad=*)- datadir=$ac_optarg ;;-- -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \- | --dataroo | --dataro | --datar)- ac_prev=datarootdir ;;- -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \- | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)- datarootdir=$ac_optarg ;;-- -disable-* | --disable-*)- ac_feature=`expr "x$ac_option" : 'x-*disable-\(.*\)'`- # Reject names that are not valid shell variable names.- expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&- { echo "$as_me: error: invalid feature name: $ac_feature" >&2- { (exit 1); exit 1; }; }- ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`- eval enable_$ac_feature=no ;;-- -docdir | --docdir | --docdi | --doc | --do)- ac_prev=docdir ;;- -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)- docdir=$ac_optarg ;;-- -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)- ac_prev=dvidir ;;- -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)- dvidir=$ac_optarg ;;-- -enable-* | --enable-*)- ac_feature=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`- # Reject names that are not valid shell variable names.- expr "x$ac_feature" : ".*[^-._$as_cr_alnum]" >/dev/null &&- { echo "$as_me: error: invalid feature name: $ac_feature" >&2- { (exit 1); exit 1; }; }- ac_feature=`echo $ac_feature | sed 's/[-.]/_/g'`- eval enable_$ac_feature=\$ac_optarg ;;-- -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \- | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \- | --exec | --exe | --ex)- ac_prev=exec_prefix ;;- -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \- | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \- | --exec=* | --exe=* | --ex=*)- exec_prefix=$ac_optarg ;;-- -gas | --gas | --ga | --g)- # Obsolete; use --with-gas.- with_gas=yes ;;-- -help | --help | --hel | --he | -h)- ac_init_help=long ;;- -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)- ac_init_help=recursive ;;- -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)- ac_init_help=short ;;-- -host | --host | --hos | --ho)- ac_prev=host_alias ;;- -host=* | --host=* | --hos=* | --ho=*)- host_alias=$ac_optarg ;;-- -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)- ac_prev=htmldir ;;- -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \- | --ht=*)- htmldir=$ac_optarg ;;-- -includedir | --includedir | --includedi | --included | --include \- | --includ | --inclu | --incl | --inc)- ac_prev=includedir ;;- -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \- | --includ=* | --inclu=* | --incl=* | --inc=*)- includedir=$ac_optarg ;;-- -infodir | --infodir | --infodi | --infod | --info | --inf)- ac_prev=infodir ;;- -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)- infodir=$ac_optarg ;;-- -libdir | --libdir | --libdi | --libd)- ac_prev=libdir ;;- -libdir=* | --libdir=* | --libdi=* | --libd=*)- libdir=$ac_optarg ;;-- -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \- | --libexe | --libex | --libe)- ac_prev=libexecdir ;;- -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \- | --libexe=* | --libex=* | --libe=*)- libexecdir=$ac_optarg ;;-- -localedir | --localedir | --localedi | --localed | --locale)- ac_prev=localedir ;;- -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)- localedir=$ac_optarg ;;-- -localstatedir | --localstatedir | --localstatedi | --localstated \- | --localstate | --localstat | --localsta | --localst | --locals)- ac_prev=localstatedir ;;- -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \- | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)- localstatedir=$ac_optarg ;;-- -mandir | --mandir | --mandi | --mand | --man | --ma | --m)- ac_prev=mandir ;;- -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)- mandir=$ac_optarg ;;-- -nfp | --nfp | --nf)- # Obsolete; use --without-fp.- with_fp=no ;;-- -no-create | --no-create | --no-creat | --no-crea | --no-cre \- | --no-cr | --no-c | -n)- no_create=yes ;;-- -no-recursion | --no-recursion | --no-recursio | --no-recursi \- | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)- no_recursion=yes ;;-- -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \- | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \- | --oldin | --oldi | --old | --ol | --o)- ac_prev=oldincludedir ;;- -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \- | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \- | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)- oldincludedir=$ac_optarg ;;-- -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)- ac_prev=prefix ;;- -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)- prefix=$ac_optarg ;;-- -program-prefix | --program-prefix | --program-prefi | --program-pref \- | --program-pre | --program-pr | --program-p)- ac_prev=program_prefix ;;- -program-prefix=* | --program-prefix=* | --program-prefi=* \- | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)- program_prefix=$ac_optarg ;;-- -program-suffix | --program-suffix | --program-suffi | --program-suff \- | --program-suf | --program-su | --program-s)- ac_prev=program_suffix ;;- -program-suffix=* | --program-suffix=* | --program-suffi=* \- | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)- program_suffix=$ac_optarg ;;-- -program-transform-name | --program-transform-name \- | --program-transform-nam | --program-transform-na \- | --program-transform-n | --program-transform- \- | --program-transform | --program-transfor \- | --program-transfo | --program-transf \- | --program-trans | --program-tran \- | --progr-tra | --program-tr | --program-t)- ac_prev=program_transform_name ;;- -program-transform-name=* | --program-transform-name=* \- | --program-transform-nam=* | --program-transform-na=* \- | --program-transform-n=* | --program-transform-=* \- | --program-transform=* | --program-transfor=* \- | --program-transfo=* | --program-transf=* \- | --program-trans=* | --program-tran=* \- | --progr-tra=* | --program-tr=* | --program-t=*)- program_transform_name=$ac_optarg ;;-- -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)- ac_prev=pdfdir ;;- -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)- pdfdir=$ac_optarg ;;-- -psdir | --psdir | --psdi | --psd | --ps)- ac_prev=psdir ;;- -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)- psdir=$ac_optarg ;;-- -q | -quiet | --quiet | --quie | --qui | --qu | --q \- | -silent | --silent | --silen | --sile | --sil)- silent=yes ;;-- -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)- ac_prev=sbindir ;;- -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \- | --sbi=* | --sb=*)- sbindir=$ac_optarg ;;-- -sharedstatedir | --sharedstatedir | --sharedstatedi \- | --sharedstated | --sharedstate | --sharedstat | --sharedsta \- | --sharedst | --shareds | --shared | --share | --shar \- | --sha | --sh)- ac_prev=sharedstatedir ;;- -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \- | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \- | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \- | --sha=* | --sh=*)- sharedstatedir=$ac_optarg ;;-- -site | --site | --sit)- ac_prev=site ;;- -site=* | --site=* | --sit=*)- site=$ac_optarg ;;-- -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)- ac_prev=srcdir ;;- -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)- srcdir=$ac_optarg ;;-- -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \- | --syscon | --sysco | --sysc | --sys | --sy)- ac_prev=sysconfdir ;;- -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \- | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)- sysconfdir=$ac_optarg ;;-- -target | --target | --targe | --targ | --tar | --ta | --t)- ac_prev=target_alias ;;- -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)- target_alias=$ac_optarg ;;-- -v | -verbose | --verbose | --verbos | --verbo | --verb)- verbose=yes ;;-- -version | --version | --versio | --versi | --vers | -V)- ac_init_version=: ;;-- -with-* | --with-*)- ac_package=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`- # Reject names that are not valid shell variable names.- expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&- { echo "$as_me: error: invalid package name: $ac_package" >&2- { (exit 1); exit 1; }; }- ac_package=`echo $ac_package | sed 's/[-.]/_/g'`- eval with_$ac_package=\$ac_optarg ;;-- -without-* | --without-*)- ac_package=`expr "x$ac_option" : 'x-*without-\(.*\)'`- # Reject names that are not valid shell variable names.- expr "x$ac_package" : ".*[^-._$as_cr_alnum]" >/dev/null &&- { echo "$as_me: error: invalid package name: $ac_package" >&2- { (exit 1); exit 1; }; }- ac_package=`echo $ac_package | sed 's/[-.]/_/g'`- eval with_$ac_package=no ;;-- --x)- # Obsolete; use --with-x.- with_x=yes ;;-- -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \- | --x-incl | --x-inc | --x-in | --x-i)- ac_prev=x_includes ;;- -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \- | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)- x_includes=$ac_optarg ;;-- -x-libraries | --x-libraries | --x-librarie | --x-librari \- | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)- ac_prev=x_libraries ;;- -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \- | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)- x_libraries=$ac_optarg ;;-- -*) { echo "$as_me: error: unrecognized option: $ac_option-Try \`$0 --help' for more information." >&2- { (exit 1); exit 1; }; }- ;;-- *=*)- ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`- # Reject names that are not valid shell variable names.- expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&- { echo "$as_me: error: invalid variable name: $ac_envvar" >&2- { (exit 1); exit 1; }; }- eval $ac_envvar=\$ac_optarg- export $ac_envvar ;;-- *)- # FIXME: should be removed in autoconf 3.0.- echo "$as_me: WARNING: you should use --build, --host, --target" >&2- expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&- echo "$as_me: WARNING: invalid host type: $ac_option" >&2- : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}- ;;-- esac-done--if test -n "$ac_prev"; then- ac_option=--`echo $ac_prev | sed 's/_/-/g'`- { echo "$as_me: error: missing argument to $ac_option" >&2- { (exit 1); exit 1; }; }-fi--# Be sure to have absolute directory names.-for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \- datadir sysconfdir sharedstatedir localstatedir includedir \- oldincludedir docdir infodir htmldir dvidir pdfdir psdir \- libdir localedir mandir-do- eval ac_val=\$$ac_var- case $ac_val in- [\\/$]* | ?:[\\/]* ) continue;;- NONE | '' ) case $ac_var in *prefix ) continue;; esac;;- esac- { echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2- { (exit 1); exit 1; }; }-done--# There might be people who depend on the old broken behavior: `$host'-# used to hold the argument of --host etc.-# FIXME: To remove some day.-build=$build_alias-host=$host_alias-target=$target_alias--# FIXME: To remove some day.-if test "x$host_alias" != x; then- if test "x$build_alias" = x; then- cross_compiling=maybe- echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.- If a cross compiler is detected then cross compile mode will be used." >&2- elif test "x$build_alias" != "x$host_alias"; then- cross_compiling=yes- fi-fi--ac_tool_prefix=-test -n "$host_alias" && ac_tool_prefix=$host_alias---test "$silent" = yes && exec 6>/dev/null---ac_pwd=`pwd` && test -n "$ac_pwd" &&-ac_ls_di=`ls -di .` &&-ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||- { echo "$as_me: error: Working directory cannot be determined" >&2- { (exit 1); exit 1; }; }-test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||- { echo "$as_me: error: pwd does not report name of working directory" >&2- { (exit 1); exit 1; }; }---# Find the source files, if location was not specified.-if test -z "$srcdir"; then- ac_srcdir_defaulted=yes- # Try the directory containing this script, then the parent directory.- ac_confdir=`$as_dirname -- "$0" ||-$as_expr X"$0" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \- X"$0" : 'X\(//\)[^/]' \| \- X"$0" : 'X\(//\)$' \| \- X"$0" : 'X\(/\)' \| . 2>/dev/null ||-echo X"$0" |- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{- s//\1/- q- }- /^X\(\/\/\)[^/].*/{- s//\1/- q- }- /^X\(\/\/\)$/{- s//\1/- q- }- /^X\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`- srcdir=$ac_confdir- if test ! -r "$srcdir/$ac_unique_file"; then- srcdir=..- fi-else- ac_srcdir_defaulted=no-fi-if test ! -r "$srcdir/$ac_unique_file"; then- test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."- { echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2- { (exit 1); exit 1; }; }-fi-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"-ac_abs_confdir=`(- cd "$srcdir" && test -r "./$ac_unique_file" || { echo "$as_me: error: $ac_msg" >&2- { (exit 1); exit 1; }; }- pwd)`-# When building in place, set srcdir=.-if test "$ac_abs_confdir" = "$ac_pwd"; then- srcdir=.-fi-# Remove unnecessary trailing slashes from srcdir.-# Double slashes in file names in object file debugging info-# mess up M-x gdb in Emacs.-case $srcdir in-*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;-esac-for ac_var in $ac_precious_vars; do- eval ac_env_${ac_var}_set=\${${ac_var}+set}- eval ac_env_${ac_var}_value=\$${ac_var}- eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}- eval ac_cv_env_${ac_var}_value=\$${ac_var}-done--#-# Report the --help message.-#-if test "$ac_init_help" = "long"; then- # Omit some internal or obsolete options to make the list less imposing.- # This message is too long to be a string in the A/UX 3.1 sh.- cat <<_ACEOF-\`configure' configures rtsPOSIX 0.9.9 to adapt to many kinds of systems.--Usage: $0 [OPTION]... [VAR=VALUE]...--To assign environment variables (e.g., CC, CFLAGS...), specify them as-VAR=VALUE. See below for descriptions of some of the useful variables.--Defaults for the options are specified in brackets.--Configuration:- -h, --help display this help and exit- --help=short display options specific to this package- --help=recursive display the short help of all the included packages- -V, --version display version information and exit- -q, --quiet, --silent do not print \`checking...' messages- --cache-file=FILE cache test results in FILE [disabled]- -C, --config-cache alias for \`--cache-file=config.cache'- -n, --no-create do not create output files- --srcdir=DIR find the sources in DIR [configure dir or \`..']--Installation directories:- --prefix=PREFIX install architecture-independent files in PREFIX- [$ac_default_prefix]- --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX- [PREFIX]--By default, \`make install' will install all the files in-\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify-an installation prefix other than \`$ac_default_prefix' using \`--prefix',-for instance \`--prefix=\$HOME'.--For better control, use the options below.--Fine tuning of the installation directories:- --bindir=DIR user executables [EPREFIX/bin]- --sbindir=DIR system admin executables [EPREFIX/sbin]- --libexecdir=DIR program executables [EPREFIX/libexec]- --sysconfdir=DIR read-only single-machine data [PREFIX/etc]- --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]- --localstatedir=DIR modifiable single-machine data [PREFIX/var]- --libdir=DIR object code libraries [EPREFIX/lib]- --includedir=DIR C header files [PREFIX/include]- --oldincludedir=DIR C header files for non-gcc [/usr/include]- --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]- --datadir=DIR read-only architecture-independent data [DATAROOTDIR]- --infodir=DIR info documentation [DATAROOTDIR/info]- --localedir=DIR locale-dependent data [DATAROOTDIR/locale]- --mandir=DIR man documentation [DATAROOTDIR/man]- --docdir=DIR documentation root [DATAROOTDIR/doc/rtsposix]- --htmldir=DIR html documentation [DOCDIR]- --dvidir=DIR dvi documentation [DOCDIR]- --pdfdir=DIR pdf documentation [DOCDIR]- --psdir=DIR ps documentation [DOCDIR]-_ACEOF-- cat <<\_ACEOF--System types:- --build=BUILD configure for building on BUILD [guessed]- --host=HOST cross-compile to build programs to run on HOST [BUILD]-_ACEOF-fi--if test -n "$ac_init_help"; then- case $ac_init_help in- short | recursive ) echo "Configuration of rtsPOSIX 0.9.9:";;- esac- cat <<\_ACEOF--Optional Packages:- --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]- --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)- --with-timberc=DIR Path to timberc--Some influential environment variables:- CC C compiler command- CFLAGS C compiler flags- LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a- nonstandard directory <lib dir>- LIBS libraries to pass to the linker, e.g. -l<library>- CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if- you have headers in a nonstandard directory <include dir>- CPP C preprocessor--Use these variables to override the choices made by `configure' or to help-it to find libraries and programs with nonstandard names/locations.--Report bugs to <nordland@csee.ltu.se>.-_ACEOF-ac_status=$?-fi--if test "$ac_init_help" = "recursive"; then- # If there are subdirs, report their specific --help.- for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue- test -d "$ac_dir" || continue- ac_builddir=.--case "$ac_dir" in-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;-*)- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`- # A ".." for each directory in $ac_dir_suffix.- ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`- case $ac_top_builddir_sub in- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;- esac ;;-esac-ac_abs_top_builddir=$ac_pwd-ac_abs_builddir=$ac_pwd$ac_dir_suffix-# for backward compatibility:-ac_top_builddir=$ac_top_build_prefix--case $srcdir in- .) # We are building in place.- ac_srcdir=.- ac_top_srcdir=$ac_top_builddir_sub- ac_abs_top_srcdir=$ac_pwd ;;- [\\/]* | ?:[\\/]* ) # Absolute name.- ac_srcdir=$srcdir$ac_dir_suffix;- ac_top_srcdir=$srcdir- ac_abs_top_srcdir=$srcdir ;;- *) # Relative name.- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix- ac_top_srcdir=$ac_top_build_prefix$srcdir- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;-esac-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix-- cd "$ac_dir" || { ac_status=$?; continue; }- # Check for guested configure.- if test -f "$ac_srcdir/configure.gnu"; then- echo &&- $SHELL "$ac_srcdir/configure.gnu" --help=recursive- elif test -f "$ac_srcdir/configure"; then- echo &&- $SHELL "$ac_srcdir/configure" --help=recursive- else- echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2- fi || ac_status=$?- cd "$ac_pwd" || { ac_status=$?; break; }- done-fi--test -n "$ac_init_help" && exit $ac_status-if $ac_init_version; then- cat <<\_ACEOF-rtsPOSIX configure 0.9.9-generated by GNU Autoconf 2.61--Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,-2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.-This configure script is free software; the Free Software Foundation-gives unlimited permission to copy, distribute and modify it.-_ACEOF- exit-fi-cat >config.log <<_ACEOF-This file contains any messages produced by compilers while-running configure, to aid debugging if configure makes a mistake.--It was created by rtsPOSIX $as_me 0.9.9, which was-generated by GNU Autoconf 2.61. Invocation command line was-- $ $0 $@--_ACEOF-exec 5>>config.log-{-cat <<_ASUNAME-## --------- ##-## Platform. ##-## --------- ##--hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`-uname -m = `(uname -m) 2>/dev/null || echo unknown`-uname -r = `(uname -r) 2>/dev/null || echo unknown`-uname -s = `(uname -s) 2>/dev/null || echo unknown`-uname -v = `(uname -v) 2>/dev/null || echo unknown`--/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`-/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`--/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`-/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`-/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`-/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`-/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`-/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`-/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`--_ASUNAME--as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- echo "PATH: $as_dir"-done-IFS=$as_save_IFS--} >&5--cat >&5 <<_ACEOF---## ----------- ##-## Core tests. ##-## ----------- ##--_ACEOF---# Keep a trace of the command line.-# Strip out --no-create and --no-recursion so they do not pile up.-# Strip out --silent because we don't want to record it for future runs.-# Also quote any args containing shell meta-characters.-# Make two passes to allow for proper duplicate-argument suppression.-ac_configure_args=-ac_configure_args0=-ac_configure_args1=-ac_must_keep_next=false-for ac_pass in 1 2-do- for ac_arg- do- case $ac_arg in- -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;- -q | -quiet | --quiet | --quie | --qui | --qu | --q \- | -silent | --silent | --silen | --sile | --sil)- continue ;;- *\'*)- ac_arg=`echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;- esac- case $ac_pass in- 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;- 2)- ac_configure_args1="$ac_configure_args1 '$ac_arg'"- if test $ac_must_keep_next = true; then- ac_must_keep_next=false # Got value, back to normal.- else- case $ac_arg in- *=* | --config-cache | -C | -disable-* | --disable-* \- | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \- | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \- | -with-* | --with-* | -without-* | --without-* | --x)- case "$ac_configure_args0 " in- "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;- esac- ;;- -* ) ac_must_keep_next=true ;;- esac- fi- ac_configure_args="$ac_configure_args '$ac_arg'"- ;;- esac- done-done-$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }-$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }--# When interrupted or exit'd, cleanup temporary files, and complete-# config.log. We remove comments because anyway the quotes in there-# would cause problems or look ugly.-# WARNING: Use '\'' to represent an apostrophe within the trap.-# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.-trap 'exit_status=$?- # Save into config.log some information that might help in debugging.- {- echo-- cat <<\_ASBOX-## ---------------- ##-## Cache variables. ##-## ---------------- ##-_ASBOX- echo- # The following way of writing the cache mishandles newlines in values,-(- for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do- eval ac_val=\$$ac_var- case $ac_val in #(- *${as_nl}*)- case $ac_var in #(- *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;- esac- case $ac_var in #(- _ | IFS | as_nl) ;; #(- *) $as_unset $ac_var ;;- esac ;;- esac- done- (set) 2>&1 |- case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(- *${as_nl}ac_space=\ *)- sed -n \- "s/'\''/'\''\\\\'\'''\''/g;- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"- ;; #(- *)- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"- ;;- esac |- sort-)- echo-- cat <<\_ASBOX-## ----------------- ##-## Output variables. ##-## ----------------- ##-_ASBOX- echo- for ac_var in $ac_subst_vars- do- eval ac_val=\$$ac_var- case $ac_val in- *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;- esac- echo "$ac_var='\''$ac_val'\''"- done | sort- echo-- if test -n "$ac_subst_files"; then- cat <<\_ASBOX-## ------------------- ##-## File substitutions. ##-## ------------------- ##-_ASBOX- echo- for ac_var in $ac_subst_files- do- eval ac_val=\$$ac_var- case $ac_val in- *\'\''*) ac_val=`echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;- esac- echo "$ac_var='\''$ac_val'\''"- done | sort- echo- fi-- if test -s confdefs.h; then- cat <<\_ASBOX-## ----------- ##-## confdefs.h. ##-## ----------- ##-_ASBOX- echo- cat confdefs.h- echo- fi- test "$ac_signal" != 0 &&- echo "$as_me: caught signal $ac_signal"- echo "$as_me: exit $exit_status"- } >&5- rm -f core *.core core.conftest.* &&- rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&- exit $exit_status-' 0-for ac_signal in 1 2 13 15; do- trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal-done-ac_signal=0--# confdefs.h avoids OS command line length limits that DEFS can exceed.-rm -f -r conftest* confdefs.h--# Predefined preprocessor variables.--cat >>confdefs.h <<_ACEOF-#define PACKAGE_NAME "$PACKAGE_NAME"-_ACEOF---cat >>confdefs.h <<_ACEOF-#define PACKAGE_TARNAME "$PACKAGE_TARNAME"-_ACEOF---cat >>confdefs.h <<_ACEOF-#define PACKAGE_VERSION "$PACKAGE_VERSION"-_ACEOF---cat >>confdefs.h <<_ACEOF-#define PACKAGE_STRING "$PACKAGE_STRING"-_ACEOF---cat >>confdefs.h <<_ACEOF-#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"-_ACEOF---# Let the site file select an alternate cache file if it wants to.-# Prefer explicitly selected file to automatically selected ones.-if test -n "$CONFIG_SITE"; then- set x "$CONFIG_SITE"-elif test "x$prefix" != xNONE; then- set x "$prefix/share/config.site" "$prefix/etc/config.site"-else- set x "$ac_default_prefix/share/config.site" \- "$ac_default_prefix/etc/config.site"-fi-shift-for ac_site_file-do- if test -r "$ac_site_file"; then- { echo "$as_me:$LINENO: loading site script $ac_site_file" >&5-echo "$as_me: loading site script $ac_site_file" >&6;}- sed 's/^/| /' "$ac_site_file" >&5- . "$ac_site_file"- fi-done--if test -r "$cache_file"; then- # Some versions of bash will fail to source /dev/null (special- # files actually), so we avoid doing that.- if test -f "$cache_file"; then- { echo "$as_me:$LINENO: loading cache $cache_file" >&5-echo "$as_me: loading cache $cache_file" >&6;}- case $cache_file in- [\\/]* | ?:[\\/]* ) . "$cache_file";;- *) . "./$cache_file";;- esac- fi-else- { echo "$as_me:$LINENO: creating cache $cache_file" >&5-echo "$as_me: creating cache $cache_file" >&6;}- >$cache_file-fi--# Check that the precious variables saved in the cache have kept the same-# value.-ac_cache_corrupted=false-for ac_var in $ac_precious_vars; do- eval ac_old_set=\$ac_cv_env_${ac_var}_set- eval ac_new_set=\$ac_env_${ac_var}_set- eval ac_old_val=\$ac_cv_env_${ac_var}_value- eval ac_new_val=\$ac_env_${ac_var}_value- case $ac_old_set,$ac_new_set in- set,)- { echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5-echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}- ac_cache_corrupted=: ;;- ,set)- { echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5-echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}- ac_cache_corrupted=: ;;- ,);;- *)- if test "x$ac_old_val" != "x$ac_new_val"; then- { echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5-echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}- { echo "$as_me:$LINENO: former value: $ac_old_val" >&5-echo "$as_me: former value: $ac_old_val" >&2;}- { echo "$as_me:$LINENO: current value: $ac_new_val" >&5-echo "$as_me: current value: $ac_new_val" >&2;}- ac_cache_corrupted=:- fi;;- esac- # Pass precious variables to config.status.- if test "$ac_new_set" = set; then- case $ac_new_val in- *\'*) ac_arg=$ac_var=`echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;- *) ac_arg=$ac_var=$ac_new_val ;;- esac- case " $ac_configure_args " in- *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.- *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;- esac- fi-done-if $ac_cache_corrupted; then- { echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5-echo "$as_me: error: changes in the environment can compromise the build" >&2;}- { { echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5-echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}- { (exit 1); exit 1; }; }-fi--------------------------ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu----ac_config_headers="$ac_config_headers config.h"---# Checks for programs.-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.-set dummy ${ac_tool_prefix}gcc; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_CC+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then- ac_cv_prog_CC="${ac_tool_prefix}gcc"- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done-done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { echo "$as_me:$LINENO: result: $CC" >&5-echo "${ECHO_T}$CC" >&6; }-else- { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi---fi-if test -z "$ac_cv_prog_CC"; then- ac_ct_CC=$CC- # Extract the first word of "gcc", so it can be a program name with args.-set dummy gcc; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test -n "$ac_ct_CC"; then- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then- ac_cv_prog_ac_ct_CC="gcc"- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done-done-IFS=$as_save_IFS--fi-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then- { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5-echo "${ECHO_T}$ac_ct_CC" >&6; }-else- { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi-- if test "x$ac_ct_CC" = x; then- CC=""- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools-whose name does not start with the host triplet. If you think this-configuration is useful to you, please write to autoconf@gnu.org." >&5-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools-whose name does not start with the host triplet. If you think this-configuration is useful to you, please write to autoconf@gnu.org." >&2;}-ac_tool_warned=yes ;;-esac- CC=$ac_ct_CC- fi-else- CC="$ac_cv_prog_CC"-fi--if test -z "$CC"; then- if test -n "$ac_tool_prefix"; then- # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.-set dummy ${ac_tool_prefix}cc; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_CC+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then- ac_cv_prog_CC="${ac_tool_prefix}cc"- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done-done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { echo "$as_me:$LINENO: result: $CC" >&5-echo "${ECHO_T}$CC" >&6; }-else- { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi--- fi-fi-if test -z "$CC"; then- # Extract the first word of "cc", so it can be a program name with args.-set dummy cc; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_CC+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else- ac_prog_rejected=no-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then- if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then- ac_prog_rejected=yes- continue- fi- ac_cv_prog_CC="cc"- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done-done-IFS=$as_save_IFS--if test $ac_prog_rejected = yes; then- # We found a bogon in the path, so make sure we never use it.- set dummy $ac_cv_prog_CC- shift- if test $# != 0; then- # We chose a different compiler from the bogus one.- # However, it has the same basename, so the bogon will be chosen- # first if we set CC to just the basename; use the full file name.- shift- ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"- fi-fi-fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { echo "$as_me:$LINENO: result: $CC" >&5-echo "${ECHO_T}$CC" >&6; }-else- { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi---fi-if test -z "$CC"; then- if test -n "$ac_tool_prefix"; then- for ac_prog in cl.exe- do- # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.-set dummy $ac_tool_prefix$ac_prog; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_CC+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test -n "$CC"; then- ac_cv_prog_CC="$CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then- ac_cv_prog_CC="$ac_tool_prefix$ac_prog"- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done-done-IFS=$as_save_IFS--fi-fi-CC=$ac_cv_prog_CC-if test -n "$CC"; then- { echo "$as_me:$LINENO: result: $CC" >&5-echo "${ECHO_T}$CC" >&6; }-else- { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi--- test -n "$CC" && break- done-fi-if test -z "$CC"; then- ac_ct_CC=$CC- for ac_prog in cl.exe-do- # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_ac_ct_CC+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test -n "$ac_ct_CC"; then- ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then- ac_cv_prog_ac_ct_CC="$ac_prog"- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done-done-IFS=$as_save_IFS--fi-fi-ac_ct_CC=$ac_cv_prog_ac_ct_CC-if test -n "$ac_ct_CC"; then- { echo "$as_me:$LINENO: result: $ac_ct_CC" >&5-echo "${ECHO_T}$ac_ct_CC" >&6; }-else- { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi--- test -n "$ac_ct_CC" && break-done-- if test "x$ac_ct_CC" = x; then- CC=""- else- case $cross_compiling:$ac_tool_warned in-yes:)-{ echo "$as_me:$LINENO: WARNING: In the future, Autoconf will not detect cross-tools-whose name does not start with the host triplet. If you think this-configuration is useful to you, please write to autoconf@gnu.org." >&5-echo "$as_me: WARNING: In the future, Autoconf will not detect cross-tools-whose name does not start with the host triplet. If you think this-configuration is useful to you, please write to autoconf@gnu.org." >&2;}-ac_tool_warned=yes ;;-esac- CC=$ac_ct_CC- fi-fi--fi---test -z "$CC" && { { echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH-See \`config.log' for more details." >&5-echo "$as_me: error: no acceptable C compiler found in \$PATH-See \`config.log' for more details." >&2;}- { (exit 1); exit 1; }; }--# Provide some information about the compiler.-echo "$as_me:$LINENO: checking for C compiler version" >&5-ac_compiler=`set X $ac_compile; echo $2`-{ (ac_try="$ac_compiler --version >&5"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compiler --version >&5") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); }-{ (ac_try="$ac_compiler -v >&5"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compiler -v >&5") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); }-{ (ac_try="$ac_compiler -V >&5"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compiler -V >&5") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); }--cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */--int-main ()-{-- ;- return 0;-}-_ACEOF-ac_clean_files_save=$ac_clean_files-ac_clean_files="$ac_clean_files a.out a.exe b.out"-# Try to create an executable without -o first, disregard a.out.-# It will help us diagnose broken compilers, and finding out an intuition-# of exeext.-{ echo "$as_me:$LINENO: checking for C compiler default output file name" >&5-echo $ECHO_N "checking for C compiler default output file name... $ECHO_C" >&6; }-ac_link_default=`echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`-#-# List of possible output files, starting from the most likely.-# The algorithm is not robust to junk in `.', hence go to wildcards (a.*)-# only as a last resort. b.out is created by i960 compilers.-ac_files='a_out.exe a.exe conftest.exe a.out conftest a.* conftest.* b.out'-#-# The IRIX 6 linker writes into existing files which may not be-# executable, retaining their permissions. Remove them first so a-# subsequent execution test works.-ac_rmfiles=-for ac_file in $ac_files-do- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;- * ) ac_rmfiles="$ac_rmfiles $ac_file";;- esac-done-rm -f $ac_rmfiles--if { (ac_try="$ac_link_default"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_link_default") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); }; then- # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.-# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'-# in a Makefile. We should not override ac_cv_exeext if it was cached,-# so that the user can short-circuit this test for compilers unknown to-# Autoconf.-for ac_file in $ac_files ''-do- test -f "$ac_file" || continue- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj )- ;;- [ab].out )- # We found the default executable, but exeext='' is most- # certainly right.- break;;- *.* )- if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;- then :; else- ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`- fi- # We set ac_cv_exeext here because the later test for it is not- # safe: cross compilers may not add the suffix if given an `-o'- # argument, so we may need to know it at that point already.- # Even if this section looks crufty: it has the advantage of- # actually working.- break;;- * )- break;;- esac-done-test "$ac_cv_exeext" = no && ac_cv_exeext=--else- ac_file=''-fi--{ echo "$as_me:$LINENO: result: $ac_file" >&5-echo "${ECHO_T}$ac_file" >&6; }-if test -z "$ac_file"; then- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--{ { echo "$as_me:$LINENO: error: C compiler cannot create executables-See \`config.log' for more details." >&5-echo "$as_me: error: C compiler cannot create executables-See \`config.log' for more details." >&2;}- { (exit 77); exit 77; }; }-fi--ac_exeext=$ac_cv_exeext--# Check that the compiler produces executables we can run. If not, either-# the compiler is broken, or we cross compile.-{ echo "$as_me:$LINENO: checking whether the C compiler works" >&5-echo $ECHO_N "checking whether the C compiler works... $ECHO_C" >&6; }-# FIXME: These cross compiler hacks should be removed for Autoconf 3.0-# If not cross compiling, check that we can run a simple program.-if test "$cross_compiling" != yes; then- if { ac_try='./$ac_file'- { (case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_try") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); }; }; then- cross_compiling=no- else- if test "$cross_compiling" = maybe; then- cross_compiling=yes- else- { { echo "$as_me:$LINENO: error: cannot run C compiled programs.-If you meant to cross compile, use \`--host'.-See \`config.log' for more details." >&5-echo "$as_me: error: cannot run C compiled programs.-If you meant to cross compile, use \`--host'.-See \`config.log' for more details." >&2;}- { (exit 1); exit 1; }; }- fi- fi-fi-{ echo "$as_me:$LINENO: result: yes" >&5-echo "${ECHO_T}yes" >&6; }--rm -f a.out a.exe conftest$ac_cv_exeext b.out-ac_clean_files=$ac_clean_files_save-# Check that the compiler produces executables we can run. If not, either-# the compiler is broken, or we cross compile.-{ echo "$as_me:$LINENO: checking whether we are cross compiling" >&5-echo $ECHO_N "checking whether we are cross compiling... $ECHO_C" >&6; }-{ echo "$as_me:$LINENO: result: $cross_compiling" >&5-echo "${ECHO_T}$cross_compiling" >&6; }--{ echo "$as_me:$LINENO: checking for suffix of executables" >&5-echo $ECHO_N "checking for suffix of executables... $ECHO_C" >&6; }-if { (ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_link") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); }; then- # If both `conftest.exe' and `conftest' are `present' (well, observable)-# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will-# work properly (i.e., refer to `conftest.exe'), while it won't with-# `rm'.-for ac_file in conftest.exe conftest conftest.*; do- test -f "$ac_file" || continue- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.o | *.obj ) ;;- *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`- break;;- * ) break;;- esac-done-else- { { echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link-See \`config.log' for more details." >&5-echo "$as_me: error: cannot compute suffix of executables: cannot compile and link-See \`config.log' for more details." >&2;}- { (exit 1); exit 1; }; }-fi--rm -f conftest$ac_cv_exeext-{ echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5-echo "${ECHO_T}$ac_cv_exeext" >&6; }--rm -f conftest.$ac_ext-EXEEXT=$ac_cv_exeext-ac_exeext=$EXEEXT-{ echo "$as_me:$LINENO: checking for suffix of object files" >&5-echo $ECHO_N "checking for suffix of object files... $ECHO_C" >&6; }-if test "${ac_cv_objext+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */--int-main ()-{-- ;- return 0;-}-_ACEOF-rm -f conftest.o conftest.obj-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); }; then- for ac_file in conftest.o conftest.obj conftest.*; do- test -f "$ac_file" || continue;- case $ac_file in- *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf ) ;;- *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`- break;;- esac-done-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--{ { echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile-See \`config.log' for more details." >&5-echo "$as_me: error: cannot compute suffix of object files: cannot compile-See \`config.log' for more details." >&2;}- { (exit 1); exit 1; }; }-fi--rm -f conftest.$ac_cv_objext conftest.$ac_ext-fi-{ echo "$as_me:$LINENO: result: $ac_cv_objext" >&5-echo "${ECHO_T}$ac_cv_objext" >&6; }-OBJEXT=$ac_cv_objext-ac_objext=$OBJEXT-{ echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5-echo $ECHO_N "checking whether we are using the GNU C compiler... $ECHO_C" >&6; }-if test "${ac_cv_c_compiler_gnu+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */--int-main ()-{-#ifndef __GNUC__- choke me-#endif-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- ac_compiler_gnu=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_compiler_gnu=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-ac_cv_c_compiler_gnu=$ac_compiler_gnu--fi-{ echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5-echo "${ECHO_T}$ac_cv_c_compiler_gnu" >&6; }-GCC=`test $ac_compiler_gnu = yes && echo yes`-ac_test_CFLAGS=${CFLAGS+set}-ac_save_CFLAGS=$CFLAGS-{ echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5-echo $ECHO_N "checking whether $CC accepts -g... $ECHO_C" >&6; }-if test "${ac_cv_prog_cc_g+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- ac_save_c_werror_flag=$ac_c_werror_flag- ac_c_werror_flag=yes- ac_cv_prog_cc_g=no- CFLAGS="-g"- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */--int-main ()-{-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- ac_cv_prog_cc_g=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- CFLAGS=""- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */--int-main ()-{-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- :-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_c_werror_flag=$ac_save_c_werror_flag- CFLAGS="-g"- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */--int-main ()-{-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- ac_cv_prog_cc_g=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext- ac_c_werror_flag=$ac_save_c_werror_flag-fi-{ echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5-echo "${ECHO_T}$ac_cv_prog_cc_g" >&6; }-if test "$ac_test_CFLAGS" = set; then- CFLAGS=$ac_save_CFLAGS-elif test $ac_cv_prog_cc_g = yes; then- if test "$GCC" = yes; then- CFLAGS="-g -O2"- else- CFLAGS="-g"- fi-else- if test "$GCC" = yes; then- CFLAGS="-O2"- else- CFLAGS=- fi-fi-{ echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5-echo $ECHO_N "checking for $CC option to accept ISO C89... $ECHO_C" >&6; }-if test "${ac_cv_prog_cc_c89+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- ac_cv_prog_cc_c89=no-ac_save_CC=$CC-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <stdarg.h>-#include <stdio.h>-#include <sys/types.h>-#include <sys/stat.h>-/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */-struct buf { int x; };-FILE * (*rcsopen) (struct buf *, struct stat *, int);-static char *e (p, i)- char **p;- int i;-{- return p[i];-}-static char *f (char * (*g) (char **, int), char **p, ...)-{- char *s;- va_list v;- va_start (v,p);- s = g (p, va_arg (v,int));- va_end (v);- return s;-}--/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has- function prototypes and stuff, but not '\xHH' hex character constants.- These don't provoke an error unfortunately, instead are silently treated- as 'x'. The following induces an error, until -std is added to get- proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an- array size at least. It's necessary to write '\x00'==0 to get something- that's true only with -std. */-int osf4_cc_array ['\x00' == 0 ? 1 : -1];--/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters- inside strings and character constants. */-#define FOO(x) 'x'-int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];--int test (int i, double x);-struct s1 {int (*f) (int a);};-struct s2 {int (*f) (double a);};-int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);-int argc;-char **argv;-int-main ()-{-return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];- ;- return 0;-}-_ACEOF-for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \- -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"-do- CC="$ac_save_CC $ac_arg"- rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- ac_cv_prog_cc_c89=$ac_arg-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---fi--rm -f core conftest.err conftest.$ac_objext- test "x$ac_cv_prog_cc_c89" != "xno" && break-done-rm -f conftest.$ac_ext-CC=$ac_save_CC--fi-# AC_CACHE_VAL-case "x$ac_cv_prog_cc_c89" in- x)- { echo "$as_me:$LINENO: result: none needed" >&5-echo "${ECHO_T}none needed" >&6; } ;;- xno)- { echo "$as_me:$LINENO: result: unsupported" >&5-echo "${ECHO_T}unsupported" >&6; } ;;- *)- CC="$CC $ac_cv_prog_cc_c89"- { echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5-echo "${ECHO_T}$ac_cv_prog_cc_c89" >&6; } ;;-esac---ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--ac_aux_dir=-for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do- if test -f "$ac_dir/install-sh"; then- ac_aux_dir=$ac_dir- ac_install_sh="$ac_aux_dir/install-sh -c"- break- elif test -f "$ac_dir/install.sh"; then- ac_aux_dir=$ac_dir- ac_install_sh="$ac_aux_dir/install.sh -c"- break- elif test -f "$ac_dir/shtool"; then- ac_aux_dir=$ac_dir- ac_install_sh="$ac_aux_dir/shtool install -c"- break- fi-done-if test -z "$ac_aux_dir"; then- { { echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5-echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}- { (exit 1); exit 1; }; }-fi--# These three variables are undocumented and unsupported,-# and are intended to be withdrawn in a future Autoconf release.-# They can cause serious problems if a builder's source tree is in a directory-# whose full name contains unusual characters.-ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.-ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.-ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.---# Find a good install program. We prefer a C program (faster),-# so one script is as good as another. But avoid the broken or-# incompatible versions:-# SysV /etc/install, /usr/sbin/install-# SunOS /usr/etc/install-# IRIX /sbin/install-# AIX /bin/install-# AmigaOS /C/install, which installs bootblocks on floppy discs-# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag-# AFS /usr/afsws/bin/install, which mishandles nonexistent args-# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"-# OS/2's system install, which has a completely different semantic-# ./install, which can be erroneously created by make from ./install.sh.-{ echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5-echo $ECHO_N "checking for a BSD-compatible install... $ECHO_C" >&6; }-if test -z "$INSTALL"; then-if test "${ac_cv_path_install+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- # Account for people who put trailing slashes in PATH elements.-case $as_dir/ in- ./ | .// | /cC/* | \- /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \- ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \- /usr/ucb/* ) ;;- *)- # OSF1 and SCO ODT 3.0 have their own names for install.- # Don't use installbsd from OSF since it installs stuff as root- # by default.- for ac_prog in ginstall scoinst install; do- for ac_exec_ext in '' $ac_executable_extensions; do- if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then- if test $ac_prog = install &&- grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then- # AIX install. It has an incompatible calling convention.- :- elif test $ac_prog = install &&- grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then- # program-specific install script used by HP pwplus--don't use.- :- else- ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"- break 3- fi- fi- done- done- ;;-esac-done-IFS=$as_save_IFS---fi- if test "${ac_cv_path_install+set}" = set; then- INSTALL=$ac_cv_path_install- else- # As a last resort, use the slow shell script. Don't cache a- # value for INSTALL within a source directory, because that will- # break other packages using the cache if that directory is- # removed, or if the value is a relative name.- INSTALL=$ac_install_sh- fi-fi-{ echo "$as_me:$LINENO: result: $INSTALL" >&5-echo "${ECHO_T}$INSTALL" >&6; }--# Use test -z because SunOS4 sh mishandles braces in ${var-val}.-# It thinks the first close brace ends the variable substitution.-test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'--test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'--test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'---# Force building 32-bit applications since we're not 64-bit clean.-#-# GCC accepts -m32 on most architectures that might have a corresponding-# 64-bit architecture, for example sparc and MIPS.--old_CFLAGS="$CFLAGS"-CFLAGS="$CFLAGS -m32"--cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */--int-main ()-{-return 1;-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- :-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- CFLAGS="$old_CFLAGS"--fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext--# Checks for libraries.--# Look for pthreads.-# Make sure we can run config.sub.-$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||- { { echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5-echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}- { (exit 1); exit 1; }; }--{ echo "$as_me:$LINENO: checking build system type" >&5-echo $ECHO_N "checking build system type... $ECHO_C" >&6; }-if test "${ac_cv_build+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- ac_build_alias=$build_alias-test "x$ac_build_alias" = x &&- ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`-test "x$ac_build_alias" = x &&- { { echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5-echo "$as_me: error: cannot guess build type; you must specify one" >&2;}- { (exit 1); exit 1; }; }-ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||- { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}- { (exit 1); exit 1; }; }--fi-{ echo "$as_me:$LINENO: result: $ac_cv_build" >&5-echo "${ECHO_T}$ac_cv_build" >&6; }-case $ac_cv_build in-*-*-*) ;;-*) { { echo "$as_me:$LINENO: error: invalid value of canonical build" >&5-echo "$as_me: error: invalid value of canonical build" >&2;}- { (exit 1); exit 1; }; };;-esac-build=$ac_cv_build-ac_save_IFS=$IFS; IFS='-'-set x $ac_cv_build-shift-build_cpu=$1-build_vendor=$2-shift; shift-# Remember, the first character of IFS is used to create $*,-# except with old shells:-build_os=$*-IFS=$ac_save_IFS-case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac---{ echo "$as_me:$LINENO: checking host system type" >&5-echo $ECHO_N "checking host system type... $ECHO_C" >&6; }-if test "${ac_cv_host+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test "x$host_alias" = x; then- ac_cv_host=$ac_cv_build-else- ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||- { { echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5-echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}- { (exit 1); exit 1; }; }-fi--fi-{ echo "$as_me:$LINENO: result: $ac_cv_host" >&5-echo "${ECHO_T}$ac_cv_host" >&6; }-case $ac_cv_host in-*-*-*) ;;-*) { { echo "$as_me:$LINENO: error: invalid value of canonical host" >&5-echo "$as_me: error: invalid value of canonical host" >&2;}- { (exit 1); exit 1; }; };;-esac-host=$ac_cv_host-ac_save_IFS=$IFS; IFS='-'-set x $ac_cv_host-shift-host_cpu=$1-host_vendor=$2-shift; shift-# Remember, the first character of IFS is used to create $*,-# except with old shells:-host_os=$*-IFS=$ac_save_IFS-case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac------ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu--acx_pthread_ok=no--# We used to check for pthread.h first, but this fails if pthread.h-# requires special compiler flags (e.g. on True64 or Sequent).-# It gets checked for in the link test anyway.--# First of all, check if the user has set any of the PTHREAD_LIBS,-# etcetera environment variables, and if threads linking works using-# them:-if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then- save_CFLAGS="$CFLAGS"- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"- save_LIBS="$LIBS"- LIBS="$PTHREAD_LIBS $LIBS"- { echo "$as_me:$LINENO: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5-echo $ECHO_N "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... $ECHO_C" >&6; }- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */--/* Override any GCC internal prototype to avoid an error.- Use char because int might match the return type of a GCC- builtin and then its argument prototype would still apply. */-#ifdef __cplusplus-extern "C"-#endif-char pthread_join ();-int-main ()-{-return pthread_join ();- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_link") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest$ac_exeext &&- $as_test_x conftest$ac_exeext; then- acx_pthread_ok=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \- conftest$ac_exeext conftest.$ac_ext- { echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5-echo "${ECHO_T}$acx_pthread_ok" >&6; }- if test x"$acx_pthread_ok" = xno; then- PTHREAD_LIBS=""- PTHREAD_CFLAGS=""- fi- LIBS="$save_LIBS"- CFLAGS="$save_CFLAGS"-fi--# We must check for the threads library under a number of different-# names; the ordering is very important because some systems-# (e.g. DEC) have both -lpthread and -lpthreads, where one of the-# libraries is broken (non-POSIX).--# Create a list of thread flags to try. Items starting with a "-" are-# C compiler flags, and other items are library names, except for "none"-# which indicates that we try without any flags at all, and "pthread-config"-# which is a program returning the flags for the Pth emulation library.--acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"--# The ordering *is* (sometimes) important. Some notes on the-# individual items follow:--# pthreads: AIX (must check this before -lpthread)-# none: in case threads are in libc; should be tried before -Kthread and-# other compiler flags to prevent continual compiler warnings-# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)-# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)-# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)-# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)-# -pthreads: Solaris/gcc-# -mthreads: Mingw32/gcc, Lynx/gcc-# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it-# doesn't hurt to check since this sometimes defines pthreads too;-# also defines -D_REENTRANT)-# ... -mt is also the pthreads flag for HP/aCC-# pthread: Linux, etcetera-# --thread-safe: KAI C++-# pthread-config: use pthread-config program (for GNU Pth library)--case "${host_cpu}-${host_os}" in- *solaris*)-- # On Solaris (at least, for some versions), libc contains stubbed- # (non-functional) versions of the pthreads routines, so link-based- # tests will erroneously succeed. (We need to link with -pthreads/-mt/- # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather- # a function called by this macro, so we could check for that, but- # who knows whether they'll stub that too in a future libc.) So,- # we'll just look for -pthreads and -lpthread first:-- acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"- ;;-esac--if test x"$acx_pthread_ok" = xno; then-for flag in $acx_pthread_flags; do-- case $flag in- none)- { echo "$as_me:$LINENO: checking whether pthreads work without any flags" >&5-echo $ECHO_N "checking whether pthreads work without any flags... $ECHO_C" >&6; }- ;;-- -*)- { echo "$as_me:$LINENO: checking whether pthreads work with $flag" >&5-echo $ECHO_N "checking whether pthreads work with $flag... $ECHO_C" >&6; }- PTHREAD_CFLAGS="$flag"- ;;-- pthread-config)- # Extract the first word of "pthread-config", so it can be a program name with args.-set dummy pthread-config; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_acx_pthread_config+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test -n "$acx_pthread_config"; then- ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then- ac_cv_prog_acx_pthread_config="yes"- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done-done-IFS=$as_save_IFS-- test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no"-fi-fi-acx_pthread_config=$ac_cv_prog_acx_pthread_config-if test -n "$acx_pthread_config"; then- { echo "$as_me:$LINENO: result: $acx_pthread_config" >&5-echo "${ECHO_T}$acx_pthread_config" >&6; }-else- { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi--- if test x"$acx_pthread_config" = xno; then continue; fi- PTHREAD_CFLAGS="`pthread-config --cflags`"- PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"- ;;-- *)- { echo "$as_me:$LINENO: checking for the pthreads library -l$flag" >&5-echo $ECHO_N "checking for the pthreads library -l$flag... $ECHO_C" >&6; }- PTHREAD_LIBS="-l$flag"- ;;- esac-- save_LIBS="$LIBS"- save_CFLAGS="$CFLAGS"- LIBS="$PTHREAD_LIBS $LIBS"- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"-- # Check for various functions. We must include pthread.h,- # since some functions may be macros. (On the Sequent, we- # need a special flag -Kthread to make this header compile.)- # We check for pthread_join because it is in -lpthread on IRIX- # while pthread_create is in libc. We check for pthread_attr_init- # due to DEC craziness with -lpthreads. We check for- # pthread_cleanup_push because it is one of the few pthread- # functions on Solaris that doesn't have a non-functional libc stub.- # We try pthread_create on general principles.- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <pthread.h>-int-main ()-{-pthread_t th; pthread_join(th, 0);- pthread_attr_init(0); pthread_cleanup_push(0, 0);- pthread_create(0,0,0,0); pthread_cleanup_pop(0);- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_link") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest$ac_exeext &&- $as_test_x conftest$ac_exeext; then- acx_pthread_ok=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \- conftest$ac_exeext conftest.$ac_ext-- LIBS="$save_LIBS"- CFLAGS="$save_CFLAGS"-- { echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5-echo "${ECHO_T}$acx_pthread_ok" >&6; }- if test "x$acx_pthread_ok" = xyes; then- break;- fi-- PTHREAD_LIBS=""- PTHREAD_CFLAGS=""-done-fi--# Various other checks:-if test "x$acx_pthread_ok" = xyes; then- save_LIBS="$LIBS"- LIBS="$PTHREAD_LIBS $LIBS"- save_CFLAGS="$CFLAGS"- CFLAGS="$CFLAGS $PTHREAD_CFLAGS"-- # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.- { echo "$as_me:$LINENO: checking for joinable pthread attribute" >&5-echo $ECHO_N "checking for joinable pthread attribute... $ECHO_C" >&6; }- attr_name=unknown- for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <pthread.h>-int-main ()-{-int attr=$attr; return attr;- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_link") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest$ac_exeext &&- $as_test_x conftest$ac_exeext; then- attr_name=$attr; break-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5---fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \- conftest$ac_exeext conftest.$ac_ext- done- { echo "$as_me:$LINENO: result: $attr_name" >&5-echo "${ECHO_T}$attr_name" >&6; }- if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then--cat >>confdefs.h <<_ACEOF-#define PTHREAD_CREATE_JOINABLE $attr_name-_ACEOF-- fi-- { echo "$as_me:$LINENO: checking if more special flags are required for pthreads" >&5-echo $ECHO_N "checking if more special flags are required for pthreads... $ECHO_C" >&6; }- flag=no- case "${host_cpu}-${host_os}" in- *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;- *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;- esac- { echo "$as_me:$LINENO: result: ${flag}" >&5-echo "${ECHO_T}${flag}" >&6; }- if test "x$flag" != xno; then- PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"- fi-- LIBS="$save_LIBS"- CFLAGS="$save_CFLAGS"-- # More AIX lossage: must compile with xlc_r or cc_r- if test x"$GCC" != xyes; then- for ac_prog in xlc_r cc_r-do- # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test -n "$PTHREAD_CC"; then- ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then- ac_cv_prog_PTHREAD_CC="$ac_prog"- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done-done-IFS=$as_save_IFS--fi-fi-PTHREAD_CC=$ac_cv_prog_PTHREAD_CC-if test -n "$PTHREAD_CC"; then- { echo "$as_me:$LINENO: result: $PTHREAD_CC" >&5-echo "${ECHO_T}$PTHREAD_CC" >&6; }-else- { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi--- test -n "$PTHREAD_CC" && break-done-test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}"-- else- PTHREAD_CC=$CC- fi-else- PTHREAD_CC="$CC"-fi------# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:-if test x"$acx_pthread_ok" = xyes; then--cat >>confdefs.h <<\_ACEOF-#define HAVE_PTHREAD 1-_ACEOF-- :-else- acx_pthread_ok=no--fi-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu----if test "$THREAD_SUPPORT" = "no"; then- { { echo "$as_me:$LINENO: error: Cannot enable threads on this platform." >&5-echo "$as_me: error: Cannot enable threads on this platform." >&2;}- { (exit 1); exit 1; }; }-fi--CC="$PTHREAD_CC"-CFLAGS="$CFLAGS $PTHREAD_CFLAGS"-LIBS="$PTHREAD_LIBS $LIBS"--# Make sure that pthread realtime-threads extension is available. This is-# not the default behaviour on most GNU/Linux dists. If it turns out that-# the realtime-threads extension is not available we add -D_GNU_SOURCE=1-# as this should enable all extensions on most GNU/Linux dists. For more-# information please see <features.h>.-{ echo "$as_me:$LINENO: checking pthread realtime-threads extension" >&5-echo $ECHO_N "checking pthread realtime-threads extension... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <pthread.h>-int-main ()-{-pthread_mutexattr_setprotocol(NULL, PTHREAD_PRIO_INHERIT);-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- need_gnu_source=no-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- need_gnu_source=yes--fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext--if test "x$need_gnu_source" = "xyes"; then- CFLAGS="$CFLAGS -D_GNU_SOURCE=1"-fi--# Finalize the checking for pthread realtime-threads extension. This may-# still fail if -D_GNU_SOURCE=1 does not enable the realtime-threads-# extension. I this is the case then we are either running this on a-# system without the realtime-threads extension or we need to perform some-# other kind of black magic to enable it. If you know of any such platform-# then please feel free to send a patch.-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <pthread.h>-int-main ()-{-pthread_mutexattr_setprotocol(NULL, PTHREAD_PRIO_INHERIT);-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- { echo "$as_me:$LINENO: result: yes" >&5-echo "${ECHO_T}yes" >&6; }-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- { { echo "$as_me:$LINENO: error: no-See \`config.log' for more details." >&5-echo "$as_me: error: no-See \`config.log' for more details." >&2;}- { (exit 1); exit 1; }; }--fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext---# Check whether --with-timberc was given.-if test "${with_timberc+set}" = set; then- withval=$with_timberc; with_timberc=$withval--fi---if test "x$with_timberc" = "x"; then- for ac_prog in timberc-do- # Extract the first word of "$ac_prog", so it can be a program name with args.-set dummy $ac_prog; ac_word=$2-{ echo "$as_me:$LINENO: checking for $ac_word" >&5-echo $ECHO_N "checking for $ac_word... $ECHO_C" >&6; }-if test "${ac_cv_prog_TIMBERC+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test -n "$TIMBERC"; then- ac_cv_prog_TIMBERC="$TIMBERC" # Let the user override the test.-else-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_exec_ext in '' $ac_executable_extensions; do- if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then- ac_cv_prog_TIMBERC="$ac_prog"- echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5- break 2- fi-done-done-IFS=$as_save_IFS--fi-fi-TIMBERC=$ac_cv_prog_TIMBERC-if test -n "$TIMBERC"; then- { echo "$as_me:$LINENO: result: $TIMBERC" >&5-echo "${ECHO_T}$TIMBERC" >&6; }-else- { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }-fi--- test -n "$TIMBERC" && break-done--else- TIMBERC="$with_timberc"-fi--if test "x$TIMBERC" = "x"; then- { { echo "$as_me:$LINENO: error: Timberc not found." >&5-echo "$as_me: error: Timberc not found." >&2;}- { (exit 1); exit 1; }; }-fi--# Checks for header files.-ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu-{ echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5-echo $ECHO_N "checking how to run the C preprocessor... $ECHO_C" >&6; }-# On Suns, sometimes $CPP names a directory.-if test -n "$CPP" && test -d "$CPP"; then- CPP=-fi-if test -z "$CPP"; then- if test "${ac_cv_prog_CPP+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- # Double quotes because CPP needs to be expanded- for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"- do- ac_preproc_ok=false-for ac_c_preproc_warn_flag in '' yes-do- # Use a header file that comes with gcc, so configuring glibc- # with a fresh cross-compiler works.- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since- # <limits.h> exists even on freestanding compilers.- # On the NeXT, cc -E runs the code through the compiler's parser,- # not just through cpp. "Syntax error" is here to catch this case.- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#ifdef __STDC__-# include <limits.h>-#else-# include <assert.h>-#endif- Syntax error-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } >/dev/null && {- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||- test ! -s conftest.err- }; then- :-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- # Broken: fails on valid input.-continue-fi--rm -f conftest.err conftest.$ac_ext-- # OK, works on sane cases. Now check whether nonexistent headers- # can be detected and how.- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <ac_nonexistent.h>-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } >/dev/null && {- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||- test ! -s conftest.err- }; then- # Broken: success on invalid input.-continue-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- # Passes both tests.-ac_preproc_ok=:-break-fi--rm -f conftest.err conftest.$ac_ext--done-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.-rm -f conftest.err conftest.$ac_ext-if $ac_preproc_ok; then- break-fi-- done- ac_cv_prog_CPP=$CPP--fi- CPP=$ac_cv_prog_CPP-else- ac_cv_prog_CPP=$CPP-fi-{ echo "$as_me:$LINENO: result: $CPP" >&5-echo "${ECHO_T}$CPP" >&6; }-ac_preproc_ok=false-for ac_c_preproc_warn_flag in '' yes-do- # Use a header file that comes with gcc, so configuring glibc- # with a fresh cross-compiler works.- # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since- # <limits.h> exists even on freestanding compilers.- # On the NeXT, cc -E runs the code through the compiler's parser,- # not just through cpp. "Syntax error" is here to catch this case.- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#ifdef __STDC__-# include <limits.h>-#else-# include <assert.h>-#endif- Syntax error-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } >/dev/null && {- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||- test ! -s conftest.err- }; then- :-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- # Broken: fails on valid input.-continue-fi--rm -f conftest.err conftest.$ac_ext-- # OK, works on sane cases. Now check whether nonexistent headers- # can be detected and how.- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <ac_nonexistent.h>-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } >/dev/null && {- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||- test ! -s conftest.err- }; then- # Broken: success on invalid input.-continue-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- # Passes both tests.-ac_preproc_ok=:-break-fi--rm -f conftest.err conftest.$ac_ext--done-# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.-rm -f conftest.err conftest.$ac_ext-if $ac_preproc_ok; then- :-else- { { echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check-See \`config.log' for more details." >&5-echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check-See \`config.log' for more details." >&2;}- { (exit 1); exit 1; }; }-fi--ac_ext=c-ac_cpp='$CPP $CPPFLAGS'-ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'-ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'-ac_compiler_gnu=$ac_cv_c_compiler_gnu---{ echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5-echo $ECHO_N "checking for grep that handles long lines and -e... $ECHO_C" >&6; }-if test "${ac_cv_path_GREP+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- # Extract the first word of "grep ggrep" to use in msg output-if test -z "$GREP"; then-set dummy grep ggrep; ac_prog_name=$2-if test "${ac_cv_path_GREP+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- ac_path_GREP_found=false-# Loop through the user's path and test for each of PROGNAME-LIST-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_prog in grep ggrep; do- for ac_exec_ext in '' $ac_executable_extensions; do- ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"- { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue- # Check for GNU ac_path_GREP and select it if it is found.- # Check for GNU $ac_path_GREP-case `"$ac_path_GREP" --version 2>&1` in-*GNU*)- ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;-*)- ac_count=0- echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"- while :- do- cat "conftest.in" "conftest.in" >"conftest.tmp"- mv "conftest.tmp" "conftest.in"- cp "conftest.in" "conftest.nl"- echo 'GREP' >> "conftest.nl"- "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break- ac_count=`expr $ac_count + 1`- if test $ac_count -gt ${ac_path_GREP_max-0}; then- # Best one so far, save it but keep looking for a better one- ac_cv_path_GREP="$ac_path_GREP"- ac_path_GREP_max=$ac_count- fi- # 10*(2^10) chars as input seems more than enough- test $ac_count -gt 10 && break- done- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac--- $ac_path_GREP_found && break 3- done-done--done-IFS=$as_save_IFS---fi--GREP="$ac_cv_path_GREP"-if test -z "$GREP"; then- { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}- { (exit 1); exit 1; }; }-fi--else- ac_cv_path_GREP=$GREP-fi---fi-{ echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5-echo "${ECHO_T}$ac_cv_path_GREP" >&6; }- GREP="$ac_cv_path_GREP"---{ echo "$as_me:$LINENO: checking for egrep" >&5-echo $ECHO_N "checking for egrep... $ECHO_C" >&6; }-if test "${ac_cv_path_EGREP+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if echo a | $GREP -E '(a|b)' >/dev/null 2>&1- then ac_cv_path_EGREP="$GREP -E"- else- # Extract the first word of "egrep" to use in msg output-if test -z "$EGREP"; then-set dummy egrep; ac_prog_name=$2-if test "${ac_cv_path_EGREP+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- ac_path_EGREP_found=false-# Loop through the user's path and test for each of PROGNAME-LIST-as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- for ac_prog in egrep; do- for ac_exec_ext in '' $ac_executable_extensions; do- ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"- { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue- # Check for GNU ac_path_EGREP and select it if it is found.- # Check for GNU $ac_path_EGREP-case `"$ac_path_EGREP" --version 2>&1` in-*GNU*)- ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;-*)- ac_count=0- echo $ECHO_N "0123456789$ECHO_C" >"conftest.in"- while :- do- cat "conftest.in" "conftest.in" >"conftest.tmp"- mv "conftest.tmp" "conftest.in"- cp "conftest.in" "conftest.nl"- echo 'EGREP' >> "conftest.nl"- "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break- diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break- ac_count=`expr $ac_count + 1`- if test $ac_count -gt ${ac_path_EGREP_max-0}; then- # Best one so far, save it but keep looking for a better one- ac_cv_path_EGREP="$ac_path_EGREP"- ac_path_EGREP_max=$ac_count- fi- # 10*(2^10) chars as input seems more than enough- test $ac_count -gt 10 && break- done- rm -f conftest.in conftest.tmp conftest.nl conftest.out;;-esac--- $ac_path_EGREP_found && break 3- done-done--done-IFS=$as_save_IFS---fi--EGREP="$ac_cv_path_EGREP"-if test -z "$EGREP"; then- { { echo "$as_me:$LINENO: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5-echo "$as_me: error: no acceptable $ac_prog_name could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}- { (exit 1); exit 1; }; }-fi--else- ac_cv_path_EGREP=$EGREP-fi--- fi-fi-{ echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5-echo "${ECHO_T}$ac_cv_path_EGREP" >&6; }- EGREP="$ac_cv_path_EGREP"---{ echo "$as_me:$LINENO: checking for ANSI C header files" >&5-echo $ECHO_N "checking for ANSI C header files... $ECHO_C" >&6; }-if test "${ac_cv_header_stdc+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <stdlib.h>-#include <stdarg.h>-#include <string.h>-#include <float.h>--int-main ()-{-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- ac_cv_header_stdc=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_cv_header_stdc=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext--if test $ac_cv_header_stdc = yes; then- # SunOS 4.x string.h does not declare mem*, contrary to ANSI.- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <string.h>--_ACEOF-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |- $EGREP "memchr" >/dev/null 2>&1; then- :-else- ac_cv_header_stdc=no-fi-rm -f conftest*--fi--if test $ac_cv_header_stdc = yes; then- # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <stdlib.h>--_ACEOF-if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |- $EGREP "free" >/dev/null 2>&1; then- :-else- ac_cv_header_stdc=no-fi-rm -f conftest*--fi--if test $ac_cv_header_stdc = yes; then- # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.- if test "$cross_compiling" = yes; then- :-else- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <ctype.h>-#include <stdlib.h>-#if ((' ' & 0x0FF) == 0x020)-# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')-# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))-#else-# define ISLOWER(c) \- (('a' <= (c) && (c) <= 'i') \- || ('j' <= (c) && (c) <= 'r') \- || ('s' <= (c) && (c) <= 'z'))-# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))-#endif--#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))-int-main ()-{- int i;- for (i = 0; i < 256; i++)- if (XOR (islower (i), ISLOWER (i))- || toupper (i) != TOUPPER (i))- return 2;- return 0;-}-_ACEOF-rm -f conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_link") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'- { (case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_try") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); }; }; then- :-else- echo "$as_me: program exited with status $ac_status" >&5-echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--( exit $ac_status )-ac_cv_header_stdc=no-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext-fi---fi-fi-{ echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5-echo "${ECHO_T}$ac_cv_header_stdc" >&6; }-if test $ac_cv_header_stdc = yes; then--cat >>confdefs.h <<\_ACEOF-#define STDC_HEADERS 1-_ACEOF--fi--# On IRIX 5.3, sys/types and inttypes.h are conflicting.----------for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \- inttypes.h stdint.h unistd.h-do-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`-{ echo "$as_me:$LINENO: checking for $ac_header" >&5-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-$ac_includes_default--#include <$ac_header>-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- eval "$as_ac_Header=yes"-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- eval "$as_ac_Header=no"-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-ac_res=`eval echo '${'$as_ac_Header'}'`- { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }-if test `eval echo '${'$as_ac_Header'}'` = yes; then- cat >>confdefs.h <<_ACEOF-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1-_ACEOF--fi--done------for ac_header in stdlib.h sys/time.h termios.h-do-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then- { echo "$as_me:$LINENO: checking for $ac_header" >&5-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then- echo $ECHO_N "(cached) $ECHO_C" >&6-fi-ac_res=`eval echo '${'$as_ac_Header'}'`- { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }-else- # Is the header compilable?-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-$ac_includes_default-#include <$ac_header>-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- ac_header_compiler=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_header_compiler=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5-echo "${ECHO_T}$ac_header_compiler" >&6; }--# Is the header present?-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <$ac_header>-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } >/dev/null && {- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||- test ! -s conftest.err- }; then- ac_header_preproc=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_header_preproc=no-fi--rm -f conftest.err conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5-echo "${ECHO_T}$ac_header_preproc" >&6; }--# So? What about this header?-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in- yes:no: )- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}- ac_header_preproc=yes- ;;- no:yes:* )- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}- ( cat <<\_ASBOX-## ----------------------------------- ##-## Report this to nordland@csee.ltu.se ##-## ----------------------------------- ##-_ASBOX- ) | sed "s/^/$as_me: WARNING: /" >&2- ;;-esac-{ echo "$as_me:$LINENO: checking for $ac_header" >&5-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- eval "$as_ac_Header=\$ac_header_preproc"-fi-ac_res=`eval echo '${'$as_ac_Header'}'`- { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }--fi-if test `eval echo '${'$as_ac_Header'}'` = yes; then- cat >>confdefs.h <<_ACEOF-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1-_ACEOF--fi--done---if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then- { echo "$as_me:$LINENO: checking for libkern/OSAtomic.h" >&5-echo $ECHO_N "checking for libkern/OSAtomic.h... $ECHO_C" >&6; }-if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-fi-{ echo "$as_me:$LINENO: result: $ac_cv_header_libkern_OSAtomic_h" >&5-echo "${ECHO_T}$ac_cv_header_libkern_OSAtomic_h" >&6; }-else- # Is the header compilable?-{ echo "$as_me:$LINENO: checking libkern/OSAtomic.h usability" >&5-echo $ECHO_N "checking libkern/OSAtomic.h usability... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-$ac_includes_default-#include <libkern/OSAtomic.h>-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- ac_header_compiler=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_header_compiler=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5-echo "${ECHO_T}$ac_header_compiler" >&6; }--# Is the header present?-{ echo "$as_me:$LINENO: checking libkern/OSAtomic.h presence" >&5-echo $ECHO_N "checking libkern/OSAtomic.h presence... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <libkern/OSAtomic.h>-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } >/dev/null && {- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||- test ! -s conftest.err- }; then- ac_header_preproc=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_header_preproc=no-fi--rm -f conftest.err conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5-echo "${ECHO_T}$ac_header_preproc" >&6; }--# So? What about this header?-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in- yes:no: )- { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: accepted by the compiler, rejected by the preprocessor!" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: accepted by the compiler, rejected by the preprocessor!" >&2;}- { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: proceeding with the compiler's result" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: proceeding with the compiler's result" >&2;}- ac_header_preproc=yes- ;;- no:yes:* )- { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: present but cannot be compiled" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: present but cannot be compiled" >&2;}- { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: check for missing prerequisite headers?" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: check for missing prerequisite headers?" >&2;}- { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: see the Autoconf documentation" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: see the Autoconf documentation" >&2;}- { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: section \"Present But Cannot Be Compiled\"" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: section \"Present But Cannot Be Compiled\"" >&2;}- { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: proceeding with the preprocessor's result" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: proceeding with the preprocessor's result" >&2;}- { echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: in the future, the compiler will take precedence" >&5-echo "$as_me: WARNING: libkern/OSAtomic.h: in the future, the compiler will take precedence" >&2;}- ( cat <<\_ASBOX-## ----------------------------------- ##-## Report this to nordland@csee.ltu.se ##-## ----------------------------------- ##-_ASBOX- ) | sed "s/^/$as_me: WARNING: /" >&2- ;;-esac-{ echo "$as_me:$LINENO: checking for libkern/OSAtomic.h" >&5-echo $ECHO_N "checking for libkern/OSAtomic.h... $ECHO_C" >&6; }-if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- ac_cv_header_libkern_OSAtomic_h=$ac_header_preproc-fi-{ echo "$as_me:$LINENO: result: $ac_cv_header_libkern_OSAtomic_h" >&5-echo "${ECHO_T}$ac_cv_header_libkern_OSAtomic_h" >&6; }--fi-if test $ac_cv_header_libkern_OSAtomic_h = yes; then--cat >>confdefs.h <<_ACEOF-#define HAVE_OSX_ATOMICS 1-_ACEOF--fi----# Check the <sys/stat.h> header for XSI extensions. This should already be-# enable by -D_GNU_SOURCE=1, if it's supported.-# NOTE:-# While it might be possible for the compiler to optimize away the int xsi-# statement I'm not up for the challenge of writing something that is-# _impossible_ for the compiler to optimize away.-{ echo "$as_me:$LINENO: checking sys/stat.h header for XSI extensions" >&5-echo $ECHO_N "checking sys/stat.h header for XSI extensions... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <sys/stat.h>-int-main ()-{-mode_t mode_xsi = S_IWUSR|S_IRUSR|S_IRGRP|S_IROTH;-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- { echo "$as_me:$LINENO: result: yes" >&5-echo "${ECHO_T}yes" >&6; }-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- { { echo "$as_me:$LINENO: error: no-See \`config.log' for more details." >&5-echo "$as_me: error: no-See \`config.log' for more details." >&2;}- { (exit 1); exit 1; }; }--fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext--# Does this compiler have built-in functions for atomic memory access?-{ echo "$as_me:$LINENO: checking if gcc supports __sync_bool_compare_and_swap" >&5-echo $ECHO_N "checking if gcc supports __sync_bool_compare_and_swap... $ECHO_C" >&6; }--cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */--int-main ()-{-- int variable = 1;- return (__sync_bool_compare_and_swap(&variable, 1, 2)- && __sync_add_and_fetch(&variable, 1)) ? 1 : 0;-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_link") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest$ac_exeext &&- $as_test_x conftest$ac_exeext; then-- { echo "$as_me:$LINENO: result: yes" >&5-echo "${ECHO_T}yes" >&6; }--cat >>confdefs.h <<\_ACEOF-#define HAVE_BUILTIN_ATOMIC 1-_ACEOF---else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--- # Retry with -march set for x86.- old_CFLAGS="$CFLAGS"- CFLAGS="$CFLAGS -march=i686"- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */--int-main ()-{-- int variable = 1;- return (__sync_bool_compare_and_swap(&variable, 1, 2)- && __sync_add_and_fetch(&variable, 1)) ? 1 : 0;-- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_link") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest$ac_exeext &&- $as_test_x conftest$ac_exeext; then-- { echo "$as_me:$LINENO: result: yes" >&5-echo "${ECHO_T}yes" >&6; }--cat >>confdefs.h <<\_ACEOF-#define HAVE_BUILTIN_ATOMIC 1-_ACEOF---else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--- { echo "$as_me:$LINENO: result: no" >&5-echo "${ECHO_T}no" >&6; }- CFLAGS="$old_CFLAGS"--fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \- conftest$ac_exeext conftest.$ac_ext--fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \- conftest$ac_exeext conftest.$ac_ext--# Checks for typedefs, structures, and compiler characteristics.-{ echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5-echo $ECHO_N "checking whether time.h and sys/time.h may both be included... $ECHO_C" >&6; }-if test "${ac_cv_header_time+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <sys/types.h>-#include <sys/time.h>-#include <time.h>--int-main ()-{-if ((struct tm *) 0)-return 0;- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- ac_cv_header_time=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_cv_header_time=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-fi-{ echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5-echo "${ECHO_T}$ac_cv_header_time" >&6; }-if test $ac_cv_header_time = yes; then--cat >>confdefs.h <<\_ACEOF-#define TIME_WITH_SYS_TIME 1-_ACEOF--fi---# Look for the timber compiler--# Checks for library functions.--for ac_header in stdlib.h-do-as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then- { echo "$as_me:$LINENO: checking for $ac_header" >&5-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then- echo $ECHO_N "(cached) $ECHO_C" >&6-fi-ac_res=`eval echo '${'$as_ac_Header'}'`- { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }-else- # Is the header compilable?-{ echo "$as_me:$LINENO: checking $ac_header usability" >&5-echo $ECHO_N "checking $ac_header usability... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-$ac_includes_default-#include <$ac_header>-_ACEOF-rm -f conftest.$ac_objext-if { (ac_try="$ac_compile"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_compile") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest.$ac_objext; then- ac_header_compiler=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_header_compiler=no-fi--rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_compiler" >&5-echo "${ECHO_T}$ac_header_compiler" >&6; }--# Is the header present?-{ echo "$as_me:$LINENO: checking $ac_header presence" >&5-echo $ECHO_N "checking $ac_header presence... $ECHO_C" >&6; }-cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#include <$ac_header>-_ACEOF-if { (ac_try="$ac_cpp conftest.$ac_ext"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } >/dev/null && {- test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||- test ! -s conftest.err- }; then- ac_header_preproc=yes-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- ac_header_preproc=no-fi--rm -f conftest.err conftest.$ac_ext-{ echo "$as_me:$LINENO: result: $ac_header_preproc" >&5-echo "${ECHO_T}$ac_header_preproc" >&6; }--# So? What about this header?-case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in- yes:no: )- { echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5-echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5-echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}- ac_header_preproc=yes- ;;- no:yes:* )- { echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5-echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5-echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5-echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5-echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5-echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}- { echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5-echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}- ( cat <<\_ASBOX-## ----------------------------------- ##-## Report this to nordland@csee.ltu.se ##-## ----------------------------------- ##-_ASBOX- ) | sed "s/^/$as_me: WARNING: /" >&2- ;;-esac-{ echo "$as_me:$LINENO: checking for $ac_header" >&5-echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6; }-if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- eval "$as_ac_Header=\$ac_header_preproc"-fi-ac_res=`eval echo '${'$as_ac_Header'}'`- { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }--fi-if test `eval echo '${'$as_ac_Header'}'` = yes; then- cat >>confdefs.h <<_ACEOF-#define `echo "HAVE_$ac_header" | $as_tr_cpp` 1-_ACEOF--fi--done--{ echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5-echo $ECHO_N "checking for GNU libc compatible malloc... $ECHO_C" >&6; }-if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- if test "$cross_compiling" = yes; then- ac_cv_func_malloc_0_nonnull=no-else- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-#if defined STDC_HEADERS || defined HAVE_STDLIB_H-# include <stdlib.h>-#else-char *malloc ();-#endif--int-main ()-{-return ! malloc (0);- ;- return 0;-}-_ACEOF-rm -f conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_link") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && { ac_try='./conftest$ac_exeext'- { (case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_try") 2>&5- ac_status=$?- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); }; }; then- ac_cv_func_malloc_0_nonnull=yes-else- echo "$as_me: program exited with status $ac_status" >&5-echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5--( exit $ac_status )-ac_cv_func_malloc_0_nonnull=no-fi-rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext-fi---fi-{ echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5-echo "${ECHO_T}$ac_cv_func_malloc_0_nonnull" >&6; }-if test $ac_cv_func_malloc_0_nonnull = yes; then--cat >>confdefs.h <<\_ACEOF-#define HAVE_MALLOC 1-_ACEOF--else- cat >>confdefs.h <<\_ACEOF-#define HAVE_MALLOC 0-_ACEOF-- case " $LIBOBJS " in- *" malloc.$ac_objext "* ) ;;- *) LIBOBJS="$LIBOBJS malloc.$ac_objext"- ;;-esac---cat >>confdefs.h <<\_ACEOF-#define malloc rpl_malloc-_ACEOF--fi-----for ac_func in gettimeofday-do-as_ac_var=`echo "ac_cv_func_$ac_func" | $as_tr_sh`-{ echo "$as_me:$LINENO: checking for $ac_func" >&5-echo $ECHO_N "checking for $ac_func... $ECHO_C" >&6; }-if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then- echo $ECHO_N "(cached) $ECHO_C" >&6-else- cat >conftest.$ac_ext <<_ACEOF-/* confdefs.h. */-_ACEOF-cat confdefs.h >>conftest.$ac_ext-cat >>conftest.$ac_ext <<_ACEOF-/* end confdefs.h. */-/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.- For example, HP-UX 11i <limits.h> declares gettimeofday. */-#define $ac_func innocuous_$ac_func--/* System header to define __stub macros and hopefully few prototypes,- which can conflict with char $ac_func (); below.- Prefer <limits.h> to <assert.h> if __STDC__ is defined, since- <limits.h> exists even on freestanding compilers. */--#ifdef __STDC__-# include <limits.h>-#else-# include <assert.h>-#endif--#undef $ac_func--/* Override any GCC internal prototype to avoid an error.- Use char because int might match the return type of a GCC- builtin and then its argument prototype would still apply. */-#ifdef __cplusplus-extern "C"-#endif-char $ac_func ();-/* The GNU C library defines this for functions which it implements- to always fail with ENOSYS. Some functions are actually named- something starting with __ and the normal name is an alias. */-#if defined __stub_$ac_func || defined __stub___$ac_func-choke me-#endif--int-main ()-{-return $ac_func ();- ;- return 0;-}-_ACEOF-rm -f conftest.$ac_objext conftest$ac_exeext-if { (ac_try="$ac_link"-case "(($ac_try" in- *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;- *) ac_try_echo=$ac_try;;-esac-eval "echo \"\$as_me:$LINENO: $ac_try_echo\"") >&5- (eval "$ac_link") 2>conftest.er1- ac_status=$?- grep -v '^ *+' conftest.er1 >conftest.err- rm -f conftest.er1- cat conftest.err >&5- echo "$as_me:$LINENO: \$? = $ac_status" >&5- (exit $ac_status); } && {- test -z "$ac_c_werror_flag" ||- test ! -s conftest.err- } && test -s conftest$ac_exeext &&- $as_test_x conftest$ac_exeext; then- eval "$as_ac_var=yes"-else- echo "$as_me: failed program was:" >&5-sed 's/^/| /' conftest.$ac_ext >&5-- eval "$as_ac_var=no"-fi--rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \- conftest$ac_exeext conftest.$ac_ext-fi-ac_res=`eval echo '${'$as_ac_var'}'`- { echo "$as_me:$LINENO: result: $ac_res" >&5-echo "${ECHO_T}$ac_res" >&6; }-if test `eval echo '${'$as_ac_var'}'` = yes; then- cat >>confdefs.h <<_ACEOF-#define `echo "HAVE_$ac_func" | $as_tr_cpp` 1-_ACEOF--fi-done-----------ac_config_files="$ac_config_files Makefile timberc.cfg"--cat >confcache <<\_ACEOF-# This file is a shell script that caches the results of configure-# tests run on this system so they can be shared between configure-# scripts and configure runs, see configure's option --config-cache.-# It is not useful on other systems. If it contains results you don't-# want to keep, you may remove or edit it.-#-# config.status only pays attention to the cache file if you give it-# the --recheck option to rerun configure.-#-# `ac_cv_env_foo' variables (set or unset) will be overridden when-# loading this file, other *unset* `ac_cv_foo' will be assigned the-# following values.--_ACEOF--# The following way of writing the cache mishandles newlines in values,-# but we know of no workaround that is simple, portable, and efficient.-# So, we kill variables containing newlines.-# Ultrix sh set writes to stderr and can't be redirected directly,-# and sets the high bit in the cache file unless we assign to the vars.-(- for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do- eval ac_val=\$$ac_var- case $ac_val in #(- *${as_nl}*)- case $ac_var in #(- *_cv_*) { echo "$as_me:$LINENO: WARNING: Cache variable $ac_var contains a newline." >&5-echo "$as_me: WARNING: Cache variable $ac_var contains a newline." >&2;} ;;- esac- case $ac_var in #(- _ | IFS | as_nl) ;; #(- *) $as_unset $ac_var ;;- esac ;;- esac- done-- (set) 2>&1 |- case $as_nl`(ac_space=' '; set) 2>&1` in #(- *${as_nl}ac_space=\ *)- # `set' does not quote correctly, so add quotes (double-quote- # substitution turns \\\\ into \\, and sed turns \\ into \).- sed -n \- "s/'/'\\\\''/g;- s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"- ;; #(- *)- # `set' quotes correctly as required by POSIX, so do not add quotes.- sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"- ;;- esac |- sort-) |- sed '- /^ac_cv_env_/b end- t clear- :clear- s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/- t end- s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/- :end' >>confcache-if diff "$cache_file" confcache >/dev/null 2>&1; then :; else- if test -w "$cache_file"; then- test "x$cache_file" != "x/dev/null" &&- { echo "$as_me:$LINENO: updating cache $cache_file" >&5-echo "$as_me: updating cache $cache_file" >&6;}- cat confcache >$cache_file- else- { echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5-echo "$as_me: not updating unwritable cache $cache_file" >&6;}- fi-fi-rm -f confcache--test "x$prefix" = xNONE && prefix=$ac_default_prefix-# Let make expand exec_prefix.-test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'--DEFS=-DHAVE_CONFIG_H--ac_libobjs=-ac_ltlibobjs=-for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue- # 1. Remove the extension, and $U if already installed.- ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'- ac_i=`echo "$ac_i" | sed "$ac_script"`- # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR- # will be set to the directory where LIBOBJS objects are built.- ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"- ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'-done-LIBOBJS=$ac_libobjs--LTLIBOBJS=$ac_ltlibobjs----: ${CONFIG_STATUS=./config.status}-ac_clean_files_save=$ac_clean_files-ac_clean_files="$ac_clean_files $CONFIG_STATUS"-{ echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5-echo "$as_me: creating $CONFIG_STATUS" >&6;}-cat >$CONFIG_STATUS <<_ACEOF-#! $SHELL-# Generated by $as_me.-# Run this file to recreate the current configuration.-# Compiler output produced by configure, useful for debugging-# configure, is in config.log if it exists.--debug=false-ac_cs_recheck=false-ac_cs_silent=false-SHELL=\${CONFIG_SHELL-$SHELL}-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF-## --------------------- ##-## M4sh Initialization. ##-## --------------------- ##--# Be more Bourne compatible-DUALCASE=1; export DUALCASE # for MKS sh-if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then- emulate sh- NULLCMD=:- # Zsh 3.x and 4.x performs word splitting on ${1+"$@"}, which- # is contrary to our usage. Disable this feature.- alias -g '${1+"$@"}'='"$@"'- setopt NO_GLOB_SUBST-else- case `(set -o) 2>/dev/null` in- *posix*) set -o posix ;;-esac--fi-----# PATH needs CR-# Avoid depending upon Character Ranges.-as_cr_letters='abcdefghijklmnopqrstuvwxyz'-as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'-as_cr_Letters=$as_cr_letters$as_cr_LETTERS-as_cr_digits='0123456789'-as_cr_alnum=$as_cr_Letters$as_cr_digits--# The user is always right.-if test "${PATH_SEPARATOR+set}" != set; then- echo "#! /bin/sh" >conf$$.sh- echo "exit 0" >>conf$$.sh- chmod +x conf$$.sh- if (PATH="/nonexistent;."; conf$$.sh) >/dev/null 2>&1; then- PATH_SEPARATOR=';'- else- PATH_SEPARATOR=:- fi- rm -f conf$$.sh-fi--# Support unset when possible.-if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then- as_unset=unset-else- as_unset=false-fi---# IFS-# We need space, tab and new line, in precisely that order. Quoting is-# there to prevent editors from complaining about space-tab.-# (If _AS_PATH_WALK were called with IFS unset, it would disable word-# splitting by setting IFS to empty value.)-as_nl='-'-IFS=" "" $as_nl"--# Find who we are. Look in the path if we contain no directory separator.-case $0 in- *[\\/]* ) as_myself=$0 ;;- *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR-for as_dir in $PATH-do- IFS=$as_save_IFS- test -z "$as_dir" && as_dir=.- test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break-done-IFS=$as_save_IFS-- ;;-esac-# We did not find ourselves, most probably we were run as `sh COMMAND'-# in which case we are not to be found in the path.-if test "x$as_myself" = x; then- as_myself=$0-fi-if test ! -f "$as_myself"; then- echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2- { (exit 1); exit 1; }-fi--# Work around bugs in pre-3.0 UWIN ksh.-for as_var in ENV MAIL MAILPATH-do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var-done-PS1='$ '-PS2='> '-PS4='+ '--# NLS nuisances.-for as_var in \- LANG LANGUAGE LC_ADDRESS LC_ALL LC_COLLATE LC_CTYPE LC_IDENTIFICATION \- LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER \- LC_TELEPHONE LC_TIME-do- if (set +x; test -z "`(eval $as_var=C; export $as_var) 2>&1`"); then- eval $as_var=C; export $as_var- else- ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var- fi-done--# Required to use basename.-if expr a : '\(a\)' >/dev/null 2>&1 &&- test "X`expr 00001 : '.*\(...\)'`" = X001; then- as_expr=expr-else- as_expr=false-fi--if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then- as_basename=basename-else- as_basename=false-fi---# Name of the executable.-as_me=`$as_basename -- "$0" ||-$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \- X"$0" : 'X\(//\)$' \| \- X"$0" : 'X\(/\)' \| . 2>/dev/null ||-echo X/"$0" |- sed '/^.*\/\([^/][^/]*\)\/*$/{- s//\1/- q- }- /^X\/\(\/\/\)$/{- s//\1/- q- }- /^X\/\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`--# CDPATH.-$as_unset CDPATH---- as_lineno_1=$LINENO- as_lineno_2=$LINENO- test "x$as_lineno_1" != "x$as_lineno_2" &&- test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {-- # Create $as_me.lineno as a copy of $as_myself, but with $LINENO- # uniformly replaced by the line number. The first 'sed' inserts a- # line-number line after each line using $LINENO; the second 'sed'- # does the real work. The second script uses 'N' to pair each- # line-number line with the line containing $LINENO, and appends- # trailing '-' during substitution so that $LINENO is not a special- # case at line end.- # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the- # scripts with optimization help from Paolo Bonzini. Blame Lee- # E. McMahon (1931-1989) for sed's syntax. :-)- sed -n '- p- /[$]LINENO/=- ' <$as_myself |- sed '- s/[$]LINENO.*/&-/- t lineno- b- :lineno- N- :loop- s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/- t loop- s/-\n.*//- ' >$as_me.lineno &&- chmod +x "$as_me.lineno" ||- { echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2- { (exit 1); exit 1; }; }-- # Don't try to exec as it changes $[0], causing all sort of problems- # (the dirname of $[0] is not the place where we might find the- # original and so on. Autoconf is especially sensitive to this).- . "./$as_me.lineno"- # Exit status is that of the last command.- exit-}---if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then- as_dirname=dirname-else- as_dirname=false-fi--ECHO_C= ECHO_N= ECHO_T=-case `echo -n x` in--n*)- case `echo 'x\c'` in- *c*) ECHO_T=' ';; # ECHO_T is single tab character.- *) ECHO_C='\c';;- esac;;-*)- ECHO_N='-n';;-esac--if expr a : '\(a\)' >/dev/null 2>&1 &&- test "X`expr 00001 : '.*\(...\)'`" = X001; then- as_expr=expr-else- as_expr=false-fi--rm -f conf$$ conf$$.exe conf$$.file-if test -d conf$$.dir; then- rm -f conf$$.dir/conf$$.file-else- rm -f conf$$.dir- mkdir conf$$.dir-fi-echo >conf$$.file-if ln -s conf$$.file conf$$ 2>/dev/null; then- as_ln_s='ln -s'- # ... but there are two gotchas:- # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.- # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.- # In both cases, we have to default to `cp -p'.- ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||- as_ln_s='cp -p'-elif ln conf$$.file conf$$ 2>/dev/null; then- as_ln_s=ln-else- as_ln_s='cp -p'-fi-rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file-rmdir conf$$.dir 2>/dev/null--if mkdir -p . 2>/dev/null; then- as_mkdir_p=:-else- test -d ./-p && rmdir ./-p- as_mkdir_p=false-fi--if test -x / >/dev/null 2>&1; then- as_test_x='test -x'-else- if ls -dL / >/dev/null 2>&1; then- as_ls_L_option=L- else- as_ls_L_option=- fi- as_test_x='- eval sh -c '\''- if test -d "$1"; then- test -d "$1/.";- else- case $1 in- -*)set "./$1";;- esac;- case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in- ???[sx]*):;;*)false;;esac;fi- '\'' sh- '-fi-as_executable_p=$as_test_x--# Sed expression to map a string onto a valid CPP name.-as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"--# Sed expression to map a string onto a valid variable name.-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"---exec 6>&1--# Save the log message, to keep $[0] and so on meaningful, and to-# report actual input values of CONFIG_FILES etc. instead of their-# values after options handling.-ac_log="-This file was extended by rtsPOSIX $as_me 0.9.9, which was-generated by GNU Autoconf 2.61. Invocation command line was-- CONFIG_FILES = $CONFIG_FILES- CONFIG_HEADERS = $CONFIG_HEADERS- CONFIG_LINKS = $CONFIG_LINKS- CONFIG_COMMANDS = $CONFIG_COMMANDS- $ $0 $@--on `(hostname || uname -n) 2>/dev/null | sed 1q`-"--_ACEOF--cat >>$CONFIG_STATUS <<_ACEOF-# Files that config.status was made for.-config_files="$ac_config_files"-config_headers="$ac_config_headers"--_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF-ac_cs_usage="\-\`$as_me' instantiates files from templates according to the-current configuration.--Usage: $0 [OPTIONS] [FILE]...-- -h, --help print this help, then exit- -V, --version print version number and configuration settings, then exit- -q, --quiet do not print progress messages- -d, --debug don't remove temporary files- --recheck update $as_me by reconfiguring in the same conditions- --file=FILE[:TEMPLATE]- instantiate the configuration file FILE- --header=FILE[:TEMPLATE]- instantiate the configuration header FILE--Configuration files:-$config_files--Configuration headers:-$config_headers--Report bugs to <bug-autoconf@gnu.org>."--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF-ac_cs_version="\\-rtsPOSIX config.status 0.9.9-configured by $0, generated by GNU Autoconf 2.61,- with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"--Copyright (C) 2006 Free Software Foundation, Inc.-This config.status script is free software; the Free Software Foundation-gives unlimited permission to copy, distribute and modify it."--ac_pwd='$ac_pwd'-srcdir='$srcdir'-INSTALL='$INSTALL'-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF-# If no file are specified by the user, then we need to provide default-# value. By we need to know if files were specified by the user.-ac_need_defaults=:-while test $# != 0-do- case $1 in- --*=*)- ac_option=`expr "X$1" : 'X\([^=]*\)='`- ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`- ac_shift=:- ;;- *)- ac_option=$1- ac_optarg=$2- ac_shift=shift- ;;- esac-- case $ac_option in- # Handling of the options.- -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)- ac_cs_recheck=: ;;- --version | --versio | --versi | --vers | --ver | --ve | --v | -V )- echo "$ac_cs_version"; exit ;;- --debug | --debu | --deb | --de | --d | -d )- debug=: ;;- --file | --fil | --fi | --f )- $ac_shift- CONFIG_FILES="$CONFIG_FILES $ac_optarg"- ac_need_defaults=false;;- --header | --heade | --head | --hea )- $ac_shift- CONFIG_HEADERS="$CONFIG_HEADERS $ac_optarg"- ac_need_defaults=false;;- --he | --h)- # Conflict between --help and --header- { echo "$as_me: error: ambiguous option: $1-Try \`$0 --help' for more information." >&2- { (exit 1); exit 1; }; };;- --help | --hel | -h )- echo "$ac_cs_usage"; exit ;;- -q | -quiet | --quiet | --quie | --qui | --qu | --q \- | -silent | --silent | --silen | --sile | --sil | --si | --s)- ac_cs_silent=: ;;-- # This is an error.- -*) { echo "$as_me: error: unrecognized option: $1-Try \`$0 --help' for more information." >&2- { (exit 1); exit 1; }; } ;;-- *) ac_config_targets="$ac_config_targets $1"- ac_need_defaults=false ;;-- esac- shift-done--ac_configure_extra_args=--if $ac_cs_silent; then- exec 6>/dev/null- ac_configure_extra_args="$ac_configure_extra_args --silent"-fi--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF-if \$ac_cs_recheck; then- echo "running CONFIG_SHELL=$SHELL $SHELL $0 "$ac_configure_args \$ac_configure_extra_args " --no-create --no-recursion" >&6- CONFIG_SHELL=$SHELL- export CONFIG_SHELL- exec $SHELL "$0"$ac_configure_args \$ac_configure_extra_args --no-create --no-recursion-fi--_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF-exec 5>>config.log-{- echo- sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX-## Running $as_me. ##-_ASBOX- echo "$ac_log"-} >&5--_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF--# Handling of arguments.-for ac_config_target in $ac_config_targets-do- case $ac_config_target in- "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;- "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;- "timberc.cfg") CONFIG_FILES="$CONFIG_FILES timberc.cfg" ;;-- *) { { echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5-echo "$as_me: error: invalid argument: $ac_config_target" >&2;}- { (exit 1); exit 1; }; };;- esac-done---# If the user did not use the arguments to specify the items to instantiate,-# then the envvar interface is used. Set only those that are not.-# We use the long form for the default assignment because of an extremely-# bizarre bug on SunOS 4.1.3.-if $ac_need_defaults; then- test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files- test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers-fi--# Have a temporary directory for convenience. Make it in the build tree-# simply because there is no reason against having it here, and in addition,-# creating and moving files from /tmp can sometimes cause problems.-# Hook for its removal unless debugging.-# Note that there is a small window in which the directory will not be cleaned:-# after its creation but before its name has been assigned to `$tmp'.-$debug ||-{- tmp=- trap 'exit_status=$?- { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status-' 0- trap '{ (exit 1); exit 1; }' 1 2 13 15-}-# Create a (secure) tmp directory for tmp files.--{- tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&- test -n "$tmp" && test -d "$tmp"-} ||-{- tmp=./conf$$-$RANDOM- (umask 077 && mkdir "$tmp")-} ||-{- echo "$me: cannot create a temporary directory in ." >&2- { (exit 1); exit 1; }-}--#-# Set up the sed scripts for CONFIG_FILES section.-#--# No need to generate the scripts if there are no CONFIG_FILES.-# This happens for instance when ./config.status config.h-if test -n "$CONFIG_FILES"; then--_ACEOF----ac_delim='%!_!# '-for ac_last_try in false false false false false :; do- cat >conf$$subs.sed <<_ACEOF-SHELL!$SHELL$ac_delim-PATH_SEPARATOR!$PATH_SEPARATOR$ac_delim-PACKAGE_NAME!$PACKAGE_NAME$ac_delim-PACKAGE_TARNAME!$PACKAGE_TARNAME$ac_delim-PACKAGE_VERSION!$PACKAGE_VERSION$ac_delim-PACKAGE_STRING!$PACKAGE_STRING$ac_delim-PACKAGE_BUGREPORT!$PACKAGE_BUGREPORT$ac_delim-exec_prefix!$exec_prefix$ac_delim-prefix!$prefix$ac_delim-program_transform_name!$program_transform_name$ac_delim-bindir!$bindir$ac_delim-sbindir!$sbindir$ac_delim-libexecdir!$libexecdir$ac_delim-datarootdir!$datarootdir$ac_delim-datadir!$datadir$ac_delim-sysconfdir!$sysconfdir$ac_delim-sharedstatedir!$sharedstatedir$ac_delim-localstatedir!$localstatedir$ac_delim-includedir!$includedir$ac_delim-oldincludedir!$oldincludedir$ac_delim-docdir!$docdir$ac_delim-infodir!$infodir$ac_delim-htmldir!$htmldir$ac_delim-dvidir!$dvidir$ac_delim-pdfdir!$pdfdir$ac_delim-psdir!$psdir$ac_delim-libdir!$libdir$ac_delim-localedir!$localedir$ac_delim-mandir!$mandir$ac_delim-DEFS!$DEFS$ac_delim-ECHO_C!$ECHO_C$ac_delim-ECHO_N!$ECHO_N$ac_delim-ECHO_T!$ECHO_T$ac_delim-LIBS!$LIBS$ac_delim-build_alias!$build_alias$ac_delim-host_alias!$host_alias$ac_delim-target_alias!$target_alias$ac_delim-CC!$CC$ac_delim-CFLAGS!$CFLAGS$ac_delim-LDFLAGS!$LDFLAGS$ac_delim-CPPFLAGS!$CPPFLAGS$ac_delim-ac_ct_CC!$ac_ct_CC$ac_delim-EXEEXT!$EXEEXT$ac_delim-OBJEXT!$OBJEXT$ac_delim-INSTALL_PROGRAM!$INSTALL_PROGRAM$ac_delim-INSTALL_SCRIPT!$INSTALL_SCRIPT$ac_delim-INSTALL_DATA!$INSTALL_DATA$ac_delim-build!$build$ac_delim-build_cpu!$build_cpu$ac_delim-build_vendor!$build_vendor$ac_delim-build_os!$build_os$ac_delim-host!$host$ac_delim-host_cpu!$host_cpu$ac_delim-host_vendor!$host_vendor$ac_delim-host_os!$host_os$ac_delim-acx_pthread_config!$acx_pthread_config$ac_delim-PTHREAD_CC!$PTHREAD_CC$ac_delim-PTHREAD_LIBS!$PTHREAD_LIBS$ac_delim-PTHREAD_CFLAGS!$PTHREAD_CFLAGS$ac_delim-TIMBERC!$TIMBERC$ac_delim-CPP!$CPP$ac_delim-GREP!$GREP$ac_delim-EGREP!$EGREP$ac_delim-LIBOBJS!$LIBOBJS$ac_delim-SRC!$SRC$ac_delim-DEST!$DEST$ac_delim-LTLIBOBJS!$LTLIBOBJS$ac_delim-_ACEOF-- if test `sed -n "s/.*$ac_delim\$/X/p" conf$$subs.sed | grep -c X` = 67; then- break- elif $ac_last_try; then- { { echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5-echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}- { (exit 1); exit 1; }; }- else- ac_delim="$ac_delim!$ac_delim _$ac_delim!! "- fi-done--ac_eof=`sed -n '/^CEOF[0-9]*$/s/CEOF/0/p' conf$$subs.sed`-if test -n "$ac_eof"; then- ac_eof=`echo "$ac_eof" | sort -nru | sed 1q`- ac_eof=`expr $ac_eof + 1`-fi--cat >>$CONFIG_STATUS <<_ACEOF-cat >"\$tmp/subs-1.sed" <<\CEOF$ac_eof-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b end-_ACEOF-sed '-s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g-s/^/s,@/; s/!/@,|#_!!_#|/-:n-t n-s/'"$ac_delim"'$/,g/; t-s/$/\\/; p-N; s/^.*\n//; s/[,\\&]/\\&/g; s/@/@|#_!!_#|/g; b n-' >>$CONFIG_STATUS <conf$$subs.sed-rm -f conf$$subs.sed-cat >>$CONFIG_STATUS <<_ACEOF-:end-s/|#_!!_#|//g-CEOF$ac_eof-_ACEOF---# VPATH may cause trouble with some makes, so we remove $(srcdir),-# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and-# trailing colons and then remove the whole line if VPATH becomes empty-# (actually we leave an empty line to preserve line numbers).-if test "x$srcdir" = x.; then- ac_vpsub='/^[ ]*VPATH[ ]*=/{-s/:*\$(srcdir):*/:/-s/:*\${srcdir}:*/:/-s/:*@srcdir@:*/:/-s/^\([^=]*=[ ]*\):*/\1/-s/:*$//-s/^[^=]*=[ ]*$//-}'-fi--cat >>$CONFIG_STATUS <<\_ACEOF-fi # test -n "$CONFIG_FILES"---for ac_tag in :F $CONFIG_FILES :H $CONFIG_HEADERS-do- case $ac_tag in- :[FHLC]) ac_mode=$ac_tag; continue;;- esac- case $ac_mode$ac_tag in- :[FHL]*:*);;- :L* | :C*:*) { { echo "$as_me:$LINENO: error: Invalid tag $ac_tag." >&5-echo "$as_me: error: Invalid tag $ac_tag." >&2;}- { (exit 1); exit 1; }; };;- :[FH]-) ac_tag=-:-;;- :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;- esac- ac_save_IFS=$IFS- IFS=:- set x $ac_tag- IFS=$ac_save_IFS- shift- ac_file=$1- shift-- case $ac_mode in- :L) ac_source=$1;;- :[FH])- ac_file_inputs=- for ac_f- do- case $ac_f in- -) ac_f="$tmp/stdin";;- *) # Look for the file first in the build tree, then in the source tree- # (if the path is not absolute). The absolute path cannot be DOS-style,- # because $ac_f cannot contain `:'.- test -f "$ac_f" ||- case $ac_f in- [\\/$]*) false;;- *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;- esac ||- { { echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5-echo "$as_me: error: cannot find input file: $ac_f" >&2;}- { (exit 1); exit 1; }; };;- esac- ac_file_inputs="$ac_file_inputs $ac_f"- done-- # Let's still pretend it is `configure' which instantiates (i.e., don't- # use $as_me), people would be surprised to read:- # /* config.h. Generated by config.status. */- configure_input="Generated from "`IFS=:- echo $* | sed 's|^[^:]*/||;s|:[^:]*/|, |g'`" by configure."- if test x"$ac_file" != x-; then- configure_input="$ac_file. $configure_input"- { echo "$as_me:$LINENO: creating $ac_file" >&5-echo "$as_me: creating $ac_file" >&6;}- fi-- case $ac_tag in- *:-:* | *:-) cat >"$tmp/stdin";;- esac- ;;- esac-- ac_dir=`$as_dirname -- "$ac_file" ||-$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \- X"$ac_file" : 'X\(//\)[^/]' \| \- X"$ac_file" : 'X\(//\)$' \| \- X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||-echo X"$ac_file" |- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{- s//\1/- q- }- /^X\(\/\/\)[^/].*/{- s//\1/- q- }- /^X\(\/\/\)$/{- s//\1/- q- }- /^X\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`- { as_dir="$ac_dir"- case $as_dir in #(- -*) as_dir=./$as_dir;;- esac- test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {- as_dirs=- while :; do- case $as_dir in #(- *\'*) as_qdir=`echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #(- *) as_qdir=$as_dir;;- esac- as_dirs="'$as_qdir' $as_dirs"- as_dir=`$as_dirname -- "$as_dir" ||-$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \- X"$as_dir" : 'X\(//\)[^/]' \| \- X"$as_dir" : 'X\(//\)$' \| \- X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||-echo X"$as_dir" |- sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{- s//\1/- q- }- /^X\(\/\/\)[^/].*/{- s//\1/- q- }- /^X\(\/\/\)$/{- s//\1/- q- }- /^X\(\/\).*/{- s//\1/- q- }- s/.*/./; q'`- test -d "$as_dir" && break- done- test -z "$as_dirs" || eval "mkdir $as_dirs"- } || test -d "$as_dir" || { { echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5-echo "$as_me: error: cannot create directory $as_dir" >&2;}- { (exit 1); exit 1; }; }; }- ac_builddir=.--case "$ac_dir" in-.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;-*)- ac_dir_suffix=/`echo "$ac_dir" | sed 's,^\.[\\/],,'`- # A ".." for each directory in $ac_dir_suffix.- ac_top_builddir_sub=`echo "$ac_dir_suffix" | sed 's,/[^\\/]*,/..,g;s,/,,'`- case $ac_top_builddir_sub in- "") ac_top_builddir_sub=. ac_top_build_prefix= ;;- *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;- esac ;;-esac-ac_abs_top_builddir=$ac_pwd-ac_abs_builddir=$ac_pwd$ac_dir_suffix-# for backward compatibility:-ac_top_builddir=$ac_top_build_prefix--case $srcdir in- .) # We are building in place.- ac_srcdir=.- ac_top_srcdir=$ac_top_builddir_sub- ac_abs_top_srcdir=$ac_pwd ;;- [\\/]* | ?:[\\/]* ) # Absolute name.- ac_srcdir=$srcdir$ac_dir_suffix;- ac_top_srcdir=$srcdir- ac_abs_top_srcdir=$srcdir ;;- *) # Relative name.- ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix- ac_top_srcdir=$ac_top_build_prefix$srcdir- ac_abs_top_srcdir=$ac_pwd/$srcdir ;;-esac-ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix--- case $ac_mode in- :F)- #- # CONFIG_FILE- #-- case $INSTALL in- [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;- *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;- esac-_ACEOF--cat >>$CONFIG_STATUS <<\_ACEOF-# If the template does not know about datarootdir, expand it.-# FIXME: This hack should be removed a few years after 2.60.-ac_datarootdir_hack=; ac_datarootdir_seen=--case `sed -n '/datarootdir/ {- p- q-}-/@datadir@/p-/@docdir@/p-/@infodir@/p-/@localedir@/p-/@mandir@/p-' $ac_file_inputs` in-*datarootdir*) ac_datarootdir_seen=yes;;-*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)- { echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5-echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}-_ACEOF-cat >>$CONFIG_STATUS <<_ACEOF- ac_datarootdir_hack='- s&@datadir@&$datadir&g- s&@docdir@&$docdir&g- s&@infodir@&$infodir&g- s&@localedir@&$localedir&g- s&@mandir@&$mandir&g- s&\\\${datarootdir}&$datarootdir&g' ;;-esac-_ACEOF--# Neutralize VPATH when `$srcdir' = `.'.-# Shell code in configure.ac might set extrasub.-# FIXME: do we really want to maintain this feature?-cat >>$CONFIG_STATUS <<_ACEOF- sed "$ac_vpsub-$extrasub-_ACEOF-cat >>$CONFIG_STATUS <<\_ACEOF-:t-/@[a-zA-Z_][a-zA-Z_0-9]*@/!b-s&@configure_input@&$configure_input&;t t-s&@top_builddir@&$ac_top_builddir_sub&;t t-s&@srcdir@&$ac_srcdir&;t t-s&@abs_srcdir@&$ac_abs_srcdir&;t t-s&@top_srcdir@&$ac_top_srcdir&;t t-s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t-s&@builddir@&$ac_builddir&;t t-s&@abs_builddir@&$ac_abs_builddir&;t t-s&@abs_top_builddir@&$ac_abs_top_builddir&;t t-s&@INSTALL@&$ac_INSTALL&;t t-$ac_datarootdir_hack-" $ac_file_inputs | sed -f "$tmp/subs-1.sed" >$tmp/out--test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&- { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&- { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&- { echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'-which seems to be undefined. Please make sure it is defined." >&5-echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'-which seems to be undefined. Please make sure it is defined." >&2;}-- rm -f "$tmp/stdin"- case $ac_file in- -) cat "$tmp/out"; rm -f "$tmp/out";;- *) rm -f "$ac_file"; mv "$tmp/out" $ac_file;;- esac- ;;- :H)- #- # CONFIG_HEADER- #-_ACEOF--# Transform confdefs.h into a sed script `conftest.defines', that-# substitutes the proper values into config.h.in to produce config.h.-rm -f conftest.defines conftest.tail-# First, append a space to every undef/define line, to ease matching.-echo 's/$/ /' >conftest.defines-# Then, protect against being on the right side of a sed subst, or in-# an unquoted here document, in config.status. If some macros were-# called several times there might be several #defines for the same-# symbol, which is useless. But do not sort them, since the last-# AC_DEFINE must be honored.-ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*-# These sed commands are passed to sed as "A NAME B PARAMS C VALUE D", where-# NAME is the cpp macro being defined, VALUE is the value it is being given.-# PARAMS is the parameter list in the macro definition--in most cases, it's-# just an empty string.-ac_dA='s,^\\([ #]*\\)[^ ]*\\([ ]*'-ac_dB='\\)[ (].*,\\1define\\2'-ac_dC=' '-ac_dD=' ,'--uniq confdefs.h |- sed -n '- t rset- :rset- s/^[ ]*#[ ]*define[ ][ ]*//- t ok- d- :ok- s/[\\&,]/\\&/g- s/^\('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/ '"$ac_dA"'\1'"$ac_dB"'\2'"${ac_dC}"'\3'"$ac_dD"'/p- s/^\('"$ac_word_re"'\)[ ]*\(.*\)/'"$ac_dA"'\1'"$ac_dB$ac_dC"'\2'"$ac_dD"'/p- ' >>conftest.defines--# Remove the space that was appended to ease matching.-# Then replace #undef with comments. This is necessary, for-# example, in the case of _POSIX_SOURCE, which is predefined and required-# on some systems where configure will not decide to define it.-# (The regexp can be short, since the line contains either #define or #undef.)-echo 's/ $//-s,^[ #]*u.*,/* & */,' >>conftest.defines--# Break up conftest.defines:-ac_max_sed_lines=50--# First sed command is: sed -f defines.sed $ac_file_inputs >"$tmp/out1"-# Second one is: sed -f defines.sed "$tmp/out1" >"$tmp/out2"-# Third one will be: sed -f defines.sed "$tmp/out2" >"$tmp/out1"-# et cetera.-ac_in='$ac_file_inputs'-ac_out='"$tmp/out1"'-ac_nxt='"$tmp/out2"'--while :-do- # Write a here document:- cat >>$CONFIG_STATUS <<_ACEOF- # First, check the format of the line:- cat >"\$tmp/defines.sed" <<\\CEOF-/^[ ]*#[ ]*undef[ ][ ]*$ac_word_re[ ]*\$/b def-/^[ ]*#[ ]*define[ ][ ]*$ac_word_re[( ]/b def-b-:def-_ACEOF- sed ${ac_max_sed_lines}q conftest.defines >>$CONFIG_STATUS- echo 'CEOF- sed -f "$tmp/defines.sed"' "$ac_in >$ac_out" >>$CONFIG_STATUS- ac_in=$ac_out; ac_out=$ac_nxt; ac_nxt=$ac_in- sed 1,${ac_max_sed_lines}d conftest.defines >conftest.tail- grep . conftest.tail >/dev/null || break- rm -f conftest.defines- mv conftest.tail conftest.defines-done-rm -f conftest.defines conftest.tail--echo "ac_result=$ac_in" >>$CONFIG_STATUS-cat >>$CONFIG_STATUS <<\_ACEOF- if test x"$ac_file" != x-; then- echo "/* $configure_input */" >"$tmp/config.h"- cat "$ac_result" >>"$tmp/config.h"- if diff $ac_file "$tmp/config.h" >/dev/null 2>&1; then- { echo "$as_me:$LINENO: $ac_file is unchanged" >&5-echo "$as_me: $ac_file is unchanged" >&6;}- else- rm -f $ac_file- mv "$tmp/config.h" $ac_file- fi- else- echo "/* $configure_input */"- cat "$ac_result"- fi- rm -f "$tmp/out12"- ;;--- esac--done # for ac_tag---{ (exit 0); exit 0; }-_ACEOF-chmod +x $CONFIG_STATUS-ac_clean_files=$ac_clean_files_save---# configure is writing to config.log, and then calls config.status.-# config.status does its own redirection, appending to config.log.-# Unfortunately, on DOS this fails, as config.log is still kept open-# by configure, so config.status won't be able to write to it; its-# output is simply discarded. So we exec the FD to /dev/null,-# effectively closing config.log, so it can be properly (re)opened and-# appended to by config.status. When coming back to configure, we-# need to make the FD available again.-if test "$no_create" != yes; then- ac_cs_success=:- ac_config_status_args=- test "$silent" = yes &&- ac_config_status_args="$ac_config_status_args --quiet"- exec 5>/dev/null- $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false- exec 5>>config.log- # Use ||, not &&, to avoid exiting from the if with $? = 1, which- # would make configure fail if this is the last instruction.- $ac_cs_success || { (exit 1); exit 1; }+# Generated by GNU Autoconf 2.63 for rtsPOSIX 0.9.9.+#+# Report bugs to <nordland@csee.ltu.se>.+#+# Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,+# 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.+# This configure script is free software; the Free Software Foundation+# gives unlimited permission to copy, distribute and modify it.+## --------------------- ##+## M4sh Initialization. ##+## --------------------- ##++# Be more Bourne compatible+DUALCASE=1; export DUALCASE # for MKS sh+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then+ emulate sh+ NULLCMD=:+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which+ # is contrary to our usage. Disable this feature.+ alias -g '${1+"$@"}'='"$@"'+ setopt NO_GLOB_SUBST+else+ case `(set -o) 2>/dev/null` in+ *posix*) set -o posix ;;+esac++fi+++++# PATH needs CR+# Avoid depending upon Character Ranges.+as_cr_letters='abcdefghijklmnopqrstuvwxyz'+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'+as_cr_Letters=$as_cr_letters$as_cr_LETTERS+as_cr_digits='0123456789'+as_cr_alnum=$as_cr_Letters$as_cr_digits++as_nl='+'+export as_nl+# Printing a long string crashes Solaris 7 /usr/bin/printf.+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then+ as_echo='printf %s\n'+ as_echo_n='printf %s'+else+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'+ as_echo_n='/usr/ucb/echo -n'+ else+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'+ as_echo_n_body='eval+ arg=$1;+ case $arg in+ *"$as_nl"*)+ expr "X$arg" : "X\\(.*\\)$as_nl";+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;+ esac;+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"+ '+ export as_echo_n_body+ as_echo_n='sh -c $as_echo_n_body as_echo'+ fi+ export as_echo_body+ as_echo='sh -c $as_echo_body as_echo'+fi++# The user is always right.+if test "${PATH_SEPARATOR+set}" != set; then+ PATH_SEPARATOR=:+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||+ PATH_SEPARATOR=';'+ }+fi++# Support unset when possible.+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then+ as_unset=unset+else+ as_unset=false+fi+++# IFS+# We need space, tab and new line, in precisely that order. Quoting is+# there to prevent editors from complaining about space-tab.+# (If _AS_PATH_WALK were called with IFS unset, it would disable word+# splitting by setting IFS to empty value.)+IFS=" "" $as_nl"++# Find who we are. Look in the path if we contain no directory separator.+case $0 in+ *[\\/]* ) as_myself=$0 ;;+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break+done+IFS=$as_save_IFS++ ;;+esac+# We did not find ourselves, most probably we were run as `sh COMMAND'+# in which case we are not to be found in the path.+if test "x$as_myself" = x; then+ as_myself=$0+fi+if test ! -f "$as_myself"; then+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2+ { (exit 1); exit 1; }+fi++# Work around bugs in pre-3.0 UWIN ksh.+for as_var in ENV MAIL MAILPATH+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var+done+PS1='$ '+PS2='> '+PS4='+ '++# NLS nuisances.+LC_ALL=C+export LC_ALL+LANGUAGE=C+export LANGUAGE++# Required to use basename.+if expr a : '\(a\)' >/dev/null 2>&1 &&+ test "X`expr 00001 : '.*\(...\)'`" = X001; then+ as_expr=expr+else+ as_expr=false+fi++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then+ as_basename=basename+else+ as_basename=false+fi+++# Name of the executable.+as_me=`$as_basename -- "$0" ||+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \+ X"$0" : 'X\(//\)$' \| \+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X/"$0" |+ sed '/^.*\/\([^/][^/]*\)\/*$/{+ s//\1/+ q+ }+ /^X\/\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\/\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`++# CDPATH.+$as_unset CDPATH+++if test "x$CONFIG_SHELL" = x; then+ if (eval ":") 2>/dev/null; then+ as_have_required=yes+else+ as_have_required=no+fi++ if test $as_have_required = yes && (eval ":+(as_func_return () {+ (exit \$1)+}+as_func_success () {+ as_func_return 0+}+as_func_failure () {+ as_func_return 1+}+as_func_ret_success () {+ return 0+}+as_func_ret_failure () {+ return 1+}++exitcode=0+if as_func_success; then+ :+else+ exitcode=1+ echo as_func_success failed.+fi++if as_func_failure; then+ exitcode=1+ echo as_func_failure succeeded.+fi++if as_func_ret_success; then+ :+else+ exitcode=1+ echo as_func_ret_success failed.+fi++if as_func_ret_failure; then+ exitcode=1+ echo as_func_ret_failure succeeded.+fi++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then+ :+else+ exitcode=1+ echo positional parameters were not saved.+fi++test \$exitcode = 0) || { (exit 1); exit 1; }++(+ as_lineno_1=\$LINENO+ as_lineno_2=\$LINENO+ test \"x\$as_lineno_1\" != \"x\$as_lineno_2\" &&+ test \"x\`expr \$as_lineno_1 + 1\`\" = \"x\$as_lineno_2\") || { (exit 1); exit 1; }+") 2> /dev/null; then+ :+else+ as_candidate_shells=+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ case $as_dir in+ /*)+ for as_base in sh bash ksh sh5; do+ as_candidate_shells="$as_candidate_shells $as_dir/$as_base"+ done;;+ esac+done+IFS=$as_save_IFS+++ for as_shell in $as_candidate_shells $SHELL; do+ # Try only shells that exist, to save several forks.+ if { test -f "$as_shell" || test -f "$as_shell.exe"; } &&+ { ("$as_shell") 2> /dev/null <<\_ASEOF+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then+ emulate sh+ NULLCMD=:+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which+ # is contrary to our usage. Disable this feature.+ alias -g '${1+"$@"}'='"$@"'+ setopt NO_GLOB_SUBST+else+ case `(set -o) 2>/dev/null` in+ *posix*) set -o posix ;;+esac++fi+++:+_ASEOF+}; then+ CONFIG_SHELL=$as_shell+ as_have_required=yes+ if { "$as_shell" 2> /dev/null <<\_ASEOF+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then+ emulate sh+ NULLCMD=:+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which+ # is contrary to our usage. Disable this feature.+ alias -g '${1+"$@"}'='"$@"'+ setopt NO_GLOB_SUBST+else+ case `(set -o) 2>/dev/null` in+ *posix*) set -o posix ;;+esac++fi+++:+(as_func_return () {+ (exit $1)+}+as_func_success () {+ as_func_return 0+}+as_func_failure () {+ as_func_return 1+}+as_func_ret_success () {+ return 0+}+as_func_ret_failure () {+ return 1+}++exitcode=0+if as_func_success; then+ :+else+ exitcode=1+ echo as_func_success failed.+fi++if as_func_failure; then+ exitcode=1+ echo as_func_failure succeeded.+fi++if as_func_ret_success; then+ :+else+ exitcode=1+ echo as_func_ret_success failed.+fi++if as_func_ret_failure; then+ exitcode=1+ echo as_func_ret_failure succeeded.+fi++if ( set x; as_func_ret_success y && test x = "$1" ); then+ :+else+ exitcode=1+ echo positional parameters were not saved.+fi++test $exitcode = 0) || { (exit 1); exit 1; }++(+ as_lineno_1=$LINENO+ as_lineno_2=$LINENO+ test "x$as_lineno_1" != "x$as_lineno_2" &&+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2") || { (exit 1); exit 1; }++_ASEOF+}; then+ break+fi++fi++ done++ if test "x$CONFIG_SHELL" != x; then+ for as_var in BASH_ENV ENV+ do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var+ done+ export CONFIG_SHELL+ exec "$CONFIG_SHELL" "$as_myself" ${1+"$@"}+fi+++ if test $as_have_required = no; then+ echo This script requires a shell more modern than all the+ echo shells that I found on your system. Please install a+ echo modern shell, or manually run the script under such a+ echo shell if you do have one.+ { (exit 1); exit 1; }+fi+++fi++fi++++(eval "as_func_return () {+ (exit \$1)+}+as_func_success () {+ as_func_return 0+}+as_func_failure () {+ as_func_return 1+}+as_func_ret_success () {+ return 0+}+as_func_ret_failure () {+ return 1+}++exitcode=0+if as_func_success; then+ :+else+ exitcode=1+ echo as_func_success failed.+fi++if as_func_failure; then+ exitcode=1+ echo as_func_failure succeeded.+fi++if as_func_ret_success; then+ :+else+ exitcode=1+ echo as_func_ret_success failed.+fi++if as_func_ret_failure; then+ exitcode=1+ echo as_func_ret_failure succeeded.+fi++if ( set x; as_func_ret_success y && test x = \"\$1\" ); then+ :+else+ exitcode=1+ echo positional parameters were not saved.+fi++test \$exitcode = 0") || {+ echo No shell found that supports shell functions.+ echo Please tell bug-autoconf@gnu.org about your system,+ echo including any error possibly output before this message.+ echo This can help us improve future autoconf versions.+ echo Configuration will now proceed without shell functions.+}++++ as_lineno_1=$LINENO+ as_lineno_2=$LINENO+ test "x$as_lineno_1" != "x$as_lineno_2" &&+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO+ # uniformly replaced by the line number. The first 'sed' inserts a+ # line-number line after each line using $LINENO; the second 'sed'+ # does the real work. The second script uses 'N' to pair each+ # line-number line with the line containing $LINENO, and appends+ # trailing '-' during substitution so that $LINENO is not a special+ # case at line end.+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the+ # scripts with optimization help from Paolo Bonzini. Blame Lee+ # E. McMahon (1931-1989) for sed's syntax. :-)+ sed -n '+ p+ /[$]LINENO/=+ ' <$as_myself |+ sed '+ s/[$]LINENO.*/&-/+ t lineno+ b+ :lineno+ N+ :loop+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/+ t loop+ s/-\n.*//+ ' >$as_me.lineno &&+ chmod +x "$as_me.lineno" ||+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2+ { (exit 1); exit 1; }; }++ # Don't try to exec as it changes $[0], causing all sort of problems+ # (the dirname of $[0] is not the place where we might find the+ # original and so on. Autoconf is especially sensitive to this).+ . "./$as_me.lineno"+ # Exit status is that of the last command.+ exit+}+++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then+ as_dirname=dirname+else+ as_dirname=false+fi++ECHO_C= ECHO_N= ECHO_T=+case `echo -n x` in+-n*)+ case `echo 'x\c'` in+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.+ *) ECHO_C='\c';;+ esac;;+*)+ ECHO_N='-n';;+esac+if expr a : '\(a\)' >/dev/null 2>&1 &&+ test "X`expr 00001 : '.*\(...\)'`" = X001; then+ as_expr=expr+else+ as_expr=false+fi++rm -f conf$$ conf$$.exe conf$$.file+if test -d conf$$.dir; then+ rm -f conf$$.dir/conf$$.file+else+ rm -f conf$$.dir+ mkdir conf$$.dir 2>/dev/null+fi+if (echo >conf$$.file) 2>/dev/null; then+ if ln -s conf$$.file conf$$ 2>/dev/null; then+ as_ln_s='ln -s'+ # ... but there are two gotchas:+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.+ # In both cases, we have to default to `cp -p'.+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||+ as_ln_s='cp -p'+ elif ln conf$$.file conf$$ 2>/dev/null; then+ as_ln_s=ln+ else+ as_ln_s='cp -p'+ fi+else+ as_ln_s='cp -p'+fi+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file+rmdir conf$$.dir 2>/dev/null++if mkdir -p . 2>/dev/null; then+ as_mkdir_p=:+else+ test -d ./-p && rmdir ./-p+ as_mkdir_p=false+fi++if test -x / >/dev/null 2>&1; then+ as_test_x='test -x'+else+ if ls -dL / >/dev/null 2>&1; then+ as_ls_L_option=L+ else+ as_ls_L_option=+ fi+ as_test_x='+ eval sh -c '\''+ if test -d "$1"; then+ test -d "$1/.";+ else+ case $1 in+ -*)set "./$1";;+ esac;+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in+ ???[sx]*):;;*)false;;esac;fi+ '\'' sh+ '+fi+as_executable_p=$as_test_x++# Sed expression to map a string onto a valid CPP name.+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"++# Sed expression to map a string onto a valid variable name.+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"++++exec 7<&0 </dev/null 6>&1++# Name of the host.+# hostname on some systems (SVR3.2, Linux) returns a bogus exit status,+# so uname gets run too.+ac_hostname=`(hostname || uname -n) 2>/dev/null | sed 1q`++#+# Initializations.+#+ac_default_prefix=/usr/local+ac_clean_files=+ac_config_libobj_dir=.+LIBOBJS=+cross_compiling=no+subdirs=+MFLAGS=+MAKEFLAGS=+SHELL=${CONFIG_SHELL-/bin/sh}++# Identity of this package.+PACKAGE_NAME='rtsPOSIX'+PACKAGE_TARNAME='rtsposix'+PACKAGE_VERSION='0.9.9'+PACKAGE_STRING='rtsPOSIX 0.9.9'+PACKAGE_BUGREPORT='nordland@csee.ltu.se'++ac_unique_file="main.c"+# Factoring default headers for most tests.+ac_includes_default="\+#include <stdio.h>+#ifdef HAVE_SYS_TYPES_H+# include <sys/types.h>+#endif+#ifdef HAVE_SYS_STAT_H+# include <sys/stat.h>+#endif+#ifdef STDC_HEADERS+# include <stdlib.h>+# include <stddef.h>+#else+# ifdef HAVE_STDLIB_H+# include <stdlib.h>+# endif+#endif+#ifdef HAVE_STRING_H+# if !defined STDC_HEADERS && defined HAVE_MEMORY_H+# include <memory.h>+# endif+# include <string.h>+#endif+#ifdef HAVE_STRINGS_H+# include <strings.h>+#endif+#ifdef HAVE_INTTYPES_H+# include <inttypes.h>+#endif+#ifdef HAVE_STDINT_H+# include <stdint.h>+#endif+#ifdef HAVE_UNISTD_H+# include <unistd.h>+#endif"++ac_subst_vars='LTLIBOBJS+DEST+SRC+LIBOBJS+EGREP+GREP+CPP+TIMBERC+PTHREAD_CFLAGS+PTHREAD_LIBS+PTHREAD_CC+acx_pthread_config+host_os+host_vendor+host_cpu+host+build_os+build_vendor+build_cpu+build+INSTALL_DATA+INSTALL_SCRIPT+INSTALL_PROGRAM+OBJEXT+EXEEXT+ac_ct_CC+CPPFLAGS+LDFLAGS+CFLAGS+CC+target_alias+host_alias+build_alias+LIBS+ECHO_T+ECHO_N+ECHO_C+DEFS+mandir+localedir+libdir+psdir+pdfdir+dvidir+htmldir+infodir+docdir+oldincludedir+includedir+localstatedir+sharedstatedir+sysconfdir+datadir+datarootdir+libexecdir+sbindir+bindir+program_transform_name+prefix+exec_prefix+PACKAGE_BUGREPORT+PACKAGE_STRING+PACKAGE_VERSION+PACKAGE_TARNAME+PACKAGE_NAME+PATH_SEPARATOR+SHELL'+ac_subst_files=''+ac_user_opts='+enable_option_checking+with_timberc+'+ ac_precious_vars='build_alias+host_alias+target_alias+CC+CFLAGS+LDFLAGS+LIBS+CPPFLAGS+CPP'+++# Initialize some variables set by options.+ac_init_help=+ac_init_version=false+ac_unrecognized_opts=+ac_unrecognized_sep=+# The variables have the same names as the options, with+# dashes changed to underlines.+cache_file=/dev/null+exec_prefix=NONE+no_create=+no_recursion=+prefix=NONE+program_prefix=NONE+program_suffix=NONE+program_transform_name=s,x,x,+silent=+site=+srcdir=+verbose=+x_includes=NONE+x_libraries=NONE++# Installation directory options.+# These are left unexpanded so users can "make install exec_prefix=/foo"+# and all the variables that are supposed to be based on exec_prefix+# by default will actually change.+# Use braces instead of parens because sh, perl, etc. also accept them.+# (The list follows the same order as the GNU Coding Standards.)+bindir='${exec_prefix}/bin'+sbindir='${exec_prefix}/sbin'+libexecdir='${exec_prefix}/libexec'+datarootdir='${prefix}/share'+datadir='${datarootdir}'+sysconfdir='${prefix}/etc'+sharedstatedir='${prefix}/com'+localstatedir='${prefix}/var'+includedir='${prefix}/include'+oldincludedir='/usr/include'+docdir='${datarootdir}/doc/${PACKAGE_TARNAME}'+infodir='${datarootdir}/info'+htmldir='${docdir}'+dvidir='${docdir}'+pdfdir='${docdir}'+psdir='${docdir}'+libdir='${exec_prefix}/lib'+localedir='${datarootdir}/locale'+mandir='${datarootdir}/man'++ac_prev=+ac_dashdash=+for ac_option+do+ # If the previous option needs an argument, assign it.+ if test -n "$ac_prev"; then+ eval $ac_prev=\$ac_option+ ac_prev=+ continue+ fi++ case $ac_option in+ *=*) ac_optarg=`expr "X$ac_option" : '[^=]*=\(.*\)'` ;;+ *) ac_optarg=yes ;;+ esac++ # Accept the important Cygnus configure options, so we can diagnose typos.++ case $ac_dashdash$ac_option in+ --)+ ac_dashdash=yes ;;++ -bindir | --bindir | --bindi | --bind | --bin | --bi)+ ac_prev=bindir ;;+ -bindir=* | --bindir=* | --bindi=* | --bind=* | --bin=* | --bi=*)+ bindir=$ac_optarg ;;++ -build | --build | --buil | --bui | --bu)+ ac_prev=build_alias ;;+ -build=* | --build=* | --buil=* | --bui=* | --bu=*)+ build_alias=$ac_optarg ;;++ -cache-file | --cache-file | --cache-fil | --cache-fi \+ | --cache-f | --cache- | --cache | --cach | --cac | --ca | --c)+ ac_prev=cache_file ;;+ -cache-file=* | --cache-file=* | --cache-fil=* | --cache-fi=* \+ | --cache-f=* | --cache-=* | --cache=* | --cach=* | --cac=* | --ca=* | --c=*)+ cache_file=$ac_optarg ;;++ --config-cache | -C)+ cache_file=config.cache ;;++ -datadir | --datadir | --datadi | --datad)+ ac_prev=datadir ;;+ -datadir=* | --datadir=* | --datadi=* | --datad=*)+ datadir=$ac_optarg ;;++ -datarootdir | --datarootdir | --datarootdi | --datarootd | --dataroot \+ | --dataroo | --dataro | --datar)+ ac_prev=datarootdir ;;+ -datarootdir=* | --datarootdir=* | --datarootdi=* | --datarootd=* \+ | --dataroot=* | --dataroo=* | --dataro=* | --datar=*)+ datarootdir=$ac_optarg ;;++ -disable-* | --disable-*)+ ac_useropt=`expr "x$ac_option" : 'x-*disable-\(.*\)'`+ # Reject names that are not valid shell variable names.+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+ { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2+ { (exit 1); exit 1; }; }+ ac_useropt_orig=$ac_useropt+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+ case $ac_user_opts in+ *"+"enable_$ac_useropt"+"*) ;;+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--disable-$ac_useropt_orig"+ ac_unrecognized_sep=', ';;+ esac+ eval enable_$ac_useropt=no ;;++ -docdir | --docdir | --docdi | --doc | --do)+ ac_prev=docdir ;;+ -docdir=* | --docdir=* | --docdi=* | --doc=* | --do=*)+ docdir=$ac_optarg ;;++ -dvidir | --dvidir | --dvidi | --dvid | --dvi | --dv)+ ac_prev=dvidir ;;+ -dvidir=* | --dvidir=* | --dvidi=* | --dvid=* | --dvi=* | --dv=*)+ dvidir=$ac_optarg ;;++ -enable-* | --enable-*)+ ac_useropt=`expr "x$ac_option" : 'x-*enable-\([^=]*\)'`+ # Reject names that are not valid shell variable names.+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+ { $as_echo "$as_me: error: invalid feature name: $ac_useropt" >&2+ { (exit 1); exit 1; }; }+ ac_useropt_orig=$ac_useropt+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+ case $ac_user_opts in+ *"+"enable_$ac_useropt"+"*) ;;+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--enable-$ac_useropt_orig"+ ac_unrecognized_sep=', ';;+ esac+ eval enable_$ac_useropt=\$ac_optarg ;;++ -exec-prefix | --exec_prefix | --exec-prefix | --exec-prefi \+ | --exec-pref | --exec-pre | --exec-pr | --exec-p | --exec- \+ | --exec | --exe | --ex)+ ac_prev=exec_prefix ;;+ -exec-prefix=* | --exec_prefix=* | --exec-prefix=* | --exec-prefi=* \+ | --exec-pref=* | --exec-pre=* | --exec-pr=* | --exec-p=* | --exec-=* \+ | --exec=* | --exe=* | --ex=*)+ exec_prefix=$ac_optarg ;;++ -gas | --gas | --ga | --g)+ # Obsolete; use --with-gas.+ with_gas=yes ;;++ -help | --help | --hel | --he | -h)+ ac_init_help=long ;;+ -help=r* | --help=r* | --hel=r* | --he=r* | -hr*)+ ac_init_help=recursive ;;+ -help=s* | --help=s* | --hel=s* | --he=s* | -hs*)+ ac_init_help=short ;;++ -host | --host | --hos | --ho)+ ac_prev=host_alias ;;+ -host=* | --host=* | --hos=* | --ho=*)+ host_alias=$ac_optarg ;;++ -htmldir | --htmldir | --htmldi | --htmld | --html | --htm | --ht)+ ac_prev=htmldir ;;+ -htmldir=* | --htmldir=* | --htmldi=* | --htmld=* | --html=* | --htm=* \+ | --ht=*)+ htmldir=$ac_optarg ;;++ -includedir | --includedir | --includedi | --included | --include \+ | --includ | --inclu | --incl | --inc)+ ac_prev=includedir ;;+ -includedir=* | --includedir=* | --includedi=* | --included=* | --include=* \+ | --includ=* | --inclu=* | --incl=* | --inc=*)+ includedir=$ac_optarg ;;++ -infodir | --infodir | --infodi | --infod | --info | --inf)+ ac_prev=infodir ;;+ -infodir=* | --infodir=* | --infodi=* | --infod=* | --info=* | --inf=*)+ infodir=$ac_optarg ;;++ -libdir | --libdir | --libdi | --libd)+ ac_prev=libdir ;;+ -libdir=* | --libdir=* | --libdi=* | --libd=*)+ libdir=$ac_optarg ;;++ -libexecdir | --libexecdir | --libexecdi | --libexecd | --libexec \+ | --libexe | --libex | --libe)+ ac_prev=libexecdir ;;+ -libexecdir=* | --libexecdir=* | --libexecdi=* | --libexecd=* | --libexec=* \+ | --libexe=* | --libex=* | --libe=*)+ libexecdir=$ac_optarg ;;++ -localedir | --localedir | --localedi | --localed | --locale)+ ac_prev=localedir ;;+ -localedir=* | --localedir=* | --localedi=* | --localed=* | --locale=*)+ localedir=$ac_optarg ;;++ -localstatedir | --localstatedir | --localstatedi | --localstated \+ | --localstate | --localstat | --localsta | --localst | --locals)+ ac_prev=localstatedir ;;+ -localstatedir=* | --localstatedir=* | --localstatedi=* | --localstated=* \+ | --localstate=* | --localstat=* | --localsta=* | --localst=* | --locals=*)+ localstatedir=$ac_optarg ;;++ -mandir | --mandir | --mandi | --mand | --man | --ma | --m)+ ac_prev=mandir ;;+ -mandir=* | --mandir=* | --mandi=* | --mand=* | --man=* | --ma=* | --m=*)+ mandir=$ac_optarg ;;++ -nfp | --nfp | --nf)+ # Obsolete; use --without-fp.+ with_fp=no ;;++ -no-create | --no-create | --no-creat | --no-crea | --no-cre \+ | --no-cr | --no-c | -n)+ no_create=yes ;;++ -no-recursion | --no-recursion | --no-recursio | --no-recursi \+ | --no-recurs | --no-recur | --no-recu | --no-rec | --no-re | --no-r)+ no_recursion=yes ;;++ -oldincludedir | --oldincludedir | --oldincludedi | --oldincluded \+ | --oldinclude | --oldinclud | --oldinclu | --oldincl | --oldinc \+ | --oldin | --oldi | --old | --ol | --o)+ ac_prev=oldincludedir ;;+ -oldincludedir=* | --oldincludedir=* | --oldincludedi=* | --oldincluded=* \+ | --oldinclude=* | --oldinclud=* | --oldinclu=* | --oldincl=* | --oldinc=* \+ | --oldin=* | --oldi=* | --old=* | --ol=* | --o=*)+ oldincludedir=$ac_optarg ;;++ -prefix | --prefix | --prefi | --pref | --pre | --pr | --p)+ ac_prev=prefix ;;+ -prefix=* | --prefix=* | --prefi=* | --pref=* | --pre=* | --pr=* | --p=*)+ prefix=$ac_optarg ;;++ -program-prefix | --program-prefix | --program-prefi | --program-pref \+ | --program-pre | --program-pr | --program-p)+ ac_prev=program_prefix ;;+ -program-prefix=* | --program-prefix=* | --program-prefi=* \+ | --program-pref=* | --program-pre=* | --program-pr=* | --program-p=*)+ program_prefix=$ac_optarg ;;++ -program-suffix | --program-suffix | --program-suffi | --program-suff \+ | --program-suf | --program-su | --program-s)+ ac_prev=program_suffix ;;+ -program-suffix=* | --program-suffix=* | --program-suffi=* \+ | --program-suff=* | --program-suf=* | --program-su=* | --program-s=*)+ program_suffix=$ac_optarg ;;++ -program-transform-name | --program-transform-name \+ | --program-transform-nam | --program-transform-na \+ | --program-transform-n | --program-transform- \+ | --program-transform | --program-transfor \+ | --program-transfo | --program-transf \+ | --program-trans | --program-tran \+ | --progr-tra | --program-tr | --program-t)+ ac_prev=program_transform_name ;;+ -program-transform-name=* | --program-transform-name=* \+ | --program-transform-nam=* | --program-transform-na=* \+ | --program-transform-n=* | --program-transform-=* \+ | --program-transform=* | --program-transfor=* \+ | --program-transfo=* | --program-transf=* \+ | --program-trans=* | --program-tran=* \+ | --progr-tra=* | --program-tr=* | --program-t=*)+ program_transform_name=$ac_optarg ;;++ -pdfdir | --pdfdir | --pdfdi | --pdfd | --pdf | --pd)+ ac_prev=pdfdir ;;+ -pdfdir=* | --pdfdir=* | --pdfdi=* | --pdfd=* | --pdf=* | --pd=*)+ pdfdir=$ac_optarg ;;++ -psdir | --psdir | --psdi | --psd | --ps)+ ac_prev=psdir ;;+ -psdir=* | --psdir=* | --psdi=* | --psd=* | --ps=*)+ psdir=$ac_optarg ;;++ -q | -quiet | --quiet | --quie | --qui | --qu | --q \+ | -silent | --silent | --silen | --sile | --sil)+ silent=yes ;;++ -sbindir | --sbindir | --sbindi | --sbind | --sbin | --sbi | --sb)+ ac_prev=sbindir ;;+ -sbindir=* | --sbindir=* | --sbindi=* | --sbind=* | --sbin=* \+ | --sbi=* | --sb=*)+ sbindir=$ac_optarg ;;++ -sharedstatedir | --sharedstatedir | --sharedstatedi \+ | --sharedstated | --sharedstate | --sharedstat | --sharedsta \+ | --sharedst | --shareds | --shared | --share | --shar \+ | --sha | --sh)+ ac_prev=sharedstatedir ;;+ -sharedstatedir=* | --sharedstatedir=* | --sharedstatedi=* \+ | --sharedstated=* | --sharedstate=* | --sharedstat=* | --sharedsta=* \+ | --sharedst=* | --shareds=* | --shared=* | --share=* | --shar=* \+ | --sha=* | --sh=*)+ sharedstatedir=$ac_optarg ;;++ -site | --site | --sit)+ ac_prev=site ;;+ -site=* | --site=* | --sit=*)+ site=$ac_optarg ;;++ -srcdir | --srcdir | --srcdi | --srcd | --src | --sr)+ ac_prev=srcdir ;;+ -srcdir=* | --srcdir=* | --srcdi=* | --srcd=* | --src=* | --sr=*)+ srcdir=$ac_optarg ;;++ -sysconfdir | --sysconfdir | --sysconfdi | --sysconfd | --sysconf \+ | --syscon | --sysco | --sysc | --sys | --sy)+ ac_prev=sysconfdir ;;+ -sysconfdir=* | --sysconfdir=* | --sysconfdi=* | --sysconfd=* | --sysconf=* \+ | --syscon=* | --sysco=* | --sysc=* | --sys=* | --sy=*)+ sysconfdir=$ac_optarg ;;++ -target | --target | --targe | --targ | --tar | --ta | --t)+ ac_prev=target_alias ;;+ -target=* | --target=* | --targe=* | --targ=* | --tar=* | --ta=* | --t=*)+ target_alias=$ac_optarg ;;++ -v | -verbose | --verbose | --verbos | --verbo | --verb)+ verbose=yes ;;++ -version | --version | --versio | --versi | --vers | -V)+ ac_init_version=: ;;++ -with-* | --with-*)+ ac_useropt=`expr "x$ac_option" : 'x-*with-\([^=]*\)'`+ # Reject names that are not valid shell variable names.+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+ { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2+ { (exit 1); exit 1; }; }+ ac_useropt_orig=$ac_useropt+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+ case $ac_user_opts in+ *"+"with_$ac_useropt"+"*) ;;+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--with-$ac_useropt_orig"+ ac_unrecognized_sep=', ';;+ esac+ eval with_$ac_useropt=\$ac_optarg ;;++ -without-* | --without-*)+ ac_useropt=`expr "x$ac_option" : 'x-*without-\(.*\)'`+ # Reject names that are not valid shell variable names.+ expr "x$ac_useropt" : ".*[^-+._$as_cr_alnum]" >/dev/null &&+ { $as_echo "$as_me: error: invalid package name: $ac_useropt" >&2+ { (exit 1); exit 1; }; }+ ac_useropt_orig=$ac_useropt+ ac_useropt=`$as_echo "$ac_useropt" | sed 's/[-+.]/_/g'`+ case $ac_user_opts in+ *"+"with_$ac_useropt"+"*) ;;+ *) ac_unrecognized_opts="$ac_unrecognized_opts$ac_unrecognized_sep--without-$ac_useropt_orig"+ ac_unrecognized_sep=', ';;+ esac+ eval with_$ac_useropt=no ;;++ --x)+ # Obsolete; use --with-x.+ with_x=yes ;;++ -x-includes | --x-includes | --x-include | --x-includ | --x-inclu \+ | --x-incl | --x-inc | --x-in | --x-i)+ ac_prev=x_includes ;;+ -x-includes=* | --x-includes=* | --x-include=* | --x-includ=* | --x-inclu=* \+ | --x-incl=* | --x-inc=* | --x-in=* | --x-i=*)+ x_includes=$ac_optarg ;;++ -x-libraries | --x-libraries | --x-librarie | --x-librari \+ | --x-librar | --x-libra | --x-libr | --x-lib | --x-li | --x-l)+ ac_prev=x_libraries ;;+ -x-libraries=* | --x-libraries=* | --x-librarie=* | --x-librari=* \+ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*)+ x_libraries=$ac_optarg ;;++ -*) { $as_echo "$as_me: error: unrecognized option: $ac_option+Try \`$0 --help' for more information." >&2+ { (exit 1); exit 1; }; }+ ;;++ *=*)+ ac_envvar=`expr "x$ac_option" : 'x\([^=]*\)='`+ # Reject names that are not valid shell variable names.+ expr "x$ac_envvar" : ".*[^_$as_cr_alnum]" >/dev/null &&+ { $as_echo "$as_me: error: invalid variable name: $ac_envvar" >&2+ { (exit 1); exit 1; }; }+ eval $ac_envvar=\$ac_optarg+ export $ac_envvar ;;++ *)+ # FIXME: should be removed in autoconf 3.0.+ $as_echo "$as_me: WARNING: you should use --build, --host, --target" >&2+ expr "x$ac_option" : ".*[^-._$as_cr_alnum]" >/dev/null &&+ $as_echo "$as_me: WARNING: invalid host type: $ac_option" >&2+ : ${build_alias=$ac_option} ${host_alias=$ac_option} ${target_alias=$ac_option}+ ;;++ esac+done++if test -n "$ac_prev"; then+ ac_option=--`echo $ac_prev | sed 's/_/-/g'`+ { $as_echo "$as_me: error: missing argument to $ac_option" >&2+ { (exit 1); exit 1; }; }+fi++if test -n "$ac_unrecognized_opts"; then+ case $enable_option_checking in+ no) ;;+ fatal) { $as_echo "$as_me: error: unrecognized options: $ac_unrecognized_opts" >&2+ { (exit 1); exit 1; }; } ;;+ *) $as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2 ;;+ esac+fi++# Check all directory arguments for consistency.+for ac_var in exec_prefix prefix bindir sbindir libexecdir datarootdir \+ datadir sysconfdir sharedstatedir localstatedir includedir \+ oldincludedir docdir infodir htmldir dvidir pdfdir psdir \+ libdir localedir mandir+do+ eval ac_val=\$$ac_var+ # Remove trailing slashes.+ case $ac_val in+ */ )+ ac_val=`expr "X$ac_val" : 'X\(.*[^/]\)' \| "X$ac_val" : 'X\(.*\)'`+ eval $ac_var=\$ac_val;;+ esac+ # Be sure to have absolute directory names.+ case $ac_val in+ [\\/$]* | ?:[\\/]* ) continue;;+ NONE | '' ) case $ac_var in *prefix ) continue;; esac;;+ esac+ { $as_echo "$as_me: error: expected an absolute directory name for --$ac_var: $ac_val" >&2+ { (exit 1); exit 1; }; }+done++# There might be people who depend on the old broken behavior: `$host'+# used to hold the argument of --host etc.+# FIXME: To remove some day.+build=$build_alias+host=$host_alias+target=$target_alias++# FIXME: To remove some day.+if test "x$host_alias" != x; then+ if test "x$build_alias" = x; then+ cross_compiling=maybe+ $as_echo "$as_me: WARNING: If you wanted to set the --build type, don't use --host.+ If a cross compiler is detected then cross compile mode will be used." >&2+ elif test "x$build_alias" != "x$host_alias"; then+ cross_compiling=yes+ fi+fi++ac_tool_prefix=+test -n "$host_alias" && ac_tool_prefix=$host_alias-++test "$silent" = yes && exec 6>/dev/null+++ac_pwd=`pwd` && test -n "$ac_pwd" &&+ac_ls_di=`ls -di .` &&+ac_pwd_ls_di=`cd "$ac_pwd" && ls -di .` ||+ { $as_echo "$as_me: error: working directory cannot be determined" >&2+ { (exit 1); exit 1; }; }+test "X$ac_ls_di" = "X$ac_pwd_ls_di" ||+ { $as_echo "$as_me: error: pwd does not report name of working directory" >&2+ { (exit 1); exit 1; }; }+++# Find the source files, if location was not specified.+if test -z "$srcdir"; then+ ac_srcdir_defaulted=yes+ # Try the directory containing this script, then the parent directory.+ ac_confdir=`$as_dirname -- "$as_myself" ||+$as_expr X"$as_myself" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+ X"$as_myself" : 'X\(//\)[^/]' \| \+ X"$as_myself" : 'X\(//\)$' \| \+ X"$as_myself" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$as_myself" |+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+ s//\1/+ q+ }+ /^X\(\/\/\)[^/].*/{+ s//\1/+ q+ }+ /^X\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`+ srcdir=$ac_confdir+ if test ! -r "$srcdir/$ac_unique_file"; then+ srcdir=..+ fi+else+ ac_srcdir_defaulted=no+fi+if test ! -r "$srcdir/$ac_unique_file"; then+ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .."+ { $as_echo "$as_me: error: cannot find sources ($ac_unique_file) in $srcdir" >&2+ { (exit 1); exit 1; }; }+fi+ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"+ac_abs_confdir=`(+ cd "$srcdir" && test -r "./$ac_unique_file" || { $as_echo "$as_me: error: $ac_msg" >&2+ { (exit 1); exit 1; }; }+ pwd)`+# When building in place, set srcdir=.+if test "$ac_abs_confdir" = "$ac_pwd"; then+ srcdir=.+fi+# Remove unnecessary trailing slashes from srcdir.+# Double slashes in file names in object file debugging info+# mess up M-x gdb in Emacs.+case $srcdir in+*/) srcdir=`expr "X$srcdir" : 'X\(.*[^/]\)' \| "X$srcdir" : 'X\(.*\)'`;;+esac+for ac_var in $ac_precious_vars; do+ eval ac_env_${ac_var}_set=\${${ac_var}+set}+ eval ac_env_${ac_var}_value=\$${ac_var}+ eval ac_cv_env_${ac_var}_set=\${${ac_var}+set}+ eval ac_cv_env_${ac_var}_value=\$${ac_var}+done++#+# Report the --help message.+#+if test "$ac_init_help" = "long"; then+ # Omit some internal or obsolete options to make the list less imposing.+ # This message is too long to be a string in the A/UX 3.1 sh.+ cat <<_ACEOF+\`configure' configures rtsPOSIX 0.9.9 to adapt to many kinds of systems.++Usage: $0 [OPTION]... [VAR=VALUE]...++To assign environment variables (e.g., CC, CFLAGS...), specify them as+VAR=VALUE. See below for descriptions of some of the useful variables.++Defaults for the options are specified in brackets.++Configuration:+ -h, --help display this help and exit+ --help=short display options specific to this package+ --help=recursive display the short help of all the included packages+ -V, --version display version information and exit+ -q, --quiet, --silent do not print \`checking...' messages+ --cache-file=FILE cache test results in FILE [disabled]+ -C, --config-cache alias for \`--cache-file=config.cache'+ -n, --no-create do not create output files+ --srcdir=DIR find the sources in DIR [configure dir or \`..']++Installation directories:+ --prefix=PREFIX install architecture-independent files in PREFIX+ [$ac_default_prefix]+ --exec-prefix=EPREFIX install architecture-dependent files in EPREFIX+ [PREFIX]++By default, \`make install' will install all the files in+\`$ac_default_prefix/bin', \`$ac_default_prefix/lib' etc. You can specify+an installation prefix other than \`$ac_default_prefix' using \`--prefix',+for instance \`--prefix=\$HOME'.++For better control, use the options below.++Fine tuning of the installation directories:+ --bindir=DIR user executables [EPREFIX/bin]+ --sbindir=DIR system admin executables [EPREFIX/sbin]+ --libexecdir=DIR program executables [EPREFIX/libexec]+ --sysconfdir=DIR read-only single-machine data [PREFIX/etc]+ --sharedstatedir=DIR modifiable architecture-independent data [PREFIX/com]+ --localstatedir=DIR modifiable single-machine data [PREFIX/var]+ --libdir=DIR object code libraries [EPREFIX/lib]+ --includedir=DIR C header files [PREFIX/include]+ --oldincludedir=DIR C header files for non-gcc [/usr/include]+ --datarootdir=DIR read-only arch.-independent data root [PREFIX/share]+ --datadir=DIR read-only architecture-independent data [DATAROOTDIR]+ --infodir=DIR info documentation [DATAROOTDIR/info]+ --localedir=DIR locale-dependent data [DATAROOTDIR/locale]+ --mandir=DIR man documentation [DATAROOTDIR/man]+ --docdir=DIR documentation root [DATAROOTDIR/doc/rtsposix]+ --htmldir=DIR html documentation [DOCDIR]+ --dvidir=DIR dvi documentation [DOCDIR]+ --pdfdir=DIR pdf documentation [DOCDIR]+ --psdir=DIR ps documentation [DOCDIR]+_ACEOF++ cat <<\_ACEOF++System types:+ --build=BUILD configure for building on BUILD [guessed]+ --host=HOST cross-compile to build programs to run on HOST [BUILD]+_ACEOF+fi++if test -n "$ac_init_help"; then+ case $ac_init_help in+ short | recursive ) echo "Configuration of rtsPOSIX 0.9.9:";;+ esac+ cat <<\_ACEOF++Optional Packages:+ --with-PACKAGE[=ARG] use PACKAGE [ARG=yes]+ --without-PACKAGE do not use PACKAGE (same as --with-PACKAGE=no)+ --with-timberc=DIR Path to timberc++Some influential environment variables:+ CC C compiler command+ CFLAGS C compiler flags+ LDFLAGS linker flags, e.g. -L<lib dir> if you have libraries in a+ nonstandard directory <lib dir>+ LIBS libraries to pass to the linker, e.g. -l<library>+ CPPFLAGS C/C++/Objective C preprocessor flags, e.g. -I<include dir> if+ you have headers in a nonstandard directory <include dir>+ CPP C preprocessor++Use these variables to override the choices made by `configure' or to help+it to find libraries and programs with nonstandard names/locations.++Report bugs to <nordland@csee.ltu.se>.+_ACEOF+ac_status=$?+fi++if test "$ac_init_help" = "recursive"; then+ # If there are subdirs, report their specific --help.+ for ac_dir in : $ac_subdirs_all; do test "x$ac_dir" = x: && continue+ test -d "$ac_dir" ||+ { cd "$srcdir" && ac_pwd=`pwd` && srcdir=. && test -d "$ac_dir"; } ||+ continue+ ac_builddir=.++case "$ac_dir" in+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;+*)+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`+ # A ".." for each directory in $ac_dir_suffix.+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`+ case $ac_top_builddir_sub in+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;+ esac ;;+esac+ac_abs_top_builddir=$ac_pwd+ac_abs_builddir=$ac_pwd$ac_dir_suffix+# for backward compatibility:+ac_top_builddir=$ac_top_build_prefix++case $srcdir in+ .) # We are building in place.+ ac_srcdir=.+ ac_top_srcdir=$ac_top_builddir_sub+ ac_abs_top_srcdir=$ac_pwd ;;+ [\\/]* | ?:[\\/]* ) # Absolute name.+ ac_srcdir=$srcdir$ac_dir_suffix;+ ac_top_srcdir=$srcdir+ ac_abs_top_srcdir=$srcdir ;;+ *) # Relative name.+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix+ ac_top_srcdir=$ac_top_build_prefix$srcdir+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;+esac+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix++ cd "$ac_dir" || { ac_status=$?; continue; }+ # Check for guested configure.+ if test -f "$ac_srcdir/configure.gnu"; then+ echo &&+ $SHELL "$ac_srcdir/configure.gnu" --help=recursive+ elif test -f "$ac_srcdir/configure"; then+ echo &&+ $SHELL "$ac_srcdir/configure" --help=recursive+ else+ $as_echo "$as_me: WARNING: no configuration information is in $ac_dir" >&2+ fi || ac_status=$?+ cd "$ac_pwd" || { ac_status=$?; break; }+ done+fi++test -n "$ac_init_help" && exit $ac_status+if $ac_init_version; then+ cat <<\_ACEOF+rtsPOSIX configure 0.9.9+generated by GNU Autoconf 2.63++Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,+2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.+This configure script is free software; the Free Software Foundation+gives unlimited permission to copy, distribute and modify it.+_ACEOF+ exit+fi+cat >config.log <<_ACEOF+This file contains any messages produced by compilers while+running configure, to aid debugging if configure makes a mistake.++It was created by rtsPOSIX $as_me 0.9.9, which was+generated by GNU Autoconf 2.63. Invocation command line was++ $ $0 $@++_ACEOF+exec 5>>config.log+{+cat <<_ASUNAME+## --------- ##+## Platform. ##+## --------- ##++hostname = `(hostname || uname -n) 2>/dev/null | sed 1q`+uname -m = `(uname -m) 2>/dev/null || echo unknown`+uname -r = `(uname -r) 2>/dev/null || echo unknown`+uname -s = `(uname -s) 2>/dev/null || echo unknown`+uname -v = `(uname -v) 2>/dev/null || echo unknown`++/usr/bin/uname -p = `(/usr/bin/uname -p) 2>/dev/null || echo unknown`+/bin/uname -X = `(/bin/uname -X) 2>/dev/null || echo unknown`++/bin/arch = `(/bin/arch) 2>/dev/null || echo unknown`+/usr/bin/arch -k = `(/usr/bin/arch -k) 2>/dev/null || echo unknown`+/usr/convex/getsysinfo = `(/usr/convex/getsysinfo) 2>/dev/null || echo unknown`+/usr/bin/hostinfo = `(/usr/bin/hostinfo) 2>/dev/null || echo unknown`+/bin/machine = `(/bin/machine) 2>/dev/null || echo unknown`+/usr/bin/oslevel = `(/usr/bin/oslevel) 2>/dev/null || echo unknown`+/bin/universe = `(/bin/universe) 2>/dev/null || echo unknown`++_ASUNAME++as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ $as_echo "PATH: $as_dir"+done+IFS=$as_save_IFS++} >&5++cat >&5 <<_ACEOF+++## ----------- ##+## Core tests. ##+## ----------- ##++_ACEOF+++# Keep a trace of the command line.+# Strip out --no-create and --no-recursion so they do not pile up.+# Strip out --silent because we don't want to record it for future runs.+# Also quote any args containing shell meta-characters.+# Make two passes to allow for proper duplicate-argument suppression.+ac_configure_args=+ac_configure_args0=+ac_configure_args1=+ac_must_keep_next=false+for ac_pass in 1 2+do+ for ac_arg+ do+ case $ac_arg in+ -no-create | --no-c* | -n | -no-recursion | --no-r*) continue ;;+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \+ | -silent | --silent | --silen | --sile | --sil)+ continue ;;+ *\'*)+ ac_arg=`$as_echo "$ac_arg" | sed "s/'/'\\\\\\\\''/g"` ;;+ esac+ case $ac_pass in+ 1) ac_configure_args0="$ac_configure_args0 '$ac_arg'" ;;+ 2)+ ac_configure_args1="$ac_configure_args1 '$ac_arg'"+ if test $ac_must_keep_next = true; then+ ac_must_keep_next=false # Got value, back to normal.+ else+ case $ac_arg in+ *=* | --config-cache | -C | -disable-* | --disable-* \+ | -enable-* | --enable-* | -gas | --g* | -nfp | --nf* \+ | -q | -quiet | --q* | -silent | --sil* | -v | -verb* \+ | -with-* | --with-* | -without-* | --without-* | --x)+ case "$ac_configure_args0 " in+ "$ac_configure_args1"*" '$ac_arg' "* ) continue ;;+ esac+ ;;+ -* ) ac_must_keep_next=true ;;+ esac+ fi+ ac_configure_args="$ac_configure_args '$ac_arg'"+ ;;+ esac+ done+done+$as_unset ac_configure_args0 || test "${ac_configure_args0+set}" != set || { ac_configure_args0=; export ac_configure_args0; }+$as_unset ac_configure_args1 || test "${ac_configure_args1+set}" != set || { ac_configure_args1=; export ac_configure_args1; }++# When interrupted or exit'd, cleanup temporary files, and complete+# config.log. We remove comments because anyway the quotes in there+# would cause problems or look ugly.+# WARNING: Use '\'' to represent an apostrophe within the trap.+# WARNING: Do not start the trap code with a newline, due to a FreeBSD 4.0 bug.+trap 'exit_status=$?+ # Save into config.log some information that might help in debugging.+ {+ echo++ cat <<\_ASBOX+## ---------------- ##+## Cache variables. ##+## ---------------- ##+_ASBOX+ echo+ # The following way of writing the cache mishandles newlines in values,+(+ for ac_var in `(set) 2>&1 | sed -n '\''s/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'\''`; do+ eval ac_val=\$$ac_var+ case $ac_val in #(+ *${as_nl}*)+ case $ac_var in #(+ *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;+ esac+ case $ac_var in #(+ _ | IFS | as_nl) ;; #(+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(+ *) $as_unset $ac_var ;;+ esac ;;+ esac+ done+ (set) 2>&1 |+ case $as_nl`(ac_space='\'' '\''; set) 2>&1` in #(+ *${as_nl}ac_space=\ *)+ sed -n \+ "s/'\''/'\''\\\\'\'''\''/g;+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\''\\2'\''/p"+ ;; #(+ *)+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"+ ;;+ esac |+ sort+)+ echo++ cat <<\_ASBOX+## ----------------- ##+## Output variables. ##+## ----------------- ##+_ASBOX+ echo+ for ac_var in $ac_subst_vars+ do+ eval ac_val=\$$ac_var+ case $ac_val in+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;+ esac+ $as_echo "$ac_var='\''$ac_val'\''"+ done | sort+ echo++ if test -n "$ac_subst_files"; then+ cat <<\_ASBOX+## ------------------- ##+## File substitutions. ##+## ------------------- ##+_ASBOX+ echo+ for ac_var in $ac_subst_files+ do+ eval ac_val=\$$ac_var+ case $ac_val in+ *\'\''*) ac_val=`$as_echo "$ac_val" | sed "s/'\''/'\''\\\\\\\\'\'''\''/g"`;;+ esac+ $as_echo "$ac_var='\''$ac_val'\''"+ done | sort+ echo+ fi++ if test -s confdefs.h; then+ cat <<\_ASBOX+## ----------- ##+## confdefs.h. ##+## ----------- ##+_ASBOX+ echo+ cat confdefs.h+ echo+ fi+ test "$ac_signal" != 0 &&+ $as_echo "$as_me: caught signal $ac_signal"+ $as_echo "$as_me: exit $exit_status"+ } >&5+ rm -f core *.core core.conftest.* &&+ rm -f -r conftest* confdefs* conf$$* $ac_clean_files &&+ exit $exit_status+' 0+for ac_signal in 1 2 13 15; do+ trap 'ac_signal='$ac_signal'; { (exit 1); exit 1; }' $ac_signal+done+ac_signal=0++# confdefs.h avoids OS command line length limits that DEFS can exceed.+rm -f -r conftest* confdefs.h++# Predefined preprocessor variables.++cat >>confdefs.h <<_ACEOF+#define PACKAGE_NAME "$PACKAGE_NAME"+_ACEOF+++cat >>confdefs.h <<_ACEOF+#define PACKAGE_TARNAME "$PACKAGE_TARNAME"+_ACEOF+++cat >>confdefs.h <<_ACEOF+#define PACKAGE_VERSION "$PACKAGE_VERSION"+_ACEOF+++cat >>confdefs.h <<_ACEOF+#define PACKAGE_STRING "$PACKAGE_STRING"+_ACEOF+++cat >>confdefs.h <<_ACEOF+#define PACKAGE_BUGREPORT "$PACKAGE_BUGREPORT"+_ACEOF+++# Let the site file select an alternate cache file if it wants to.+# Prefer an explicitly selected file to automatically selected ones.+ac_site_file1=NONE+ac_site_file2=NONE+if test -n "$CONFIG_SITE"; then+ ac_site_file1=$CONFIG_SITE+elif test "x$prefix" != xNONE; then+ ac_site_file1=$prefix/share/config.site+ ac_site_file2=$prefix/etc/config.site+else+ ac_site_file1=$ac_default_prefix/share/config.site+ ac_site_file2=$ac_default_prefix/etc/config.site+fi+for ac_site_file in "$ac_site_file1" "$ac_site_file2"+do+ test "x$ac_site_file" = xNONE && continue+ if test -r "$ac_site_file"; then+ { $as_echo "$as_me:$LINENO: loading site script $ac_site_file" >&5+$as_echo "$as_me: loading site script $ac_site_file" >&6;}+ sed 's/^/| /' "$ac_site_file" >&5+ . "$ac_site_file"+ fi+done++if test -r "$cache_file"; then+ # Some versions of bash will fail to source /dev/null (special+ # files actually), so we avoid doing that.+ if test -f "$cache_file"; then+ { $as_echo "$as_me:$LINENO: loading cache $cache_file" >&5+$as_echo "$as_me: loading cache $cache_file" >&6;}+ case $cache_file in+ [\\/]* | ?:[\\/]* ) . "$cache_file";;+ *) . "./$cache_file";;+ esac+ fi+else+ { $as_echo "$as_me:$LINENO: creating cache $cache_file" >&5+$as_echo "$as_me: creating cache $cache_file" >&6;}+ >$cache_file+fi++# Check that the precious variables saved in the cache have kept the same+# value.+ac_cache_corrupted=false+for ac_var in $ac_precious_vars; do+ eval ac_old_set=\$ac_cv_env_${ac_var}_set+ eval ac_new_set=\$ac_env_${ac_var}_set+ eval ac_old_val=\$ac_cv_env_${ac_var}_value+ eval ac_new_val=\$ac_env_${ac_var}_value+ case $ac_old_set,$ac_new_set in+ set,)+ { $as_echo "$as_me:$LINENO: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5+$as_echo "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}+ ac_cache_corrupted=: ;;+ ,set)+ { $as_echo "$as_me:$LINENO: error: \`$ac_var' was not set in the previous run" >&5+$as_echo "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}+ ac_cache_corrupted=: ;;+ ,);;+ *)+ if test "x$ac_old_val" != "x$ac_new_val"; then+ # differences in whitespace do not lead to failure.+ ac_old_val_w=`echo x $ac_old_val`+ ac_new_val_w=`echo x $ac_new_val`+ if test "$ac_old_val_w" != "$ac_new_val_w"; then+ { $as_echo "$as_me:$LINENO: error: \`$ac_var' has changed since the previous run:" >&5+$as_echo "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}+ ac_cache_corrupted=:+ else+ { $as_echo "$as_me:$LINENO: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5+$as_echo "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}+ eval $ac_var=\$ac_old_val+ fi+ { $as_echo "$as_me:$LINENO: former value: \`$ac_old_val'" >&5+$as_echo "$as_me: former value: \`$ac_old_val'" >&2;}+ { $as_echo "$as_me:$LINENO: current value: \`$ac_new_val'" >&5+$as_echo "$as_me: current value: \`$ac_new_val'" >&2;}+ fi;;+ esac+ # Pass precious variables to config.status.+ if test "$ac_new_set" = set; then+ case $ac_new_val in+ *\'*) ac_arg=$ac_var=`$as_echo "$ac_new_val" | sed "s/'/'\\\\\\\\''/g"` ;;+ *) ac_arg=$ac_var=$ac_new_val ;;+ esac+ case " $ac_configure_args " in+ *" '$ac_arg' "*) ;; # Avoid dups. Use of quotes ensures accuracy.+ *) ac_configure_args="$ac_configure_args '$ac_arg'" ;;+ esac+ fi+done+if $ac_cache_corrupted; then+ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+ { $as_echo "$as_me:$LINENO: error: changes in the environment can compromise the build" >&5+$as_echo "$as_me: error: changes in the environment can compromise the build" >&2;}+ { { $as_echo "$as_me:$LINENO: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&5+$as_echo "$as_me: error: run \`make distclean' and/or \`rm $cache_file' and start over" >&2;}+ { (exit 1); exit 1; }; }+fi++++++++++++++++++++++++++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++++ac_config_headers="$ac_config_headers config.h"+++# Checks for programs.+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}gcc", so it can be a program name with args.+set dummy ${ac_tool_prefix}gcc; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_CC+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+ ac_cv_prog_CC="${ac_tool_prefix}gcc"+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:$LINENO: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$ac_cv_prog_CC"; then+ ac_ct_CC=$CC+ # Extract the first word of "gcc", so it can be a program name with args.+set dummy gcc; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_CC"; then+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+ ac_cv_prog_ac_ct_CC="gcc"+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+done+IFS=$as_save_IFS++fi+fi+ac_ct_CC=$ac_cv_prog_ac_ct_CC+if test -n "$ac_ct_CC"; then+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5+$as_echo "$ac_ct_CC" >&6; }+else+ { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi++ if test "x$ac_ct_CC" = x; then+ CC=""+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ CC=$ac_ct_CC+ fi+else+ CC="$ac_cv_prog_CC"+fi++if test -z "$CC"; then+ if test -n "$ac_tool_prefix"; then+ # Extract the first word of "${ac_tool_prefix}cc", so it can be a program name with args.+set dummy ${ac_tool_prefix}cc; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_CC+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+ ac_cv_prog_CC="${ac_tool_prefix}cc"+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:$LINENO: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++ fi+fi+if test -z "$CC"; then+ # Extract the first word of "cc", so it can be a program name with args.+set dummy cc; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_CC+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+ ac_prog_rejected=no+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+ if test "$as_dir/$ac_word$ac_exec_ext" = "/usr/ucb/cc"; then+ ac_prog_rejected=yes+ continue+ fi+ ac_cv_prog_CC="cc"+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+done+IFS=$as_save_IFS++if test $ac_prog_rejected = yes; then+ # We found a bogon in the path, so make sure we never use it.+ set dummy $ac_cv_prog_CC+ shift+ if test $# != 0; then+ # We chose a different compiler from the bogus one.+ # However, it has the same basename, so the bogon will be chosen+ # first if we set CC to just the basename; use the full file name.+ shift+ ac_cv_prog_CC="$as_dir/$ac_word${1+' '}$@"+ fi+fi+fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:$LINENO: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++fi+if test -z "$CC"; then+ if test -n "$ac_tool_prefix"; then+ for ac_prog in cl.exe+ do+ # Extract the first word of "$ac_tool_prefix$ac_prog", so it can be a program name with args.+set dummy $ac_tool_prefix$ac_prog; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_CC+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test -n "$CC"; then+ ac_cv_prog_CC="$CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+ ac_cv_prog_CC="$ac_tool_prefix$ac_prog"+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+done+IFS=$as_save_IFS++fi+fi+CC=$ac_cv_prog_CC+if test -n "$CC"; then+ { $as_echo "$as_me:$LINENO: result: $CC" >&5+$as_echo "$CC" >&6; }+else+ { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$CC" && break+ done+fi+if test -z "$CC"; then+ ac_ct_CC=$CC+ for ac_prog in cl.exe+do+ # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_ac_ct_CC+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test -n "$ac_ct_CC"; then+ ac_cv_prog_ac_ct_CC="$ac_ct_CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+ ac_cv_prog_ac_ct_CC="$ac_prog"+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+done+IFS=$as_save_IFS++fi+fi+ac_ct_CC=$ac_cv_prog_ac_ct_CC+if test -n "$ac_ct_CC"; then+ { $as_echo "$as_me:$LINENO: result: $ac_ct_CC" >&5+$as_echo "$ac_ct_CC" >&6; }+else+ { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$ac_ct_CC" && break+done++ if test "x$ac_ct_CC" = x; then+ CC=""+ else+ case $cross_compiling:$ac_tool_warned in+yes:)+{ $as_echo "$as_me:$LINENO: WARNING: using cross tools not prefixed with host triplet" >&5+$as_echo "$as_me: WARNING: using cross tools not prefixed with host triplet" >&2;}+ac_tool_warned=yes ;;+esac+ CC=$ac_ct_CC+ fi+fi++fi+++test -z "$CC" && { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: no acceptable C compiler found in \$PATH+See \`config.log' for more details." >&5+$as_echo "$as_me: error: no acceptable C compiler found in \$PATH+See \`config.log' for more details." >&2;}+ { (exit 1); exit 1; }; }; }++# Provide some information about the compiler.+$as_echo "$as_me:$LINENO: checking for C compiler version" >&5+set X $ac_compile+ac_compiler=$2+{ (ac_try="$ac_compiler --version >&5"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compiler --version >&5") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); }+{ (ac_try="$ac_compiler -v >&5"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compiler -v >&5") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); }+{ (ac_try="$ac_compiler -V >&5"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compiler -V >&5") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); }++cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+ac_clean_files_save=$ac_clean_files+ac_clean_files="$ac_clean_files a.out a.out.dSYM a.exe b.out"+# Try to create an executable without -o first, disregard a.out.+# It will help us diagnose broken compilers, and finding out an intuition+# of exeext.+{ $as_echo "$as_me:$LINENO: checking for C compiler default output file name" >&5+$as_echo_n "checking for C compiler default output file name... " >&6; }+ac_link_default=`$as_echo "$ac_link" | sed 's/ -o *conftest[^ ]*//'`++# The possible output files:+ac_files="a.out conftest.exe conftest a.exe a_out.exe b.out conftest.*"++ac_rmfiles=+for ac_file in $ac_files+do+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;+ * ) ac_rmfiles="$ac_rmfiles $ac_file";;+ esac+done+rm -f $ac_rmfiles++if { (ac_try="$ac_link_default"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_link_default") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); }; then+ # Autoconf-2.13 could set the ac_cv_exeext variable to `no'.+# So ignore a value of `no', otherwise this would lead to `EXEEXT = no'+# in a Makefile. We should not override ac_cv_exeext if it was cached,+# so that the user can short-circuit this test for compilers unknown to+# Autoconf.+for ac_file in $ac_files ''+do+ test -f "$ac_file" || continue+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj )+ ;;+ [ab].out )+ # We found the default executable, but exeext='' is most+ # certainly right.+ break;;+ *.* )+ if test "${ac_cv_exeext+set}" = set && test "$ac_cv_exeext" != no;+ then :; else+ ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`+ fi+ # We set ac_cv_exeext here because the later test for it is not+ # safe: cross compilers may not add the suffix if given an `-o'+ # argument, so we may need to know it at that point already.+ # Even if this section looks crufty: it has the advantage of+ # actually working.+ break;;+ * )+ break;;+ esac+done+test "$ac_cv_exeext" = no && ac_cv_exeext=++else+ ac_file=''+fi++{ $as_echo "$as_me:$LINENO: result: $ac_file" >&5+$as_echo "$ac_file" >&6; }+if test -z "$ac_file"; then+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: C compiler cannot create executables+See \`config.log' for more details." >&5+$as_echo "$as_me: error: C compiler cannot create executables+See \`config.log' for more details." >&2;}+ { (exit 77); exit 77; }; }; }+fi++ac_exeext=$ac_cv_exeext++# Check that the compiler produces executables we can run. If not, either+# the compiler is broken, or we cross compile.+{ $as_echo "$as_me:$LINENO: checking whether the C compiler works" >&5+$as_echo_n "checking whether the C compiler works... " >&6; }+# FIXME: These cross compiler hacks should be removed for Autoconf 3.0+# If not cross compiling, check that we can run a simple program.+if test "$cross_compiling" != yes; then+ if { ac_try='./$ac_file'+ { (case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_try") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); }; }; then+ cross_compiling=no+ else+ if test "$cross_compiling" = maybe; then+ cross_compiling=yes+ else+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: cannot run C compiled programs.+If you meant to cross compile, use \`--host'.+See \`config.log' for more details." >&5+$as_echo "$as_me: error: cannot run C compiled programs.+If you meant to cross compile, use \`--host'.+See \`config.log' for more details." >&2;}+ { (exit 1); exit 1; }; }; }+ fi+ fi+fi+{ $as_echo "$as_me:$LINENO: result: yes" >&5+$as_echo "yes" >&6; }++rm -f -r a.out a.out.dSYM a.exe conftest$ac_cv_exeext b.out+ac_clean_files=$ac_clean_files_save+# Check that the compiler produces executables we can run. If not, either+# the compiler is broken, or we cross compile.+{ $as_echo "$as_me:$LINENO: checking whether we are cross compiling" >&5+$as_echo_n "checking whether we are cross compiling... " >&6; }+{ $as_echo "$as_me:$LINENO: result: $cross_compiling" >&5+$as_echo "$cross_compiling" >&6; }++{ $as_echo "$as_me:$LINENO: checking for suffix of executables" >&5+$as_echo_n "checking for suffix of executables... " >&6; }+if { (ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_link") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); }; then+ # If both `conftest.exe' and `conftest' are `present' (well, observable)+# catch `conftest.exe'. For instance with Cygwin, `ls conftest' will+# work properly (i.e., refer to `conftest.exe'), while it won't with+# `rm'.+for ac_file in conftest.exe conftest conftest.*; do+ test -f "$ac_file" || continue+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM | *.o | *.obj ) ;;+ *.* ) ac_cv_exeext=`expr "$ac_file" : '[^.]*\(\..*\)'`+ break;;+ * ) break;;+ esac+done+else+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of executables: cannot compile and link+See \`config.log' for more details." >&5+$as_echo "$as_me: error: cannot compute suffix of executables: cannot compile and link+See \`config.log' for more details." >&2;}+ { (exit 1); exit 1; }; }; }+fi++rm -f conftest$ac_cv_exeext+{ $as_echo "$as_me:$LINENO: result: $ac_cv_exeext" >&5+$as_echo "$ac_cv_exeext" >&6; }++rm -f conftest.$ac_ext+EXEEXT=$ac_cv_exeext+ac_exeext=$EXEEXT+{ $as_echo "$as_me:$LINENO: checking for suffix of object files" >&5+$as_echo_n "checking for suffix of object files... " >&6; }+if test "${ac_cv_objext+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+rm -f conftest.o conftest.obj+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); }; then+ for ac_file in conftest.o conftest.obj conftest.*; do+ test -f "$ac_file" || continue;+ case $ac_file in+ *.$ac_ext | *.xcoff | *.tds | *.d | *.pdb | *.xSYM | *.bb | *.bbg | *.map | *.inf | *.dSYM ) ;;+ *) ac_cv_objext=`expr "$ac_file" : '.*\.\(.*\)'`+ break;;+ esac+done+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++{ { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: cannot compute suffix of object files: cannot compile+See \`config.log' for more details." >&5+$as_echo "$as_me: error: cannot compute suffix of object files: cannot compile+See \`config.log' for more details." >&2;}+ { (exit 1); exit 1; }; }; }+fi++rm -f conftest.$ac_cv_objext conftest.$ac_ext+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_objext" >&5+$as_echo "$ac_cv_objext" >&6; }+OBJEXT=$ac_cv_objext+ac_objext=$OBJEXT+{ $as_echo "$as_me:$LINENO: checking whether we are using the GNU C compiler" >&5+$as_echo_n "checking whether we are using the GNU C compiler... " >&6; }+if test "${ac_cv_c_compiler_gnu+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */++int+main ()+{+#ifndef __GNUC__+ choke me+#endif++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ ac_compiler_gnu=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_compiler_gnu=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ac_cv_c_compiler_gnu=$ac_compiler_gnu++fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_c_compiler_gnu" >&5+$as_echo "$ac_cv_c_compiler_gnu" >&6; }+if test $ac_compiler_gnu = yes; then+ GCC=yes+else+ GCC=+fi+ac_test_CFLAGS=${CFLAGS+set}+ac_save_CFLAGS=$CFLAGS+{ $as_echo "$as_me:$LINENO: checking whether $CC accepts -g" >&5+$as_echo_n "checking whether $CC accepts -g... " >&6; }+if test "${ac_cv_prog_cc_g+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ ac_save_c_werror_flag=$ac_c_werror_flag+ ac_c_werror_flag=yes+ ac_cv_prog_cc_g=no+ CFLAGS="-g"+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ ac_cv_prog_cc_g=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ CFLAGS=""+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ :+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_c_werror_flag=$ac_save_c_werror_flag+ CFLAGS="-g"+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */++int+main ()+{++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ ac_cv_prog_cc_g=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+ ac_c_werror_flag=$ac_save_c_werror_flag+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_g" >&5+$as_echo "$ac_cv_prog_cc_g" >&6; }+if test "$ac_test_CFLAGS" = set; then+ CFLAGS=$ac_save_CFLAGS+elif test $ac_cv_prog_cc_g = yes; then+ if test "$GCC" = yes; then+ CFLAGS="-g -O2"+ else+ CFLAGS="-g"+ fi+else+ if test "$GCC" = yes; then+ CFLAGS="-O2"+ else+ CFLAGS=+ fi+fi+{ $as_echo "$as_me:$LINENO: checking for $CC option to accept ISO C89" >&5+$as_echo_n "checking for $CC option to accept ISO C89... " >&6; }+if test "${ac_cv_prog_cc_c89+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ ac_cv_prog_cc_c89=no+ac_save_CC=$CC+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <stdarg.h>+#include <stdio.h>+#include <sys/types.h>+#include <sys/stat.h>+/* Most of the following tests are stolen from RCS 5.7's src/conf.sh. */+struct buf { int x; };+FILE * (*rcsopen) (struct buf *, struct stat *, int);+static char *e (p, i)+ char **p;+ int i;+{+ return p[i];+}+static char *f (char * (*g) (char **, int), char **p, ...)+{+ char *s;+ va_list v;+ va_start (v,p);+ s = g (p, va_arg (v,int));+ va_end (v);+ return s;+}++/* OSF 4.0 Compaq cc is some sort of almost-ANSI by default. It has+ function prototypes and stuff, but not '\xHH' hex character constants.+ These don't provoke an error unfortunately, instead are silently treated+ as 'x'. The following induces an error, until -std is added to get+ proper ANSI mode. Curiously '\x00'!='x' always comes out true, for an+ array size at least. It's necessary to write '\x00'==0 to get something+ that's true only with -std. */+int osf4_cc_array ['\x00' == 0 ? 1 : -1];++/* IBM C 6 for AIX is almost-ANSI by default, but it replaces macro parameters+ inside strings and character constants. */+#define FOO(x) 'x'+int xlc6_cc_array[FOO(a) == 'x' ? 1 : -1];++int test (int i, double x);+struct s1 {int (*f) (int a);};+struct s2 {int (*f) (double a);};+int pairnames (int, char **, FILE *(*)(struct buf *, struct stat *, int), int, int);+int argc;+char **argv;+int+main ()+{+return f (e, argv, 0) != argv[0] || f (e, argv, 1) != argv[1];+ ;+ return 0;+}+_ACEOF+for ac_arg in '' -qlanglvl=extc89 -qlanglvl=ansi -std \+ -Ae "-Aa -D_HPUX_SOURCE" "-Xc -D__EXTENSIONS__"+do+ CC="$ac_save_CC $ac_arg"+ rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ ac_cv_prog_cc_c89=$ac_arg+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++fi++rm -f core conftest.err conftest.$ac_objext+ test "x$ac_cv_prog_cc_c89" != "xno" && break+done+rm -f conftest.$ac_ext+CC=$ac_save_CC++fi+# AC_CACHE_VAL+case "x$ac_cv_prog_cc_c89" in+ x)+ { $as_echo "$as_me:$LINENO: result: none needed" >&5+$as_echo "none needed" >&6; } ;;+ xno)+ { $as_echo "$as_me:$LINENO: result: unsupported" >&5+$as_echo "unsupported" >&6; } ;;+ *)+ CC="$CC $ac_cv_prog_cc_c89"+ { $as_echo "$as_me:$LINENO: result: $ac_cv_prog_cc_c89" >&5+$as_echo "$ac_cv_prog_cc_c89" >&6; } ;;+esac+++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++ac_aux_dir=+for ac_dir in "$srcdir" "$srcdir/.." "$srcdir/../.."; do+ if test -f "$ac_dir/install-sh"; then+ ac_aux_dir=$ac_dir+ ac_install_sh="$ac_aux_dir/install-sh -c"+ break+ elif test -f "$ac_dir/install.sh"; then+ ac_aux_dir=$ac_dir+ ac_install_sh="$ac_aux_dir/install.sh -c"+ break+ elif test -f "$ac_dir/shtool"; then+ ac_aux_dir=$ac_dir+ ac_install_sh="$ac_aux_dir/shtool install -c"+ break+ fi+done+if test -z "$ac_aux_dir"; then+ { { $as_echo "$as_me:$LINENO: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&5+$as_echo "$as_me: error: cannot find install-sh or install.sh in \"$srcdir\" \"$srcdir/..\" \"$srcdir/../..\"" >&2;}+ { (exit 1); exit 1; }; }+fi++# These three variables are undocumented and unsupported,+# and are intended to be withdrawn in a future Autoconf release.+# They can cause serious problems if a builder's source tree is in a directory+# whose full name contains unusual characters.+ac_config_guess="$SHELL $ac_aux_dir/config.guess" # Please don't use this var.+ac_config_sub="$SHELL $ac_aux_dir/config.sub" # Please don't use this var.+ac_configure="$SHELL $ac_aux_dir/configure" # Please don't use this var.+++# Find a good install program. We prefer a C program (faster),+# so one script is as good as another. But avoid the broken or+# incompatible versions:+# SysV /etc/install, /usr/sbin/install+# SunOS /usr/etc/install+# IRIX /sbin/install+# AIX /bin/install+# AmigaOS /C/install, which installs bootblocks on floppy discs+# AIX 4 /usr/bin/installbsd, which doesn't work without a -g flag+# AFS /usr/afsws/bin/install, which mishandles nonexistent args+# SVR4 /usr/ucb/install, which tries to use the nonexistent group "staff"+# OS/2's system install, which has a completely different semantic+# ./install, which can be erroneously created by make from ./install.sh.+# Reject install programs that cannot install multiple files.+{ $as_echo "$as_me:$LINENO: checking for a BSD-compatible install" >&5+$as_echo_n "checking for a BSD-compatible install... " >&6; }+if test -z "$INSTALL"; then+if test "${ac_cv_path_install+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ # Account for people who put trailing slashes in PATH elements.+case $as_dir/ in+ ./ | .// | /cC/* | \+ /etc/* | /usr/sbin/* | /usr/etc/* | /sbin/* | /usr/afsws/bin/* | \+ ?:\\/os2\\/install\\/* | ?:\\/OS2\\/INSTALL\\/* | \+ /usr/ucb/* ) ;;+ *)+ # OSF1 and SCO ODT 3.0 have their own names for install.+ # Don't use installbsd from OSF since it installs stuff as root+ # by default.+ for ac_prog in ginstall scoinst install; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ if { test -f "$as_dir/$ac_prog$ac_exec_ext" && $as_test_x "$as_dir/$ac_prog$ac_exec_ext"; }; then+ if test $ac_prog = install &&+ grep dspmsg "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then+ # AIX install. It has an incompatible calling convention.+ :+ elif test $ac_prog = install &&+ grep pwplus "$as_dir/$ac_prog$ac_exec_ext" >/dev/null 2>&1; then+ # program-specific install script used by HP pwplus--don't use.+ :+ else+ rm -rf conftest.one conftest.two conftest.dir+ echo one > conftest.one+ echo two > conftest.two+ mkdir conftest.dir+ if "$as_dir/$ac_prog$ac_exec_ext" -c conftest.one conftest.two "`pwd`/conftest.dir" &&+ test -s conftest.one && test -s conftest.two &&+ test -s conftest.dir/conftest.one &&+ test -s conftest.dir/conftest.two+ then+ ac_cv_path_install="$as_dir/$ac_prog$ac_exec_ext -c"+ break 3+ fi+ fi+ fi+ done+ done+ ;;+esac++done+IFS=$as_save_IFS++rm -rf conftest.one conftest.two conftest.dir++fi+ if test "${ac_cv_path_install+set}" = set; then+ INSTALL=$ac_cv_path_install+ else+ # As a last resort, use the slow shell script. Don't cache a+ # value for INSTALL within a source directory, because that will+ # break other packages using the cache if that directory is+ # removed, or if the value is a relative name.+ INSTALL=$ac_install_sh+ fi+fi+{ $as_echo "$as_me:$LINENO: result: $INSTALL" >&5+$as_echo "$INSTALL" >&6; }++# Use test -z because SunOS4 sh mishandles braces in ${var-val}.+# It thinks the first close brace ends the variable substitution.+test -z "$INSTALL_PROGRAM" && INSTALL_PROGRAM='${INSTALL}'++test -z "$INSTALL_SCRIPT" && INSTALL_SCRIPT='${INSTALL}'++test -z "$INSTALL_DATA" && INSTALL_DATA='${INSTALL} -m 644'+++# Force building 32-bit applications since we're not 64-bit clean.+#+# GCC accepts -m32 on most architectures that might have a corresponding+# 64-bit architecture, for example sparc and MIPS.++old_CFLAGS="$CFLAGS"+CFLAGS="$CFLAGS -m32"++cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */++int+main ()+{+return 1;++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ :+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ CFLAGS="$old_CFLAGS"++fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++# Checks for libraries.++# Look for pthreads.+# Make sure we can run config.sub.+$SHELL "$ac_aux_dir/config.sub" sun4 >/dev/null 2>&1 ||+ { { $as_echo "$as_me:$LINENO: error: cannot run $SHELL $ac_aux_dir/config.sub" >&5+$as_echo "$as_me: error: cannot run $SHELL $ac_aux_dir/config.sub" >&2;}+ { (exit 1); exit 1; }; }++{ $as_echo "$as_me:$LINENO: checking build system type" >&5+$as_echo_n "checking build system type... " >&6; }+if test "${ac_cv_build+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ ac_build_alias=$build_alias+test "x$ac_build_alias" = x &&+ ac_build_alias=`$SHELL "$ac_aux_dir/config.guess"`+test "x$ac_build_alias" = x &&+ { { $as_echo "$as_me:$LINENO: error: cannot guess build type; you must specify one" >&5+$as_echo "$as_me: error: cannot guess build type; you must specify one" >&2;}+ { (exit 1); exit 1; }; }+ac_cv_build=`$SHELL "$ac_aux_dir/config.sub" $ac_build_alias` ||+ { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&5+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $ac_build_alias failed" >&2;}+ { (exit 1); exit 1; }; }++fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_build" >&5+$as_echo "$ac_cv_build" >&6; }+case $ac_cv_build in+*-*-*) ;;+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical build" >&5+$as_echo "$as_me: error: invalid value of canonical build" >&2;}+ { (exit 1); exit 1; }; };;+esac+build=$ac_cv_build+ac_save_IFS=$IFS; IFS='-'+set x $ac_cv_build+shift+build_cpu=$1+build_vendor=$2+shift; shift+# Remember, the first character of IFS is used to create $*,+# except with old shells:+build_os=$*+IFS=$ac_save_IFS+case $build_os in *\ *) build_os=`echo "$build_os" | sed 's/ /-/g'`;; esac+++{ $as_echo "$as_me:$LINENO: checking host system type" >&5+$as_echo_n "checking host system type... " >&6; }+if test "${ac_cv_host+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test "x$host_alias" = x; then+ ac_cv_host=$ac_cv_build+else+ ac_cv_host=`$SHELL "$ac_aux_dir/config.sub" $host_alias` ||+ { { $as_echo "$as_me:$LINENO: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&5+$as_echo "$as_me: error: $SHELL $ac_aux_dir/config.sub $host_alias failed" >&2;}+ { (exit 1); exit 1; }; }+fi++fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_host" >&5+$as_echo "$ac_cv_host" >&6; }+case $ac_cv_host in+*-*-*) ;;+*) { { $as_echo "$as_me:$LINENO: error: invalid value of canonical host" >&5+$as_echo "$as_me: error: invalid value of canonical host" >&2;}+ { (exit 1); exit 1; }; };;+esac+host=$ac_cv_host+ac_save_IFS=$IFS; IFS='-'+set x $ac_cv_host+shift+host_cpu=$1+host_vendor=$2+shift; shift+# Remember, the first character of IFS is used to create $*,+# except with old shells:+host_os=$*+IFS=$ac_save_IFS+case $host_os in *\ *) host_os=`echo "$host_os" | sed 's/ /-/g'`;; esac++++++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++acx_pthread_ok=no++# We used to check for pthread.h first, but this fails if pthread.h+# requires special compiler flags (e.g. on True64 or Sequent).+# It gets checked for in the link test anyway.++# First of all, check if the user has set any of the PTHREAD_LIBS,+# etcetera environment variables, and if threads linking works using+# them:+if test x"$PTHREAD_LIBS$PTHREAD_CFLAGS" != x; then+ save_CFLAGS="$CFLAGS"+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"+ save_LIBS="$LIBS"+ LIBS="$PTHREAD_LIBS $LIBS"+ { $as_echo "$as_me:$LINENO: checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS" >&5+$as_echo_n "checking for pthread_join in LIBS=$PTHREAD_LIBS with CFLAGS=$PTHREAD_CFLAGS... " >&6; }+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */++/* Override any GCC internal prototype to avoid an error.+ Use char because int might match the return type of a GCC+ builtin and then its argument prototype would still apply. */+#ifdef __cplusplus+extern "C"+#endif+char pthread_join ();+int+main ()+{+return pthread_join ();+ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_link") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest$ac_exeext && {+ test "$cross_compiling" = yes ||+ $as_test_x conftest$ac_exeext+ }; then+ acx_pthread_ok=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+ conftest$ac_exeext conftest.$ac_ext+ { $as_echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5+$as_echo "$acx_pthread_ok" >&6; }+ if test x"$acx_pthread_ok" = xno; then+ PTHREAD_LIBS=""+ PTHREAD_CFLAGS=""+ fi+ LIBS="$save_LIBS"+ CFLAGS="$save_CFLAGS"+fi++# We must check for the threads library under a number of different+# names; the ordering is very important because some systems+# (e.g. DEC) have both -lpthread and -lpthreads, where one of the+# libraries is broken (non-POSIX).++# Create a list of thread flags to try. Items starting with a "-" are+# C compiler flags, and other items are library names, except for "none"+# which indicates that we try without any flags at all, and "pthread-config"+# which is a program returning the flags for the Pth emulation library.++acx_pthread_flags="pthreads none -Kthread -kthread lthread -pthread -pthreads -mthreads pthread --thread-safe -mt pthread-config"++# The ordering *is* (sometimes) important. Some notes on the+# individual items follow:++# pthreads: AIX (must check this before -lpthread)+# none: in case threads are in libc; should be tried before -Kthread and+# other compiler flags to prevent continual compiler warnings+# -Kthread: Sequent (threads in libc, but -Kthread needed for pthread.h)+# -kthread: FreeBSD kernel threads (preferred to -pthread since SMP-able)+# lthread: LinuxThreads port on FreeBSD (also preferred to -pthread)+# -pthread: Linux/gcc (kernel threads), BSD/gcc (userland threads)+# -pthreads: Solaris/gcc+# -mthreads: Mingw32/gcc, Lynx/gcc+# -mt: Sun Workshop C (may only link SunOS threads [-lthread], but it+# doesn't hurt to check since this sometimes defines pthreads too;+# also defines -D_REENTRANT)+# ... -mt is also the pthreads flag for HP/aCC+# pthread: Linux, etcetera+# --thread-safe: KAI C+++# pthread-config: use pthread-config program (for GNU Pth library)++case "${host_cpu}-${host_os}" in+ *solaris*)++ # On Solaris (at least, for some versions), libc contains stubbed+ # (non-functional) versions of the pthreads routines, so link-based+ # tests will erroneously succeed. (We need to link with -pthreads/-mt/+ # -lpthread.) (The stubs are missing pthread_cleanup_push, or rather+ # a function called by this macro, so we could check for that, but+ # who knows whether they'll stub that too in a future libc.) So,+ # we'll just look for -pthreads and -lpthread first:++ acx_pthread_flags="-pthreads pthread -mt -pthread $acx_pthread_flags"+ ;;+esac++if test x"$acx_pthread_ok" = xno; then+for flag in $acx_pthread_flags; do++ case $flag in+ none)+ { $as_echo "$as_me:$LINENO: checking whether pthreads work without any flags" >&5+$as_echo_n "checking whether pthreads work without any flags... " >&6; }+ ;;++ -*)+ { $as_echo "$as_me:$LINENO: checking whether pthreads work with $flag" >&5+$as_echo_n "checking whether pthreads work with $flag... " >&6; }+ PTHREAD_CFLAGS="$flag"+ ;;++ pthread-config)+ # Extract the first word of "pthread-config", so it can be a program name with args.+set dummy pthread-config; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_acx_pthread_config+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test -n "$acx_pthread_config"; then+ ac_cv_prog_acx_pthread_config="$acx_pthread_config" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+ ac_cv_prog_acx_pthread_config="yes"+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+done+IFS=$as_save_IFS++ test -z "$ac_cv_prog_acx_pthread_config" && ac_cv_prog_acx_pthread_config="no"+fi+fi+acx_pthread_config=$ac_cv_prog_acx_pthread_config+if test -n "$acx_pthread_config"; then+ { $as_echo "$as_me:$LINENO: result: $acx_pthread_config" >&5+$as_echo "$acx_pthread_config" >&6; }+else+ { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++ if test x"$acx_pthread_config" = xno; then continue; fi+ PTHREAD_CFLAGS="`pthread-config --cflags`"+ PTHREAD_LIBS="`pthread-config --ldflags` `pthread-config --libs`"+ ;;++ *)+ { $as_echo "$as_me:$LINENO: checking for the pthreads library -l$flag" >&5+$as_echo_n "checking for the pthreads library -l$flag... " >&6; }+ PTHREAD_LIBS="-l$flag"+ ;;+ esac++ save_LIBS="$LIBS"+ save_CFLAGS="$CFLAGS"+ LIBS="$PTHREAD_LIBS $LIBS"+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"++ # Check for various functions. We must include pthread.h,+ # since some functions may be macros. (On the Sequent, we+ # need a special flag -Kthread to make this header compile.)+ # We check for pthread_join because it is in -lpthread on IRIX+ # while pthread_create is in libc. We check for pthread_attr_init+ # due to DEC craziness with -lpthreads. We check for+ # pthread_cleanup_push because it is one of the few pthread+ # functions on Solaris that doesn't have a non-functional libc stub.+ # We try pthread_create on general principles.+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <pthread.h>+int+main ()+{+pthread_t th; pthread_join(th, 0);+ pthread_attr_init(0); pthread_cleanup_push(0, 0);+ pthread_create(0,0,0,0); pthread_cleanup_pop(0);+ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_link") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest$ac_exeext && {+ test "$cross_compiling" = yes ||+ $as_test_x conftest$ac_exeext+ }; then+ acx_pthread_ok=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+ conftest$ac_exeext conftest.$ac_ext++ LIBS="$save_LIBS"+ CFLAGS="$save_CFLAGS"++ { $as_echo "$as_me:$LINENO: result: $acx_pthread_ok" >&5+$as_echo "$acx_pthread_ok" >&6; }+ if test "x$acx_pthread_ok" = xyes; then+ break;+ fi++ PTHREAD_LIBS=""+ PTHREAD_CFLAGS=""+done+fi++# Various other checks:+if test "x$acx_pthread_ok" = xyes; then+ save_LIBS="$LIBS"+ LIBS="$PTHREAD_LIBS $LIBS"+ save_CFLAGS="$CFLAGS"+ CFLAGS="$CFLAGS $PTHREAD_CFLAGS"++ # Detect AIX lossage: JOINABLE attribute is called UNDETACHED.+ { $as_echo "$as_me:$LINENO: checking for joinable pthread attribute" >&5+$as_echo_n "checking for joinable pthread attribute... " >&6; }+ attr_name=unknown+ for attr in PTHREAD_CREATE_JOINABLE PTHREAD_CREATE_UNDETACHED; do+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <pthread.h>+int+main ()+{+int attr=$attr; return attr;+ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_link") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest$ac_exeext && {+ test "$cross_compiling" = yes ||+ $as_test_x conftest$ac_exeext+ }; then+ attr_name=$attr; break+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+ conftest$ac_exeext conftest.$ac_ext+ done+ { $as_echo "$as_me:$LINENO: result: $attr_name" >&5+$as_echo "$attr_name" >&6; }+ if test "$attr_name" != PTHREAD_CREATE_JOINABLE; then++cat >>confdefs.h <<_ACEOF+#define PTHREAD_CREATE_JOINABLE $attr_name+_ACEOF++ fi++ { $as_echo "$as_me:$LINENO: checking if more special flags are required for pthreads" >&5+$as_echo_n "checking if more special flags are required for pthreads... " >&6; }+ flag=no+ case "${host_cpu}-${host_os}" in+ *-aix* | *-freebsd* | *-darwin*) flag="-D_THREAD_SAFE";;+ *solaris* | *-osf* | *-hpux*) flag="-D_REENTRANT";;+ esac+ { $as_echo "$as_me:$LINENO: result: ${flag}" >&5+$as_echo "${flag}" >&6; }+ if test "x$flag" != xno; then+ PTHREAD_CFLAGS="$flag $PTHREAD_CFLAGS"+ fi++ LIBS="$save_LIBS"+ CFLAGS="$save_CFLAGS"++ # More AIX lossage: must compile with xlc_r or cc_r+ if test x"$GCC" != xyes; then+ for ac_prog in xlc_r cc_r+do+ # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_PTHREAD_CC+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test -n "$PTHREAD_CC"; then+ ac_cv_prog_PTHREAD_CC="$PTHREAD_CC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+ ac_cv_prog_PTHREAD_CC="$ac_prog"+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+done+IFS=$as_save_IFS++fi+fi+PTHREAD_CC=$ac_cv_prog_PTHREAD_CC+if test -n "$PTHREAD_CC"; then+ { $as_echo "$as_me:$LINENO: result: $PTHREAD_CC" >&5+$as_echo "$PTHREAD_CC" >&6; }+else+ { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$PTHREAD_CC" && break+done+test -n "$PTHREAD_CC" || PTHREAD_CC="${CC}"++ else+ PTHREAD_CC=$CC+ fi+else+ PTHREAD_CC="$CC"+fi++++++# Finally, execute ACTION-IF-FOUND/ACTION-IF-NOT-FOUND:+if test x"$acx_pthread_ok" = xyes; then++cat >>confdefs.h <<\_ACEOF+#define HAVE_PTHREAD 1+_ACEOF++ :+else+ acx_pthread_ok=no++fi+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu++++if test "$THREAD_SUPPORT" = "no"; then+ { { $as_echo "$as_me:$LINENO: error: Cannot enable threads on this platform." >&5+$as_echo "$as_me: error: Cannot enable threads on this platform." >&2;}+ { (exit 1); exit 1; }; }+fi++CC="$PTHREAD_CC"+CFLAGS="$CFLAGS $PTHREAD_CFLAGS"+LIBS="$PTHREAD_LIBS $LIBS"++# Make sure that pthread realtime-threads extension is available. This is+# not the default behaviour on most GNU/Linux dists. If it turns out that+# the realtime-threads extension is not available we add -D_GNU_SOURCE=1+# as this should enable all extensions on most GNU/Linux dists. For more+# information please see <features.h>.+{ $as_echo "$as_me:$LINENO: checking pthread realtime-threads extension" >&5+$as_echo_n "checking pthread realtime-threads extension... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <pthread.h>+int+main ()+{+pthread_mutexattr_setprotocol(NULL, PTHREAD_PRIO_INHERIT);++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ need_gnu_source=no+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ need_gnu_source=yes++fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++if test "x$need_gnu_source" = "xyes"; then+ CFLAGS="$CFLAGS -D_GNU_SOURCE=1"+fi++# Finalize the checking for pthread realtime-threads extension. This may+# still fail if -D_GNU_SOURCE=1 does not enable the realtime-threads+# extension. I this is the case then we are either running this on a+# system without the realtime-threads extension or we need to perform some+# other kind of black magic to enable it. If you know of any such platform+# then please feel free to send a patch.+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <pthread.h>+int+main ()+{+pthread_mutexattr_setprotocol(NULL, PTHREAD_PRIO_INHERIT);++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ { $as_echo "$as_me:$LINENO: result: yes" >&5+$as_echo "yes" >&6; }+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: no+See \`config.log' for more details." >&5+$as_echo "$as_me: error: no+See \`config.log' for more details." >&2;}+ { (exit 1); exit 1; }; }; }++fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+++# Check whether --with-timberc was given.+if test "${with_timberc+set}" = set; then+ withval=$with_timberc; with_timberc=$withval++fi+++if test "x$with_timberc" = "x"; then+ for ac_prog in timberc+do+ # Extract the first word of "$ac_prog", so it can be a program name with args.+set dummy $ac_prog; ac_word=$2+{ $as_echo "$as_me:$LINENO: checking for $ac_word" >&5+$as_echo_n "checking for $ac_word... " >&6; }+if test "${ac_cv_prog_TIMBERC+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test -n "$TIMBERC"; then+ ac_cv_prog_TIMBERC="$TIMBERC" # Let the user override the test.+else+as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_exec_ext in '' $ac_executable_extensions; do+ if { test -f "$as_dir/$ac_word$ac_exec_ext" && $as_test_x "$as_dir/$ac_word$ac_exec_ext"; }; then+ ac_cv_prog_TIMBERC="$ac_prog"+ $as_echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5+ break 2+ fi+done+done+IFS=$as_save_IFS++fi+fi+TIMBERC=$ac_cv_prog_TIMBERC+if test -n "$TIMBERC"; then+ { $as_echo "$as_me:$LINENO: result: $TIMBERC" >&5+$as_echo "$TIMBERC" >&6; }+else+ { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+fi+++ test -n "$TIMBERC" && break+done++else+ TIMBERC="$with_timberc"+fi++if test "x$TIMBERC" = "x"; then+ { { $as_echo "$as_me:$LINENO: error: Timberc not found." >&5+$as_echo "$as_me: error: Timberc not found." >&2;}+ { (exit 1); exit 1; }; }+fi++# Checks for header files.+ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+{ $as_echo "$as_me:$LINENO: checking how to run the C preprocessor" >&5+$as_echo_n "checking how to run the C preprocessor... " >&6; }+# On Suns, sometimes $CPP names a directory.+if test -n "$CPP" && test -d "$CPP"; then+ CPP=+fi+if test -z "$CPP"; then+ if test "${ac_cv_prog_CPP+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ # Double quotes because CPP needs to be expanded+ for CPP in "$CC -E" "$CC -E -traditional-cpp" "/lib/cpp"+ do+ ac_preproc_ok=false+for ac_c_preproc_warn_flag in '' yes+do+ # Use a header file that comes with gcc, so configuring glibc+ # with a fresh cross-compiler works.+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+ # <limits.h> exists even on freestanding compilers.+ # On the NeXT, cc -E runs the code through the compiler's parser,+ # not just through cpp. "Syntax error" is here to catch this case.+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif+ Syntax error+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } >/dev/null && {+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+ test ! -s conftest.err+ }; then+ :+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ # Broken: fails on valid input.+continue+fi++rm -f conftest.err conftest.$ac_ext++ # OK, works on sane cases. Now check whether nonexistent headers+ # can be detected and how.+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <ac_nonexistent.h>+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } >/dev/null && {+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+ test ! -s conftest.err+ }; then+ # Broken: success on invalid input.+continue+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ # Passes both tests.+ac_preproc_ok=:+break+fi++rm -f conftest.err conftest.$ac_ext++done+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.+rm -f conftest.err conftest.$ac_ext+if $ac_preproc_ok; then+ break+fi++ done+ ac_cv_prog_CPP=$CPP++fi+ CPP=$ac_cv_prog_CPP+else+ ac_cv_prog_CPP=$CPP+fi+{ $as_echo "$as_me:$LINENO: result: $CPP" >&5+$as_echo "$CPP" >&6; }+ac_preproc_ok=false+for ac_c_preproc_warn_flag in '' yes+do+ # Use a header file that comes with gcc, so configuring glibc+ # with a fresh cross-compiler works.+ # Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+ # <limits.h> exists even on freestanding compilers.+ # On the NeXT, cc -E runs the code through the compiler's parser,+ # not just through cpp. "Syntax error" is here to catch this case.+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif+ Syntax error+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } >/dev/null && {+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+ test ! -s conftest.err+ }; then+ :+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ # Broken: fails on valid input.+continue+fi++rm -f conftest.err conftest.$ac_ext++ # OK, works on sane cases. Now check whether nonexistent headers+ # can be detected and how.+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <ac_nonexistent.h>+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } >/dev/null && {+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+ test ! -s conftest.err+ }; then+ # Broken: success on invalid input.+continue+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ # Passes both tests.+ac_preproc_ok=:+break+fi++rm -f conftest.err conftest.$ac_ext++done+# Because of `break', _AC_PREPROC_IFELSE's cleaning code was skipped.+rm -f conftest.err conftest.$ac_ext+if $ac_preproc_ok; then+ :+else+ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: C preprocessor \"$CPP\" fails sanity check+See \`config.log' for more details." >&5+$as_echo "$as_me: error: C preprocessor \"$CPP\" fails sanity check+See \`config.log' for more details." >&2;}+ { (exit 1); exit 1; }; }; }+fi++ac_ext=c+ac_cpp='$CPP $CPPFLAGS'+ac_compile='$CC -c $CFLAGS $CPPFLAGS conftest.$ac_ext >&5'+ac_link='$CC -o conftest$ac_exeext $CFLAGS $CPPFLAGS $LDFLAGS conftest.$ac_ext $LIBS >&5'+ac_compiler_gnu=$ac_cv_c_compiler_gnu+++{ $as_echo "$as_me:$LINENO: checking for grep that handles long lines and -e" >&5+$as_echo_n "checking for grep that handles long lines and -e... " >&6; }+if test "${ac_cv_path_GREP+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test -z "$GREP"; then+ ac_path_GREP_found=false+ # Loop through the user's path and test for each of PROGNAME-LIST+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_prog in grep ggrep; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ ac_path_GREP="$as_dir/$ac_prog$ac_exec_ext"+ { test -f "$ac_path_GREP" && $as_test_x "$ac_path_GREP"; } || continue+# Check for GNU ac_path_GREP and select it if it is found.+ # Check for GNU $ac_path_GREP+case `"$ac_path_GREP" --version 2>&1` in+*GNU*)+ ac_cv_path_GREP="$ac_path_GREP" ac_path_GREP_found=:;;+*)+ ac_count=0+ $as_echo_n 0123456789 >"conftest.in"+ while :+ do+ cat "conftest.in" "conftest.in" >"conftest.tmp"+ mv "conftest.tmp" "conftest.in"+ cp "conftest.in" "conftest.nl"+ $as_echo 'GREP' >> "conftest.nl"+ "$ac_path_GREP" -e 'GREP$' -e '-(cannot match)-' < "conftest.nl" >"conftest.out" 2>/dev/null || break+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break+ ac_count=`expr $ac_count + 1`+ if test $ac_count -gt ${ac_path_GREP_max-0}; then+ # Best one so far, save it but keep looking for a better one+ ac_cv_path_GREP="$ac_path_GREP"+ ac_path_GREP_max=$ac_count+ fi+ # 10*(2^10) chars as input seems more than enough+ test $ac_count -gt 10 && break+ done+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;+esac++ $ac_path_GREP_found && break 3+ done+ done+done+IFS=$as_save_IFS+ if test -z "$ac_cv_path_GREP"; then+ { { $as_echo "$as_me:$LINENO: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5+$as_echo "$as_me: error: no acceptable grep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}+ { (exit 1); exit 1; }; }+ fi+else+ ac_cv_path_GREP=$GREP+fi++fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_GREP" >&5+$as_echo "$ac_cv_path_GREP" >&6; }+ GREP="$ac_cv_path_GREP"+++{ $as_echo "$as_me:$LINENO: checking for egrep" >&5+$as_echo_n "checking for egrep... " >&6; }+if test "${ac_cv_path_EGREP+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if echo a | $GREP -E '(a|b)' >/dev/null 2>&1+ then ac_cv_path_EGREP="$GREP -E"+ else+ if test -z "$EGREP"; then+ ac_path_EGREP_found=false+ # Loop through the user's path and test for each of PROGNAME-LIST+ as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH$PATH_SEPARATOR/usr/xpg4/bin+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ for ac_prog in egrep; do+ for ac_exec_ext in '' $ac_executable_extensions; do+ ac_path_EGREP="$as_dir/$ac_prog$ac_exec_ext"+ { test -f "$ac_path_EGREP" && $as_test_x "$ac_path_EGREP"; } || continue+# Check for GNU ac_path_EGREP and select it if it is found.+ # Check for GNU $ac_path_EGREP+case `"$ac_path_EGREP" --version 2>&1` in+*GNU*)+ ac_cv_path_EGREP="$ac_path_EGREP" ac_path_EGREP_found=:;;+*)+ ac_count=0+ $as_echo_n 0123456789 >"conftest.in"+ while :+ do+ cat "conftest.in" "conftest.in" >"conftest.tmp"+ mv "conftest.tmp" "conftest.in"+ cp "conftest.in" "conftest.nl"+ $as_echo 'EGREP' >> "conftest.nl"+ "$ac_path_EGREP" 'EGREP$' < "conftest.nl" >"conftest.out" 2>/dev/null || break+ diff "conftest.out" "conftest.nl" >/dev/null 2>&1 || break+ ac_count=`expr $ac_count + 1`+ if test $ac_count -gt ${ac_path_EGREP_max-0}; then+ # Best one so far, save it but keep looking for a better one+ ac_cv_path_EGREP="$ac_path_EGREP"+ ac_path_EGREP_max=$ac_count+ fi+ # 10*(2^10) chars as input seems more than enough+ test $ac_count -gt 10 && break+ done+ rm -f conftest.in conftest.tmp conftest.nl conftest.out;;+esac++ $ac_path_EGREP_found && break 3+ done+ done+done+IFS=$as_save_IFS+ if test -z "$ac_cv_path_EGREP"; then+ { { $as_echo "$as_me:$LINENO: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&5+$as_echo "$as_me: error: no acceptable egrep could be found in $PATH$PATH_SEPARATOR/usr/xpg4/bin" >&2;}+ { (exit 1); exit 1; }; }+ fi+else+ ac_cv_path_EGREP=$EGREP+fi++ fi+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_path_EGREP" >&5+$as_echo "$ac_cv_path_EGREP" >&6; }+ EGREP="$ac_cv_path_EGREP"+++{ $as_echo "$as_me:$LINENO: checking for ANSI C header files" >&5+$as_echo_n "checking for ANSI C header files... " >&6; }+if test "${ac_cv_header_stdc+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <stdlib.h>+#include <stdarg.h>+#include <string.h>+#include <float.h>++int+main ()+{++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ ac_cv_header_stdc=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_cv_header_stdc=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++if test $ac_cv_header_stdc = yes; then+ # SunOS 4.x string.h does not declare mem*, contrary to ANSI.+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <string.h>++_ACEOF+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |+ $EGREP "memchr" >/dev/null 2>&1; then+ :+else+ ac_cv_header_stdc=no+fi+rm -f conftest*++fi++if test $ac_cv_header_stdc = yes; then+ # ISC 2.0.2 stdlib.h does not declare free, contrary to ANSI.+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <stdlib.h>++_ACEOF+if (eval "$ac_cpp conftest.$ac_ext") 2>&5 |+ $EGREP "free" >/dev/null 2>&1; then+ :+else+ ac_cv_header_stdc=no+fi+rm -f conftest*++fi++if test $ac_cv_header_stdc = yes; then+ # /bin/cc in Irix-4.0.5 gets non-ANSI ctype macros unless using -ansi.+ if test "$cross_compiling" = yes; then+ :+else+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <ctype.h>+#include <stdlib.h>+#if ((' ' & 0x0FF) == 0x020)+# define ISLOWER(c) ('a' <= (c) && (c) <= 'z')+# define TOUPPER(c) (ISLOWER(c) ? 'A' + ((c) - 'a') : (c))+#else+# define ISLOWER(c) \+ (('a' <= (c) && (c) <= 'i') \+ || ('j' <= (c) && (c) <= 'r') \+ || ('s' <= (c) && (c) <= 'z'))+# define TOUPPER(c) (ISLOWER(c) ? ((c) | 0x40) : (c))+#endif++#define XOR(e, f) (((e) && !(f)) || (!(e) && (f)))+int+main ()+{+ int i;+ for (i = 0; i < 256; i++)+ if (XOR (islower (i), ISLOWER (i))+ || toupper (i) != TOUPPER (i))+ return 2;+ return 0;+}+_ACEOF+rm -f conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_link") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'+ { (case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_try") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); }; }; then+ :+else+ $as_echo "$as_me: program exited with status $ac_status" >&5+$as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++( exit $ac_status )+ac_cv_header_stdc=no+fi+rm -rf conftest.dSYM+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext+fi+++fi+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_stdc" >&5+$as_echo "$ac_cv_header_stdc" >&6; }+if test $ac_cv_header_stdc = yes; then++cat >>confdefs.h <<\_ACEOF+#define STDC_HEADERS 1+_ACEOF++fi++# On IRIX 5.3, sys/types and inttypes.h are conflicting.++++++++++for ac_header in sys/types.h sys/stat.h stdlib.h string.h memory.h strings.h \+ inttypes.h stdint.h unistd.h+do+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5+$as_echo_n "checking for $ac_header... " >&6; }+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+ $as_echo_n "(cached) " >&6+else+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+$ac_includes_default++#include <$ac_header>+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ eval "$as_ac_Header=yes"+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ eval "$as_ac_Header=no"+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+ac_res=`eval 'as_val=${'$as_ac_Header'}+ $as_echo "$as_val"'`+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+as_val=`eval 'as_val=${'$as_ac_Header'}+ $as_echo "$as_val"'`+ if test "x$as_val" = x""yes; then+ cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1+_ACEOF++fi++done++++++for ac_header in stdlib.h sys/time.h termios.h+do+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5+$as_echo_n "checking for $ac_header... " >&6; }+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+ $as_echo_n "(cached) " >&6+fi+ac_res=`eval 'as_val=${'$as_ac_Header'}+ $as_echo "$as_val"'`+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+else+ # Is the header compilable?+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5+$as_echo_n "checking $ac_header usability... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+$ac_includes_default+#include <$ac_header>+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ ac_header_compiler=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_header_compiler=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5+$as_echo "$ac_header_compiler" >&6; }++# Is the header present?+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5+$as_echo_n "checking $ac_header presence... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <$ac_header>+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } >/dev/null && {+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+ test ! -s conftest.err+ }; then+ ac_header_preproc=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_header_preproc=no+fi++rm -f conftest.err conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5+$as_echo "$ac_header_preproc" >&6; }++# So? What about this header?+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in+ yes:no: )+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}+ ac_header_preproc=yes+ ;;+ no:yes:* )+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5+$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5+$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}+ ( cat <<\_ASBOX+## ----------------------------------- ##+## Report this to nordland@csee.ltu.se ##+## ----------------------------------- ##+_ASBOX+ ) | sed "s/^/$as_me: WARNING: /" >&2+ ;;+esac+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5+$as_echo_n "checking for $ac_header... " >&6; }+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+ $as_echo_n "(cached) " >&6+else+ eval "$as_ac_Header=\$ac_header_preproc"+fi+ac_res=`eval 'as_val=${'$as_ac_Header'}+ $as_echo "$as_val"'`+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }++fi+as_val=`eval 'as_val=${'$as_ac_Header'}+ $as_echo "$as_val"'`+ if test "x$as_val" = x""yes; then+ cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1+_ACEOF++fi++done+++if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then+ { $as_echo "$as_me:$LINENO: checking for libkern/OSAtomic.h" >&5+$as_echo_n "checking for libkern/OSAtomic.h... " >&6; }+if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then+ $as_echo_n "(cached) " >&6+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libkern_OSAtomic_h" >&5+$as_echo "$ac_cv_header_libkern_OSAtomic_h" >&6; }+else+ # Is the header compilable?+{ $as_echo "$as_me:$LINENO: checking libkern/OSAtomic.h usability" >&5+$as_echo_n "checking libkern/OSAtomic.h usability... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+$ac_includes_default+#include <libkern/OSAtomic.h>+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ ac_header_compiler=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_header_compiler=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5+$as_echo "$ac_header_compiler" >&6; }++# Is the header present?+{ $as_echo "$as_me:$LINENO: checking libkern/OSAtomic.h presence" >&5+$as_echo_n "checking libkern/OSAtomic.h presence... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <libkern/OSAtomic.h>+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } >/dev/null && {+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+ test ! -s conftest.err+ }; then+ ac_header_preproc=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_header_preproc=no+fi++rm -f conftest.err conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5+$as_echo "$ac_header_preproc" >&6; }++# So? What about this header?+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in+ yes:no: )+ { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: accepted by the compiler, rejected by the preprocessor!" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: accepted by the compiler, rejected by the preprocessor!" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: proceeding with the compiler's result" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: proceeding with the compiler's result" >&2;}+ ac_header_preproc=yes+ ;;+ no:yes:* )+ { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: present but cannot be compiled" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: present but cannot be compiled" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: check for missing prerequisite headers?" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: check for missing prerequisite headers?" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: see the Autoconf documentation" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: see the Autoconf documentation" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: section \"Present But Cannot Be Compiled\"" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: section \"Present But Cannot Be Compiled\"" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: proceeding with the preprocessor's result" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: proceeding with the preprocessor's result" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: libkern/OSAtomic.h: in the future, the compiler will take precedence" >&5+$as_echo "$as_me: WARNING: libkern/OSAtomic.h: in the future, the compiler will take precedence" >&2;}+ ( cat <<\_ASBOX+## ----------------------------------- ##+## Report this to nordland@csee.ltu.se ##+## ----------------------------------- ##+_ASBOX+ ) | sed "s/^/$as_me: WARNING: /" >&2+ ;;+esac+{ $as_echo "$as_me:$LINENO: checking for libkern/OSAtomic.h" >&5+$as_echo_n "checking for libkern/OSAtomic.h... " >&6; }+if test "${ac_cv_header_libkern_OSAtomic_h+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ ac_cv_header_libkern_OSAtomic_h=$ac_header_preproc+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_libkern_OSAtomic_h" >&5+$as_echo "$ac_cv_header_libkern_OSAtomic_h" >&6; }++fi+if test "x$ac_cv_header_libkern_OSAtomic_h" = x""yes; then++cat >>confdefs.h <<_ACEOF+#define HAVE_OSX_ATOMICS 1+_ACEOF++fi++++# Check the <sys/stat.h> header for XSI extensions. This should already be+# enable by -D_GNU_SOURCE=1, if it's supported.+# NOTE:+# While it might be possible for the compiler to optimize away the int xsi+# statement I'm not up for the challenge of writing something that is+# _impossible_ for the compiler to optimize away.+{ $as_echo "$as_me:$LINENO: checking sys/stat.h header for XSI extensions" >&5+$as_echo_n "checking sys/stat.h header for XSI extensions... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <sys/stat.h>+int+main ()+{+mode_t mode_xsi = S_IWUSR|S_IRUSR|S_IRGRP|S_IROTH;++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ { $as_echo "$as_me:$LINENO: result: yes" >&5+$as_echo "yes" >&6; }+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ { { $as_echo "$as_me:$LINENO: error: in \`$ac_pwd':" >&5+$as_echo "$as_me: error: in \`$ac_pwd':" >&2;}+{ { $as_echo "$as_me:$LINENO: error: no+See \`config.log' for more details." >&5+$as_echo "$as_me: error: no+See \`config.log' for more details." >&2;}+ { (exit 1); exit 1; }; }; }++fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext++# Does this compiler have built-in functions for atomic memory access?+{ $as_echo "$as_me:$LINENO: checking if gcc supports __sync_bool_compare_and_swap" >&5+$as_echo_n "checking if gcc supports __sync_bool_compare_and_swap... " >&6; }++cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */++int+main ()+{++ int variable = 1;+ return (__sync_bool_compare_and_swap(&variable, 1, 2)+ && __sync_add_and_fetch(&variable, 1)) ? 1 : 0;++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_link") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest$ac_exeext && {+ test "$cross_compiling" = yes ||+ $as_test_x conftest$ac_exeext+ }; then++ { $as_echo "$as_me:$LINENO: result: yes" >&5+$as_echo "yes" >&6; }++cat >>confdefs.h <<\_ACEOF+#define HAVE_BUILTIN_ATOMIC 1+_ACEOF+++else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++ # Retry with -march set for x86.+ old_CFLAGS="$CFLAGS"+ CFLAGS="$CFLAGS -march=i686"+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */++int+main ()+{++ int variable = 1;+ return (__sync_bool_compare_and_swap(&variable, 1, 2)+ && __sync_add_and_fetch(&variable, 1)) ? 1 : 0;++ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_link") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest$ac_exeext && {+ test "$cross_compiling" = yes ||+ $as_test_x conftest$ac_exeext+ }; then++ { $as_echo "$as_me:$LINENO: result: yes" >&5+$as_echo "yes" >&6; }++cat >>confdefs.h <<\_ACEOF+#define HAVE_BUILTIN_ATOMIC 1+_ACEOF+++else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5+++ { $as_echo "$as_me:$LINENO: result: no" >&5+$as_echo "no" >&6; }+ CFLAGS="$old_CFLAGS"++fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+ conftest$ac_exeext conftest.$ac_ext++fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+ conftest$ac_exeext conftest.$ac_ext++# Checks for typedefs, structures, and compiler characteristics.+{ $as_echo "$as_me:$LINENO: checking whether time.h and sys/time.h may both be included" >&5+$as_echo_n "checking whether time.h and sys/time.h may both be included... " >&6; }+if test "${ac_cv_header_time+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <sys/types.h>+#include <sys/time.h>+#include <time.h>++int+main ()+{+if ((struct tm *) 0)+return 0;+ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ ac_cv_header_time=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_cv_header_time=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_header_time" >&5+$as_echo "$ac_cv_header_time" >&6; }+if test $ac_cv_header_time = yes; then++cat >>confdefs.h <<\_ACEOF+#define TIME_WITH_SYS_TIME 1+_ACEOF++fi+++# Look for the timber compiler++# Checks for library functions.++for ac_header in stdlib.h+do+as_ac_Header=`$as_echo "ac_cv_header_$ac_header" | $as_tr_sh`+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+ { $as_echo "$as_me:$LINENO: checking for $ac_header" >&5+$as_echo_n "checking for $ac_header... " >&6; }+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+ $as_echo_n "(cached) " >&6+fi+ac_res=`eval 'as_val=${'$as_ac_Header'}+ $as_echo "$as_val"'`+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+else+ # Is the header compilable?+{ $as_echo "$as_me:$LINENO: checking $ac_header usability" >&5+$as_echo_n "checking $ac_header usability... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+$ac_includes_default+#include <$ac_header>+_ACEOF+rm -f conftest.$ac_objext+if { (ac_try="$ac_compile"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_compile") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest.$ac_objext; then+ ac_header_compiler=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_header_compiler=no+fi++rm -f core conftest.err conftest.$ac_objext conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_compiler" >&5+$as_echo "$ac_header_compiler" >&6; }++# Is the header present?+{ $as_echo "$as_me:$LINENO: checking $ac_header presence" >&5+$as_echo_n "checking $ac_header presence... " >&6; }+cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#include <$ac_header>+_ACEOF+if { (ac_try="$ac_cpp conftest.$ac_ext"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_cpp conftest.$ac_ext") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } >/dev/null && {+ test -z "$ac_c_preproc_warn_flag$ac_c_werror_flag" ||+ test ! -s conftest.err+ }; then+ ac_header_preproc=yes+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ ac_header_preproc=no+fi++rm -f conftest.err conftest.$ac_ext+{ $as_echo "$as_me:$LINENO: result: $ac_header_preproc" >&5+$as_echo "$ac_header_preproc" >&6; }++# So? What about this header?+case $ac_header_compiler:$ac_header_preproc:$ac_c_preproc_warn_flag in+ yes:no: )+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&5+$as_echo "$as_me: WARNING: $ac_header: accepted by the compiler, rejected by the preprocessor!" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the compiler's result" >&5+$as_echo "$as_me: WARNING: $ac_header: proceeding with the compiler's result" >&2;}+ ac_header_preproc=yes+ ;;+ no:yes:* )+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: present but cannot be compiled" >&5+$as_echo "$as_me: WARNING: $ac_header: present but cannot be compiled" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: check for missing prerequisite headers?" >&5+$as_echo "$as_me: WARNING: $ac_header: check for missing prerequisite headers?" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: see the Autoconf documentation" >&5+$as_echo "$as_me: WARNING: $ac_header: see the Autoconf documentation" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&5+$as_echo "$as_me: WARNING: $ac_header: section \"Present But Cannot Be Compiled\"" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: proceeding with the preprocessor's result" >&5+$as_echo "$as_me: WARNING: $ac_header: proceeding with the preprocessor's result" >&2;}+ { $as_echo "$as_me:$LINENO: WARNING: $ac_header: in the future, the compiler will take precedence" >&5+$as_echo "$as_me: WARNING: $ac_header: in the future, the compiler will take precedence" >&2;}+ ( cat <<\_ASBOX+## ----------------------------------- ##+## Report this to nordland@csee.ltu.se ##+## ----------------------------------- ##+_ASBOX+ ) | sed "s/^/$as_me: WARNING: /" >&2+ ;;+esac+{ $as_echo "$as_me:$LINENO: checking for $ac_header" >&5+$as_echo_n "checking for $ac_header... " >&6; }+if { as_var=$as_ac_Header; eval "test \"\${$as_var+set}\" = set"; }; then+ $as_echo_n "(cached) " >&6+else+ eval "$as_ac_Header=\$ac_header_preproc"+fi+ac_res=`eval 'as_val=${'$as_ac_Header'}+ $as_echo "$as_val"'`+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }++fi+as_val=`eval 'as_val=${'$as_ac_Header'}+ $as_echo "$as_val"'`+ if test "x$as_val" = x""yes; then+ cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_header" | $as_tr_cpp` 1+_ACEOF++fi++done++{ $as_echo "$as_me:$LINENO: checking for GNU libc compatible malloc" >&5+$as_echo_n "checking for GNU libc compatible malloc... " >&6; }+if test "${ac_cv_func_malloc_0_nonnull+set}" = set; then+ $as_echo_n "(cached) " >&6+else+ if test "$cross_compiling" = yes; then+ ac_cv_func_malloc_0_nonnull=no+else+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+#if defined STDC_HEADERS || defined HAVE_STDLIB_H+# include <stdlib.h>+#else+char *malloc ();+#endif++int+main ()+{+return ! malloc (0);+ ;+ return 0;+}+_ACEOF+rm -f conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_link") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && { ac_try='./conftest$ac_exeext'+ { (case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_try") 2>&5+ ac_status=$?+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); }; }; then+ ac_cv_func_malloc_0_nonnull=yes+else+ $as_echo "$as_me: program exited with status $ac_status" >&5+$as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++( exit $ac_status )+ac_cv_func_malloc_0_nonnull=no+fi+rm -rf conftest.dSYM+rm -f core *.core core.conftest.* gmon.out bb.out conftest$ac_exeext conftest.$ac_objext conftest.$ac_ext+fi+++fi+{ $as_echo "$as_me:$LINENO: result: $ac_cv_func_malloc_0_nonnull" >&5+$as_echo "$ac_cv_func_malloc_0_nonnull" >&6; }+if test $ac_cv_func_malloc_0_nonnull = yes; then++cat >>confdefs.h <<\_ACEOF+#define HAVE_MALLOC 1+_ACEOF++else+ cat >>confdefs.h <<\_ACEOF+#define HAVE_MALLOC 0+_ACEOF++ case " $LIBOBJS " in+ *" malloc.$ac_objext "* ) ;;+ *) LIBOBJS="$LIBOBJS malloc.$ac_objext"+ ;;+esac+++cat >>confdefs.h <<\_ACEOF+#define malloc rpl_malloc+_ACEOF++fi++++++for ac_func in gettimeofday sysconf+do+as_ac_var=`$as_echo "ac_cv_func_$ac_func" | $as_tr_sh`+{ $as_echo "$as_me:$LINENO: checking for $ac_func" >&5+$as_echo_n "checking for $ac_func... " >&6; }+if { as_var=$as_ac_var; eval "test \"\${$as_var+set}\" = set"; }; then+ $as_echo_n "(cached) " >&6+else+ cat >conftest.$ac_ext <<_ACEOF+/* confdefs.h. */+_ACEOF+cat confdefs.h >>conftest.$ac_ext+cat >>conftest.$ac_ext <<_ACEOF+/* end confdefs.h. */+/* Define $ac_func to an innocuous variant, in case <limits.h> declares $ac_func.+ For example, HP-UX 11i <limits.h> declares gettimeofday. */+#define $ac_func innocuous_$ac_func++/* System header to define __stub macros and hopefully few prototypes,+ which can conflict with char $ac_func (); below.+ Prefer <limits.h> to <assert.h> if __STDC__ is defined, since+ <limits.h> exists even on freestanding compilers. */++#ifdef __STDC__+# include <limits.h>+#else+# include <assert.h>+#endif++#undef $ac_func++/* Override any GCC internal prototype to avoid an error.+ Use char because int might match the return type of a GCC+ builtin and then its argument prototype would still apply. */+#ifdef __cplusplus+extern "C"+#endif+char $ac_func ();+/* The GNU C library defines this for functions which it implements+ to always fail with ENOSYS. Some functions are actually named+ something starting with __ and the normal name is an alias. */+#if defined __stub_$ac_func || defined __stub___$ac_func+choke me+#endif++int+main ()+{+return $ac_func ();+ ;+ return 0;+}+_ACEOF+rm -f conftest.$ac_objext conftest$ac_exeext+if { (ac_try="$ac_link"+case "(($ac_try" in+ *\"* | *\`* | *\\*) ac_try_echo=\$ac_try;;+ *) ac_try_echo=$ac_try;;+esac+eval ac_try_echo="\"\$as_me:$LINENO: $ac_try_echo\""+$as_echo "$ac_try_echo") >&5+ (eval "$ac_link") 2>conftest.er1+ ac_status=$?+ grep -v '^ *+' conftest.er1 >conftest.err+ rm -f conftest.er1+ cat conftest.err >&5+ $as_echo "$as_me:$LINENO: \$? = $ac_status" >&5+ (exit $ac_status); } && {+ test -z "$ac_c_werror_flag" ||+ test ! -s conftest.err+ } && test -s conftest$ac_exeext && {+ test "$cross_compiling" = yes ||+ $as_test_x conftest$ac_exeext+ }; then+ eval "$as_ac_var=yes"+else+ $as_echo "$as_me: failed program was:" >&5+sed 's/^/| /' conftest.$ac_ext >&5++ eval "$as_ac_var=no"+fi++rm -rf conftest.dSYM+rm -f core conftest.err conftest.$ac_objext conftest_ipa8_conftest.oo \+ conftest$ac_exeext conftest.$ac_ext+fi+ac_res=`eval 'as_val=${'$as_ac_var'}+ $as_echo "$as_val"'`+ { $as_echo "$as_me:$LINENO: result: $ac_res" >&5+$as_echo "$ac_res" >&6; }+as_val=`eval 'as_val=${'$as_ac_var'}+ $as_echo "$as_val"'`+ if test "x$as_val" = x""yes; then+ cat >>confdefs.h <<_ACEOF+#define `$as_echo "HAVE_$ac_func" | $as_tr_cpp` 1+_ACEOF++fi+done+++++++++++ac_config_files="$ac_config_files Makefile timberc.cfg"++cat >confcache <<\_ACEOF+# This file is a shell script that caches the results of configure+# tests run on this system so they can be shared between configure+# scripts and configure runs, see configure's option --config-cache.+# It is not useful on other systems. If it contains results you don't+# want to keep, you may remove or edit it.+#+# config.status only pays attention to the cache file if you give it+# the --recheck option to rerun configure.+#+# `ac_cv_env_foo' variables (set or unset) will be overridden when+# loading this file, other *unset* `ac_cv_foo' will be assigned the+# following values.++_ACEOF++# The following way of writing the cache mishandles newlines in values,+# but we know of no workaround that is simple, portable, and efficient.+# So, we kill variables containing newlines.+# Ultrix sh set writes to stderr and can't be redirected directly,+# and sets the high bit in the cache file unless we assign to the vars.+(+ for ac_var in `(set) 2>&1 | sed -n 's/^\([a-zA-Z_][a-zA-Z0-9_]*\)=.*/\1/p'`; do+ eval ac_val=\$$ac_var+ case $ac_val in #(+ *${as_nl}*)+ case $ac_var in #(+ *_cv_*) { $as_echo "$as_me:$LINENO: WARNING: cache variable $ac_var contains a newline" >&5+$as_echo "$as_me: WARNING: cache variable $ac_var contains a newline" >&2;} ;;+ esac+ case $ac_var in #(+ _ | IFS | as_nl) ;; #(+ BASH_ARGV | BASH_SOURCE) eval $ac_var= ;; #(+ *) $as_unset $ac_var ;;+ esac ;;+ esac+ done++ (set) 2>&1 |+ case $as_nl`(ac_space=' '; set) 2>&1` in #(+ *${as_nl}ac_space=\ *)+ # `set' does not quote correctly, so add quotes (double-quote+ # substitution turns \\\\ into \\, and sed turns \\ into \).+ sed -n \+ "s/'/'\\\\''/g;+ s/^\\([_$as_cr_alnum]*_cv_[_$as_cr_alnum]*\\)=\\(.*\\)/\\1='\\2'/p"+ ;; #(+ *)+ # `set' quotes correctly as required by POSIX, so do not add quotes.+ sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p"+ ;;+ esac |+ sort+) |+ sed '+ /^ac_cv_env_/b end+ t clear+ :clear+ s/^\([^=]*\)=\(.*[{}].*\)$/test "${\1+set}" = set || &/+ t end+ s/^\([^=]*\)=\(.*\)$/\1=${\1=\2}/+ :end' >>confcache+if diff "$cache_file" confcache >/dev/null 2>&1; then :; else+ if test -w "$cache_file"; then+ test "x$cache_file" != "x/dev/null" &&+ { $as_echo "$as_me:$LINENO: updating cache $cache_file" >&5+$as_echo "$as_me: updating cache $cache_file" >&6;}+ cat confcache >$cache_file+ else+ { $as_echo "$as_me:$LINENO: not updating unwritable cache $cache_file" >&5+$as_echo "$as_me: not updating unwritable cache $cache_file" >&6;}+ fi+fi+rm -f confcache++test "x$prefix" = xNONE && prefix=$ac_default_prefix+# Let make expand exec_prefix.+test "x$exec_prefix" = xNONE && exec_prefix='${prefix}'++DEFS=-DHAVE_CONFIG_H++ac_libobjs=+ac_ltlibobjs=+for ac_i in : $LIBOBJS; do test "x$ac_i" = x: && continue+ # 1. Remove the extension, and $U if already installed.+ ac_script='s/\$U\././;s/\.o$//;s/\.obj$//'+ ac_i=`$as_echo "$ac_i" | sed "$ac_script"`+ # 2. Prepend LIBOBJDIR. When used with automake>=1.10 LIBOBJDIR+ # will be set to the directory where LIBOBJS objects are built.+ ac_libobjs="$ac_libobjs \${LIBOBJDIR}$ac_i\$U.$ac_objext"+ ac_ltlibobjs="$ac_ltlibobjs \${LIBOBJDIR}$ac_i"'$U.lo'+done+LIBOBJS=$ac_libobjs++LTLIBOBJS=$ac_ltlibobjs++++: ${CONFIG_STATUS=./config.status}+ac_write_fail=0+ac_clean_files_save=$ac_clean_files+ac_clean_files="$ac_clean_files $CONFIG_STATUS"+{ $as_echo "$as_me:$LINENO: creating $CONFIG_STATUS" >&5+$as_echo "$as_me: creating $CONFIG_STATUS" >&6;}+cat >$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+#! $SHELL+# Generated by $as_me.+# Run this file to recreate the current configuration.+# Compiler output produced by configure, useful for debugging+# configure, is in config.log if it exists.++debug=false+ac_cs_recheck=false+ac_cs_silent=false+SHELL=\${CONFIG_SHELL-$SHELL}+_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+## --------------------- ##+## M4sh Initialization. ##+## --------------------- ##++# Be more Bourne compatible+DUALCASE=1; export DUALCASE # for MKS sh+if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then+ emulate sh+ NULLCMD=:+ # Pre-4.2 versions of Zsh do word splitting on ${1+"$@"}, which+ # is contrary to our usage. Disable this feature.+ alias -g '${1+"$@"}'='"$@"'+ setopt NO_GLOB_SUBST+else+ case `(set -o) 2>/dev/null` in+ *posix*) set -o posix ;;+esac++fi+++++# PATH needs CR+# Avoid depending upon Character Ranges.+as_cr_letters='abcdefghijklmnopqrstuvwxyz'+as_cr_LETTERS='ABCDEFGHIJKLMNOPQRSTUVWXYZ'+as_cr_Letters=$as_cr_letters$as_cr_LETTERS+as_cr_digits='0123456789'+as_cr_alnum=$as_cr_Letters$as_cr_digits++as_nl='+'+export as_nl+# Printing a long string crashes Solaris 7 /usr/bin/printf.+as_echo='\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\'+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo+as_echo=$as_echo$as_echo$as_echo$as_echo$as_echo$as_echo+if (test "X`printf %s $as_echo`" = "X$as_echo") 2>/dev/null; then+ as_echo='printf %s\n'+ as_echo_n='printf %s'+else+ if test "X`(/usr/ucb/echo -n -n $as_echo) 2>/dev/null`" = "X-n $as_echo"; then+ as_echo_body='eval /usr/ucb/echo -n "$1$as_nl"'+ as_echo_n='/usr/ucb/echo -n'+ else+ as_echo_body='eval expr "X$1" : "X\\(.*\\)"'+ as_echo_n_body='eval+ arg=$1;+ case $arg in+ *"$as_nl"*)+ expr "X$arg" : "X\\(.*\\)$as_nl";+ arg=`expr "X$arg" : ".*$as_nl\\(.*\\)"`;;+ esac;+ expr "X$arg" : "X\\(.*\\)" | tr -d "$as_nl"+ '+ export as_echo_n_body+ as_echo_n='sh -c $as_echo_n_body as_echo'+ fi+ export as_echo_body+ as_echo='sh -c $as_echo_body as_echo'+fi++# The user is always right.+if test "${PATH_SEPARATOR+set}" != set; then+ PATH_SEPARATOR=:+ (PATH='/bin;/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 && {+ (PATH='/bin:/bin'; FPATH=$PATH; sh -c :) >/dev/null 2>&1 ||+ PATH_SEPARATOR=';'+ }+fi++# Support unset when possible.+if ( (MAIL=60; unset MAIL) || exit) >/dev/null 2>&1; then+ as_unset=unset+else+ as_unset=false+fi+++# IFS+# We need space, tab and new line, in precisely that order. Quoting is+# there to prevent editors from complaining about space-tab.+# (If _AS_PATH_WALK were called with IFS unset, it would disable word+# splitting by setting IFS to empty value.)+IFS=" "" $as_nl"++# Find who we are. Look in the path if we contain no directory separator.+case $0 in+ *[\\/]* ) as_myself=$0 ;;+ *) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+for as_dir in $PATH+do+ IFS=$as_save_IFS+ test -z "$as_dir" && as_dir=.+ test -r "$as_dir/$0" && as_myself=$as_dir/$0 && break+done+IFS=$as_save_IFS++ ;;+esac+# We did not find ourselves, most probably we were run as `sh COMMAND'+# in which case we are not to be found in the path.+if test "x$as_myself" = x; then+ as_myself=$0+fi+if test ! -f "$as_myself"; then+ $as_echo "$as_myself: error: cannot find myself; rerun with an absolute file name" >&2+ { (exit 1); exit 1; }+fi++# Work around bugs in pre-3.0 UWIN ksh.+for as_var in ENV MAIL MAILPATH+do ($as_unset $as_var) >/dev/null 2>&1 && $as_unset $as_var+done+PS1='$ '+PS2='> '+PS4='+ '++# NLS nuisances.+LC_ALL=C+export LC_ALL+LANGUAGE=C+export LANGUAGE++# Required to use basename.+if expr a : '\(a\)' >/dev/null 2>&1 &&+ test "X`expr 00001 : '.*\(...\)'`" = X001; then+ as_expr=expr+else+ as_expr=false+fi++if (basename -- /) >/dev/null 2>&1 && test "X`basename -- / 2>&1`" = "X/"; then+ as_basename=basename+else+ as_basename=false+fi+++# Name of the executable.+as_me=`$as_basename -- "$0" ||+$as_expr X/"$0" : '.*/\([^/][^/]*\)/*$' \| \+ X"$0" : 'X\(//\)$' \| \+ X"$0" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X/"$0" |+ sed '/^.*\/\([^/][^/]*\)\/*$/{+ s//\1/+ q+ }+ /^X\/\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\/\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`++# CDPATH.+$as_unset CDPATH++++ as_lineno_1=$LINENO+ as_lineno_2=$LINENO+ test "x$as_lineno_1" != "x$as_lineno_2" &&+ test "x`expr $as_lineno_1 + 1`" = "x$as_lineno_2" || {++ # Create $as_me.lineno as a copy of $as_myself, but with $LINENO+ # uniformly replaced by the line number. The first 'sed' inserts a+ # line-number line after each line using $LINENO; the second 'sed'+ # does the real work. The second script uses 'N' to pair each+ # line-number line with the line containing $LINENO, and appends+ # trailing '-' during substitution so that $LINENO is not a special+ # case at line end.+ # (Raja R Harinath suggested sed '=', and Paul Eggert wrote the+ # scripts with optimization help from Paolo Bonzini. Blame Lee+ # E. McMahon (1931-1989) for sed's syntax. :-)+ sed -n '+ p+ /[$]LINENO/=+ ' <$as_myself |+ sed '+ s/[$]LINENO.*/&-/+ t lineno+ b+ :lineno+ N+ :loop+ s/[$]LINENO\([^'$as_cr_alnum'_].*\n\)\(.*\)/\2\1\2/+ t loop+ s/-\n.*//+ ' >$as_me.lineno &&+ chmod +x "$as_me.lineno" ||+ { $as_echo "$as_me: error: cannot create $as_me.lineno; rerun with a POSIX shell" >&2+ { (exit 1); exit 1; }; }++ # Don't try to exec as it changes $[0], causing all sort of problems+ # (the dirname of $[0] is not the place where we might find the+ # original and so on. Autoconf is especially sensitive to this).+ . "./$as_me.lineno"+ # Exit status is that of the last command.+ exit+}+++if (as_dir=`dirname -- /` && test "X$as_dir" = X/) >/dev/null 2>&1; then+ as_dirname=dirname+else+ as_dirname=false+fi++ECHO_C= ECHO_N= ECHO_T=+case `echo -n x` in+-n*)+ case `echo 'x\c'` in+ *c*) ECHO_T=' ';; # ECHO_T is single tab character.+ *) ECHO_C='\c';;+ esac;;+*)+ ECHO_N='-n';;+esac+if expr a : '\(a\)' >/dev/null 2>&1 &&+ test "X`expr 00001 : '.*\(...\)'`" = X001; then+ as_expr=expr+else+ as_expr=false+fi++rm -f conf$$ conf$$.exe conf$$.file+if test -d conf$$.dir; then+ rm -f conf$$.dir/conf$$.file+else+ rm -f conf$$.dir+ mkdir conf$$.dir 2>/dev/null+fi+if (echo >conf$$.file) 2>/dev/null; then+ if ln -s conf$$.file conf$$ 2>/dev/null; then+ as_ln_s='ln -s'+ # ... but there are two gotchas:+ # 1) On MSYS, both `ln -s file dir' and `ln file dir' fail.+ # 2) DJGPP < 2.04 has no symlinks; `ln -s' creates a wrapper executable.+ # In both cases, we have to default to `cp -p'.+ ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe ||+ as_ln_s='cp -p'+ elif ln conf$$.file conf$$ 2>/dev/null; then+ as_ln_s=ln+ else+ as_ln_s='cp -p'+ fi+else+ as_ln_s='cp -p'+fi+rm -f conf$$ conf$$.exe conf$$.dir/conf$$.file conf$$.file+rmdir conf$$.dir 2>/dev/null++if mkdir -p . 2>/dev/null; then+ as_mkdir_p=:+else+ test -d ./-p && rmdir ./-p+ as_mkdir_p=false+fi++if test -x / >/dev/null 2>&1; then+ as_test_x='test -x'+else+ if ls -dL / >/dev/null 2>&1; then+ as_ls_L_option=L+ else+ as_ls_L_option=+ fi+ as_test_x='+ eval sh -c '\''+ if test -d "$1"; then+ test -d "$1/.";+ else+ case $1 in+ -*)set "./$1";;+ esac;+ case `ls -ld'$as_ls_L_option' "$1" 2>/dev/null` in+ ???[sx]*):;;*)false;;esac;fi+ '\'' sh+ '+fi+as_executable_p=$as_test_x++# Sed expression to map a string onto a valid CPP name.+as_tr_cpp="eval sed 'y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g'"++# Sed expression to map a string onto a valid variable name.+as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"+++exec 6>&1++# Save the log message, to keep $[0] and so on meaningful, and to+# report actual input values of CONFIG_FILES etc. instead of their+# values after options handling.+ac_log="+This file was extended by rtsPOSIX $as_me 0.9.9, which was+generated by GNU Autoconf 2.63. Invocation command line was++ CONFIG_FILES = $CONFIG_FILES+ CONFIG_HEADERS = $CONFIG_HEADERS+ CONFIG_LINKS = $CONFIG_LINKS+ CONFIG_COMMANDS = $CONFIG_COMMANDS+ $ $0 $@++on `(hostname || uname -n) 2>/dev/null | sed 1q`+"++_ACEOF++case $ac_config_files in *"+"*) set x $ac_config_files; shift; ac_config_files=$*;;+esac++case $ac_config_headers in *"+"*) set x $ac_config_headers; shift; ac_config_headers=$*;;+esac+++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+# Files that config.status was made for.+config_files="$ac_config_files"+config_headers="$ac_config_headers"++_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+ac_cs_usage="\+\`$as_me' instantiates files from templates according to the+current configuration.++Usage: $0 [OPTION]... [FILE]...++ -h, --help print this help, then exit+ -V, --version print version number and configuration settings, then exit+ -q, --quiet, --silent+ do not print progress messages+ -d, --debug don't remove temporary files+ --recheck update $as_me by reconfiguring in the same conditions+ --file=FILE[:TEMPLATE]+ instantiate the configuration file FILE+ --header=FILE[:TEMPLATE]+ instantiate the configuration header FILE++Configuration files:+$config_files++Configuration headers:+$config_headers++Report bugs to <bug-autoconf@gnu.org>."++_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+ac_cs_version="\\+rtsPOSIX config.status 0.9.9+configured by $0, generated by GNU Autoconf 2.63,+ with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"++Copyright (C) 2008 Free Software Foundation, Inc.+This config.status script is free software; the Free Software Foundation+gives unlimited permission to copy, distribute and modify it."++ac_pwd='$ac_pwd'+srcdir='$srcdir'+INSTALL='$INSTALL'+test -n "\$AWK" || AWK=awk+_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+# The default lists apply if the user does not specify any file.+ac_need_defaults=:+while test $# != 0+do+ case $1 in+ --*=*)+ ac_option=`expr "X$1" : 'X\([^=]*\)='`+ ac_optarg=`expr "X$1" : 'X[^=]*=\(.*\)'`+ ac_shift=:+ ;;+ *)+ ac_option=$1+ ac_optarg=$2+ ac_shift=shift+ ;;+ esac++ case $ac_option in+ # Handling of the options.+ -recheck | --recheck | --rechec | --reche | --rech | --rec | --re | --r)+ ac_cs_recheck=: ;;+ --version | --versio | --versi | --vers | --ver | --ve | --v | -V )+ $as_echo "$ac_cs_version"; exit ;;+ --debug | --debu | --deb | --de | --d | -d )+ debug=: ;;+ --file | --fil | --fi | --f )+ $ac_shift+ case $ac_optarg in+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;+ esac+ CONFIG_FILES="$CONFIG_FILES '$ac_optarg'"+ ac_need_defaults=false;;+ --header | --heade | --head | --hea )+ $ac_shift+ case $ac_optarg in+ *\'*) ac_optarg=`$as_echo "$ac_optarg" | sed "s/'/'\\\\\\\\''/g"` ;;+ esac+ CONFIG_HEADERS="$CONFIG_HEADERS '$ac_optarg'"+ ac_need_defaults=false;;+ --he | --h)+ # Conflict between --help and --header+ { $as_echo "$as_me: error: ambiguous option: $1+Try \`$0 --help' for more information." >&2+ { (exit 1); exit 1; }; };;+ --help | --hel | -h )+ $as_echo "$ac_cs_usage"; exit ;;+ -q | -quiet | --quiet | --quie | --qui | --qu | --q \+ | -silent | --silent | --silen | --sile | --sil | --si | --s)+ ac_cs_silent=: ;;++ # This is an error.+ -*) { $as_echo "$as_me: error: unrecognized option: $1+Try \`$0 --help' for more information." >&2+ { (exit 1); exit 1; }; } ;;++ *) ac_config_targets="$ac_config_targets $1"+ ac_need_defaults=false ;;++ esac+ shift+done++ac_configure_extra_args=++if $ac_cs_silent; then+ exec 6>/dev/null+ ac_configure_extra_args="$ac_configure_extra_args --silent"+fi++_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+if \$ac_cs_recheck; then+ set X '$SHELL' '$0' $ac_configure_args \$ac_configure_extra_args --no-create --no-recursion+ shift+ \$as_echo "running CONFIG_SHELL=$SHELL \$*" >&6+ CONFIG_SHELL='$SHELL'+ export CONFIG_SHELL+ exec "\$@"+fi++_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+exec 5>>config.log+{+ echo+ sed 'h;s/./-/g;s/^.../## /;s/...$/ ##/;p;x;p;x' <<_ASBOX+## Running $as_me. ##+_ASBOX+ $as_echo "$ac_log"+} >&5++_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1++# Handling of arguments.+for ac_config_target in $ac_config_targets+do+ case $ac_config_target in+ "config.h") CONFIG_HEADERS="$CONFIG_HEADERS config.h" ;;+ "Makefile") CONFIG_FILES="$CONFIG_FILES Makefile" ;;+ "timberc.cfg") CONFIG_FILES="$CONFIG_FILES timberc.cfg" ;;++ *) { { $as_echo "$as_me:$LINENO: error: invalid argument: $ac_config_target" >&5+$as_echo "$as_me: error: invalid argument: $ac_config_target" >&2;}+ { (exit 1); exit 1; }; };;+ esac+done+++# If the user did not use the arguments to specify the items to instantiate,+# then the envvar interface is used. Set only those that are not.+# We use the long form for the default assignment because of an extremely+# bizarre bug on SunOS 4.1.3.+if $ac_need_defaults; then+ test "${CONFIG_FILES+set}" = set || CONFIG_FILES=$config_files+ test "${CONFIG_HEADERS+set}" = set || CONFIG_HEADERS=$config_headers+fi++# Have a temporary directory for convenience. Make it in the build tree+# simply because there is no reason against having it here, and in addition,+# creating and moving files from /tmp can sometimes cause problems.+# Hook for its removal unless debugging.+# Note that there is a small window in which the directory will not be cleaned:+# after its creation but before its name has been assigned to `$tmp'.+$debug ||+{+ tmp=+ trap 'exit_status=$?+ { test -z "$tmp" || test ! -d "$tmp" || rm -fr "$tmp"; } && exit $exit_status+' 0+ trap '{ (exit 1); exit 1; }' 1 2 13 15+}+# Create a (secure) tmp directory for tmp files.++{+ tmp=`(umask 077 && mktemp -d "./confXXXXXX") 2>/dev/null` &&+ test -n "$tmp" && test -d "$tmp"+} ||+{+ tmp=./conf$$-$RANDOM+ (umask 077 && mkdir "$tmp")+} ||+{+ $as_echo "$as_me: cannot create a temporary directory in ." >&2+ { (exit 1); exit 1; }+}++# Set up the scripts for CONFIG_FILES section.+# No need to generate them if there are no CONFIG_FILES.+# This happens for instance with `./config.status config.h'.+if test -n "$CONFIG_FILES"; then+++ac_cr=' '+ac_cs_awk_cr=`$AWK 'BEGIN { print "a\rb" }' </dev/null 2>/dev/null`+if test "$ac_cs_awk_cr" = "a${ac_cr}b"; then+ ac_cs_awk_cr='\\r'+else+ ac_cs_awk_cr=$ac_cr+fi++echo 'BEGIN {' >"$tmp/subs1.awk" &&+_ACEOF+++{+ echo "cat >conf$$subs.awk <<_ACEOF" &&+ echo "$ac_subst_vars" | sed 's/.*/&!$&$ac_delim/' &&+ echo "_ACEOF"+} >conf$$subs.sh ||+ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}+ { (exit 1); exit 1; }; }+ac_delim_num=`echo "$ac_subst_vars" | grep -c '$'`+ac_delim='%!_!# '+for ac_last_try in false false false false false :; do+ . ./conf$$subs.sh ||+ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}+ { (exit 1); exit 1; }; }++ ac_delim_n=`sed -n "s/.*$ac_delim\$/X/p" conf$$subs.awk | grep -c X`+ if test $ac_delim_n = $ac_delim_num; then+ break+ elif $ac_last_try; then+ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_STATUS" >&5+$as_echo "$as_me: error: could not make $CONFIG_STATUS" >&2;}+ { (exit 1); exit 1; }; }+ else+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "+ fi+done+rm -f conf$$subs.sh++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+cat >>"\$tmp/subs1.awk" <<\\_ACAWK &&+_ACEOF+sed -n '+h+s/^/S["/; s/!.*/"]=/+p+g+s/^[^!]*!//+:repl+t repl+s/'"$ac_delim"'$//+t delim+:nl+h+s/\(.\{148\}\).*/\1/+t more1+s/["\\]/\\&/g; s/^/"/; s/$/\\n"\\/+p+n+b repl+:more1+s/["\\]/\\&/g; s/^/"/; s/$/"\\/+p+g+s/.\{148\}//+t nl+:delim+h+s/\(.\{148\}\).*/\1/+t more2+s/["\\]/\\&/g; s/^/"/; s/$/"/+p+b+:more2+s/["\\]/\\&/g; s/^/"/; s/$/"\\/+p+g+s/.\{148\}//+t delim+' <conf$$subs.awk | sed '+/^[^""]/{+ N+ s/\n//+}+' >>$CONFIG_STATUS || ac_write_fail=1+rm -f conf$$subs.awk+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+_ACAWK+cat >>"\$tmp/subs1.awk" <<_ACAWK &&+ for (key in S) S_is_set[key] = 1+ FS = ""++}+{+ line = $ 0+ nfields = split(line, field, "@")+ substed = 0+ len = length(field[1])+ for (i = 2; i < nfields; i++) {+ key = field[i]+ keylen = length(key)+ if (S_is_set[key]) {+ value = S[key]+ line = substr(line, 1, len) "" value "" substr(line, len + keylen + 3)+ len += length(value) + length(field[++i])+ substed = 1+ } else+ len += 1 + keylen+ }++ print line+}++_ACAWK+_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+if sed "s/$ac_cr//" < /dev/null > /dev/null 2>&1; then+ sed "s/$ac_cr\$//; s/$ac_cr/$ac_cs_awk_cr/g"+else+ cat+fi < "$tmp/subs1.awk" > "$tmp/subs.awk" \+ || { { $as_echo "$as_me:$LINENO: error: could not setup config files machinery" >&5+$as_echo "$as_me: error: could not setup config files machinery" >&2;}+ { (exit 1); exit 1; }; }+_ACEOF++# VPATH may cause trouble with some makes, so we remove $(srcdir),+# ${srcdir} and @srcdir@ from VPATH if srcdir is ".", strip leading and+# trailing colons and then remove the whole line if VPATH becomes empty+# (actually we leave an empty line to preserve line numbers).+if test "x$srcdir" = x.; then+ ac_vpsub='/^[ ]*VPATH[ ]*=/{+s/:*\$(srcdir):*/:/+s/:*\${srcdir}:*/:/+s/:*@srcdir@:*/:/+s/^\([^=]*=[ ]*\):*/\1/+s/:*$//+s/^[^=]*=[ ]*$//+}'+fi++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+fi # test -n "$CONFIG_FILES"++# Set up the scripts for CONFIG_HEADERS section.+# No need to generate them if there are no CONFIG_HEADERS.+# This happens for instance with `./config.status Makefile'.+if test -n "$CONFIG_HEADERS"; then+cat >"$tmp/defines.awk" <<\_ACAWK ||+BEGIN {+_ACEOF++# Transform confdefs.h into an awk script `defines.awk', embedded as+# here-document in config.status, that substitutes the proper values into+# config.h.in to produce config.h.++# Create a delimiter string that does not exist in confdefs.h, to ease+# handling of long lines.+ac_delim='%!_!# '+for ac_last_try in false false :; do+ ac_t=`sed -n "/$ac_delim/p" confdefs.h`+ if test -z "$ac_t"; then+ break+ elif $ac_last_try; then+ { { $as_echo "$as_me:$LINENO: error: could not make $CONFIG_HEADERS" >&5+$as_echo "$as_me: error: could not make $CONFIG_HEADERS" >&2;}+ { (exit 1); exit 1; }; }+ else+ ac_delim="$ac_delim!$ac_delim _$ac_delim!! "+ fi+done++# For the awk script, D is an array of macro values keyed by name,+# likewise P contains macro parameters if any. Preserve backslash+# newline sequences.++ac_word_re=[_$as_cr_Letters][_$as_cr_alnum]*+sed -n '+s/.\{148\}/&'"$ac_delim"'/g+t rset+:rset+s/^[ ]*#[ ]*define[ ][ ]*/ /+t def+d+:def+s/\\$//+t bsnl+s/["\\]/\\&/g+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\+D["\1"]=" \3"/p+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2"/p+d+:bsnl+s/["\\]/\\&/g+s/^ \('"$ac_word_re"'\)\(([^()]*)\)[ ]*\(.*\)/P["\1"]="\2"\+D["\1"]=" \3\\\\\\n"\\/p+t cont+s/^ \('"$ac_word_re"'\)[ ]*\(.*\)/D["\1"]=" \2\\\\\\n"\\/p+t cont+d+:cont+n+s/.\{148\}/&'"$ac_delim"'/g+t clear+:clear+s/\\$//+t bsnlc+s/["\\]/\\&/g; s/^/"/; s/$/"/p+d+:bsnlc+s/["\\]/\\&/g; s/^/"/; s/$/\\\\\\n"\\/p+b cont+' <confdefs.h | sed '+s/'"$ac_delim"'/"\\\+"/g' >>$CONFIG_STATUS || ac_write_fail=1++cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+ for (key in D) D_is_set[key] = 1+ FS = ""+}+/^[\t ]*#[\t ]*(define|undef)[\t ]+$ac_word_re([\t (]|\$)/ {+ line = \$ 0+ split(line, arg, " ")+ if (arg[1] == "#") {+ defundef = arg[2]+ mac1 = arg[3]+ } else {+ defundef = substr(arg[1], 2)+ mac1 = arg[2]+ }+ split(mac1, mac2, "(") #)+ macro = mac2[1]+ prefix = substr(line, 1, index(line, defundef) - 1)+ if (D_is_set[macro]) {+ # Preserve the white space surrounding the "#".+ print prefix "define", macro P[macro] D[macro]+ next+ } else {+ # Replace #undef with comments. This is necessary, for example,+ # in the case of _POSIX_SOURCE, which is predefined and required+ # on some systems where configure will not decide to define it.+ if (defundef == "undef") {+ print "/*", prefix defundef, macro, "*/"+ next+ }+ }+}+{ print }+_ACAWK+_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+ { { $as_echo "$as_me:$LINENO: error: could not setup config headers machinery" >&5+$as_echo "$as_me: error: could not setup config headers machinery" >&2;}+ { (exit 1); exit 1; }; }+fi # test -n "$CONFIG_HEADERS"+++eval set X " :F $CONFIG_FILES :H $CONFIG_HEADERS "+shift+for ac_tag+do+ case $ac_tag in+ :[FHLC]) ac_mode=$ac_tag; continue;;+ esac+ case $ac_mode$ac_tag in+ :[FHL]*:*);;+ :L* | :C*:*) { { $as_echo "$as_me:$LINENO: error: invalid tag $ac_tag" >&5+$as_echo "$as_me: error: invalid tag $ac_tag" >&2;}+ { (exit 1); exit 1; }; };;+ :[FH]-) ac_tag=-:-;;+ :[FH]*) ac_tag=$ac_tag:$ac_tag.in;;+ esac+ ac_save_IFS=$IFS+ IFS=:+ set x $ac_tag+ IFS=$ac_save_IFS+ shift+ ac_file=$1+ shift++ case $ac_mode in+ :L) ac_source=$1;;+ :[FH])+ ac_file_inputs=+ for ac_f+ do+ case $ac_f in+ -) ac_f="$tmp/stdin";;+ *) # Look for the file first in the build tree, then in the source tree+ # (if the path is not absolute). The absolute path cannot be DOS-style,+ # because $ac_f cannot contain `:'.+ test -f "$ac_f" ||+ case $ac_f in+ [\\/$]*) false;;+ *) test -f "$srcdir/$ac_f" && ac_f="$srcdir/$ac_f";;+ esac ||+ { { $as_echo "$as_me:$LINENO: error: cannot find input file: $ac_f" >&5+$as_echo "$as_me: error: cannot find input file: $ac_f" >&2;}+ { (exit 1); exit 1; }; };;+ esac+ case $ac_f in *\'*) ac_f=`$as_echo "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac+ ac_file_inputs="$ac_file_inputs '$ac_f'"+ done++ # Let's still pretend it is `configure' which instantiates (i.e., don't+ # use $as_me), people would be surprised to read:+ # /* config.h. Generated by config.status. */+ configure_input='Generated from '`+ $as_echo "$*" | sed 's|^[^:]*/||;s|:[^:]*/|, |g'+ `' by configure.'+ if test x"$ac_file" != x-; then+ configure_input="$ac_file. $configure_input"+ { $as_echo "$as_me:$LINENO: creating $ac_file" >&5+$as_echo "$as_me: creating $ac_file" >&6;}+ fi+ # Neutralize special characters interpreted by sed in replacement strings.+ case $configure_input in #(+ *\&* | *\|* | *\\* )+ ac_sed_conf_input=`$as_echo "$configure_input" |+ sed 's/[\\\\&|]/\\\\&/g'`;; #(+ *) ac_sed_conf_input=$configure_input;;+ esac++ case $ac_tag in+ *:-:* | *:-) cat >"$tmp/stdin" \+ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5+$as_echo "$as_me: error: could not create $ac_file" >&2;}+ { (exit 1); exit 1; }; } ;;+ esac+ ;;+ esac++ ac_dir=`$as_dirname -- "$ac_file" ||+$as_expr X"$ac_file" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+ X"$ac_file" : 'X\(//\)[^/]' \| \+ X"$ac_file" : 'X\(//\)$' \| \+ X"$ac_file" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$ac_file" |+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+ s//\1/+ q+ }+ /^X\(\/\/\)[^/].*/{+ s//\1/+ q+ }+ /^X\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`+ { as_dir="$ac_dir"+ case $as_dir in #(+ -*) as_dir=./$as_dir;;+ esac+ test -d "$as_dir" || { $as_mkdir_p && mkdir -p "$as_dir"; } || {+ as_dirs=+ while :; do+ case $as_dir in #(+ *\'*) as_qdir=`$as_echo "$as_dir" | sed "s/'/'\\\\\\\\''/g"`;; #'(+ *) as_qdir=$as_dir;;+ esac+ as_dirs="'$as_qdir' $as_dirs"+ as_dir=`$as_dirname -- "$as_dir" ||+$as_expr X"$as_dir" : 'X\(.*[^/]\)//*[^/][^/]*/*$' \| \+ X"$as_dir" : 'X\(//\)[^/]' \| \+ X"$as_dir" : 'X\(//\)$' \| \+ X"$as_dir" : 'X\(/\)' \| . 2>/dev/null ||+$as_echo X"$as_dir" |+ sed '/^X\(.*[^/]\)\/\/*[^/][^/]*\/*$/{+ s//\1/+ q+ }+ /^X\(\/\/\)[^/].*/{+ s//\1/+ q+ }+ /^X\(\/\/\)$/{+ s//\1/+ q+ }+ /^X\(\/\).*/{+ s//\1/+ q+ }+ s/.*/./; q'`+ test -d "$as_dir" && break+ done+ test -z "$as_dirs" || eval "mkdir $as_dirs"+ } || test -d "$as_dir" || { { $as_echo "$as_me:$LINENO: error: cannot create directory $as_dir" >&5+$as_echo "$as_me: error: cannot create directory $as_dir" >&2;}+ { (exit 1); exit 1; }; }; }+ ac_builddir=.++case "$ac_dir" in+.) ac_dir_suffix= ac_top_builddir_sub=. ac_top_build_prefix= ;;+*)+ ac_dir_suffix=/`$as_echo "$ac_dir" | sed 's|^\.[\\/]||'`+ # A ".." for each directory in $ac_dir_suffix.+ ac_top_builddir_sub=`$as_echo "$ac_dir_suffix" | sed 's|/[^\\/]*|/..|g;s|/||'`+ case $ac_top_builddir_sub in+ "") ac_top_builddir_sub=. ac_top_build_prefix= ;;+ *) ac_top_build_prefix=$ac_top_builddir_sub/ ;;+ esac ;;+esac+ac_abs_top_builddir=$ac_pwd+ac_abs_builddir=$ac_pwd$ac_dir_suffix+# for backward compatibility:+ac_top_builddir=$ac_top_build_prefix++case $srcdir in+ .) # We are building in place.+ ac_srcdir=.+ ac_top_srcdir=$ac_top_builddir_sub+ ac_abs_top_srcdir=$ac_pwd ;;+ [\\/]* | ?:[\\/]* ) # Absolute name.+ ac_srcdir=$srcdir$ac_dir_suffix;+ ac_top_srcdir=$srcdir+ ac_abs_top_srcdir=$srcdir ;;+ *) # Relative name.+ ac_srcdir=$ac_top_build_prefix$srcdir$ac_dir_suffix+ ac_top_srcdir=$ac_top_build_prefix$srcdir+ ac_abs_top_srcdir=$ac_pwd/$srcdir ;;+esac+ac_abs_srcdir=$ac_abs_top_srcdir$ac_dir_suffix+++ case $ac_mode in+ :F)+ #+ # CONFIG_FILE+ #++ case $INSTALL in+ [\\/$]* | ?:[\\/]* ) ac_INSTALL=$INSTALL ;;+ *) ac_INSTALL=$ac_top_build_prefix$INSTALL ;;+ esac+_ACEOF++cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+# If the template does not know about datarootdir, expand it.+# FIXME: This hack should be removed a few years after 2.60.+ac_datarootdir_hack=; ac_datarootdir_seen=++ac_sed_dataroot='+/datarootdir/ {+ p+ q+}+/@datadir@/p+/@docdir@/p+/@infodir@/p+/@localedir@/p+/@mandir@/p+'+case `eval "sed -n \"\$ac_sed_dataroot\" $ac_file_inputs"` in+*datarootdir*) ac_datarootdir_seen=yes;;+*@datadir@*|*@docdir@*|*@infodir@*|*@localedir@*|*@mandir@*)+ { $as_echo "$as_me:$LINENO: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&5+$as_echo "$as_me: WARNING: $ac_file_inputs seems to ignore the --datarootdir setting" >&2;}+_ACEOF+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+ ac_datarootdir_hack='+ s&@datadir@&$datadir&g+ s&@docdir@&$docdir&g+ s&@infodir@&$infodir&g+ s&@localedir@&$localedir&g+ s&@mandir@&$mandir&g+ s&\\\${datarootdir}&$datarootdir&g' ;;+esac+_ACEOF++# Neutralize VPATH when `$srcdir' = `.'.+# Shell code in configure.ac might set extrasub.+# FIXME: do we really want to maintain this feature?+cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1+ac_sed_extra="$ac_vpsub+$extrasub+_ACEOF+cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1+:t+/@[a-zA-Z_][a-zA-Z_0-9]*@/!b+s|@configure_input@|$ac_sed_conf_input|;t t+s&@top_builddir@&$ac_top_builddir_sub&;t t+s&@top_build_prefix@&$ac_top_build_prefix&;t t+s&@srcdir@&$ac_srcdir&;t t+s&@abs_srcdir@&$ac_abs_srcdir&;t t+s&@top_srcdir@&$ac_top_srcdir&;t t+s&@abs_top_srcdir@&$ac_abs_top_srcdir&;t t+s&@builddir@&$ac_builddir&;t t+s&@abs_builddir@&$ac_abs_builddir&;t t+s&@abs_top_builddir@&$ac_abs_top_builddir&;t t+s&@INSTALL@&$ac_INSTALL&;t t+$ac_datarootdir_hack+"+eval sed \"\$ac_sed_extra\" "$ac_file_inputs" | $AWK -f "$tmp/subs.awk" >$tmp/out \+ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5+$as_echo "$as_me: error: could not create $ac_file" >&2;}+ { (exit 1); exit 1; }; }++test -z "$ac_datarootdir_hack$ac_datarootdir_seen" &&+ { ac_out=`sed -n '/\${datarootdir}/p' "$tmp/out"`; test -n "$ac_out"; } &&+ { ac_out=`sed -n '/^[ ]*datarootdir[ ]*:*=/p' "$tmp/out"`; test -z "$ac_out"; } &&+ { $as_echo "$as_me:$LINENO: WARNING: $ac_file contains a reference to the variable \`datarootdir'+which seems to be undefined. Please make sure it is defined." >&5+$as_echo "$as_me: WARNING: $ac_file contains a reference to the variable \`datarootdir'+which seems to be undefined. Please make sure it is defined." >&2;}++ rm -f "$tmp/stdin"+ case $ac_file in+ -) cat "$tmp/out" && rm -f "$tmp/out";;+ *) rm -f "$ac_file" && mv "$tmp/out" "$ac_file";;+ esac \+ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5+$as_echo "$as_me: error: could not create $ac_file" >&2;}+ { (exit 1); exit 1; }; }+ ;;+ :H)+ #+ # CONFIG_HEADER+ #+ if test x"$ac_file" != x-; then+ {+ $as_echo "/* $configure_input */" \+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs"+ } >"$tmp/config.h" \+ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5+$as_echo "$as_me: error: could not create $ac_file" >&2;}+ { (exit 1); exit 1; }; }+ if diff "$ac_file" "$tmp/config.h" >/dev/null 2>&1; then+ { $as_echo "$as_me:$LINENO: $ac_file is unchanged" >&5+$as_echo "$as_me: $ac_file is unchanged" >&6;}+ else+ rm -f "$ac_file"+ mv "$tmp/config.h" "$ac_file" \+ || { { $as_echo "$as_me:$LINENO: error: could not create $ac_file" >&5+$as_echo "$as_me: error: could not create $ac_file" >&2;}+ { (exit 1); exit 1; }; }+ fi+ else+ $as_echo "/* $configure_input */" \+ && eval '$AWK -f "$tmp/defines.awk"' "$ac_file_inputs" \+ || { { $as_echo "$as_me:$LINENO: error: could not create -" >&5+$as_echo "$as_me: error: could not create -" >&2;}+ { (exit 1); exit 1; }; }+ fi+ ;;+++ esac++done # for ac_tag+++{ (exit 0); exit 0; }+_ACEOF+chmod +x $CONFIG_STATUS+ac_clean_files=$ac_clean_files_save++test $ac_write_fail = 0 ||+ { { $as_echo "$as_me:$LINENO: error: write failure creating $CONFIG_STATUS" >&5+$as_echo "$as_me: error: write failure creating $CONFIG_STATUS" >&2;}+ { (exit 1); exit 1; }; }+++# configure is writing to config.log, and then calls config.status.+# config.status does its own redirection, appending to config.log.+# Unfortunately, on DOS this fails, as config.log is still kept open+# by configure, so config.status won't be able to write to it; its+# output is simply discarded. So we exec the FD to /dev/null,+# effectively closing config.log, so it can be properly (re)opened and+# appended to by config.status. When coming back to configure, we+# need to make the FD available again.+if test "$no_create" != yes; then+ ac_cs_success=:+ ac_config_status_args=+ test "$silent" = yes &&+ ac_config_status_args="$ac_config_status_args --quiet"+ exec 5>/dev/null+ $SHELL $CONFIG_STATUS $ac_config_status_args || ac_cs_success=false+ exec 5>>config.log+ # Use ||, not &&, to avoid exiting from the if with $? = 1, which+ # would make configure fail if this is the last instruction.+ $ac_cs_success || { (exit 1); exit 1; }+fi+if test -n "$ac_unrecognized_opts" && test "$enable_option_checking" != no; then+ { $as_echo "$as_me:$LINENO: WARNING: unrecognized options: $ac_unrecognized_opts" >&5+$as_echo "$as_me: WARNING: unrecognized options: $ac_unrecognized_opts" >&2;} fi
rtsPOSIX/cyclic.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without@@ -37,8 +37,8 @@ #define TOGGLE0(val) ((WORD)(val) ^ 0x01) #define ISPLACEHOLDER(obj) (BIT0(obj) && ((int)(obj) < 0))-#define INDEXOF(obj) (((-(int)(obj)) >> 1) - current->placeholders)-#define PLACEHOLDER(index) (-((((index) + current->placeholders) << 1) | 0x01))+#define INDEXOF(obj) (((-(int)(obj)) >> 1) - current_thread->placeholders)+#define PLACEHOLDER(index) (-((((index) + current_thread->placeholders) << 1) | 0x01)) #define CURRENT_CYCLE(obj,roots) !INSIDE(heapchain,obj,(ADDR)roots) @@ -50,7 +50,7 @@ } \ } -ADDR substObj(ADDR obj, Array roots, int limit, Thread current) {+ADDR substObj(ADDR obj, Array roots, int limit, Thread current_thread) { ADDR info = IND0(obj); if (!info) // if gcinfo is null we have reached the end of a heap segment return (ADDR)obj[1]; // pointer to first object of next segment is found in subsequent slot@@ -103,42 +103,42 @@ return obj + size; } case GC_MUT: {- return substObj(obj + STATIC_SIZE(info), roots, limit, current);+ return substObj(obj + STATIC_SIZE(info), roots, limit, current_thread); } } return (ADDR)0; // Not reached } -void subst(Array roots, int limit, ADDR stop, Thread current) {+void subst(Array roots, int limit, ADDR stop, Thread current_thread) { ADDR p = (ADDR)roots + STATIC_SIZE(roots->GCINFO) + roots->size; int i; for (i = 0; i < limit; i++) if (ISPLACEHOLDER(roots->elems[i])) RAISE(2); while (p != stop)- p = substObj(p, roots, limit, current);+ p = substObj(p, roots, limit, current_thread); } Array CYCLIC_BEGIN(Int n, Int updates) {- Thread current = CURRENT();+ Thread current_thread = CURRENT(); Array roots = EmptyArray(0,n); int i; for (i = 0; i < n; i++) roots->elems[i] = (POLY)PLACEHOLDER(i);- current->placeholders += n;+ current_thread->placeholders += n; return roots; } void CYCLIC_UPDATE(Array roots, Int limit, ADDR stop) {- Thread current = CURRENT();- current->placeholders -= roots->size;- subst(roots, limit, stop, current);- current->placeholders += roots->size;+ Thread current_thread = CURRENT();+ current_thread->placeholders -= roots->size;+ subst(roots, limit, stop, current_thread);+ current_thread->placeholders += roots->size; } void CYCLIC_END(Array roots, ADDR stop) {- Thread current = CURRENT();- current->placeholders -= roots->size;- subst(roots, roots->size, stop, current);+ Thread current_thread = CURRENT();+ current_thread->placeholders -= roots->size;+ subst(roots, roots->size, stop, current_thread); }
rtsPOSIX/env.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without@@ -40,8 +40,17 @@ #include <arpa/inet.h> #include <errno.h> #include "POSIX.h"-#include "env.h" +#define SOCKHANDLER CLOS2+#define HANDLER CLOS3+#define ACTION CLOS2+#define FILE2CLOSABLE l_File_POSIX_Closable_POSIX_POSIX+#define RFILE2FILE l_RFile_POSIX_File_POSIX_POSIX+#define WFILE2FILE l_WFile_POSIX_File_POSIX_POSIX+#define CONN2CLOSABLE l_Connection_POSIX_Closable_POSIX_POSIX+#define SOCK2CLOSABLE l_Socket_POSIX_Closable_POSIX_POSIX++ #define SIGSELECT SIGUSR1 #define ADD_RDTABLE(desc,act) {rdTable[desc] = act; FD_SET(desc,&readUsed); }@@ -578,10 +587,19 @@ } } +void envStart(CLOS2 (*root)(Env_POSIX, Int)) {+ pruneStaticHeap();+ prog = root(env, 0);+ TIMERGET(msg0.baseline);+ prog->Code(prog, (POLY)Inherit, (POLY)Inherit);+ eventLoop();+}++ // --------- Initialization ---------------------------------------------------- void envInit (int argc, char **argv) {- Int i;+ init_rts(); pthread_setspecific(current_key, &thread0); pthread_mutex_init(&envmut, &glob_mutexattr);@@ -598,21 +616,18 @@ Array arr; NEW(Array,arr,WORDS(sizeof(struct Array))+argc); arr->GCINFO = __GC__Array0; arr->size = argc;+ int i; for (i=0; i<argc; i++) arr->elems[i] = (POLY)getStr(argv[i]); env->argv_POSIX = arr; - struct timeval now;- if (gettimeofday(&now,NULL) < 0)- perror("gettimeofday failed");- startTime.sec = now.tv_sec;- startTime.usec = now.tv_usec;- fcntl(0, F_SETFL, O_NONBLOCK); fcntl(1, F_SETFL, O_NONBLOCK); TIMERGET(msg0.baseline);+ startTime.sec = msg0.baseline.tv_sec;+ startTime.usec = msg0.baseline.tv_usec; thread0.msg = &msg0; thread0.id = pthread_self();- }+}
− rtsPOSIX/env.h
@@ -1,46 +0,0 @@-// The Timber compiler <timber-lang.org>-// -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>-// All rights reserved.-// -// Redistribution and use in source and binary forms, with or without-// modification, are permitted provided that the following conditions-// are met:-// -// 1. Redistributions of source code must retain the above copyright-// notice, this list of conditions and the following disclaimer.-// -// 2. Redistributions in binary form must reproduce the above copyright-// notice, this list of conditions and the following disclaimer in the-// documentation and/or other materials provided with the distribution.-// -// 3. Neither the names of the copyright holder and any identified-// contributors, nor the names of their affiliations, may be used to -// endorse or promote products derived from this software without -// specific prior written permission.-// -// THIS SOFTWARE IS PROVIDED BY THE CONTRIBUTORS ``AS IS'' AND ANY EXPRESS-// OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED-// WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE-// DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR-// ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL-// DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS-// OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)-// HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,-// STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN-// ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE-// POSSIBILITY OF SUCH DAMAGE.--#ifndef ENV_H_-#define ENV_H_--#define SOCKHANDLER CLOS2_Prelude // CLOS_Peer_POSIX_Int_Connection_POSIX__POSIX-#define HANDLER CLOS3_POSIX // CLOS_LIST_Time_Time_Msg__POSIX-#define ACTION CLOS2_Prelude // CLOS_Time_Time_Msg__POSIX-#define FILE2CLOSABLE l_File_POSIX_Closable_POSIX_POSIX-#define RFILE2FILE l_RFile_POSIX_File_POSIX_POSIX-#define WFILE2FILE l_WFile_POSIX_File_POSIX_POSIX-#define CONN2CLOSABLE l_Connection_POSIX_Closable_POSIX_POSIX-#define SOCK2CLOSABLE l_Socket_POSIX_Closable_POSIX_POSIX-#define __GC__HANDLER __GC__CLOS3_POSIX // __GC__CLOS_LIST_Time_Time_Msg__POSIX-#endif
rtsPOSIX/gc.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without@@ -39,14 +39,16 @@ #define NEW2(addr,words,info) { ADDR top,stop; \ do { addr = hp2; stop = lim2; top = ODD((addr)+(words)); \ } while (ISODD(addr) || !CAS(addr,top,&hp2)); \- if (top>=stop) addr = force2(words,addr,info); else { addr[0] = (WORD)(info); hp2 = EVEN(top); } }+ if (top>=stop) addr = force2(words,addr<stop?addr:0,info); else { addr[0] = (WORD)(info); hp2 = EVEN(top); } } +// Note: soundness of the spin-loop above depends on the invariant that lim2 is never changed unless hp2 also changes.+ #define ODD(addr) (ADDR)((WORD)(addr) | 1) #define EVEN(addr) (ADDR)((WORD)(addr) & ~1) #define ISODD(addr) ((WORD)(addr) & 1) #define IND0(obj) (ADDR)((ADDR)obj)[0]-#define GC_PROLOGUE(obj) { if (ISFORWARD(IND0(obj))) obj = (PID)IND0(obj); } // read barrier+#define GC_PROLOGUE(obj) { if (ISFORWARD(IND0(obj))) obj = (OID)IND0(obj); } // read barrier #define GC_EPILOGUE(obj) { if (ISBLACK((ADDR)obj)) { ADDR a; NEW2(a,1,(ADDR)obj); } } // write barrier #define GC_STD 0@@ -62,7 +64,6 @@ #define allocwords(size) (ADDR)malloc(BYTES(size)) #define HEAPSIZE 0x100000 // 0x100000 words = 0x400000 bytes = 4194304 bytes = 4 Mb = 1024 pages = 0x400 pages-#define STARTGC() (WORD)hp >= 7 * (((WORD)lim)/8) #define ISWHITE(a) INSIDE(heapchain,a,hp) #define ISBLACK(a) hp2 && INSIDE(heapchain2,a,scanp)@@ -132,25 +133,32 @@ initheap(); // Create fresh heap for dynamic data } +pthread_cond_t alloc;+pthread_cond_t alloc2;+ ADDR force(WORD size, ADDR last) { // Overflow in fromspace ADDR a; if (size > HEAPSIZE-3) panic("Excessive heap block requested"); DISABLE(rts);- // printf("# force: base=%x lim=%x (hp=%x)\n", (int)base, (int)lim, (int)hp);- if (base <= last && last < lim) { // only extend if we were first to reach critical section+ // fprintf(stderr, "# force: base=%x, lim=%x, hp=%x, last=%x\n", (int)base, (int)lim, (int)hp, (int)last);+ if (last) { // only extend if we were first to reach critical section a = allocwords(HEAPSIZE); if (!a) panic("Cannot allocate more memory"); base[0] = (WORD)a; // add link to new heap in first word of previous heap a[0] = 0; // null terminate chain of heaps base = a;- lim = a + HEAPSIZE - 1; // leave room for two words at the end+ lim = a + HEAPSIZE - 2; // leave room for two words at the end hp = a + 1; last[0] = 0; // mark the end of a heap segment (nulled gcinfo) last[1] = (WORD)hp;- // printf("# new: base=%x lim=%x (hp=%x)\n", (int)base, (int)lim, (int)hp);+ pthread_cond_broadcast(&alloc);+ // fprintf(stderr, "# new: base=%x lim=%x (hp=%x)\n", (int)base, (int)lim, (int)hp);+ } else {+ while (hp >= lim)+ pthread_cond_wait(&alloc, &rts); } ENABLE(rts); @@ -163,7 +171,7 @@ if (size > HEAPSIZE-3) panic("Excessive heap block requested"); DISABLE(rts);- if (base2 <= last && last < lim2) { // only extend if we were first to reach critical section+ if (last) { // only extend if we were first to reach critical section a = allocwords(HEAPSIZE); if (!a) panic("Cannot allocate more memory"); @@ -175,6 +183,10 @@ last[0] = 0; // mark the end of a heap segment (nulled gcinfo) last[1] = (WORD)hp2;+ pthread_cond_broadcast(&alloc2);+ } else {+ while (hp2 >= lim2)+ pthread_cond_wait(&alloc2, &rts); } ENABLE(rts); @@ -337,24 +349,15 @@ heapchain2 = (ADDR)0; } -void *garbageCollector(void *arg) {- Thread current = (Thread)arg;- pthread_setspecific(current_key, current);- struct sched_param param;- param.sched_priority = current->prio;- pthread_setschedparam(current->id, SCHED_RR, ¶m);- DISABLE(rts);- while (1) {- pthread_cond_wait(¤t->trigger, &rts);- // printf("# Starting GC\n");- gc();+int heapLevel(int steps) {+ int acc = 0;+ ADDR link = heapchain;+ while (link[0]) {+ acc += HEAPSIZE;+ link = (ADDR)link[0]; }-}--Thread gcThread;--void gcStart(void) {- pthread_cond_signal(&gcThread->trigger);+ acc += hp-base;+ return acc / (HEAPSIZE/steps); } void gcInit() {@@ -368,6 +371,7 @@ pagesize = sysconf(_SC_PAGESIZE) / sizeof(WORD); base2 = lim2 = hp2 = (ADDR)0; // no active tospace initheap(); // Allocate base (= heapchain)- gcThread = newThread(NULL, prio_min, garbageCollector, pagesize);+ pthread_cond_init(&alloc, 0);+ pthread_cond_init(&alloc2, 0); }
rtsPOSIX/main.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without@@ -31,22 +31,15 @@ // ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE // POSSIBILITY OF SUCH DAMAGE. -#include "rts.h"-#include "timber.h"-#include "POSIX.h"-#include "env.h"- void ROOTINIT(void);-ACTION ROOT(Env_POSIX, POLY);+void ROOT(void); -extern ACTION prog;-extern Env_POSIX env;+void envInit(int argc, char** argv);+void envStart(void (*root)(void)); int main(int argc, char **argv) {- init_rts(argc, argv);+ envInit(argc, argv); ROOTINIT();- pruneStaticHeap();- prog = ROOT(env, (POLY)0);- prog->Code(prog,(POLY)Inherit,(POLY)Inherit);- eventLoop();+ envStart(ROOT);+ return 0; }
rtsPOSIX/rts.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without@@ -42,8 +42,7 @@ #include "rts.h" #include "timber.h" --#define MAXTHREADS 8+#define MAXTHREADS 12 // Static maximum #define SLEEP() sigsuspend(&enabled_mask) #define DISABLE(mutex) pthread_mutex_lock(&mutex)@@ -82,6 +81,9 @@ // Thread management -------------------------------------------------------------------------------- +Int NCORES = 0;+Int NTHREADS = 0;+ struct Thread; typedef struct Thread *Thread; @@ -117,13 +119,12 @@ int prio_min, prio_max; -#define NCORES 2 #define PRIO(t) (t ? t->prio : ) Thread newThread(Msg m, int prio, void *(*fun)(void *), int stacksize) { Thread t = NULL;- if (nthreads < MAXTHREADS) {+ if (nthreads < NTHREADS) { t = &threads[nthreads++]; t->msg = m; t->prio = prio;@@ -153,9 +154,28 @@ // Memory management -------------------------------------------------------------------------------- +Thread gcThread;+ #include "gc.c" +void gcStart(void) {+ pthread_cond_signal(&gcThread->trigger);+} +void *garbageCollector(void *arg) {+ Thread current_thread = (Thread)arg;+ pthread_setspecific(current_key, current_thread);+ struct sched_param param;+ param.sched_priority = current_thread->prio;+ pthread_setschedparam(current_thread->id, SCHED_RR, ¶m);+ DISABLE(rts);+ while (1) {+ pthread_cond_wait(¤t_thread->trigger, &rts);+ gc();+ }+}++ // Cyclic data handling ----------------------------------------------------------------------------- #include "cyclic.c"@@ -170,7 +190,7 @@ void enqueueByDeadline(Msg p, Msg *queue) { Msg prev = NULL, q = *queue;- while (q && LESS(q->deadline, p->deadline)) {+ while (q && LESSEQ(q->deadline, p->deadline)) { prev = q; q = q->next; }@@ -183,7 +203,7 @@ void enqueueByBaseline(Msg p, Msg *queue) { Msg prev = NULL, q = *queue;- while (q && LESS(q->baseline, p->baseline)) {+ while (q && LESSEQ(q->baseline, p->baseline)) { prev = q; q = q->next; }@@ -241,31 +261,43 @@ return t; } -int activate(Msg m) {+int activate(Msg m, int force) { int count = 0; Thread prev = NULL, t = runQ; AbsTime dl = m->deadline;+ while (count < NCORES && t && LESS(t->msg->deadline, dl)) { count++; prev = t; t = t->next; }- if (count >= NCORES)+ if (count >= NCORES && !force) {+ // fprintf(stderr, "** Out of cores\n"); return 0;+ } Thread new = getThread(m, midPrio(prev,t));- if (new == NULL)+ if (new == NULL) {+ // fprintf(stderr, "** Out of threads\n"); return 0;+ } new->next = t; if (prev == NULL) runQ = new; else prev->next = new; nactive++;- // fprintf(stderr, "Worker thread %d activated (%d)\n", (int)new, nactive);+ // fprintf(stderr, "++ %d | runQ: ", new->index);+ // Thread th = runQ;+ // while (th) {+ // fprintf(stderr, "%d ", th->index);+ // th = th->next;+ // }+ // fprintf(stderr, "\n"); return 1; } void deactivate(Thread t) {+ // fprintf(stderr, "-- %d | runQ: ", t->index); if (t == runQ) runQ = runQ->next; else {@@ -279,37 +311,44 @@ t->next = sleepQ; sleepQ = t; nactive--;- // fprintf(stderr, "Worker thread %d deactivated (%d)\n", (int)t, nactive);+ // Thread th = runQ;+ // while (th) {+ // fprintf(stderr, "%d ", th->index);+ // th = th->next;+ // }+ // fprintf(stderr, "\n"); } void *run(void *arg) {- Thread current = (Thread)arg;- pthread_setspecific(current_key, current);+ Thread current_thread = (Thread)arg;+ pthread_setspecific(current_key, current_thread); struct sched_param param;- param.sched_priority = current->prio;- pthread_setschedparam(current->id, SCHED_RR, ¶m);- // fprintf(stderr, "Worker thread %d started\n", (int)current);+ param.sched_priority = current_thread->prio;+ pthread_setschedparam(current_thread->id, SCHED_RR, ¶m);+ // fprintf(stderr, "Worker thread %d started\n", current_thread->index); DISABLE(rts); while (1) {- Msg this = current->msg;+ Msg this = current_thread->msg; ENABLE(rts); Int (*code)(Msg) = this->Code;+ if (code) code(this); DISABLE(rts);+ deactivate(current_thread); - deactivate(current);+ if (heapLevel(16) > 13)+ gcStart();+ while (msgQ && !(msgQ->Code)) msgQ = msgQ->next; if (msgQ) {- activate(msgQ);+ activate(msgQ, 1); msgQ = msgQ->next;- } else {- pthread_cond_wait(¤t->trigger, &rts);+ } else { + pthread_cond_wait(¤t_thread->trigger, &rts); }- if (STARTGC())- gcStart(); } } @@ -321,9 +360,9 @@ AbsTime now; TIMERGET(now);- Thread current = CURRENT();- // fprintf(stderr, "Working thread %d in ASYNC\n", (int)current);- m->baseline = current->msg->baseline;+ Thread current_thread = CURRENT();+ // fprintf(stderr, "Working thread %d in ASYNC\n", (int)current_thread);+ m->baseline = current_thread->msg->baseline; switch ((Int)bl) { case INHERIT: break; case TIME_INFINITY:@@ -337,7 +376,7 @@ } switch((Int)dl) { case INHERIT: - m->deadline = current->msg->deadline;+ m->deadline = current_thread->msg->deadline; break; case TIME_INFINITY: m->deadline.tv_sec = INF;@@ -353,7 +392,7 @@ timerQdirty = 1; if (timerQ == m) TIMERSET(m->baseline, now); // TIMERQ_EPILOGUE();- } else if (!activate(m))+ } else if (!activate(m,0)) enqueueByDeadline(m, &msgQ); ENABLE(rts);@@ -367,18 +406,18 @@ obj->STATE = (ADDR)STATEOF(obj); // actually unused, but keep it clean } -PID LOCK( PID to ) {+OID LOCK( OID to ) { Ref r = (Ref)to; pthread_mutex_lock(&(r->mut)); GC_PROLOGUE(to);- if (to != (PID)r) {+ if (to != (OID)r) { pthread_mutex_lock(&(((Ref)to)->mut)); pthread_mutex_unlock(&(r->mut)); } return to; } -UNITTYPE UNLOCK( PID to ) {+UNITTYPE UNLOCK( OID to ) { GC_EPILOGUE(to); pthread_mutex_unlock(&(((Ref)to)->mut)); return (UNITTYPE)0;@@ -410,6 +449,8 @@ // Environment object --------------------------------------------------------------------------------- +void init_rts(void);+ #include "env.c" // Show Float -----------------------------------------------------------------------------------------@@ -421,10 +462,10 @@ int timerQdirty; void *timerHandler(void *arg) {- Thread current = (Thread)arg;+ Thread current_thread = (Thread)arg; struct sched_param param;- param.sched_priority = current->prio;- pthread_setschedparam(current->id, SCHED_RR, ¶m);+ param.sched_priority = current_thread->prio;+ pthread_setschedparam(current_thread->id, SCHED_RR, ¶m); // pthread_sigmask(SIG_BLOCK, &all_sigs, NULL); sigset_t accept;@@ -439,7 +480,7 @@ while (timerQ && LESSEQ(timerQ->baseline, now)) { Msg m = dequeue(&timerQ); if (m->Code) {- if (!activate(m))+ if (!activate(m,0)) enqueueByDeadline(m, &msgQ); } }@@ -454,24 +495,33 @@ DISABLE(rts); if (timerQ) { timerQ = (Msg)copy((ADDR)timerQ);+ Msg m = timerQ; ENABLE(rts); DISABLE(rts);- Msg m = timerQ, next = m->next;+ Msg next = m->next; while (next) { m->next = (Msg)copy((ADDR)next);+ m = m->next; ENABLE(rts); DISABLE(rts);- m = m->next; next = m->next; } } ENABLE(rts); } - // Initialization ------------------------------------------------------------------------------------- -void init_rts(int argc, char **argv) {+Int getNumberOfProcessors() {+#if defined(HAVE_SYSCONF) && defined(_SC_NPROCESSORS_ONLN)+ Int n = sysconf(_SC_NPROCESSORS_ONLN);+ if (n >= 1)+ return n;+#endif+ return 1;+}++void init_rts(void) { pthread_mutexattr_init(&glob_mutexattr); pthread_mutexattr_settype(&glob_mutexattr, PTHREAD_MUTEX_NORMAL); pthread_mutexattr_setprotocol(&glob_mutexattr, PTHREAD_PRIO_INHERIT);@@ -491,10 +541,14 @@ DISABLE(rts); + NCORES = getNumberOfProcessors();+ NTHREADS = NCORES * 4;+ if (NTHREADS > MAXTHREADS)+ NTHREADS = MAXTHREADS;+ gcInit();- envInit(argc, argv);+ gcThread = newThread(NULL, prio_min, garbageCollector, pagesize); newThread(NULL, prio_max, timerHandler, pagesize); ENABLE(rts); }-
rtsPOSIX/rts.h view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without@@ -36,7 +36,6 @@ #include <stddef.h> #include <sys/time.h>-//#include <setjmp.h> #include <pthread.h> #include "config.h"@@ -53,7 +52,7 @@ #define UNITTYPE char #define UNITTERM char // alias for singleton type #define POLY ADDR-#define PID ADDR+#define OID ADDR #define BITS8 unsigned char #define BITS16 unsigned short #define BITS32 unsigned int@@ -140,24 +139,17 @@ #define NEW(t,addr,words) { ADDR top,stop; \ do { addr = (t)hp; stop = lim; top = ((ADDR)addr)+(words); } \ while (!CAS(addr,top,&hp)); \- if (top>=stop) addr = (t)force((words),(ADDR)addr); }+ if (top>=stop) { addr = (t)force((words),(ADDR)addr<stop?(ADDR)addr:0);} } -#define CURRENT() ((Thread)pthread_getspecific(current_key))+// Note: soundness of the spin-loop above depends on the invariant that lim is never changed unless hp also changes. -/*-#define TMIN(a,b) ((a) < (b) ? (a) : (b) )-#define TPLUS(a,b) ((a) + (b))-#define TMINUS(a,b) ( (a) > (b) ? (a) - (b) : 0 )-*/+#define CURRENT() ((Thread)pthread_getspecific(current_key)) extern ADDR hp, lim; extern pthread_key_t current_key; ADDR force(WORD, ADDR);-void pruneStaticHeap();--void init_rts(int, char**); Time sec(Int c); Time millisec(Int x);
rtsPOSIX/timberc.cfg.in view
@@ -2,4 +2,5 @@ { cCompiler = "@CC@ -DPOSIX" , compileFlags = " @CFLAGS@ " , linkFlags = " @LDFLAGS@ "+ , linkLibs = " -lTimber " }
rtsPOSIX/timer.c view
@@ -1,6 +1,6 @@ // The Timber compiler <timber-lang.org> // -// Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+// Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> // All rights reserved. // // Redistribution and use in source and binary forms, with or without@@ -45,10 +45,10 @@ typedef struct T_Timer *T_Timer; struct T_Timer {- WORD *GCINFO;- UNITTYPE (*reset) (T_Timer, Int);- Time (*sample) (T_Timer, Int);- Ref self;+ WORD *GCINFO;+ UNITTYPE (*reset) (T_Timer, Int);+ Time (*sample) (T_Timer, Int);+ Ref self; }; @@ -60,246 +60,248 @@ Time sec(Int c) {- Time res;- NEW(Time,res,WORDS(sizeof(struct Time)));- res->GCINFO = __GC__Time;- res->sec = c;- res->usec = 0;- return res;+ Time res;+ NEW(Time,res,WORDS(sizeof(struct Time)));+ res->GCINFO = __GC__Time;+ res->sec = c;+ res->usec = 0;+ return res; } Time millisec(Int c) {- Time res;- NEW(Time,res,WORDS(sizeof(struct Time)));- res->GCINFO = __GC__Time;- res->sec = c / 1000;- res->usec = 1000 * (c % 1000);- return res;+ Time res;+ NEW(Time,res,WORDS(sizeof(struct Time)));+ res->GCINFO = __GC__Time;+ res->sec = c / 1000;+ res->usec = 1000 * (c % 1000);+ return res; } Time microsec(Int c) {- Time res;- NEW(Time,res,WORDS(sizeof(struct Time)));- res->GCINFO = __GC__Time;- res->sec = c / 1000000;- res->usec = c % 1000000;- return res;+ Time res;+ NEW(Time,res,WORDS(sizeof(struct Time)));+ res->GCINFO = __GC__Time;+ res->sec = c / 1000000;+ res->usec = c % 1000000;+ return res; } Int secOf(Time t) {- switch ((Int)t) {- case INHERIT: panic("secOf Inherit");- case TIME_INFINITY: panic("secOf infinity");- default: return t->sec;- }+ switch ((Int)t) {+ case INHERIT: panic("secOf Inherit");+ case TIME_INFINITY: panic("secOf infinity");+ default: return t->sec;+ } } Int microsecOf(Time t) {- switch ((Int)t) {- case INHERIT: panic("microsecOf Inherit");- case TIME_INFINITY: panic("microsecOf infinity");- default: return t->usec;- }+ switch ((Int)t) {+ case INHERIT: panic("microsecOf Inherit");+ case TIME_INFINITY: panic("microsecOf infinity");+ default: return t->usec;+ } } Time primTimePlus(Time t1, Time t2) {- Time res;- switch ((Int)t1) {- case INHERIT: return t2;- case TIME_INFINITY: return Infinity;- default: - switch ((Int)t2) {- case INHERIT: return t1;- case TIME_INFINITY: return Infinity;- default:- NEW(Time,res,WORDS(sizeof(struct Time)));- res->GCINFO = __GC__Time;- res->usec = t1->usec + t2->usec;- res->sec = t1->sec + t2->sec;- if (res->usec >= 1000000) {- res->usec -= 1000000;- res->sec += 1;- }- return res;+ Time res;+ switch ((Int)t1) {+ case INHERIT: return t2;+ case TIME_INFINITY: return Infinity;+ default: + switch ((Int)t2) {+ case INHERIT: return t1;+ case TIME_INFINITY: return Infinity;+ default:+ NEW(Time,res,WORDS(sizeof(struct Time)));+ res->GCINFO = __GC__Time;+ res->usec = t1->usec + t2->usec;+ res->sec = t1->sec + t2->sec;+ if (res->usec >= 1000000) {+ res->usec -= 1000000;+ res->sec += 1;+ }+ return res;+ } }- } } Time primTimeMin(Time t1, Time t2) {- switch ((Int)t1) {- case INHERIT: - case TIME_INFINITY:return t2;- default:- switch ((Int)t2) {- case INHERIT: - case TIME_INFINITY: return t1;- default: - if (t1->sec < t2->sec || (t1->sec == t2->sec && t1->usec < t2->usec))- return t1;- else- return t2;+ switch ((Int)t1) {+ case INHERIT: + case TIME_INFINITY:return t2;+ default:+ switch ((Int)t2) {+ case INHERIT: + case TIME_INFINITY: return t1;+ default: + if (t1->sec < t2->sec || (t1->sec == t2->sec && t1->usec < t2->usec))+ return t1;+ else+ return t2;+ } }- } } Time primTimeMinus(Time t1, Time t2) {- Time res;- switch ((Int)t1) {- case INHERIT: panic("primTimeMinus Inherit");- case TIME_INFINITY: - switch((Int) t2) {- case INHERIT: panic("primTimeMinus Inherit");- case TIME_INFINITY: panic("infinity - infinity");- default: return Infinity;- } - default:- switch ((Int)t2) {- case INHERIT: panic("primTimeMinus Inherit");- case TIME_INFINITY:- NEW(Time,res,WORDS(sizeof(struct Time)));- res->GCINFO = __GC__Time;- res->sec = 0;- res->usec = 0;- return res;- default:- NEW(Time,res,WORDS(sizeof(struct Time)));- res->GCINFO = __GC__Time;- res->usec = t1->usec - t2->usec;- if (res->usec < 0) {- res->usec += 1000000;- t1->sec -= 1;- }- res->sec = t1->sec - t2->sec;- if (res->sec < 0) res->sec = 0;- return res;+ Time res;+ switch ((Int)t1) {+ case INHERIT: panic("primTimeMinus Inherit");+ case TIME_INFINITY: + switch((Int) t2) {+ case INHERIT: panic("primTimeMinus Inherit");+ case TIME_INFINITY: panic("infinity - infinity");+ default: return Infinity;+ } + default:+ switch ((Int)t2) {+ case INHERIT: panic("primTimeMinus Inherit");+ case TIME_INFINITY:+ NEW(Time,res,WORDS(sizeof(struct Time)));+ res->GCINFO = __GC__Time;+ res->sec = 0;+ res->usec = 0;+ return res;+ default:+ NEW(Time,res,WORDS(sizeof(struct Time)));+ res->GCINFO = __GC__Time;+ res->usec = t1->usec - t2->usec;+ if (res->usec < 0) {+ res->usec += 1000000;+ t1->sec -= 1;+ }+ res->sec = t1->sec - t2->sec;+ if (res->sec < 0) + res->sec = 0;+ return res;+ } }- } } Bool primTimeEQ(Time t1, Time t2) {- switch ((Int)t1) {- case INHERIT: panic("primTimeEQ Inherit");- case TIME_INFINITY: switch((Int)t2) {- case INHERIT: panic("primTimeEQ Inherit");- case TIME_INFINITY: return 1;- default:- return 0;- }- default:- switch ((Int)t2) {- case INHERIT: panic("primTimeEQ Inherit");- case TIME_INFINITY: return 0;- default:- return (t1->sec == t2->sec && t1->usec == t2->usec);+ switch ((Int)t1) {+ case INHERIT: panic("primTimeEQ Inherit");+ case TIME_INFINITY: + switch((Int)t2) {+ case INHERIT: panic("primTimeEQ Inherit");+ case TIME_INFINITY: return 1;+ default: return 0;+ }+ default:+ switch ((Int)t2) {+ case INHERIT: panic("primTimeEQ Inherit");+ case TIME_INFINITY: return 0;+ default:+ return (t1->sec == t2->sec && t1->usec == t2->usec);+ } }- } } Bool primTimeNE(Time t1, Time t2) {- switch ((Int)t1) {- case INHERIT: panic("primTimeNE Inherit");- case TIME_INFINITY: switch((Int)t2) {- case INHERIT: panic("primTimeNE Inherit");- case TIME_INFINITY: return 0;- default:- return 1;- }- default:- switch ((Int)t2) {- case INHERIT: panic("primTimeNE Inherit");- case TIME_INFINITY: return 1;- default:- return (t1->sec != t2->sec || t1->usec != t2->usec);+ switch ((Int)t1) {+ case INHERIT: panic("primTimeNE Inherit");+ case TIME_INFINITY: + switch((Int)t2) {+ case INHERIT: panic("primTimeNE Inherit");+ case TIME_INFINITY: return 0;+ default: return 1;+ }+ default:+ switch ((Int)t2) {+ case INHERIT: panic("primTimeNE Inherit");+ case TIME_INFINITY: return 1;+ default:+ return (t1->sec != t2->sec || t1->usec != t2->usec);+ } }- } } Bool primTimeLT(Time t1, Time t2) {- switch ((Int)t1) {- case INHERIT: panic("primTimeLT Inherit");- case TIME_INFINITY: switch((Int)t2) {- case INHERIT: panic("primTimeLT Inherit");- default:- return 0;- }- default:- switch ((Int)t2) {- case INHERIT: panic("primTimeLT Inherit");- case TIME_INFINITY: return 1;- default:- return (t1->sec < t2->sec || (t1->sec==t2->sec && t1->usec<t2->usec));+ switch ((Int)t1) {+ case INHERIT: panic("primTimeLT Inherit");+ case TIME_INFINITY: + switch((Int)t2) {+ case INHERIT: panic("primTimeLT Inherit");+ default: return 0;+ }+ default:+ switch ((Int)t2) {+ case INHERIT: panic("primTimeLT Inherit");+ case TIME_INFINITY: return 1;+ default:+ return (t1->sec < t2->sec || (t1->sec==t2->sec && t1->usec<t2->usec));+ } }- } }+ Bool primTimeLE(Time t1, Time t2) {- switch ((Int)t1) {- case INHERIT: panic("primTime InheritLE");- case TIME_INFINITY: switch((Int)t2) {- case INHERIT: panic("primTime InheritLE");- default:- return 0;- }- default:- switch ((Int)t2) {- case INHERIT: panic("primTime InheritLE");- case TIME_INFINITY: return 1;- default:- return (t1->sec < t2->sec || (t1->sec==t2->sec && t1->usec<=t2->usec));+ switch ((Int)t1) {+ case INHERIT: panic("primTime InheritLE");+ case TIME_INFINITY: + switch((Int)t2) {+ case INHERIT: panic("primTime InheritLE");+ default: return 0;+ }+ default:+ switch ((Int)t2) {+ case INHERIT: panic("primTime InheritLE");+ case TIME_INFINITY: return 1;+ default:+ return (t1->sec < t2->sec || (t1->sec==t2->sec && t1->usec<=t2->usec));+ } }- } } Bool primTimeGT(Time t1, Time t2) {- return primTimeLT(t2,t1);+ return primTimeLT(t2,t1); } Bool primTimeGE(Time t1, Time t2) {- return primTimeLE(t2,t1);+ return primTimeLE(t2,t1); } static UNITTYPE reset_fun(Ref self, Int x) {- self = (Ref)LOCK((PID)self);- ((S_Timer)STATEOF(self))->start = CURRENT()->msg->baseline;- UNLOCK((PID)self);- return (UNITTYPE)0;+ self = (Ref)LOCK((OID)self);+ ((S_Timer)STATEOF(self))->start = CURRENT()->msg->baseline;+ UNLOCK((OID)self);+ return (UNITTYPE)0; } static Time sample_fun(Ref self, Int x) {- self = (Ref)LOCK((PID)self);- AbsTime now;- now = CURRENT()->msg->baseline;- SUB(now,((S_Timer)STATEOF(self))->start);- UNLOCK((PID)self);- Time res;- NEW(Time,res,WORDS(sizeof(struct Time)));- res->GCINFO = __GC__Time;- res->sec = now.tv_sec;- res->usec = now.tv_usec;- return res;+ self = (Ref)LOCK((OID)self);+ AbsTime now;+ now = CURRENT()->msg->baseline;+ SUB(now,((S_Timer)STATEOF(self))->start);+ UNLOCK((OID)self);+ Time res;+ NEW(Time,res,WORDS(sizeof(struct Time)));+ res->GCINFO = __GC__Time;+ res->sec = now.tv_sec;+ res->usec = now.tv_usec;+ return res; } static UNITTYPE reset_sel(T_Timer this,Int x) {- return reset_fun(this->self,x);+ return reset_fun(this->self,x); } static Time sample_sel(T_Timer this, Int x) {- return sample_fun(this->self,x);+ return sample_fun(this->self,x); } TIMERTYPE primTIMERTERM(Int x) {- Ref self;- NEW(Ref,self,WORDS(sizeof(struct Ref))+WORDS(sizeof(struct S_Timer)));- INITREF(self);- ((S_Timer)STATEOF(self))->GCINFO = __GC__S_Timer;- ((S_Timer)STATEOF(self))->start = CURRENT()->msg->baseline;- T_Timer res;- NEW(T_Timer,res,WORDS(sizeof(struct T_Timer)));- res->GCINFO = __GC__T_Timer;- res->reset = reset_sel;- res->sample = sample_sel;- res->self = self;- return (TIMERTYPE)res;+ Ref self;+ NEW(Ref,self,WORDS(sizeof(struct Ref))+WORDS(sizeof(struct S_Timer)));+ INITREF(self);+ ((S_Timer)STATEOF(self))->GCINFO = __GC__S_Timer;+ ((S_Timer)STATEOF(self))->start = CURRENT()->msg->baseline;+ T_Timer res;+ NEW(T_Timer,res,WORDS(sizeof(struct T_Timer)));+ res->GCINFO = __GC__T_Timer;+ res->reset = reset_sel;+ res->sample = sample_sel;+ res->self = self;+ return (TIMERTYPE)res; }
src/Common.hs view
@@ -1,8 +1,8 @@-{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances #-}+{-# LANGUAGE MultiParamTypeClasses, FlexibleInstances, DeriveDataTypeable #-} -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -38,8 +38,11 @@ import PP import qualified List import qualified Maybe+import Control.Exception import Char+import Config import Name+import Data.Typeable import Data.Binary import Debug.Trace @@ -112,7 +115,7 @@ rmPrefix :: String -> String -> String rmPrefix pre str | pre `List.isPrefixOf` str = drop (length pre) str- | otherwise = error $ "rmPrefix: " ++ str ++ " is not a prefix of " ++ show pre+ | otherwise = internalError0 $ "rmPrefix: " ++ str ++ " is not a prefix of " ++ show pre rmDirs :: String -> String rmDirs = reverse . fst . span (/='/') . reverse @@ -132,7 +135,7 @@ -- Error reporting --------------------------------------------------------- -errorIds mess ns = error (unlines ((mess++":") : map pos ns))+errorIds mess ns = compileError (unlines ((mess++":") : map pos ns)) where pos n = case loc n of Just (r,c) -> rJust 15 (show n) ++ " at line " ++ show r ++ ", column " ++ show c Nothing -> rJust 15 (show n) ++ modInfo n@@ -140,13 +143,17 @@ rJust w str = replicate (w-length str) ' ' ++ str modInfo (Name _ _ (Just m) a) = " defined in " ++ m modInfo _ = " (unknown position)"-errorTree mess t = error (mess ++ pos ++ (if length (lines str) > 1 then "\n"++str++"\n" else str) )+errorTree mess t = compileError (errorMsg mess t)++compileError mess = throw (CompileError mess)++errorMsg mess t = mess ++ pos ++ (if length (lines str) > 1 then "\n"++str++"\n" else str) where str = render (pr t) pos = " ("++ show (posInfo t) ++"): " -internalError mess t = errorTree ("**** Internal compiler error ****\n" ++ mess) t+internalError mess t = internalError0 (errorMsg mess t) -internalError0 mess = error ("**** Internal compiler error ****\n" ++ mess)+internalError0 mess = throw (Panic mess) -- PosInfo ---------------------------------------------------------@@ -272,7 +279,7 @@ runM (M m) = case m (1,[]) of Right (_,x) -> x- Left s -> error s+ Left s -> compileError s newNum = M $ \(n,s) -> Right ((n+1,s), n) @@ -449,7 +456,7 @@ | otherwise = (k',x') : insert k x assoc -update k f [] = error "Internal: Common.update"+update k f [] = internalError0 "Internal: Common.update" update k f ((k',x):assoc) | k == k' = (k, f x) : assoc | otherwise = (k',x) : update k f assoc@@ -531,6 +538,7 @@ posInfo _ = Unknown newtype TVar = TV (Int,Kind)+ deriving (Typeable) type KEnv = Map Name Kind
src/Config.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -74,17 +74,18 @@ import Char import System.Console.GetOpt import System ( getArgs, getEnv, getProgName )-import qualified Control.Exception as Exception ( throwIO, Exception )+import qualified Control.Exception as Exception import Data.Dynamic -versionString = "The Timber compiler, version 1.0.2"+versionString = "The Timber compiler, version 1.0.3" -- | Contains the configuration for the compiler with the current -- command line switches. data CfgOpts = CfgOpts { cCompiler :: FilePath, compileFlags :: String,- linkFlags :: String+ linkFlags :: String,+ linkLibs :: String } deriving (Show, Eq, Read) -- | Command line options.@@ -198,8 +199,10 @@ deriving (Show,Eq) data TimbercException- = CmdLineError String -- User did something wrong with command line options.- | Panic String -- Unexpected faults in timberc, panic.+ = CmdLineError String -- User did something wrong with command line options.+ | ConfigError String -- Something is wrong with the given compiler configuration.+ | CompileError String -- Error in the given Timber input file.+ | Panic String -- Unexpected faults in timberc, panic. deriving (Eq) instance Typeable TimbercException where@@ -207,9 +210,10 @@ -- | Let us show our exceptions as expected. instance Show TimbercException where- showsPrec _ (CmdLineError s) = showString s- showsPrec _ (Panic s) = showString $- "Panic! Please file a bug report!\n\n" ++ s+ showsPrec _ (CmdLineError s) = showString s+ showsPrec _ (ConfigError s) = showString s+ showsPrec _ (CompileError s) = showString s+ showsPrec _ (Panic s) = showString ("**** Internal compiler panic! [Please file a bug report...]\n\n" ++ s) instance Exception.Exception TimbercException @@ -290,8 +294,8 @@ safeRead file text = let val = case [x | (x,t) <- reads text, ("","") <- lex t] of [x] -> x- [] -> error ("Parse error in " ++ file ++ "\n")- _ -> error ("File not found: " ++ file ++ "\n")+ [] -> Exception.throw (ConfigError ("Parse error in " ++ file ++ "\n"))+ _ -> Exception.throw (ConfigError ("File not found: " ++ file ++ "\n")) in (return $! val) emsg f = (CmdLineError $ "Could not open " ++ file)
src/Core.hs view
@@ -1,8 +1,8 @@-{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts #-}+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts, DeriveDataTypeable #-} -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -37,6 +37,7 @@ import Common import PP+import Data.Typeable import Data.Binary import Monad @@ -72,20 +73,20 @@ type Pred = Type data Scheme = Scheme Rho [PScheme] KEnv- deriving (Eq,Show)+ deriving (Eq,Show,Typeable) data Constr = Constr [Scheme] [PScheme] KEnv deriving (Eq,Show) data Rho = R Type | F [Scheme] Rho- deriving (Eq,Show)+ deriving (Eq,Show,Typeable) data Type = TId Name | TVar TVar | TFun [Type] Type | TAp Type Type- deriving (Eq,Show)+ deriving (Eq,Show,Typeable) type Alt = (Pat, Exp) @@ -124,13 +125,24 @@ litType (LStr _ s) = TAp (TId (prim LIST)) (TId (prim Char)) --internalError0 "Core.litType LStr" -isNewAp (EVar (Prim New _)) = True-isNewAp (EAp e _) = isNewAp e-isNewAp (ELet bs e)- | isEncoding bs = isNewAp e-isNewAp _ = False+monoRestrict rec sc (ELet bs e)+ | isEncoding bs = monoRestrict rec sc e+monoRestrict _ _ (EAp e _)+ | isNew e = True+monoRestrict _ _ (ELam _ _) = False+monoRestrict _ _ (EAct _ _) = False+monoRestrict _ _ (EReq _ _) = False+monoRestrict _ _ (ETempl _ _ _ _) = False+monoRestrict _ _ (EDo _ _ _) = False+monoRestrict _ _ (EVar x) = False+monoRestrict rec sc _ = rec && null (ctxt sc) +isNew (ELet bs e)+ | isEncoding bs = isNew e+isNew (EVar (Prim New _)) = True+isNew _ = False+ tupleKind n = foldr KFun Star (replicate n Star) @@ -152,13 +164,6 @@ isConPat (PCon _) = True isConPat _ = False -isLambda (ELam _ _) = True-isLambda _ = False---arity (ELam te e) = length te-arity e = 0- eLet [] [] e = e eLet te eq e = ELet (Binds False te eq) e @@ -662,8 +667,9 @@ | otherwise -> return (TId n) ac s (TFun t ts) = liftM2 TFun (ac s t) (ac s ts) ac s (TAp t u) = liftM2 TAp (ac s t) (ac s u)- ac s t = return t+ ac s (TVar n) = newTVar (tvKind n) + instance AlphaConv Rho where ac s (R t) = liftM R (ac s t) ac s (F ts t) = liftM2 F (ac s ts) (ac s t)@@ -680,6 +686,29 @@ return (s'++s) where ext x = do n <- newNum return (x, {-annotGenerated-} x { tag = n })+++-- Refresh free unification variables -----------------------------------------------++class Refresh a where+ refresh :: a -> M x a++instance Refresh a => Refresh [a] where+ refresh xs = mapM refresh xs+ +instance Refresh Type where+ refresh (TVar (TV (_,k))) = newTVar k+ refresh (TFun t ts) = liftM2 TFun (refresh t) (refresh ts)+ refresh (TAp t u) = liftM2 TAp (refresh t) (refresh u)+ refresh t = return t++instance Refresh Rho where+ refresh (R t) = liftM R (refresh t)+ refresh (F ts t) = liftM2 F (refresh ts) (refresh t)++instance Refresh Scheme where+ refresh (Scheme t ps ke) = liftM3 Scheme (refresh t) (refresh ps) (return ke)+ -- Bound variables --------------------------------------------------------------@@ -692,8 +721,8 @@ -- System F encodings ============================================================ -- Encode a System F type application term-encodeTApp env [] e = return e-encodeTApp env ts e = do xs <- newNames tappSym (length ts)+encodeTApp [] e = return e+encodeTApp ts e = do xs <- newNames tappSym (length ts) let te = xs `zip` map scheme ts eq = xs `zip` map EVar xs return (ELet (Binds True te eq) e)@@ -704,8 +733,8 @@ -- Encode a System F type abstraction term-encodeTAbs env [] e = return e-encodeTAbs env ke e = do x <- newName tabsSym+encodeTAbs [] e = return e+encodeTAbs ke e = do x <- newName tabsSym let te = [(x,Scheme (R (TId (prim UNITTYPE))) [] ke)] return (ELet (Binds True te [(x,EVar x)]) e) @@ -822,11 +851,11 @@ pr (Binds _ te eqns) = vpr te $$ vpr eqns instance Pr (Name, Scheme) where- pr (v, sc) = prId v <+> text "::" <+> pr sc'- where sc' = subst s sc- s = map f (tyvars sc)- f v@(Name s n m a) = (v, Name ('_':s) n m a)- f v = (v,v)+ pr (v, sc) = prId v <+> text "::" <+> pr sc+-- where sc' = subst s sc+-- s = map f (tyvars sc)+-- f v@(Name s n m a) = (v, Name ('_':s) n m a)+-- f v = (v,v) instance Pr (Name, Exp) where pr (v, e) = prId v <+> text "=" <+> pr e@@ -910,6 +939,12 @@ prMaybeScheme Nothing = empty prMaybeScheme (Just t) = prn 1 t+++-- Substitutions -----------------------------------------------------------++instance Pr a => Pr (a, Type) where+ pr (n, t) = pr n <+> text "~" <+> pr t -- Patterns ----------------------------------------------------------------
src/Core2Kindle.hs view
@@ -2,7 +2,7 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -111,7 +111,10 @@ -- Look up a closure type (a Kindle.Struct) in the current store, extending the store if necessary-findClosureType env [] ts t = do ds <- currentStore+findClosureType env [] ts t+ | a == 0 = internalError0 "findClosureType [] []"+ | a <= maxPrimClos = return (Kindle.tClos a (t:ts))+ | otherwise = do ds <- currentStore -- tr ("Looking for (1) " ++ render (pr (name0 "closure", Kindle.FunT [] ts t))) case Kindle.findStruct s0 ds of Just n -> return (Kindle.TCon n (t:ts))@@ -136,17 +139,19 @@ ts0 = map Kindle.tVar vs0 +openClosureType (Kindle.TCon (Prim p _) (t:ts))+ | isClosPrim p = return ([], ts, t) openClosureType (Kindle.TCon n ts) | isClosure n = do ds <- currentStore let Kindle.Struct vs te _ = lookup' ds n- Kindle.FunT [] ts' t' = lookup' te (prim Code)+ Kindle.FunT vs' ts' t' = lookup' te (prim Code) s = vs `zip` ts- return (subst s ts', subst s t')+ return (vs', subst s ts', subst s t') openClosureType t = internalError "Core2Kindle.openClosureType" t splitClosureType env 0 t0 = return ([], t0)-splitClosureType env n t0 = do (ts,t) <- openClosureType t0+splitClosureType env n t0 = do ([],ts,t) <- openClosureType t0 let n' = n - length ts if n' >= 0 then do (tss,t1) <- splitClosureType env n' t@@ -233,8 +238,7 @@ -- Translate a Core.Type but treat function types as closures-cType' env (TId (Prim Action _), []) = return ([t,t], Kindle.tId Msg)- where t = Kindle.tId Time+cType' env (TId (Prim Action _), []) = return ([Kindle.tTime,Kindle.tTime], Kindle.tMsg) cType' env (TId (Prim Request _), [t]) = do t <- cAType env t return ([Kindle.tInt], t) cType' env (TId (Prim Class _), [t]) = do t <- cAType env t@@ -249,8 +253,8 @@ return ([], Kindle.TVar n ts) else return ([], Kindle.TCon n ts)-cType' env (TVar _, []) = return ([], Kindle.tInt)-cType' env (TVar _, ts) = do ts <- mapM (cAType env) ts+cType' env (TVar n, []) = return ([], Kindle.tInt)+cType' env (TVar n, ts) = do ts <- mapM (cAType env) ts return ([], Kindle.TCon (tuple (length ts)) ts) cType' env (t, _) = do t <- cAType env t return ([], t)@@ -301,12 +305,7 @@ cBindsList env [] = return [] cBindsList env (bs:bss) = do (te,bf) <- cBinds env bs bs <- cBindsList (addTEnv te env) bss- return (flatBinds bf ++ bs)---flatBinds bf = flat (bf Kindle.CBreak)- where flat (Kindle.CBind r bs c) = bs ++ flat c- flat _ = []+ return (Kindle.flatBinds bf ++ bs) -- Translate a list of (mutually recursive) Core bindings into a Kindle.CBind on basis of declared type@@ -317,8 +316,8 @@ (bf,bs) <- cEqs (addTEnv te' env) te' eqs return (te', comb rec bf bs) where comb False bf bs = bf . Kindle.CBind False bs- comb True bf bs = Kindle.CBind True (flatBinds bf ++ bs)- insts = dom (filter (isNewAp . snd) eqs)+ comb True bf bs = Kindle.CBind True (Kindle.flatBinds bf ++ bs)+ insts = dom (filter (\(x,e) -> monoRestrict rec (lookup' te x) e) eqs) (te1,te2) = partition ((`elem` insts) . fst) te @@ -330,31 +329,90 @@ Kindle.ValT t0 -> do (bf,e) <- cValExpT env t0 e return (bf, (x, Kindle.Val t0 e))- Kindle.FunT _ ts0 t0 -> do- (vs,te,t,c) <- cFunN env (length ts0) e+ Kindle.FunT vs0 ts0 t0 -> do+ (vs,te,t,c) <- cFunT env vs0 ts0 t0 e return (id, (x, Kindle.Fun vs t te c)) -- Translate a Core.Exp with a known type into a Kindle.Exp-cValExpT env t e = do (bf,t',e') <- cValExp env e- e'' <- adaptClos env [] t [] t' e'- return (bf, e'')- +cValExpT env s e = do (bf,t,e') <- cValExp env e+ f <- adaptVal env [] s [] t+ return (bf, f e') -adaptClos env [] t0 [] t1 e- | t0 == t1 = return e -- A-adaptClos env xs t0 [] t1 e = do (ts,t1) <- openClosureType t1- adaptClos env xs t0 ts t1 e -- B-adaptClos env xs t0 ts t1 e- | length xs >= length ts = adaptClos env xs2 t0 [] t1 (Kindle.enter e [] (map Kindle.EVar xs1)) -- C- | otherwise = do (ts',t') <- openClosureType t0- te <- newEnv paramSym ts'- e' <- adaptClos env (xs ++ dom te) t' ts t1 e- return (Kindle.closure t0 t' te (Kindle.CRet e')) -- D- where (xs1,xs2) = splitAt (length ts) xs- (ts1,ts2) = splitAt (length xs) ts+cValExpTs env [] [] = return (id, [])+cValExpTs env (s:ss) (e:es) = do (bf,e) <- cValExpT env s e+ (bf',es) <- cValExpTs env ss es+ return (bf . bf', e:es) +adaptVars env [] [] = return [] +adaptVars env (t0:ts) ((x,t1):te) = do f <- adaptVal env [] t0 [] t1+ es <- adaptVars env ts te+ return (f (Kindle.EVar x) : es)+ where (xs,ts') = unzip te++adaptVal env [] s [] t+ | s == t = return id -- A+adaptVal env se s [] t = do ([],ts,t1) <- openClosureType t+ adaptVal env se s ts t1 -- B+adaptVal env se s ts t+ | l_se >= l_ts = do let (se1,se2) = splitAt l_ts se+ es <- adaptVars env ts se1+ f <- adaptVal env se2 s [] t+ return (\e -> f (Kindle.enter e [] es)) -- C+ | otherwise {- l_se < l_ts -} = do ([],ss,s1) <- openClosureType s+ se' <- newEnv paramSym ss+ f <- adaptVal env (se++se') s1 ts t+ return (\e -> Kindle.closure s s1 se' (Kindle.CRet (f e))) -- D+ where l_se = length se+ l_ts = length ts++adaptVals env [] [] = return id+adaptVals env (s:ss) (t:ts) = do f <- adaptVal env [] s [] t+ g <- adaptVals env ss ts+ return (\(e:es) -> f e : g es)+++-- Translate a Core.Exp into a Kindle command, a return type, a type abstraction, and an argument list of given length+cFunT env vs0 ts0 t0 e = do (vs,te,t,c) <- cFun0 env e+ let s = vs0 `zip` map Kindle.tVar vs+ ts1 = subst s ts0+ t1 = subst s t0+ (te,t,c) <- adaptFun env ts1 t1 te t c+ if rng te /= ts1 then tr ("#### cFunT mismatch #####") else return ()+ return (vs, te, t, c)++adaptEnv env [] [] = return (id, [])+adaptEnv env (s:ss) ((x,t):te)+ | s == t = do (bf,se) <- adaptEnv env ss te+ return (bf, (x,s):se)+ | otherwise = do y <- newName tempSym+ f <- adaptVal env [] t [] s+ -- tr ("** adapting " ++ render (pr s) ++ " *to* " ++ render (pr t))+ (bf,se) <- adaptEnv env ss te+ return (Kindle.cBind [(x,Kindle.Val t (f (Kindle.EVar y)))] . bf, (y,s):se)++adaptFun env ss s te t c+ | s:ss == t:rng te = return (te, t, c)+ | l_ss >= l_te = do (tss,t') <- splitClosureType env (l_ss - l_te) t+ te' <- newEnv paramSym (concat tss)+ (bf,se) <- adaptEnv env ss (te++te')+ f <- adaptVal env [] s [] t'+ return (se, s, bf (Kindle.cmap (f . Kindle.multiEnter tss (map Kindle.EVar (dom te'))) c))+ | otherwise {- l_ss < l_te -} = do let (te1,te2) = splitAt l_ss te+ t1 <- findClosureType env [] (rng te2) t+ adaptFun env ss s te1 t1 (Kindle.CRet (Kindle.closure t1 t te2 c))+ where l_ss = length ss+ l_te = length te+ ++-- [] (s1 -> s2 -> s3) [] (t1 t2 -> t3) e ^ B+-- [] (s1 -> s2 -> s3) t1 t2 t3 e C (s1 x1) D+-- x1 (s2 -> s3) t1 t2 t3 e C (s2 x2) D+-- x1 x2 s3 t1 t2 t3 e->C(x1,x2) ^ C+-- [] s3 [] t3 e->C(x1,x2) ^ A++ -- [] (s1 s2 s3 -> s4 -> s5 -> s0) [] (t1 t2 -> t3 t4 t5 -> t0) e = B -- [] (s1 s2 s3 -> s4 -> s5 -> s0) t1 t2 (t3 t4 t5 -> t0) e C (s1 x1, s2 x2, s3 x3) = D -- x1 x2 x3 (s4 -> s5 -> s0) t1 t2 (t3 t4 t5 -> t0) e = C@@ -381,29 +439,6 @@ -- new Code (s1 x1, s2 x2) { ret new Code (s3 x3, s4 x4 s5 x5) { ret e->Code(x1, x2, x3)->Code(x4)->Code(x5) }} -- -cValExpTs env [] [] = return (id, [])-cValExpTs env (t:ts) (e:es) = do (bf,e) <- cValExpT env t e- (bf',es) <- cValExpTs env ts es- return (bf . bf', e:es)----- Translate a Core.Exp into a Kindle command, a return type, a type abstraction, and an argument list of given length-cFunN env n e = do (vs,te,t,c) <- cFun0 env e- (te,t,c) <- adapt te t c- return (vs, te, t, c)- where adapt te t c- | n == l_te = return (te, t, c)- | n > l_te = do (tss,t') <- splitClosureType env (n - l_te) t- te' <- newEnv paramSym (concat tss)- return (te++te', t', Kindle.cmap (Kindle.multiEnter tss (map Kindle.EVar (dom te'))) c)- | n < l_te = do t1 <- findClosureType env [] (rng te2) t- return (te1, t1, Kindle.CRet (Kindle.closure t1 t te2 c))- where l_te = length te- (te1,te2) = splitAt n te-- -- ========================================================================================= -- Translating abstractions -- =========================================================================================@@ -532,7 +567,7 @@ return (t, rcomp bf r) cBody env (ECase e alts) = cCase cBody env e alts cBody env (EAp e0 [e]) - | isPrim Match e0 = do (t,r) <- cPMC cBody env e+ | isPrim Match e0 = do (t,r) <- cPMC cBody cExpFail env e return (t, rcomp (\c -> Kindle.CSeq c (Kindle.CRaise (Kindle.ELit (lInt 1)))) r) cBody env e = do (bf,t,h) <- cExp env e case h of@@ -552,25 +587,30 @@ -- Translate a Core.Exp corresponding to a PMC term into a Kindle.Cmd result-cPMC cE env (ELet bs e)+cPMC cE cF env (ELet bs e) | not (isEncoding bs) = do (te,bf) <- cBinds env bs- (t,r) <- cPMC cE (addTEnv te env) e+ (t,r) <- cPMC cE cF (addTEnv te env) e return (t, rcomp bf r)-cPMC cE env (ECase e alts) = cCase (cPMC cE) env e alts-cPMC cE env (EAp e0 [e1,e2])- | isPrim Fatbar e0 = do r1 <- cPMC cE env e1- r2 <- cPMC cE env e2- let n = maximum [rArity r1, rArity r2]- r1 <- adaptR env n r1- r2 <- adaptR env n r2+cPMC cE cF env (ECase e alts) = cCase (cPMC cE cF) env e alts+cPMC cE cF env (EAp e0 [e1,e2])+ | isPrim Fatbar e0 = do r1 <- cPMC cE cF env e1+ r2 <- cPMC cE cF env e2+ let r = maxR [r1, r2]+ r1 <- adaptR env r r1+ r2 <- adaptR env r r2 return (mkSeq r1 r2)-cPMC cE env (EAp e0 [e])+cPMC cE cF env (EAp e0 [e]) | isPrim Commit e0 = cE env e-cPMC cE env e0- | isPrim Fail e0 = do [t] <- cTArgs env e0+cPMC cE cF env e0+ | isPrim Fail e0 = cF env e0+cPMC cE cF env e = internalError "PMC syntax violated in Core2Kindle" e++cExpFail env e0 = do [t] <- cTArgs env e0 return (t, ValR Kindle.CBreak)-cPMC cE env e = internalError "PMC syntax violated in Core2Kindle" e +cCmdFail env e0 = do [t] <- cTArgs env e0+ ([],[_],t') <- openClosureType t+ return (t', ValR Kindle.CBreak) -- Translate the parts of a case expression into a Kindle.Cmd result cCase cE env e ((PCon k,e'):_)@@ -581,27 +621,42 @@ return (t1, rcomp (bf . Kindle.cBind bs) r) cCase cE env e alts = do (bf,t0,e0) <- cValExp env e rs <- mapM (cAlt cE env) alts- let n = maximum (map rArity rs)- rs <- mapM (adaptR env n) rs+ let r = maxR rs+ rs <- mapM (adaptR env r) rs return (mkSwitch bf rs e0) -adaptR env 0 (t0, ValR c) = return (t0, ValR c)-adaptR env n (t0, FunR f ts)- | n == l_ts = return (t0, FunR f ts)- | n > l_ts = do (tss,t) <- splitClosureType env (n - l_ts) t0- return (t, FunR (g tss) (ts ++ concat tss))- where l_ts = length ts- g tss es = let (es1,es2) = splitAt l_ts es- in Kindle.cmap (Kindle.multiEnter tss es2) (f es1)-adaptR env n (t0, ValR c) = do (tss,t) <- splitClosureType env n t0- return (t, FunR (g tss) (concat tss))- where g tss es = Kindle.cmap (Kindle.multiEnter tss es) c+adaptR env (s,ValR _) (t,ValR c)+ | s == t = return (s, ValR c)+ | otherwise = do f <- adaptVal env [] s [] t+ return (s, ValR (Kindle.cmap f c))+adaptR env (s,FunR _ ss) (t, FunR f ts)+ | s:ss == t:ts = return (s, FunR f ss)+ | l_ss >= l_ts = do (tss,t') <- splitClosureType env (l_ss - l_ts) t+ g <- adaptVals env (ts ++ concat tss) ss+ h <- adaptVal env [] s [] t'+ return (s, FunR (sat g h tss) ss)+ where l_ss = length ss+ l_ts = length ts+ sat g h tss es = let (es1,es2) = splitAt l_ts (g es)+ in Kindle.cmap (h . Kindle.multiEnter tss es2) (f es1)+adaptR env (s,FunR _ ss) (t,ValR c) = do (tss,t') <- splitClosureType env (length ss) t+ g <- adaptVals env (concat tss) ss+ h <- adaptVal env [] s [] t'+ return (s, FunR (sat g h tss) ss)+ where sat g h tss es = Kindle.cmap (h . Kindle.multiEnter tss (g es)) c -rArity (t, ValR _) = 0-rArity (t, FunR f ts) = length ts+maxR (r:rs) = max (arity r) r rs+ where arity (_,ValR _) = 0+ arity (_,FunR _ ts) = length ts+ max n0 r0 [] = r0+ max n0 r0 (r:rs)+ | n > n0 = max n r rs+ | otherwise = max n0 r0 rs+ where n = arity r + mkSwitch bf ((t,ValR c):rs) e0 = (t, ValR (bf (Kindle.CSwitch e0 alts))) where alts = c : [ alt | (_,ValR alt) <- rs ] mkSwitch bf ((t,FunR g ts):rs) e0 = (t, FunR (\es -> bf (Kindle.CSwitch e0 (map ($es) (g:gs)))) ts)@@ -658,10 +713,12 @@ cCmdExp env (EAp e0 [e]) -- | isPrim ReqToCmd e0 = ... | isPrim Raise e0 = do (bf,te,e) <- freezeState env e- (bf',t,e') <- cValExp (addTEnv te env) e- return (t, bf (bf' (Kindle.CRaise e')))+ (bf',_,e') <- cValExp (addTEnv te env) e+ [t] <- cTArgs env e0+ ([],[_],t') <- openClosureType t+ return (t', bf (bf' (Kindle.CRaise e'))) | isPrim Match e0 = do (bf,te,e) <- freezeState env e- (t,ValR c) <- cPMC cValCmdExp (addTEnv te env) e+ (t,ValR c) <- cPMC cValCmdExp cCmdFail (addTEnv te env) e return (t, bf (Kindle.CSeq c (Kindle.CRaise (Kindle.ELit (lInt 1))))) cCmdExp env (EDo x tx c) = do tx <- cAType env tx (t,c) <- cCmd (pushSelf x (addATEnv [(x,Kindle.tRef tx)] env)) c@@ -765,8 +822,8 @@ return (bf, t, FunR (\_ -> e) [Kindle.tRef t2]) | Just t <- isCastPrim e0 = do (bf,_,e') <- cExp env e return (bf, t, rcomp (Kindle.ECast t) e')- | isPrim RefToPID e0 = do (bf,t,e) <- cExp env e- return (bf, Kindle.tPID, rcomp (Kindle.ECast Kindle.tPID) e)+ | isPrim RefToOID e0 = do (bf,t,e) <- cExp env e+ return (bf, Kindle.tOID, rcomp (Kindle.ECast Kindle.tOID) e) | isPrim New e0 = cExp env (EAp e [ELit (lInt 0)]) -- Can't occur but in CBind rhs, syntactic restriction cExp env (EAp e0 [e,e']) | isPrim After e0 = do (bf,e1) <- cValExpT env Kindle.tTime e@@ -782,7 +839,7 @@ appFun env bf t f ts es where appFun env bf t f ts es | l_ts < l_es = do (bf',es1) <- cValExpTs env ts es1- (ts',t') <- openClosureType t + ([],ts',t') <- openClosureType t appFun env (bf . bf') t' (Kindle.enter (f es1) []) ts' es2 | l_ts == l_es = do (bf',es) <- cValExpTs env ts es return (bf . bf', t, ValR (f es))@@ -793,7 +850,14 @@ (ts1,ts2) = splitAt l_es ts (es1,es2) = splitAt l_ts es cExp env (EVar x) = case lookup' (tenv env) x of- Kindle.ValT t -> return (id, t, ValR e)+ Kindle.ValT t+ | null ts -> return (id, t, ValR e)+ | otherwise -> do (vs,ts',t') <- openClosureType t+ let s = vs `zip` ts+ if null ts' then+ return (id, subst s t', ValR (Kindle.enter e ts []))+ else+ return (id, subst s t', FunR (Kindle.enter e ts) (subst s ts')) Kindle.FunT vs ts' t | null ts' -> return (id, subst s t, ValR (Kindle.ECall x ts [])) | otherwise -> return (id, subst s t, FunR (Kindle.ECall x ts) (subst s ts'))@@ -844,7 +908,7 @@ cFunExp env e = do (bf,t,h) <- cExp env e case h of FunR f ts -> return (bf, t, f, ts)- ValR e' -> do (ts,t') <- openClosureType t+ ValR e' -> do ([],ts,t') <- openClosureType t return (bf, t', Kindle.enter e' [], ts)
src/Decls.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
src/Depend.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -115,5 +115,6 @@ groupBindsS :: [Bind] -> [[Bind]] groupBindsS bs = map f gs where infos = graphInfo bs+ indexedInfos = [1..] `zip` infos gs = scc (buildGraph infos)- f indices = concat (map (\i -> fst3 (fromJust (lookup i (zip [1..] infos)))) indices)+ f indices = concat (map (fst3 . snd) (filter ((`elem` indices) . fst) indexedInfos))
src/Derive.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
src/Desugar1.hs view
@@ -2,7 +2,7 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -232,8 +232,9 @@ ds1 env (ERec Nothing fs) | not (null dups) = errorIds "Duplicate field definitions in struct" dups | otherwise = ERec (Just (c,True)) (sortFields (ds1 env fs))- where c = typeFromSels env (sort (ren env (bvars fs)))- dups = duplicates (bvars fs)+ where c = typeFromSels env (sort (ren env sels))+ dups = duplicates sels+ sels = bvars fs ds1 env (ERec (Just (c,all)) fs) | not (null dups) = errorIds "Duplicate field definitions in struct" dups | all && not (null miss) = errorIds "Missing selectors in struct" miss@@ -246,7 +247,12 @@ | otherwise = s ds1 env (EBStruct _ _ bs) = EBStruct (Just c) labs (ds1 env bs) where labs = selsFromType env c- c = typeFromSels env (sort (ren env (bvars bs)))+ c = typeFromSels env (sort (ren env sels))+ sels0 = bvars bs+ cs = concat [ stuffedCons p | BEqn (LPat p) _ <- bs ]+ sels1 = concatMap (boundSels env) cs \\ sels0+ sels = sels0 ++ sels1+ boundSels env (c,ls) = selsFromType env c \\ ren env ls ds1 env (ELet bs e) = ELet (ds1 env bs) (ds1 env e) ds1 env (EAp e1 e2) = EAp (ds1 env e1) (ds1 env e2) ds1 env (ETup es) = ETup (ds1 env es)@@ -289,6 +295,13 @@ ds1 env e = e +stuffedCons (ERec (Just (c,False)) fs)+ = (c,bvars fs) : concat [ stuffedCons p | Field _ p <- fs ]+stuffedCons (ETup ps) = concatMap stuffedCons ps+stuffedCons (EList ps) = concatMap stuffedCons ps+stuffedCons (EAp p p') = stuffedCons p ++ stuffedCons p'+stuffedCons _ = []+ instance Desugar1 (Alt Exp) where ds1 env (Alt p rh) = Alt (ds1 (patEnv env) p) (ds1 env rh) @@ -328,7 +341,6 @@ ds1S env (s@(SElsif _ _) : _) = errorTree "elsif without corresponding if" s ds1S env (s@(SElse _) : _) = errorTree "else without corresponding if" s ds1S env (SForall q ss' : ss) = ds1S env (SExp (ds1Forall env q ss') : ss)-ds1S env (SWhile e ss' : ss) = internalError0 "while stmt not yet implemented" ds1Forall env [] ss = eDo env ss ds1Forall env (QLet bs : qs) ss = ELet bs (eDo env [SForall qs ss])
src/Desugar2.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -76,6 +76,7 @@ dsDefault (Default t a b) = Default t a b dsDefault (Derive v t) = Derive v (dsQualType t) + -- Types ---------------------------------------------------------------------- dsQualType (TQual t ps) = checkQual (dsRhoType t) (map dsQual ps)@@ -90,7 +91,8 @@ dsType (TTup ts) = foldl TAp (TCon (tuple (length ts))) (map dsType ts) dsType (TCon c) = TCon c dsType (TVar v) = TVar v-dsType t = internalError "Bad type expressionin dsType" t+dsType (TWild) = errorTree "Illegal use of type wildcard" TWild+dsType t = errorTree "Illegal type expression" t -- Types with wildcards ---------------------------------------------------------------@@ -108,7 +110,7 @@ dsWildType (TCon c) = TCon c dsWildType (TVar v) = TVar v dsWildType (TWild) = TWild-dsWildType t = internalError "Bad type expression in dsWildType" t+dsWildType t = errorTree "Illegal type expression" t -- Base types -------------------------------------------------------------@@ -116,10 +118,14 @@ dsQualBaseType (TQual t ps) = checkQual (dsBaseType t) (map dsKindQual ps) dsQualBaseType t = TQual (dsBaseType t) [] +dsKindQual (PKind v k) = PKind v k+dsKindQual (PType (TVar v)) = PKind v KWild+dsKindQual q = errorTree "Illegal base type qualifier" q+ dsBaseType (TAp t t') = TAp (dsBaseType t) (dsType t') dsBaseType (TList t) = TAp (TCon (prim LIST)) (dsType t) dsBaseType (TCon c) = TCon c-dsBaseType t = internalError "Bad base type expression in dsBaseType" t+dsBaseType t = errorTree "Illegal base type expression" t -- Predicates ------------------------------------------------------------@@ -128,12 +134,6 @@ dsQual (PType (TVar v)) = PKind v KWild dsQual (PType t) = PType (dsQualPred t) --dsKindQual (PKind v k) = PKind v k-dsKindQual (PType (TVar v)) = PKind v KWild-dsKindQual q = internalError "Bad qualifier in dsKindQual" q-- dsQualPred (TQual t ps) = checkQual (dsSubOrClassPred t) (map dsQual ps) dsQualPred t = TQual (dsSubOrClassPred t) [] @@ -142,7 +142,7 @@ dsClassPred (TAp t t') = TAp (dsClassPred t) (dsType t') dsClassPred (TCon c) = TCon c-dsClassPred p = internalError "Bad class predicate in dsClassPred" p+dsClassPred p = errorTree "Illegal type qualifier" p -- Bindings ---------------------------------------------------------------
src/Env.hs view
@@ -2,7 +2,7 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -258,7 +258,7 @@ -- expressions, there is much merit to the shortcut implemented -- here. Note also that unknown type constructor names have -- already been trapped and reported during renaming.- -- error ("Internal: Unknown type constructor: " ++ show c)+ -- internalError0 ("Internal: Unknown type constructor: " ++ show c) findKind env c = findKind0 (kindEnv env ++ kindEnv0 env) c @@ -640,7 +640,7 @@ (prim Msg, Star), (prim Ref, KFun Star Star),- (prim PID, Star),+ (prim OID, Star), (prim PMC, KFun Star Star), (prim Time, Star), @@ -670,7 +670,7 @@ (prim ActToCmd, scheme1 [tAction] (tCmd a tMsg)), (prim ReqToCmd, scheme2 [tRequest a] (tCmd b a)),- (prim RefToPID, scheme1 [tRef a] tPID),+ (prim RefToOID, scheme1 [tRef a] tOID), (prim IntPlus, scheme0 [tInt,tInt] tInt), (prim IntMinus, scheme0 [tInt,tInt] tInt),@@ -716,8 +716,8 @@ (prim LazyOr, scheme0 [tBool,tBool] tBool), (prim LazyAnd, scheme0 [tBool,tBool] tBool), - (prim PidEQ, scheme0 [tPID,tPID] tBool),- (prim PidNE, scheme0 [tPID,tPID] tBool),+ (prim PidEQ, scheme0 [tOID,tOID] tBool),+ (prim PidNE, scheme0 [tOID,tOID] tBool), (prim Sec, scheme0 [tInt] tTime), (prim Millisec, scheme0 [tInt] tTime),@@ -825,7 +825,7 @@ tTime = TId (prim Time) tMsg = TId (prim Msg) tRef a = TAp (TId (prim Ref)) a-tPID = TId (prim PID)+tOID = TId (prim OID) tPMC a = TAp (TId (prim PMC)) a tInt = TId (prim Int) tFloat = TId (prim Float)@@ -853,8 +853,8 @@ primAboveEnv = [ (prim Action, unitWG subActCmd), (prim Request, unitWG subReqCmd), (prim Cmd, nullWG),- (prim Ref, unitWG subRefPID),- (prim PID, nullWG)+ (prim Ref, unitWG subRefOID),+ (prim OID, nullWG) ] primBelowEnv = [ (prim Action, nullWG),@@ -862,7 +862,7 @@ (prim Class, nullWG), (prim Cmd, WG [subActCmd,subReqCmd] []), (prim Ref, nullWG),- (prim PID, unitWG subRefPID)+ (prim OID, unitWG subRefOID) ] @@ -872,10 +872,10 @@ subReqCmd = (prim ReqToCmd, scheme2 [] (tRequest a `sub` tCmd b a)) -subRefPID = (prim RefToPID, scheme1 [] (tRef a `sub` tPID))+subRefOID = (prim RefToOID, scheme1 [] (tRef a `sub` tOID)) -primPredEnv = [reflAll, subActCmd, subReqCmd, subRefPID]+primPredEnv = [reflAll, subActCmd, subReqCmd, subRefOID] primClassEnv = []
src/Execution.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -99,7 +99,7 @@ ++ " -DROOT=" ++ rootId ++ " " ++ " -DROOTINIT=" ++ initId ++ " " ++ rtsMain clo - ++ " -lTimber"+ ++ linkLibs cfg putStrLn "[linking]" execCmd clo cmd
src/Fixity.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
src/Interfaces.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -88,16 +88,17 @@ ifaceMod :: (Map Name [Name], Map Name ([Name], Syntax.Type)) -> Module -> Kindle.Decls -> IFace ifaceMod (rs,ss) (Module _ ns xs ds ws bss) kds- | not(null vis) = errorIds "Private types visible in interface" vis+ | not(null vis2) = errorIds "Private types visible in interface" vis2 | not(null ys) = errorTree "Public default declaration mentions private instance" (head ys) | otherwise = IFace ns xs' rs ss ds1 ws bs' kds where Types ke te = ds Binds r2 ts2 es2 = concatBinds bss xs' = [d | d@(Default True _ _) <- xs] ys = [d | d@(Default _ i1 i2) <- xs', isPrivate i1 || isPrivate i2 ]- ds1 = Types (filter exported ke) (filter exported' te)+ ds1 = Types (filter exported ke ++ map (\n -> (n,Star)) vis1) (filter exported' te) bs' = Binds r2 (filter exported ts2) (filter (\ eqn -> fin eqn && exported eqn) (erase es2))- vis = nub (localTypes [] (rng (tsigsOf bs')))+ (vis1,vis2) = partition isStateType (nub (localTypes [] (rng (tsigsOf bs'))))+ exported (n,_) = isQualified n exported' p@(n,_) = isQualified n && (not(isAbstract p)) --Constructors/selectors are exported fin (_,e) = isFinite e && null(filter isPrivate (constrs e))@@ -173,7 +174,7 @@ localTypes ns (TId n) | n `elem` ns || not (isPrivate n) = [] | otherwise = [n]- localTypes _ (TVar t) = internalError0 ("ChaseImports.localTypes: TVar in interface file")+ localTypes _ (TVar t) = internalError0 ("Interfaces.localTypes: TVar in interface file") localTypes ns (TFun ts t) = localTypes ns (t : ts) localTypes ns (TAp t1 t2) = localTypes ns [t1, t2] @@ -210,10 +211,10 @@ -- prPair (n,t) = prId n <+> text "::" <+> pr t where simpVars (Binds rec te eqns) = Binds rec (map sV te) eqns -sV (n,t@(Scheme rh ps ke)) = case zip (filter isGenerated (idents (Scheme rh ps []))) abcSupply of+sV (n,t@(Scheme rh ps ke)) = case zip (filter isTypevar (idents (Scheme rh ps []))) abcSupply of [] -> (n,t) s -> (n,subst s t) -+ where isTypevar n = isGenerated n && not (isStateType n) listIface clo f = do (ifc,f) <- decodeModule clo f --writeAPI f ifc let modul = rmSuffix ".ti" f
src/Kind.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
src/Kindle.hs view
@@ -2,7 +2,7 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -164,7 +164,7 @@ tTime = tId Time tMsg = tId Msg-tPID = tId PID+tOID = tId OID tUNIT = tId UNITTYPE tInt = tId Int tFloat = tId Float@@ -179,6 +179,8 @@ tLIST a = TCon (prim LIST) [a] tArray a = TCon (prim Array) [a] +tClos a ts = TCon (prim (primClos a)) ts+ litType (LInt _ _) = tInt litType (LRat _ _) = tFloat litType (LChr _ _) = tChar@@ -186,28 +188,35 @@ a = name0 "a" b = name0 "b"+c = name0 "c"+d = name0 "d" ta = TVar a [] tb = TVar b []+tc = TVar c []+td = TVar d [] -primDecls = (prim Bool, Struct [] [] Union) :- (prim FALSE, Struct [] [] (Extends (prim Bool))) :- (prim TRUE, Struct [] [] (Extends (prim Bool))) :- (prim UNITTYPE, Struct [] [] Union) :- (prim UNITTERM, Struct [] [] (Extends (prim UNITTYPE))) :- (prim LIST, Struct [a] [] Union) :- (prim NIL, Struct [a] [] (Extends (prim LIST))) :- (prim CONS, Struct [a] [(a, ValT ta), - (b, ValT (tLIST ta))] (Extends (prim LIST))) :- (prim Msg, Struct [] [(prim Code, FunT [] [] tUNIT),- (prim Baseline, ValT (tId AbsTime)),- (prim Deadline, ValT (tId AbsTime)),- (prim Next, ValT (tId Msg))] Top) :- (prim Ref, Struct [a] [(prim STATE, ValT ta)] Top) :- (prim EITHER, Struct [a,b] [] Union) :- (prim LEFT, Struct [a,b] [(a,ValT ta)] (Extends (prim EITHER))) :- (prim RIGHT, Struct [a,b] [(a,ValT tb)] (Extends (prim EITHER))) :- (prim TIMERTYPE, Struct [] [(prim Reset, FunT [] [tInt] tUNIT),- (prim Sample, FunT [] [tInt] tTime)] Top) : +primDecls = (prim Bool, Struct [] [] Union) :+ (prim FALSE, Struct [] [] (Extends (prim Bool))) :+ (prim TRUE, Struct [] [] (Extends (prim Bool))) :+ (prim UNITTYPE, Struct [] [] Union) :+ (prim UNITTERM, Struct [] [] (Extends (prim UNITTYPE))) :+ (prim LIST, Struct [a] [] Union) :+ (prim NIL, Struct [a] [] (Extends (prim LIST))) :+ (prim CLOS1, Struct [a,b] [(prim Code, FunT [] [tb] ta)] Top) :+ (prim CLOS2, Struct [a,b,c] [(prim Code, FunT [] [tb,tc] ta)] Top) :+ (prim CLOS3, Struct [a,b,c,d] [(prim Code, FunT [] [tb,tc,td] ta)] Top) :+ (prim CONS, Struct [a] [(a, ValT ta), + (b, ValT (tLIST ta))] (Extends (prim LIST))) :+ (prim Msg, Struct [] [(prim Code, FunT [] [] tUNIT),+ (prim Baseline, ValT (tId AbsTime)),+ (prim Deadline, ValT (tId AbsTime)),+ (prim Next, ValT (tId Msg))] Top) :+ (prim Ref, Struct [a] [(prim STATE, ValT ta)] Top) :+ (prim EITHER, Struct [a,b] [] Union) :+ (prim LEFT, Struct [a,b] [(a,ValT ta)] (Extends (prim EITHER))) :+ (prim RIGHT, Struct [a,b] [(a,ValT tb)] (Extends (prim EITHER))) :+ (prim TIMERTYPE, Struct [] [(prim Reset, FunT [] [tInt] tUNIT),+ (prim Sample, FunT [] [tInt] tTime)] Top) : [] isInfix (Prim p _) = p `elem` [MIN____KINDLE_INFIX .. MAX____KINDLE_INFIX]@@ -242,8 +251,8 @@ (prim NEWREF, FunT [a] [ta] (tRef ta)) : (prim STATEOF, FunT [a] [tRef ta] ta) : (prim ASYNC, FunT [] [tMsg,tTime,tTime] tUNIT) :- (prim LOCK, FunT [] [tPID] tUNIT) :- (prim UNLOCK, FunT [] [tPID] tUNIT) :+ (prim LOCK, FunT [] [tOID] tUNIT) :+ (prim UNLOCK, FunT [] [tOID] tUNIT) : (prim Inherit, ValT tTime) : (prim EmptyArray, FunT [a] [tInt] (tArray ta)) : (prim CloneArray, FunT [a] [tArray ta, tInt] (tArray ta)) :@@ -255,7 +264,7 @@ okRec' (TCon (Prim p _) _) = p `notElem` Kindle.scalarPrims -- Bad: type that can't fit placeholder okRec' (TCon n _) = True -- Good: heap allocated data -scalarPrims = [Int, Float, Char, Bool, UNITTYPE, BITS8, BITS16, BITS32]+scalarPrims = [Int, Float, Char, Bool, UNITTYPE, BITS8, BITS16, BITS32, AbsTime] smallPrims = [Char, Bool, UNITTYPE, BITS8, BITS16] @@ -319,15 +328,22 @@ cBindR r [] c = c cBindR r bs c = CBind r bs c +flatBinds bf = flat (bf CBreak)+ where flat (CBind r bs c) = bs ++ flat c+ flat _ = []++cUpd [] [] c = c+cUpd (x:xs) (e:es) c = CUpd x e (cUpd xs es c)+ simpleExp (EVar _) = True simpleExp (ELit _) = True simpleExp (ECast _ e) = simpleExp e simpleExp _ = False -lock t e = ECast t (ECall (prim LOCK) [] [ECast tPID e])+lock t e = ECast t (ECall (prim LOCK) [] [ECast tOID e]) unlock x c = cMap (CRun (ECall (prim UNLOCK) [] [e0]) . CRet) c- where e0 = ECast tPID (EVar x)+ where e0 = ECast tOID (EVar x) cMap f (CRet e) = f e@@ -556,9 +572,13 @@ Just t -> appargs t _ -> TVar v ts' where ts' = subst s ts- appargs (TCon c ts) = TCon c (ts++ts')+ appargs (TCon c ts) = norm c (ts++ts') appargs (TVar v ts) = TVar v (ts++ts') + norm (Prim Class _) [t] = tClos 1 (t : [tInt])+ norm (Prim Request _) [t] = tClos 1 (t : [tInt])+ norm (Prim Cmd _) [s,t] = tClos 1 (t : [tRef s])+ norm c ts = TCon c ts instance Subst Exp Name AType where subst s (ESel e l) = ESel (subst s e) l
src/Kindle2C.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -40,9 +40,9 @@ import Char import Depend -kindle2c is m = return (render h, render c)+kindle2c m = return (render h, render c) where h = k2hModule m- c = k2cModule is m+ c = k2cModule m -- ==================================================================================================== -- Generate .h file@@ -116,7 +116,7 @@ "Constant initializer" is presently interpreted as literals only for lack of better understanding. -} -k2cModule is (Module n ns ds bs)= cHeader n $$$+k2cModule (Module n ns ds bs) = cHeader n $$$ k2cDeclStubs False ds $$$ k2cDecls False ds $$$ k2cBindStubsC bs $$$@@ -380,9 +380,30 @@ k2cExp1 e = k2cExp2 e +k2cChar '\\' = text "\\\\"+k2cChar '\'' = text "\\'"+k2cChar '\"' = text "\\\""+k2cChar '\a' = text "\\a"+k2cChar '\b' = text "\\b"+k2cChar '\f' = text "\\f"+k2cChar '\n' = text "\\n"+k2cChar '\r' = text "\\r"+k2cChar '\t' = text "\\t"+k2cChar '\v' = text "\\v"+k2cChar c | isPrint c = text [c]+ | ord c < 256 = text ("\\" ++ oct3 (ord c))+ | otherwise = text ("\\x" ++ hex2 (ord c `div` 256) ++ hex2 (ord c `mod` 256))+ where hex1 n | n < 10 = chr (n + ord '0')+ | otherwise = chr (n - 10 + ord 'a')+ hex2 n = [hex1 (n `div` 16), hex1 (n `mod` 16)]+ oct1 n = chr (n + ord '0')+ oct3 n = [oct1 (n `div` 64), oct1 ((n `mod` 64) `div` 8), oct1 (n `mod` 8)]++ k2cExp2 (EVar x) = k2cName x k2cExp2 (ELit (LRat _ r)) = text (show (fromRational r :: Double))-k2cExp2 (ELit (LStr _ str)) = text ("getStr("++show str++")")+k2cExp2 (ELit (LStr _ str)) = text "getStr(\"" <> hcat (map k2cChar str) <> text "\")"+k2cExp2 (ELit (LChr _ c)) = text "\'" <> k2cChar c <> text "\'" k2cExp2 (ELit l) = pr l k2cExp2 (ESel e (Prim STATE _)) = text "STATEOF" <> parens (k2cExp e) k2cExp2 (ESel e l) = k2cExp2 e <> text "->" <> k2cName l
src/Kindlered.hs view
@@ -1,8 +1,8 @@-{-# LANGUAGE PatternGuards #-}+{-# LANGUAGE PatternGuards, ParallelListComp #-} -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -34,12 +34,12 @@ -- POSSIBILITY OF SUCH DAMAGE. module Kindlered where- + import Monad import Common import Kindle import PP-+import System kindlered ds m = redModule ds m @@ -61,9 +61,59 @@ -- Convert a binding redBind env (x, Fun vs t te c) = do c <- redCmd env c+ c <- tailOptimize x te c return (x, Fun vs t te c) redBind env (x, Val t e) = do e <- redExp env e return (x, Val t e)+-- Tail recursiion optimization++tailOptimize x te c+ | isTailRecursive x c = do c <- redTailCall x te c+ return (CWhile (ELit (lInt 1)) c (CRaise (ELit (lInt 1))))+ | otherwise = return c+++isTailRecursive x (CRet (ECall y _ _)) = x == y+isTailRecursive x (CRun _ c) = isTailRecursive x c+isTailRecursive x (CBind _ _ c) = isTailRecursive x c+isTailRecursive x (CUpd _ _ c) = isTailRecursive x c+isTailRecursive x (CUpdS _ _ _ c) = isTailRecursive x c+isTailRecursive x (CUpdA _ _ _ c) = isTailRecursive x c+isTailRecursive x (CSwitch _ alts) = or [isTailRecursiveAlt x a | a <- alts]+isTailRecursive x (CSeq c1 c2) = (isTailRecursive x c1) || (isTailRecursive x c2)+isTailRecursive x (CWhile _ c1 c2) = isTailRecursive x c2+isTailRecursive _ _ = False++isTailRecursiveAlt x (ACon _ _ _ c) = isTailRecursive x c+isTailRecursiveAlt x (ALit _ c) = isTailRecursive x c+isTailRecursiveAlt x (AWild c) = isTailRecursive x c+++redTailCall x vs (CRet (ECall y ts es)) + | x == y = updateParams vs es+redTailCall x vs (CBind r bs c) = liftM (CBind r bs) (redTailCall x vs c)+redTailCall x vs (CRun e c) = liftM (CRun e) (redTailCall x vs c)+redTailCall x vs (CUpd y e c) = liftM (CUpd y e) (redTailCall x vs c)+redTailCall x vs (CUpdS e y v c) = liftM (CUpdS e y v) (redTailCall x vs c)+redTailCall x vs (CUpdA e i e' c) = liftM (CUpdA e i e') (redTailCall x vs c)+redTailCall x vs (CSwitch e alts) = liftM (CSwitch e) (mapM (redTailAlt x vs) alts)+redTailCall x vs (CSeq c c') = liftM2 CSeq (redTailCall x vs c) (redTailCall x vs c')+redTailCall x vs (CWhile e c c') = liftM2 (CWhile e) (redTailCall x vs c) (redTailCall x vs c')+redTailCall _ _ c = return c++redTailAlt x vs (ACon y us te c) = liftM (ACon y us te) (redTailCall x vs c)+redTailAlt x vs (ALit l c) = liftM (ALit l) (redTailCall x vs c)+redTailAlt x vs (AWild c) = liftM AWild (redTailCall x vs c)++updateParams [] [] = return CCont+updateParams ((x,t):te) (e:es)+ | e == EVar x = updateParams te es+ | x `elem` evars es = do y <- newName tempSym+ c <- updateParams te (subst [(x,EVar y)] es)+ return (CBind False [(y,Val t (EVar x))] (CUpd x e c))+ | otherwise = do c <- updateParams te es+ return (CUpd x e c)+ single x e = length (filter (==x) (evars e)) == 1
src/Lambdalift.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -109,7 +109,8 @@ free0 = evars funs free1 = free0 ++ concat [ xs | (f,(_,xs)) <- expansions env, f `elem` free0 ] fte = locals (if r then env1 else env) `restrict` free1- tvs = nub (typevars funs ++ typevars fte)+ vs1 = concat [ vs | (f,(vs,_)) <- expansions env, f `elem` free0 ]+ tvs = nub (typevars funs ++ typevars fte ++ vs1) env1 = addLocals (mapSnd typeOf' vals) env env2 = addExpansions (dom funs `zip` repeat (tvs, dom fte)) env1 env' = if r then env2 else env@@ -150,7 +151,8 @@ free0 = evars funs free1 = free0 ++ concat [ xs | (f,(_,xs)) <- expansions env, f `elem` free0 ] fte = locals env `restrict` free1- fvs = nub (typevars funs ++ typevars fte)+ vs1 = concat [ vs | (f,(vs,_)) <- expansions env, f `elem` free0 ]+ fvs = nub (typevars funs ++ typevars fte ++ vs1) Struct vs te _ = lookup' (decls env) n -- NOTE: n can't be a tuple or a cons if fte/fvs are nonempty... close (x,t) = (x, Val t (mkEVar env x))
src/Lexer.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -429,7 +429,7 @@ '\t':s -> nestedComment cont y (nextTab x) bol s col '\n':s -> nestedComment cont (y + 1) 1 True s col c:s -> nestedComment cont y (x + 1) bol s col- [] -> error "Open comment at end of file"+ [] -> compileError "Open comment at end of file"
src/Main.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -219,7 +219,7 @@ ki' <- pass clo (kindlered e3) Kindlered ki ll <- pass clo (lambdalift e3) LLift ki' pc <- pass clo (prepare4c e2 e3) Prepare4C ll- c <- pass clo (kindle2c (init_order imps)) K2C pc+ c <- pass clo kindle2c K2C pc return (c,ifaceMod a0 tc2 ds) @@ -298,7 +298,37 @@ else do ti_time <- Directory.getModificationTime ti_file return (ti_time <= ti_time1) ------------------------------------------------------------------------------+{-+ Debugging the compiler with the ghci debugger: + Build and install the compiler somewhere. Once that is done, run the + following commands in the timber source repository:++ $ cd src+ $ ghci -fglasgow-exts Main.hs -i../dist/build/timberc/timberc-tmp+ + This should give you a ghci prompt, type the following (replace PREFIX and+ VERSION with the actual values):++ > :set -fbreak-on-exception+ > :trace main2 ["--datadir", "PREFIX/share/timberc-VERSION", "-v", "file.t"]+ + <CRASH>++ > :history+ -1 : handleError (Main.hs:346:48-57)+ -2 : handleError (Main.hs:346:10-57)+ -3 : handleError (Main.hs:346:2-58)+ -4 : handleError (Main.hs:(345,31)-(347,14))+ -5 : handleError (Main.hs:(345,0)-(347,14))+ -6 : addDecls (Kindlered.hs:51:62-70)+ -7 : Name.$f7 (Name.hs:525:47-51)+ -8 : Name.$f7 (Name.hs:(518,2)-(525,51))+ -9 : findSel (Kindlered.hs:53:99-103)+ ...+-}++ main = do args <- getArgs main2 args @@ -322,7 +352,7 @@ -- Monad.when (null t_files) stopCompiler ps <- mapM (parse clo) t_files- ifs <- compileAll clo [] ps `Exception.catch` handleError+ ifs <- compileAll clo [] ps `Exception.catch` fatalErrorHandler Monad.when (stopAtC clo) stopCompiler let root = make clo@@ -340,11 +370,7 @@ return () -handleError (ErrorCall mess) = do- putStr ("*** Timber compilation error ***\n"++mess++"\n")- abortCompiler - checkRoot clo ifs def = do if1 <- getIFile rootMod if2 <- getIFile rtsMod let ts = tEnv if2@@ -354,7 +380,7 @@ case lookup rootT ke of Nothing -> fail ("Cannot locate RootType in module " ++ rtsMod) Just Star -> case lookup rootT ds of- Nothing -> error "Internal: checkRoot"+ Nothing -> internalError0 "checkRoot" Just (Core.DType _ t') -> checkRoot' te t' Just _ -> checkRoot' te (Core.TId rootT) Just _ -> fail ("Bad RootType in module " ++ rtsMod)@@ -440,9 +466,5 @@ compile_order imps = case topSort (impNames . snd) imps of Left ms -> errorIds "Mutually recursive modules" ms Right is -> is--init_order imps = case topSort transImps imps of- Left ms -> errorIds "Mutually recursive modules" ms- Right is -> map fst is
src/Match.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
src/Name.hs view
@@ -1,6 +1,7 @@+{-# LANGUAGE DeriveDataTypeable #-} -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -39,6 +40,7 @@ import Token import Char import Maybe+import Data.Typeable import Data.Binary -- The type of names ---------------------------------------------------------------------@@ -46,6 +48,7 @@ data Name = Name { str :: String, tag :: Int, fromMod :: Maybe String, annot :: Annot } | Prim { con :: Prim, annot :: Annot } | Tuple { width :: Int, annot :: Annot }+ deriving (Typeable) data Annot = Annot { location :: Maybe (Int,Int), @@ -54,7 +57,7 @@ generated :: Bool, suppressMod :: Bool }- deriving Show+ deriving (Show,Typeable) -- The built-in primitives ----------------------------------------------------------------@@ -72,7 +75,7 @@ | Msg | Ref- | PID+ | OID | PMC | Time @@ -253,7 +256,7 @@ | ActToCmd | ReqToCmd- | RefToPID+ | RefToOID | CharToInt | IntToChar@@ -282,6 +285,10 @@ | After | Before + | CLOS1 -- Low arity (polymorphic) closure types+ | CLOS2+ | CLOS3+ | NEWREF -- RTS entry points | ASYNC | LOCK@@ -313,11 +320,17 @@ | MAX____INVISIBLE - deriving (Eq,Ord,Enum,Bounded,Show)+ deriving (Eq,Ord,Enum,Bounded,Show,Typeable) minPrim = minBound :: Prim maxPrim = maxBound :: Prim +maxPrimClos = 3 :: Int+primClos 1 = CLOS1+primClos 2 = CLOS2+primClos 3 = CLOS3+isClosPrim p = p `elem` [CLOS1 .. CLOS3]+ isConPrim p = p <= MAX____CONS invisible p = p >= MIN____INVISIBLE@@ -477,7 +490,7 @@ isTApp n = isGenerated n && str n == tappSym isTAbs n = isGenerated n && str n == tabsSym isGCInfo n = isGenerated n && isPrefixOf gcinfoSym (str n)-+isStateType n = isGenerated n && str n == stateTypeSym explicitSyms = [coercionSym, assumptionSym, witnessSym] @@ -567,10 +580,11 @@ where id = if okForC s then s else "_sym" tag = if mod=="" || generated a || id=="_sym" then '_':show n else ""- suff = if take 2 id == "_sym" then "/* "++s++" */" else ""+ suff = if take 4 id == "_sym" then "/* "++s++" */" else "" mod = maybe "" (('_' :) . modToundSc) m- okForC cs = all (\c -> isAlphaNum c || c=='_') cs prId3 n = prId2 n++okForC cs = all (\c -> isAlphaNum c || c=='_') cs name2str n = render (prId3 n)
src/PP.hs view
@@ -2,7 +2,7 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
src/ParseMonad.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -109,7 +109,7 @@ runPM (PM p) i l c s = case p i l c s of Ok _ a -> a- Failed err -> error err+ Failed err -> compileError err runPM2 (PM p) input = case p input (1,1) 0 [] of
src/Parser.y view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -123,7 +123,6 @@ 'typeclass' { KW_Typeclass } 'use' { KW_Use } 'where' { KW_Where }- 'while' { KW_While } %monad { PM } { thenPM } { returnPM } %lexer { lexer } { EOF }@@ -172,7 +171,9 @@ | 'typeclass' conid tyvars 'where' siglist { [DRec True $2 (reverse $3) [] $5] } | 'typeclass' ids { [DTClass $2] } | 'instance' var '::' type { [DPSig $2 $4] } - | 'instance' var '::' type 'where' bindlist { [DBind [BEqn (exp2lhs (EVar $2)) (RExp (EBStruct Nothing [] $6))], DPSig $2 $4] }+ | 'instance' var '::' type 'where' bindlist { [DBind [BEqn (exp2lhs (EVar $2)) + (RExp (EBStruct (Just (type2head $4)) [] $6))],+ DPSig $2 $4] } | 'instance' var '::' type rhs { [DBind [BEqn (exp2lhs (EVar $2)) $5], DPSig $2 $4] } | 'instance' ids { [DInstance $2] } | 'default' def { [DDefault (reverse $2)] }@@ -225,9 +226,12 @@ | {- empty -} { [] } constrs :: { [Constr] }- : constrs '|' type { type2cons $3 : $1 }- | type { [type2cons $1] }+ : constrs '|' constr { $3 : $1 }+ | constr { [$1] } +constr :: { Constr }+ : type consym type { Constr $2 [$1, $3] [] }+ | type { type2cons $1 } -- Signatures -------------------------------------------------------------- @@ -547,7 +551,6 @@ | 'if' exp 'then' stmtlist { SIf $2 $4 } | 'elsif' exp 'then' stmtlist { SElsif $2 $4 } | 'else' stmtlist { SElse $2 }- | 'while' exp 'do' stmtlist { SWhile $2 $4 } | 'case' exp 'of' saltslist { SCase $2 $4 }
src/Prepare4C.hs view
@@ -2,7 +2,7 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -176,7 +176,8 @@ gcInfoName n@(Name s t m a) | isClosure n = Name (gcinfoSym ++ s) 0 m a- | otherwise = Name (gcinfoSym ++ s) t m a+ | okForC s = Name (gcinfoSym ++ s) t m a+ | otherwise = Name (gcinfoSym ++ "_sym_" ++ show t) t m a gcInfoName (Tuple n a) = Name (gcinfoSym ++ "TUP" ++ show n) 0 Nothing a gcInfoName (Prim p a) = Name (gcinfoSym ++ strRep2 p) 0 Nothing a @@ -236,9 +237,9 @@ tei <- Core2Kindle.c2kTEnv dsi te2 let env1 = addTEnv (primTEnv++tei) (addDecls (primDecls++dsi) env0) env = addTEnv (mapSnd typeOf bs) (addDecls ds env1)- (bs1,bs) <- pBinds pBind env bs- bs2 <- currentStore- return (Module m ns (pDecls env ds) (gcinfo env ds ++ bs1 ++ bs ++ reverse bs2))+ (bf,bs) <- pBinds pBind env bs+ bs' <- currentStore+ return (Module m ns (pDecls env ds) (gcinfo env ds ++ flatBinds bf ++ bs ++ reverse bs')) -- Prepare structs declarations@@ -281,6 +282,7 @@ isPtr vs (n,FunT _ _ _) = False isPtr vs (n,ValT (TVar v _)) = v `notElem` vs+isPtr vs (Prim Next _, _) = False -- the next field in Msg and its subtypes is custom handled during timerQ scanning. isPtr vs (n,ValT (TCon k _)) = not (isScalar k) isScalar (Prim p _) = p `elem` scalarPrims@@ -306,24 +308,23 @@ -- ============================= -- Prepare bindings-pBinds f env xs = do (bss,xs) <- fmap unzip (mapM (f env) xs)- return (concat bss, xs)-+pBinds f env xs = do (bfs,xs) <- fmap unzip (mapM (f env) xs)+ return (foldr (.) id bfs, xs) -- Prepare top-level & cmd bindings (assume code is lambda-lifted)-pBind env (x, Val t e) = do (bs,t',e) <- pRhsExp env e - return (bs, (x, Val (erase t) (cast t t' e)))+pBind env (x, Val t e) = do (bf,t',e) <- pRhsExp env e + return (bf, (x, Val (erase t) (cast t t' e))) pBind env (x, Fun vs t te c) = do te' <- newEnv paramSym (polyTagTypes (length vs)) c <- pCmd (addVals te (addPolyEnv vs [0..] (map EVar (dom te')) env)) t c- return ([], (x, Fun [] (erase t) (te' ++ eraseEnv te) c))+ return (id, (x, Fun [] (erase t) (te' ++ eraseEnv te) c)) -- Prepare struct bindings (assume code is lambda-lifted)-pSBind _ te0 env (x,Val t e) = do (bs,e) <- pExpT env t e - return (bs, (x, Val (erase t0) (cast t0 t e)))+pSBind _ te0 env (x,Val t e) = do (bf,e) <- pExpT env t e + return (bf, (x, Val (erase t0) (cast t0 t e))) where t0 = findValT "1" te0 x pSBind _ te0 env (x,Fun [] t te c@(CRet (ECall f [] (EThis:es))))- | okAlready = return ([], (x, Fun [] t te c))+ | okAlready = return (id, (x, Fun [] t te c)) where (_,ts0,t0) = findFunT te0 x [] okAlready = t == erase t0 && rng te == map erase ts0 && es == map EVar (dom te) pSBind ty te0 env (x,Fun vs t te c)@@ -338,7 +339,7 @@ c <- pCmd (setThis y (addVals ((y,ty):te) env')) t0 c f <- newName functionSym addToStore (f, Fun [] t0' ((y,erase ty):te1') (cBind bs1 c))- return ([], (x, Fun [] t0' te1' (CRet (ECall f [] (EThis : map EVar (dom te1'))))))+ return (id, (x, Fun [] t0' te1' (CRet (ECall f [] (EThis : map EVar (dom te1')))))) where (_,ts0,t0) = findFunT te0 x [] t0' = erase t0 @@ -349,43 +350,53 @@ -- Prepare commands-pCmd env t0 (CRet e) = do (bs,e) <- pExpT env t0 e- return (cBind bs (CRet e))-pCmd env t0 (CRun e c) = do (bs,_,e) <- pExp env e- liftM (cBind bs . CRun e) (pCmd env t0 c)-pCmd env t0 (CBind False bs c) = do (bs1,bs) <- pBinds pBind env bs- liftM (cBind bs1 . CBind False bs) (pCmd env' t0 c)+pCmd env t0 (CRet e) = do (bf,e) <- pExpT env t0 e+ return (bf (CRet e))+pCmd env t0 (CRun e c) = do (bf,_,e) <- pExp env e+ liftM (bf . CRun e) (pCmd env t0 c)+pCmd env t0 (CBind _ [] c) = pCmd env t0 c+pCmd env t0 (CBind False bs c) = do (bf,bs) <- pBinds pBind env bs+ liftM (bf . CBind False bs) (pCmd env' t0 c) where env' = addTEnv (mapSnd typeOf bs) env-pCmd env t0 (CBind True bs c) = do (bs1,bs) <- pBinds pBind env' bs- liftM (CBind True (bs1++bs)) (pCmd env' t0 c)+pCmd env t0 (CBind True bs c) = do (bf,bs) <- pBinds pBind env' bs+ liftM (CBind True (flatBinds bf ++ bs)) (pCmd env' t0 c) where env' = addTEnv (mapSnd typeOf bs) env-pCmd env t0 (CUpd x e c) = do (bs,e) <- pExpT env (findValT "2" (tenv env) x) e- liftM (cBind bs . CUpd x e) (pCmd env t0 c)-pCmd env t0 (CUpdS e x e' c) = do (bs,t1,e) <- pExp env e+pCmd env t0 (CUpd x e c) = do (bf,e) <- pExpT env (findValT "2" (tenv env) x) e+ liftM (bf . CUpd x e) (pCmd env t0 c)+pCmd env t0 (CUpdS e x e' c) = do (bf,t1,e) <- pExp env e let (s,te) = findStructTEnv "AA" env t1- (bs',e') <- pExpT env (findValT "3" te x) e'- liftM (cBind bs . cBind bs' . CUpdS e x e') (pCmd env t0 c)-pCmd env t0 (CUpdA e i e' c) = do (bs,TCon (Prim Array _) [t],e) <- pExp env e- (bs',i) <- pExpT env tInt i- (bs'',e') <- pExpT env tPOLY e'- liftM (cBind bs . cBind bs' . cBind bs'' . CUpdA e i e') (pCmd env t0 c)+ (bf',e') <- pExpT env (findValT "3" te x) e'+ liftM (bf . bf' . CUpdS e x e') (pCmd env t0 c)+pCmd env t0 (CUpdA e i e' c) = do (bf,TCon (Prim Array _) [t],e) <- pExp env e+ (bf',i) <- pExpT env tInt i+ (bf'',e') <- pExpT env tPOLY e'+ liftM (bf . bf' . bf'' . CUpdA e i e') (pCmd env t0 c)+pCmd env t0 (CSeq c c') = liftM2 mkSeq (pCmd env t0 c) (pCmd env t0 c')+pCmd env t0 (CBreak) = return CBreak+pCmd env t0 (CRaise e) = do (bf,e) <- pExpT env tInt e+ return (bf (CRaise e))+pCmd env t0 (CWhile e c c') = do (bf,e) <- pExpT env tBool e+ c <- pCmd env t0 c+ liftM (bf . CWhile e c) (pCmd env t0 c')+pCmd env t0 (CCont) = return CCont pCmd env t0 (CSwitch e alts) | any litA alts = if simple (litType (firstLit alts)) then- do (bs,e) <- pExpT env tInt e+ do (bf,e) <- pExpT env tInt e alts <- mapM (pAlt env e tInt t0) alts- return (cBind bs (CSwitch e alts))+ return (bf (CSwitch e alts)) else mkVarSwitch env t0 e alts- | isEVar e || all nullA alts = do (bs,t,e) <- pExp env e+ | isEVar e || all nullA alts = do (bf,t,e) <- pExp env e alts <- mapM (pAlt env e t t0) alts let (alts0,alts1) = partition nullA [ a | a@(ACon _ _ _ _) <- alts ] altsW = [ a | a@(AWild _) <- alts ]- return (cBind bs (mkSwitch env e (alts0++absent0 altsW) (alts1++absent1 altsW)))+ return (bf (mkSwitch env e (alts0++absent0 altsW) (alts1++absent1 altsW))) | otherwise = mkVarSwitch env t0 e alts where nullA (ACon k _ _ _) = k `elem` nulls env nullA _ = False absent = allCons env alts \\ [ k | ACon k _ _ _ <- alts ] (abs0,abs1) = partition (`elem` nulls env) absent- absent0 altsW = [ ACon k [] [] d | k <- abs0, AWild d <- altsW ]+ absent0 [] = [ ACon k [] [] CBreak | k <- abs0 ]+ absent0 (AWild d : _) = [ ACon k [] [] d | k <- abs0 ] absent1 altsW = [ a | a <- altsW, not (null abs1) ] litA (ALit _ _) = True litA _ = False@@ -395,26 +406,12 @@ simple (TCon (Prim Char _) []) = True simple _ = False -pCmd env t0 (CSeq c c') = liftM2 mkSeq (pCmd env t0 c) (pCmd env t0 c')-pCmd env t0 (CBreak) = return CBreak-pCmd env t0 (CRaise e) = do (bs,e) <- pExpT env tInt e- return (cBind bs (CRaise e))-pCmd env t0 (CWhile e c c') = do (bs,e) <- pExpT env tBool e- c <- pCmd env t0 c- liftM (cBind bs . CWhile e c) (pCmd env t0 c')-pCmd env t0 (CCont) = return CCont -mkVarSwitch env t0 e alts- | isEVar e = do (bs,t,e) <- pExp env e- alts <- mapM (pAlt env e t t0) alts- return (cBind bs (CSwitch e alts))- | otherwise = do (bs,t,e) <- pExp env e- x <- newName tempSym- c <- pCmd (addVals [(x,t)] env) t0 (CSwitch (EVar x) alts)- return (cBind bs (cBind [(x,Val t e)] c))-+mkSwitch env (EVar _) [] [] = CBreak+mkSwitch env e [] [] = CSwitch e [AWild CBreak] mkSwitch env e [] [ACon n _ _ c] | n `notElem` tagged env = c+ mkSwitch env e [] [AWild c] = c mkSwitch env e [] alts1 = CSwitch (ESel e (prim Tag)) (map (mkLitAlt env) alts1) mkSwitch env e alts0@[ACon n _ _ c] []@@ -424,6 +421,16 @@ where d = mkSwitch env e [] alts1 +mkVarSwitch env t0 e alts+ | isEVar e = do (bf,t,e) <- pExp env e+ alts <- mapM (pAlt env e t t0) alts+ return (bf (CSwitch e alts))+ | otherwise = do (bf,t,e) <- pExp env e+ x <- newName tempSym+ c <- pCmd (addVals [(x,t)] env) t0 (CSwitch (EVar x) alts)+ return (bf (cBind [(x,Val t e)] c))++ mkLitAlt env (ACon n [] [] c) = ALit (conLit env n) c mkLitAlt env a = a @@ -467,29 +474,29 @@ -- Prepare a right-hand-side expression pRhsExp env (ENew n ts bs) = pNewExp env n ts bs pRhsExp env (ECast t (ENew n ts bs))- = do (bs',t',e) <- pNewExp env n ts bs- return (bs', t, cast t t' e)+ = do (bf,t',e) <- pNewExp env n ts bs+ return (bf, t, cast t t' e) pRhsExp env e = pExp env e pNewExp env n ts bs- | n `elem` nulls env = return ([], t0, cast t0 tInt (ELit (conLit env n)))- | otherwise = do (bs1,bs) <- pBinds (pSBind t0 te0) env bs- return (bs1, t0, ENew n [] (bs''++bs'++bs))+ | n `elem` nulls env = return (id, t0, cast t0 tInt (ELit (conLit env n)))+ | otherwise = do (bf,bs) <- pBinds (pSBind t0 te0) env bs+ return (bf, t0, ENew n [] (bs''++bs'++bs)) where bs' = if n `elem` tagged env then [(prim Tag, Val tInt (ELit (conLit env n)))] else [] bs'' = polyTagBinds env n ts t0 = TCon n ts (_,te0) = findStructTEnv "BB" env t0 -pRefBind te0 env (x,Val _ e) = do (bs,t,e) <- pRhsExp env e - return (bs, (x, Val (erase t0) (cast t0 t e)))+pRefBind te0 env (x,Val _ e) = do (bf,t,e) <- pRhsExp env e + return (bf, (x, Val (erase t0) (cast t0 t e))) where t0 = findValT "1" te0 x -- Prepare an expression in an arbitrary position and match its type with the expected one-pExpT env t0 e = do (bs,t,e) <- pExp env e- return (bs, cast t0 t e)+pExpT env t0 e = do (bf,t,e) <- pExp env e+ return (bf, cast t0 t e) cast t0 t1 e@@ -506,42 +513,42 @@ smallPrim _ = False -pExpTs env [] [] = return ([], [])-pExpTs env (t:ts) (e:es) = do (bs1,e) <- pExpT env t e- (bs2,es) <- pExpTs env ts es- return (bs1++bs2, e:es)+pExpTs env [] [] = return (id, [])+pExpTs env (t:ts) (e:es) = do (bf1,e) <- pExpT env t e+ (bf2,es) <- pExpTs env ts es+ return (bf1 . bf2, e:es) -- Prepare an expression in an arbitrary position and compute its type-pExp env (EVar x) = return ([], findValT "4" (tenv env) x, EVar x)-pExp env (ELit l) = return ([], litType l, ELit l)-pExp env (EThis) = return ([], findValT "5" (tenv env) x, EVar x)+pExp env (EVar x) = return (id, findValT "4" (tenv env) x, EVar x)+pExp env (ELit l) = return (id, litType l, ELit l)+pExp env (EThis) = return (id, findValT "5" (tenv env) x, EVar x) where x = fromJust (this env)-pExp env (ESel e l) = do (bs,t1,e) <- pExp env e+pExp env (ESel e l) = do (bf,t1,e) <- pExp env e let (s,te) = findStructTEnv "CC" env t1 t = findValT ("6" ++ " e: " ++ render (pr e) ++ " te: " ++ show te) te l- specialize s t bs (ESel e l)-pExp env (ECall f ts es) = do (bs,es) <- pExpTs env ts0 es- specialize s t bs (ECall f [] (polyTagArgs env ts ++ es))+ specialize s t bf (ESel e l)+pExp env (ECall f ts es) = do (bf,es) <- pExpTs env ts0 es+ specialize s t bf (ECall f [] (polyTagArgs env ts ++ es)) where (s,ts0,t) = findFunT (tenv env) f ts pExp env (EEnter (EVar x) f ts es) = do let t1 = findValT "7" (tenv env) x let (s,te) = findStructTEnv "DD" env t1 (s',ts0,t) = findFunT te f ts- (bs2,es) <- pExpTs env ts0 es- specialize (s'@@s) t bs2 (EEnter (EVar x) f [] (polyTagArgs env ts ++ es))-pExp env (EEnter e f ts es) = do (bs1,t1,e) <- pRhsExp env e+ (bf,es) <- pExpTs env ts0 es+ specialize (s'@@s) t bf (EEnter (EVar x) f [] (polyTagArgs env ts ++ es))+pExp env (EEnter e f ts es) = do (bf1,t1,e) <- pRhsExp env e let (s,te) = findStructTEnv "EE" env t1 (s',ts0,t) = findFunT te f ts- (bs2,es) <- pExpTs env ts0 es+ (bf2,es) <- pExpTs env ts0 es x <- newName tempSym- specialize (s'@@s) t (bs1++bs2++[(x, Val (erase t1) e)]) (EEnter (EVar x) f [] (polyTagArgs env ts ++ es))-pExp env (ECast t e) = do (bs,t',e) <- pExp env e- return (bs, t, cast t t' e)+ specialize (s'@@s) t (bf1 . bf2 . cBind [(x, Val (erase t1) e)]) (EEnter (EVar x) f [] (polyTagArgs env ts ++ es))+pExp env (ECast t e) = do (bf,t',e) <- pExp env e+ return (bf, t, cast t t' e) pExp env (ENew n ts bs)- | n `elem` nulls env = return ([], tInt, ELit (conLit env n))- | otherwise = do (bs1,t,e) <- pNewExp env n ts bs+ | n `elem` nulls env = return (id, tInt, ELit (conLit env n))+ | otherwise = do (bf,t,e) <- pNewExp env n ts bs x <- newName tempSym- return (bs1++[(x, Val (erase t) e)], t, EVar x)+ return (bf . cBind [(x, Val (erase t) e)], t, EVar x) -specialize s t bs e = return (bs, t', cast t' t e)+specialize s t bf e = return (bf, t', cast t' t e) where t' = subst s t
src/Reduce.hs view
@@ -1,6 +1,7 @@+{-# LANGUAGE DeriveDataTypeable #-} -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -40,7 +41,8 @@ import Kind import Depend import Termred-+import Data.Typeable+import qualified Control.Exception as Exception @@ -48,6 +50,17 @@ type TEqs = [(Type,Type)] ++data ClosePredException = CircularSubPred [Scheme]+ | AmbigSubPred Scheme Scheme+ deriving (Typeable)+ +instance Show ClosePredException where+ show (CircularSubPred ps) = "Circular subtype predicates: " ++ render (hpr ',' ps)+ show (AmbigSubPred p1 p2) = "Ambiguous subtype predicates: " ++ render (hpr ',' [p1,p2])++instance Exception.Exception ClosePredException+ noreduce env eqs pe = do s0 <- unify env eqs return (s0, pe, id) @@ -60,9 +73,15 @@ -- tr ("END FULLREDUCE " ++ show pe2) return (s2@@s1, pe2, f2 . f1) -topresolve env eqs pe bs = do (s,[],f) <- fullreduce env eqs pe+topresolve env eqs pe bs = do -- if not (null pe) then tr ("TOPRESOLVE\n" ++ render (nest 4 (vpr pe))) else return ()+ (s,qe,f) <- fullreduce env eqs pe+ -- if not (null qe) then tr ("TOPRESOLVE OUT:\n" ++ render (nest 4 (vpr qe))) else return () let Binds r te es = collect (f (ELit (lInt 0))) `catBinds` bs- return (Binds r (subst s te) es)+ te' = subst s te+ mono = [ (x,t) | (x,t) <- te', not (null (tvars t)) ]+ -- if not (null mono) then tr ("AFTER TOPRESOLVE\n" ++ render (nest 4 (vpr te'))) else return ()+ assert1 (null mono) "Illegal polymorphism in top-level type" mono+ return (Binds r (qe++te') es) where collect (ELet bs e) = bs `catBinds` collect e collect e = nullBinds @@ -170,15 +189,13 @@ -- Forced reduction ------------------------------------------------------------------------ -resolve env pe = do -- tr ("############### Before resolve: ")- -- tr (render (nest 8 (vpr pe)))+resolve env pe = do -- tr ("############### Before resolve:\n" ++ render (nest 8 (vpr pe))) -- tr ("tevars: " ++ show env_tvs ++ ", reachable: " ++ show reachable_tvs) (s1,q1,[],es) <- red [] (map mkGoal pe)- -- tr ("############### After resolve: ")- -- tr (render (nest 8 (vpr q1)))+ -- tr ("############### After resolve:\n" ++ render (nest 8 (vpr q1))) let f1 = eLet pe (dom pe `zip` es) badq = filter badDummy q1- assert1 (null badq) "Cannot resolve predicates" (snd (head badq))+ -- assert1 (null badq) "Cannot resolve predicates" badq -- tr "DONE RESOLVING" (s2,q2,f2) <- simplify (subst s1 env) q1 return (s2@@s1, q2, f2 . f1)@@ -270,11 +287,11 @@ info = varInfo gs red gs ((env, p@(Scheme (F [sc1] t2) ps2 ke2)):ps) = do (t1,ps1) <- inst sc1- -- tr ("redf " ++ render (pr t1 <+> text "<" <+> pr t2))+ -- tr ("red: " ++ render (pr t1 <+> text "<" <+> pr t2)) pe <- newEnv assumptionSym ps2 v <- newName coercionSym (env',qe,eq) <- closePreds env (tvars sc1 ++ tvars t2 ++ tvars ps2) pe ke2- let ps' = repeat (tick env' False) `zip` ps1+ let ps' = repeat env' `zip` ps1 (s,q,es,e,es') <- redf gs env' t1 t2 (ps'++ps) pe1 <- wildify ke2 pe qe1 <- wildify ke2 qe@@ -470,8 +487,8 @@ auSc _ _ _ = internalError0 "auTerms" -newHyp (env,c) = do -- tr ("newHyp " ++ render (pr p) ++ " " ++ show (forced env))- v <- newName (sym env)+newHyp (env,c) = do v <- newName (sym env)+ -- tr ("newHyp " ++ render (pr (v,p)) ++ ", ticked/forced: " ++ show (ticked env,forced env)) return ([(v,p)], eAp (EVar (annotExplicit v)) (map EVar vs)) where p = Scheme (R c) ps ke (vs,ps) = unzip (predEnv env)
src/Rename.hs view
@@ -2,7 +2,7 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -393,8 +393,10 @@ renSBind envL envR (BEqn (LFun v ps) rh) = do envR' <- extRenE envR (pvars ps) ps' <- rename envR' ps liftM (BEqn (LFun (annotGenerated (renE envL v)) ps')) (rename envR' rh)-renSBind envL envR (BEqn (LPat (EVar v)) rh)= liftM (BEqn (LPat (EVar (annotGenerated (renE envL v))))) (rename envR rh)-renSBind _ _ (BEqn (LPat p) _) = errorTree "Illegal pattern in struct value" p +--renSBind envL envR (BEqn (LPat (EVar v)) rh)= liftM (BEqn (LPat (EVar (annotGenerated (renE envL v))))) (rename envR rh)+renSBind envL envR (BEqn (LPat p) rh) = do p' <- rename envL p+ rh' <- rename envR rh+ return (BEqn (LPat p') rh') renSBind _ _ s@(BSig vs t) = errorTree "Signature in struct value" s instance Rename Field where
src/Syntax.hs view
@@ -2,7 +2,7 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -148,7 +148,6 @@ | SBind [Bind] | SAss Pat Exp | SForall [Qual] [Stmt]- | SWhile Exp [Stmt] | SIf Exp [Stmt] | SElsif Exp [Stmt] | SElse [Stmt]@@ -261,7 +260,9 @@ flat t ts = (t,ts) -type2cons (TQual t ps) = type2cons t+type2cons (TQual t ps) = case tFlat t of+ (TCon c,ts) -> Constr c ts ps+ _ -> errorTree "Bad type constructor in" t type2cons t = case tFlat t of (TCon c,ts) -> Constr c ts [] _ -> errorTree "Bad type constructor in" t@@ -360,7 +361,6 @@ subst s (SBind bs) = SBind (subst s bs) subst s (SAss p e) = SAss p (subst s e) subst s (SForall qs st) = SForall (subst s qs) (subst s st)- subst s (SWhile e st) = SWhile (subst s e) (subst s st) subst s (SIf e st) = SIf (subst s e) (subst s st) subst s (SElsif e st) = SElsif (subst s e) (subst s st) subst s (SElse st) = SElse (subst s st)@@ -407,9 +407,9 @@ <+> prSubs subs <+> prCons cs pr (DRec isC c vs sups ss) = text kwd <+> prId c <+> hsep (map prId vs) <+> prSups sups <+> prEq ss $$ prSigs ss- where kwd = if isC then "typeclass " else "struct"+ where kwd = if isC then "typeclass" else "struct" -- pr (DInst t bs) = text "instance" <+> pr t <+> text "=" $$ nest 4 (vpr bs)- pr (DPSig v t) = text "typeclass" <+> prId v <+> text "::" <+> pr t+ pr (DPSig v t) = text "instance" <+> prId v <+> text "::" <+> pr t pr (DDefault ts) = text "default" <+> hpr ',' ts pr (DInstance ns) = text "instance" <+> hpr ',' ns pr (DTClass ns) = text "typeclass" <+> hpr ',' ns @@ -588,7 +588,6 @@ pr (SIf e ss) = text "if" <+> pr e <+> text "then" $$ nest 4 (pr ss) pr (SElsif e ss) = text "elsif" <+> pr e <+> text "then" $$ nest 4 (pr ss) pr (SElse ss) = text "else" $$ nest 4 (pr ss)- pr (SWhile e ss) = text "while" <+> pr e <+> text "do" $$ nest 4 (pr ss) pr (SForall qs ss) = text "forall" <+> hpr ',' qs <+> text "do" $$ nest 4 (pr ss) pr (SCase e alts) = text "case" <+> pr e <+> text "of" $$ nest 4 (vpr alts) @@ -666,7 +665,6 @@ identStmts (SBind bs : ss) = identSBind bs ss identStmts (SAss p e : ss) = idents e ++ (identStmts ss \\ pvars p) identStmts (SForall qs ss' : ss)= identQuals qs ++ (identStmts ss' \\ bvars qs) ++ identStmts ss-identStmts (SWhile e ss' : ss) = idents e ++ identStmts ss' ++ identStmts ss identStmts (SIf e ss' : ss) = idents e ++ identStmts ss' ++ identStmts ss identStmts (SElsif e ss' : ss) = idents e ++ identStmts ss' ++ identStmts ss identStmts (SElse ss' : ss) = identStmts ss' ++ identStmts ss@@ -812,7 +810,6 @@ posInfo (SBind b) = posInfo b posInfo (SAss p e) = between (posInfo p) (posInfo e) posInfo (SForall qs ss) = between (posInfo qs) (posInfo ss)- posInfo (SWhile e ss) = between (posInfo e) (posInfo ss) posInfo (SIf e ss) = between (posInfo e) (posInfo ss) posInfo (SElsif e ss) = between (posInfo e) (posInfo ss) posInfo (SElse ss) = posInfo ss@@ -1028,7 +1025,6 @@ put (SBind a) = putWord8 3 >> put a put (SAss a b) = putWord8 4 >> put a >> put b put (SForall a b) = putWord8 5 >> put a >> put b- put (SWhile a b) = putWord8 6 >> put a >> put b put (SIf a b) = putWord8 7 >> put a >> put b put (SElsif a b) = putWord8 8 >> put a >> put b put (SElse a) = putWord8 9 >> put a@@ -1042,7 +1038,6 @@ 3 -> get >>= \a -> return (SBind a) 4 -> get >>= \a -> get >>= \b -> return (SAss a b) 5 -> get >>= \a -> get >>= \b -> return (SForall a b)- 6 -> get >>= \a -> get >>= \b -> return (SWhile a b) 7 -> get >>= \a -> get >>= \b -> return (SIf a b) 8 -> get >>= \a -> get >>= \b -> return (SElsif a b) 9 -> get >>= \a -> return (SElse a)
src/Syntax2Core.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without
src/Termred.hs view
@@ -2,7 +2,7 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -41,7 +41,7 @@ import PP import Char -termred (_,ds',_,bs') m = redModule (consOf ds') (eqnsOf bs') m+termred (_,ds',_,bs') m = redModule ds' (eqnsOf bs') m redTerm coercions e = redExp (initEnv { eqns = coercions }) e @@ -50,16 +50,18 @@ data Env = Env { eqns :: Map Name Exp, args :: [Name],- cons :: [Map Name Int]+ cons :: [Map Name Int],+ sels :: TEnv } -initEnv = Env { eqns = [], args = [], cons = cons0 }+initEnv = Env { eqns = [], args = [], cons = cons0, sels = [] } cons0 = [ [(prim TRUE, 0), (prim FALSE, 0)] , [(prim NIL, 0), (prim CONS, 2)] ] -consOf (Types _ ds) = [ map f ce | (_,DData _ _ ce) <- ds ]+consOf ds = [ map f ce | (_,DData _ _ ce) <- ds ] where f (c, Constr te pe _) = (c, length te + length pe) +selsOf ds = concat [ ss | (_,DRec _ _ _ ss) <- ds ] conArity env (Tuple n _) = n conArity env c = lookup' (concat (cons env)) c@@ -74,19 +76,20 @@ addEqns env eqs = env { eqns = eqs ++ eqns env } -addCons env css = env { cons = css ++ cons env }+addDecls env ds = env { cons = consOf ds ++ cons env, sels = selsOf ds ++ sels env } -redModule impCons impEqs (Module m ns xs ds is bss)++redModule impDecls impEqs (Module m ns xs ds is bss) = do (bss,_) <- redTopBinds env1 bss return (Module m ns xs ds is bss)- where env0 = addCons initEnv (impCons ++ consOf ds)+ where env0 = addDecls initEnv (tdefsOf impDecls ++ tdefsOf ds) env1 = addEqns env0 (finiteEqns env0 impEqs) redTopBinds env [] = return ([], []) redTopBinds env (bs : bss) = do Binds r te es <- redBinds env bs (bss,vs) <- redTopBinds (addEqns env (finiteEqns env es)) bss- let necessary (v,_) = maybe (elem v vs) (const True) (fromMod v)+ let necessary (v,_) = r || maybe (elem v vs) (const True) (fromMod v) te' = filter necessary te es' = filter necessary es bs' = Binds r te' es'@@ -124,7 +127,7 @@ -- may be safely inlined (can't lead to infinite expansion even if part of a recursive binding group) finite env (EVar (Prim c _)) = True --c `notElem` [ListArray, UniArray, UpdateArray] finite env (EVar (Tuple _ _)) = True-finite env (EVar x) = x `elem` args env || maybe False (finite env )(lookup x (eqns env))+finite env (EVar x) = x `elem` args env || maybe False (finite env) (lookup x (eqns env)) finite env (ECon _) = True finite env (ELit _) = True finite env (ESel e _) = finite env e@@ -139,9 +142,55 @@ -redBinds env (Binds r te eqns) = liftM (Binds r te) (redEqns env eqns)+redBinds env (Binds r te eqns) = do eqns <- redEqns env eqns+ bs <- staticDelayRule env (Binds r te eqns)+ return bs +staticDelayRule env bs@(Binds rec te eqs)+ | not rec = return bs+ | rec = do (eqs',eqs1) <- walkEqs env te (dom eqs) eqs+ ts <- mapM (const (newTVar Star)) eqs1+ return (Binds rec (te ++ (dom eqs1 `zip` map scheme ts)) (eqs'++eqs1))++ +walkEqs env te fw [] = return ([], [])+walkEqs env te fw (eq:eqs) = do (eq,eqs1) <- doEq te eq+ (eqs,eqs2) <- walkEqs env te (fw \\ [fst eq] ++ dom eqs1) eqs+ return (eq:eqs, eqs1++eqs2)+ where doEq te eq@(x,e)+ | null ke = do (e,eqs) <- doExp e+ return ((x,e), eqs)+ | otherwise = return ((x,e), [])+ where ke = quant (lookup' te x)+ doAlt (p,e) = do (e,eqs1) <- doExp e+ return ((p,e), eqs1)+ doExp (ESel e l)+ | isCoerceLabel l = maybeDelay (\e -> ESel e l) e+ | otherwise = do (e,eqs1) <- doExp e+ return (ESel e l, eqs1)+ doExp (ECase e alts) = do (e,eqs1) <- doExp e+ (alts,eqss) <- fmap unzip (mapM doAlt alts)+ return (ECase e alts, eqs1++concat eqss)+ doExp (EAp e es) = do (e,eqs1) <- doExp e+ (es,eqss) <- fmap unzip (mapM doExp es)+ return (EAp e es, eqs1++concat eqss)+ doExp (ELet (Binds r te eqs) e)+ = do (eqs',eqss) <- fmap unzip (mapM (doEq te) eqs)+ (e,eqs1) <- doExp e+ return (ELet (Binds r te eqs') e, eqs1++concat eqss)+ doExp (ERec n eqs) = do (eqs',eqss) <- fmap unzip (mapM (doEq (sels env)) eqs)+ return (ERec n eqs', concat eqss)+ doExp e = return (e, [])+ maybeDelay f (ESel e l)+ | isCoerceLabel l = maybeDelay (\e -> f (ESel e l)) e+ maybeDelay f (EVar x)+ | x `elem` fw = do y <- newName tempSym+ return (EVar y, [(y, f (EVar x))])+ maybeDelay f e = do (e,eqs1) <- doExp e+ return (f e, eqs1)++ redEqns env [] = return [] redEqns env ((x,e):eqns) = do e' <- redExp env e let env' = if finite env e' && isSmall e @@ -300,9 +349,9 @@ _ -> liftM (ECase e) (redAlts env alts) redAlts env alts- | complete (cons env) cs = do es <- mapM (redExp env) es+ | complete (cons env) cs = do es <- mapM (redRhs env) es return (map PCon cs `zip` es)- | otherwise = do es0 <- mapM (redExp env) es0+ | otherwise = do es0 <- mapM (redRhs env) es0 return (ps `zip` es0) where (cs,es) = unzip [ (c,e) | (PCon c, e) <- alts ] (ps,es0) = unzip alts@@ -323,6 +372,7 @@ | l == l' = redExp env e findLit env l (_:alts) = findLit env l alts + redCaseStrLit env l ((PWild,e):_) = redExp env e redCaseStrLit env l ((PLit l',e):_) | l == l' = redExp env e@@ -334,18 +384,21 @@ nil = ECon (prim NIL) redCaseStrLit env l (_:alts) = redCaseStrLit env l alts + redPrim env Refl _ [e] = e redPrim env Match a [e] = redMatch env a e redPrim env Fatbar a [e,e'] = redFat a e e' redPrim env UniArray a es = EAp (EVar (Prim UniArray a)) es-redPrim env p _ [ELit (LInt _ x), ELit (LInt _ y)] = redInt p x y-redPrim env p a [ELit (LRat _ x), ELit (LRat _ y)] = redRat p x y redPrim env IntNeg _ [ELit (LInt _ x)] = ELit (lInt (-x)) redPrim env IntToFloat _ [ELit (LInt _ x)] = ELit (lRat (fromInteger x)) redPrim env IntToChar _ [ELit (LInt _ x)] = ELit (lChr (chr (fromInteger x))) redPrim env FloatNeg _ [ELit (LRat _ x)] = ELit (lRat (-x)) redPrim env FloatToInt _ [ELit (LRat _ x)] = ELit (lInt (truncate x)) redPrim env CharToInt _ [ELit (LChr _ x)] = ELit (lInt (ord x))+redPrim env p a [ELit (LInt _ x), ELit (LInt _ y)]+ | p `notElem` [IntDiv,IntMod] || y /= 0 = redInt p x y+redPrim env p a [ELit (LRat _ x), ELit (LRat _ y)]+ | p /= FloatDiv || y /= 0 = redRat p x y redPrim env p a es = eAp (EVar (Prim p a)) es @@ -375,7 +428,7 @@ redInt IntLE a b = eBool (a <= b) redInt IntGE a b = eBool (a >= b) redInt IntGT a b = eBool (a > b)-redInt p _ _ = internalError0 ("redInt: unknown primitive " ++ show p)+redInt p _ _ = internalError0 ("redInt: " ++ show p) redRat FloatPlus a b = ELit (lRat (a + b))@@ -388,7 +441,7 @@ redRat FloatLE a b = eBool (a <= b) redRat FloatGE a b = eBool (a >= b) redRat FloatGT a b = eBool (a > b)-redRat p _ _ = internalError0 ("redRat " ++ show p)+redRat p _ _ = internalError0 ("redRat: " ++ show p) eBool True = ECon (prim TRUE)@@ -415,14 +468,14 @@ | inline x e = do c' <- redBetaC (addEqns env [(x,e)]) te c es return (bindx c') | otherwise = liftM (CLet bs) (redBetaC env te c es)- where inline x e = isSafe x || isEVar e || (value e && finite env e && isSmall e)+ where inline x e = isSafe x || isSafeEVar e || (value e && finite env e && isSmall e) isSafe x = isEtaExp x || isAssumption x || isCoercion x bindx c' | x `elem` evars c' = CLet bs c' | otherwise = c' bs = Binds False [(x,t)] [(x,e)]- isEVar (EVar _) = True- isEVar _ = False+ isSafeEVar (EVar n) = not $ isState n+ isSafeEVar _ = False redBetaC env [] c [] = redCmd env c -- Constructor presence
src/Token.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -110,7 +110,6 @@ | KW_Typeclass | KW_Use | KW_Where- | KW_While | EOF deriving (Eq, Show) @@ -162,8 +161,7 @@ ( "type", KW_Type ), ( "typeclass", KW_Typeclass ), ( "use", KW_Use ), - ( "where", KW_Where ),- ( "while", KW_While )+ ( "where", KW_Where ) ]
src/Type.hs view
@@ -1,6 +1,6 @@ -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -119,6 +119,7 @@ tiBinds env (Binds _ [] []) = return ([], [], nullBinds) tiBinds env (Binds rec te eqs) = do -- tr ("TYPE-CHECKING " ++ showids xs ++ ", at line: " ++ show (pos (fst(head te))))+ -- tr ("rec: " ++ show rec ++ ", mono: " ++ show mono) -- tr (render (nest 8 (vpr te))) -- tr ("assuming\n" ++ render (nest 4 (vpr (typeEnv env)))) (s,pe,es1) <- tiRhs0 (addTEnv te env) explWits ts es@@ -128,18 +129,17 @@ -- tr ("PREDICATES OBTAINED (" ++ showids xs ++ "):\n" ++ render (nest 8 (vpr qe))) let env1 = subst s' env ts1 = subst s' ts- tvs0 = if mono then tvars qe ++ tvs1 else []- tvs1 = concat [ tvars t | (t,e) <- ts1 `zip` es, isNewAp e ]- (qe1,qe2) = if mono then (qe,[]) else partition (isFixed (tevars env1)) qe+ tvs0 = concat [ tvars t | (t,e) <- ts1 `zip` es, monoRestrict rec t e ]+ (qe1,qe2) = if mono then (qe,[]) else partition (isFixed (tevars env1 ++ tvs0)) qe (vs,qs) = unzip qe2 es2 = map f es1- es3 = if mono || not rec || null vs then es2 else map (subst (satSubst vs)) es2+ es3 = if mono || not rec then es2 else map (subst (satSubst vs)) es2 (es',ts') = if mono then (es3,ts1) else unzip (zipWith (qual qe2) es3 ts1) -- tr ("BEFORE GEN:\n" ++ render (nest 8 (vpr (xs `zip` ts') $$ vpr qe2))) -- Note: using genL below instead of mapM gen allows us to take a simplifying -- shortcut later on in Type2- ts'' <- genL (tevars env1 ++ tvs0) ts'- -- tr ("DONE " ++ render (nest 8 (vpr (xs `zip` ts''))))+ ts'' <- genL (tevars env1 ++ tvs0 ++ tvars qe1) ts'+ -- tr ("DONE\n" ++ render (nest 8 (vpr (xs `zip` ts'')))) -- tr ("EXPS " ++ render (nest 8 (vpr (xs `zip` es')))) return (mkEqns env s', qe1, Binds rec (xs `zip` ts'') (xs `zip` es')) where ts = map (lookup' te) xs@@ -150,7 +150,7 @@ where es = map EVar vs f x t = (x, eLam te (EAp (EVar x) (es ++ map EVar (dom te)))) where te = abcSupply `zip` ctxt t- mono = or [ isNewAp e || arity e == 0 && null (ctxt t) | (e,t) <- es `zip` ts ]+ mono = or [ monoRestrict True t e | (e,t) <- es `zip` ts ] tiRhs0 env explWits ts es = do (ss,pes,es') <- fmap unzip3 (mapM (tiExpT' env) (zip3 explWits ts es))@@ -162,8 +162,8 @@ tiExpT env t e = tiExpT' env (False, t, e) -tiExpT' env (explWit, Scheme t0 ps ke, e)- | isNewAp e = do (ss,pe,t,e') <- tiExp env e+tiExpT' env (explWit, sc@(Scheme t0 ps ke), e)+ | monoRestrict False sc e = do (ss,pe,t,e') <- tiExp env e c <- newNamePos coercionSym e' return (ss, (c, Scheme (F [scheme' t] t0) ps ke) : pe, EAp (EVar c) [e']) | null ke && not explWit = do (ss,qe,t,e) <- tiExp env e@@ -173,8 +173,8 @@ e1 = eLam pe0 (EAp (eAp (EVar c) ws) [e]) return (ss, (c, Scheme (F [scheme' t] t0) ps ke) : qe, e1) | otherwise = do (ss,qe,t,e) <- tiExp env e--- tr ("REQUIRED: " ++ render (pr (Scheme t0 ps ke)))--- tr ("INFERRED: " ++ render (pr t) ++ "\n" ++ render (nest 4 (vpr qe)))+ -- tr ("REQUIRED: " ++ render (pr (Scheme t0 ps ke)))+ -- tr ("INFERRED: " ++ render (pr t) ++ "\n" ++ render (nest 4 (vpr qe))) (s,qe,f) <- normalize (target t (setErrPos (posInfo e) env)) ss qe `handle` (fail . tail) c <- newNamePos coercionSym e pe0 <- newEnvPos assumptionSym ps e >>= wildify ke@@ -185,7 +185,7 @@ (ws',ps') = if explWit then (ws, ps) else ([], []) e1 = eLam pe0 (eAp (EAp (eAp (EVar c) ws) [e']) ws') sc <- gen (tevars env1 ++ tvars qe1) t'- return (mkEqns env1 s, (c, Scheme (F [sc] (tFun ps' t0)) ps ke) : qe1, e1)+ return (mkEqns env s, (c, Scheme (F [sc] (tFun ps' t0)) ps ke) : qe1, e1) mkEqns env s = mapFst TVar (restrict s (tevars env))
src/Type2.hs view
@@ -1,6 +1,7 @@+{-# LANGUAGE TypeSynonymInstances, FlexibleInstances, MultiParamTypeClasses, FlexibleContexts #-} -- The Timber compiler <timber-lang.org> ----- Copyright 2008 Johan Nordlander <nordland@csee.ltu.se>+-- Copyright 2008-2009 Johan Nordlander <nordland@csee.ltu.se> -- All rights reserved. -- -- Redistribution and use in source and binary forms, with or without@@ -42,7 +43,7 @@ typecheck2 e2 m = t2Module e2 m t2Module (xs',ds',ws',bs') (Module v ns xs ds ws bss)- = do bss <- t2BindsList env2 bss+ = do bss <- t2TopBinds env2 bss return (Module v ns xs ds ws bss) where env2 = addTEnv0 te2 (addKEnv0 ke2 env1) te2 = tenvSelsCons ds@@ -52,71 +53,69 @@ ke1 = ksigsOf ds' env0 = addTEnv0 primPredEnv (initEnv v) -t2BindsList env [] = return []-t2BindsList env (bs:bss) = do bs <- t2Binds0 env bs- bss <- t2BindsList (addTEnv (tsigsOf bs) env) bss- return (bs:bss) --- t2Binds0 is a variant of t2Binds that is optimized for use on the program top level, where the only free --- occurrences of unification variables are in partial type signatures. After type-checking a right-hand side,--- all unification variables that still remain will be generalized before a dependent binding group is checked.--- Thus there is no need to propagate any substitution from one top-level binding group to the next; and--- furthermore, the only fragment of a substitution that can possibly affect the type of a binding whithin--- the *same* group must have the free unification variables of the corresponding type signature as its domain.--- Hence the restriction of s1 to the tvars of sc below. Note: this optimization has considerable impact on--- the efficiency of the Type2 pass!--- Another difference between t2Binds0 and t2Binds is that t2Binds0 also applies the computed substitution to--- the top-level *term* of a binding, so that nested signatures inside the right-hand side term may be properly --- updated and named according to System F-like principles. Note that this is done as early as possible --- (immediately after a right-hand side has been checked), in order to allow the computed substitution to be --- restricted before it is applied to any sibling bindings.+-- Note 1: During type-checking of a top-level right-hand side, all unification variables found will +-- be generalized before a dependent binding group is checked. Thus there is no need to propagate any +-- substitution from one top-level binding group to the next -t2Binds0 env (Binds r te eqs) = do (s,eqs') <- t2Eqs eqs- scs' <- mapM (t2Gen (tevars env)) (subst s scs)- return (Binds r (xs `zip` scs') eqs')- where env1 = addTEnv te env- (xs,scs) = unzip te- t2Eqs [] = return (nullSubst, [])- t2Eqs ((x,e):eqs) = do (s1,e) <- t2ExpTscoped env1 sc e- (s2,eqs) <- t2Eqs eqs- return (mergeSubsts [restrict s1 (tvars sc),s2], (x, subst s1 e):eqs)- where sc = lookup' te x+t2TopBinds env [] = return []+t2TopBinds env (bs:bss) = do (_,bs) <- t2Binds env bs+ bss <- t2TopBinds (addTEnv (tsigsOf bs) env) bss+ return (bs:bss) -t2Binds env (Binds r te eqs) = do (s,eqs') <- t2Eqs eqs- let scs1 = subst s scs- tvs0 = concat [ tvars sc | (sc,eq) <- scs1 `zip` eqs, isNewAp (snd eq) ]- scs2 <- mapM (t2Gen (tevars (subst s env) ++ tvs0)) (subst s scs1)- return (s, Binds r (xs `zip` scs2) eqs')+-- Note 2: In order to enable subsequent translation into the System F-like type system of Kindle, +-- the type abstraction and application points are encoded in the resulting terms as uniquely shaped +-- let-bindings (see encodeTAbs and encodeTApp defined in Core).++t2Binds env (Binds r te eqs) = do (s0,eqs') <- t2Eqs eqs+ let mono = [ t | (x,e) <- eqs, let t = lookup' te x, monoRestrict r t e ]+ tvs0 = tevars (subst s0 env) ++ tvars (subst s0 mono)+ quants <- mapM (t2Quant tvs0) (subst s0 te)+ let env2 = addTEnv te' env+ te' = [ (x,t) | (x,(t,_,_)) <- quants ]+ ss = [ (x,s) | (x,(_,s,_)) <- quants ]+ s1 = [ (x,e) | (x,(_,_,e)) <- quants, e /= EVar x ]+ eqs'' <- mapM (t2Gen env2 s0 ss s1) eqs'+ return (s0, Binds r te' eqs'') where env1 = addTEnv te env- (xs,scs) = unzip te+ t2Eqs [] = return (nullSubst, []) t2Eqs ((x,e):eqs) = do (s1,e) <- t2ExpTscoped env1 sc e (s2,eqs) <- t2Eqs eqs return (mergeSubsts [s1,s2], (x,e):eqs) where sc = lookup' te x + t2Quant tvs0 (x,t) = do ids <- newNames tyvarSym (length tvs)+ let ts = map TId ids+ s = tvs `zip` ts+ ke' = ke ++ ids `zip` map tvKind tvs+ e <- encodeTApp ts (EVar x)+ return (x, (Scheme (subst s rh) (subst s ps) ke', s, e))+ where tvs = nub (filter (`notElem` tvs0) (tvars rh))+ Scheme rh ps ke = t+ + t2Gen env s ss s1 (x,e) = do e' <- encodeTAbs ke (subst s1 (subst s0 e))+ return (x, e')+ where s0 = mergeSubsts [lookup' ss x, s]+ ke = quant (findType env x) --- Note: the program is known to be typeable at this point, thus there is no need to generalize, freshly ++-- Note 3: the program is known to be typeable at this point, thus there is no need to generalize, freshly -- instantiate, and then match an inferred type against a skolemized version of the expected type scheme -- (together with checking for escaping skolem variables). Instead, all we need to ensure is that any -- type equalities implied by the match are captured in the resulting substitution, treating all-quantified --- variables as scoped constants once we are inside the scope of a type signature (t2ExpTscoped), or using--- a freshly alpha-converted copy when matching against a polymorphic signature whose bound variables are--- not in scope (t2ExpT).--- --- Moreover, in order to enable subsequent translation into the System F-like type system of Kindle, the--- type abstraction and application points are encoded in the resulting terms as uniquely shaped let-bindings.+-- variables as scoped constants. -t2ExpTscoped env sc e = do (s1,rh,e) <- t2Exp env e+t2ExpTscoped env sc e = do (s1,rh,e') <- t2Exp env e s2 <- mgi rh (quickSkolem sc)- e <- encodeTAbs env (quant sc) e- return (mergeSubsts [s1,s2], e)+ return (mergeSubsts [s1,s2], e') t2ExpT env (Scheme t qs []) e = t2ExpTscoped env (Scheme t qs []) e-t2ExpT env sc e = do sc' <- ac nullSubst sc- t2ExpTscoped env sc' e+t2ExpT env sc e = do (s,e) <- t2ExpTscoped env sc e+ e <- encodeTAbs (quant sc) e+ return (s, e) t2ExpTs env [] [] = return (nullSubst, [])@@ -134,14 +133,14 @@ t2Exp env (ELit l) = return (nullSubst, R (litType l), ELit l) t2Exp env (EVar x) = do (rh,ts) <- t2Inst (findType env x)- e <- encodeTApp env ts (EVar x)+ e <- encodeTApp ts (EVar x) return (nullSubst, rh, e) t2Exp env (ECon k) = do (rh,ts) <- t2Inst (findType env k)- e <- encodeTApp env ts (ECon k)+ e <- encodeTApp ts (ECon k) return (nullSubst, rh, e) t2Exp env (ESel e l) = do (F (sc:scs) rh,ts) <- t2Inst (findType env l) (s,e) <- t2ExpT env sc e- e' <- encodeTApp env ts (ESel e l) -- NOTE: the *full* instantiation of l is remembered here,+ e' <- encodeTApp ts (ESel e l) -- NOTE: the *full* instantiation of l is remembered here, return (s, subst s (tFun scs rh), e') -- including the actual struct type arguments (C.f.: c2k.cExp) t2Exp env (ELam te e) = do (s,rh,e) <- t2Exp (addTEnv te env) e return (s, F (subst s (rng te)) rh, ELam te e)@@ -153,7 +152,7 @@ t2Exp env (ERec c eqs) = do alphas <- mapM newTVar (kArgs (findKind env c)) (t,scs) <- t2Lhs env (foldl TAp (TId c) alphas) t2Sel ls (s,es) <- t2ExpTs env scs es- e <- encodeTApp env (snd (tFlat t)) (ERec c (ls `zip` es))+ e <- encodeTApp (snd (tFlat t)) (ERec c (ls `zip` es)) return (s, R (subst s t), e) where (ls,es) = unzip eqs t2Sel env x l = t2Exp env (ESel (EVar x) l)@@ -226,14 +225,12 @@ let env' = addTEnv [(x,scheme alpha)] env (ss,rhs,_) <- fmap unzip3 (mapM (t2X env' x) xs) let s = mergeSubsts ss- scs <- mapM (t2Gen (tevars (subst s env')) . scheme') (subst s rhs)+ scs <- mapM (t2Gen (tevars (subst s env'))) (subst s rhs) return (subst s alpha, scs)---t2Gen tvs0 (Scheme rh ps ke) = do ids <- newNames tyvarSym (length tvs)+ where t2Gen tvs0 rh = do ids <- newNames tyvarSym (length tvs) let s = tvs `zip` map TId ids- return (Scheme (subst s rh) ps (ke ++ ids `zip` map tvKind tvs))- where tvs = nub (filter (`notElem` tvs0) (tvars rh))+ return (Scheme (subst s rh) [] (ids `zip` map tvKind tvs))+ where tvs = nub (filter (`notElem` tvs0) (tvars rh)) t2Inst (Scheme rh ps ke) = do ts <- mapM newTVar ks@@ -278,7 +275,7 @@ | c == c' = unif eqs unif ((TFun ts t, TFun us u):eqs) | length ts == length us = unif ((t,u) : (ts `zip` us) ++ eqs)-unif eqs = internalError0 ("Type2.unif " ++ show eqs)+unif eqs = internalError0 ("Type2.unif\n" ++ render (nest 4 (vpr eqs))) mergeSubsts ss = unif (mapFst TVar (concat ss))
timberc.cabal view
@@ -1,5 +1,5 @@ Name: timberc-Version: 1.0.2+Version: 1.0.3 Synopsis: The Timber Compiler. Description: This is a compiler for a strict and pure functional language@@ -28,6 +28,7 @@ include/float.c, include/timber.c, include/timber.h,+ lib/ARM.t, lib/BitOps.t, lib/Data.Functional.List.t, lib/Data.Objects.Dictionary.t,@@ -43,7 +44,6 @@ rtsPOSIX/config.h.in, rtsPOSIX/cyclic.c, rtsPOSIX/env.c,- rtsPOSIX/env.h, rtsPOSIX/gc.c, rtsPOSIX/install-sh, rtsPOSIX/main.c,
timberc.spec view
@@ -2,12 +2,12 @@ # # This file is subject to the same free software license as timberc. #-# Copyright 2008, Peter A. Jonsson+# Copyright 2008-2009, Peter A. Jonsson # # This file was derived from ghc.spec.in %define name timberc-%define version 1.0.2+%define version 1.0.3 %define release 1 Name: %{name}@@ -18,7 +18,7 @@ URL: http://timber-lang.org Source0: http://timber-lang.org/dist/timberc-%{version}.tar.gz Packager: Peter A. Jonsson <pj@csee.ltu.se>-BuildRoot: %{_tmppath}/%{name}-%{version}-build+BuildRoot: %{_tmppath}/BUILDROOT/%{name}-%{version}-%{release}.%{_arch} BuildRequires: happy >= 1.18, ghc >= 6.10.1 Provides: timber Summary: The Timber Compiler@@ -35,24 +35,29 @@ %install -runhaskell Setup copy --destdir=%{_tmppath}/%{name}-%{version}-build-mv %{_tmppath}/%{name}-%{version}-build/%{_bindir}/timberc %{_tmppath}/%{name}-%{version}-build/%{_datadir}/timberc-%{version}/timberc+runhaskell Setup copy --destdir=${RPM_BUILD_ROOT}+mv ${RPM_BUILD_ROOT}%{_bindir}/timberc ${RPM_BUILD_ROOT}%{_datadir}/timberc-%{version}/timberc # Ugly hack: construct a temporary bin/timberc by hand to build the RTS. SCRIPT="%{_bindir}/timberc"-SCRIPT_TMP="%{_tmppath}/%{name}-%{version}-build/$SCRIPT"+SCRIPT_TMP="${RPM_BUILD_ROOT}$SCRIPT" DATADIR="%{_datadir}/timberc-%{version}"-DATADIR_TMP="%{_tmppath}/%{name}-%{version}-build/$DATADIR"+DATADIR_TMP="${RPM_BUILD_ROOT}/$DATADIR" +# Build a temporary timberc for compiling things during package construction.+# We must use a relative datadir here, otherwise the path will end up in the+# file which in turn will fail the sanity check of rpm. echo "#!/bin/sh" > $SCRIPT_TMP echo " " >> $SCRIPT_TMP-echo "exec $DATADIR_TMP/timberc \${1+\"\$@\"} --datadir $DATADIR_TMP" >> $SCRIPT_TMP+echo "exec $DATADIR_TMP/timberc -v \${1+\"\$@\"} --datadir .." >> $SCRIPT_TMP chmod 755 $SCRIPT_TMP cd rtsPOSIX sh ./configure --prefix=$DATADIR --with-timberc=$SCRIPT_TMP-make DESTDIR=%{_tmppath}/%{name}-%{version}-build install+sed 's#^TIMBERC.*#TIMBERC = %{_bindir}/timberc#g' Makefile > Makefile.new+mv Makefile.new Makefile+make TIMBERC=$SCRIPT_TMP DESTDIR=${RPM_BUILD_ROOT} install cd .. # We're done with the temporary thing. Now make a real one.@@ -61,6 +66,10 @@ echo " " >> $SCRIPT_TMP echo "exec $DATADIR/timberc \${1+\"\$@\"} --datadir $DATADIR" >> $SCRIPT_TMP chmod 755 $SCRIPT_TMP++# Grep reports BUILDROOT inside our object files; disable that test.+QA_SKIP_BUILD_ROOT=1+export QA_SKIP_BUILD_ROOT %clean rm -rf ${RPM_BUILD_ROOT}