You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@stdcxx.apache.org by Martin Sebor <se...@roguewave.com> on 2008/02/21 18:44:13 UTC
Re: svn commit: r629825 - in /stdcxx/trunk/etc/config/src: FLOAT.cpp
LDBL_PRINTF_PREFIX.cpp float_defs.h
faridz@apache.org wrote:
> Author: faridz
> Date: Thu Feb 21 07:33:55 2008
> New Revision: 629825
>
> URL: http://svn.apache.org/viewvc?rev=629825&view=rev
> Log:
> 2008-02-21 Farid Zaripov <fa...@epam.com>
>
> * etc/config/src/float_defs.h: New file with a definitions
> of the floating point constants.
> * etc/config/src/FLOAT.cpp: #including the "float_defs.h"
> instead of defining the floating point constants in file.
> * etc/config/src/LDBL_PRINTF_PREFIX.cpp: Ditto.
>
> Added:
> stdcxx/trunk/etc/config/src/float_defs.h (with props)
> Modified:
> stdcxx/trunk/etc/config/src/FLOAT.cpp
> stdcxx/trunk/etc/config/src/LDBL_PRINTF_PREFIX.cpp
>
> Modified: stdcxx/trunk/etc/config/src/FLOAT.cpp
> URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/FLOAT.cpp?rev=629825&r1=629824&r2=629825&view=diff
> ==============================================================================
> --- stdcxx/trunk/etc/config/src/FLOAT.cpp (original)
> +++ stdcxx/trunk/etc/config/src/FLOAT.cpp Thu Feb 21 07:33:55 2008
> @@ -30,10 +30,10 @@
> #include "config.h"
>
> enum {
> - // the enumerators belo are expected to be hidden by macros #defined
> - // in the <float.h> header #included below; references to macros that
> - // are not #defined in the header will silently use these enumerators
> - // and prevent compilation errors that would result otherwise
> + // the enumerators below are expected to be hidden by macros #defined
> + // in the "float_defs.h" header #included below;
^^^^^^^^^^^^
FYI: In the general case, we do expect the enums to be hidden by
the macros defined in <float.h>. It's only when the macros aren't
#defined there that the enums should be picked up. The exception
is platforms where we can't compile <float.h> and for which we
define the FLT_XXX, DBL_XXX, and LDBL_XXX macros ourselves.
Martin
> references to macros
> + // that are not #defined in the header will silently use these
> + // enumerators and prevent compilation errors that would result otherwise
> DBL_DIG = 15, // default
> DBL_MANT_DIG = 53,
> DBL_MAX_10_EXP = 308,
> @@ -62,99 +62,7 @@
> #include <stdio.h> // for printf()
> #include <stdlib.h> // for strtod()
>
> -#ifndef _RWSTD_NO_FLOAT_H
> -# include <float.h>
> -
> -# if defined (__EDG__) && !defined (__INTEL_COMPILER)
> - // define gcc 4 intrinsics otherwise not recognized
> - // by the front end
> -# define __FLT_DIG__ 6
> -# define __FLT_EPSILON__ 1.19209290e-7F
> -# define __FLT_MANT_DIG__ 24
> -# define __FLT_MAX__ 3.40282347e+38F
> -# define __FLT_MAX_10_EXP__ 38
> -# define __FLT_MAX_EXP__ 128
> -# define __FLT_MIN__ 1.17549435e-38F
> -# define __FLT_MIN_10_EXP__ -37
> -# define __FLT_MIN_EXP__ -125
> -# define __FLT_RADIX__ 2
> -
> -# define __DBL_DIG__ 15
> -# define __DBL_EPSILON__ 2.2204460492503131e-16
> -# define __DBL_MANT_DIG__ 53
> -# define __DBL_MAX__ 1.7976931348623157e+308
> -# define __DBL_MAX_10_EXP__ 308
> -# define __DBL_MAX_EXP__ 1024
> -# define __DBL_MIN__ 2.2250738585072014e-308
> -# define __DBL_MIN_10_EXP__ -307
> -# define __DBL_MIN_EXP__ -1021
> -
> -# define __LDBL_DIG__ 18
> -# define __LDBL_EPSILON__ 1.08420217248550443401e-19L
> -# define __LDBL_MANT_DIG__ 64
> -# define __LDBL_MAX__ 1.18973149535723176502e+4932L
> -# define __LDBL_MAX_10_EXP__ 4932
> -# define __LDBL_MAX_EXP__ 16384
> -# define __LDBL_MIN__ 3.36210314311209350626e-4932L
> -# define __LDBL_MIN_10_EXP__ -4931
> -# define __LDBL_MIN_EXP__ -16381
> -
> - // Linux value
> -# define _RWSTD_FLT_ROUNDS 1 /* round to nearest */
> -
> -# if __GNUC__ < 4
> -
> - // prevent the propriterary gcc __extension__ from
> - // throwing the vanilla EDG demo for a loop
> -
> -# undef LDBL_EPSILON
> -# undef LDBL_MIN
> -# undef LDBL_MAX
> -
> - // redefine to prevent compilation errors
> -# define LDBL_EPSILON 1.0842021724855044e-19L
> -# define LDBL_MIN 3.3621031431120935e-4932L
> -# define LDBL_MAX 1.1897314953572317e+4932L
> -# endif //gcc 3 (as the back end for eccp)
> -# endif // EDG eccp vanilla front end
> -#else // if defined (_RWSTD_NO_FLOAT_H)
> - // assume IEEE 754 floating point
> - // FIXME: autodetect floating point format
> -# define FLT_DIG 6
> -# define FLT_EPSILON 1.19209290e-7F
> -# define FLT_MANT_DIG 24
> -# define FLT_MAX 3.40282347e+38F
> -# define FLT_MAX_10_EXP 38
> -# define FLT_MAX_EXP 128
> -# define FLT_MIN 1.17549435e-38F
> -# define FLT_MIN_10_EXP -37
> -# define FLT_MIN_EXP -125
> -# define FLT_RADIX 2
> -
> -# define DBL_DIG 15
> -# define DBL_EPSILON 2.2204460492503131e-16
> -# define DBL_MANT_DIG 53
> -# define DBL_MAX 1.7976931348623157e+308
> -# define DBL_MAX_10_EXP 308
> -# define DBL_MAX_EXP 1024
> -# define DBL_MIN 2.2250738585072014e-308
> -# define DBL_MIN_10_EXP -307
> -# define DBL_MIN_EXP -1021
> -
> -# define LDBL_DIG 18
> -# define LDBL_EPSILON 1.08420217248550443401e-19L
> -# define LDBL_MANT_DIG 64
> -# define LDBL_MAX 1.18973149535723176502e+4932L
> -# define LDBL_MAX_10_EXP 4932
> -# define LDBL_MAX_EXP 16384
> -# define LDBL_MIN 3.36210314311209350626e-4932L
> -# define LDBL_MIN_10_EXP -4931
> -# define LDBL_MIN_EXP -16381
> -
> - // Linux value
> -# define _RWSTD_FLT_ROUNDS 1 /* round to nearest */
> -#endif // _RWSTD_NO_FLOAT_H
> -
> +#include "float_defs.h" // for FLT_XXX, DBL_XXX, LDBL_XXX constants
>
> #ifndef _RWSTD_NO_LIBC_EXCEPTION_SPEC
> # define LIBC_THROWS() throw ()
>
> Modified: stdcxx/trunk/etc/config/src/LDBL_PRINTF_PREFIX.cpp
> URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/LDBL_PRINTF_PREFIX.cpp?rev=629825&r1=629824&r2=629825&view=diff
> ==============================================================================
> --- stdcxx/trunk/etc/config/src/LDBL_PRINTF_PREFIX.cpp (original)
> +++ stdcxx/trunk/etc/config/src/LDBL_PRINTF_PREFIX.cpp Thu Feb 21 07:33:55 2008
> @@ -25,24 +25,7 @@
> #include <stdio.h>
>
> #include "config.h"
> -
> -#ifndef _RWSTD_NO_FLOAT_H
> -# include <float.h>
> -
> -# if defined (__EDG__) && defined (__linux__)
> -
> - // gcc on Linux #defines these using its own propriterary __extension__
> -# undef LDBL_EPSILON
> -# undef LDBL_MIN
> -# undef LDBL_MAX
> -
> - // redefine to prevent compilation errors
> -# define LDBL_EPSILON 1.0842021724855044e-19L
> -# define LDBL_MIN 3.3621031431120935e-4932L
> -# define LDBL_MAX 1.1897314953572317e+4932L
> -# endif // defined (__EDG__) && defined (__linux__)
> -
> -#endif // _RWSTD_NO_FLOAT_H
> +#include "float_defs.h" // for LDBL_XXX constants
>
>
> // avoid having to #include <string.h>
>
> Added: stdcxx/trunk/etc/config/src/float_defs.h
> URL: http://svn.apache.org/viewvc/stdcxx/trunk/etc/config/src/float_defs.h?rev=629825&view=auto
> ==============================================================================
> --- stdcxx/trunk/etc/config/src/float_defs.h (added)
> +++ stdcxx/trunk/etc/config/src/float_defs.h Thu Feb 21 07:33:55 2008
> @@ -0,0 +1,118 @@
> +// definitions of the floating point constants
> +
> +/***************************************************************************
> + *
> + * Licensed to the Apache Software Foundation (ASF) under one or more
> + * contributor license agreements. See the NOTICE file distributed
> + * with this work for additional information regarding copyright
> + * ownership. The ASF licenses this file to you under the Apache
> + * License, Version 2.0 (the License); you may not use this file
> + * except in compliance with the License. You may obtain a copy of
> + * the License at
> + *
> + * http://www.apache.org/licenses/LICENSE-2.0
> + *
> + * Unless required by applicable law or agreed to in writing, software
> + * distributed under the License is distributed on an "AS IS" BASIS,
> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> + * implied. See the License for the specific language governing
> + * permissions and limitations under the License.
> + *
> + * Copyright 1999-2008 Rogue Wave Software, Inc.
> + *
> + **************************************************************************/
> +
> +// this file must be included only after the config.h
> +
> +#ifndef _RWSTD_NO_FLOAT_H
> +# include <float.h>
> +
> +# if defined (__EDG__) && !defined (__INTEL_COMPILER)
> + // define gcc 4 intrinsics otherwise not recognized
> + // by the front end
> +# define __FLT_DIG__ 6
> +# define __FLT_EPSILON__ 1.19209290e-7F
> +# define __FLT_MANT_DIG__ 24
> +# define __FLT_MAX__ 3.40282347e+38F
> +# define __FLT_MAX_10_EXP__ 38
> +# define __FLT_MAX_EXP__ 128
> +# define __FLT_MIN__ 1.17549435e-38F
> +# define __FLT_MIN_10_EXP__ -37
> +# define __FLT_MIN_EXP__ -125
> +# define __FLT_RADIX__ 2
> +
> +# define __DBL_DIG__ 15
> +# define __DBL_EPSILON__ 2.2204460492503131e-16
> +# define __DBL_MANT_DIG__ 53
> +# define __DBL_MAX__ 1.7976931348623157e+308
> +# define __DBL_MAX_10_EXP__ 308
> +# define __DBL_MAX_EXP__ 1024
> +# define __DBL_MIN__ 2.2250738585072014e-308
> +# define __DBL_MIN_10_EXP__ -307
> +# define __DBL_MIN_EXP__ -1021
> +
> +# define __LDBL_DIG__ 18
> +# define __LDBL_EPSILON__ 1.08420217248550443401e-19L
> +# define __LDBL_MANT_DIG__ 64
> +# define __LDBL_MAX__ 1.18973149535723176502e+4932L
> +# define __LDBL_MAX_10_EXP__ 4932
> +# define __LDBL_MAX_EXP__ 16384
> +# define __LDBL_MIN__ 3.36210314311209350626e-4932L
> +# define __LDBL_MIN_10_EXP__ -4931
> +# define __LDBL_MIN_EXP__ -16381
> +
> + // Linux value
> +# define _RWSTD_FLT_ROUNDS 1 /* round to nearest */
> +
> +# if __GNUC__ < 4
> +
> + // prevent the propriterary gcc __extension__ from
> + // throwing the vanilla EDG demo for a loop
> +
> +# undef LDBL_EPSILON
> +# undef LDBL_MIN
> +# undef LDBL_MAX
> +
> + // redefine to prevent compilation errors
> +# define LDBL_EPSILON 1.0842021724855044e-19L
> +# define LDBL_MIN 3.3621031431120935e-4932L
> +# define LDBL_MAX 1.1897314953572317e+4932L
> +# endif //gcc 3 (as the back end for eccp)
> +# endif // EDG eccp vanilla front end
> +#else // if defined (_RWSTD_NO_FLOAT_H)
> + // assume IEEE 754 floating point
> + // FIXME: autodetect floating point format
> +# define FLT_DIG 6
> +# define FLT_EPSILON 1.19209290e-7F
> +# define FLT_MANT_DIG 24
> +# define FLT_MAX 3.40282347e+38F
> +# define FLT_MAX_10_EXP 38
> +# define FLT_MAX_EXP 128
> +# define FLT_MIN 1.17549435e-38F
> +# define FLT_MIN_10_EXP -37
> +# define FLT_MIN_EXP -125
> +# define FLT_RADIX 2
> +
> +# define DBL_DIG 15
> +# define DBL_EPSILON 2.2204460492503131e-16
> +# define DBL_MANT_DIG 53
> +# define DBL_MAX 1.7976931348623157e+308
> +# define DBL_MAX_10_EXP 308
> +# define DBL_MAX_EXP 1024
> +# define DBL_MIN 2.2250738585072014e-308
> +# define DBL_MIN_10_EXP -307
> +# define DBL_MIN_EXP -1021
> +
> +# define LDBL_DIG 18
> +# define LDBL_EPSILON 1.08420217248550443401e-19L
> +# define LDBL_MANT_DIG 64
> +# define LDBL_MAX 1.18973149535723176502e+4932L
> +# define LDBL_MAX_10_EXP 4932
> +# define LDBL_MAX_EXP 16384
> +# define LDBL_MIN 3.36210314311209350626e-4932L
> +# define LDBL_MIN_10_EXP -4931
> +# define LDBL_MIN_EXP -16381
> +
> + // Linux value
> +# define _RWSTD_FLT_ROUNDS 1 /* round to nearest */
> +#endif // _RWSTD_NO_FLOAT_H
>
> Propchange: stdcxx/trunk/etc/config/src/float_defs.h
> ------------------------------------------------------------------------------
> svn:eol-style = native
>
> Propchange: stdcxx/trunk/etc/config/src/float_defs.h
> ------------------------------------------------------------------------------
> svn:keywords = Id
>
>
>