{"id":55413,"date":"2020-01-20T00:00:00","date_gmt":"2020-01-19T21:00:00","guid":{"rendered":"https:\/\/prohoster.info\/blog\/blog_prohoster\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2"},"modified":"2020-02-18T14:03:31","modified_gmt":"2020-02-18T11:03:31","slug":"sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2","status":"publish","type":"post","link":"https:\/\/prohoster.info\/it\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2","title":{"rendered":"Un dipendente di Red Hat ha presentato il sistema di build Goals. Uscita di GNU Make 4.2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Richard Jones (Richard WM Jones), autore <noindex><a rel=\"nofollow\" href=\"http:\/\/libguestfs.org\/\">libguestfs<\/a><\/noindex>, che lavora presso Red Hat, <noindex><a rel=\"nofollow\" href=\"https:\/\/rwmj.wordpress.com\/2020\/01\/14\/goals-an-experimental-new-tool-which-generalizes-make\/\">ha presentato<\/a><\/noindex> un nuovo strumento di build <noindex><a rel=\"nofollow\" href=\"https:\/\/people.redhat.com\/~rjones\/goals\/\">Goals<\/a><\/noindex>, mirato a correggere le carenze e i problemi dello strumento make mantenendo la semplicit\u00e0 e la comprensibilit\u00e0 generale degli script. Lo strumento make \u00e8 stato progettato nel 1976 e presenta diverse carenze concettuali, che nel Goals si prevede di correggere senza cambiare la concezione generale.<br \/>\nCodice sorgente di Goals <noindex><a rel=\"nofollow\" href=\"http:\/\/git.annexia.org\/?p=goals.git;a=summary\">\u00e8 distribuito<\/a><\/noindex> con licenza GPLv2+. <\/p>\n<p><noindex><a rel=\"nofollow\" href=\"http:\/\/git.annexia.org\/?p=libguestfs-talks.git;a=blob;f=2020-goals\/notes.txt;h=b03d9e5ea1062869c642a1850a09340ea1575116;hb=HEAD\">Problemi affrontati<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> Support for only one dependency resolution tactic \u2014 \u201cthe build instruction runs if the target file is absent or older than one of the dependencies.\u201d In Goals, it is planned to implement other tactics, such as checking for the URL presence, comparing modification times with any file, evaluating the package build in <noindex><a rel=\"nofollow\" href=\"https:\/\/fedoraproject.org\/wiki\/Koji\">Koji<\/a><\/noindex>, il confronto delle checksum, l'esecuzione di set di test con esclusione selettiva dei test.\n<li class=\"l\"> When processing build goals, the make utility does not separate files and rule names, and consequently there is no check to ensure that the rule will actually create the declared file when executed. For example, if a rule named \u201ctest\u201d that runs test scripts leads to the accidental creation of a file named \u201ctest\u201d, then the tests will no longer be invoked, as make will assume that the goal has been built and does not require any actions (to bypass this issue in make, you can specify the directive \u201c.PHONY: test\u201d). Goals clearly separates files and rule names.\n<p><center><img decoding=\"async\" alt=\"Un dipendente di Red Hat ha presentato il sistema di build Goals. Uscita di GNU Make 4.2\" src=\"\/wp-content\/uploads\/2020\/01\/47f42c47650ed38ae84938634edf1328.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<li class=\"l\"> Problema di fornire un solo parametro per le istruzioni di build.\n<p><center><img decoding=\"async\" alt=\"Un dipendente di Red Hat ha presentato il sistema di build Goals. Uscita di GNU Make 4.2\" src=\"\/wp-content\/uploads\/2020\/01\/2a81f9f98745e6d2ddbb90e21b110295.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<p>In Goals si propone di utilizzare un numero arbitrario di parametri nominati. Ad esempio, \u00e8 possibile estrarre separatamente dal nome un indicatore del file di debug:<\/p>\n<p><center><img decoding=\"async\" alt=\"Un dipendente di Red Hat ha presentato il sistema di build Goals. Uscita di GNU Make 4.2\" src=\"\/wp-content\/uploads\/2020\/01\/ffc783f17ae76bb4d928351ac216d828.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<li class=\"l\"> Problems of interaction with the shell interpreter. For instance, the need to control the escaping of spaces in file and directory names, resource wastage on starting a separate shell interpreter for executing each command, double interpretation of the symbol \u201c$\u201d (used in both shell and make), accounting for indentations.\n<p>These issues are addressed in Goals by using the symbol \u201c%\u201d instead of \u201c$\u201d for build variables (\u201c$\u201d remains only for shell), applying a parser <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/LALR(1)\">LALR(1)<\/a><\/noindex>, che richiede di racchiudere i percorsi e i nomi dei file tra virgolette e di racchiudere tra parentesi graffe i blocchi di codice. L'intero blocco viene eseguito in un'unica istanza della shell dei comandi, e all'interno del blocco \u00e8 consentito un formattazione arbitraria del codice, senza vincoli su spazi speciali.<\/p>\n<p>Era:<br \/>\n    target: foo.o bar.o<br \/>\n     ${CC} ${CFLAGS} $&lt; -o $@       <\/p>\n<p>Diventato:<br \/>\n    \u201ctarget\u201d: \u201cfoo.o\u201d, \u201cbar.o\u201d {<br \/>\n        LAGS %&lt; -o %@<br \/>\n    }<\/p>\n<\/ul>\n<p>Altre caratteristiche dei Goals:<\/p>\n<ul>\n<li class=\"l\"> Supporto opzionale per la definizione di nomi e parametri arbitrari:\n<p>     goal all = : \u201ctarget\u201d<\/p>\n<p>     goal link =<br \/>\n     \u201ctarget\u201d: \u201cfoo.o\u201d, \u201cbar.o\u201d { \u2026 }<\/p>\n<p>     goal compile (name) =<br \/>\n     \u201c%name.o\u201d: \u201c%name.c\u201d, \u201cdep.h\u201d { LAGS -c $^ -o $@ }<\/p>\n<li class=\"l\"> Two launch modes: make mode for matching build goals with file names (for example, file \u201cfoo.o\u201d corresponds to the goal \u201c%name.o\u201d), and direct compilation launch mode:\n<p>     goal all = : link<\/p>\n<p>     goal link =<br \/>\n     \u201ctarget\u201d: \u201cfoo.o\u201d, compile (\u201cbar\u201d) { \u2026 }<\/p>\n<p>     goal compile (name) =<br \/>\n     \u201c%name.o\u201d: \u201c%name.c\u201d, \u201cdep.h\u201d { LAGS -c $^ -o $@ }<\/p>\n<li class=\"l\"> The build tactic is defined by special rules, which can determine the necessity of rebuilding the build goal. If binding to the presence of a file is carried out, this is explicitly defined through the corresponding indicator (\u201ctarget\u201d for the rule name and *file(\u201ctarget\u201d) for file checking).\n<p>  \u201ctarget\u201d: \u201cfoo.o\u201d, \u201cbar.o\u201d { \u2026 }<\/p>\n<p>  *file(\u201ctarget\u201d): *file(\u201cfoo.o\u201d), *file(\u201cbar.o\u201d) { \u2026 }<\/p>\n<li class=\"l\"> Lo sviluppatore pu\u00f2 definire attributi arbitrari delle tattiche di assemblaggio. L'attributo \u00ab*file\u00bb \u00e8 definito per impostazione predefinita (@{\u2026} indica la soppressione dell'output, mentre \u00abexit 99\u00bb segnala la necessit\u00e0 di ricompilazione):\n<p>   tactic *file (filename) = @{<br \/>\n      test -f %filename || exit 99<br \/>\n      for f in %<\/p>\n<p>Fonte: <a \ncontent=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=52215\">opennet.ru<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0420\u0438\u0447\u0430\u0440\u0434 \u0414\u0436\u043e\u043d\u0441 (Richard WM Jones), \u0430\u0432\u0442\u043e\u0440 libguestfs, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Red Hat, \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u043d\u043e\u0432\u0443\u044e \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0443\u044e \u0443\u0442\u0438\u043b\u0438\u0442\u0443 Goals, \u043d\u0430\u0446\u0435\u043b\u0435\u043d\u043d\u0443\u044e \u043d\u0430 \u0443\u0441\u0442\u0440\u0430\u043d\u0435\u043d\u0438\u0435 \u043d\u0435\u0434\u043e\u0441\u0442\u0430\u0442\u043a\u043e\u0432 \u0438 \u043f\u0440\u043e\u0431\u043b\u0435\u043c \u0432 \u0443\u0442\u0438\u043b\u0438\u0442\u0435 make \u043f\u0440\u0438 \u0441\u043e\u0445\u0440\u0430\u043d\u0435\u043d\u0438\u0438 \u043e\u0431\u0449\u0435\u0439 \u043f\u0440\u043e\u0441\u0442\u043e\u0442\u044b \u0438 \u043f\u043e\u043d\u044f\u0442\u043d\u043e\u0441\u0442\u0438 \u0441\u0446\u0435\u043d\u0430\u0440\u0438\u0435\u0432. \u0423\u0442\u0438\u043b\u0438\u0442\u0430 make \u043f\u0440\u043e\u0435\u043a\u0442\u0438\u0440\u043e\u0432\u0430\u043b\u0430\u0441\u044c \u0432 1976 \u0433\u043e\u0434\u0443 \u0438 \u0438\u043c\u0435\u0435\u0442 \u0440\u044f\u0434 \u043a\u043e\u043d\u0446\u0435\u043f\u0442\u0443\u0430\u043b\u044c\u043d\u044b\u0445 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043e\u043a, \u0432 Goals \u043f\u043b\u0430\u043d\u0438\u0440\u0443\u0435\u0442\u0441\u044f \u0443\u0441\u0442\u0440\u0430\u043d\u0438\u0442\u044c \u044d\u0442\u0438 \u043d\u0435\u0434\u043e\u0440\u0430\u0431\u043e\u0442\u043a\u0438, \u043d\u0435 \u043c\u0435\u043d\u044f\u044f \u043e\u0431\u0449\u0435\u0439 \u043a\u043e\u043d\u0446\u0435\u043f\u0446\u0438\u0438. \u0418\u0441\u0445\u043e\u0434\u043d\u044b\u0439 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-55413","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0420\u0438\u0447\u0430\u0440\u0434 \u0414\u0436\u043e\u043d\u0441 (Richard WM Jones), \u0430\u0432\u0442\u043e\u0440 libguestfs, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Red Hat,\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/it\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"it_IT\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0421\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a Red Hat \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Goals. \u0412\u044b\u043f\u0443\u0441\u043a GNU Make 4.2 | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0420\u0438\u0447\u0430\u0440\u0434 \u0414\u0436\u043e\u043d\u0441 (Richard WM Jones), \u0430\u0432\u0442\u043e\u0440 libguestfs, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Red Hat,\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/it\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2020-01-19T21:00:00+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2020-02-18T11:03:31+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Un collaboratore di Red Hat ha presentato il sistema di build Goals. Rilascio di GNU Make 4.2 | ProHoster","description":"Richard Jones, autore di libguestfs, che lavora presso Red Hat,","canonical_url":"https:\/\/prohoster.info\/it\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"it_IT","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0421\u043e\u0442\u0440\u0443\u0434\u043d\u0438\u043a Red Hat \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u0438\u043b \u0441\u0431\u043e\u0440\u043e\u0447\u043d\u0443\u044e \u0441\u0438\u0441\u0442\u0435\u043c\u0443 Goals. \u0412\u044b\u043f\u0443\u0441\u043a GNU Make 4.2 | ProHoster","og:description":"\u0420\u0438\u0447\u0430\u0440\u0434 \u0414\u0436\u043e\u043d\u0441 (Richard WM Jones), \u0430\u0432\u0442\u043e\u0440 libguestfs, \u0440\u0430\u0431\u043e\u0442\u0430\u044e\u0449\u0438\u0439 \u0432 \u043a\u043e\u043c\u043f\u0430\u043d\u0438\u0438 Red Hat,","og:url":"https:\/\/prohoster.info\/it\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2020-01-19T21:00:00+00:00","article:modified_time":"2020-02-18T11:03:31+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"55413","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":null,"breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-02-28 19:44:26","updated":"2022-09-28 03:55:10","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/55413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/comments?post=55413"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/posts\/55413\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/media?parent=55413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/categories?post=55413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/it\/wp-json\/wp\/v2\/tags?post=55413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}