Wydanie systemu kompilacji GNU Make 4.4

Po prawie trzech latach rozwoju wydano system kompilacji GNU Make 4.4. Oprócz naprawy błędów w nowej wersji można zauważyć następujące zmiany:

  • Platformy OS/2 (EMX), AmigaOS, Xenix i Cray są przestarzałe i zostaną wycofane w przyszłej wersji.
  • Zwiększono wymagania dla środowiska budowania, do zbudowania GNU Gnulib potrzebny jest teraz kompilator obsługujący elementy ze standardu C99.
  • Dodano specjalny cel budowania .OCZEKAJ, który umożliwia wstrzymanie uruchamiania niektórych celów do czasu zakończenia budowania innych celów.
  • W specjalnym celu kompilacji .NOTPARALLEL zaimplementowano możliwość określenia wymagań wstępnych (plików niezbędnych do zbudowania celu) w celu sekwencyjnego uruchamiania powiązanych z nimi celów (tak jakby między każdym warunkiem wstępnym ustawiono „.WAIT”).
  • Dodano specjalny cel kompilacji .NOTINTERMEDIATE, który wyłącza zachowanie związane z używaniem celów pośrednich (.INTERMEDIATE) dla określonych plików, plików pasujących do maski lub całego pliku makefile.
  • Zaimplementowano funkcję $(let...), która umożliwia definiowanie zmiennych lokalnych w funkcjach zdefiniowanych przez użytkownika.
  • Zaimplementowano funkcję $(intcmp ...) do porównywania liczb.
  • Podczas korzystania z opcji „-l” (--load-average) liczba zadań do uruchomienia uwzględnia teraz dane z pliku /proc/loadavg o obciążeniu systemu.
  • Dodano opcję „--shuffle” do losowania wymagań wstępnych, która pozwala na uzyskanie niedeterministycznego zachowania w równoległych kompilacjach (na przykład fuzz test poprawności zdefiniowania wymagań wstępnych w makefile).
  • W systemach z obsługą mkfifo udostępniono nowy sposób interakcji z serwerem zadań podczas równoległego wykonywania zadań oparty na wykorzystaniu nazwanych potoków. Aby przywrócić starą metodę opartą na nienazwanych potokach, zaproponowano opcję „--jobserver-style=pipe”.
  • Rozszerzono wykorzystanie plików tymczasowych w procesie pracy (problemy mogą pojawić się, gdy system budujący ustawi alternatywny katalog dla plików tymczasowych (TMPDIR) i usunie zawartość TMPDIR podczas budowania).

Źródło: opennet.ru

Dodaj komentarz