ΠΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ Π΅ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅ SBCL 2.4.1 (Steel Bank Common Lisp), ΡΠ²ΠΎΠ±ΠΎΠ΄Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° Π΅Π·ΠΈΠΊΠ° Π·Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Common Lisp. ΠΠΎΠ΄ΡΡ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠ° Π΅ Π½Π°ΠΏΠΈΡΠ°Π½ Π½Π° Π΅Π·ΠΈΡΠΈΡΠ΅ Common Lisp ΠΈ C ΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π° ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½Π· BSD.
Π Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- Π ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈΡ ΡΡΠ±ΠΈΡΠ°Ρ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ Π°Π»Π³ΠΎΡΠΈΡΡΠΌ mark-region, Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΡΠ°ΡΡΠΈΡΠ½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π·Π°Π³Π»Π°Π²ΠΈΡΡΠ° Π½Π° ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ½ΠΈΡΠ΅ ΠΈΠ½ΡΡΠ°Π½ΡΠΈΠΈ.
- ΠΠ° ΡΡΠ½ΠΊΡΠΈΠΈ Ρ ΠΎΠ±ΡΠ²Π΅Π½ΠΈ Π²ΡΡΡΠ°ΡΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Π² ΡΠ΅ΠΆΠΈΠΌΠΈ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Ρ Π²ΠΈΡΠΎΠΊΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π½Π° SAFETY ΠΈ Π² ΡΠ΅ΠΆΠΈΠΌ DEBUG 3 Π΅ ΠΎΡΠΈΠ³ΡΡΠ΅Π½Π° ΠΏΡΠΎΠ²Π΅ΡΠΊΠ° Π½Π° ΡΠΈΠΏΠ° Π½Π° Π²ΡΡΡΠ°Π½ΠΈΡΠ΅ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ.
- ΠΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° FreeBSD Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ΠΎ ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Ρ libpthread ΠΈ Π΅ Π΄Π΅Π°ΠΊΡΠΈΠ²ΠΈΡΠ°Π½Π° ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎΡΡΡΠ° Π½Π° Π°Π΄ΡΠ΅ΡΠ½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ (ASLR).
- ΠΡΠ·ΡΡΠ°Π½ΠΎΠ²Π΅Π½Π° Π΅ ΡΠ±ΠΎΡΠΊΠ°ΡΠ° Π½Π° 64-Π±ΠΈΡΠΎΠ²ΠΈ Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠΈ riscv ΠΈ ppc.
- ΠΠ° Π²ΡΠΈΡΠΊΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° fastrem-32 (Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½ΠΈ ΠΈΠ·ΡΠΈΡΠ»Π΅Π½ΠΈΡ FLOOR).
- ΠΡΡΡΡΠ°Π½Π΅Π½ Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ, ΠΊΠΎΠΉΡΠΎ Π²ΠΎΠ΄Π΅ΡΠ΅ Π΄ΠΎ ΠΏΠΎΠ²ΡΠΎΡΠ½ΠΎ ΠΏΠΎΡΠΈΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅ΠΌΠ΅ΡΡΠ΅Π½ΠΈ ΡΠ΅Π΄ΠΎΠ²Π΅ ΡΠ»Π΅Π΄ ΡΠΏΠ»ΡΡΠ½ΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΎΡ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈΡ ΡΡΠ±ΠΈΡΠ°Ρ Π½Π° Π±ΠΎΠΊΠ»ΡΠΊ mark-region.
- Π Π΅ΡΠ΅Π½ Π΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌΡΡ Ρ Π·Π°ΡΠΈΠΊΠ»ΡΠ½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΠΏΡΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΊΠΎΠ½ΡΡΡΡΠΊΡΠΈΠΈ Ρ ΡΠΈΠΏΠΎΠ²Π΅ SATISFIES.
- Π₯Π΅Ρ-ΡΠ°Π±Π»ΠΈΡΠΈΡΠ΅, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½ΠΈ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ°ΡΡΠΈ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° (ΠΏΠ°ΠΊΠ΅ΡΠΈ, Unicode ΡΠ°Π±Π»ΠΈΡΠΈ), ΡΠ° ΠΏΡΠ΅ΠΎΠ±ΡΠ°Π·ΡΠ²Π°Π½ΠΈ Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° Ρ Π΅Ρ ΡΡΠ½ΠΊΡΠΈΠΈ, ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½ΠΈ ΠΎΡ ΠΊΠΎΠ»ΠΈΠ·ΠΈΠΈ (perfect).
- ΠΠ°ΠΊΡΠΎΡ TYPECASE Π·Π° ΠΉΠ΅ΡΠ°ΡΡ ΠΈΠΈ ΠΎΡ ΡΡΡΡΠΊΡΡΡΠΈ ΠΊΠ»Π°ΡΠΎΠ²Π΅ Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½ Ρ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ Π½Π° Ρ Π΅Ρ Π±Π΅Π· ΠΊΠΎΠ»ΠΈΠ·ΠΈΠΈ.
- Π‘ ΡΠ΅Π» ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° ΡΠ° ΠΏΡΠ΅ΠΌΠ°Ρ Π½Π°ΡΠΈ ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Π·Π° Π³ΡΠ°Π½ΠΈΡΠΈ Π·Π° ΠΈΠ½Π΄Π΅ΠΊΡΠΈ Ρ ΠΏΠΎΡΡΠΎΡΠ½Π½ΠΈ.offsets, ΠΊΠΎΠ³Π°ΡΠΎ ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΡΡ Π·Π½Π°Π΅, ΡΠ΅ ΠΈΠ½Π΄Π΅ΠΊΡΡΡ Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΡΠΊ ΠΎΡ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈ.offset.
- Π ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° ΡΠ° ΠΎΡΡΠ΅ΡΠ΅Π½ΠΈ Π΄ΠΎΠΏΡΠ»Π½ΠΈΡΠ΅Π»Π½ΠΈ Π΄Π°Π½Π½ΠΈ Π·Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡ DIGIT-CHAR.
- Π ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΈΠ·ΠΊΠ»ΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π½ΠΈ ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈ Π² ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½ΠΈΡ Π½Π° APPLY, CONCATENATE ΠΈ MAKE-ARRAY Π·Π° Π°ΡΠ³ΡΠΌΠ΅Π½ΡΠΈ, ΠΈΠ·Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΎΡ ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎΡΡΠΈ Ρ Π½ΠΎΠ²ΠΈ cons-ΠΌΠΎΠ΄ΠΈΡΠΈΠΊΠ°ΡΠΈΠΈ.
- Π£ΡΠΊΠΎΡΠ΅Π½Π° Π΅ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π½Π° ΡΠΈΠΊΡΠ»Π° Β«(LOOP FOR X IN (REVERSE LIST) β¦)Β», ΠΊΠΎΠΉΡΠΎ ΡΠ΅Π³Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ cons-ΠΎΠ²Π΅.
- Π¦ΠΈΠΊΡΠ»ΡΡ Β«(LOOP β¦ APPEND β¦)Β» ΡΡΠ°Π½Π° ΠΏΠΎ-ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½ ΠΈ ΠΈΠ·Π²ΡΡΡΠ²Π° ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠΎ ΡΠ°Π±ΠΎΡΠ° ΠΏΡΠΈ Π΄ΠΎΠ±Π°Π²ΡΠ½Π΅ Π½Π° NIL.
- Π£ΡΠΊΠΎΡΠ΅Π½ΠΈ ΠΈ ΡΡΠΊΡΠ°ΡΠ΅Π½ΠΈ ΡΠ° ΠΏΡΠΎΠ²Π΅ΡΠΊΠΈΡΠ΅ Π·Π° ΡΠΈΠΏ Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΠΌΠ°ΡΠΈΠ²ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru
