Nûvekirina berhevkarê zimanê bernamenûsê Vala 0.50.4

Guhertoyek nû ya kompîlatorê ji bo zimanê bernamesaziyê Vala, guhertoya 0.50.4, derket. Şaxa piştgiriya demdirêj (LTS) ya Vala 0.48.14 jî hate nûvekirin (ji bo pakêtkirî) Ubuntu 18.04) û şaxa ceribandinî Vala 0.51.3.

Zimanê Vala zimanek bernamesaziya obje-oriented e ku hevoksaziyek mîna C# an Java peyda dike. Gobject (Sîstema Glib Object) wekî modela objektê tê bikar anîn. Rêvebiriya bîranînê bi xwedaniyê (girêdanên xwedan / nexwedî) an bi karanîna ARC (guheztina xeraker û kêmkirina jimareyên referansa tiştan di qonaxa berhevkirinê de) tête kirin.

Piştgiriya ziman ji bo hundurîn, fonksiyonên lambda, navber, delege û girtin, îşaret û hêlîn, îstîsna, taybetmendî, celebên ne-nûl, encamdana tîpan ji bo guhêrbarên herêmî heye. Kit bi hejmareke mezin a girêdanên pirtûkxaneyên bi C (vala-girs, vala-extra-vapis) tê. Bernameyên Vala di temsîla C de têne wergerandin û dûv re ji hêla berhevkarek standard C ve têne berhev kirin.

Lîsteya guhertinan:

  • Piştgiriyek zêde ji bo peyva sereke ya parameyan ji bo çêkeran hat zêdekirin class Foo{ public Foo(params string[] args){ foreach (var arg di args) print(arg); } }
  • codegen:
    • Piştgiriya pêşkeftî ji bo çêkerên strukturên SimpleType (mînak ji bo girêdana typedef uint32_t people_inside; ji C) [SimpleType] [CCode (cname = "people_inside")] avahiya giştî PeopleInside : uint32 {}
    • Desthilatdariya çêtir a taybetmendiya "NoWrapper".
    • CCode.type_cname û get_ccode_type_name() ji bo dersan têne destûr kirin.
    • G_TYPE_INSTANCE_GET_CLASS/INTERFACE her tim ji bo sembolên derve tê bikaranîn.
    • Ji bo veqetandina GLib.Value li ser giravê g_boxed_free di belaş-wrapper de tê bikar anîn.
    • Di dema venekirina nepenî ya GLib.Value (konteynirek gerdûnî ya ji her cûre nirxê de lehiyek bîranînê rast kir).
    • Dema ku avahiyek veqetandî ya li stekê diguhezîne lekeyek bîranînê rast kir.
    • Mîrasiya wêrankerê avahiya dêûbav tê misoger kirin
    • Vegerandina rast a sembol_referansê ya bêjeyên hêlînkirî baştir bûye.
    • Hemî bûyerên hêlînê yên CCodeCastExpression rakirin.
    • Bi xeletî bangkirina rêgirê sînyala xwerû rawestiya.
    • Ji bo strcmp() "string.h" ve girêdayî ye (profîla POSIX, moda ku Vala kodê tenê bi karanîna pirtûkxaneya C standard diafirîne).
  • Vala:
    • Naskirina çêtir a pelên çavkaniya pakêtê ya dubare.
    • Zeviyên/taybetmendiyên GtkChild divê nexwedî bêne ragihandin.
    • Ji nû ve tayînkirina zeviya/taybetmendiya GtkChild qedexe ye.
    • Dema ku peywirek şandiye şertek hişktir li lambda hatiye sepandin.
    • Bikaranîna strukturên SimpleType-yek-bikaranîna qedexe ye.
    • Unboxkirina GLib.Value piştrast dike ku nirxa nenas tê vegerandin.
    • Çêkirina GLib.Value ji bo strukturek nullable/cureyek sade qedexe ye.
    • Kontrolkirina argumanên tîpan di pêşmercên bingehîn / çîn / navberê de zêde kir.
    • Girtina parametreyên/guharbarên va_lîsteyê qedexe ye.
    • Generîkên ku nîşanek ji avahiyekê re vedigirin, dema ku têne gihîştin divê li celebê rast werin avêtin da ku C UB dûr nekevin.
    • Encama tîpê ji bo "in" di hundurê enumê de hate bicîh kirin.
    • Kontrolkirina çarçovê ya çêtir ji bo peywirên li qada nivîsandinê.
    • Ji bo Enum.to_string() (POSIX) "stdlib.h" têde heye.
    • Çavkanî_çavkaniya rast ji bo guhêrbarên nepenî "ev" û "encam" tê danîn.
    • Ji bo operandek navxweyî ya nederbasdar a bêjeyên yekane peyamek çewtiyek peyda kir.
  • Сodewriter: Zêdekirina şopa ";" rawestiya. piştî laşê WithStatement.
  • Girparser:
    • Pêvajoya nûnerek nenas ku ji hêla rêbazek an îşaretek virtual ve nayê piştgirî kirin tê peyda kirin.
    • Ji bo rêbaz û parametreyan metadata "delegate_target" sepand
    • Metadata "destroy_notify_cname" li qadan bicîh bikin
    • Ji bo çîn û navberan metadata "type_get_function" bicîh bikin
    • Ji bo dersan CCode.type_cname saz bikin heke ne xwerû.
  • girwriter: Piştrast dike ku hêmanên pîvana nimûneyê hatine nivîsandin.
  • girwriter: Derana hilgirê sînyala xwerû ya bicîhkirî.
  • libvaladoc/html: Rêzkirina zeviyên avahîsaziyê ji holê rakirin da ku dema ku belgeya html-ê çêdikin rêza xweya orîjînal bihêlin valadoc.org
  • libvaladoc: Piştrast bikin ku nirxên Api.Class.is_compact rast têne girtin
  • libvaladoc: Ji bo pirtûkxaneya grafvizê ya "agedge" pêça lê zêde kir
  • Girêdan:
    • Gava ku girêdanan çêdikin sererastkirinên piçûk: kahîre, gobject-2.0, pango, goocanvas-2.0, nifir, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-. sîgorte, libxml-3.0
    • gdk-pixbuf-2.0: Pixbuf.save_to_streamv_async() rast bike
    • gio-2.0: PollableOutputStream.write*_nonblocking() rastkirina girêdanê
    • gio-2.0,gtk+-3.0,gtk4: Taybetmendiyên c-type yên eşkere yên parametreyên va_list têne avêtin
    • gio-2.0: Ji bo hin AppInfo/Pel.*() vekêşkera wenda hilbijartî
    • glib-2.0: Rêbazên hêsan ên GLib.[S]List.is_empty() ji bo ne-null zêde kirin
    • glib-2.0: Girêdana fonksiyona assert_cmp* [#395]
    • glib-2.0: OptionEntry.flags cureyê zeviyê çêtir kirin
    • glib-2.0: PtrArray naha jêr-classek GenericArray e
    • gstreamer-1.0: CCode.type_id ya MiniObject wekî G_TYPE_BOXED hatiye danîn [#1133]
    • gtk+-2.0,javascriptcoregtk-4.0: Bikaranîna rastkirî ya taybetmendiya CCode.type_cname
    • gtk+-3.0,gtk4: Hin nirx û pîvanên vegerandina delegeyan rast kirin
    • gtk4: Ji bo guhertoya 4.0.2 hate nûve kirin.

Source: opennet.ru

Ji bo malperên bi parastina DDoS, serverên VPS VDS mêvandariya pêbawer bikirin 🔥 Hostinga malperê ya pêbawer bi parastina DDoS, serverên VPS VDS bikirin | ProHoster