Yo pibliye DMD 2.111, konpilatè referans pou lang D a. Kòd konpilatè a distribye anba BSL (Boost Software License) gratis la. Sistèm ki sipòte yo se Linux, Windows, macOS ak FreeBSD.
Langaj D a gen yon tip estatik, li gen yon sentaks menm jan ak C/C++, epi li bay pèfòmans langaj konpile yo. Langaj D a prete tou kèk karakteristik nan langaj dinamik ki itil pou amelyore efikasite devlopman ak asire sekirite. Pa egzanp, gen sipò pou: tablo asosyatif, definisyon tip endirèk, jesyon memwa otomatik, zouti pwogramasyon paralèl, modèl, konpozan pou metapwogramasyon. Ranmasè fatra disponib opsyonèlman. Pwogram D yo ka itilize bibliyotèk C, ansanm ak kèk bibliyotèk C++ ak Objective-C.
Vèsyon an gen ladan chanjman ki fèt depi plis pase sis mwa ki pa t enkli nan vèsyon 2.110 la, ki te plis yon vèsyon korektif ki te gen sèlman koreksyon. Pami chanjman ki fèt nan vèsyon 2.111 la:
- Te ajoute karakteristik pwofil tan bati, ki pèmèt atravè drapo "-ftime-trace" nan du DMD la. Konpilateur LDC a te deja gen karakteristik sa a. Videyo ak enstriksyon sou kòman yo sèvi ak tan-tras.
- Drapo a du "-i" kounye a tou kòrèkteman trete dosye lang C yo.
- Yo ajoute kapasite pou itilize sentaks asiyasyon nan modèl mixin yo: mixin MyMixinTemplate!(Args) myName; // ansyen stil mixin myName = MyMixinTemplate!(Args); // nouvo stil
- Pou metòd "extern(Objective-C)", selektè yo kounye a pwodui otomatikman menm si yo pa espesifye atribi "@selector" la: extern(Objective-C) extern class NSObject { static NSObject alloc(); // Jenere kòm "alloc" NSObject init(); // Jenere kòm "init" } extern(Objective-C) class Fox : NSObject { bool fluffy; @property bool isFluffy() => fluffy; // "isFluffy" @property void isFluffy(bool valè) { fluffy = valè; } // "meteFluffy:" void yip(int a) @selector("bark:") { // "bark:" // ... } void fèYonBonSom(int a, int b, int c) { // "fèYonBonSom:b:c:" // ... } }
- Te ajoute ekspresyon plasman "nouvo" pou inisyalize ak valè espesifye a (san GC). estrikti S { flote d; antye mwen; karaktè c; } ⌠S s; S* p = nouvo (s) S(3.14, 42, 'X'); // mete nouvo objè a nan s
- Nouvo mo kle "__rvalue", ki pèmèt ou aplike semantik deplase. Yo itilize pou ajoute primitif bibliyotèk "deplase" ak "pi devan".
- Yo ajoute drapo "-preview=safer", ki aktive tout verifikasyon yo itilize nan kòd "@safe" pou tout kòd, alòske pati ki difisil pou ranje (tankou rele fonksyon "@system") yo ap toujou otorize nan mòd Safer D.
- Amelyore sipò pou klas done "ref" ak "oto ref", ki kounye a ka aplike nan varyab lokal, mondyal ak estatik. Paramèt "oto ref" yo ta dwe sèlman defini ansanm.
- Pèmèt erè pwodiksyon pou kèk karakteristik ki gen estati depreche. Pami yo ranplase "efase" ak "detwi", "echwe" nan milti-valè "ka", oto-inisyalizasyon nan varyab.
- Yo kapab kounye a itilize sentaks ki pi kout la pou defini metòd yo tou nan konstriktè yo: struct Number { int x; anile vf(int); sa a(int x) => vf(x); sa a(flote x) => sa a(cast(int) x); }
- Ajoute nan ekzekisyon an Windows-lyezon ak BCrypt.
- Bibliyotèk estanda a aplike ODBC 4.0 enpòte ak elaji metòd pou travay ak Unicode, vèsyon an te ogmante a 16.
- Nouvo API pou "std.sumtype", kote twa fonksyon "has!T", "get!T" ak "tryGet!T" te parèt.
- Yon ensèk ak "cImportPaths" te fikse nan manadjè pakè dub la.
Anplis de sa, nou ka remake devlopman yon kantite gwo pwojè nan lang D la:
Nan domèn devlopman jwèt (GameDev), plizyè motè ap devlope: HipremeEngine se yon motè kwa-platfòm ki, anplis prensipal sistèm òdinatè yo, Windows/Linux/macOS sipòte iOS/Android/Xbox/WebAssembly/PS Vita. Yon lòt pwojè, Dagon, kontinye devlopman yon motè 3D ak kapasite grafik vaste.
Nan domèn bibliyotèk grafik, anplis OpenGL, sipò pou bibliyotèk tankou SDL (ki gen ladan vèsyon 3 ak 2) ak Sokol ap devlope. Travay ak imaj grafik (dekodaj / kodaj) devlope nan pake a gam, ki ka travay ak anpil fòma. Gen sipò pou tou de klasik PNG, JPEG ak BMP imaj, osi byen ke pi modèn JPEG-XL, QOI ak QOIX.
Yon nouvo ekosistèm bibliyotèk gID te fòme pou bati koòdone itilizatè grafik (GUI), ki bay lyen nan anpil bibliyotèk ki baze sou GObject, ki gen ladan sipò konplè pou GTK 3/4, Arrow/Parquet ak Adw. Ou ka jwenn kèk egzanp ak yon lis bibliyotèk ki enkli nan depo a. Fondasyon deklaratif likid la, ki apwopriye pou itilize nan jwèt, ap pran popilarite tou.
Nan domèn devlopman entènèt sou achitekti RISC-V, yo demontre travay fondasyon Serverino a. Kad entènèt minimalist e pèfòman sa a, san lòt depandans, ka fonksyone sou machin ki fèb anpil, tankou kèk sistèm entegre ki gen ti memwa.
Devlopman bibliyotèk pou animasyon marionèt 2D an tan reyèl, Inochi2D, ap kontinye. Dènye inovasyon nan pwojè a gen ladan yo bibliyotèk jesyon memwa separe ak yon pwogram ekzekisyon pèsonalize, ki pèmèt anpil karakteristik langaj yo dwe itilize san yon kolektè fatra.
Sous: opennet.ru
