From: Matthias Troyer (troyer_at_[hidden])
Date: 2003-02-05 10:24:21
On Wednesday, February 5, 2003, at 11:42 AM, Samuel Krempp wrote:
> Le mer 05/02/2003 à 10:27, Matthias Troyer a écrit :
>> It seems that on all Crays the macros CRAY and cray are defined. If
>> wants to be machine specific, we got this information recently:
>> On Wednesday, January 22, 2003, at 05:58 PM, Dan Gohman wrote:
>>> On the Cray T3D, Cray T3E, and Cray SV1, _CRAYT3D, _CRAYT3E, and
>>> _CRAYSV1 are defined.
>>> On the Cray X1, __crayx1 is defined, short is 16 bits (don't use it
>>> for int_fast16_t, though), int is 32 bits, and long is 64 bits.
>> Until I get access to one of the new X1 machines and can test the
>> differences I would propose to just use the CRAY or cray macro.
> it seems _CRAYC and _RELEASE are more specifically helpful to identify
> the compiler itself, rather than the machine.
> since _CRAYC is just 0 or 1, it might be wise to define a BOOST_CRAYC
> taking the value of _RELEASE whenever _CRAYC is nonzero, and use it in
> BOOST_WORKAROUNDs in the same way as other compiler macros.
cray, CRAY and _CRAYC are both defined in the C and C++ compilers. We
can thus use either.
_RELEASE however could be used to distinguish older machines from the
new X1 (release 4.2 is used on the X1 and at the moment only there,
release 3.x on other machines).
However, releases until 3.5 were limited in their conformance to the
C++ standard, so that I have tried running Boost only under release
3.6. The _RELEASE macro is 3 for both, so that we cannot distinguish
3.5 and 3.6 that way. We will just have to note that Boost has been
tested only under release 3.6.
Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk