Змея / Говнокод #26708 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
def get_build_version():
    """Return the version of MSVC that was used to build Python.

    For Python 2.3 and up, the version number is included in
    sys.version.  For earlier versions, assume the compiler is MSVC 6.
    """
    prefix = "MSC v."
    i = sys.version.find(prefix)
    if i == -1:
        return 6
    i = i + len(prefix)
    s, rest = sys.version[i:].split(" ", 1)
    majorVersion = int(s[:-2]) - 6
    if majorVersion >= 13:
        # v13 was skipped and should be v14
        majorVersion += 1
    minorVersion = int(s[2:3]) / 10.0
    # I don't think paths are affected by minor version in version 6
    if majorVersion == 6:
        minorVersion = 0
    if majorVersion >= 6:
        return majorVersion + minorVersion
    # else we don't know what version of the compiler this is
    return None

Определение версии конпелятора, которой был собран «CPython».

Запостил: TEH3OPHblu_nemyx TEH3OPHblu_nemyx, (Updated )

Комментарии (40) RSS

  • SEO-пост.

    Совершенно логично, что если в штампе версии «1900», то это 14-я версия «Visual Studio» (19 - 6 = 13, но 13 пропускаем, потому что число несчастливое).
    Ответить
    • > 1900 это 14я версия

      Которая ещё называется 2015. Чтобы все окончательно запутать.
      Ответить
      • Чтобы ещё больше запутать, 2017 тоже называется 14, и 2019 тоже называется 14, только минорные версии различаются. Начиная с 2015, всё это говно ставится в директорию «Microsoft Visual Studio 14.0», а для 2017 и 2019 создаются поддиректории (типа VC\Tools\MSVC\14.15.26726).

        А теперь у них помимо MSVC ещё и «шланг» зачем-то есть (VC\Tools\ClangC2).
        Ответить
        • > тоже называется 14

          Ну у них и в версии что-то типа 1920 осталось. Так что теперь вообще хер отличишь.
          Ответить
          • Да, только последняя цифра может ещё меняться. Были выпуски 2017 с номерами конпелятора 1910, 1913, 1914, 1915...
            Ответить
          • Если я правильно понял, отличить можно.
            2015 себя подписывает как 1900.
            2017 — как 1910...1919 в зависимости от минорной версии.
            2019 — как 1920...1929 и т. д.
            Ответить
            • напомнило

              "Windows 2013" for Windows 8.1 and Windows Server 2012 R2
              "Windows 2012" for Windows 8 and Windows Server 2012
              "Windows 2009" for Windows 7 and Windows Server 2008 R2
              "Windows 2001" for Windows XP
              "Windows 2001.1" for Windows Server 2003
              Ответить
              • А ещё
                NT 5.1: Windows XP
                NT 5.2: Windows Server 2003
                NT6.0: Windows Vista, Windows Server 2008 (без R, попрошу не путать)
                NT6.1: Windows 7, Windows Server 2008 R2 (именно с R2, а то могут ведь напутать)
                NT6.2: Windows 8, Windows Server 2012
                NT6.3: Windows 8.1, Windows Server 2012 R2 (такая же фигня с буквой R)

                А ещё у нас был говнокод на «Йаже», который объясняет, почему не вышла Windows 9, а сразу появилась десятка.
                Ответить
                • на месте мс я бы называл виндуосы гуидами.

                  Откиньесь на спинку кресла, пока Windows {a71019f4-c33a-4802-bf9b-bd86f26e473d} устанавливается на ваш компьютер!
                  Ответить
                  • Нумерация не должна быть упорядоченной. От версии к версии должен меняться байтик где-то в самой середине гуида.
                    Ответить
                    • разумеется.
                      Я в BCD такое видел.

                      Ну там есть запись
                      {a71019f4-c33a-4802-bf9b-bd86f26e473d}
                      а есть и
                      {a71019f4-c33a-4802-bf9b-bd86f16e473d}
                      Ответить
                • Нажимая на кнопицы от балды, ты не создашь программу. Подобно как Стаканов, тыкая пальчиком в подаренное пианино, не стал великим композитором.
                  Ответить
              • >"Windows 2012" for Windows 8 and Windows Server 2012

                одна версия нечаянно совпала
                Ответить
            • Да, я не ошибся. Вот из хелпа:
              Visual Studio 6.0 		1200
              Visual Studio .NET 2002 (7.0) 	1300
              Visual Studio .NET 2003 (7.1) 	1310
              Visual Studio 2005 (8.0) 	1400
              Visual Studio 2008 (9.0) 	1500
              Visual Studio 2010 (10.0) 	1600
              Visual Studio 2012 (11.0) 	1700
              Visual Studio 2013 (12.0) 	1800
              Visual Studio 2015 (14.0) 	1900
              Visual Studio 2017 RTW (15.0) 	1910
              Visual Studio 2017 версия 15.3 	1911
              Visual Studio 2017 версии 15.5 	1912
              Visual Studio 2017 версии 15.6 	1913
              Visual Studio 2017 версии 15.7 	1914
              Visual Studio 2017 версии 15.8 	1915
              Visual Studio 2017 версии 15.9 	1916
              Visual Studio 2019 RTW (16.0) 	1920
              Visual Studio 2019 версии 16.1 	1921
              Visual Studio 2019 версии 16.2 	1922
              Visual Studio 2019 версии 16.3 	1923
              Visual Studio 2019 версии 16.4 	1924
              Visual Studio 2019, версия 16.5 1925
              Visual Studio 2019 версии 16.6 	1926
              Ответить
      • Со страницы https://windows.php.net/:

        All binary packages we were offering contained "vc#" (for instance, "vc14") in the filename to designate the Visual Studio version which has been used to build them. This number ("#") has tradionally been the major number of the respective platform toolset. The preview releases of Visual Studio 2017 shipped with platform toolset 15.00, so we used "vc15" to mark the files. The first GA release of Visual Studio 2017, however, shipped with platform toolset 14.10 (to signal the backward compatibility), but the internal Visual Studio version number stayed 15.00. To avoid confusion with already distributed packages, we stuck with the "vc15" marker. For our Visual Studio 2019 builds (PHP 7.4 and master) we finally changed from "vc#" to "vs#" (note the "s"), where the number now designates the major internal Visual Studio version number. We are planning to stick with this new naming scheme for the foreseeable future.

        Т.е. у VS2017 внутренний номер студии 15, внутренний номер тулсета 14.1x, _MSC_VER >= 1910; у VS2019 внутренний номер студии 16, внутренний номер тулсета 14.2x, _MSC_VER >= 1920.

        Правда, легко запомнить?
        Ответить
          • Они вышли на опушку леса. Алиса вздрогнула от неожиданности - в эту минуту она думала только о пудинге.
            - Ты загрустила? - огорчился Рыцарь. - Давай я спою тебе в утешение песню.
            - А она очень длинная? - спросила Алиса. В этот день она слышала столько стихов!
            - Она длинная, - ответил Рыцарь, - но очень, очень красивая! Когда я ее пою, все рыдают... или...
            - Или что? - спросила Алиса, не понимая, почему Рыцарь вдруг остановился.
            - Или... не рыдают. Заглавие этой песни называется «Пуговки для сюртуков».
            - Вы хотите сказать - песня так называется? - спросила Алиса, стараясь заинтересоваться песней.
            - Нет, - ты не понимаешь, - ответил нетерпеливо Рыцарь. - Это заглавие так называется. А песня называется «Древний старичок».
            - Мне надо было спросить: это у песни такое заглавие? - поправилась Алиса.
            - Да нет! Заглавие совсем другое. «С горем пополам!» Но это она только так называется!
            - А песня эта какая? - спросила Алиса в полной растерянности.
            - Я как раз собирался тебе об этом сказать. «Сидящий на стене»! Вот какая это песня! Музыка собственного изобретения!
            Ответить

Добавить комментарий

Помни, guest, за тобой могут следить!

    А не использовать ли нам bbcode?


    8