The OpenNET Project / Index page

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

09.10.2013 20:00  Релиз GNU Make 4.0 с поддержкой расширений на языке GNU Guile

После трёх лет разработки представлен релиз системы сборки GNU Make 4.0. Наиболее существенным новшеством является опциональная поддержка языка GNU Guile (одна из реализаций языка Scheme) для определения дополнительных функций в make-файлах. Проверить в скрипте поддержку Guile можно путём оценки наличия ключевого слова guile в переменной ".FEATURES". При наличии поддержки Guile, появляется возможность загрузки/определения Guile-скриптов с реализацией дополнительных функций и их использование в сценарии сборки.

Из других изменений отмечается:

  • Новый оператор "!=" для вызова внешних shell-команд, выступающий в качестве альтернативы функции $(shell ...) и реализованный для совместимости с BSD make. Например, вместо "var := $(shell echo *.c)" можно написать "var != echo *.c". Появление нового оператора может привести к нарушению обратной совместимости, так как присвоение значений переменным оканчивающимся на символ "!" теперь может интерпретироваться как вызов shell-команд. Чтобы избежать подобного поведения следует использовать пробел для явного отделения имени переменной ("var! = value" вместо "var!= value");
  • Новый оператор присвоения "::=", определённый в стандарте POSIX 2012 и идентичный ранее доступному оператору ":=";
  • Новая функция $(file ...) для организации записи в файл;
  • Новая опция командной строки "--output-sync" ("-O"), включающая режим группировки вывода по целям и рекурсивным вызовам make, что позволяет обеспечить наглядность вывода при сборке с распараллеливанием в несколько потоков (вывод разных экземпляров make не будет смешиваться);
  • Реализация режима трассировки, активируемого через указание опции "--trace". При включении режима выводятся полные сведения о всех шагах сборки с указанием файла и номера строки. Данные выводятся даже, если указана переменная .SILENT или применён префикс "@";
  • В опцию "--debug" добавлена поддержка флага "n" (none) для принудительного отключения всех отладочных настроек;
  • Сервер управления работами (jobserver), используемый для оптимизации выполнения параллельной сборки проектов в несколько потоков, адаптирован для работы на платформе Windows. Для Windows также обеспечена поддержка специальной сборочной цели .ONESHELL;
  • Указание опций "-r" и "-R" в переменной MAKEFLAGS внутри make-файла теперь приводит к удалению всех встроенных правил и переменных.


  1. Главная ссылка к новости (http://lists.gnu.org/archive/h...)
Лицензия: CC-BY
Тип: Программы
Ключевые слова: make
При перепечатке указание ссылки на opennet.ru обязательно
Обсуждение Линейный вид | Ajax | Показать все | RSS
 
  • 1.1, zhenya_k, 21:57, 09/10/2013 [ответить] [смотреть все]
  • +2 +/
    В арчике уже в тестинге.
     
     
  • 2.9, Аноним, 23:23, 09/10/2013 [^] [ответить] [смотреть все] [показать ветку]
  • +14 +/
    будто в арчике есть что то кроме тестинга
     
     
  • 3.19, Аноним, 09:25, 10/10/2013 [^] [ответить] [смотреть все]
  • –1 +/
    Ты не поверишь…
     
  • 3.20, Аноним, 11:54, 10/10/2013 [^] [ответить] [смотреть все]
  • +/
    слишком толсто
     
  • 1.2, Аноним, 22:02, 09/10/2013 [ответить] [смотреть все]
  • +10 +/
    Что за воспалённый мозг придумал использовать "!=" в каком-то другом значении, кроме как "не-равно"?
     
     
  • 2.3, Антон, 22:17, 09/10/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Мозг какого-то bsdуна ... весь текст скрыт [показать] [показать ветку]
     
  • 2.4, Аноним, 22:28, 09/10/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +2 +/
    Кто вам сказал, что это не-равно Это же факториал равен А вообще кто к чем... весь текст скрыт [показать] [показать ветку]
     
     
  • 3.5, омнономнимус, 22:33, 09/10/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    > "факториал равен"

    факториал чего?

     
     
  • 4.6, Vkni, 22:59, 09/10/2013 [^] [ответить] [смотреть все]  
  • +8 +/
    той переменной, что слева от восклицательного знака:

    var != 120

    Сразу же понятно, что это эквивалент var = 5. На положительные вещественные числа != естественным образом обобщается с помощью Г-функции.

     
     
  • 5.7, омнономнимус, 23:04, 09/10/2013 [^] [ответить] [смотреть все]  
  • –1 +/
    и во скольких языках программирования есть такая интерпретация восклицательного ... весь текст скрыт [показать]
     
  • 5.8, Аноним, 23:08, 09/10/2013 [^] [ответить] [смотреть все]  
  • +/
    Тогда что такое
    var != 11 ?
     
     
  • 6.11, Vkni, 23:46, 09/10/2013 [^] [ответить] [смотреть все]  
  • +2 +/
    Как я уже и писал, для нецелых var оператор тривиально обобщается с помощью Г-фу... весь текст скрыт [показать]
     
  • 4.10, nib, 23:38, 09/10/2013 [^] [ответить] [смотреть все]  
  • +/
    факториал от lvalue, например бред не правда ли или как используется в bash ... весь текст скрыт [показать]
     
  • 3.13, Аноним, 00:56, 10/10/2013 [^] [ответить] [смотреть все]  
  • +/
    Тогда нужно писать 171 187 120 5 1 43 13 0 ... весь текст скрыт [показать]
     
     
  • 4.14, pavlinux, 01:32, 10/10/2013 [^] [ответить] [смотреть все]  
  • +1 +/
    !n это субфакториал, и !5 = 44
     
  • 3.16, Аноним, 02:15, 10/10/2013 [^] [ответить] [смотреть все]  
  • +3 +/
    Да, для Makefile'ов вычисление факториала, безусловно, очень актуально:)
     
     
  • 4.26, pavlinux, 03:55, 11/10/2013 [^] [ответить] [смотреть все]  
  • +/
    COMBINE_FLAGS -O0, -O1, -O2, -O3, -Ofast, -ffast-math, -fexcess-precision fast ... весь текст скрыт [показать]
     
  • 3.18, Аноним, 02:38, 10/10/2013 [^] [ответить] [смотреть все]  
  • +/
    А вот и покусанный упомянутым бздуном.
     
  • 2.21, dq0s4y71, 13:51, 10/10/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    Тот же воспалённый мозг придумал использовать оператор сдвига в качестве оператора вывода в С++.
     
     
  • 3.22, yet another anonymous, 14:17, 10/10/2013 [^] [ответить] [смотреть все]  
  • +/
    > Тот же воспалённый мозг придумал использовать оператор сдвига в качестве оператора вывода в С++.

    Дык, количество символов на клавиатуре не очень большое.

    cout \rightarrow x;

    было бы лучше, если бы символ \rightarrow можно было бы ввести более вменяемым способом.

     
     
  • 4.23, dq0s4y71, 16:05, 10/10/2013 [^] [ответить] [смотреть все]  
  • +2 +/
    Да уж, С++ такой мощный язык, что ему даже символов на клавиатуре не хватает...
     
  • 1.12, Led, 00:10, 10/10/2013 [ответить] [смотреть все]  
  • +/
    > Новая опция командной строки "--output-sync" ("-O"), включающая режим группировки вывода по целям и рекурсивным вызовам make

    Ура! Наконец-то!

     
  • 1.24, Mihail Zenkov, 16:38, 10/10/2013 [ответить] [смотреть все]  
  • +/
    > Реализация режима трассировки, активируемого через указание опции "--trace".

    Очень радует!

    >Наиболее существенным новшеством является опциональная поддержка языка GNU Guile (одна из реализаций языка Scheme)

    Что поддержка опциональная, это хорошо. Но боюсь что скоро начнется злоупотребление этим и пакеты, которые прекрасно собирались без Guile, начнут ее требовать.

     
     
  • 2.25, Ordu, 00:43, 11/10/2013 [^] [ответить] [смотреть все] [показать ветку]  
  • +/
    > Что поддержка опциональная, это хорошо. Но боюсь что скоро начнется злоупотребление
    > этим и пакеты, которые прекрасно собирались без Guile, начнут ее требовать.

    А что в этом страшного? guile -- небольшая библиотека, которая может не очень популярна, но, тем не менее, используется в ряде программ. Как минимум, сходу в голову приходят gimp и lilypond. Может быть, конечно, вы не правите фотки, может быть вы не набираете/компилируете ноты/табы, но и тем не менее, с большой вероятностью guile уже установлен в вашей системе как депенданс к чему-нибудь ещё.
    Или речь идёт о сервере? Но разве вы на сервере собираете ПО? Не на выделенной для этих целей железке?

     
     
  • 3.27, Mihail Zenkov, 05:38, 11/10/2013 [^] [ответить] [смотреть все]  
  • +/
    gimp-2.8.4, собран руками, guile не требовал.

    Просто мне не нравится, когда приложения тянут за собой пакеты, которые мне ненужны  и без которых приложение могло бы нормально работать (d-bus, systemd, pulsaudio, udev и т.д.). Когда они опциональны - ничего не имею против, но когда я не могу без них собрать программу, это как минимум раздражает.

    Весной в gtk+3 перевели atk-bridge из опции в обязательную зависимость и не потому, что без него никак, а просто 'им так тестировать легче' ибо меньше вариантов сборки (и как только linux-kernel с миллионами вариантов сборки тестируют). А потом смотришь на современный калькулятор и десятилетней давности  - вроде все тоже, а памяти ест в 100 раз больше.

     
     
  • 4.28, A.N. Onim, 11:02, 11/10/2013 [^] [ответить] [смотреть все]  
  • +/
    Мир gentoo ждёт тебя, юный падаван.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:


      Закладки на сайте
      Проследить за страницей
    Created 1996-2017 by Maxim Chirkov  
    ДобавитьРекламаВебмастеруГИД  
    Hosting by Ihor TopList