پروگرامنگ لینگویج پرل 5.30.0 کی ریلیز

11 ماہ کی ترقی کے بعد واقعہ پیش آیا پرل پروگرامنگ زبان کی ایک نئی مستحکم شاخ کا اجراء 5.30. نئی ریلیز کی تیاری میں، کوڈ کی تقریباً 620 ہزار لائنوں کو تبدیل کیا گیا، تبدیلیوں نے 1300 فائلوں کو متاثر کیا، اور 58 ڈویلپرز نے ترقی میں حصہ لیا۔

برانچ 5.30 کو چھ سال قبل منظور کیے گئے طے شدہ ترقیاتی شیڈول کے مطابق جاری کیا گیا تھا، جس کا مطلب ہے کہ سال میں ایک بار نئی مستحکم شاخوں کا اجراء اور ہر تین ماہ بعد اصلاحی ریلیز۔ تقریباً ایک ماہ میں، پرل 5.30.1 کی پہلی اصلاحی ریلیز جاری کرنے کا منصوبہ بنایا گیا ہے، جو پرل 5.30.0 کے نفاذ کے دوران نشاندہی کی گئی سب سے اہم غلطیوں کو درست کرے گا۔ پرل 5.30 کے اجراء کے ساتھ ہی، 5.26 برانچ کے لیے سپورٹ بند کر دیا گیا، جس کے لیے مستقبل میں صرف اس صورت میں اپ ڈیٹ جاری کیے جا سکتے ہیں جب سیکیورٹی کے اہم مسائل کی نشاندہی کی جائے۔ تجرباتی برانچ 5.31 کی ترقی کا عمل بھی شروع ہو چکا ہے، جس کی بنیاد پر مئی 2020 میں پرل 5.32 کی مستحکم ریلیز تشکیل دی جائے گی۔

چابی تبدیلیاں:

  • "" آپریشنز کے لیے تجرباتی تعاون کو ریگولر ایکسپریشنز میں شامل کر دیا گیا ہے۔(?‹! پیٹرن)"اور"(?‹ = پیٹرن)»پہلے پروسیس شدہ نامزد ٹیمپلیٹس تک محدود رسائی کے لیے۔ پیٹرن کی تعریف حوالہ نقطہ کے 255 حروف کے اندر ہونی چاہیے۔
  • "{m,n}" ریگولر ایکسپریشن بلاکس میں سائز سپیکیفائر ("n") کی زیادہ سے زیادہ ویلیو 65534 تک بڑھا دی گئی ہے۔
  • محدود شامل کیا گیا۔ کی حمایت مختلف یونیکوڈ سیٹوں کو ڈھکنے والے، ریگولر ایکسپریشنز میں حروف کی مخصوص قسموں کو نمایاں کرنے کے لیے ماسک۔ مثال کے طور پر، اظہار "qr! \p{nv= /(?x) \A [0-5] \z / }!” آپ کو تمام یونیکوڈ حروف کو منتخب کرنے کی اجازت دیتا ہے جو 0 سے 5 تک کے اعداد کی وضاحت کرتے ہیں، بشمول نمبروں کے تھائی یا بنگالی ہجے؛
  • ریگولر ایکسپریشنز میں نامزد حروف کے لیے سپورٹ شامل کیا گیا۔
    اندر کے نمونوں کو واحد اقتباسات (qr'\N{name}') کے ذریعے محدود کیا گیا ہے؛

  • یونیکوڈ تفصیلات کی حمایت کو ورژن میں اپ ڈیٹ کر دیا گیا۔ 12.1. تجرباتی ترقی کا جھنڈا کالوں سے ہٹا دیا گیا ہے۔ sv_utf8_downgrade اور sv_utf8_decode, C زبان میں توسیعات کی ترقی میں استعمال کیا جاتا ہے؛
  • ملٹی تھریڈڈ آپریشن (-Accflags='-DUSE_THREAD_SAFE_LOCALE') کو سپورٹ کرنے والے لوکیل کے ساتھ آپریشنز کے نفاذ کے ساتھ پرل بنانے کی صلاحیت شامل کی گئی۔ پہلے، اس طرح کا نفاذ صرف پرل کا ملٹی تھریڈڈ ورژن بناتے وقت استعمال کیا جاتا تھا، لیکن اب اسے کسی بھی تعمیر کے لیے فعال کیا جا سکتا ہے۔
  • "-Dv" (بہتر ڈیبگنگ آؤٹ پٹ) اور "-Dr" (regex ڈیبگنگ) جھنڈوں کو یکجا کرنا اب تمام ممکنہ ریگولر ایکسپریشن ڈیبگنگ طریقوں کو فعال کرنے کا سبب بنتا ہے۔
  • پہلے فرسودہ خصوصیات کو ہٹا دیا گیا ہے:
    • اب لائن الگ کرنے والے اور وائلڈ کارڈ حروف کے طور پر دستیاب ہے۔ اجازت دی صرف استعمال کریں گرافیم (جامع یونیکوڈ حروف کی اجازت نہیں ہے)۔
    • منقطع "{" کیریکٹر کو ریگولر ایکسپریشنز میں اس سے بچائے بغیر استعمال کرنے کی کچھ طویل متروک شکلوں کے لیے سپورٹ۔
    • یہ حرام ہے sysread(), syswrite(), recv() اور send() فنکشنز کو ":utf8" ہینڈلرز کے ساتھ استعمال کرنا۔
    • فطری طور پر غلط مشروط بیانات میں "میرا" کی تعریفیں استعمال کرنا ممنوع ہے (مثال کے طور پر، "میرا $x اگر 0")۔
    • خصوصی متغیرات "$*" اور "$#" کے لیے سپورٹ کو ہٹا دیا گیا ہے۔
      ڈمپ() فنکشن کی مضمر کالنگ کے لیے سپورٹ بند کر دی گئی ہے (اب آپ کو واضح طور پر CORE::dump() کی وضاحت کرنی ہوگی۔

    • فائل:: گلوب:: گلوب فنکشن کو ہٹا دیا گیا ہے (آپ کو فائل:: گلوب:: بی ایس ڈی_گلوب استعمال کرنا چاہئے)۔
    • غلط یونیکوڈ ترتیب واپس کرنے کے خلاف pack() میں تحفظ شامل کیا گیا۔
    • XS کوڈ (C بلاکس) میں UTF-8 کے ساتھ آپریشن کرنے والے میکروز کے استعمال کے لیے سپورٹ کا خاتمہ اگلی ریلیز تک ملتوی کر دیا گیا ہے۔
  • کارکردگی کی اصلاح:
    • UTF-8 سے کریکٹر لے آؤٹ میں ترجمے کی کارروائیوں کو تیز کر دیا گیا ہے (کوڈ پوائنٹ)، مثال کے طور پر، آرڈر("\x7fff") آپریشن کو انجام دینے کے لیے اب 12% کم ہدایات درکار ہیں۔ UTF-8 کرداروں کی ترتیب کی درستگی کی جانچ کرنے والے آپریشنز کی کارکردگی میں بھی اضافہ کیا گیا ہے۔
    • finalize_op() فنکشن میں بار بار آنے والی کالز کو ختم کر دیا گیا ہے۔
    • یکساں حروف کو سمیٹنے اور ریگولر ایکسپریشنز میں کریکٹر کلاسز کی وضاحت کے لیے کوڈ میں معمولی اصلاح کی گئی ہے۔
    • آپٹمائزڈ دستخط شدہ قسم کی تعریفوں کو غیر دستخط شدہ (IV سے UV) میں تبدیل کرنا؛
    • انٹیجرز کو سٹرنگ میں تبدیل کرنے کے الگورتھم کو ایک کی بجائے دو ہندسوں کو ایک ساتھ پراسیس کر کے تیز کر دیا گیا ہے۔
    • بہتری کی گئی ہے۔ تیار LGTM کے تجزیہ پر مبنی؛
    • regcomp.c، regcomp.h اور regexec.c فائلوں میں آپٹمائزڈ کوڈ؛
    • ریگولر ایکسپریشنز میں، ASCII حروف کے ساتھ "qr/[^a]/" جیسے پیٹرن کی پروسیسنگ کو نمایاں طور پر تیز کیا گیا ہے۔
  • Minix3 پلیٹ فارم کے لیے سپورٹ بحال کر دی گئی ہے۔ مائیکروسافٹ ویژول اسٹوڈیو 2019 کمپائلر (بصری C++ 14.2) کا استعمال کرتے ہوئے تعمیر کرنا ممکن ہے؛
  • بنیادی پیکیج میں شامل ماڈیولز کے تازہ ترین ورژن۔ ماڈیولز کو مرکزی ساخت سے ہٹا دیا گیا ہے۔ بی::ڈیبگ и مقامی::کوڈز.

ماخذ: opennet.ru

نیا تبصرہ شامل کریں