Ажурирање компајлера програмског језика Вала 0.50.4

Објављена је нова верзија компајлера за програмски језик Вала 0.50.4. Грана за дугорочну подршку (ЛТС) Вала 0.48.14 (упакована за Убунту 18.04) и експериментална грана Вала 0.51.3 су такође ажуриране.

Језик Вала је објектно оријентисани програмски језик који обезбеђује синтаксу сличну Ц# или Јава. Гобјецт (Глиб Објецт Систем) се користи као објектни модел. Управљање меморијом се врши власништвом (везе у власништву/непоседовању) или коришћењем АРЦ-а (замена деструктора и декремента бројача референци објеката у фази компилације).

Језик има подршку за интроспекцију, ламбда функције, интерфејсе, делегате и затварања, сигнале и слотове, изузетке, својства, типове који нису нулти, закључивање типа за локалне варијабле. Комплет долази са великим бројем веза за библиотеке у Ц (вала-гирс, вала-ектра-вапис). Вала програми се преводе у Ц репрезентацију и затим компајлирају стандардним компајлером Ц. Могуће је покренути програме у режиму скрипте.

Списак измена:

  • Додата је додатна подршка за кључну реч парамс за конструкторе цласс Фоо{ публиц Фоо(парамс стринг[] аргс){ фореацх (вар арг ин аргс) принт(арг); } }
  • цодеген:
    • Побољшана подршка за конструкторе структуре СимплеТипе (на пример, користи се за повезивање типедеф уинт32_т пеопле_инсиде; из Ц) [СимплеТипе] [ЦЦоде (цнаме = "пеопле_инсиде")] јавна структура ПеоплеИнсиде : уинт32 {}
    • Побољшано руковање атрибутом „НоВраппер“.
    • ЦЦоде.типе_цнаме и гет_ццоде_типе_наме() су дозвољени за класе.
    • Г_ТИПЕ_ИНСТАНЦЕ_ГЕТ_ЦЛАСС/ИНТЕРФАЦЕ се увек користи за спољне симболе.
    • Користи се г_бокед_фрее у фрее-враппер-у за додељивање ГЛиб.Валуе на гомилу.
    • Поправљено је цурење меморије током имплицитног распакивања ГЛиб.Валуе (универзални контејнер било ког типа вредности).
    • Поправљено је цурење меморије приликом премештања структуре додељене хеап-у у стек.
    • Осигурано је наслеђивање деструктора надређене структуре
    • Побољшано је исправно преузимање симбол_референце угнежђених израза за пребацивање.
    • Уклоњена су сва угнежђена појављивања ЦЦодеЦастЕкпрессион.
    • Заустављено је погрешно позивање подразумеваног руковаоца сигналом.
    • Повезани "стринг.х" за стрцмп() (ПОСИКС профил, режим у коме Вала генерише код користећи само стандардну Ц библиотеку).
  • Вала:
    • Побољшано откривање дупликата изворних датотека пакета.
    • Поља/својства ГткЦхилд морају бити проглашена без власништва.
    • Поновно додељивање поља/својства ГткЦхилд је забрањено.
    • Строжи услов је примењен на ламбда приликом делегирања задатка.
    • Забрањено је коришћење једнократних СимплеТипе структура.
    • Отпакивање ГЛиб.Валуе обезбеђује да се врати вредност која није у власништву.
    • Забрањено је пребацивање ГЛиб.Валуе у структурни/једноставни тип са нултом.
    • Додата провера аргумента типа у основним типовима/класи/предуслови интерфејса.
    • Хватање параметара/променљивих ва_лист је забрањено.
    • Генерици који садрже показивач на структуру морају се пребацити на исправан тип када им се приступа да би се избегло Ц УБ.
    • Имплементирано закључивање типа за "ин" унутар енума.
    • Побољшана провера контекста за доделе у пољу за писање.
    • Укључен "стдлиб.х" за Енум.то_стринг() (ПОСИКС).
    • Исправна изворна референца је постављена за имплицитне променљиве "ово" и "резултат"
    • Обезбеђена је порука о грешци за неважећи интерни операнд унарних израза.
  • Програмер: Заустављено је додавање „;“ после тела ВитхСтатемент.
  • Гирпарсер:
    • Обезбеђена је обрада анонимног делегата који није подржан виртуелним методом или сигналом.
    • Примењени метаподаци „делегате_таргет“ за методе и параметре
    • Примените метаподатке „дестрои_нотифи_цнаме“ на поља
    • Примените "типе_гет_фунцтион" метаподатке за класе и интерфејсе
    • Подесите ЦЦоде.типе_цнаме за класе ако није подразумевано.
  • гирвритер: Осигурава да су елементи параметара инстанце уписани.
  • гирвритер: Имплементиран подразумевани излаз руковаоца сигналом.
  • либваладоц/хтмл: Уклоњено сортирање поља структуре да би се оставио њихов оригинални редослед приликом генерисања хтмл документације валадоц.орг
  • либваладоц: Уверите се да су вредности за Апи.Цласс.ис_цомпацт исправно преузете
  • либваладоц: Додан омот за библиотеку грапхвиз "агедге".
  • Вези:
    • Мање исправке приликом генерисања веза: цаиро, гобјецт-2.0, панго, гооцанвас-2.0, цурсес, алса, бзлиб, склите3, либгвц, посик, гстреамер-1.0, гдк-3.0, гдк-к11-3.0, гтк, гтк осигурач, либкмл-3.0
    • гдк-пикбуф-2.0: Поправи Пикбуф.саве_то_стреамв_асинц()
    • гио-2.0: ПоллаблеОутпутСтреам.врите*_нонблоцкинг() исправка везивања
    • гио-2.0,гтк+-3.0,гтк4: Експлицитни атрибути ц-типа параметара ва_лист се одбацују
    • гио-2.0: Изабрани инвокер који недостаје за неке методе АппИнфо/Филе.*().
    • глиб-2.0: Додат ГЛиб.[С]Лист.ис_емпти() практичних метода за не-нулл методе.
    • глиб-2.0: Везивање ассерт_цмп* функције [#395]
    • глиб-2.0: Побољшан тип поља ОптионЕнтри.флагс
    • глиб-2.0: ПтрАрраи је сада подкласа ГенерицАрраи
    • гстреамер-1.0: ЦЦоде.типе_ид МиниОбјецт је подешен на Г_ТИПЕ_БОКСЕД [#1133]
    • гтк+-2.0,јавасцриптцорегтк-4.0: Исправљено коришћење атрибута ЦЦоде.типе_цнаме
    • гтк+-3.0,гтк4: Исправљене су неке вредности и параметре враћања делегата
    • гтк4: Ажурирано на верзију 4.0.2.

Извор: опеннет.ру

Додај коментар