Стандарт описания зависимостей для языка C++

Павел Филонов
Павел Филонов

На данный момент разработчики привыкли к ситуации, что формат описания зависимостей не является частью языка и его стандарта.

 

Это приводит к тому, что каждый менеджер зависимостей придумывает свой собственный формат. И, на первый взгляд, это не имеет отношение к стандарту языка.

 

Но, если задуматься, то формат описания зависимостей - это просто формальныеправила, которые определяют синтаксис и семантику, а реализация отдается уже на откуп производителям.

 

У нас уже есть пример такого подхода - стандарт языка C++. Имеется формальное описание, а разработчики компиляторов уже предлагают свои реализации. Именно такой подход позволяет собирать код, написанный на одном языке, разными компиляторами (с оговорками).

 

Если вместе со стандартом языка будет представлен и стандарт для описания зависимостей сборки, то это потенциально мотивирует различные менеджеры зависимостей поддержать этот формат, по аналогии с тем, как разработчики компиляторов реализуют стандарт языка.

 

Из ближайших аналогов подобного описания можно привести в качестве примеров:

 

Список открытых вопросов:

  1. Нужно ли такое описание стандарте? (здесь поможет голосование)
  2. Какие схемы версионирования нужно поддерживать?
  3. Какой должен быть синтаксис описания зависимостей?
  4. Какие ограничения на версии можно накладывать?

 

Ответы на все эти вопросы требуют детальной проработки материала. Если ответ на

1-й вопрос будет положительным, то можно будет приступить к остальным.

11
рейтинг
7 комментариев
ru.night.beast
еще хотелось бы иметь централизованное хранилище пакетов, по типу cpan, ctan etc.
тогда бы часть стандартной библиотеки можно было бы переместить туда.
ru.night.beast
mrgordonfreman
ru.night.beast,
Такие централизованные хранилища уже есть - репозитории дистрибутивов линукс. А вот чтоб один для всех... И что он будет выдавать? Если исходники, которые будут вытягиваться по описанию зависимостей и собираться локально, то еще как-то можно жить
mrgordonfreman
Сергей Садовников
ru.night.beast, в экосистеме С++ слишком большой зоопарк компиляторов, тулчейнов, целевых платформ, способов сборки и т. п., чтобы такой репозиторий мог бы быть эффективно реализован на уровне бинарных пакетов.
Сергей Садовников
ru.night.beast
Сергей Садовников, в виде исходников. в зависимостях прописывать для какой системы собирается.
наверно возможно добавление и бинарных данных если, опять же, в зависимостях прописать.
ru.night.beast
eugene.shikhov
идея шикарная, но требует детальной проработки, чтобы реализация стала полезной. сейчас проскочила бредовая мысль, что часть этой работы можно было бы поручить препроцессору.
eugene.shikhov
mrgordonfreman
Что-то из разряда фантастики. Сначала модули бы получить, без них нет смысла думать о зависимостях.
mrgordonfreman
crea7or
А Гор Нишанов на яндекс.разработке(ютуб) не про это говорил? У них какой-то "vc package" появился (вместо Nuget'a типа).
crea7or
Другие идеи
Группа создана, чтобы собирать предложения к стандарту C++, организовывать их внутренние обсуждения, помогать готовить их для отправки в комитет и защищать на общих собраниях в рабочей группе по С++ Международной организации по стандартизации (ISO).