Lutu 0.5.0

Lutu 0.5.0

A ranar 19 ga Maris, an saki ɗakin karatu na C++ Yuli, aiwatar da sakawa takamaiman harshe na yanki don bayyana parsers kamar yadda tsawo nahawu na maganganun magana, kuma an rarraba a ƙarƙashin lasisin MIT.

Fasalolin ɗakin karatu:

  • Tsarin dabi'a mai tunawa da harsunan janareta na waje, tare da goyan baya ga halaye da ayyukan ma'ana.
  • Ikon yin aiki tare da nahawu masu ma'ana tare da allunan alamar alama, yanayi da ƙa'idodin syntactic.
  • Ana tattara na'urorin da aka ƙirƙira zuwa cikin bytecode kuma ana aiwatar da su a cikin injin kama-da-wane.
  • Tsare-tsare na ƙa'idodin daidaitawa da ƙamus tare da ikon tsara tsalle-tsalle a fakaice na haruffan sararin samaniya.
  • Taimako don komawar hagu kai tsaye da kaikaice, tare da matakan fifiko don bambance fassarorin da aka haɗa tare da haɗakarwa hagu da dama.
  • Cikakken goyan baya don tantance rubutun UTF-8, gami da matakin 1 da yarda da juzu'i tare da matakin 2 na ma'aunin fasaha UTS #18 Unicode na Magana akai-akai.
  • Kuskuren kulawa da farfadowa ta amfani da alamun gazawa, dokokin dawowa, da masu sarrafa kuskure.
  • Bibiya ta atomatik na lambobin layi da shafi, faɗin shafin da za'a iya gyarawa da daidaitawa.
  • Laburaren kai-kawai wanda ke amfani da daidaitaccen ɗakin karatu kawai da fasali na ma'aunin C++17. An tabbatar da gaba don ma'aunin C++20 da C++23.
  • Ingantacciyar girman girman ɗakin karatu, tare da burin kiyaye jimillar layuka a cikin duk fayilolin taken ƙasa da layukan 6000 na taƙaitaccen lambar.

Jerin canje-canje:

  • Umurnin tattarawa da abubuwan da aka aiwatar. Sabuwar umarnin tattarawa [e] yana haɗa jeri ko kwantena mai haɗin gwiwa na nau'in C wanda ya ƙunshi abubuwan da aka haɗa daga abubuwan da aka gada ko haɗaka a cikin kalmar e. Hakazalika, an gabatar da sabbin umarnin haɗawa [e], hada_shared [e] da synthesize_unique [e] don haɗa abubuwa, abubuwan da aka raba, da maƙasudai na musamman bi da bi, waɗanda aka gina daga halayen abubuwan da ke cikin magana e.
  • An aiwatar da umarnin synthesize_collect, wanda ke haɗa tattarawa da haɗa umarni don haɓaka iya karanta lambar da rage adadin tukunyar jirgi yayin gina hadaddun tsarin bayanai daga abubuwan da aka sassare. Wannan yana da amfani musamman don ƙirƙirar tarin gida, kamar tsararrun abubuwa ko kwantena masu haɗaka tare da nau'ikan ƙimar ƙima.
  • Ƙara samfurin nau'i nau'i :: recursive_wrapper don kula da abubuwan dogaro na cyclic a cikin bishiyoyin syntax, musamman waɗanda ke amfani da std :: bambancin.
  • Aiwatar da tallafi don ma'auni na Unicode 16.0.0 da ƙarin tallafi don kayan aikin gini a cikin CMekeLists.txt.
  • Range da ASCII saitin madaidaicin halayen an inganta su, yana haifar da ingantaccen ingantaccen aiki yayin aiwatar da ayyukan sarrafa rubutu gama gari. Haɓaka ƙwararrun hanyoyin sauri don sarrafa haruffan ASCII kawai, waɗanda suke da sauri fiye da lambar sarrafa Unicode.
  • Aiwatar da opcodes don inganta kurakurai da maimaita opcodes don inganta tsallake sararin samaniya. Za a kunna waɗannan haɓakawa gabaɗaya a cikin sakin gaba biyo bayan sauye-sauyen bishiyar magana da aka tsara.
  • Ingantacciyar sarrafa hanyoyin shigar da bayanai, tare da mafi kyawun buffering da rahoton kuskure don std::istream, da ingantattun goyan bayan yanayin ma'amala wanda daidai yake sarrafa shigarwar layi-by-layi don zaman tasha ko na nahawu masu daidaita layi.
  • std :: goyon bayan istream ya koma raba fayil na kai . Wannan yana rage lokutan tattarawa kuma yana rage dogaro da kai don ayyukan da basa buƙatar aikin I/O rafi.
  • Sake aikin parser ya yi tunani ta hanyar sanya umarni a cikin lug :: Basic_parser don ingantacciyar sauye-sauyen tsarin gine-ginen da aka gabatar a cikin 0.4.0, inganta tsarin lambar da aiki.
  • Kafaffen al'amari a cikin misalin fassarori BASIC, lokacin da aka ƙayyade ayyukan mai amfani (misali FNA(X)) yayin kimantawa. Wannan ya faru ne ta hanyar canji a cikin sigar 0.4.0 wanda ya sake saita lug :: muhalli yayin ayyukan da aka gina. Wani sabon aikin lug :: muhalli :: yakamata_reset_on_parse an ƙara shi don samar da ingantaccen iko akan wannan ɗabi'a, yana ba da damar adana yanayin yayin ayyukan ɓarna lokacin da ya dace.
  • An ƙara ingantaccen kayan aiki don shirye-shiryen samfurin gwaji.
  • An sake gina tsarin hada kundayen adireshi.
  • Don samar da daidaituwa mafi girma, GitHub CI ya ƙara tallafi don ƙarin masu tarawa (GCC 9/10/11/12, Clang 14/15/16/17).
  • Clang da MSVC masu nazari na tsaye an ƙara su zuwa GitHub CI.
  • Ƙara Adireshin Sanitizer (ASan), Sanitizer na Halayyar da ba a bayyana ba (UBSan), da Sanitizer (MSan) zuwa GitHub CI.
  • GitHub CI yanzu yana da haɗin gwiwar dangi.
  • GitHub CI ya cire amfani da Ubuntu 20.04.

source: linux.org.ru

Sayi amintaccen masauki don shafuka tare da kariyar DDoS, sabar VPS VDS 🔥 Sayi ingantaccen masaukin yanar gizo tare da kariyar DDoS, sabar VPS VDS | ProHoster