{"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\/sv\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2","title":{"rendered":"En anst\u00e4lld p\u00e5 Red Hat presenterade byggsystemet Goals. Utgivning av GNU Make 4.2","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>Richard Jones (Richard WM Jones), f\u00f6rfattare <noindex><a rel=\"nofollow\" href=\"http:\/\/libguestfs.org\/\">libguestfs<\/a><\/noindex>, arbetande p\u00e5 Red Hat, <noindex><a rel=\"nofollow\" href=\"https:\/\/rwmj.wordpress.com\/2020\/01\/14\/goals-an-experimental-new-tool-which-generalizes-make\/\">\u00e5r<\/a><\/noindex> ett nytt byggverktyg <noindex><a rel=\"nofollow\" href=\"https:\/\/people.redhat.com\/~rjones\/goals\/\">M\u00e5l<\/a><\/noindex>, som syftar till att \u00e5tg\u00e4rda brister och problem med make-verktyget samtidigt som man beh\u00e5ller den \u00f6vergripande enkelheten och tydligheten i script. Make-verktyget designades 1976 och har flera konceptuella brister, som planeras att \u00e5tg\u00e4rdas i M\u00e5l utan att \u00e4ndra den grundl\u00e4ggande konceptet.<br \/>\nK\u00e4llkoden f\u00f6r M\u00e5l <noindex><a rel=\"nofollow\" href=\"http:\/\/git.annexia.org\/?p=goals.git;a=summary\">sprids<\/a><\/noindex> under 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\">Problem som adresseras<\/a><\/noindex>:<\/p>\n<ul>\n<li class=\"l\"> St\u00f6d f\u00f6r endast en taktik f\u00f6r att l\u00f6sa beroenden \u2014 \u00abbygginstruktionen k\u00f6rs om m\u00e5lfilen saknas eller \u00e4r \u00e4ldre \u00e4n n\u00e5got av beroenden\u00bb. I Goals planeras det att implementera andra taktiker, s\u00e5som att kontrollera n\u00e4rvaron av URL:er, j\u00e4mf\u00f6ra \u00e4ndringstider med vilken fil som helst, utv\u00e4rdera byggprocessen i <noindex><a rel=\"nofollow\" href=\"https:\/\/fedoraproject.org\/wiki\/Koji\">Koji<\/a><\/noindex>, j\u00e4mf\u00f6ra kontrollsummor, och k\u00f6ra testsviter med selektivt bortfall av tester.\n<li class=\"l\"> N\u00e4r man hanterar byggm\u00e5l delar make-verktyget inte upp filer och regelnamn, och som f\u00f6ljd finns det ingen kontroll \u00f6ver att filen som ska skapas faktiskt kommer att skapas vid k\u00f6rning av regeln. Till exempel, om det finns en regel d\u00f6pt till \u00abtest\u00bb som k\u00f6r tester, och en fil med namnet \u00abtest\u00bb skapats av misstag, kommer testerna att sluta anropas eftersom make anser att m\u00e5let \u00e4r f\u00e4rdigt och inte kr\u00e4ver n\u00e5gra \u00e5tg\u00e4rder (f\u00f6r att kringg\u00e5 problemet kan man ange direktivet \u00ab.PHONY: test\u00bb i make). Goals separerar tydligt filer och regelnamn.\n<p><center><img decoding=\"async\" alt=\"En anst\u00e4lld p\u00e5 Red Hat presenterade byggsystemet Goals. Utgivning av GNU Make 4.2\" src=\"\/wp-content\/uploads\/2020\/01\/47f42c47650ed38ae84938634edf1328.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<li class=\"l\"> Problemet med att f\u00f6rse endast ett argument f\u00f6r bygginstruktioner.\n<p><center><img decoding=\"async\" alt=\"En anst\u00e4lld p\u00e5 Red Hat presenterade byggsystemet Goals. Utgivning av GNU Make 4.2\" src=\"\/wp-content\/uploads\/2020\/01\/2a81f9f98745e6d2ddbb90e21b110295.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<p>I M\u00e5l f\u00f6resl\u00e5s att anv\u00e4nda ett valfritt antal namngivna argument. Till exempel kan man s\u00e4rskilt extrahera en egenskap av en debugfil ur namnet:<\/p>\n<p><center><img decoding=\"async\" alt=\"En anst\u00e4lld p\u00e5 Red Hat presenterade byggsystemet Goals. Utgivning av GNU Make 4.2\" src=\"\/wp-content\/uploads\/2020\/01\/ffc783f17ae76bb4d928351ac216d828.png\" style=\"display:block;margin: 0 auto;\" \/><\/center><\/p>\n<li class=\"l\"> Problem med interaktion med shell-tolkaren. Till exempel behovet av att kontrollera inmatning av mellanslag i fil- och katalognamn, resursf\u00f6rbrukning f\u00f6r att starta en separat shell-tolk vid k\u00f6rning av varje kommando, dubbel tolkning av symbolen \u00ab$\u00bb (som anv\u00e4nds b\u00e5de i shell och i make), och hantering av indrag.\n<p>Dessa problem l\u00f6ses i Goals genom att anv\u00e4nda symbolen \u00ab%\u00bb ist\u00e4llet f\u00f6r \u00ab$\u00bb f\u00f6r byggvariabler (\u00ab$\u00bb f\u00f6rblir endast f\u00f6r shell), och genom att anv\u00e4nda en parser <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/LALR(1)\">LALR(1)<\/a><\/noindex>, som kr\u00e4ver att s\u00f6kv\u00e4gar och filnamn omges av citattecken och att kodblock markeras med klamrar. Hela blocket k\u00f6rs i en instans av kommandotolken, och inom blocket \u00e4r godtycklig kodformatering till\u00e5ten, utan bindning till specifika mellanrum.<\/p>\n<p>F\u00f6rut:<br \/>\n    m\u00e5l: foo.o bar.o<br \/>\n     ${CC} ${CFLAGS} $&lt; -o $@       <\/p>\n<p>Nu:<br \/>\n    \u00abtarget\u00bb: \u00abfoo.o\u00bb, \u00abbar.o\u00bb {<br \/>\n        LAGS &lt; -o %@<br \/>\n    }<\/p>\n<\/ul>\n<p>Andra egenskaper hos m\u00e5l:<\/p>\n<ul>\n<li class=\"l\"> Valfri support f\u00f6r att ange godtyckliga namn och parametrar:\n<p>     m\u00e5l all = : \u00abtarget\u00bb<\/p>\n<p>     m\u00e5l l\u00e4nk =<br \/>\n     \u00abtarget\u00bb: \u00abfoo.o\u00bb, \u00abbar.o\u00bb { \u2026 }<\/p>\n<p>     m\u00e5l kompilera (namn) =<br \/>\n     \u00ab%name.o\u00bb : \u00ab%name.c\u00bb, \u00abdep.h\u00bb { LAGS -c $^ -o $@ }<\/p>\n<li class=\"l\"> Tv\u00e5 driftsl\u00e4gen: make-l\u00e4get f\u00f6r att matcha byggm\u00e5l med filnamn (till exempel matchar filen \u00abfoo.o\u00bb m\u00e5let \u00ab%name.o\u00bb), och l\u00e4get f\u00f6r direkt kompilering:\n<p>     m\u00e5l all = : l\u00e4nk<\/p>\n<p>     m\u00e5l l\u00e4nk =<br \/>\n     \u00abtarget\u00bb: \u00abfoo.o\u00bb, compile (\u00abbar\u00bb) { \u2026 }<\/p>\n<p>     m\u00e5l kompilera (namn) =<br \/>\n     \u00ab%name.o\u00bb : \u00ab%name.c\u00bb, \u00abdep.h\u00bb { LAGS -c $^ -o $@ }<\/p>\n<li class=\"l\"> Byggtaktik definieras av speciella regler, genom vilka behovet av att \u00e5terskapa byggm\u00e5let kan best\u00e4mmas. Om bindning g\u00f6rs till n\u00e4rvaron av en fil, s\u00e5 definieras detta tydligt genom motsvarande indikator (\u00bbtarget\u00ab f\u00f6r regelnamnet och *file(\u00abtarget\u00bb) f\u00f6r filkontroll).\n<p>  \u00abtarget\u00bb: \u00abfoo.o\u00bb, \u00abbar.o\u00bb { \u2026 }<\/p>\n<p>  *file(\u00abtarget\u00bb): *file(\u00abfoo.o\u00bb), *file(\u00abbar.o\u00bb) { \u2026 }<\/p>\n<li class=\"l\"> Utvecklaren kan definiera godtyckliga egenskaper f\u00f6r sammanst\u00e4llningstaktik. Egenskapen \u00ab*file\u00bb \u00e4r definierad som standard (@{\u2026} anger undertryckande av utdata, medan \u00abexit 99\u00bb signalerar behovet av att rekonstruera):\n<p>   taktik *file (filnamn) = @{<br \/>\n      test -f %filename || exit 99<br \/>\n      for f in %<\/p>\n<p>K\u00e4lla: <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.4 - 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\/sv\/blog\/news\/sotrudnik-red-hat-predstavil-sborochnuyu-sistemu-goals-vypusk-gnu-make-4-2\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.4\" \/>\n\t\t<meta property=\"og:locale\" content=\"sv_SE\" \/>\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\/sv\/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\udd47Anst\u00e4lld p\u00e5 Red Hat presenterade byggsystemet Goals. Utg\u00e5van GNU Make 4.2 | ProHoster","description":"Richard Jones, f\u00f6rfattare till libguestfs, som arbetar p\u00e5 Red Hat,","canonical_url":"https:\/\/prohoster.info\/sv\/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":"sv_SE","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\/sv\/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\/sv\/wp-json\/wp\/v2\/posts\/55413","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/comments?post=55413"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/posts\/55413\/revisions"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/media?parent=55413"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/categories?post=55413"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/sv\/wp-json\/wp\/v2\/tags?post=55413"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}