ప్రోగ్రామింగ్ లాంగ్వేజ్ ట్రాన్స్లేటర్ వాలా 0.54.0 యొక్క కొత్త వెర్షన్ విడుదల చేయబడింది. వాలా భాష అనేది C# లేదా జావా మాదిరిగానే వాక్యనిర్మాణాన్ని అందించే ఆబ్జెక్ట్-ఓరియెంటెడ్ ప్రోగ్రామింగ్ లాంగ్వేజ్. వాలా కోడ్ ఒక C ప్రోగ్రామ్గా అనువదించబడింది, ఇది ఒక ప్రామాణిక C కంపైలర్ ద్వారా బైనరీ ఫైల్గా కంపైల్ చేయబడుతుంది మరియు లక్ష్య ప్లాట్ఫారమ్ యొక్క ఆబ్జెక్ట్ కోడ్గా కంపైల్ చేయబడిన అప్లికేషన్ వేగంతో అమలు చేయబడుతుంది. స్క్రిప్ట్ మోడ్లో ప్రోగ్రామ్లను అమలు చేయడం సాధ్యపడుతుంది. గ్నోమ్ ప్రాజెక్ట్ ఆధ్వర్యంలో భాష అభివృద్ధి చేయబడుతోంది. గోబ్జెక్ట్ (గ్లిబ్ ఆబ్జెక్ట్ సిస్టమ్) ఆబ్జెక్ట్ మోడల్గా ఉపయోగించబడుతుంది. కంపైలర్ కోడ్ LGPLv2.1 లైసెన్స్ క్రింద పంపిణీ చేయబడింది.
భాష ఆత్మపరిశీలన, లాంబ్డా ఫంక్షన్లు, ఇంటర్ఫేస్లు, డెలిగేట్లు మరియు మూసివేతలు, సిగ్నల్లు మరియు స్లాట్లు, మినహాయింపులు, లక్షణాలు, నాన్-నల్ రకాలు, లోకల్ వేరియబుల్స్ (var) కోసం టైప్ ఇన్ఫరెన్స్కు మద్దతునిస్తుంది. రిఫరెన్స్ లెక్కింపు ఆధారంగా మెమరీ నిర్వహణ నిర్వహించబడుతుంది. భాష కోసం సాధారణీకరించిన ప్రోగ్రామింగ్ లైబ్రరీ libgee అభివృద్ధి చేయబడింది, ఇది అనుకూల డేటా రకాల కోసం సేకరణలను సృష్టించే సామర్థ్యాన్ని అందిస్తుంది. ఫోర్చ్ స్టేట్మెంట్ని ఉపయోగించి సేకరణ మూలకాల గణనకు మద్దతు ఉంది. గ్రాఫిక్స్ ప్రోగ్రామ్ల ప్రోగ్రామింగ్ GTK గ్రాఫిక్స్ లైబ్రరీని ఉపయోగించి నిర్వహించబడుతుంది.
కిట్ C భాషలో లైబ్రరీలకు పెద్ద సంఖ్యలో బైండింగ్లతో వస్తుంది. వాలా ట్రాన్స్లేటర్ Genie భాషకు మద్దతును అందిస్తుంది, ఇది సారూప్య సామర్థ్యాలను అందిస్తుంది, కానీ పైథాన్ ప్రోగ్రామింగ్ లాంగ్వేజ్ ద్వారా ప్రేరణ పొందిన సింటాక్స్తో ఉంటుంది. Geary ఇమెయిల్ క్లయింట్, బడ్జీ గ్రాఫికల్ షెల్, షాట్వెల్ ఫోటో మరియు వీడియో ఫైల్ ఆర్గనైజేషన్ ప్రోగ్రామ్ మరియు ఇతర ప్రోగ్రామ్లు వాలా భాషలో వ్రాయబడ్డాయి. ఎలిమెంటరీ OS పంపిణీ అభివృద్ధిలో భాష చురుకుగా ఉపయోగించబడుతుంది.
ప్రధాన ఆవిష్కరణలు:
- వేరియబుల్ పారామితుల సంఖ్యతో ప్రతినిధులకు మద్దతు జోడించబడింది;
- POSIX ప్రొఫైల్కు పర్యాయపదంగా ఉండే LIBC ప్రొఫైల్ జోడించబడింది;
- POSIX ప్రొఫైల్ మోడ్లో మెరుగైన తరం;
- టైప్ ఇన్ఫరెన్స్ (var?)తో శూన్య విలువను కలిగి ఉండే వేరియబుల్స్ డిక్లేర్ చేసే సామర్థ్యాన్ని జోడించారు;
- వారసత్వం (సీలు) కోసం నిషేధించబడిన తరగతులను ప్రకటించే సామర్థ్యం జోడించబడింది;
- శూన్యమైన (a.?b.?c) తరగతి ఫీల్డ్లకు సురక్షిత యాక్సెస్ ఆపరేటర్ జోడించబడింది;
- స్ట్రక్చర్ కంటెంట్లను శూన్యంగా ప్రారంభించడం అనుమతించబడింది (const Foo[] BARS = { { "bar", 42 }, null };);
- స్థిరమైన శ్రేణుల కోసం పునఃపరిమాణం() ఆపరేషన్ నిషేధించబడింది;
- ఫంక్షన్ కాల్ని శూన్యం (((శూన్యం) not_void_func()కి ప్రసారం చేయడానికి ప్రయత్నిస్తున్నప్పుడు హెచ్చరిక అవుట్పుట్ జోడించబడింది;
- GLib.Array మూలకం రకాలపై పరిమితి తీసివేయబడింది;
- foreach() స్టేట్మెంట్లో స్థిర "అన్ఓన్డ్ var" యాజమాన్య వారసత్వం;
- webkit2gtk-4.0కి బైండింగ్ వెర్షన్ 2.33.3కి అప్డేట్ చేయబడింది;
- gstreamerకు బైండింగ్ వెర్షన్ 1.19.0+ git మాస్టర్కి నవీకరించబడింది;
- gtk4కి బైండింగ్ వెర్షన్ 4.5.0~e681fdd9కి నవీకరించబడింది;
- gtk+-3.0 కోసం బైండింగ్ వెర్షన్ 3.24.29+f9fe28ceకి అప్డేట్ చేయబడింది
- gio-2.0,glib-2.0కి బైండింగ్ వెర్షన్ 2.69.0కి నవీకరించబడింది;
- linux కోసం, SocketCANకు బైండింగ్లు జోడించబడ్డాయి;
- glib-2.0, gio-2.0, gstreamer-rtp-1.0, javascriptcoregtk-4.0, gobject-2.0, pango, linux, gsl, rest-0.7, libusb, libusb-1.0, pixman-1, webkitb-2, webkitb-4.0 కోసం బైండింగ్లలో పరిష్కారాలు పొడిగింపు-11, xXNUMX, zlib, gnutls;
- gedit-2.20 మరియు webkit-1.0 బైండింగ్లు తీసివేయబడ్డాయి;
- GIR ఆధారంగా నవీకరించబడిన బైండింగ్లు;
- ఉత్పత్తి చేయబడిన C కోడ్ని తనిఖీ చేసే సామర్థ్యం పరీక్షా వ్యవస్థకు జోడించబడింది;
- మెరుగైన girparser, girwriter, valadoc, libvaladoc/girimporter;
- వివిధ కంపైలర్ భాగాల యొక్క పేరుకుపోయిన లోపాలు మరియు లోపాలు పరిష్కరించబడ్డాయి.
మూలం: opennet.ru