Lug 0.5.0

Lug 0.5.0

Ar Fawrth 19, rhyddhawyd llyfrgell C ++ Gorffennaf, sy'n gweithredu gwreiddio iaith parth-benodol ar gyfer mynegi parsers fel estynedig gramadeg ymadroddion cystrawennol, a'i ddosbarthu o dan y drwydded MIT.

Nodweddion llyfrgell:

  • Cystrawen naturiol sy'n atgoffa rhywun o ieithoedd generadur parser allanol, gyda chefnogaeth ar gyfer priodoleddau a gweithredoedd semantig.
  • Y gallu i weithio gyda gramadegau sy'n sensitif i gyd-destun gyda thablau symbolau, amodau a rhagfynegiadau cystrawennol.
  • Mae'r parsers a gynhyrchir yn cael eu crynhoi i beitcode a'u gweithredu mewn peiriant rhithwir dosrannu.
  • Gwahaniad clir rhwng rheolau cystrawen a geirfa gyda'r gallu i ffurfweddu sgipio ymhlyg o nodau gofod gwyn.
  • Cefnogaeth ar gyfer dychweliad chwith uniongyrchol ac anuniongyrchol, gyda lefelau blaenoriaeth i gyfyngu ar isfynegiadau gyda dychweliad chwith a dde cymysg.
  • Cefnogaeth lawn ar gyfer dosrannu testun UTF-8, gan gynnwys lefel 1 a chydymffurfiad rhannol â lefel 2 o'r safon dechnegol Mynegiadau Rheolaidd Unicode UTS #18.
  • Trin ac adfer gwallau gan ddefnyddio methiannau wedi'u labelu, rheolau adfer, a thrinwyr gwallau.
  • Olrhain rhifau llinell a cholofn yn awtomatig, lled tab y gellir ei addasu ac aliniad.
  • Llyfrgell penawdau yn unig sy'n defnyddio'r llyfrgell safonol yn unig a galluoedd y safon C++17. Dyfodol sy'n gydnaws â safonau C++20 a C++23.
  • Maint llyfrgell gymharol fach, gyda'r nod o gadw cyfanswm y llinellau ym mhob ffeil pennawd i lai na 6000 o linellau o god cryno.

Rhestr o newidiadau:

  • Mae cyfarwyddebau ar gyfer casgliadau a phriodoleddau gwrthrychau wedi'u gweithredu. Cyfarwyddeb casglu newydd [d] syntheseiddio dilyniant neu gynhwysydd cysylltiadol o fath C sy'n cynnwys elfennau wedi'u cydosod o briodoleddau etifeddol neu wedi'u syntheseiddio yn y mynegiant e. Yn yr un modd, mae yna gyfarwyddebau syntheseiddio newydd [e], synthesize_shared [e] a synthesize_unique [d] i syntheseiddio gwrthrychau, awgrymiadau cyffredin ac awgrymiadau unigryw yn ôl eu trefn, wedi'u hadeiladu o briodoleddau'r cydrannau yn y mynegiad e.
  • Mae'r gyfarwyddeb synthesize_collect wedi'i gweithredu, sy'n cyfuno'r cyfarwyddebau casglu a syntheseiddio i wella darllenadwyedd cod a lleihau nifer y templedi wrth adeiladu strwythurau data cymhleth o elfennau wedi'u dosrannu. Mae hyn yn arbennig o ddefnyddiol ar gyfer creu casgliadau nythu, megis araeau o wrthrychau neu gynwysyddion cysylltiadol â mathau cymhleth o werthoedd.
  • Ychwanegwyd lug dosbarth templed ::recursive_wrapper i drin dibyniaethau cylchol mewn coed cystrawen haniaethol, yn enwedig y rhai sy'n defnyddio amrywiolyn std::variant.
  • Wedi gweithredu cefnogaeth ar gyfer safon Unicode 16.0.0 ac wedi ychwanegu cefnogaeth ar gyfer offer adeiladu yn CMakeLists.txt.
  • Mae'r mapio rhwng ystod a nodau ASCII wedi'i optimeiddio, gan arwain at welliannau perfformiad sylweddol ar gyfer gweithrediadau prosesu testun cyffredin. Ychwanegwyd llwybrau byr arbenigol ar gyfer prosesu nodau ASCII yn unig, sy'n sylweddol gyflymach na chod prosesu Unicode.
  • Gweithredwyd codau op prawf i wneud y gorau o wallau ac ailadrodd codau op i wneud y gorau o nodau gofod gwyn sgipio. Bydd yr optimeiddiadau hyn yn cael eu galluogi'n llawn yn y datganiad nesaf yn dilyn trawsnewidiadau coed mynegiant arfaethedig.
  • Triniaeth well o ffynonellau mewnbwn gyda gwell byffro ac adrodd ar wallau ar gyfer std::istream, a gwell cefnogaeth modd rhyngweithiol sy'n trin mewnbwn llinell wrth linell yn gywir ar gyfer sesiynau terfynol neu ar gyfer gramadegau â gogwydd llinell.
  • Wedi symud std:: cefnogaeth istream i ffeil pennawd ar wahân . Mae hyn yn lleihau'r amser casglu ac yn lleihau dibyniaethau pennawd ar gyfer prosiectau nad oes angen swyddogaeth I/O ffrydio arnynt.
  • Rhesymeg trwsio parser wedi'i ail-weithio trwy fewnlinio cyfarwyddiadau yn lug::basic_parser i gyd-fynd yn well â'r newidiadau pensaernïaeth ffrâm stac a gyflwynwyd yn fersiwn 0.4.0, a oedd yn gwella trefniadaeth a pherfformiad cod.
  • Problem sefydlog yn enghraifft parser SYLFAENOL, pan fydd swyddogaethau arfer (e.e. FNA(X)) wedi'u cwblhau yn ystod y gwerthusiad. Achoswyd hyn gan newidiadau yn fersiwn 0.4.0 a ailosododd lug::environment yn ystod gweithrediadau dosrannu nythu. Mae swyddogaeth newydd, lug::environment::should_reset_on_parse, wedi'i ychwanegu i ddarparu rheolaeth fanwl dros yr ymddygiad hwn, gan ganiatáu i'r amgylchedd barhau yn ystod parsau nythu pan fo angen.
  • Mae seilwaith cynhwysfawr ar gyfer profi rhaglenni sampl wedi'i ychwanegu.
  • Mae'r hierarchaeth cyfeiriadur cynnwys wedi'i hailadeiladu.
  • Er mwyn darparu cydnawsedd ehangach, mae GitHub CI wedi ychwanegu cefnogaeth ar gyfer casglwyr ychwanegol (GCC 9/10/11/12, Clang 14/15/16/17).
  • Mae dadansoddwyr statig Clang ac MSVC wedi'u hychwanegu at GitHub CI.
  • Glanweithydd Cyfeiriad Ychwanegol (ASan), Glanweithydd Ymddygiad Anniffiniedig (UBSan), a Glanweithydd Cof (MSan) i GitHub CI.
  • Ychwanegwyd integreiddiad clang-taclus i GitHub CI.
  • Mae GitHub CI wedi dileu'r defnydd o Ubuntu 20.04.

Ffynhonnell: linux.org.ru

Prynu gwesteio dibynadwy ar gyfer gwefannau sydd â diogelwch DDoS, gweinyddwyr VPS VDS 🔥 Prynu cynnal gwefannau dibynadwy gyda diogelwch DDoS, gweinyddion VPS VDS | ProHoster