Wani ma'aikacin Red Hat ya gabatar da tsarin taron Goals. Sakin GNU Make 4.2

Richard WM Jones, marubuci marubuciyana aiki a Red Hat, gabatar sabon taro mai amfani Kwallaye, da nufin kawar da gazawa da matsaloli a cikin amfanin yin yayin da yake kiyaye sauƙin sauƙi da fahimtar rubutun. An tsara kayan aikin a cikin 1976 kuma yana da ƙarancin ra'ayi da yawa; Manufofin suna shirin kawar da waɗannan gazawar ba tare da canza ra'ayi na gaba ɗaya ba.
Lambar tushen burin rarraba ta mai lasisi a ƙarƙashin GPLv2+.

Matsalolin da za a warware:

  • Taimako don dabarar ƙudurin dogaro guda ɗaya kawai - "Ana gudanar da koyarwar taron idan fayil ɗin manufa ya ɓace ko ya girmi ɗaya daga cikin abubuwan dogaro." Maƙasudai suna shirin aiwatar da wasu dabaru, kamar bincika kasancewar URL, kwatanta lokutan gyare-gyare tare da kowane fayil, kimanta ginin kunshin a ciki. kowa, kwatankwacin lissafin kuɗi, gudanar da shari'o'in gwaji tare da zaɓen gwaje-gwaje.
  • Lokacin sarrafa maƙasudin ginawa, yin ba ya raba fayiloli da sunayen sarauta, kuma a sakamakon haka, babu tabbacin cewa lokacin aiwatar da ƙa'ida, fayil ɗin da yake iƙirarin ƙirƙira zai kasance a zahiri. Misali, idan kuna da wata ka'ida mai suna "test" mai sarrafa rubutun tare da gwaje-gwaje, an ƙirƙiri fayil mai suna "test" da gangan, to ba za a sake kiran gwajin ba, tunda yin zai yi la'akari da cewa an gina shi kuma baya buƙatar. kowane mataki (don yin aiki a kusa da matsalar da ake yi, za ku iya ƙayyade umarnin ".PHONY: test"). Maƙasudai suna raba fayiloli da sunaye a sarari.

    Wani ma'aikacin Red Hat ya gabatar da tsarin taron Goals. Sakin GNU Make 4.2

  • Matsala tare da samar da siga guda ɗaya don umarnin taro.

    Wani ma'aikacin Red Hat ya gabatar da tsarin taron Goals. Sakin GNU Make 4.2

    Maƙasudai suna ba ku damar amfani da adadin sabani na sigogi masu suna. Misali, zaku iya cire alamar fayil ɗin gyara daban daban daga sunan:

    Wani ma'aikacin Red Hat ya gabatar da tsarin taron Goals. Sakin GNU Make 4.2

  • Matsalolin hulɗa tare da mai fassarar harsashi. Misali, buƙatar sarrafa tserewar sarari a cikin fayil da sunayen adireshi, ɓatar da albarkatu akan ƙaddamar da fassarar harsashi daban lokacin aiwatar da kowane umarni, fassarar sau biyu na halin “$” (amfani da harsashi da yin), la'akari da indentations.

    Ana magance waɗannan matsalolin a cikin Goals ta amfani da alamar "%" maimakon "$" don masu canjin taro ("$" ya rage kawai don harsashi), ta amfani da parser. LALLAR(1), wanda ke buƙatar ka kewaye hanyoyi da sunayen fayiloli tare da ƙididdiga da kuma haskaka tubalan lambobi tare da takalmin gyaran kafa. An ƙaddamar da gabaɗayan toshe umarni a cikin misali guda ɗaya na harsashin umarni, kuma a cikin toshe, an ba da izinin tsara lambar sabani, ba tare da la'akari da wurare na musamman ba.

    Ya kasance:
    manufa: foo.o bar.o
    ${CC} ${CFLAGS} $<-o $@

    Ya zama:
    "target": "foo.o", "bar.o" {
    %CC %CFLAGS %<-o %@
    }

Sauran fasalulluka na Goals:

  • Taimako na zaɓi don ƙididdige sunaye da sigogi na sabani:

    burin duka = ​​: "manufa"

    hadafin burin =
    "target": "foo.o", "bar.o" {...}

    hadafin burin (suna) =
    "%name.o": "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@}

  • Hanyoyin ƙaddamarwa guda biyu: yin yanayi don daidaita maƙasudin ginawa tare da sunayen fayil (misali, fayil "foo.o" ya dace da manufa "%name.o"), da yanayin haɗa kai tsaye:

    burin duka = ​​: mahada

    hadafin burin =
    "target": "foo.o", tara ("bar") {...}

    hadafin burin (suna) =
    "%name.o": "%name.c", "dep.h" {%CC %CFLAGS -c $^ -o $@}

  • Dabarun taro an ƙaddara su ta hanyar ƙa'idodi na musamman waɗanda za a iya amfani da su don tantance buƙatar sake haɗa manufa ta taro. Idan an sanya hanyar haɗi zuwa kasancewar fayil, to ana ƙayyade wannan a sarari ta hanyar alamar da ta dace ("manufa" don sunan ƙa'idar da * fayil ("manufa") don bincika fayil ɗin).

    "target": "foo.o", "bar.o" {...}

    * fayil ("manufa"): * fayil ("foo.o"), * fayil ("bar.o") {... }

  • Mai haɓakawa na iya ayyana halaye na sabani na dabarun taro. Tutar "*fayil" an bayyana shi ta tsohuwa (@{...} yana nuna mannewar fitarwa, kuma "fita 99" yana nuna alamar buƙatar sake ginawa):

    dabara * fayil (sunan fayil) = @{
    test -f % filename || fita 99
    na f a %

    source: budenet.ru

Add a comment