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
