JASSv2
version.h
Go to the documentation of this file.
1 /*
2  VERISON.H
3  ---------
4  Copyright (c) 2016-2017 Andrew Trotman
5  Released under the 2-clause BSD license (See:https://en.wikipedia.org/wiki/BSD_licenses)
6 */
27 #pragma once
28 
29 #include <string>
30 
31 namespace JASS
32  {
36  class version
37  {
38  public:
39  static constexpr const char *version_string = "0.1";
40  static constexpr uint64_t version_BCD = 0x0001;
41  static constexpr size_t bitness = sizeof(void *) * 8;
42  #if defined(DEBUG) || defined(_DEBUG)
43  #ifdef NDEBUG
44  #error "NDEBUG is defined in a DEBUG build - Can't proceed without knowing which is true"
45  #else
46  static constexpr const char *debugness = "DEBUGGING-build ";
47  static constexpr bool debug = true;
48  #endif
49  #else
50  static constexpr const char *debugness = "";
51  static constexpr bool debug = false;
52  #endif
53 
54  /*
55  VERSION::BUILD()
56  ----------------
57  */
62  static std::string build(void)
63  {
64  return std::string("JASS Version ") + std::string(version_string) + std::string(" ") + std::to_string(bitness) + std::string("-bit ") + std::string(debugness) + std::string("Copyright (c) 2016-2019 Andrew Trotman, University of Otago");
65  }
66 
67  /*
68  VERSION::CREDITS()
69  ------------------
70  */
75  static std::string credits(void)
76  {
77  return
78  build() + "\n"
79  "DESIGN & IMPLEMENTATION\n"
80  "-----------------------\n"
81  "Andrew Trotman\n"
82  "\n"
83 
84  "SEARCH ENGINE\n"
85  "-------------\n"
86  "Andrew Trotman\n"
87  "\n"
88 
89  "COMPRESSION CODE\n"
90  "----------------\n"
91  "Variable Byte - Andrew Trotman\n"
92  "Stream VByte - Daniel Lemire and Kendall Willets (Apache License Version 2.0, January 2004) https://github.com/lemire/streamvbyte\n"
93  "Simple-9 - Vikram Subramanya, Andrew Trotman, Blake Burgess\n"
94  "Simple-9 packed - Vikram Subramanya, Andrew Trotman, Michael Albert, Blake Burgess\n"
95  "Simple-8b - Blake Burgess, Andrew Trotman\n"
96  "Simple-8b packed - Blake Burgess, Andrew Trotman, Michael Albert\n"
97  "Simple-16 - Blake Burgess, Andrew Trotman\n"
98  "Simple-16 packed - Blake Burgess, Andrew Trotman, Michael Albert\n"
99  "Relative-10 - Vikram Subramanya, Andrew Trotman\n"
100  "Carryover-12 - Andrew Trotman\n"
101  "Carry-8b - Andrew Trotman\n"
102  "QMX Original - Andrew Trotman\n"
103  "QMX Improved - Andrew Trotman\n"
104  "\n"
105 
106  "OTHER STUFF\n"
107  "-----------\n"
108  "AVX512 Quicksort - Berenger Bramas (MIT licence)\n"
109  "";
110  }
111  };
112  }
static constexpr size_t bitness
Either a 32-bit or 64-bit build.
Definition: version.h:41
static constexpr const char * debugness
String declairing whether or not this is a debug build.
Definition: version.h:50
static std::string credits(void)
Return a string containing the credits.
Definition: version.h:75
static constexpr uint64_t version_BCD
Current version of JASS as a BCD string.
Definition: version.h:40
static constexpr const char * version_string
Current version of JASS as a C string.
Definition: version.h:39
static constexpr bool debug
Is this a debug build or not?
Definition: version.h:51
Definition: compress_integer_elias_delta_simd.c:23
static std::string build(void)
Return a string containing the build details and authorship.
Definition: version.h:62
Details about the current executing version of JASS.
Definition: version.h:36