Common Lisp ์–ธ์–ด ๊ตฌํ˜„์ธ SBCL 2.4.1 ๋ฆด๋ฆฌ์Šค

Common Lisp ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌด๋ฃŒ ๊ตฌํ˜„์ธ SBCL 2.4.1(Steel Bank Common Lisp)์ด ์ถœ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ๋Š” Common Lisp ๋ฐ C๋กœ ์ž‘์„ฑ๋˜์—ˆ์œผ๋ฉฐ BSD ๋ผ์ด์„ผ์Šค์— ๋”ฐ๋ผ ๋ฐฐํฌ๋ฉ๋‹ˆ๋‹ค.

์ƒˆ ๋ฆด๋ฆฌ์Šค์—์„œ:

  • ๋งˆํฌ ์˜์—ญ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ณ‘๋ ฌ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ์— ์ปดํŒฉํŠธ ์ธ์Šคํ„ด์Šค ํ—ค๋”์— ๋Œ€ํ•œ ๋ถ€๋ถ„ ์ง€์›์„ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฐ˜ํ™˜ ์œ ํ˜•์ด ์„ ์–ธ๋œ ํ•จ์ˆ˜์˜ ๊ฒฝ์šฐ ๋Œ€๊ทœ๋ชจ SAFETY ๋ฐ DEBUG 3 ์ตœ์ ํ™” ๋ชจ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ˜ํ™˜ ๊ฐ’์— ๋Œ€ํ•ด ์œ ํ˜• ๊ฒ€์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋ฉ๋‹ˆ๋‹ค.
  • FreeBSD ํ”Œ๋žซํผ์—์„œ๋Š” libpthread์™€์˜ ์—ฐ๊ฒฐ์ด ๊ตฌํ˜„๋˜๊ณ  ASLR(์ฃผ์†Œ ๊ณต๊ฐ„ ๋ฌด์ž‘์œ„ํ™”)์ด ๋น„ํ™œ์„ฑํ™”๋ฉ๋‹ˆ๋‹ค.
  • 64๋น„ํŠธ riscv ๋ฐ ppc ์•„ํ‚คํ…์ฒ˜์˜ ์–ด์…ˆ๋ธ”๋ฆฌ๊ฐ€ ๋ณต์›๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • Fastrem-32 ์ง€์›์€ ๋ชจ๋“  ํ”Œ๋žซํผ์— ๋Œ€ํ•ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค(์ตœ์ ํ™”๋œ FLOOR ๊ณ„์‚ฐ์„ ์œ„ํ•ด).
  • ํ‘œ์‹œ ์˜์—ญ ๋ณ‘๋ ฌ ๊ฐ€๋น„์ง€ ์ˆ˜์ง‘๊ธฐ์— ์˜ํ•œ ๋ฉ”๋ชจ๋ฆฌ ์••์ถ• ํ›„ ์ด๋™๋œ ์ค„์ด ๋‹ค์‹œ ํ”Œ๋Ÿฌ์‹œ๋˜๋Š” ๋ฒ„๊ทธ๋ฅผ ์ˆ˜์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • SATISFIES ์œ ํ˜•์„ ์‚ฌ์šฉํ•˜์—ฌ ์ผ๋ถ€ ๊ตฌ์„ฑ์„ ์ฒ˜๋ฆฌํ•  ๋•Œ ์ปดํŒŒ์ผ๋Ÿฌ ๋ฐ˜๋ณต ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ์˜ ๋‹ค์–‘ํ•œ ๋ถ€๋ถ„(ํŒจํ‚ค์ง€, ์œ ๋‹ˆ์ฝ”๋“œ ํ…Œ์ด๋ธ”)์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ•ด์‹œ ํ…Œ์ด๋ธ”์€ ์ถฉ๋Œ์ด ์—†๋Š”(์™„๋ฒฝํ•œ) ํ•ด์‹œ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋„๋ก ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.
  • ํด๋ž˜์Šค ๊ตฌ์กฐ ๊ณ„์ธต์— ๋Œ€ํ•œ TYPECASE ๋งคํฌ๋กœ๋Š” ์ถฉ๋Œ ์—†๋Š” ํ•ด์‹œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„๋ฉ๋‹ˆ๋‹ค.
  • ์„ฑ๋Šฅ์„ ์ตœ์ ํ™”ํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์ˆ˜ ์˜คํ”„์…‹์ด ์žˆ๋Š” ์ธ๋ฑ์Šค์— ๋Œ€ํ•œ ๊ฒฝ๊ณ„ ๊ฒ€์‚ฌ๊ฐ€ ์ œ๊ฑฐ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ธ๋ฑ์Šค๊ฐ€ ํฌ๊ธฐ์™€ ์˜คํ”„์…‹ ๊ฐ„์˜ ์ฐจ์ด๋ณด๋‹ค ์ž‘๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ถ”๊ฐ€ DIGIT-CHAR ์ตœ์ ํ™” ๋ฐ์ดํ„ฐ๋ฅผ ๊ณ ๋ คํ•ฉ๋‹ˆ๋‹ค.
  • ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ์ƒˆ๋กœ์šด ๋‹จ์  ์ˆ˜์ •์„ ํ†ตํ•ด ์‹œํ€€์Šค์—์„œ ์ƒ์„ฑ๋œ ์ธ์ˆ˜์— ๋Œ€ํ•œ ์ผ๋ถ€ APPLY, CONCATENATE ๋ฐ MAKE-ARRAY ํ˜ธ์ถœ์—์„œ ์ค‘๊ฐ„ ๊ฐ’์„ ์ œ์™ธํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค.
  • ๋ฃจํ”„ "(LOOP FOR X IN (REVERSE LIST) ...)"์˜ ์ž‘์—…์ด ๊ฐ€์†ํ™”๋˜์–ด ์ด์ œ ๋” ์ ์€ ๋‹จ์ ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • "(LOOP... APPEND...)" ๋ฃจํ”„๋Š” NIL์„ ์ถ”๊ฐ€ํ•  ๋•Œ ๋” ๊ฐ„๊ฒฐํ•˜๊ณ  ์ž‘์—…๋Ÿ‰์ด ์ ์Šต๋‹ˆ๋‹ค.
  • ๋‹ค์–‘ํ•œ ๋ฐฐ์—ด์— ๋Œ€ํ•œ ์œ ํ˜• ๊ฒ€์‚ฌ๊ฐ€ ๊ฐ€์†ํ™”๋˜๊ณ  ๋‹จ์ถ•๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์ถœ์ฒ˜ : opennet.ru

์ฝ”๋ฉ˜ํŠธ๋ฅผ ์ถ”๊ฐ€