Sgaoileadh inneal-cruinneachaidh cànain D 2.100

Thaisbean luchd-leasachaidh cànan prògramadh D foillseachadh a’ phrìomh chruinneadair iomraidh DMD 2.100.0, a bheir taic do shiostaman GNU/Linux, Windows, macOS agus FreeBSD. Tha an còd cruinneachaidh air a chuairteachadh fon BSL an-asgaidh (Boost Software License).

Tha D air a thaipeadh gu statach, tha co-chòrdadh coltach ri C/C ++ aige, agus a’ toirt seachad coileanadh chànanan cruinnichte, agus aig an aon àm a’ faighinn iasad air cuid de na buannachdan èifeachdais leasachaidh agus tèarainteachd a tha aig cànanan fiùghantach. Mar eisimpleir, tha e a’ toirt taic do arrays ceangail, co-dhùnadh seòrsa, riaghladh cuimhne fèin-ghluasadach, prògramadh co-shìnte, neach-cruinneachaidh sgudail roghainneil, siostam teamplaid, co-phàirtean metaprogramming, an comas leabharlannan C a chleachdadh, agus cuid de leabharlannan C ++ agus Amas-C.

Am measg nan atharrachaidhean san fhoillseachadh ùr:

  • Chaidh stad a chuir air an t-seann stoidhle de luchdachadh ghnìomhaiche a chaidh a chleachdadh ann am meur D1. A’ dol an àite opNeg, opAdd_r, opAddAssign, msaa. thàinig opUnary, opBinary, opBinaryRight agus opOpAssign. Cha deach an seann stoidhle de bhith a’ luchdachadh luchd-obrachaidh a mholadh ann an 2019 agus tilgidh e mearachd mar a chaidh a leigeil ma sgaoil 2.100.
  • Tha am prìomh fhacal sguabaidh às air a bhith air a lughdachadh bho 2018. An àite cuir às, bu chòir dhut an gnìomh sgrios no core.memory.__delete a chleachdadh.
  • Chaidh feart @mustuse ùr a chuir an gnìomh a dh’ fhaodar a chuir an sàs ann an seòrsachan structar agus aonaidh mar dhòigh eile air làimhseachadh mhearachdan nuair nach urrainn don chòd eisgeachdan a làimhseachadh (mar eisimpleir, ann am blocaichean @nogc). Mura h-eil abairt air a chomharrachadh leis a’ bhuadh @mustuse air a chleachdadh sa chòd, cruthaichidh an t-inneal-cruinneachaidh mearachd.
  • Airson arrays statach, tha cleachdadh an togalaich “.tupleof” ceadaichte gus sreath luachan (lvalue) fhaighinn de gach eileamaid den raon. falamh foo(int, int, int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analogue foo(1, 2, 3); fleòdradh[3] fa; fa.tupleof = ia.tupleof; // sònrachadh sìmplidh fa = ia a’ leantainn gu dearbhadh mearachd(fa == [1F, 2F, 3F]);

Source: fosgailtenet.ru

Cuir beachd ann