የቫላ ፕሮግራሚንግ ቋንቋ ማጠናከሪያ ማሻሻያ 0.50.4

ለቫላ ፕሮግራሚንግ ቋንቋ 0.50.4 የአቀናባሪ አዲስ ስሪት ተለቋል። የረጅም ጊዜ ድጋፍ (LTS) ቅርንጫፍ Vala 0.48.14 (ለኡቡንቱ 18.04 የታሸገ) እና የሙከራ ቅርንጫፍ Vala 0.51.3 እንዲሁ ተዘምኗል።

የቫላ ቋንቋ በነገር ላይ ያተኮረ የፕሮግራሚንግ ቋንቋ ሲሆን ከ C # ወይም Java ጋር ተመሳሳይ የሆነ አገባብ ያቀርባል። Gobject (Glib Object System) እንደ የነገር ሞዴል ጥቅም ላይ ይውላል። የማህደረ ትውስታ አስተዳደር የሚከናወነው በባለቤትነት (በባለቤትነት ያልተያዙ አገናኞች) ወይም ARC (የአጥፊዎችን መተካት እና የነገሮች ማመሳከሪያ ቆጣሪዎችን በማጠናቀር ደረጃ) በመጠቀም ነው ።

ቋንቋው ለግንዛቤ፣ ላምዳ ተግባራት፣ መገናኛዎች፣ ልዑካን እና መዝጊያዎች፣ ምልክቶች እና ክፍተቶች፣ ልዩ ሁኔታዎች፣ ንብረቶች፣ ባዶ ያልሆኑ አይነቶች፣ ለአካባቢያዊ ተለዋዋጮች አይነት ማጣቀሻ ድጋፍ አለው። መሣሪያው በC (ቫላ-ጊርስ፣ ቫላ-ኤክትራ-ቫፒስ) ውስጥ ካሉ ቤተ-መጻሕፍት ጋር ብዙ ማያያዣዎች አሉት። የቫላ ፕሮግራሞች ወደ ሲ ውክልና ተተርጉመዋል እና ከዚያም በመደበኛ C ማጠናከሪያ ይጠናቀቃሉ ። ፕሮግራሞችን በስክሪፕት ሁነታ ማሄድ ይቻላል ።

የለውጦች ዝርዝር፡-

  • ለግንባታ ክፍል Foo{ public Foo(params string[] args){ foreach (var arg in args) ህትመት(arg) ለፓራም ቁልፍ ቃል ተጨማሪ ድጋፍ ታክሏል፤ }
  • ኮድጅን
    • ለSimpleType struct ገንቢዎች የተሻሻለ ድጋፍ (ለምሳሌ typedef uint32_t people_inside ለማሰር ይጠቅማል፤ ከ C) [SimpleType] [CCode (cname = "people_inside")] ህዝባዊ መዋቅር PeopleInside: uint32 {}
    • የተሻሻለ የ"NoWrapper" ባህሪ አያያዝ።
    • CCode.type_cname እና get_ccode_type_name() ለክፍሎች ተፈቅዶላቸዋል።
    • G_TYPE_INSTANCE_GET_CLASS/INTERFACE ሁልጊዜ ለውጫዊ ምልክቶች ያገለግላል።
    • GLib.Value በክምር ላይ ለመመደብ በነጻ-መጠቅለያ g_boxed_free ጥቅም ላይ ውሏል።
    • የGLib.Value (የማንኛውም የእሴት ዓይነት ሁለንተናዊ መያዣ) በተዘዋዋሪ በሚከፈትበት ጊዜ የማስታወሻ ፍንጣቂ።
    • በክምር የተመደበውን መዋቅር ወደ ቁልል ሲያንቀሳቅስ ቋሚ የማስታወሻ ፍሰት።
    • የወላጅ መዋቅር አጥፊ ውርስ ይረጋገጣል
    • የጎጆ ውሰድ መግለጫዎችን የምልክት_ማጣቀሻ ትክክለኛ መልሶ ማግኘት ተሻሽሏል።
    • ሁሉንም የጎጆ የCCodeCastExpression ክስተቶች ተወግዷል።
    • ወደ ነባሪ ሲግናል ተቆጣጣሪ መደወል በስህተት ቆሟል።
    • ተገናኝቷል "string.h" ለ strcmp () (POSIX መገለጫ፣ ቫላ መደበኛውን C ቤተ-መጽሐፍት ብቻ በመጠቀም ኮድ የሚያመነጭበት ሁነታ)።
  • ቫላ፡
    • የተባዙ የጥቅል ምንጭ ፋይሎችን ማግኘት የተሻሻለ።
    • የGtkChild መስኮች/ንብረቶች ባለቤት እንዳልሆኑ መታወቅ አለባቸው።
    • የGtkChild መስክ/ንብረቱን እንደገና መመደብ የተከለከለ ነው።
    • ለላምዳ ስራ በሚሰጥበት ጊዜ የበለጠ ጥብቅ ሁኔታ ተተግብሯል።
    • ነጠላ ጥቅም ላይ የሚውሉ SimpleType መዋቅሮችን መጠቀም የተከለከለ ነው.
    • GLib.Value unboxing በባለቤትነት ያልነበረው ዋጋ መመለሱን ያረጋግጣል።
    • GLib.Valueን ወደ ውድቅ struct/ቀላል አይነት መውሰድ የተከለከለ ነው።
    • በመሠረታዊ ዓይነቶች/ክፍል/በይነገጽ ቅድመ ሁኔታዎች ውስጥ የታከለ የክርክር ዓይነት ማጣራት።
    • የቫ_ሊስት መለኪያዎች/ተለዋዋጮችን ማንሳት የተከለከለ ነው።
    • C UBን ለማስቀረት የአንድ መዋቅር ጠቋሚን የያዙ አጠቃላይ መረጃዎች ሲደርሱ ወደ ትክክለኛው ዓይነት መጣል አለባቸው።
    • የተተገበረ አይነት ኢንፈረንስ ለ "in" inside enum.
    • ሊፃፍ ለሚችለው መስክ የተሰጡ ስራዎች የተሻሻለ አውድ ፍተሻ።
    • "stdlib.h" ለ Enum.to_string() (POSIX) ተካትቷል።
    • ትክክለኛው ምንጭ_ማጣቀሻ የተዘጋጀው ለተዘዋዋሪ "ይህ" እና "ውጤት" ነው
    • ልክ ላልሆነ የውስጥ ኦፕሬተር እና ያልተወሳሰቡ አገላለጾች የስህተት መልእክት አቅርቧል።
  • ኮዴክተር፡ ተከታዩን ማከል አቁሟል ";" ከሰውነት በኋላ ከStatement.
  • ግርዶሽ
    • በምናባዊ ዘዴ ወይም ምልክት ያልተደገፈ ስም-አልባ ልዑካን ማሰናዳት ቀርቧል።
    • ለስልቶች እና ግቤቶች "ውክልና_ዒላማ" ሜታዳታ ተተግብሯል።
    • የ"destroy_notify_cname" ዲበ ውሂብን ወደ መስኮች ተግብር
    • ለክፍሎች እና መገናኛዎች "type_get_function" ሜታዳታ ተግብር
    • ነባሪ ካልሆነ Ccode.type_cnameን ለክፍሎች ያዘጋጁ።
  • girwriter፡ የምሳሌ መለኪያ አካላት መፃፋቸውን ያረጋግጣል።
  • girwriter: የተተገበረ ነባሪ ምልክት ተቆጣጣሪ ውፅዓት.
  • libvaladoc/html፡ html documentation valadoc.org ሲያመነጩ የመጀመሪያውን ቅደም ተከተል ለመተው የተወገዱ የመዋቅር መስኮች መደርደር ተወግዷል።
  • libvaladoc: የ Api.Class.is_compact ዋጋዎች በትክክል መመለሳቸውን ያረጋግጡ
  • libvaladoc፡ ለ"agedge" graphviz ቤተ-መጽሐፍት ታክሏል።
  • ማሰሪያዎች፡
    • ማሰሪያዎችን በሚፈጥሩበት ጊዜ ጥቃቅን ጥገናዎች፡ ካይሮ፣ ጎብጀክት-2.0፣ ፓንጎ፣ goocanvas-2.0፣ እርግማኖች፣ alsa፣ bzlib፣ sqlite3፣ libgvc፣ posix፣ gstreamer-1.0፣ gdk-3.0፣ gdk-x11-3.0፣ gtk+-3.0፣ gtk ፊውዝ፣ libxml-4
    • gdk-pixbuf-2.0፡ Pixbuf.save_to_streamv_async() አስተካክል
    • gio-2.0፡ PollableOutputStream.write*_nonblocking() binding fix
    • gio-2.0, gtk+-3.0, gtk4: የቫ_ሊስት መለኪያዎች ግልጽ c-አይነት ባህሪያት ተጥለዋል
    • gio-2.0፡ ለአንዳንድ AppInfo/ፋይል ጠሪ የተመረጠ።*() ዘዴዎች
    • glib-2.0፡ ታክሏል GLib.[S]List.is_empty() ባዶ ላልሆኑ ምቹ ዘዴዎች
    • glib-2.0፡ የማስረጃ_ሴምፒ* ተግባርን ማሰር [#395]
    • glib-2.0፡ የተሻሻለ አማራጭEntry.flags የመስክ አይነት
    • glib-2.0፡ PtrArray አሁን የ GenericArray ንዑስ ክፍል ነው።
    • gstreamer-1.0፡ CCode.type_id of the MiniObject ወደ G_TYPE_BOXED ተቀናብሯል [#1133]
    • gtk+-2.0,javascriptcoregtk-4.0: የ CCode.type_cname ባህሪ የተስተካከለ አጠቃቀም
    • gtk + -3.0, gtk4: የተወሰኑ የውክልና መመለሻ እሴቶች እና ግቤቶች ተስተካክለዋል
    • gtk4: ወደ ስሪት 4.0.2 ተዘምኗል.

ምንጭ: opennet.ru

አስተያየት ያክሉ