/+
  compile_time_info
  compile_time_info.d
+/
template CompileTimeInfo() {
  version(Windows) {
    pragma(msg, "[ Windows compilation ]");
    enum os = "Windows";
  } else version(OSX) {
    pragma(msg, "[ Mac OS X POSIX System compilation ]");
    enum os = "OSX";
  } else version(linux) {
    pragma(msg, "[ Linux POSIX System compilation ]");
    enum os = "Linux";
  } else version(FreeBSD) {
    pragma(msg, "[ FreeBSD POSIX System compilation ]");
    enum os = "FreeBSD";
  } else version(OpenBSD) {
    pragma(msg, "[ OpenBSD POSIX System compilation ]");
    enum os = "OpenBSD";
  } else version(NetBSD) {
    pragma(msg, "[ NetBSD POSIX System compilation ]");
    enum os = "NetBSD";
  } else version(DragonFlyBSD) {
    pragma(msg, "[ DragonFlyBSD POSIX System compilation ]");
    enum os = "DragonFlyBSD";
  } else version(POSIX) {
    pragma(msg, "[ POSIX System compilation ]");
    enum os = "POSIX";
  } else {
    static assert(0, "OS not listed");
  }
  version(D_LP64) {
    enum bits = "64 bit";
  } else {
    enum bits = "32 bit";
  }
}