old-time 1.1.0.5 → 1.1.1.0
raw patch · 6 files changed
+495/−331 lines, 6 filesdep +old-timedep +tastydep +tasty-hunitdep ~basedep ~old-localenew-uploader
Dependencies added: old-time, tasty, tasty-hunit
Dependency ranges changed: base, old-locale
Files
- System/Time.hsc +30/−22
- changelog.md +6/−0
- configure +350/−287
- include/HsTimeConfig.h.in +13/−13
- old-time.cabal +18/−9
- tests/Tests.hs +78/−0
System/Time.hsc view
@@ -1,6 +1,5 @@-#if __GLASGOW_HASKELL__ >= 701+{-# LANGUAGE CApiFFI #-} {-# LANGUAGE Trustworthy #-}-#endif ----------------------------------------------------------------------------- -- |@@ -271,7 +270,10 @@ -- | @'addToClockTime' d t@ adds a time difference @d@ and a -- clock time @t@ to yield a new clock time. The difference @d@ -- may be either positive or negative.-+--+-- Strange things can happen when 'TimeDiff' has+-- non-zero months and years, including but not limited+-- to ±1 hour jump when passing in and out daylight saving time. addToClockTime :: TimeDiff -> ClockTime -> ClockTime addToClockTime (TimeDiff year mon day hour minute sec psec) (TOD c_sec c_psec) =@@ -281,7 +283,9 @@ 3600 * toInteger hour + 24 * 3600 * toInteger day (d_sec, d_psec) = (c_psec + psec) `quotRem` 1000000000000- cal = toUTCTime (TOD (c_sec + sec_diff + d_sec) d_psec)++ beforeAddingMonthsAndYears = TOD (c_sec + sec_diff + d_sec) d_psec+ cal = toUTCTime beforeAddingMonthsAndYears new_mon = fromEnum (ctMonth cal) + r_mon month' = fst tmp yr_diff = snd tmp@@ -294,7 +298,9 @@ year' = ctYear cal + year + r_yr + yr_diff in- toClockTime cal{ctMonth=month', ctYear=year'}+ if year == 0 && mon == 0+ then beforeAddingMonthsAndYears+ else toClockTime cal{ctMonth=month', ctYear=year'} -- | @'diffClockTimes' t1 t2@ returns the difference between two clock -- times @t1@ and @t2@ as a 'TimeDiff'.@@ -312,8 +318,10 @@ } --- | converts a time difference to normal form.-+-- | Converts a time difference to normal form.+--+-- This function assumes that each month contains exactly 30 days+-- and each year contains exactly 365 days, which is not true. normalizeTimeDiff :: TimeDiff -> TimeDiff -- FIXME: handle psecs properly -- FIXME: ?should be called by formatTimeDiff automagically?@@ -367,10 +375,10 @@ # define tzname _tzname # endif # ifndef mingw32_HOST_OS-foreign import ccall unsafe "time.h &tzname" tzname :: Ptr CString+foreign import capi unsafe "time.h &tzname" tzname :: Ptr CString # else-foreign import ccall unsafe "__hscore_timezone" timezone :: Ptr CLong-foreign import ccall unsafe "__hscore_tzname" tzname :: Ptr CString+foreign import capi unsafe "__hscore_timezone" timezone :: Ptr CLong+foreign import capi unsafe "__hscore_tzname" tzname :: Ptr CString # endif zone x = do dst <- (#peek struct tm,tm_isdst) x@@ -382,8 +390,8 @@ -- Get the offset in secs from UTC, if (struct tm) doesn't supply it. */ # if HAVE_DECL_ALTZONE-foreign import ccall "&altzone" altzone :: Ptr CTime-foreign import ccall "&timezone" timezone :: Ptr CTime+foreign import capi "&altzone" altzone :: Ptr CTime+foreign import capi "&timezone" timezone :: Ptr CTime gmtoff x = do dst <- (#peek struct tm,tm_isdst) x tz <- if dst then peek altzone else peek timezone@@ -391,7 +399,7 @@ # else /* ! HAVE_DECL_ALTZONE */ #if !defined(mingw32_HOST_OS)-foreign import ccall "time.h &timezone" timezone :: Ptr CLong+foreign import capi "time.h &timezone" timezone :: Ptr CLong #endif -- Assume that DST offset is 1 hour ...@@ -731,35 +739,35 @@ type CTm = () -- struct tm #if HAVE_LOCALTIME_R-foreign import ccall unsafe "HsTime.h __hscore_localtime_r"+foreign import capi unsafe "HsTime.h __hscore_localtime_r" localtime_r :: Ptr CTime -> Ptr CTm -> IO (Ptr CTm) #else-foreign import ccall unsafe "time.h localtime"+foreign import capi unsafe "time.h localtime" localtime :: Ptr CTime -> IO (Ptr CTm) #endif #if HAVE_GMTIME_R-foreign import ccall unsafe "HsTime.h __hscore_gmtime_r"+foreign import capi unsafe "HsTime.h __hscore_gmtime_r" gmtime_r :: Ptr CTime -> Ptr CTm -> IO (Ptr CTm) #else-foreign import ccall unsafe "time.h gmtime"+foreign import capi unsafe "time.h gmtime" gmtime :: Ptr CTime -> IO (Ptr CTm) #endif-foreign import ccall unsafe "time.h mktime"+foreign import capi unsafe "time.h mktime" mktime :: Ptr CTm -> IO CTime #if HAVE_GETTIMEOFDAY type CTimeVal = () type CTimeZone = ()-foreign import ccall unsafe "HsTime.h __hscore_gettimeofday"+foreign import capi unsafe "HsTime.h __hscore_gettimeofday" gettimeofday :: Ptr CTimeVal -> Ptr CTimeZone -> IO CInt #elif HAVE_FTIME type CTimeB = () #ifndef mingw32_HOST_OS-foreign import ccall unsafe "time.h ftime" ftime :: Ptr CTimeB -> IO CInt+foreign import capi unsafe "time.h ftime" ftime :: Ptr CTimeB -> IO CInt #else-foreign import ccall unsafe "time.h ftime" ftime :: Ptr CTimeB -> IO ()+foreign import capi unsafe "time.h ftime" ftime :: Ptr CTimeB -> IO () #endif #else-foreign import ccall unsafe "time.h time" time :: Ptr CTime -> IO CTime+foreign import capi unsafe "time.h time" time :: Ptr CTime -> IO CTime #endif #endif /* ! __HUGS__ */
changelog.md view
@@ -1,5 +1,11 @@ # Changelog for [`old-time` package](http://hackage.haskell.org/package/old-time) +## 1.1.1.0 *Mar 2026*++ * Workaround DST issues in `toClockTime . toUTCTime`, at least in some cases.+ * Cabalize test suite.+ * Document issues with `TimeDiff`.+ ## 1.1.0.5 *Jan 2026* * Remove unused `includes` field in `.cabal` file
configure view
@@ -1,11 +1,11 @@ #! /bin/sh # Guess values for system-dependent variables and create Makefiles.-# Generated by GNU Autoconf 2.71 for Haskell old-time package 1.0.+# Generated by GNU Autoconf 2.72 for Haskell old-time package 1.0. # # Report bugs to <libraries@haskell.org>. # #-# Copyright (C) 1992-1996, 1998-2017, 2020-2021 Free Software Foundation,+# Copyright (C) 1992-1996, 1998-2017, 2020-2023 Free Software Foundation, # Inc. # #@@ -17,7 +17,6 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh-as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh@@ -26,12 +25,13 @@ # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST-else $as_nop- case `(set -o) 2>/dev/null` in #(+else case e in #(+ e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;;+esac ;; esac fi @@ -103,7 +103,7 @@ ;; esac-# We did not find ourselves, most probably we were run as `sh COMMAND'+# 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@@ -133,15 +133,14 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail-# out after a failed `exec'.+# out after a failed 'exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi # We don't want this to propagate to other subprocesses. { _as_can_reexec=; unset _as_can_reexec;} if test "x$CONFIG_SHELL" = x; then- as_bourne_compatible="as_nop=:-if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1+ as_bourne_compatible="if test \${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh NULLCMD=:@@ -149,12 +148,13 @@ # is contrary to our usage. Disable this feature. alias -g '\${1+\"\$@\"}'='\"\$@\"' setopt NO_GLOB_SUBST-else \$as_nop- case \`(set -o) 2>/dev/null\` in #(+else case e in #(+ e) case \`(set -o) 2>/dev/null\` in #( *posix*) : set -o posix ;; #( *) : ;;+esac ;; esac fi "@@ -172,8 +172,9 @@ if ( set x; as_fn_ret_success y && test x = \"\$1\" ) then : -else \$as_nop- exitcode=1; echo positional parameters were not saved.+else case e in #(+ e) exitcode=1; echo positional parameters were not saved. ;;+esac fi test x\$exitcode = x0 || exit 1 blah=\$(echo \$(echo blah))@@ -186,14 +187,15 @@ if (eval "$as_required") 2>/dev/null then : as_have_required=yes-else $as_nop- as_have_required=no+else case e in #(+ e) as_have_required=no ;;+esac fi if test x$as_have_required = xyes && (eval "$as_suggested") 2>/dev/null then : -else $as_nop- as_save_IFS=$IFS; IFS=$PATH_SEPARATOR+else case e in #(+ e) as_save_IFS=$IFS; IFS=$PATH_SEPARATOR as_found=false for as_dir in /bin$PATH_SEPARATOR/usr/bin$PATH_SEPARATOR$PATH do@@ -226,12 +228,13 @@ if $as_found then : -else $as_nop- if { test -f "$SHELL" || test -f "$SHELL.exe"; } &&+else case e in #(+ e) if { test -f "$SHELL" || test -f "$SHELL.exe"; } && as_run=a "$SHELL" -c "$as_bourne_compatible""$as_required" 2>/dev/null then : CONFIG_SHELL=$SHELL as_have_required=yes-fi+fi ;;+esac fi @@ -253,7 +256,7 @@ esac exec $CONFIG_SHELL $as_opts "$as_myself" ${1+"$@"} # Admittedly, this is quite paranoid, since all the known shells bail-# out after a failed `exec'.+# out after a failed 'exec'. printf "%s\n" "$0: could not re-execute with $CONFIG_SHELL" >&2 exit 255 fi@@ -273,7 +276,8 @@ $0: shell if you do have one." fi exit 1-fi+fi ;;+esac fi fi SHELL=${CONFIG_SHELL-/bin/sh}@@ -312,14 +316,6 @@ as_fn_set_status $1 exit $1 } # as_fn_exit-# as_fn_nop-# ----------# Do nothing but, unlike ":", preserve the value of $?.-as_fn_nop ()-{- return $?-}-as_nop=as_fn_nop # as_fn_mkdir_p # -------------@@ -388,11 +384,12 @@ { eval $1+=\$2 }'-else $as_nop- as_fn_append ()+else case e in #(+ e) as_fn_append () { eval $1=\$$1\$2- }+ } ;;+esac fi # as_fn_append # as_fn_arith ARG...@@ -406,21 +403,14 @@ { as_val=$(( $* )) }'-else $as_nop- as_fn_arith ()+else case e in #(+ e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1`- }+ } ;;+esac fi # as_fn_arith -# as_fn_nop-# ----------# Do nothing but, unlike ":", preserve the value of $?.-as_fn_nop ()-{- return $?-}-as_nop=as_fn_nop # as_fn_error STATUS ERROR [LINENO LOG_FD] # ----------------------------------------@@ -494,6 +484,8 @@ /[$]LINENO/= ' <$as_myself | sed '+ t clear+ :clear s/[$]LINENO.*/&-/ t lineno b@@ -542,7 +534,6 @@ as_echo='printf %s\n' as_echo_n='printf %s' - rm -f conf$$ conf$$.exe conf$$.file if test -d conf$$.dir; then rm -f conf$$.dir/conf$$.file@@ -554,9 +545,9 @@ 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 -pR'.+ # 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then@@ -581,10 +572,12 @@ as_executable_p=as_fn_executable_p # 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'"+as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"+as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name.-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"+as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"+as_tr_sh="eval sed '$as_sed_sh'" # deprecated test -n "$DJDIR" || exec 7<&0 </dev/null@@ -817,7 +810,7 @@ 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_fn_error $? "invalid feature name: \`$ac_useropt'"+ as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in@@ -843,7 +836,7 @@ 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_fn_error $? "invalid feature name: \`$ac_useropt'"+ as_fn_error $? "invalid feature name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in@@ -1056,7 +1049,7 @@ 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_fn_error $? "invalid package name: \`$ac_useropt'"+ as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in@@ -1072,7 +1065,7 @@ 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_fn_error $? "invalid package name: \`$ac_useropt'"+ as_fn_error $? "invalid package name: '$ac_useropt'" ac_useropt_orig=$ac_useropt ac_useropt=`printf "%s\n" "$ac_useropt" | sed 's/[-+.]/_/g'` case $ac_user_opts in@@ -1102,8 +1095,8 @@ | --x-librar=* | --x-libra=* | --x-libr=* | --x-lib=* | --x-li=* | --x-l=*) x_libraries=$ac_optarg ;; - -*) as_fn_error $? "unrecognized option: \`$ac_option'-Try \`$0 --help' for more information"+ -*) as_fn_error $? "unrecognized option: '$ac_option'+Try '$0 --help' for more information" ;; *=*)@@ -1111,7 +1104,7 @@ # Reject names that are not valid shell variable names. case $ac_envvar in #( '' | [0-9]* | *[!_$as_cr_alnum]* )- as_fn_error $? "invalid variable name: \`$ac_envvar'" ;;+ as_fn_error $? "invalid variable name: '$ac_envvar'" ;; esac eval $ac_envvar=\$ac_optarg export $ac_envvar ;;@@ -1161,7 +1154,7 @@ as_fn_error $? "expected an absolute directory name for --$ac_var: $ac_val" done -# There might be people who depend on the old broken behavior: `$host'+# 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@@ -1229,7 +1222,7 @@ test "$ac_srcdir_defaulted" = yes && srcdir="$ac_confdir or .." as_fn_error $? "cannot find sources ($ac_unique_file) in $srcdir" fi-ac_msg="sources are in $srcdir, but \`cd $srcdir' does not work"+ac_msg="sources are in $srcdir, but 'cd $srcdir' does not work" ac_abs_confdir=`( cd "$srcdir" && test -r "./$ac_unique_file" || as_fn_error $? "$ac_msg" pwd)`@@ -1257,7 +1250,7 @@ # 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 Haskell old-time package 1.0 to adapt to many kinds of systems.+'configure' configures Haskell old-time package 1.0 to adapt to many kinds of systems. Usage: $0 [OPTION]... [VAR=VALUE]... @@ -1271,11 +1264,11 @@ --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+ -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'+ -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 \`..']+ --srcdir=DIR find the sources in DIR [configure dir or '..'] Installation directories: --prefix=PREFIX install architecture-independent files in PREFIX@@ -1283,10 +1276,10 @@ --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'.+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. @@ -1337,7 +1330,7 @@ CPPFLAGS (Objective) C/C++ preprocessor flags, e.g. -I<include dir> if you have headers in a nonstandard directory <include dir> -Use these variables to override the choices made by `configure' or to help+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 <libraries@haskell.org>.@@ -1405,9 +1398,9 @@ if $ac_init_version; then cat <<\_ACEOF Haskell old-time package configure 1.0-generated by GNU Autoconf 2.71+generated by GNU Autoconf 2.72 -Copyright (C) 2021 Free Software Foundation, Inc.+Copyright (C) 2023 Free Software Foundation, Inc. This configure script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it. _ACEOF@@ -1446,11 +1439,12 @@ } && test -s conftest.$ac_objext then : ac_retval=0-else $as_nop- printf "%s\n" "$as_me: failed program was:" >&5+else case e in #(+ e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1+ ac_retval=1 ;;+esac fi eval $as_lineno_stack; ${as_lineno_stack:+:} unset as_lineno as_fn_set_status $ac_retval@@ -1469,8 +1463,8 @@ if eval test \${$3+y} then : printf %s "(cached) " >&6-else $as_nop- cat confdefs.h - <<_ACEOF >conftest.$ac_ext+else case e in #(+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $4 #include <$2>@@ -1478,10 +1472,12 @@ if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes"-else $as_nop- eval "$3=no"+else case e in #(+ e) eval "$3=no" ;;+esac fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;+esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5@@ -1521,11 +1517,12 @@ } then : ac_retval=0-else $as_nop- printf "%s\n" "$as_me: failed program was:" >&5+else case e in #(+ e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 - ac_retval=1+ ac_retval=1 ;;+esac fi # Delete the IPA/IPO (Inter Procedural Analysis/Optimization) information # created by the PGI compiler (conftest_ipa8_conftest.oo), as it would@@ -1548,15 +1545,15 @@ if eval test \${$3+y} then : printf %s "(cached) " >&6-else $as_nop- cat confdefs.h - <<_ACEOF >conftest.$ac_ext+else case e in #(+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ /* Define $2 to an innocuous variant, in case <limits.h> declares $2. For example, HP-UX 11i <limits.h> declares gettimeofday. */ #define $2 innocuous_$2 /* System header to define __stub macros and hopefully few prototypes,- which can conflict with char $2 (); below. */+ which can conflict with char $2 (void); below. */ #include <limits.h> #undef $2@@ -1567,7 +1564,7 @@ #ifdef __cplusplus extern "C" #endif-char $2 ();+char $2 (void); /* 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. */@@ -1586,11 +1583,13 @@ if ac_fn_c_try_link "$LINENO" then : eval "$3=yes"-else $as_nop- eval "$3=no"+else case e in #(+ e) eval "$3=no" ;;+esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext+ conftest$ac_exeext conftest.$ac_ext ;;+esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5@@ -1611,8 +1610,8 @@ if eval test \${$4+y} then : printf %s "(cached) " >&6-else $as_nop- cat confdefs.h - <<_ACEOF >conftest.$ac_ext+else case e in #(+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int@@ -1628,8 +1627,8 @@ if ac_fn_c_try_compile "$LINENO" then : eval "$4=yes"-else $as_nop- cat confdefs.h - <<_ACEOF >conftest.$ac_ext+else case e in #(+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ $5 int@@ -1645,12 +1644,15 @@ if ac_fn_c_try_compile "$LINENO" then : eval "$4=yes"-else $as_nop- eval "$4=no"+else case e in #(+ e) eval "$4=no" ;;+esac fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;+esac fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;+esac fi eval ac_res=\$$4 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5@@ -1672,8 +1674,8 @@ if eval test \${$3+y} then : printf %s "(cached) " >&6-else $as_nop- as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'`+else case e in #(+ e) as_decl_use=`echo $2|sed -e 's/(/((/' -e 's/)/) 0&/' -e 's/,/) 0& (/g'` eval ac_save_FLAGS=\$$6 as_fn_append $6 " $5" cat confdefs.h - <<_ACEOF >conftest.$ac_ext@@ -1697,12 +1699,14 @@ if ac_fn_c_try_compile "$LINENO" then : eval "$3=yes"-else $as_nop- eval "$3=no"+else case e in #(+ e) eval "$3=no" ;;+esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext eval $6=\$ac_save_FLAGS-+ ;;+esac fi eval ac_res=\$$3 { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_res" >&5@@ -1735,7 +1739,7 @@ running configure, to aid debugging if configure makes a mistake. It was created by Haskell old-time package $as_me 1.0, which was-generated by GNU Autoconf 2.71. Invocation command line was+generated by GNU Autoconf 2.72. Invocation command line was $ $0$ac_configure_args_raw @@ -1981,10 +1985,10 @@ printf "%s\n" "$as_me: loading site script $ac_site_file" >&6;} sed 's/^/| /' "$ac_site_file" >&5 . "$ac_site_file" \- || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}+ || { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "failed to load site script $ac_site_file-See \`config.log' for more details" "$LINENO" 5; }+See 'config.log' for more details" "$LINENO" 5; } fi done @@ -2020,9 +2024,7 @@ /* Most of the following tests are stolen from RCS 5.7 src/conf.sh. */ struct buf { int x; }; struct buf * (*rcsopen) (struct buf *, struct stat *, int);-static char *e (p, i)- char **p;- int i;+static char *e (char **p, int i) { return p[i]; }@@ -2036,6 +2038,21 @@ return s; } +/* C89 style stringification. */+#define noexpand_stringify(a) #a+const char *stringified = noexpand_stringify(arbitrary+token=sequence);++/* C89 style token pasting. Exercises some of the corner cases that+ e.g. old MSVC gets wrong, but not very hard. */+#define noexpand_concat(a,b) a##b+#define expand_concat(a,b) noexpand_concat(a,b)+extern int vA;+extern int vbee;+#define aye A+#define bee B+int *pvA = &expand_concat(v,aye);+int *pvbee = &noexpand_concat(v,bee);+ /* 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 do not provoke an error unfortunately, instead are silently treated@@ -2063,16 +2080,19 @@ # Test code for whether the C compiler supports C99 (global declarations) ac_c_conftest_c99_globals='-// Does the compiler advertise C99 conformance?+/* Does the compiler advertise C99 conformance? */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 199901L # error "Compiler does not advertise C99 conformance" #endif +// See if C++-style comments work.+ #include <stdbool.h> extern int puts (const char *); extern int printf (const char *, ...); extern int dprintf (int, const char *, ...); extern void *malloc (size_t);+extern void free (void *); // Check varargs macros. These examples are taken from C99 6.10.3.5. // dprintf is used instead of fprintf to avoid needing to declare@@ -2122,7 +2142,6 @@ static inline int test_restrict (ccp restrict text) {- // See if C++-style comments work. // Iterate through items via the restricted pointer. // Also check for declarations in for loops. for (unsigned int i = 0; *(text+i) != '\''\0'\''; ++i)@@ -2188,6 +2207,8 @@ ia->datasize = 10; for (int i = 0; i < ia->datasize; ++i) ia->data[i] = i * 1.234;+ // Work around memory leak warnings.+ free (ia); // Check named initializers. struct named_init ni = {@@ -2209,7 +2230,7 @@ # Test code for whether the C compiler supports C11 (global declarations) ac_c_conftest_c11_globals='-// Does the compiler advertise C11 conformance?+/* Does the compiler advertise C11 conformance? */ #if !defined __STDC_VERSION__ || __STDC_VERSION__ < 201112L # error "Compiler does not advertise C11 conformance" #endif@@ -2333,12 +2354,12 @@ eval ac_new_val=\$ac_env_${ac_var}_value case $ac_old_set,$ac_new_set in set,)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&5-printf "%s\n" "$as_me: error: \`$ac_var' was set to \`$ac_old_val' in the previous run" >&2;}+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&5+printf "%s\n" "$as_me: error: '$ac_var' was set to '$ac_old_val' in the previous run" >&2;} ac_cache_corrupted=: ;; ,set)- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' was not set in the previous run" >&5-printf "%s\n" "$as_me: error: \`$ac_var' was not set in the previous run" >&2;}+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' was not set in the previous run" >&5+printf "%s\n" "$as_me: error: '$ac_var' was not set in the previous run" >&2;} ac_cache_corrupted=: ;; ,);; *)@@ -2347,18 +2368,18 @@ 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- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: \`$ac_var' has changed since the previous run:" >&5-printf "%s\n" "$as_me: error: \`$ac_var' has changed since the previous run:" >&2;}+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: '$ac_var' has changed since the previous run:" >&5+printf "%s\n" "$as_me: error: '$ac_var' has changed since the previous run:" >&2;} ac_cache_corrupted=: else- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&5-printf "%s\n" "$as_me: warning: ignoring whitespace changes in \`$ac_var' since the previous run:" >&2;}+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&5+printf "%s\n" "$as_me: warning: ignoring whitespace changes in '$ac_var' since the previous run:" >&2;} eval $ac_var=\$ac_old_val fi- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: \`$ac_old_val'" >&5-printf "%s\n" "$as_me: former value: \`$ac_old_val'" >&2;}- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: \`$ac_new_val'" >&5-printf "%s\n" "$as_me: current value: \`$ac_new_val'" >&2;}+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: former value: '$ac_old_val'" >&5+printf "%s\n" "$as_me: former value: '$ac_old_val'" >&2;}+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: current value: '$ac_new_val'" >&5+printf "%s\n" "$as_me: current value: '$ac_new_val'" >&2;} fi;; esac # Pass precious variables to config.status.@@ -2374,11 +2395,11 @@ fi done if $ac_cache_corrupted; then- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}+ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: changes in the environment can compromise the build" >&5 printf "%s\n" "$as_me: error: changes in the environment can compromise the build" >&2;}- as_fn_error $? "run \`${MAKE-make} distclean' and/or \`rm $cache_file'+ as_fn_error $? "run '${MAKE-make} distclean' and/or 'rm $cache_file' and start over" "$LINENO" 5 fi ## -------------------- ##@@ -2428,8 +2449,8 @@ if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6-else $as_nop- if test -n "$CC"; then+else case e in #(+ e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR@@ -2451,7 +2472,8 @@ done IFS=$as_save_IFS -fi+fi ;;+esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then@@ -2473,8 +2495,8 @@ if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6-else $as_nop- if test -n "$ac_ct_CC"; then+else case e in #(+ e) 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@@ -2496,7 +2518,8 @@ done IFS=$as_save_IFS -fi+fi ;;+esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then@@ -2531,8 +2554,8 @@ if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6-else $as_nop- if test -n "$CC"; then+else case e in #(+ e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR@@ -2554,7 +2577,8 @@ done IFS=$as_save_IFS -fi+fi ;;+esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then@@ -2576,8 +2600,8 @@ if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6-else $as_nop- if test -n "$CC"; then+else case e in #(+ e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else ac_prog_rejected=no@@ -2616,7 +2640,8 @@ ac_cv_prog_CC="$as_dir$ac_word${1+' '}$@" fi fi-fi+fi ;;+esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then@@ -2640,8 +2665,8 @@ if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6-else $as_nop- if test -n "$CC"; then+else case e in #(+ e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR@@ -2663,7 +2688,8 @@ done IFS=$as_save_IFS -fi+fi ;;+esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then@@ -2689,8 +2715,8 @@ if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6-else $as_nop- if test -n "$ac_ct_CC"; then+else case e in #(+ e) 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@@ -2712,7 +2738,8 @@ done IFS=$as_save_IFS -fi+fi ;;+esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then@@ -2750,8 +2777,8 @@ if test ${ac_cv_prog_CC+y} then : printf %s "(cached) " >&6-else $as_nop- if test -n "$CC"; then+else case e in #(+ e) if test -n "$CC"; then ac_cv_prog_CC="$CC" # Let the user override the test. else as_save_IFS=$IFS; IFS=$PATH_SEPARATOR@@ -2773,7 +2800,8 @@ done IFS=$as_save_IFS -fi+fi ;;+esac fi CC=$ac_cv_prog_CC if test -n "$CC"; then@@ -2795,8 +2823,8 @@ if test ${ac_cv_prog_ac_ct_CC+y} then : printf %s "(cached) " >&6-else $as_nop- if test -n "$ac_ct_CC"; then+else case e in #(+ e) 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@@ -2818,7 +2846,8 @@ done IFS=$as_save_IFS -fi+fi ;;+esac fi ac_ct_CC=$ac_cv_prog_ac_ct_CC if test -n "$ac_ct_CC"; then@@ -2847,10 +2876,10 @@ fi -test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}+test -z "$CC" && { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "no acceptable C compiler found in \$PATH-See \`config.log' for more details" "$LINENO" 5; }+See 'config.log' for more details" "$LINENO" 5; } # Provide some information about the compiler. printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler version" >&5@@ -2922,8 +2951,8 @@ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 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'+ # 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.@@ -2943,7 +2972,7 @@ 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'+ # 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.@@ -2954,8 +2983,9 @@ done test "$ac_cv_exeext" = no && ac_cv_exeext= -else $as_nop- ac_file=''+else case e in #(+ e) ac_file='' ;;+esac fi if test -z "$ac_file" then :@@ -2964,13 +2994,14 @@ printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "C compiler cannot create executables-See \`config.log' for more details" "$LINENO" 5; }-else $as_nop- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5-printf "%s\n" "yes" >&6; }+See 'config.log' for more details" "$LINENO" 5; }+else case e in #(+ e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: yes" >&5+printf "%s\n" "yes" >&6; } ;;+esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for C compiler default output file name" >&5 printf %s "checking for C compiler default output file name... " >&6; }@@ -2994,10 +3025,10 @@ printf "%s\n" "$as_me:${as_lineno-$LINENO}: \$? = $ac_status" >&5 test $ac_status = 0; } 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'.+ # 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@@ -3007,11 +3038,12 @@ * ) break;; esac done-else $as_nop- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}+else case e in #(+ e) { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of executables: cannot compile and link-See \`config.log' for more details" "$LINENO" 5; }+See 'config.log' for more details" "$LINENO" 5; } ;;+esac fi rm -f conftest conftest$ac_cv_exeext { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_exeext" >&5@@ -3027,6 +3059,8 @@ main (void) { FILE *f = fopen ("conftest.out", "w");+ if (!f)+ return 1; return ferror (f) || fclose (f) != 0; ;@@ -3066,26 +3100,27 @@ if test "$cross_compiling" = maybe; then cross_compiling=yes else- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error 77 "cannot run C compiled programs.-If you meant to cross compile, use \`--host'.-See \`config.log' for more details" "$LINENO" 5; }+If you meant to cross compile, use '--host'.+See 'config.log' for more details" "$LINENO" 5; } fi fi fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $cross_compiling" >&5 printf "%s\n" "$cross_compiling" >&6; } -rm -f conftest.$ac_ext conftest$ac_cv_exeext conftest.out+rm -f conftest.$ac_ext conftest$ac_cv_exeext \+ conftest.o conftest.obj conftest.out ac_clean_files=$ac_clean_files_save { printf "%s\n" "$as_me:${as_lineno-$LINENO}: checking for suffix of object files" >&5 printf %s "checking for suffix of object files... " >&6; } if test ${ac_cv_objext+y} then : printf %s "(cached) " >&6-else $as_nop- cat confdefs.h - <<_ACEOF >conftest.$ac_ext+else case e in #(+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int@@ -3117,16 +3152,18 @@ break;; esac done-else $as_nop- printf "%s\n" "$as_me: failed program was:" >&5+else case e in #(+ e) printf "%s\n" "$as_me: failed program was:" >&5 sed 's/^/| /' conftest.$ac_ext >&5 -{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}+{ { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot compute suffix of object files: cannot compile-See \`config.log' for more details" "$LINENO" 5; }+See 'config.log' for more details" "$LINENO" 5; } ;;+esac fi-rm -f conftest.$ac_cv_objext conftest.$ac_ext+rm -f conftest.$ac_cv_objext conftest.$ac_ext ;;+esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_objext" >&5 printf "%s\n" "$ac_cv_objext" >&6; }@@ -3137,8 +3174,8 @@ if test ${ac_cv_c_compiler_gnu+y} then : printf %s "(cached) " >&6-else $as_nop- cat confdefs.h - <<_ACEOF >conftest.$ac_ext+else case e in #(+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ int@@ -3155,12 +3192,14 @@ if ac_fn_c_try_compile "$LINENO" then : ac_compiler_gnu=yes-else $as_nop- ac_compiler_gnu=no+else case e in #(+ e) ac_compiler_gnu=no ;;+esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ac_cv_c_compiler_gnu=$ac_compiler_gnu-+ ;;+esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_compiler_gnu" >&5 printf "%s\n" "$ac_cv_c_compiler_gnu" >&6; }@@ -3178,8 +3217,8 @@ if test ${ac_cv_prog_cc_g+y} then : printf %s "(cached) " >&6-else $as_nop- ac_save_c_werror_flag=$ac_c_werror_flag+else case e in #(+ e) ac_save_c_werror_flag=$ac_c_werror_flag ac_c_werror_flag=yes ac_cv_prog_cc_g=no CFLAGS="-g"@@ -3197,8 +3236,8 @@ if ac_fn_c_try_compile "$LINENO" then : ac_cv_prog_cc_g=yes-else $as_nop- CFLAGS=""+else case e in #(+ e) CFLAGS="" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ @@ -3213,8 +3252,8 @@ if ac_fn_c_try_compile "$LINENO" then : -else $as_nop- ac_c_werror_flag=$ac_save_c_werror_flag+else case e in #(+ e) ac_c_werror_flag=$ac_save_c_werror_flag CFLAGS="-g" cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */@@ -3231,12 +3270,15 @@ then : ac_cv_prog_cc_g=yes fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;+esac fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;+esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext- ac_c_werror_flag=$ac_save_c_werror_flag+ ac_c_werror_flag=$ac_save_c_werror_flag ;;+esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_g" >&5 printf "%s\n" "$ac_cv_prog_cc_g" >&6; }@@ -3263,8 +3305,8 @@ if test ${ac_cv_prog_cc_c11+y} then : printf %s "(cached) " >&6-else $as_nop- ac_cv_prog_cc_c11=no+else case e in #(+ e) ac_cv_prog_cc_c11=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */@@ -3281,25 +3323,28 @@ test "x$ac_cv_prog_cc_c11" != "xno" && break done rm -f conftest.$ac_ext-CC=$ac_save_CC+CC=$ac_save_CC ;;+esac fi if test "x$ac_cv_prog_cc_c11" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; }-else $as_nop- if test "x$ac_cv_prog_cc_c11" = x+else case e in #(+ e) if test "x$ac_cv_prog_cc_c11" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; }-else $as_nop- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5+else case e in #(+ e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c11" >&5 printf "%s\n" "$ac_cv_prog_cc_c11" >&6; }- CC="$CC $ac_cv_prog_cc_c11"+ CC="$CC $ac_cv_prog_cc_c11" ;;+esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c11- ac_prog_cc_stdc=c11+ ac_prog_cc_stdc=c11 ;;+esac fi fi if test x$ac_prog_cc_stdc = xno@@ -3309,8 +3354,8 @@ if test ${ac_cv_prog_cc_c99+y} then : printf %s "(cached) " >&6-else $as_nop- ac_cv_prog_cc_c99=no+else case e in #(+ e) ac_cv_prog_cc_c99=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */@@ -3327,25 +3372,28 @@ test "x$ac_cv_prog_cc_c99" != "xno" && break done rm -f conftest.$ac_ext-CC=$ac_save_CC+CC=$ac_save_CC ;;+esac fi if test "x$ac_cv_prog_cc_c99" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; }-else $as_nop- if test "x$ac_cv_prog_cc_c99" = x+else case e in #(+ e) if test "x$ac_cv_prog_cc_c99" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; }-else $as_nop- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5+else case e in #(+ e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c99" >&5 printf "%s\n" "$ac_cv_prog_cc_c99" >&6; }- CC="$CC $ac_cv_prog_cc_c99"+ CC="$CC $ac_cv_prog_cc_c99" ;;+esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c99- ac_prog_cc_stdc=c99+ ac_prog_cc_stdc=c99 ;;+esac fi fi if test x$ac_prog_cc_stdc = xno@@ -3355,8 +3403,8 @@ if test ${ac_cv_prog_cc_c89+y} then : printf %s "(cached) " >&6-else $as_nop- ac_cv_prog_cc_c89=no+else case e in #(+ e) ac_cv_prog_cc_c89=no ac_save_CC=$CC cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */@@ -3373,25 +3421,28 @@ test "x$ac_cv_prog_cc_c89" != "xno" && break done rm -f conftest.$ac_ext-CC=$ac_save_CC+CC=$ac_save_CC ;;+esac fi if test "x$ac_cv_prog_cc_c89" = xno then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: unsupported" >&5 printf "%s\n" "unsupported" >&6; }-else $as_nop- if test "x$ac_cv_prog_cc_c89" = x+else case e in #(+ e) if test "x$ac_cv_prog_cc_c89" = x then : { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: none needed" >&5 printf "%s\n" "none needed" >&6; }-else $as_nop- { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5+else case e in #(+ e) { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_prog_cc_c89" >&5 printf "%s\n" "$ac_cv_prog_cc_c89" >&6; }- CC="$CC $ac_cv_prog_cc_c89"+ CC="$CC $ac_cv_prog_cc_c89" ;;+esac fi ac_cv_prog_cc_stdc=$ac_cv_prog_cc_c89- ac_prog_cc_stdc=c89+ ac_prog_cc_stdc=c89 ;;+esac fi fi @@ -3484,8 +3535,8 @@ if test ${ac_cv_struct_tm+y} then : printf %s "(cached) " >&6-else $as_nop- cat confdefs.h - <<_ACEOF >conftest.$ac_ext+else case e in #(+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <sys/types.h> #include <time.h>@@ -3503,10 +3554,12 @@ if ac_fn_c_try_compile "$LINENO" then : ac_cv_struct_tm=time.h-else $as_nop- ac_cv_struct_tm=sys/time.h+else case e in #(+ e) ac_cv_struct_tm=sys/time.h ;;+esac fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;+esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_struct_tm" >&5 printf "%s\n" "$ac_cv_struct_tm" >&6; }@@ -3521,8 +3574,8 @@ if test ${ac_cv_c_undeclared_builtin_options+y} then : printf %s "(cached) " >&6-else $as_nop- ac_save_CFLAGS=$CFLAGS+else case e in #(+ e) ac_save_CFLAGS=$CFLAGS ac_cv_c_undeclared_builtin_options='cannot detect' for ac_arg in '' -fno-builtin; do CFLAGS="$ac_save_CFLAGS $ac_arg"@@ -3541,8 +3594,8 @@ if ac_fn_c_try_compile "$LINENO" then : -else $as_nop- # This test program should compile successfully.+else case e in #(+ e) # This test program should compile successfully. # No library function is consistently available on # freestanding implementations, so test against a dummy # declaration. Include always-available headers on the@@ -3570,26 +3623,29 @@ if test x"$ac_arg" = x then : ac_cv_c_undeclared_builtin_options='none needed'-else $as_nop- ac_cv_c_undeclared_builtin_options=$ac_arg+else case e in #(+ e) ac_cv_c_undeclared_builtin_options=$ac_arg ;;+esac fi break fi-rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext+rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext ;;+esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam conftest.$ac_ext done CFLAGS=$ac_save_CFLAGS-+ ;;+esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_c_undeclared_builtin_options" >&5 printf "%s\n" "$ac_cv_c_undeclared_builtin_options" >&6; } case $ac_cv_c_undeclared_builtin_options in #( 'cannot detect') :- { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in \`$ac_pwd':" >&5-printf "%s\n" "$as_me: error: in \`$ac_pwd':" >&2;}+ { { printf "%s\n" "$as_me:${as_lineno-$LINENO}: error: in '$ac_pwd':" >&5+printf "%s\n" "$as_me: error: in '$ac_pwd':" >&2;} as_fn_error $? "cannot make $CC report undeclared builtins-See \`config.log' for more details" "$LINENO" 5; } ;; #(+See 'config.log' for more details" "$LINENO" 5; } ;; #( 'none needed') : ac_c_undeclared_builtin_options='' ;; #( *) :@@ -3618,8 +3674,9 @@ if test "x$ac_cv_have_decl_tzname" = xyes then : ac_have_decl=1-else $as_nop- ac_have_decl=0+else case e in #(+ e) ac_have_decl=0 ;;+esac fi printf "%s\n" "#define HAVE_DECL_TZNAME $ac_have_decl" >>confdefs.h @@ -3628,8 +3685,8 @@ if test ${ac_cv_var_tzname+y} then : printf %s "(cached) " >&6-else $as_nop- cat confdefs.h - <<_ACEOF >conftest.$ac_ext+else case e in #(+ e) cat confdefs.h - <<_ACEOF >conftest.$ac_ext /* end confdefs.h. */ #include <time.h> #if !HAVE_DECL_TZNAME@@ -3647,11 +3704,13 @@ if ac_fn_c_try_link "$LINENO" then : ac_cv_var_tzname=yes-else $as_nop- ac_cv_var_tzname=no+else case e in #(+ e) ac_cv_var_tzname=no ;;+esac fi rm -f core conftest.err conftest.$ac_objext conftest.beam \- conftest$ac_exeext conftest.$ac_ext+ conftest$ac_exeext conftest.$ac_ext ;;+esac fi { printf "%s\n" "$as_me:${as_lineno-$LINENO}: result: $ac_cv_var_tzname" >&5 printf "%s\n" "$ac_cv_var_tzname" >&6; }@@ -3694,8 +3753,9 @@ if test "x$ac_cv_have_decl_altzone" = xyes then : ac_have_decl=1-else $as_nop- ac_have_decl=0+else case e in #(+ e) ac_have_decl=0 ;;+esac fi printf "%s\n" "#define HAVE_DECL_ALTZONE $ac_have_decl" >>confdefs.h @@ -3711,8 +3771,8 @@ # 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+# '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@@ -3742,14 +3802,14 @@ (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+ # '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.+ # 'set' quotes correctly as required by POSIX, so do not add quotes. sed -n "/^[_$as_cr_alnum]*_cv_[_$as_cr_alnum]*=/p" ;; esac |@@ -3839,7 +3899,6 @@ # Be more Bourne compatible DUALCASE=1; export DUALCASE # for MKS sh-as_nop=: if test ${ZSH_VERSION+y} && (emulate sh) >/dev/null 2>&1 then : emulate sh@@ -3848,12 +3907,13 @@ # is contrary to our usage. Disable this feature. alias -g '${1+"$@"}'='"$@"' setopt NO_GLOB_SUBST-else $as_nop- case `(set -o) 2>/dev/null` in #(+else case e in #(+ e) case `(set -o) 2>/dev/null` in #( *posix*) : set -o posix ;; #( *) : ;;+esac ;; esac fi @@ -3925,7 +3985,7 @@ ;; esac-# We did not find ourselves, most probably we were run as `sh COMMAND'+# 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@@ -3954,7 +4014,6 @@ } # as_fn_error - # as_fn_set_status STATUS # ----------------------- # Set $? to STATUS, without forking.@@ -3994,11 +4053,12 @@ { eval $1+=\$2 }'-else $as_nop- as_fn_append ()+else case e in #(+ e) as_fn_append () { eval $1=\$$1\$2- }+ } ;;+esac fi # as_fn_append # as_fn_arith ARG...@@ -4012,11 +4072,12 @@ { as_val=$(( $* )) }'-else $as_nop- as_fn_arith ()+else case e in #(+ e) as_fn_arith () { as_val=`expr "$@" || test $? -eq 1`- }+ } ;;+esac fi # as_fn_arith @@ -4099,9 +4160,9 @@ 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 -pR'.+ # 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 -pR'. ln -s conf$$.file conf$$.dir 2>/dev/null && test ! -f conf$$.exe || as_ln_s='cp -pR' elif ln conf$$.file conf$$ 2>/dev/null; then@@ -4182,10 +4243,12 @@ as_executable_p=as_fn_executable_p # 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'"+as_sed_cpp="y%*$as_cr_letters%P$as_cr_LETTERS%;s%[^_$as_cr_alnum]%_%g"+as_tr_cpp="eval sed '$as_sed_cpp'" # deprecated # Sed expression to map a string onto a valid variable name.-as_tr_sh="eval sed 'y%*+%pp%;s%[^_$as_cr_alnum]%_%g'"+as_sed_sh="y%*+%pp%;s%[^_$as_cr_alnum]%_%g"+as_tr_sh="eval sed '$as_sed_sh'" # deprecated exec 6>&1@@ -4201,7 +4264,7 @@ # values after options handling. ac_log=" This file was extended by Haskell old-time package $as_me 1.0, which was-generated by GNU Autoconf 2.71. Invocation command line was+generated by GNU Autoconf 2.72. Invocation command line was CONFIG_FILES = $CONFIG_FILES CONFIG_HEADERS = $CONFIG_HEADERS@@ -4228,7 +4291,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1 ac_cs_usage="\-\`$as_me' instantiates files and other configuration actions+'$as_me' instantiates files and other configuration actions from templates according to the current configuration. Unless the files and actions are specified as TAGs, all are instantiated by default. @@ -4256,10 +4319,10 @@ ac_cs_config='$ac_cs_config_escaped' ac_cs_version="\\ Haskell old-time package config.status 1.0-configured by $0, generated by GNU Autoconf 2.71,+configured by $0, generated by GNU Autoconf 2.72, with options \\"\$ac_cs_config\\" -Copyright (C) 2021 Free Software Foundation, Inc.+Copyright (C) 2023 Free Software Foundation, Inc. This config.status script is free software; the Free Software Foundation gives unlimited permission to copy, distribute and modify it." @@ -4310,8 +4373,8 @@ ac_need_defaults=false;; --he | --h) # Conflict between --help and --header- as_fn_error $? "ambiguous option: \`$1'-Try \`$0 --help' for more information.";;+ as_fn_error $? "ambiguous option: '$1'+Try '$0 --help' for more information.";; --help | --hel | -h ) printf "%s\n" "$ac_cs_usage"; exit ;; -q | -quiet | --quiet | --quie | --qui | --qu | --q \@@ -4319,8 +4382,8 @@ ac_cs_silent=: ;; # This is an error.- -*) as_fn_error $? "unrecognized option: \`$1'-Try \`$0 --help' for more information." ;;+ -*) as_fn_error $? "unrecognized option: '$1'+Try '$0 --help' for more information." ;; *) as_fn_append ac_config_targets " $1" ac_need_defaults=false ;;@@ -4370,7 +4433,7 @@ case $ac_config_target in "include/HsTimeConfig.h") CONFIG_HEADERS="$CONFIG_HEADERS include/HsTimeConfig.h" ;; - *) as_fn_error $? "invalid argument: \`$ac_config_target'" "$LINENO" 5;;+ *) as_fn_error $? "invalid argument: '$ac_config_target'" "$LINENO" 5;; esac done @@ -4388,7 +4451,7 @@ # 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'.+# after its creation but before its name has been assigned to '$tmp'. $debug || { tmp= ac_tmp=@@ -4412,13 +4475,13 @@ # 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'.+# This happens for instance with './config.status Makefile'. if test -n "$CONFIG_HEADERS"; then cat >"$ac_tmp/defines.awk" <<\_ACAWK || BEGIN { _ACEOF -# Transform confdefs.h into an awk script `defines.awk', embedded as+# 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. @@ -4528,7 +4591,7 @@ esac case $ac_mode$ac_tag in :[FHL]*:*);;- :L* | :C*:*) as_fn_error $? "invalid tag \`$ac_tag'" "$LINENO" 5;;+ :L* | :C*:*) as_fn_error $? "invalid tag '$ac_tag'" "$LINENO" 5;; :[FH]-) ac_tag=-:-;; :[FH]*) ac_tag=$ac_tag:$ac_tag.in;; esac@@ -4550,19 +4613,19 @@ -) ac_f="$ac_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 `:'.+ # 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_fn_error 1 "cannot find input file: \`$ac_f'" "$LINENO" 5;;+ as_fn_error 1 "cannot find input file: '$ac_f'" "$LINENO" 5;; esac case $ac_f in *\'*) ac_f=`printf "%s\n" "$ac_f" | sed "s/'/'\\\\\\\\''/g"`;; esac as_fn_append ac_file_inputs " '$ac_f'" done - # Let's still pretend it is `configure' which instantiates (i.e., don't+ # 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 '`
include/HsTimeConfig.h.in view
@@ -1,26 +1,26 @@ /* include/HsTimeConfig.h.in. Generated from configure.ac by autoheader. */ -/* Define to 1 if you have the declaration of `altzone', and to 0 if you+/* Define to 1 if you have the declaration of 'altzone', and to 0 if you don't. */ #undef HAVE_DECL_ALTZONE -/* Define to 1 if you have the declaration of `tzname', and to 0 if you don't.+/* Define to 1 if you have the declaration of 'tzname', and to 0 if you don't. */ #undef HAVE_DECL_TZNAME -/* Define to 1 if you have the `ftime' function. */+/* Define to 1 if you have the 'ftime' function. */ #undef HAVE_FTIME -/* Define to 1 if you have the `gettimeofday' function. */+/* Define to 1 if you have the 'gettimeofday' function. */ #undef HAVE_GETTIMEOFDAY -/* Define to 1 if you have the `gmtime_r' function. */+/* Define to 1 if you have the 'gmtime_r' function. */ #undef HAVE_GMTIME_R /* Define to 1 if you have the <inttypes.h> header file. */ #undef HAVE_INTTYPES_H -/* Define to 1 if you have the `localtime_r' function. */+/* Define to 1 if you have the 'localtime_r' function. */ #undef HAVE_LOCALTIME_R /* Define to 1 if you have the <stdint.h> header file. */@@ -38,7 +38,7 @@ /* Define to 1 if you have the <string.h> header file. */ #undef HAVE_STRING_H -/* Define to 1 if `tm_zone' is a member of `struct tm'. */+/* Define to 1 if 'tm_zone' is a member of 'struct tm'. */ #undef HAVE_STRUCT_TM_TM_ZONE /* Define to 1 if you have the <sys/stat.h> header file. */@@ -56,12 +56,12 @@ /* Define to 1 if you have the <time.h> header file. */ #undef HAVE_TIME_H -/* Define to 1 if your `struct tm' has `tm_zone'. Deprecated, use- `HAVE_STRUCT_TM_TM_ZONE' instead. */+/* Define to 1 if your 'struct tm' has 'tm_zone'. Deprecated, use+ 'HAVE_STRUCT_TM_TM_ZONE' instead. */ #undef HAVE_TM_ZONE -/* Define to 1 if you don't have `tm_zone' but do have the external array- `tzname'. */+/* Define to 1 if you don't have 'tm_zone' but do have the external array+ 'tzname'. */ #undef HAVE_TZNAME /* Define to 1 if you have the <unistd.h> header file. */@@ -85,7 +85,7 @@ /* Define to the version of this package. */ #undef PACKAGE_VERSION -/* Define to 1 if all of the C90 standard headers exist (not just the ones+/* Define to 1 if all of the C89 standard headers exist (not just the ones required in a freestanding environment). This macro is provided for backward compatibility; new code need not use it. */ #undef STDC_HEADERS@@ -94,5 +94,5 @@ macro is obsolete. */ #undef TIME_WITH_SYS_TIME -/* Define to 1 if your <sys/time.h> declares `struct tm'. */+/* Define to 1 if your <sys/time.h> declares 'struct tm'. */ #undef TM_IN_SYS_TIME
old-time.cabal view
@@ -1,7 +1,6 @@ cabal-version: 1.18 name: old-time-version: 1.1.0.5--- NOTE: Don't forget to update ./changelog.md+version: 1.1.1.0 license: BSD3 license-file: LICENSE maintainer: https://github.com/haskell/old-time@@ -10,11 +9,8 @@ category: System build-type: Configure description:- This package provides the old time library.- .- For new projects, the newer- <http://hackage.haskell.org/package/time time library>- is recommended.+ This is a legacy package, please migrate away to+ <http://hackage.haskell.org/package/time time> or elsewhere. tested-with: GHC == 9.14.1@@ -57,7 +53,7 @@ Library default-language: Haskell2010- other-extensions: Trustworthy+ other-extensions: Trustworthy CApiFFI exposed-modules: System.Time@@ -70,9 +66,22 @@ HsTime.h build-depends:- base >= 4.7 && < 5,+ base >= 4.8 && < 5, old-locale == 1.0.* build-tools: hsc2hs ghc-options: -Wall++test-suite old-time-tests+ type: exitcode-stdio-1.0+ default-language: Haskell2010+ ghc-options: -Wall+ main-is: Tests.hs+ hs-source-dirs: tests+ build-depends:+ base,+ old-locale < 2,+ old-time,+ tasty < 2,+ tasty-hunit < 1
+ tests/Tests.hs view
@@ -0,0 +1,78 @@+module Main (main) where++import System.Locale (defaultTimeLocale)+import System.Time+import Test.Tasty+import Test.Tasty.HUnit++main :: IO ()+main = defaultMain $ testGroup "All"+ [ testCase "T5430" t5430+ , testCase "time002" time002+ , testCase "time003" time003+ , testCase "time004" time004+ , testCase "issue18" issue18+ ]++t5430 :: Assertion+t5430 = do+ let clockTime = TOD 32400 0 -- 00:00:00 on 1 Jan 1970+ calTime <- toCalendarTime clockTime+ -- We check for 001 or 365 (timezone locale will determine which one)+ -- and output 001 for testing output consistently.+ let j = formatCalendarTime defaultTimeLocale "%j" calTime+ assertBool "Either 001 or 365" $+ j `elem` ["001", "365"]++time002 :: Assertion+time002 = do+ t <- getClockTime+ let clock = show t+ c <- toCalendarTime t+ let cal = calendarTimeToString c+ let t2 = toClockTime c+ clock2 = show t2+ assertEqual "calendarTimeToString . toCalendarTime = id" clock cal+ assertEqual "show . toClockTime . toCalendarTime = id" clock clock2++time003 :: Assertion+time003 = do+ time <- getClockTime+ assertBool "does show look plausible?" $+ plausible (show time)++ let (CalendarTime year month mday hour minute sec _psec+ wday _yday timezone _gmtoff _isdst) = toUTCTime time+ time2 = wdays !! fromEnum wday +++ (' ' : months !! fromEnum month) +++ (' ' : shows2 mday (' ' : shows2 hour (':' : shows2 minute (':' : shows2 sec+ (' ' : timezone ++ ' ' : shows year "\n")))))+ assertBool "does time2 look plausible?" $+ plausible time2++ where+ wdays = ["Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat"]+ months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",+ "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]+ shows2 x = showString (pad2 x)+ pad2 x = case show x of+ c@[_] -> '0' : c+ cs -> cs++ plausible str = filter (== ':') str == "::"++time004 :: Assertion+time004 = do+ time <- getClockTime+ let (CalendarTime year month mday hour minute sec psec+ wday yday timezone gmtoff isdst) = toUTCTime time+ time' = toClockTime (CalendarTime (year - 1) month mday hour minute sec psec+ wday yday timezone gmtoff isdst)+ assertEqual "should have same length"+ (length (show time)) (length (show time'))++issue18 :: Assertion+issue18 = do+ let c = TOD ((19078*24+2)*3600+1357) 0+ assertEqual "noTimeDiff should not make a diff"+ c (addToClockTime noTimeDiff c)