Skip to content

Прекратите писать непортабельный код #188

@ilyakurdyukov

Description

@ilyakurdyukov

# define CDS_PROCESSOR_ARCH CDS_PROCESSOR_UNKNOWN
# define CDS_BUILD_BITS 32
# define CDS_PROCESSOR__NAME "unknown"
# define CDS_PROCESSOR__NICK "unknown"

Каждый раз, когда я вижу очередной белый список 64-бит архитектур, то я теряю веру в человечество.

Есть множество способов писать портабельный код, но люди продолжают городить белые списки.

Когда новые архитектуры уже появляются 64-битными, у них фолбэк для неизвестных архитектур на 32-бита.

Не знаю о чём они думают, что новых архитектур больше не появится? Хотят об этом лично узнать, чтобы к ним пришел кто-то вроде меня?

Если для __aarch64__ вы написали:

#   if __SIZEOF_POINTER__ == 8
#       define CDS_BUILD_BITS        64
#   else
#       define CDS_BUILD_BITS        32
#   endif

То почему нет такого же портабельного кода для неизвестных (вам) архитектур?

Вот это разработчики компиляторов для кого делали? Чтобы люди продолжали составлять белые списки как в С89?

#define _LP64 1
#define __LP64__ 1
#define __SIZEOF_POINTER__ 8

Отсутствует даже возможность задать через CXXFLAGS (-DCDS_BUILD_BITS=64). Вот что значит непродуманный и непортабельный код.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions