Chuir fostaí Red Hat an córas tionóil Sprioc i láthair. Eisiúint GNU Déan 4.2

Richard WM Jones, údar libguestfs, ag obair ag Red Hat, tugadh isteach fóntais tionóil nua Spriocanna, arb é is aidhm dó fáil réidh le heasnaimh agus fadhbanna maidir le háisiúlacht an déanmhais agus ag an am céanna simplíocht agus intuigtheacht iomlán na scripteanna a choinneáil. Dearadh an áirgiúlacht déanta i 1976 agus tá roinnt easnaimh choincheapa ann; Pleananna Spriocanna chun na heasnaimh seo a dhíchur gan an coincheap ginearálta a athrú.
Cód foinse spriocanna dáilte ag ceadúnaithe faoi GPLv2+.

Fadhbanna le réiteach:

  • Tacaíocht le haghaidh tactic réitigh spleáchais amháin - “rithfidh an treoir tionóil má tá an spriocchomhad in easnamh nó má tá sé níos sine ná ceann amháin de na spleáchais.” Tá sé beartaithe ag Spriocanna tactics eile a chur i bhfeidhm, mar shampla seiceáil an bhfuil URL i láthair, amanna modhnuithe a chur i gcomparáid le haon chomhad, measúnú a dhéanamh ar an bpacáiste isteach cóji, comparáid idir seiceálacha, cásanna tástála a rith le gan bacadh le tástálacha go roghnach.
  • Nuair a bhíonn spriocanna tógála á bpróiseáil, ní scarann ​​Déan comhaid agus ainmneacha riail, agus mar thoradh air sin, níl aon seiceáil nuair a bhíonn riail á rith, go gcruthófar an comhad a éilíonn sé a chruthú. Mar shampla, má tá riail agat ar a dtugtar "tástáil" a ritheann scripteanna le tástálacha, cruthaítear comhad darb ainm "tástáil" de thaisme, ansin ní ghlaofar na tástálacha a thuilleadh, ós rud é go measfaidh make go bhfuil an sprioc tógtha agus nach gá. gníomh ar bith (do Chun oibriú timpeall na faidhbe i ndéanamh, is féidir leat an treoir “.PHONY: test”) a shonrú). Scarann ​​Spriocanna comhaid agus ainmneacha riail go sainráite.

    Chuir fostaí Red Hat an córas tionóil Sprioc i láthair. Eisiúint GNU Déan 4.2

  • Fadhb le paraiméadar amháin a sholáthar le haghaidh treoracha tionóil.

    Chuir fostaí Red Hat an córas tionóil Sprioc i láthair. Eisiúint GNU Déan 4.2

    Ligeann Spriocanna duit líon treallach paraiméadair ainmnithe a úsáid. Mar shampla, is féidir leat comhartha comhaid dífhabhtaithe a bhaint as an ainm ar leithligh:

    Chuir fostaí Red Hat an córas tionóil Sprioc i láthair. Eisiúint GNU Déan 4.2

  • Fadhbanna idirghníomhú leis an teangaire sliogáin. Mar shampla, an gá atá le éalú spásanna in ainmneacha comhaid agus eolaire a rialú, cur amú acmhainní ar ateangaire sliogán ar leith a sheoladh agus gach ordú á fhorghníomhú, léirmhíniú dúbailte an charachtair “$” (a úsáidtear sa bhlaosc agus sa déantús), ag cur san áireamh eangú.

    Réitítear na fadhbanna seo i Spriocanna trí úsáid a bhaint as an tsiombail “%” in ionad “$” le haghaidh athróga cóimeála (“$” fágtha don bhlaosc amháin), ag úsáid parsálaí LALR(1), a éilíonn ort cosáin agus ainmneacha comhaid a thimpeallú le comharthaí athfhriotail agus béim a chur ar bhlocanna cód le braces chatach. Seoltar an bloc ordaithe ar fad i gcás amháin den bhlaosc ordaithe, agus laistigh den bhloc, ceadaítear formáidiú cód treallach, gan tagairt a dhéanamh do spásanna speisialta.

    Bhí sé:
    sprioc: foo.o bar.o
    ${CC} ${CFLAGS} $< -ó $@

    tháinig sé chun bheith:
    "target": "foo.o", "bar.o" {
    % CC % CFLAGS %< -o %@
    }

Gnéithe eile de Spriocanna:

  • Tacaíocht roghnach chun ainmneacha agus paraiméadair threallacha a shonrú:

    sprioc gach = : "target"

    nasc sprioc =
    "target" : "foo.o", "bar.o" {... }

    sprioc tiomsaithe (ainm) =
    " %name.o " : " %name.c " , " dep.h " { %CC %CFLAGS -c $^ -o $@ }

  • Dhá mhodh seolta: déan mód chun spriocanna tógála a mheaitseáil le hainmneacha comhaid (mar shampla, meaitseálann an comhad "foo.o" an sprioc "%name.o"), agus modh tiomsaithe díreach:

    sprioc gach = : nasc

    nasc sprioc =
    "target" : "foo.o", tiomsaigh ("barra") {... }

    sprioc tiomsaithe (ainm) =
    " %name.o " : " %name.c " , " dep.h " { %CC %CFLAGS -c $^ -o $@ }

  • Socraítear tactics an tionóil de réir rialacha speisialta is féidir a úsáid chun a chinneadh an gá sprioc tionóil a athchruinniú. Má dhéantar nasc le láithreacht comhaid, déantar é seo a chinneadh go sainráite tríd an gcomhartha comhfhreagrach (“sprioc” ainm na rialach agus *comhad (“sprioc”) chun an comhad a sheiceáil).

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

    *comhad ("sprioc") : *comhad ("foo.o"), *comhad ("bar.o") { ... }

  • Is féidir leis an bhforbróir tréithe treallach tactics tionóil a shainiú. Sainmhínítear an bhratach "*comhad" de réir réamhshocraithe (le fios @{...} go bhfuil an t-aschur faoi chois, agus comharthaíonn "scoir 99" go bhfuil gá le atógáil):

    tactic *comhad (ainm comhaid) = @{
    test -f %filename || scoir 99
    le haghaidh f i %

    Foinse: oscailtenet.ru

Add a comment