phobos/std/compiler.d
alexrp 85c1f161c0 Adding myself as author to the modules I have contributed to.
This is just me committing to maintain my code additions to
these modules. We should, in general, use these author lists
more so we know who's responsible for the various modules.
2012-07-16 05:31:09 +02:00

61 lines
1.9 KiB
D

// Written in the D programming language.
/**
* Identify the compiler used and its various features.
*
* Macros:
* WIKI = Phobos/StdCompiler
*
* Copyright: Copyright Digital Mars 2000 - 2011.
* License: <a href="http://www.boost.org/LICENSE_1_0.txt">Boost License 1.0</a>.
* Authors: $(WEB digitalmars.com, Walter Bright), Alex Rønne Petersen
* Source: $(PHOBOSSRC std/_compiler.d)
*/
/* Copyright Digital Mars 2000 - 2011.
* Distributed under the Boost Software License, Version 1.0.
* (See accompanying file LICENSE_1_0.txt or copy at
* http://www.boost.org/LICENSE_1_0.txt)
*/
module std.compiler;
immutable
{
/// Vendor specific string naming the compiler, for example: "Digital Mars D".
string name = __VENDOR__;
/// Master list of D compiler vendors.
enum Vendor
{
unknown = 0, /// Compiler vendor could not be detected
digitalMars = 1, /// Digital Mars D (DMD)
gnu = 2, /// GNU D Compiler (GDC)
llvm = 3, /// LLVM D Compiler (LDC)
dotNET = 4, /// D.NET
sdc = 5, /// Stupid D Compiler (SDC)
}
/// Which vendor produced this compiler.
version(StdDdoc) Vendor vendor;
else version(DigitalMars) Vendor vendor = Vendor.digitalMars;
else version(GNU) Vendor vendor = Vendor.gnu;
else version(LDC) Vendor vendor = Vendor.llvm;
else version(D_NET) Vendor vendor = Vendor.dotNET;
else version(SDC) Vendor vendor = Vendor.sdc;
else Vendor vendor = Vendor.unknown;
/**
* The vendor specific version number, as in
* version_major.version_minor
*/
uint version_major = __VERSION__ / 1000;
uint version_minor = __VERSION__ % 1000; /// ditto
/**
* The version of the D Programming Language Specification
* supported by the compiler.
*/
uint D_major = 2;
uint D_minor = 0;
}