D language compiler 2.100 ထွက်ရှိသည်။

D ပရိုဂရမ်းမင်းဘာသာစကား၏ developer များသည် GNU/Linux၊ Windows၊ macOS နှင့် FreeBSD စနစ်များကို ပံ့ပိုးပေးသည့် ပင်မရည်ညွှန်း compiler DMD 2.100.0 ၏ ထွက်ရှိမှုကို တင်ပြခဲ့ကြသည်။ compiler ကုဒ်ကို အခမဲ့ BSL (Boost Software License) အောက်တွင် ဖြန့်ဝေထားသည်။

D သည် ပုံသေစာရိုက်ထားပြီး၊ C/C++ နှင့် ဆင်တူသော syntax ပါရှိပြီး စုစည်းထားသော ဘာသာစကားများ၏ စွမ်းဆောင်ရည်ကို ပံ့ပိုးပေးကာ ဒိုင်းနမစ်ဘာသာစကားများ၏ ဖွံ့ဖြိုးတိုးတက်မှုထိရောက်မှုနှင့် လုံခြုံရေးအကျိုးကျေးဇူးအချို့ကို ငှားရမ်းပေးပါသည်။ ဥပမာအားဖြင့်၊ ၎င်းသည် associative arrays၊ type inference၊ အလိုအလျောက် memory management၊ parallel programming၊ optional garbage collector၊ template system၊ metaprogramming အစိတ်အပိုင်းများ၊ C libraries များနှင့် အချို့သော C++ နှင့် Objective-C libraries များအတွက် ပံ့ပိုးမှုပေးပါသည်။

အသစ်ထွက်ရှိထားသော အပြောင်းအလဲများထဲတွင်-

  • D1 ဌာနခွဲတွင်အသုံးပြုသည့် အော်ပရေတာပုံစံဟောင်းကို လွန်ကဲစွာတင်ခြင်းအား ရပ်ဆိုင်းလိုက်ပါပြီ။ opNeg၊ opAdd_r၊ opAddAssign စသည်ဖြင့် အစားထိုးထားသည်။ opUnary၊ opBinary၊ opBinaryRight နှင့် opOpAssign တို့ပါလာသည်။ အော်ပရေတာပိုလျှံသောပုံစံဟောင်းကို 2019 ခုနှစ်တွင် ရပ်ဆိုင်းလိုက်ပြီး ထုတ်ဝေမှု 2.100 တွင် အမှားအယွင်းတစ်ခု ချလိုက်ပါမည်။
  • ဖျက်ပစ်သော သော့ချက်စာလုံးကို 2018 ခုနှစ်ကတည်းက ရပ်ဆိုင်းထားသည်။ ဖျက်မည့်အစား ဖျက်ရန် သို့မဟုတ် core.memory.__delete လုပ်ဆောင်ချက်ကို အသုံးပြုသင့်သည်။
  • ကုဒ်သည် ခြွင်းချက်များကို မကိုင်တွယ်နိုင်သောအခါ (ဥပမာ၊ @nogc ဘလောက်များ) တွင် အမှားအယွင်းများကို ကိုင်တွယ်ခြင်း၏ အခြားနည်းလမ်းတစ်ခုအဖြစ် struct နှင့် union အမျိုးအစားများတွင် အသုံးပြုနိုင်သည့် @mustuse ရည်ညွှန်းချက်အသစ်ကို အကောင်အထည်ဖော်ခဲ့သည်။ @mususe attribute ဖြင့် အမှတ်အသားပြုထားသော expression တစ်ခုကို ကုဒ်တွင် အသုံးမပြုပါက၊ compiler သည် error ထုတ်ပေးမည်ဖြစ်ပါသည်။
  • static array များအတွက်၊ ".tupleof" ပိုင်ဆိုင်မှုကိုအသုံးပြုခြင်းသည် array ၏ဒြပ်စင်တစ်ခုစီ၏တန်ဖိုးများ (lvalue) ၏ sequence ကိုရယူရန်ခွင့်ပြုသည်။ void foo(int၊ int၊ int) { /* … */ } int[3] ia = [1, 2, 3]; foo(ia.tupleof); // analogue foo(1, 2, 3); float[3] fa; fa.tupleof = ia.tupleof; // ရိုးရှင်းသောတာဝန် fa = ia သည် အမှားအယွင်းတစ်ခုဖြစ်ပေါ်လာသည်(fa == [1F, 2F, 3F]);

source: opennet.ru

မှတ်ချက် Add