ΠΠ° 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
