Lug 0.5.0

На 19 ΠΌΠ°Ρ€Ρ‚ бСшС пусната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° C++ Lug, Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‰Π° внСдряван ΠΏΡ€Π΅Π΄ΠΌΠ΅Ρ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π΅Π·ΠΈΠΊ Π·Π° изразяванС Π½Π° синтактични Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ ΠΏΠΎΠ΄ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚Π° Π½Π° Ρ€Π°Π·ΡˆΠΈΡ€Π΅Π½ΠΈ Π³Ρ€Π°ΠΌΠ°Ρ‚ΠΈΠΊΠΈ Π½Π° синтактични ΠΈΠ·Ρ€Π°Π·ΠΈ, ΠΈ разпространявана ΠΏΠΎ Π»ΠΈΡ†Π΅Π½Π· MIT.

Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°:

  • ЕстСствСн синтаксис, напомнящ Π½Π° Π΅Π·ΠΈΡ†ΠΈΡ‚Π΅ Π½Π° външни Π³Π΅Π½Π΅Ρ€Π°Ρ‚ΠΎΡ€ΠΈ Π½Π° парсСри, с ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ ΠΈ сСмантични дСйствия.
  • Π’ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° Ρ€Π°Π±ΠΎΡ‚Π° с контСкстно-зависими Π³Ρ€Π°ΠΌΠ°Ρ‚ΠΈΠΊΠΈ с Ρ‚Π°Π±Π»ΠΈΡ†ΠΈ Π½Π° символи, условия ΠΈ синтактични ΠΏΡ€Π΅Π΄ΠΈΠΊΠ°Ρ‚ΠΈ.
  • Π‘Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π°Π½ΠΈ парсСри сС ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡ€Π°Ρ‚ Π² Π±Π°ΠΉΡ‚ΠΊΠΎΠ΄ ΠΈ сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ Π² Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° машина Π·Π° синтактичСн Π°Π½Π°Π»ΠΈΠ·.
  • Ясно Ρ€Π°Π·Π΄Π΅Π»Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρƒ синтактични ΠΈ лСксикални ΠΏΡ€Π°Π²ΠΈΠ»Π° с Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ Π·Π° ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Ρ‰ΠΎ сС пропусканС Π½Π° ΠΏΡ€Π°Π·Π½ΠΈ символи.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° пряка ΠΈ косвСна лява рСкурсия, с Π½ΠΈΠ²Π° Π½Π° ΡΡ‚Π°Ρ€ΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π·Π° Ρ€Π°Π·Π³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΈΠ·Ρ€Π°Π·ΠΈ със смСсСна лява ΠΈ дясна рСкурсия.
  • Пълна ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ Π½Π° тСкст Π² UTF-8 Ρ„ΠΎΡ€ΠΌΠ°Ρ‚, Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚Π΅Π»Π½ΠΎ Π½ΠΈΠ²ΠΎ 1 ΠΈ частично ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ Π½Π° Π½ΠΈΠ²ΠΎ 2 ΠΎΡ‚ тСхничСския стандарт UTS #18 Unicode РСгулярни ΠΈΠ·Ρ€Π°Π·ΠΈ.
  • ΠžΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° ΠΌΠ°Ρ€ΠΊΠΈΡ€Π°Π½ΠΈ ΠΏΠΎΠ²Ρ€Π΅Π΄ΠΈ, ΠΏΡ€Π°Π²ΠΈΠ»Π° Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ ΠΈ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΡ†ΠΈ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ.
  • Автоматично прослСдяванС Π½Π° Π½ΠΎΠΌΠ΅Ρ€Π° Π½Π° Ρ€Π΅Π΄ΠΎΠ²Π΅ ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΈ, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€ΡƒΠ΅ΠΌΠ° ΡˆΠΈΡ€ΠΈΠ½Π° ΠΈ изравняванС Π½Π° табулацията.
  • Π‘ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°, която Π΅ само с Ρ…Π΅Π΄ΡŠΡ€ΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‰Π° само стандартната Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ° ΠΈ Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚ΠΈΡ‚Π΅ Π½Π° стандарта C++17. ΠŸΠ΅Ρ€ΡΠΏΠ΅ΠΊΡ‚ΠΈΠ²Π½ΠΎ Π΅ ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠ° със стандартитС C++20 ΠΈ C++23.
  • ΠžΡ‚Π½ΠΎΡΠΈΡ‚Π΅Π»Π½ΠΎ малък Ρ€Π°Π·ΠΌΠ΅Ρ€ Π½Π° Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠ°Ρ‚Π°, с Ρ†Π΅Π» Π΄Π° сС ΠΏΠΎΠ΄Π΄ΡŠΡ€ΠΆΠ° общият Π±Ρ€ΠΎΠΉ Ρ€Π΅Π΄ΠΎΠ²Π΅ във всички Ρ…Π΅Π΄ΡŠΡ€ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΏΠΎΠ΄ 6000 Ρ€Π΅Π΄Π° Π»Π°ΠΊΠΎΠ½ΠΈΡ‡Π΅Π½ ΠΊΠΎΠ΄.

Бписък с ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈ:

  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ са Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈ Π·Π° ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ ΠΈ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ. Новата Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° collect<C>[e] синтСзира послСдоватСлност ΠΈΠ»ΠΈ асоциативСн ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ ΠΎΡ‚ Ρ‚ΠΈΠΏ C, ΡΡŠΡΡ‚ΠΎΡΡ‰ сС ΠΎΡ‚ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ, ΡΡŠΠ±Ρ€Π°Π½ΠΈ ΠΎΡ‚ наслСдСни ΠΈΠ»ΠΈ синтСзирани Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π² ΠΈΠ·Ρ€Π°Π·Π° e. По аналогия, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ са Π½ΠΎΠ²ΠΈ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈ synthesize<C,A…>[e], synthesize_shared<C,A…>[e] ΠΈ synthesize_unique<C,A…>[e] Π·Π° синтСзиранС Π½Π° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΎΠ±Ρ‰ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΠΈ ΡƒΠ½ΠΈΠΊΠ°Π»Π½ΠΈ ΡƒΠΊΠ°Π·Π°Ρ‚Π΅Π»ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ, ΠΈΠ·Π³Ρ€Π°Π΄Π΅Π½ΠΈ ΠΎΡ‚ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΈ Π½Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚ΠΈΡ‚Π΅ Π² ΠΈΠ·Ρ€Π°Π·Π° e.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²Π° synthesize_collect, която ΠΊΠΎΠΌΠ±ΠΈΠ½ΠΈΡ€Π° Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΈΠ²ΠΈΡ‚Π΅ collect ΠΈ synthesize Π·Π° подобряванС Π½Π° чСтимостта Π½Π° ΠΊΠΎΠ΄Π° ΠΈ намаляванС Π½Π° броя Π½Π° ΡˆΠ°Π±Π»ΠΎΠ½ΠΈΡ‚Π΅ ΠΏΡ€ΠΈ ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅Ρ‚ΠΎ Π½Π° слоТни структури ΠΎΡ‚ Ρ€Π°Π·Π±ΠΈΡ€Π°Π΅ΠΌΠΈ Π΅Π»Π΅ΠΌΠ΅Π½Ρ‚ΠΈ. Π’ΠΎΠ²Π° Π΅ особСно ΠΏΠΎΠ»Π΅Π·Π½ΠΎ Π·Π° създаванС Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΊΠΎΠ»Π΅ΠΊΡ†ΠΈΠΈ, ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ масиви ΠΎΡ‚ ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΈΠ»ΠΈ асоциативни ΠΊΠΎΠ½Ρ‚Π΅ΠΉΠ½Π΅Ρ€ΠΈ със слоТни Ρ‚ΠΈΠΏΠΎΠ²Π΅ стойности.
  • Π”ΠΎΠ±Π°Π²Π΅Π½ Π΅ шаблонСн клас lug::recursive_wrapper Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Ρ†ΠΈΠΊΠ»ΠΈΡ‡Π½ΠΈ зависимости Π² Π΄ΡŠΡ€Π²Π΅Ρ‚Π° Π½Π° абстрактния синтаксис, ΠΏΠΎ-спСциално Ρ‚Π΅Π·ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ std::variant.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° стандарта Unicode 16.0.0 ΠΈ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π½Π° инструмСнти Π·Π° ΠΈΠ·Π³Ρ€Π°ΠΆΠ΄Π°Π½Π΅ Π² CMakeLists.txt.
  • ΠžΠΏΡ‚ΠΈΠΌΠΈΠ·ΠΈΡ€Π°Π½ΠΎ Π΅ сопоставянСто Π½Π° Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ΠΈ ΠΈ Π½Π°Π±ΠΎΡ€ΠΈ ΠΎΡ‚ ASCII символи, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΄ΠΎΠ²Π΅Π΄Π΅ Π΄ΠΎ Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ Π½Π° производитСлността ΠΏΡ€ΠΈ изпълнСниС Π½Π° разпространСни ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° тСкст. Π”ΠΎΠ±Π°Π²Π΅Π½ΠΈ са спСциализирани Π±ΡŠΡ€Π·ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° само Π½Π° ASCII символи, ΠΊΠΎΠΈΡ‚ΠΎ са Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»Π½ΠΎ ΠΏΠΎ-Π±ΡŠΡ€Π·ΠΈ ΠΎΡ‚ ΠΊΠΎΠ΄Π° Π·Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Unicode.
  • Π Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Π½ΠΈ са ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ²Π΅ test Π·Π° оптимизация Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ ΠΈ ΠΎΠΏΠΊΠΎΠ΄ΠΎΠ²Π΅ repeat Π·Π° оптимизация Π½Π° пропусканСто Π½Π° ΠΏΡ€ΠΎΠ±Π΅Π»Π½ΠΈ символи. Π’Π΅Π·ΠΈ ΠΎΠΏΡ‚ΠΈΠΌΠΈΠ·Π°Ρ†ΠΈΠΈ Ρ‰Π΅ Π±ΡŠΠ΄Π°Ρ‚ напълно ΠΈΠ½Ρ‚Π΅Π³Ρ€ΠΈΡ€Π°Π½ΠΈ Π² слСдващото ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ слСд ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΈΡ‚Π΅ трансформации Π½Π° Π΄ΡŠΡ€Π²ΠΎΡ‚ΠΎ Π½Π° ΠΈΠ·Ρ€Π°Π·ΠΈΡ‚Π΅.
  • ΠŸΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½ Π΅ ΠΏΡ€ΠΎΡ†Π΅ΡΡŠΡ‚ Π½Π° ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° Π½Π° Π²Ρ…ΠΎΠ΄Π½ΠΈ ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΡ†ΠΈ с ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° буфСризация ΠΈ ΠΎΡ‚Ρ‡ΠΈΡ‚Π°Π½Π΅ Π½Π° Π³Ρ€Π΅ΡˆΠΊΠΈ Π·Π° std::istream, Π° ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€Π΅Π½Π° ΠΈ ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π΅Π½ Ρ€Π΅ΠΆΠΈΠΌ, ΠΊΠΎΠΉΡ‚ΠΎ ΠΊΠΎΡ€Π΅ΠΊΡ‚Π½ΠΎ ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Π²Π° построчСн Π²Ρ…ΠΎΠ΄ Π·Π° Ρ‚Π΅Ρ€ΠΌΠΈΠ½Π°Π»Π½ΠΈ сСсии ΠΈΠ»ΠΈ Π·Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ΠΈ Π³Ρ€Π°ΠΌΠ°Ρ‚ΠΈΠΊΠΈ.
  • ΠŸΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ°Ρ‚Π° Π½Π° std::istream Π΅ прСмСстСна Π² ΠΎΡ‚Π΄Π΅Π»Π΅Π½ Π·Π°Π³Π»Π°Π²Π΅Π½ Ρ„Π°ΠΉΠ» . Π’ΠΎΠ²Π° ΡΡŠΠΊΡ€Π°Ρ‰Π°Π²Π° Π²Ρ€Π΅ΠΌΠ΅Ρ‚ΠΎ Π·Π° компилация ΠΈ ΠΌΠΈΠ½ΠΈΠΌΠΈΠ·ΠΈΡ€Π° зависимоститС ΠΎΡ‚ заглавия Π·Π° ΠΏΡ€ΠΎΠ΅ΠΊΡ‚ΠΈ, Π½Π° ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ ΠΈΠΌ Π΅ Π½ΡƒΠΆΠ½Π° функционалността Π·Π° ΠΏΠΎΡ‚ΠΎΠΊΠΎΠ²ΠΎ въвСТданС/ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅.
  • ΠŸΡ€Π΅Ρ€Π°Π±ΠΎΡ‚Π΅Π½Π° Π΅ Π»ΠΎΠ³ΠΈΠΊΠ°Ρ‚Π° Π½Π° фиксиранСто Π½Π° парсСра Ρ‡Ρ€Π΅Π· ΠΈΠ½Π»Π°ΠΉΠ½ΠΈΠ½Π³ Π½Π° инструкциитС Π² lug::basic_parser Π·Π° ΠΏΠΎ-Π΄ΠΎΠ±Ρ€ΠΎ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΠΈΠ΅ с ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ Π² Π°Ρ€Ρ…ΠΈΡ‚Π΅ΠΊΡ‚ΡƒΡ€Π°Ρ‚Π° Π½Π° стСковия Ρ„Ρ€Π΅ΠΉΠΌ, прСдставСна Π² вСрсия 0.4.0, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Ρ€ΠΈΠ»ΠΎ организацията Π½Π° ΠΊΠΎΠ΄Π° ΠΈ производитСлността.
  • ΠžΡ‚ΡΡ‚Ρ€Π°Π½Π΅Π½ Π΅ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π² ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° с парсСра. BASIC, ΠΊΠΎΠ³Π°Ρ‚ΠΎ потрСбитСлскитС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€, FNA(X)) ΠΏΡ€ΠΈΠΊΠ»ΡŽΡ‡Π²Π°Ρ…Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° ΠΎΡ†Π΅Π½ΠΊΠ°Ρ‚Π°. Π’ΠΎΠ²Π° бСшС ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅Π½ΠΎ ΠΎΡ‚ ΠΏΡ€ΠΎΠΌΠ΅Π½ΠΈΡ‚Π΅ във вСрсия 0.4.0, ΠΊΠΎΠΈΡ‚ΠΎ Π½ΡƒΠ»ΠΈΡ€Π°Ρ…Π° lug::environment ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ синтактични ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ Π½ΠΎΠ²Π° функция lug::environment::should_reset_on_parse Π·Π° осигуряванС Π½Π° Ρ„ΠΈΠ½ ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ» Π²ΡŠΡ€Ρ…Ρƒ Ρ‚ΠΎΠ²Π° ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅, позволявайки Π½Π° срСдата Π΄Π° остава Π°ΠΊΡ‚ΠΈΠ²Π½Π° ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° Π²Π»ΠΎΠΆΠ΅Π½ΠΈ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π΅ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ.
  • Π”ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ комплСксна инфраструктура Π·Π° тСстванС Π½Π° ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΈ Π½Π° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈ.
  • РСструктурирана Π΅ иСрархията Π½Π° ΠΊΠ°Ρ‚Π°Π»ΠΎΠ·ΠΈΡ‚Π΅ Π·Π° Π²ΠΊΠ»ΡŽΡ‡Π²Π°Π½Π΅.
  • Π—Π° осигуряванС Π½Π° ΠΏΠΎ-ΡˆΠΈΡ€ΠΎΠΊΠ° ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎΡΡ‚ Π² GitHub CI Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄Ρ€ΡŠΠΆΠΊΠ° Π·Π° Π΄ΠΎΠΏΡŠΠ»Π½ΠΈΡ‚Π΅Π»Π½ΠΈ ΠΊΠΎΠΌΠΏΠΈΠ»Π°Ρ‚ΠΎΡ€ΠΈ (GCC 9/10/11/12, Clang 14/15/16/17).
  • Π’ GitHub CI са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ статични Π°Π½Π°Π»ΠΈΠ·Π°Ρ‚ΠΎΡ€ΠΈ Clang ΠΈ MSVC.
  • Π’ GitHub CI са Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ Address Sanitizer (ASan), Undefined Behavior Sanitizer (UBSan) ΠΈ Memory Sanitizer (MSan).
  • Π’ GitHub CI Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° интСграция с clang-tidy.
  • Π’ GitHub CI Π΅ ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ubuntu 20.04.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: linux.org.ru

ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ πŸ”₯ ΠšΡƒΠΏΠ΅Ρ‚Π΅ Π½Π°Π΄Π΅ΠΆΠ΄Π΅Π½ хостинг Π·Π° сайтовС с Π·Π°Ρ‰ΠΈΡ‚Π° ΠΎΡ‚ DDoS, VPS VDS ΡΡŠΡ€Π²ΡŠΡ€ΠΈ | ProHoster