Azimuthimi i compiler-it të gjuhës programuese Vala 0.50.4

Doli një version i ri i kompajlerit për gjuhën e programimit Vala 0.50.4. Po ashtu, është përmirësuar dega me mbështetje afatgjate (LTS) Vala 0.48.14 (e paketuar për Ubuntu 18.04) dhe dega eksperimentale Vala 0.51.3.

Gjuha Vala është një gjuhë programimi objektivisht orientuar, që ofron një sintaksë të ngjashme me gjuhët C# ose Java. Si model objekti përdoret Gobject (Sistemi i Objekteve Glib). Menaxhimi i memories bëhet përmes pronësisë (referenca të pronësuara/dhe të papronësuara) ose me ndihmën e ARC (zëvendësimi i destruktoreve dhe zvogëlimi i numrit të referencave të objekteve në fazën e kompajlimit).

Gjuha ka mbështetje për introspeksionin, funksionet lambda, ndërfaqet, delegatët dhe kapjet, sinjalet dhe vendet, përjashtimet, atributet, tipet jo-zero, dhe përjashtimin e tipit për variablat lokalë. Vjen me një numër të madh lidhjesh për bibliotekat në gjuhën C (vala-girs, vala-extra-vapis). Programet në gjuhën Vala përkthehen në një përfaqësim në gjuhën C dhe pastaj kompajlohen me kompajlerin standard për gjuhën C. Ka mundësinë e ekzekutimit të programeve në modalitetin e skenarit.

Lista e ndryshimeve:

  • Shtesa e mbĂ«shtetjes pĂ«r fjalĂ«t kyçe params pĂ«r konstruktorrat class Foo{ public Foo(params string[] args){ foreach (var arg in args) print(arg); } }
  • kodifiko:
    • PĂ«rmirĂ«simi i mbĂ«shtetjes pĂ«r konstruktorrat SimpleType struct (pĂ«r shembull pĂ«rdoret pĂ«r tĂ« lidhur typedef uint32_t people_inside; nga C) [SimpleType] [CCode (cname = «people_inside»)] public struct PeopleInside : uint32 {}
    • PĂ«rmirĂ«simi i trajtimit tĂ« atributit «NoWrapper».
    • PĂ«r klasat, Ă«shtĂ« lejuar CCode.type_cname dhe get_ccode_type_name().
    • GjithmonĂ« pĂ«rdoret G_TYPE_INSTANCE_GET_CLASS/INTERFACE pĂ«r simbolet e jashtme.
    • PĂ«rdorur g_boxed_free nĂ« free-wrapper pĂ«r tĂ« vendosur GLib.Value nĂ« heap.
    • PĂ«rmirĂ«suar rrjedhjen e memories gjatĂ« unboxing-it implicit tĂ« GLib.Value (kontejner dĂ«shmues i çdo tipi vlera).
    • Korrigjuar rrjedhjen e memories gjatĂ« zhvendosjes sĂ« strukturĂ«s sĂ« alokuar nĂ« heap nĂ« stack.
    • Siguruar trashĂ«giminĂ« e destruktori tĂ« strukturĂ«s prind.
    • Korrigjuar marrjen e saktĂ« tĂ« simbol_reference tĂ« shprehjeve tĂ« brendshme cast.
    • Hequr tĂ« gjitha shprehjet e brendshme CCodeCastExpression.
    • Ndalur thirrjen e pasaktĂ« tĂ« trajtuesit tĂ« sinjaleve me default.
    • PĂ«rfshirĂ« «string.h» pĂ«r strcmp() (profili POSIX, modaliteti nĂ« tĂ« cilin Vala gjeneron kod duke pĂ«rdorur vetĂ«m bibliotekĂ«n standarde C).
  • Vala:
    • PĂ«rmirĂ«suar zbulimi i kopjeve tĂ« skedarĂ«ve burimorĂ« tĂ« paketave.
    • Fushat/atributet GtkChild duhet tĂ« shpallen si unowned.
    • Riinvestimi i fushĂ«s/atributit GtkChild Ă«shtĂ« i ndaluar.
    • Kushti pĂ«r lambda nĂ« dĂ«rgimin e caktimit Ă«shtĂ« aplikuar mĂ« rigorozisht.
    • Aplikimi i strukturave SimpleType tĂ« njĂ«hershme Ă«shtĂ« i ndaluar.
    • NĂ« GLib.Value unboxing garantohet kthimi i vlerĂ«s unowned.
    • Rrethimi i GLib.Value nĂ« llojin nullable struct/simple Ă«shtĂ« i ndaluar.
    • Kontrolli i argumenteve tĂ« tipit Ă«shtĂ« shtuar nĂ« llojet bazĂ«/parakushtet e klasave/interfejseve.
    • Kapja e parametrave/variablave va_list Ă«shtĂ« e ndaluar.
    • GjenerikĂ«t qĂ« pĂ«rmbajnĂ« tregues nĂ« strukturĂ« duhet tĂ« konvertohen nĂ« llojin e duhur gjatĂ« qasjes pĂ«r tĂ« shmangur UB.
    • ËshtĂ« realizuar dalja e llojeve pĂ«r 'in' brenda enum.
    • PĂ«rmirĂ«simi i kontrollit tĂ« kontekstit gjatĂ« caktimeve nĂ« fushĂ«n writeable.
    • JanĂ« lidhur 'stdlib.h' pĂ«r Enum.to_string() (POSIX).
    • Referenca e saktĂ« source_reference pĂ«r variablat e pavolitura 'this' dhe 'result'.
    • Sigurohet dalja e mesazhit tĂ« gabimit pĂ«r operandĂ«t e papranueshĂ«m tĂ« shprehjeve unare.
  • Codedwriter: Ndalohet shtimi i ' ; ' pĂ«rfundimtar pas trupit tĂ« WithStatement.
  • Girparser:
    • Sigurohet trajtimi i delegatĂ«ve anonimĂ«, tĂ« pa mbĂ«shtetur nga metoda virtuale ose sinjale.
    • Metadatave «delegate_target» tĂ« aplikuara pĂ«r metodat dhe parametrat
    • Metadatave «destroy_notify_cname» tĂ« aplikuara pĂ«r fushat
    • Metadatave «type_get_function» tĂ« aplikuara pĂ«r klasat dhe ndĂ«rfaqet
    • CCode.type_cname Ă«shtĂ« vendosur pĂ«r klasat, nĂ«se nuk i pĂ«rgjigjet vlerĂ«s standarde.
  • girwriter: Ka siguruar regjistrimin e elementeve parametrike tĂ« instancĂ«s.
  • girwriter: Ka implementuar daljen e menaxhuesit tĂ« sinjaleve tĂ« paracaktuar.
  • libvaladoc/html: U hoq renditja e fushave tĂ« strukturave pĂ«r tĂ« ruajtur rendin e tyre origjinal gjatĂ« gjenerimit tĂ« dokumentacionit html nĂ« valadoc.org
  • libvaladoc: ËshtĂ« siguruar marrja e saktĂ« e vlerave pĂ«r Api.Class.is_compact
  • libvaladoc: ËshtĂ« shtuar njĂ« wrapper pĂ«r bibliotekĂ«n «agedge» tĂ« graphviz
  • Bindimet:
    • Korrektime tĂ« vogla gjatĂ« gjenerimit tĂ« lidhjeve: cairo, gobject-2.0, pango, goocanvas-2.0, curses, alsa, bzlib, sqlite3, libgvc, posix, gstreamer-1.0, gdk-3.0, gdk-x11-3.0, gtk+-3.0, gtk4, fuse, libxml-2.0
    • gdk-pixbuf-2.0: Korrigjim pĂ«r Pixbuf.save_to_streamv_async()
    • gio-2.0: Korrigjim pĂ«r lidhjen PollableOutputStream.write*_nonblocking()
    • gio-2.0, gtk+-3.0, gtk4: U hodhĂ«n atributet e dukshme tĂ« tipit c pĂ«r parametrat va_list
    • gio-2.0: Invoker mungues u zgjodh pĂ«r disa metoda AppInfo/File.*()
    • glib-2.0: Shtuar GLib.[S]List.is_empty() metoda praktike pĂ«r jo-null
    • glib-2.0: Binding pĂ«r funksionin assert_cmp* [#395]
    • glib-2.0: PĂ«rmirĂ«suar tipi i fushĂ«s OptionEntry.flags
    • glib-2.0: PtrArray tani nĂ«nklasĂ« GenericArray
    • gstreamer-1.0: CCode.type_id mini-objekti (MiniObject) vendoset si G_TYPE_BOXED [#1133]
    • gtk+-2.0,javascriptcoregtk-4.0: Rregulluar pĂ«rdorimi i atributit CCode.type_cname
    • gtk+-3.0,gtk4: Korrigjuar disa vlera dhe parametra tĂ« kthyera nga delegati
    • gtk4: PĂ«rditĂ«suar nĂ« versionin 4.0.2.

Burimi: opennet.ru

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster