BZDEV: TenDRA compiler

From: Alexander Samoilov (spike@Gambit.Msk.SU)
Date: Fri Apr 10 1998 - 10:27:05 EST


(Also forwarded from the blitz list. -- Todd)

From: Alexander Samoilov <spike@Gambit.Msk.SU>
Subject: Re: BLITZ: New version: blitz-980404

Hi Todd,

Thank you for keep me informed.

The newest blitz compiles ok with the latest egcs snapshot on linux.

Recently I've downloaded the latest TenDRA -- 4.1.2. and
build it on Solaris 2.5.1.

Below is the config.h, generated by your bzconfig and logfile,

please note that elabbase.cpp compiles only with warning and
BZ_TEMPLATE_QUALIFIED_BASE_CLASS should be defined,
I think, that tcc (TenDRA compiler driver) returns nonzero value
to environment if encountered any warnings.

Best regards
Alexander Samoilov

/******************************************************************************
 * config.h Compiler language support flags
 *
 * This file was generated automatically by the script bzconfig.
 * You should rerun bzconfig each time you switch compilers, install new
 * standard libraries, or change compiler versions.
 *
 */

 
#ifndef BZ_CONFIG_H
#define BZ_CONFIG_H
 
#define BZ_COMPILER_NAME "tcc"
#define BZ_COMPILER_OPTIONS "-Yc++ -sC:cpp"
#define BZ_OS_NAME "SunOS 5.5.1"
#define BZ_BZCONFIG_DATE "Thu Apr 9 12:45:21 MSD 1998"
 
#define BZ_NAMESPACES
#define BZ_EXCEPTIONS
#define BZ_RTTI
#define BZ_MEMBER_CONSTANTS
#undef BZ_OLD_FOR_SCOPING
#define BZ_EXPLICIT
#define BZ_MUTABLE
#define BZ_TYPENAME
#undef BZ_NCEG_RESTRICT
#define BZ_BOOL
#define BZ_CONST_CAST
#define BZ_STATIC_CAST
#define BZ_REINTERPRET_CAST
#define BZ_DYNAMIC_CAST
#define BZ_TEMPLATES
#define BZ_PARTIAL_SPECIALIZATION
#define BZ_PARTIAL_ORDERING
#define BZ_DEFAULT_TEMPLATE_PARAMETERS
#define BZ_MEMBER_TEMPLATES
#undef BZ_MEMBER_TEMPLATES_OUTSIDE_CLASS
#define BZ_FULL_SPECIALIZATION_SYNTAX
#define BZ_FUNCTION_NONTYPE_PARAMETERS
#undef BZ_TEMPLATE_QUALIFIED_BASE_CLASS
#undef BZ_TEMPLATE_QUALIFIED_RETURN_TYPE
#define BZ_EXPLICIT_TEMPLATE_FUNCTION_QUALIFICATION
#define BZ_TEMPLATES_AS_TEMPLATE_ARGUMENTS
#define BZ_TEMPLATE_KEYWORD_QUALIFIER
#undef BZ_TEMPLATE_SCOPED_ARGUMENT_MATCHING
#define BZ_TYPE_PROMOTION
#define BZ_USE_NUMTRAIT
#undef BZ_HAVE_COMPLEX
#undef BZ_HAVE_NUMERIC_LIMITS
#undef BZ_HAVE_VALARRAY
#undef BZ_HAVE_COMPLEX_MATH
#undef BZ_HAVE_IEEE_MATH
#undef BZ_HAVE_SYSTEM_V_MATH
#undef BZ_HAVE_STD
#undef BZ_HAVE_RUSAGE
#undef BZ_ENUM_COMPUTATIONS
 
#endif // BZ_CONFIG_H

----------------------------
logfile:
 
 
 
Does your compiler implement namespaces?
tcc -Yc++ -sC:cpp ./namespac.cpp
Success: BZ_NAMESPACES
 
 
 
What about exceptions?
tcc -Yc++ -sC:cpp ./except.cpp
Success: BZ_EXCEPTIONS
 
 
 
Run-Time Type Identification?
tcc -Yc++ -sC:cpp ./rtti.cpp
Success: BZ_RTTI
 
 
 
Member constants?
tcc -Yc++ -sC:cpp ./membcnst.cpp
Success: BZ_MEMBER_CONSTANTS
 
 
 
Does your compiler cling to the old 'for' scoping rules?
tcc -Yc++ -sC:cpp ./oldfor.cpp
"bzjunk.cpp", line 12: Error:
  [ISO 3.4.1]: The identifier 'i' hasn't been declared in this scope.

Failed: BZ_OLD_FOR_SCOPING
 
 
 
How about the 'explicit' keyword?
tcc -Yc++ -sC:cpp ./explicit.cpp
Success: BZ_EXPLICIT
 
 
 
What about the 'mutable' keyword?
tcc -Yc++ -sC:cpp ./mutable.cpp
Success: BZ_MUTABLE
 
 
 
Does your compiler recognize 'typename'?
tcc -Yc++ -sC:cpp ./typename.cpp
Success: BZ_TYPENAME
 
 
 
Just on the off chance... the NCEG 'restrict' keyword?
tcc -Yc++ -sC:cpp ./restrict.cpp
"bzjunk.cpp", line 6: Error:
  [Syntax]: Parse error before 'a'.
  [Syntax]: Can't recover from this error.

Failed: BZ_NCEG_RESTRICT
 
 
 
Does it recognize bool as a built-in type?
tcc -Yc++ -sC:cpp ./bool.cpp
Success: BZ_BOOL
 
 
 
What about const_cast<>?
tcc -Yc++ -sC:cpp ./constcst.cpp
Success: BZ_CONST_CAST
 
 
 
static_cast<>?
tcc -Yc++ -sC:cpp ./statcast.cpp
Success: BZ_STATIC_CAST
 
 
 
reinterpret_cast<>?
tcc -Yc++ -sC:cpp ./reinterp.cpp
Success: BZ_REINTERPRET_CAST
 
 
 
dynamic_cast<>?
tcc -Yc++ -sC:cpp ./dynamic.cpp
Success: BZ_DYNAMIC_CAST
 
 
 
Will it handle basic templates? (If not, just give up now.)
tcc -Yc++ -sC:cpp ./template.cpp
Success: BZ_TEMPLATES
 
 
 
Partial specialization?
tcc -Yc++ -sC:cpp ./partial.cpp
Success: BZ_PARTIAL_SPECIALIZATION
 
 
 
Partial ordering?
tcc -Yc++ -sC:cpp ./porder.cpp
Success: BZ_PARTIAL_ORDERING
 
 
 
Default template parameters?
tcc -Yc++ -sC:cpp ./default.cpp
Success: BZ_DEFAULT_TEMPLATE_PARAMETERS
 
 
 
Member templates?
tcc -Yc++ -sC:cpp ./membtmpl.cpp
Success: BZ_MEMBER_TEMPLATES
 
 
 
Member templates outside the class declaration?
tcc -Yc++ -sC:cpp ./membtmp2.cpp
"bzjunk.cpp", line 10: Error:
  [ISO 14.7.1]: In instantiation of template 'Foo < T, N2 >' (at line 15).
  [Token]: Token 'T' defined recursively.

Failed: BZ_MEMBER_TEMPLATES_OUTSIDE_CLASS
 
 
 
Does it recognize the full specialization syntax?
tcc -Yc++ -sC:cpp ./fullspec.cpp
Success: BZ_FULL_SPECIALIZATION_SYNTAX
 
 
 
Function templates with non-type parameters?
tcc -Yc++ -sC:cpp ./nontype.cpp
Success: BZ_FUNCTION_NONTYPE_PARAMETERS
 
 
 
Template-qualified base class specifiers?
tcc -Yc++ -sC:cpp ./elabbase.cpp
"bzjunk.cpp", line 26: Warning:
  [ISO 14.7]: 'template <>' required in template specialization.

Failed: BZ_TEMPLATE_QUALIFIED_BASE_CLASS
 
 
 
Template-qualified return types (necessary for vector type promotion)?
tcc -Yc++ -sC:cpp ./elabret.cpp
"bzjunk.cpp", line 14: Warning:
  [ISO 14.7]: 'template <>' required in template specialization.

"bzjunk.cpp", line 34: Error:
  [ISO 8.5]: In initialization of 'z'.
  [ISO 5.4]: Illegal conversion from type 'Vector < int >' to type 'Vector < float >'.
  [ISO 8.5]: Can't perform this conversion by initialization.

Failed: BZ_TEMPLATE_QUALIFIED_RETURN_TYPE
 
 
 
Explicit template function qualification?
tcc -Yc++ -sC:cpp ./tempqual.cpp
Success: BZ_EXPLICIT_TEMPLATE_FUNCTION_QUALIFICATION
 
 
 
Templates as template arguments?
tcc -Yc++ -sC:cpp ./temptemp.cpp
Success: BZ_TEMPLATES_AS_TEMPLATE_ARGUMENTS
 
 
 
Use of the template keyword as a qualifier?
tcc -Yc++ -sC:cpp ./tempkey.cpp
Success: BZ_TEMPLATE_KEYWORD_QUALIFIER
 
 
 
Function matching with argument types which are template scope-qualified?
tcc -Yc++ -sC:cpp ./tempqmt.cpp
"bzjunk.cpp", line 25: Error:
  [ISO 5.7]: Can't perform binary '+' on operands of types 'B < A < float > >' and 'float'.

Failed: BZ_TEMPLATE_SCOPED_ARGUMENT_MATCHING
 
 
 
Will it support the vector type promotion mechanism?
tcc -Yc++ -sC:cpp ./promote.cpp
Success: BZ_TYPE_PROMOTION
 
 
 
Numeric traits promotions (sum type, etc.)?
tcc -Yc++ -sC:cpp ./numtrait.cpp
Success: BZ_USE_NUMTRAIT
 
 
 
Does it have complex<T>?
tcc -Yc++ -sC:cpp ./complex.cpp
"/home/spike/lib/TenDRA/lib/include/cpp.api/complex", line 15: Error:
  [ISO 16.5]: <complex> not yet implemented.

"bzjunk.cpp", line 9: Error:
  [Syntax]: Parse error before '>'.
  [Syntax]: Can't recover from this error.

Failed: BZ_HAVE_COMPLEX
 
 
 
Does it have numeric_limits<T>?
tcc -Yc++ -sC:cpp ./numlimit.cpp
"/home/spike/lib/TenDRA/lib/include/cpp.api/limits", line 15: Error:
  [ISO 16.5]: <limits> not yet implemented.

"bzjunk.cpp", line 9: Error:
  [Syntax]: Parse error before '>'.
  [Syntax]: Can't recover from this error.

Failed: BZ_HAVE_NUMERIC_LIMITS
 
 
 
Does it have valarray<T>?
tcc -Yc++ -sC:cpp ./valarray.cpp
"/home/spike/lib/TenDRA/lib/include/cpp.api/valarray", line 15: Error:
  [ISO 16.5]: <valarray> not yet implemented.

"bzjunk.cpp", line 9: Error:
  [Syntax]: Parse error before '>'.
  [Syntax]: Can't recover from this error.

Failed: BZ_HAVE_VALARRAY
 
 
 
Complex math functions?
tcc -Yc++ -sC:cpp ./compmath.cpp
"/home/spike/lib/TenDRA/lib/include/cpp.api/complex", line 15: Error:
  [ISO 16.5]: <complex> not yet implemented.

"bzjunk.cpp", line 9: Error:
  [Syntax]: Parse error before '>'.
  [Syntax]: Can't recover from this error.

Failed: BZ_HAVE_COMPLEX_MATH
 
 
 
IEEE Math library?
tcc -Yc++ -sC:cpp ./ieeemath.cpp
"bzjunk.cpp", line 20: Error:
  [ISO 3.4.1]: The identifier 'acosh' hasn't been declared in this scope.

"bzjunk.cpp", line 21: Error:
  [ISO 3.4.1]: The identifier 'asinh' hasn't been declared in this scope.

"bzjunk.cpp", line 22: Error:
  [ISO 3.4.1]: The identifier 'atanh' hasn't been declared in this scope.

"bzjunk.cpp", line 23: Error:
  [ISO 3.4.1]: The identifier 'expm1' hasn't been declared in this scope.

"bzjunk.cpp", line 24: Error:
  [ISO 3.4.1]: The identifier 'erf' hasn't been declared in this scope.

"bzjunk.cpp", line 25: Error:
  [ISO 3.4.1]: The identifier 'erfc' hasn't been declared in this scope.

"bzjunk.cpp", line 26: Error:
  [ISO 3.4.1]: The identifier 'finite' hasn't been declared in this scope.

"bzjunk.cpp", line 27: Error:
  [ISO 3.4.1]: The identifier 'isnan' hasn't been declared in this scope.

"bzjunk.cpp", line 28: Error:
  [ISO 3.4.1]: The identifier 'j0' hasn't been declared in this scope.

"bzjunk.cpp", line 29: Error:
  [ISO 3.4.1]: The identifier 'j1' hasn't been declared in this scope.

"bzjunk.cpp", line 30: Error:
  [ISO 3.4.1]: The identifier 'lgamma' hasn't been declared in this scope.

"bzjunk.cpp", line 31: Error:
  [ISO 3.4.1]: The identifier 'logb' hasn't been declared in this scope.

"bzjunk.cpp", line 32: Error:
  [ISO 3.4.1]: The identifier 'log1p' hasn't been declared in this scope.

"bzjunk.cpp", line 33: Error:
  [ISO 3.4.1]: The identifier 'rint' hasn't been declared in this scope.

"bzjunk.cpp", line 34: Error:
  [ISO 3.4.1]: The identifier 'trunc' hasn't been declared in this scope.

"bzjunk.cpp", line 35: Error:
  [ISO 3.4.1]: The identifier 'y0' hasn't been declared in this scope.

"bzjunk.cpp", line 36: Error:
  [ISO 3.4.1]: The identifier 'y1' hasn't been declared in this scope.

Failed: BZ_HAVE_IEEE_MATH
 
 
 
System V Math library?
tcc -Yc++ -sC:cpp ./sysvmath.cpp
"bzjunk.cpp", line 20: Error:
  [ISO 3.4.1]: The identifier '_class' hasn't been declared in this scope.

"bzjunk.cpp", line 21: Error:
  [ISO 3.4.1]: The identifier 'ilogb' hasn't been declared in this scope.

"bzjunk.cpp", line 22: Error:
  [ISO 3.4.1]: The identifier 'itrunc' hasn't been declared in this scope.

"bzjunk.cpp", line 23: Error:
  [ISO 3.4.1]: The identifier 'nearest' hasn't been declared in this scope.

"bzjunk.cpp", line 24: Error:
  [ISO 3.4.1]: The identifier 'rsqrt' hasn't been declared in this scope.

"bzjunk.cpp", line 25: Error:
  [ISO 3.4.1]: The identifier 'uitrunc' hasn't been declared in this scope.

Failed: BZ_HAVE_SYSTEM_V_MATH
 
 
 
ISO C++ Standard library?
tcc -Yc++ -sC:cpp ./std.cpp
"/home/spike/lib/TenDRA/lib/include/cpp.api/iostream", line 15: Error:
  [ISO 16.5]: <iostream> not yet implemented.

"/home/spike/lib/TenDRA/lib/include/cpp.api/map", line 15: Error:
  [ISO 16.5]: <map> not yet implemented.

"/home/spike/lib/TenDRA/lib/include/cpp.api/iomanip", line 15: Error:
  [ISO 16.5]: <iomanip> not yet implemented.

Failed: BZ_HAVE_STD
 
 
 
What about getrusage()?
tcc -Yc++ -sC:cpp ./getruse.cpp
"bzjunk.cpp", line 13: Error:
  [ISO 16.2]: Can't open included file, 'sys/resource.h'.

"bzjunk.cpp", line 17: Error:
  [ISO 3.9]: The type 'rusage' is incomplete.
  [ISO 3.9]: An incomplete type is not a complete object type.
  [ISO 3.9]: The defined object 'resourceUsage' must have complete object type.

"bzjunk.cpp", line 18: Error:
  [ISO 3.4.1]: The identifier 'RUSAGE_SELF' hasn't been declared in this scope.

"bzjunk.cpp", line 18: Error:
  [ISO 3.4.1]: The identifier 'getrusage' hasn't been declared in this scope.

Failed: BZ_HAVE_RUSAGE
 
 
 
Can your compiler handle computations inside an enum?
tcc -Yc++ -sC:cpp ./enumcomp.cpp
"bzjunk.cpp", line 21: Error:
  [ISO 5.10]: Can't perform '==' on operands of types '<type>' and 'int'.

"bzjunk.cpp", line 21: Error:
  [ISO 5.10]: Can't perform '==' on operands of types '<type>' and 'int'.

"bzjunk.cpp", line 21: Error:
  [ISO 5.10]: Can't perform '==' on operands of types '<type>' and 'int'.

Failed: BZ_ENUM_COMPUTATIONS

--------------------- blitz-dev list --------------------------------
* To subscribe/unsubscribe: mail to majordomo@oonumerics.org, with
"subscribe blitz-dev" or "unsubscribe blitz-dev" in the body of the message
* Blitz++ web page: http://oonumerics.org/blitz/



This archive was generated by hypermail 2b29 : Wed Feb 20 2002 - 04:30:03 EST