The OpenNET Project / Index page

[ новости /+++ | форум | wiki | теги | ]



"Выпуск сборочной системы Meson 0.50"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Разговоры, обсуждение новостей
Изначальное сообщение [ Отслеживать ]

"Выпуск сборочной системы Meson 0.50"  +/
Сообщение от opennews (??), 11-Мрт-19, 10:35 
Представлен (https://groups.google.com/forum/#!topic/mesonbuild/HRQPYoHGYA0) релиз сборочной системы Meson 0.50 (http://mesonbuild.com/), которая используется для сборки таких проектов, как X.Org Server, Mesa, Lighttpd, systemd, GStreamer, Wayland, GNOME и GTK+. Код Meson написан на языке Python и поставляется (https://github.com/mesonbuild/meson) под лицензией Apache 2.0.

Ключевой целью развития Meson  является обеспечение высокой скорости сборочного процесса в сочетании с  удобством и простотой использования. Вместо утилиты make при сборке по умолчанию применяется инструментарий Ninja (https://www.opennet.ru/opennews/art.shtml?num=29525), но возможно применение и других бэкендов, таких как xcode и VisualStudio. В систему встроен многоплатформенный обработчик зависимостей, позволяющий использовать Meson для сборки пакетов для дистрибутивов. Правила сборки задаются на упрощённом предметно-ориентированном языке,  отличаются хорошей читаемостью и понятны пользователю (по задумке авторов разработчик должен тратить минимум времени на написание правил). Например, простейший файл сборки (meson.build) будет выглядеть как:


   project('tutorial', 'c')
   executable('demo', 'main.c')

или более сложный вариант с зависимостью от GTK3:


   project('tutorial', 'c')
   gtkdep = dependency('gtk+-3.0')
   executable('demo', 'main.c', dependencies : gtkdep)

Поддерживается кросс-компиляция и сборка в Linux, macOS и Windows с использованием GCC, Clang, Visual Studio и других компиляторов. Возможна сборка проектов на различных языках программирования, включая C, C++, Fortran, Java и Rust. Поддерживается инкрементальный режим сборки, при котором пересобираются только компоненты, напрямую связанные с изменениями, внесёнными с момента прошлой сборки. Meson можно использовать для формирования повторяемых сборок, при которых запуск сборки в разных окружениях приводит к генерации полностью идентичных исполняемых файлов.

Основные новшества (https://mesonbuild.com/Release-notes-for-0-50-0.html)  Meson 0.50:


-  Добавлена поддержка развиваемых компанией  NVIDIA компиляторов PGI (https://www.pgroup.com/) для языков  C, C++ и Fortran, а также компилятора Flang (https://github.com/flang-compiler/flang);


-  Добавлена поддержка расширения coarray для параллельного программирования на языке Fortran, стандартизированного в  спецификациях Fortran 2008 и Fortran 2018. В коде для разбора зависимостей также представлена начальная поддержка субмодулей для Fortran, определяемых при помощи выражения "submodule";


-  Обеспечена возможность указания пути к каталогу с модулями для системы CMake в составе зависимостей. Бэкенд для определения зависимостей через CMake теперь может использовать существующие файлы Find{name}.cmake через указание свойства make_module_path в dependency(). Также добавлена поддержка передачи  CMake дополнительных параметров при помощи опции cmake_args;

-  Значение  libdir при кросс-компиляции теперь указывает на каталог "/lib", а не на специфичные для выбранной архитектуры пути (например "lib/x86_64-linux-gnu");

-  В сборочные файлы добавлена новая секция "[paths]" для определения постоянных путей, таких как prefix и libdir;

-  Добавлен режим "warning_level 0" для отключения в компиляторе любых проверок, связанных со статическим анализом кода;

-  Добавлена встроенная сборочная цель (ninja clang-format) для форматирования кода при помощи clang-format;

-  Реализована возможность указания в ключевом слове include_directories  строковых значений, а не только объектов, ссылающихся на каталоги;

-  Для языков C, C++ и Fortran добавлена поддержка обработчиков формата для обмена научными данными NetCDF (https://en.wikipedia.org/wiki/NetCDF) через вызов pkg-config;
-  Добавлена поддержка формата HDF5 (https://www.hdfgroup.org/solutions/hdf5/) через вызов pkg-config;

-  Добавлена поддержка компиляции кода NVIDIA CUDA (пока только при помощи бэкенда на базе Ninja).  Так как компилятор CUDA не сохраняет файлы с зависимостями (*.d), отслеживание зависимостей не поддерживается;

-  Расширены возможности интроспекции. Обеспечена генерация файла meson-info.json при каждом запуске meson. Добавлена поддержка инроспектирования разом нескольких параметров. Реализована возможность  выполнения "introspect --targets" и "introspect --buildoptions" без настроенного сборочного  каталога. Добавлена команда "introspect --scan-dependencies" для поиска зависимостей  в проекте;

-  Добавлена функциональность для изменения файлов meson.build при выполнении операций в командной строке. Например, можно добавлять и исключать исходные файлы и сборочные цели (target), изменять наборы kwargs и модифицировать применяемые по умолчанию сборочные опции.

URL: https://groups.google.com/forum/#!topic/mesonbuild/HRQPYoHGYA0
Новость: https://www.opennet.ru/opennews/art.shtml?num=50288

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от Аноним (1), 11-Мрт-19, 10:35 
Почему недостаточно обычного make?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Выпуск сборочной системы Meson 0.50"  +4 +/
Сообщение от llolik (ok), 11-Мрт-19, 10:41 
На официальном сайте написано, вроде как.
http://mesonbuild.com/FAQ.html#why-is-there-not-a-make-backend

Вкратце: шустрей и проще.

Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

6. "Выпуск сборочной системы Meson 0.50"  –4 +/
Сообщение от shjfbg (?), 11-Мрт-19, 11:06 
ребята неосилили cmake + ninja
потому и пишут гупые отмазки типа:
What is the correct way to use threads (such as pthreads)?

thread_dep = dependency('threads')

This will set up everything on your behalf. People coming from Autotools or CMake want to do this by looking for libpthread.so manually. Don't do that, it has tricky corner cases especially when cross compiling.

а делов-то:
https://stackoverflow.com/questions/33991918/link-to-pthread...

set(THREADS_PREFER_PTHREAD_FLAG ON)
find_package(Threads REQUIRED)
target_link_libraries(my_app threads::Threads)

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

7. "Выпуск сборочной системы Meson 0.50"  +1 +/
Сообщение от llolik (ok), 11-Мрт-19, 11:23 
В чём отмазка? Я понял это как памятку : не надо искать libpthread.so вручную (впрочем, если очень хочется ходить по граблям, то принципиально не запрещается). Вроде больше тезисов в тексте не наблюдается.
Ответить | Правка | ^ к родителю #6 | Наверх | Cообщить модератору

19. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от shjfbg (?), 11-Мрт-19, 12:24 
>People coming from Autotools or CMake want to do this by looking for libpthread.so manually.

Это неверно, cmake умеет сам находить нужный dev-пакет и подключать зависимости (заголовки, библиотеки). Ничего руками делать не надо (можно, но не надо).

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

22. "Выпуск сборочной системы Meson 0.50"  +1 +/
Сообщение от llolik (ok), 11-Мрт-19, 12:45 
>>People coming from Autotools or CMake want to do this by looking for libpthread.so manually.
> Это неверно, cmake умеет сам находить нужный dev-пакет и подключать зависимости (заголовки,
> библиотеки). Ничего руками делать не надо (можно, но не надо).

Ну напишите им на github (или сразу патчем, там github markdown), как надо. Наверное, можно даже с примером CMake. Исправят.

Ответить | Правка | ^ к родителю #19 | Наверх | Cообщить модератору

8. "Выпуск сборочной системы Meson 0.50"  +5 +/
Сообщение от Аноним (8), 11-Мрт-19, 11:25 
Прочитал статью. Чувак написал с нуля свою замену make и ускорил сборку Хрома с 10 секунд аж до 6.

Можно ли считать это серьёзным достижением? Мне кажется, если бы сами разработчики make переписали его с нуля в расчёте на масштабы современных проектов, там был бы выигрыш больше 4 секунд.

Вот что разработчик Ninja говорит в ответ на вопрос "почему не пропатчить make":

> "Why not just improve Make or some other build system? Because I was doing this for fun, and I wouldn't have done those other things for fun".

"For fun" это конечно мощная мотивация, но по-моему он лукавит, — в отличии от Торвальдса он своим детищем занимался не в свободное от учёбы время, а за гугловскую зарплату и в расчёте на печально известные гугловские премиальные для стимуляции NIH-разработок. Просто за отправку патчей в GNU Гугл бы ему премиальные не заплатил.

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

12. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от llolik (ok), 11-Мрт-19, 11:31 
> Просто за отправку патчей в GNU Гугл бы ему премиальные не заплатил.

И ещё далеко не факт, что эти патчи приняли бы. Мало того, что там, мягко говоря, очень консервативные люди и не любят резких изменений, так и, насколько я в курсе, он значительную часть "наворотов" из make повыкидывал, оставив только то, что жизненно важно для сборки.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

14. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Ordu (ok), 11-Мрт-19, 11:34 
> Мне кажется, если бы сами разработчики make переписали его с нуля в расчёте на масштабы современных проектов, там был бы выигрыш больше 4 секунд.

Но они ведь не переписали.

> "For fun" это конечно мощная мотивация, но по-моему он лукавит, — в отличии от Торвальдса он своим детищем занимался не в свободное от учёбы время, а за гугловскую зарплату и в расчёте на печально известные гугловские премиальные для стимуляции NIH-разработок. Просто за отправку патчей в GNU Гугл бы ему премиальные не заплатил.

Ну, конечно, за всем стоит вселенский заговор. Даже если бы ему гугл заплатил за правку make столько же, сколько за создание альтернативы make, он скорее всего создал бы альтернативу. Это проще. Гораздо проще. Сделай info make в консольке, полистай документацию. И задумайся о том, как можно не сломав ничего, что-то исправить. На практике это выльется в огромные усилия инвестированные в изучение существующего кода, поисков каких-нибудь хитрозавёрнутых дыр, как можно оптимизировать что-то, не поломав ничего другого, или поломав минимум, а потом в длинные споры с gnu о том, как надо что-либо менять. И эти длинные споры могут оказаться самой гнусной вещью. Могут не оказаться, но ты не узнаешь, пока не инвестируешь кучу времени в изучение make. Кстати есть ещё такой чувак как Столлман, который иногда совершенно непредсказуемо вмешивается и накладывает своё вето. Бррр. Связываться с этим? Да ну его нафиг.

Ответить | Правка | ^ к родителю #8 | Наверх | Cообщить модератору

20. "Выпуск сборочной системы Meson 0.50"  +2 +/
Сообщение от Аноним (20), 11-Мрт-19, 12:27 
Есть мнение, что Ninja писали из-за винды. Make там хронически медленный из-за порождения тучи процессов, что на винде затратно.
Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

23. "Выпуск сборочной системы Meson 0.50"  +1 +/
Сообщение от Аноним (8), 11-Мрт-19, 12:51 
А мне-то что с этого? Что Гугл, что GNU, — чёрные дыры, обслуживаемые роботами и полутора полудохлыми контрибуторами соответственно. Ни туда, ни туда патч по человечески не протолкнёшь.

Типичный пример: https://github.com/ninja-build/ninja/issues/660.

А ещё #797, #1370, #1354 #1399, #1441, #1449 и много таких же багрепортов и pull-запросов, которые в общем и целом относятся к реализации аналога MAKEFLAGS. За 5 с лишним лет существования Ninja прогресса в этом направлении — ноль; все тикеты закрываются с мотивацией в духе "я так сказал".

Так что с моей точки зрения, проталкивание Ninja, Meson и прочего хипстерского барахла ­— чистой воды вредительство. Их авторы ещё не успели ничего толком сделать, а уже ничем не лучше своих предшественников, — в том числе в плане архитектурной гибкости и лёгкости внесения изменений.

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

26. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от Аноним (26), 11-Мрт-19, 13:55 
В ninja особо MAKEFLAGS и не нужны. Эта система не предполагает ручного создания файлов для нее. Все файлы должны генерироваться какой-то внешней, более высокоуровневой тулзой. И именно в этой тулзе и нужно задавать все параметры для ninja. Хочешь что-то поменять - перегенерируй файлы.
Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

27. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от Ordu (ok), 11-Мрт-19, 14:02 
> А мне-то что с этого?

А мне? Или разработчику ninja? Ты сейчас смотришь с позиции, мол, разработчик ninja ничем не лучше разработчиков gnu. Но какое мне до этого дело? На самом деле, это даже хорошо. Больше поводов у сочувствующих продолжать увеличивать разнообразие тулсета, запиливая всё больше и больше альтернатив. Конкуренция -- это хорошо. Монополия -- плохо.

> Так что с моей точки зрения, проталкивание Ninja, Meson и прочего хипстерского
> барахла ­— чистой воды вредительство. Их авторы ещё не успели ничего
> толком сделать, а уже ничем не лучше своих предшественников, — в
> том числе в плане архитектурной гибкости и лёгкости внесения изменений.

Фишка в том, что мне плевать, что ты или кто-либо ещё думает о хипстерстве или вредительстве. Я буду использовать ту систему сборки, которая мне удобнее. И если мне удобнее ninja, я буду пользоваться ninja. На самом деле, время когда мне были интересные вещи типа make или ninja давно прошло, мне давным-давно надоело писать makefile'ы. Мне гораздо больше нравится, когда makefile'ы пишутся за меня системой сборки. И будут ли эти makefile'ы для ninja или для gnu make -- мне глубоко фиолетово.

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

4. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Аноним (4), 11-Мрт-19, 10:50 
А ты пробовал обычным make собирать что-то большое и кроссплатформенное? Причём именно _обычным_ make, без GNU-расширений.
Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

11. "Выпуск сборочной системы Meson 0.50"  +1 +/
Сообщение от yet another anonymous (?), 11-Мрт-19, 11:30 
У нас практически не осталось _обычного_ make, без GNU-расширений.
Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

50. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Аноним (50), 11-Мрт-19, 18:08 
Рад за _вас_.
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

15. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от пох (?), 11-Мрт-19, 11:40 
> А ты пробовал обычным make собирать что-то большое и кроссплатформенное?

я пробовал - freebsd называется (ну, насколько обычен тамошний pmake или бывший до него bmake - отдельный вопрос). Большое, кроссплатформенное. Собирается, да.

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

А вот сколько раз апгрейд линуксного ядра ломал ваш любимый gnu make - можете поискать, сравнив несколько десятков INSTALL из разных версий. (нет, я не знаю как так оно было написано, что ломается именно из-за ядра, а не из-за библиотек)

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

48. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Аноним (50), 11-Мрт-19, 18:00 
> насколько обычен тамошний pmake или бывший до него bmake - отдельный вопрос

OMG, они теперь и bmake на что-то заменили? Вроде не так давно его по умолчанию сделали-то.
И да, bmake ни разу не обычен, и, насколько я помню, в портах его специфика используется очень много где, потому что без неё на голом POSIX далеко не уедешь.

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

51. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от пох (?), 11-Мрт-19, 18:10 
пардон, bmake vs fmake - вечно я путаю эти буковки (поскольку один хрен никогда никто их так не зовет)

ну, типа если где-то не апгрейдились со времен 8.4, боюсь, да, ждут сюрпризы при попытках собрать современные порты (впрочем, одним апгрейдом мэйка оно не решается).

Но 8.x шесть лет назад кончилась, можно ж уже и пережить расставание.

У fmake большая часть этих фокусов тоже в наличии, со времен как бы не 386BSD - можно уже и забить на единственно-верный позикс.

Ответить | Правка | ^ к родителю #48 | Наверх | Cообщить модератору

54. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Аноним (50), 11-Мрт-19, 21:20 
Да круто, кроуто, что там есть эти фокусы. Проблема только в том, что они с фокусами gmake ни разу не совместимы, поэтому о переносимости Makefile'ов можно забыть.
Ответить | Правка | ^ к родителю #51 | Наверх | Cообщить модератору

57. "Выпуск сборочной системы Meson 0.50"  +1 +/
Сообщение от Аноним (50), 11-Мрт-19, 21:46 
P. S. Действительно, make уже не торт:
$ make love
make: don't know how to make love. Stop

Ответить | Правка | ^ к родителю #54 | Наверх | Cообщить модератору

3. "Выпуск сборочной системы Meson 0.50"  +3 +/
Сообщение от Аноним (3), 11-Мрт-19, 10:48 
Требует python или jvm или какого-нибудь другого огромного рантайма на сотни мегабайт в распакованном виде === можно закапывать.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

5. "Выпуск сборочной системы Meson 0.50"  –3 +/
Сообщение от мое правило (?), 11-Мрт-19, 11:03 
Требует ядро, операционную систему, другого сабжа в много мегабайт между железом и аппликухой - можно закапывать.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

10. "Выпуск сборочной системы Meson 0.50"  –2 +/
Сообщение от llolik (ok), 11-Мрт-19, 11:27 
Никто не запрещает не пользоваться. У меня вот нет задачи не использовать Python, и фрустрации от него тоже нет - я пользуюсь, мне meson, не без огрехов, но нравится.
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

13. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от пох (?), 11-Мрт-19, 11:33 
> Никто не запрещает не пользоваться.

угу, вы же предусмотрели возможность "медленной" и "сложной" сборки, например, с помощью банального gnu configure, или пред-упакованных готовых мэйкфайлов на худой конец, если мне нужно банально собрать ваш проект для своего использования, а не заниматься его разработкой?

ах, нет, для вас это слишком сложно?

Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

16. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от llolik (ok), 11-Мрт-19, 11:52 
> ах, нет, для вас это слишком сложно?

Если конкретно обо мне речь, то Makefile писать вручную я ещё не разучился. Есть задача, напишу, нет задачи - зачем. Но в плане выбора между CMake и Meson лично я склонился в сторону Meson. Призывов всем переходить не делаю, пусть каждый смотрит сам, что лично ему надо.

> банально собрать ваш проект для своего использования, а не заниматься его разработкой

Вот мне порой банально тоже хочется заюзать библиотеку, и приходится переписывать сборку. libuv, например, перекатал https://github.com/SkyMaverick/UniChatMod/tree/master/deps/uv (проектик воскресный любительский; цель, чтобы сборка и deps-ы собирались штатными компиляторами платформы, т.е. gcc/clang и msvc без тонн переписывания сборки под платформы).

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

17. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от пох (?), 11-Мрт-19, 12:09 
> Если конкретно обо мне речь, то Makefile писать вручную я ещё не разучился.

хм, ну и как насчет быстренько вручную накатать мэйкфайлов к чему-то типа chromium ?

> Вот мне порой банально тоже хочется заюзать библиотеку, и приходится переписывать сборку.

одно дело - крошечная libuv, другое - что-то большое что ВНЕЗАПНО решило потоптать за твой счет нехоженных граблей, и внезапно вместо мэйкфайлов или их системонезависимого (!) генератора - приволокло зависимость от jvm. "ну ок, в крайнем случае xcode".

впрочем, теперь еще и докер модно использовать для сборки, чтоб совсем мозг не напрягать. Причем подсунуть файл с FROM:ubuntu (без указания версии, то есть завтра оно к хренам сломается)

так что да, надо учиться восстанавливать мэйкфайлы по артефактам помойко-систем типа мезона. :-( воистину задача для гуглового ИИ.

Ответить | Правка | ^ к родителю #16 | Наверх | Cообщить модератору

21. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от llolik (ok), 11-Мрт-19, 12:38 
> хм, ну и как насчет быстренько вручную накатать мэйкфайлов к чему-то типа
> chromium ?

Автотулзы для проектов типа chromium кактус не сильно лучший.
> их системонезависимого (!) генератора - приволокло зависимость от jvm

Вот серьёзно, где сейчас нет python? Я понимаю, что специфических случаев наискать можно, но в массе своей, где. К тому же meson не нужно каких-то особенных модулей, достаточно core.

> впрочем, теперь еще и докер модно использовать для сборки, чтоб совсем мозг
> не напрягать. Причем подсунуть файл с FROM:ubuntu (без указания версии, то
> есть завтра оно к хренам сломается)

Если это про меня, то указание версии там стоит 14.04. И докер там не для сборки на пользовательской системе, а для travis-ci, у которого по дефолту ЕМНИП xenial(когда начинал с этим разбираться был precise от чего были траблы) и вообще, с ним (трэвисом) навытанцовывавшись, оказалось что проще сделать докер с минимальной убунтой, которую хочется поддерживать (т.е. trusty в моём случае)+зависимости и собирать так. В остальном докер не нужен. Я пишу и собираю на bionic (на mint19 если точней) без проблем.

> так что да, надо учиться восстанавливать мэйкфайлы

В этом есть какой-либо смысл?

Ответить | Правка | ^ к родителю #17 | Наверх | Cообщить модератору

28. "Выпуск сборочной системы Meson 0.50"  –2 +/
Сообщение от пох (?), 11-Мрт-19, 14:07 
> Автотулзы для проектов типа chromium кактус не сильно лучший.

почему? Это один из немногих действительно кроссплатформенных проектов (напоминаю, изначально автотулз для этого придумали, а не для альтернативно-одаренных-не-умеющих-мэйк), плюс собирающийся десятком разных вариантов.

Просто современным разработчикам лень думать и разбираться - да еще и кавычки там какие-то не такие, а авторы уже старые, переделывать все для альтернативно-одаренных им и непонятно, зачем, и не осилить уже.

Поэтому соглашайтесь на cmake, пока жабу не потребовали ;-)

>> так что да, надо учиться восстанавливать мэйкфайлы
> В этом есть какой-либо смысл?

ну, я бы дорого заплатил за такую штуку, которая  позволяла бы запускать ее один раз где-то (где уже не важно что она потребует кластер для своего ИИ и весь интернет впридачу ;-) и получить набор мэйкфайлов, на которые можно просто натравить make на целевой системе, без уставновки там питона шести разных веток, go, jvm и докера. Можно даже без аналога configure (это по нынешним меркам вообще невозможная магия - ничего кроме sh не используя, получить переносимую кроссплатформенную собиралку без внешних зависимостей), только под одну платформу и один конфиг.

> Если это про меня

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

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

33. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от llolik (ok), 11-Мрт-19, 15:08 
> почему?

для действительно крупных проектов - время пересборки. Для небольших проектов - это всё равно, для уже хотя бы средних - это грусть. Для монструозных, вроде хромиума - это тоска-печаль.
При всех плюсах tools-ы и make чрезвычайно медлительны даже на родных платформах.

> Поэтому соглашайтесь на cmake, пока жабу не потребовали

Я пробовал, оно работает, но некоторое время покопавшись с ним, понял что это ужас. Уж лучше обратно tools-ы, чем cmake.
Джаву не потребуют. У них и python только потому, что он "с батарейками" и есть практически везде.

> такую штуку

Ну, в принципе, для meson-а нужен py3.5+ и ninja. На любой поддерживаемой платформе. Хотя, не скрою, лично я только приветствовал бы опциональную возможность использовать и классический make в качестве сборщика.

> нет, я даже не заметил что там тоже докер ;-)

Мне нужен максимально старый деб/убунту в котором штатный gcc умеет std=c11. Это trusty.
> Ладно убунта, а то ж может быть какая-нибудь федора, каждый месяц новая

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

Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

46. "Выпуск сборочной системы Meson 0.50"  +2 +/
Сообщение от Ivan_83 (ok), 11-Мрт-19, 17:25 
автотулс ужасен, смейк вполне юзабелен.
В принципе месон тоже весьма, но мне откровенно не нравится питоний синтаксис и питон как зависимость.
С другой стороны плохо что смейк на плюсах.
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

43. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от пох (?), 11-Мрт-19, 17:15 
> Вот серьёзно, где сейчас нет python?

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

То есть лично у меня пихона не будет теперь нигде, кроме линуксов, ваш-новый-стандарт.

> К тому же meson не нужно каких-то особенных модулей, достаточно core.

который из пяти? ;-)

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

36. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от metakeksemail (?), 11-Мрт-19, 15:32 
сцать им, им дядька компы и облака покупает, сами туда ни копейки не вкладывают
Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

59. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Анонас (?), 12-Мрт-19, 10:11 
> ===

Судя по выражениям, тебе нужна система сборки на Node.JS

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

9. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от yet another anonymous (?), 11-Мрт-19, 11:26 
Сборка "xcode и VisualStudio" ооочень актульна для X сервера.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

24. "Выпуск сборочной системы Meson 0.50"  +1 +/
Сообщение от Совершенно другой аноним (?), 11-Мрт-19, 13:44 
Не совсем понятно, зачем в системе сборки знать компиляторы? make как-то обходился без этого сакрального знания. Ему вообще было абсолютно всё-равно что собирать, хоть исполняемый файл, а хоть и книгу.

Особенно непонятно зачем ему знать диалекты языка fortran, он что, ещё и сам эти файлы анализирует? и как с новым компилятором, ему нужна явная поддержка всех языков?

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

31. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от llolik (ok), 11-Мрт-19, 14:24 
> Не совсем понятно, зачем в системе сборки знать компиляторы?

Система сборки в общем-то изначально и должна запускать компиляторы. Как она будет запускать какой-нибудь rustс (с какими ключами, какие тесты компилятора, как его звать и где искать в конце концов) если она о нём ничего не знает?
> make как-то обходился без этого сакрального знания. Ему вообще было абсолютно всё-равно что собирать, хоть исполняемый файл, а хоть и книгу

meson - это не альтернатива make, meson - это альтернатива autotools.

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

32. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от Led (ok), 11-Мрт-19, 14:57 
> meson - это альтернатива autotools.

Питоноподелие может казаться алтернативой чему-либо только для "альтернативных".

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

34. "Выпуск сборочной системы Meson 0.50"  –2 +/
Сообщение от llolik (ok), 11-Мрт-19, 15:17 
> Питоноподелие может казаться алтернативой чему-либо только для "альтернативных".

Как мне назвать, чтобы не обидеть, человека, который считает, что его частное, ничем не подтверждённое мнение единственно и безальтернативно верное?

Ответить | Правка | ^ к родителю #32 | Наверх | Cообщить модератору

52. "Выпуск сборочной системы Meson 0.50"  –3 +/
Сообщение от пох (?), 11-Мрт-19, 18:11 
Led ;-)
Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

58. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Led (ok), 11-Мрт-19, 23:09 
>> Питоноподелие может казаться алтернативой чему-либо только для "альтернативных".
> Как мне назвать, чтобы не обидеть, человека, который считает, что его частное,
> ничем не подтверждённое мнение единственно и безальтернативно верное?

Как хош.

Что касается моего мнения, то оно не верное (для тебя) - ты можешь (и должен) продолжать кодить на питоне - иначе это будешь уже не ты.

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

63. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Анончег (?), 12-Мрт-19, 23:46 
> Что касается моего мнения, то оно не верное (для тебя) - ты
> можешь (и должен) продолжать кодить на питоне - иначе это будешь
> уже не ты.

Светодиод практически развивает в своих отложениях альтернативную орфографию - даёшь - больше - дефисов - иначе это - будешь - уже - не - ты.

Как всегда гениально. За это изобретение - плюсанул - Светодиода - прямо - в - карму.

Ответить | Правка | ^ к родителю #58 | Наверх | Cообщить модератору

35. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Совершенно другой аноним (?), 11-Мрт-19, 15:18 
>> make как-то обходился без этого сакрального знания. Ему вообще было абсолютно всё-равно что собирать, хоть исполняемый файл, а хоть и книгу
> meson - это не альтернатива make, meson - это альтернатива autotools.

спасибо за объяснение. К сожалению не являюсь знатоком autotools, так-что не могу знать, может старшие товарищи подскажут - тот тоже знал версии стандартов fortran-а и прочих языков? на пользовательском уровне я помню, что он позволял проверить наличие библиотек/конкретных функций, но в стандарты не лез, по причине вышесказанного могу ошибаться.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

38. "Выпуск сборочной системы Meson 0.50"  +1 +/
Сообщение от llolik (ok), 11-Мрт-19, 16:00 
> он позволял проверить наличие библиотек/конкретных функций, но в стандарты не лез, по причине вышесказанного могу ошибаться.

https://www.opennet.ru/docs/RUS/autoconf/autoconf-ru_4.html
смотреть Macro: AC_PROG_F77 . Там описано как определяется компилятор и выставляются ключи.

Ответить | Правка | ^ к родителю #35 | Наверх | Cообщить модератору

40. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Совершенно другой аноним (?), 11-Мрт-19, 16:03 
>> он позволял проверить наличие библиотек/конкретных функций, но в стандарты не лез, по причине вышесказанного могу ошибаться.
> https://www.opennet.ru/docs/RUS/autoconf/autoconf-ru_4.html
> смотреть Macro: AC_PROG_F77 . Там описано как определяется компилятор и выставляются ключи.

Спасибо

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

41. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Совершенно другой аноним (?), 11-Мрт-19, 16:13 
>> он позволял проверить наличие библиотек/конкретных функций, но в стандарты не лез, по причине вышесказанного могу ошибаться.
> https://www.opennet.ru/docs/RUS/autoconf/autoconf-ru_4.html
> смотреть Macro: AC_PROG_F77 . Там описано как определяется компилятор и выставляются ключи.

Посмотрел - в данном случае версию стандарта он таки не проверяет, как и для компиляторов C - он только определяет, точнее пытается определить, имя вызываемой программы. И по эвристикам, а может по строчке версии, выставляет флаги. В общем - в версию стандарта, вроде как, не лезет.

Ответить | Правка | ^ к родителю #38 | Наверх | Cообщить модератору

42. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от llolik (ok), 11-Мрт-19, 16:46 
http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=blob;f=...

Вот модуль поддержки фортрана. С 288 макрос AC_PROG_FC.
Принципиально да, для каждого компилятора определяется своя коммандная строка.

Ответить | Правка | ^ к родителю #41 | Наверх | Cообщить модератору

47. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Совершенно другой аноним (?), 11-Мрт-19, 17:44 
> http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=blob;f=...
> Вот модуль поддержки фортрана. С 288 макрос AC_PROG_FC.
> Принципиально да, для каждого компилятора определяется своя коммандная строка.

Спасибо за подсказку. Таки версии стандартов есть. Правда как я понял, он его не сам определяет, а ожидает что ему скажет пользователь. Возможно meson делает так-же, тогда вопросов по этому поводу нет. Ещё раз спасибо, за разъяснение.

Ответить | Правка | ^ к родителю #42 | Наверх | Cообщить модератору

45. "Выпуск сборочной системы Meson 0.50"  +1 +/
Сообщение от пох (?), 11-Мрт-19, 17:22 
весь прикол, как-то не замеченный авторами-улучшателями мира, в том, что autotools на конечной системе для сборки (даже для сборки вручную модифицированного кода и не в той единственно-верной конфигурации) совершенно не требовались, если только специально не сделать какой-нибудь вредной фигни.

Возможность конфигурирования - оставалась.

Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

55. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Аноним (50), 11-Мрт-19, 21:26 
autotools, которому «ничего не требуется», пихает в исходники столько своих супер-пупер-переносимых скриптов, что проще было бы таскать с собой сабж вместе с исходниками питона, который собирать прямо во время конфигурации. Не исключено, что это даже быстрее вышло бы.
Ответить | Правка | ^ к родителю #45 | Наверх | Cообщить модератору

60. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от пох (?), 12-Мрт-19, 19:07 
> autotools, которому «ничего не требуется», пихает в исходники столько своих
> супер-пупер-переносимых скриптов

сколько? Целых четыре, в крайнем случае?

> что проще было бы таскать с собой сабж вместе с исходниками питона

мастер гипербол, ага.

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

но быстрее почему-то не вышло.

Ответить | Правка | ^ к родителю #55 | Наверх | Cообщить модератору

49. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Аноним (50), 11-Мрт-19, 18:06 
> Не совсем понятно, зачем в системе сборки знать компиляторы?

Ну а как ты скажешь неизвестному компилятору, чтобы он использовал определённый стандарт языка, например? У каждого свои опции, только самые базовые (типа -I, -D, -o, -c) более или менее универсальны.

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

53. "Выпуск сборочной системы Meson 0.50"  –3 +/
Сообщение от пох (?), 11-Мрт-19, 18:13 
а твоя программа, ну конечно же, немедля и соберется "неизвестным компилятором", в особенности вот, конечно же, фортрана.

> У каждого свои опции, только самые базовые (типа -I, -D, -o, -c) более или менее универсальны.

и если твоей программе этого недостаточно - вероятнее всего, она не соберется вообще ничем, кроме единственно-верного gcc10deep-pre-alpha на твоем личном ящике.

Чего ж тогда и беспокоиться?

Ответить | Правка | ^ к родителю #49 | Наверх | Cообщить модератору

56. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Аноним (50), 11-Мрт-19, 21:27 
Зато ты можешь не беспокоиться, что твоя программа не соберётся, правильно?
Ответить | Правка | ^ к родителю #53 | Наверх | Cообщить модератору

61. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от пох (?), 12-Мрт-19, 19:11 
ну если вы владеете автоконфом, это не проблема - учитесь у авторов mono, которые сперва требовали миллион переменных окружения выставить, потом запустить автоконф каким-то особенно кривым образом, кажется, стоя в корне но не из корневого каталога, или  наоборот - а потом плевали в тебя полный скрин текста примерно такого содержания: "мы поддерживаем линукс, линукс, и примерно нихрена, а тут что-то другое, поэтому пойдите вон туда, создайте там каталог uname рядом с имеющимися, и напишите в него сотню мегабайт кода, который мы не умеем писать платформонезависимо, образцы рядом, документацию нам писать лень" и вываливались с ошибкой.

без autoconf'а - вот как бы они это могли бы проделать?

Ответить | Правка | ^ к родителю #56 | Наверх | Cообщить модератору

25. "Выпуск сборочной системы Meson 0.50"  –1 +/
Сообщение от Аноним (25), 11-Мрт-19, 13:46 
как получить версию проекта из meson.build?
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

29. "Выпуск сборочной системы Meson 0.50"  +1 +/
Сообщение от альтернативный разработчик (?), 11-Мрт-19, 14:09 
а вам зачем? Мы все равно поддерживаем только самую распоследнюю.

git pull, чего там думать, трясите!

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

44. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Аноним (25), 11-Мрт-19, 17:19 
Номер версии проекта, конкретно мне, нужен для сборочных скриптов.
Не во всех проектах указывается версия в tag или в логах может быть просто bumped version без циферок или модулей и сабпроджектов есть meson.build со своей версией.
Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

37. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Аноним (37), 11-Мрт-19, 15:52 
Пытался использовать meson под Widnows. Очень тяжело идет.
В основном ревью кода meson и написание meson.build под платформу.
Поддержка всяких библиотек очень плохая. Кто работает с meson и будет портировать предложите автору использовать хотя бы conan как модульную систему.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

39. "Выпуск сборочной системы Meson 0.50"  +1 +/
Сообщение от DmA (??), 11-Мрт-19, 16:00 
Что мы аля Микрософт что-ли, чтобы очевидным словом называть программу(почтовую -Mail,  браузер -Internet Explorer) make, пусть будет Мезоном или Глююоном.
Это как номера машин у бандитов, памяти у них нет, поэтому покупают номера с одинаковыми цифрами и буквами, запомнить не могут.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

62. "Выпуск сборочной системы Meson 0.50"  +/
Сообщение от Аноним (62), 12-Мрт-19, 21:54 
Система, возникшая 42 года назад. 42...

В треде есть на тему: не хватает функциональности (применено слово фокус).

Ну, да, временами жаль, что из прогресса есть ещё что заимплементить.

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Спонсоры:
Слёрм
Inferno Solutions
Hosting by Ihor
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2019 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру