clisp -
کامپایلر،
مفسر و
اشکالزدای
ANSI[38] Common Lisp[1].
clisp [[-h] | [--help]] [--version]
[--license] [-help-image]
[-B lisp-lib-dir] [-b]
[-K linking-set] [-M mem-file]
[-m memory-size] [-L language]
[-N locale-dir]
[-Edomain encoding] [[-q] |
[--quiet] | [--silent] | [-v] | [--verbose]]
[-on-error action] [-repl] [-w]
[-I] [-disable-readline] [[-ansi] |
[-traditional]] [-modern] [-p package]
[-C] [-norc] [-lp directory...]
[-i init-file...]
[-c [-l] lisp-file [-o output-file]...]
[-x expressions...]
[lisp-file [argument...]]
مفسر و
کامپایلر
Common Lisp[1] را
فراخوانی
میکند.
هنگامی که
بدون
آرگومانهای
دستهای (batch)
فراخوانی
شود، read-eval-print loop[2]
(حلقه
خواندن-ارزیابی-چاپ)
را اجرا
میکند که
در آن
عبارتها
به نوبت:
•از
ورودی
استاندارد
خوانده (READ[3])
شده،
•توسط
مفسر لیسپ
ارزیابی
(EVAL[4]) شده،
•و نتایج
آنها به
خروجی
استاندارد
چاپ (PRINT[5])
میشوند.
هنگام
فراخوانی
با -c،
فایلهای lisp
مشخصشده
را به یک
بایتکد
مستقل از
سکو
کامپایل
میکند که
با کارایی
بالاتری
قابل اجرا
است.
هنگام
فراخوانی
با -x،
عبارتهای
lisp مشخصشده
را اجرا
میکند.
هنگام
فراخوانی
با lisp-file،
فایل lisp
مشخصشده
را اجرا
میکند.
حالت
دستهای
گزینهٔ -q را
فعال
میکند.
-h
--help
پیام
راهنمایی
دربارهٔ
نحوهٔ
فراخوانی
CLISP[6] را
نمایش
میدهد.
--version
شماره
نسخهٔ CLISP[6]
را
همانطور
که توسط
تابع LISP-IMPLEMENTATION-VERSION[7]
ارائه
میشود، به
همراه
مقدار
متغیر *FEATURES* و
برخی
اطلاعات
دیگر نمایش
میدهد.
--license
خلاصهای
از اطلاعات
مجوز، یعنی
GNU[8] GPL[9] را
نمایش
میدهد.
-help-image
اطلاعاتی
دربارهٔ
ایمیج
حافظه در
حال
فراخوانی
نمایش
میدهد:
اینکه آیا
برای
اسکریپتنویسی
مناسب است
یا خیر، و
همچنین
مقدار :DOCUMENTATION
ارائهشده
به EXT:SAVEINITMEM را
نمایش
میدهد.
-B lisp-lib-dir
دایرکتوری
نصب را مشخص
میکند. این
دایرکتوری
حاوی
مجموعههای
پیوند (linking sets) و
دیگر
فایلهای
داده است.
این گزینه
معمولاً
ضروری
نیست، زیرا
دایرکتوری
نصب از پیش
در فایل
اجرایی clisp
تعبیه شده
است.
دایرکتوری
lisp-lib-dir
میتواند
بهطور
پویا با
استفاده از
SYMBOL-MACRO[10] CUSTOM:*LIB-DIRECTORY*
تغییر
یابد.
-b
دایرکتوری
نصب را چاپ
کرده و
بلافاصله
خارج
میشود.
رشتهٔ نام (namestring)
متغیر CUSTOM:*LIB-DIRECTORY*
بدون هیچ
گیومهای
چاپ میشود.
این گزینه
بیشتر در
Makefileهای ماژول
کاربرد
دارد؛ برای
نمونه
ببینید: modules/syscalls/Makefile.in
(فایلی در
سورسکدهای
CLISP).
-K linking-set
مجموعهٔ
پیوند (linking set) را
برای اجرا
مشخص
میکند. این
یک
دایرکتوری
(نسبت به
lisp-lib-dir)
است که
دستکم
شامل یک
فایل
اجرایی
اصلی
(زماناجرا
یا runtime) و یک
ایمیج
حافظه
اولیه است.
مقادیر
ممکن
عبارتند از:
base
هستهٔ
اصلی CLISP[6]
full
هسته به
همراه تمام
ماژولهایی
که این نسخه
با آنها
ساخته شده
است؛ بخش 32.2،
“External Modules” را
ببینید.
مقدار
پیشفرض base
است.
-M mem-file
ایمیج
حافظه
اولیه را
مشخص
میکند. این
باید یک
حافظهگرفت
(memory dump) تولیدشده
توسط تابع
EXT:SAVEINITMEM توسط
همین
زماناجرای
clisp باشد. این
فایل ممکن
است با
استفاده از
GNU[8]
gzip[11] فشرده
شده باشد.
-m memory-size
میزان
حافظهای
را تعیین
میکند که
CLISP[6] در
هنگام
راهاندازی
تلاش
میکند
دریافت کند.
این مقدار
ممکن است به
صورتهای
زیر مشخص
شود:
n
nB
اندازهگیریشده
بر حسب بایت
n
nW
اندازهگیری
بر حسب
کلمههای
ماشین (4×n
روی سکوهای
۳۲-بیتی، 8×n
روی سکوهای
۶۴-بیتی)
nK
nKB
اندازهگیری
بر حسب
کیلوبایت
nKW
اندازهگیری
بر حسب
کیلوکلمه
nM
nMB
اندازهگیری
بر حسب
مگابایت
nMW
اندازهگیری
بر حسب
مگاکلمه
پیشفرض ۳
مگابایت
است. مقدار
آرگومان به
بیشتر از 100 KB
محدود شده
است.
این نسخه
از CLISP[6] در
نهایت از
تمام memory-size
استفاده
میکند.
-L language
زبانی را
مشخص
میکند که
CLISP[6] برای
ارتباط با
کاربر
استفاده
میکند. این
مقدار
میتواند
یکی از
گزینههای
english، german، french،
spanish، dutch، russian یا
danish باشد.
زبانهای
دیگر را
میتوان از
طریق متغیر
محیطی[12] LANG
مشخص کرد،
به شرطی که
کاتالوگ
پیام
متناظر با
آن نصب شده
باشد. زبان
میتواند
به صورت
پویا با
استفاده از
SYMBOL-MACRO[10] CUSTOM:*CURRENT-LANGUAGE*
تغییر داده
شود.
-N locale-dir
دایرکتوری
پایهی
پروندههای
محلیسازی
(locale) را مشخص
میکند. CLISP[6]
کاتالوگهای
پیام خود را
در locale-dir/language/LC_MESSAGES/clisp.mo
جستجو
خواهد کرد.
این
دایرکتوری
میتواند
به صورت
پویا با
استفاده از
SYMBOL-MACRO[10] CUSTOM:*CURRENT-LANGUAGE*
تغییر کند.
-Edomain encoding
کدگذاری
مورد
استفاده
برای
دامنهی
مشخصشده
را تعیین
میکند و
پیشفرضی
را که
وابسته به
متغیرهای
محیطی[12]
LC_ALL،
LC_CTYPE و
LANG است
بازنویسی (override)
مینماید.
domain میتواند
موارد زیر
باشد:
file
بر CUSTOM:*DEFAULT-FILE-ENCODING*
اثر
میگذارد
pathname
بر CUSTOM:*PATHNAME-ENCODING*
اثر
میگذارد
terminal
بر CUSTOM:*TERMINAL-ENCODING*
اثر
میگذارد
foreign
بر CUSTOM:*FOREIGN-ENCODING*
اثر
میگذارد
misc
بر CUSTOM:*MISC-ENCODING*
اثر
میگذارد
blank
بر تمام
موارد بالا
اثر
میگذارد.
هشدار
توجه داشته
باشید که
مقادیر این
SYMBOL-MACRO[10]ها که در
یک تصویر
حافظه (memory image)
ذخیره
شدهاند
نادیده
گرفته
میشوند:
این SYMBOL-MACRO[10]ها
پس از
بارگذاری
تصویر
حافظه، بر
اساس محیط
سیستمعامل
بازنشانی
میشوند.
برای تعیین
آنها در
هنگام
راهاندازی
باید از
فایل RC، CUSTOM:*INIT-HOOKS*
یا تابع
راهاندازی
(init function) استفاده
کنید، اما
برای
سازگاری با
سایر
برنامهها
بهتر است
متغیرهای
محیطی[12]
یادشده را
به درستی
تنظیم
نمایید.
بخش 31.1،
“سفارشیسازی
راهاندازی
و خاتمه
فرایند CLISP”
را ببینید.
-q
--quiet
--silent
-v
--verbose
تغییر
سطح پرگویی
(verbosity): به طور
پیشفرض،
CLISP[6] هنگام
راهاندازی
یک اعلان و
هنگام خروج
یک پیام
خداحافظی
نمایش
میدهد، و
متغیرهای
*LOAD-VERBOSE*[13] و
*COMPILE-VERBOSE*[14]
را به
T[15]، و
متغیرهای
*LOAD-PRINT*[13] و
*COMPILE-PRINT*[14]
را طبق
[استاندارد ANSI
CL] به
NIL[16]
مقداردهی
اولیه
میکند.
اولین
-q
اعلان و
پیام
خداحافظی
را حذف
میکند،
دومی
متغیرهای
*LOAD-VERBOSE*[13]،
*COMPILE-VERBOSE*[14]
و
CUSTOM:*SAVEINITMEM-VERBOSE* را به
NIL[16] تنظیم
مینماید.
اولین
-v
متغیرهای
CUSTOM:*REPORT-ERROR-PRINT-BACKTRACE*،
*LOAD-PRINT*[13] و
*COMPILE-PRINT*[14]
را به
T[15]
تنظیم
میکند، و
دومی
CUSTOM:*LOAD-ECHO* را
برابر با
T[15]
قرار
میدهد. این
تنظیمات بر
خروجی
تولیدشده
توسط
گزینههای
-i و
-c اثر
میگذارند.
توجه داشته
باشید که
این
تنظیمات در
حلقه
خواندن-ارزیابی-چاپ
(read-eval-print loop)[2] نیز
باقی
میمانند.
تکرار
-q و
-v
اثر یکدیگر
را خنثی
میکنند؛
برای
نمونه،
-q -q -v -v -v
معادل با
-v
است.
-on-error action
برقراری
گردانندههای
سراسری
خطا، بسته
به
action:
.PP appease
خطاهای
ERROR[18] از نوع
continuable[17]
(قابلادامه)
به WARNING[19] تبدیل
میشوند (با
EXT:APPEASE-CERRORS) و سایر
ERROR[18]ها به روش
پیشفرض
مدیریت
میشوند
debug
خطاهای
ERROR[18] دستور
INVOKE-DEBUGGER[20] را
فراخوانی
میکنند
(رفتار
معمول read-eval-print
loop[2])، و حالت
دستهای (batch mode)
اعمالشده
توسط -c، -x و
lisp-file را
غیرفعال
میکند،
abort
خطاهای
ERROR[18] از نوع
continuable[17]
فرونشانده
میشوند،
سایر ERROR[18]ها
با EXT:ABORT-ON-ERROR لغو (
ABORT[21] )
میشوند
exit
خطاهای
ERROR[18] از نوع
continuable[17]
فرونشانده
میشوند،
سایر ERROR[18]ها
به اجرای
CLISP[6] با EXT:EXIT-ON-ERROR
پایان
میدهند
(رفتار
معمول batch mode).
همچنین
نگاه کنید
به EXT:SET-GLOBAL-HANDLER.
-repl
آغاز یک
read-eval-print loop[2]
تعاملی پس
از پردازش
گزینههای
-c،
-x و
lisp-file و
با بروز هر
ERROR[18] که در حین
این پردازش
SIGNAL[22] شود.
حالت
دستهای (batch mode)
را غیرفعال
میکند.
-w
پس از
اتمام
برنامه،
منتظر
فشرده شدن
یک کلید
میماند.
-I
تعامل
بهتر با
Emacs[23]
(هنگام
اجرای
CLISP[6]
تحت
Emacs[23] با
استفاده از
SLIME[24]،
ILISP[25] و
غیره
کاربرد
دارد). با این
گزینه،
CLISP[6]
بهگونهای
تعامل
میکند که
Emacs[23] بتواند
آن را
پردازش کند:
•اعلانهای
(prompts) غیرضروری
سرکوب
نمیشوند.
•کتابخانه
GNU[8] readline[26] با TAB
(کلید TAB را
ببینید)
مانند یک
نویسه عادی
درجشونده
رفتار
میکند (بخش
Q: A.4.6 را
ببینید).
-disable-readline
عدم
استفاده از
GNU[8] readline[26] حتی در
حالتی که با
آن پیوند
خورده باشد
(linked). این گزینه
زمانی قابل
استفاده
است که
بخواهید
نویسههای
غیر-ASCII[27] را
الصاق
کنید، یا
زمانی که GNU[8]
readline[26] به دلیل
مشکلات نصب
(نسخههای
متفاوت روی
ماشینهای
ساخت و نصب)
یا
پیکربندی
(مقدار
نادرست
متغیر
محیطی[12] TERM)
رفتار
نامناسبی
از خود نشان
دهد.
-ansi
پیروی از
مشخصات [ANSI CL standard]
حتی در
مواردی که
CLISP[6] بهطور
سنتی
متفاوت
بوده است،
از طریق
تنظیم SYMBOL-MACRO[10]
CUSTOM:*ANSI* روی T[15].
-traditional
سنتی:
اثرات
باقیمانده
از -ansi را در
تصویر
حافظه (memory image)
ذخیرهشده
برعکس
میکند.
-modern
نمایی
مدرن از
نمادها
ارائه
میدهد: در
زمان
راهاندازی،
متغیر *PACKAGE*[28]
روی بسته
“CS-COMMON-LISP-USER” تنظیم
شده و *PRINT-CASE*[29]
روی :DOWNCASE
تنظیم
خواهد شد.
این امر
موجب
میشود که
جستجوی
نمادها
حساس به
حروف کوچک و
بزرگ باشد
(بهجز
کلمات
کلیدی و
بستههای
سبک قدیمی) و
کلمات
کلیدی و
نمادهای
ثبتنشده
با اولویت
حروف کوچک
چاپ شوند.
بخش 11.5، “Package
Case-Sensitivity” را
ببینید.
-p package
در زمان
راهاندازی،
مقدار
متغیر *PACKAGE*[28]
روی
بستهای با
نام package
تنظیم
خواهد شد.
مقدار
پیشفرض،
مقدار *PACKAGE*[28]
در زمان
ذخیره
تصویر
حافظه است
که معمولاً
“COMMON-LISP-USER”[30]
میباشد.
-C
کامپایل
در زمان
بارگذاری:
در زمان
راهاندازی،
مقدار
متغیر CUSTOM:*LOAD-COMPILING*
روی T[15]
تنظیم
خواهد شد.
سپس کدی که
در حال LOAD[31]
شدن است،
بلافاصله و
درجا (on the fly) COMPILE[32]
میگردد.
این امر به
بارگذاری
کندتر اما
اجرای
سریعتر
منجر
میشود.
-norc
بهطور
معمول
CLISP[6]
در هنگام
راهاندازی،
فایل
“run control” (RC)[33]
کاربر را
بارگذاری
میکند (این
کار
پس از
پردازش
گزینه
-C
انجام
میشود).
فایل
بارگذاریشده،
.clisprc.lisp یا
.clisprc.fas در
دایرکتوری
خانگی
USER-HOMEDIR-PATHNAME[34]، هر
کدام که
جدیدتر
باشد خواهد
بود. این
گزینه،
یعنی
-norc، از
بارگذاری
فایل RC
جلوگیری
میکند.
-lp directory
دایرکتوریهایی
را برای
افزوده شدن
به CUSTOM:*LOAD-PATHS* در
زمان
راهاندازی
مشخص
میکند. این
کار بعد از
بارگذاری RC file
انجام
میشود (تا
گزینهٔ خط
فرمان را
بازنویسی
نکند)، اما
قبل از
بارگذاری
init-fileهای
تعیینشده
توسط
گزینههای
-i صورت
میپذیرد
(تا
فایلهای
راهاندازی
در
دایرکتوریهای
مشخصشده
جستجو شوند).
میتوان
چندین
گزینهٔ -lp را
تعیین کرد؛
تمام
دایرکتوریهای
مشخصشده
اضافه
خواهند شد.
-i init-file
فایلهای
راهاندازی
را مشخص
میکند تا
در زمان
راهاندازی
LOAD[31] شوند.
این
فایلها
باید
فایلهای lisp
(کد منبع یا
کامپایلشده)
باشند.
میتوان
چندین
گزینهٔ -i را
مشخص کرد؛
تمام
فایلهای
تعیینشده
به ترتیب
بارگذاری
خواهند شد.
-c lisp-file
lisp-fileهای
مشخصشده
را به bytecode (*
.fas)
کامپایل
میکند.
فایلهای
کامپایلشده
میتوانند
بعداً برای
افزایش
کارایی، به
جای
فایلهای
منبع
LOAD[31]
شوند.
حالت
دستهای (batch mode)
را تحمیل
میکند.
-o outputfile
فایل یا
دایرکتوری
خروجی را
برای
کامپایل
آخرین lisp-file
مشخصشده
تعیین
میکند.
-l
یک فهرست
دیساسمبل
از bytecode DISASSEMBLE[35] از
فایلهای
در حال
کامپایل (*.lis)
تولید
میکند.
تنها برای
اشکالزدایی
مفید است.
برای
جزئیات، Section 24.1,
“Function COMPILE-FILE” را
ببینید.
-x expressions
به جای
یک
read-eval-print loop[2]
مجموعهای
از
عبارتهای
دلخواه را
اجرا
میکند.
مقادیر این
عبارتها
به
*STANDARD-OUTPUT*[36]
ارسال
خواهند شد.
به دلیل
پردازش
آرگومانها
توسط پوسته
(shell)،
expressions باید
درون گیومه
دوتایی (double quotes)
قرار
گیرند، و
گیومههای
دوتایی و
بکاسلشها
باید با
بکاسلش
گریز (escape) داده
شوند.
حالت
دستهای (batch mode)
را تحمیل
میکند.
lisp-file [ argument ... ]
یک
lisp-file را
همانطور
که در Section
32.6.2, “Scripting
with CLISP” توضیح
داده شده
است،
بارگذاری و
اجرا
میکند. هیچ
read-eval-print loop[2] وجود
نخواهد
داشت. پیش از
بارگذاری
lisp-file، متغیر
EXT:*ARGS* به
فهرستی از
رشتهها
مقید
میشود که
نمایانگر
argumentها هستند.
خط اول
lisp-file
میتواند
با
#! شروع
شود،
بنابراین
به
CLISP[6]
امکان
میدهد تا
به عنوان
مفسر
اسکریپت
استفاده
شود. اگر
lisp-file
برابر
-
باشد، به
جای فایل از
*STANDARD-INPUT*[36]
استفاده
میشود.
اگر memory image
توسط EXT:SAVEINITMEM با
آرگومان :SCRIPT
برابر با
NIL[16] ایجاد
شده باشد،
این گزینه
غیرفعال
است. در این
صورت LIST[37] EXT:*ARGS*
با lisp-file آغاز
میشود.
این گزینه
باید آخرین
گزینه
باشد.
هیچ RC file اجرا
نخواهد شد.
حالت
دستهای (batch mode)
را تحمیل
میکند.
طبق
معمول، --
پردازش
گزینهها
را متوقف
کرده و تمام
آرگومانهای
باقیمانده
خط فرمان را
در EXT:*ARGS* قرار
میدهد.
زبان
پیادهسازیشده
ANSI[39][38] Common Lisp[1] است.
این
پیادهسازی
عمدتاً با
استاندارد
ANSI Common Lisp مطابقت
دارد؛ Section 31.10,
“Maximum ANSI CL compliance” را
ببینید. [ANSI CL] ANSI CL
standard1994. ANSI[40] INCITS 226-1994 (R1999)
Information Technology - Programming Language - Common Lisp
[formerly ANSI X3.226-1994 (R1999)]..SH
"محیط
کاربری خط
فرمان (COMMAND LINE USER
ENVIRONMENT)"
help
دریافت
راهنمای
برخط حساس
به زمینه؛
Chapter 25, Environment chap-25 را
ببینید.
(APROPOS name)
فهرست
کردن SYMBOL[41]های
منطبق با name.
(DESCRIBE symbol)
توصیف
symbol.
(exit)
(quit)
(bye)
خروج از
CLISP[6].
EOF (Control+D در UNIX[42])
خروج از
سطح جاریِ
read-eval-print loop[2]
(همچنین
ببینید: Section 1.1,
“Special Symbols sec_1-4-1-3”).
arrow keys
برای
ویرایش و
مشاهده
تاریخچه
ورودی، با
استفاده از
کتابخانه GNU[8]
readline[26].
TAB key
وابسته
به زمینه (Context sensitive):
•اگر در
“موقعیت
تابع”
باشید (در
نخستین
نماد پس از
یک پرانتز
باز، یا در
نخستین
نماد پس از
یک #'[44])،
تکمیل
خودکار به
نمادهایی
که نام تابع
هستند
محدود
میشود.
•اگر در
"موقعیت
نام فایل"
(درون یک
رشته پس از
#P[45]) باشید،
تکمیل روی
نام
فایلها و
به شیوه GNU[8]
bash[46] انجام
میپذیرد.
•اگر
هنوز چیزی
تایپ نکرده
باشید، یک
پیام
راهنما
دریافت
خواهید
کرد، درست
مانند
اجرای
دستور help.
•اگر
هنوز تایپ
نماد بعدی
را آغاز
نکرده
باشید (یعنی
در یک نویسه
فاصله خالی
باشید)،
تابع یا
ماکروی
فعلی DESCRIBE
میشود.
•در غیر
این صورت،
نمادی که در
حال حاضر
تایپ
میکنید
تکمیل
میشود.
Common Lisp[1] یک
زبان
برنامهنویسی
برنامهپذیر
است. —John Foderaro[47]
هنگامی که
CLISP[6]
فراخوانی
میشود،
محیط زمان
اجرا (runtime)
ایمیج
حافظه
اولیه (initial memory image)
را
بارگذاری
کرده و
اعلان (prompt) را
نمایش
میدهد؛
جایی که در
آن میتوان
نوشتن
DEFVAR[48]ها،
DEFUN[49]ها و
DEFMACRO[50]ها را
آغاز کرد.
برای
جلوگیری از
نیاز به
وارد کردن
مجدد و دستی
تعاریف
یکسان در هر
نشست،
میتوان یک
فایل lisp شامل
تمام
متغیرها،
توابع،
ماکروها و
غیره ایجاد
کرد؛ (در
صورت تمایل)
آن را با
COMPILE-FILE[51]
کامپایل
نمود؛ و با
LOAD[31] آن را
دستی یا از
طریق فایل RC
بارگذاری
کرد؛ یا یک
ایمیج
حافظه را
ذخیره کرد
تا از سربار
LOAD[31]
جلوگیری
شود.
با این
حال، گاهی
لازم است از
قابلیتهای
پیادهسازیشده
در زبانی
دیگر
استفاده
شود؛ مثلاً
فراخوانی
یک تابع از
کتابخانه
C[52]. برای
این منظور،
از امکانات
«رابط
توابع
خارجی» (Foreign Function
Interface) و/یا
«ماژولهای
خارجی» (External Modules)
استفاده
میشود. در
نهایت،
افراد
واقعاً
ماجراجو
میتوانند
به بخش
«گسترش
هسته» (Extending the Core)
ورود کنند..SH
"فایلها
(FILES)"
clisp
clisp.exe
راهانداز
آغازین (یک
فایل
اجرایی یا،
بهندرت،
یک اسکریپت
پوسته) که
مکان runtime را به
خاطر
میسپارد و
آن را با
آرگومانهای
مناسب آغاز
میکند.
lisp.run
lisp.exe
فایل
اجرایی
اصلی (runtime) - بخشی
از CLISP[6]
پیادهسازیشده
در C[52].
lispinit.mem
تصویر
حافظه (memory image)
اولیه (بخشی
از CLISP[6]
پیادهسازیشده
در lisp)
config.lisp
پیکربندی
وابسته به
سایت (باید
پیش از ساخت
CLISP[6]
سفارشیسازی
شده باشد)؛
ببینید:
بخش 31.12، “Customizing CLISP
behavior”
*.lisp
کد منبع
lisp
*.fas
کد lisp،
کامپایلشده
توسط CLISP[6]
*.lib
اطلاعات
کتابخانه
منبع lisp،
تولیدشده
توسط COMPILE-FILE،
ببینید:
بخش 24.3، “Function
REQUIRE”.
*.c
کد C،
کامپایلشده
از کد منبع lisp
توسط CLISP[6]
(ببینید:
بخش 32.3، “The Foreign Function Call
Facility”)
برای
فایلهای
منبع CLISP[6]،
ببینید:
فصل 34، The source files of CLISP.
همهٔ
متغیرهای
محیطی[12] که
CLISP[6]
استفاده
میکند
حداکثر
یکبار
خوانده
میشوند.
CLISP_LANGUAGE
زبانی را
مشخص
میکند که
CLISP[6] برای
برقراری
ارتباط با
کاربر به
کار میبرد.
مقادیر
معتبر
همانند
مقادیر
گزینهٔ -L
است که
میتواند
برای
بازنویسی
این متغیر
محیطی[12]
استفاده
شود.
LC_CTYPE
تنظیمات
محلی (locale) را
مشخص
میکند که
مجموعه
نویسهٔ
مورد
استفاده را
تعیین
مینماید.
مقدار
میتواند
به فرم language
یا language_country
یا
language_country.charset
باشد، که در
آن language یک کد
زبان
دوحرفی ISO 639
(حروف کوچک) و
country یک کد
کشور
دوحرفی ISO 3166
(حروف بزرگ)
است. charset یک
مشخصهٔ
اختیاری
مجموعه
نویسه است و
معمولاً
نیازی به
مشخص کردن
آن نیست چون
مجموعه
نویسه را
میتوان از
زبان و کشور
استنتاج
کرد. این
متغیر
محیطی[12] را
میتوان با
گزینهٔ -Edomain encoding
بازنویسی
کرد.
LANG
زبانی را
مشخص
میکند که
CLISP[6] برای
ارتباط با
کاربر
استفاده
میکند،
مگر اینکه
قبلاً از
طریق متغیر
محیطی[12] CLISP_LANGUAGE
یا گزینهٔ -L
مشخص شده
باشد.
همچنین
تنظیمات
محلی
تعیینکنندهٔ
مجموعه
نویسهٔ
مورد
استفاده را
مشخص
میکند،
مگر اینکه
از قبل توسط
متغیر
محیطی[12] LC_CTYPE
تعیین شده
باشد. مقدار
ممکن است با
یک کد زبان
دوحرفی ISO 639
آغاز شود،
به عنوان
مثال en، de،
fr.
HOME
USER
برای
تعیین
مقدار تابع
USER-HOMEDIR-PATHNAME[34]
استفاده
میشود.
SHELL
COMSPEC
برای
یافتن مفسر
دستور
تعاملی
فراخوانیشده
توسط EXT:SHELL
استفاده
میشود.
TERM
اندازهٔ
صفحهنمایش
قابل تشخیص
توسط pretty printer را
تعیین
میکند.
ORGANIZATION
برای
SHORT-SITE-NAME[53] و LONG-SITE-NAME[53]
در config.lisp.
CLHSROOT
برای CUSTOM:CLHS-ROOT
در config.lisp.
IMPNOTES
برای
CUSTOM:IMPNOTES-ROOT در config.lisp.
EDITOR
برای editor-name
در config.lisp.
LOGICAL_HOST_host_FROM
LOGICAL_HOST_host_TO
LOGICAL_HOST_host
برای
CUSTOM:*LOAD-LOGICAL-PATHNAME-TRANSLATIONS-DATABASE*
بخش 21.1.1،
“Initialization of Standard Streams” را
ببینید.
CLISP impnotes
clisp-link(1)
هنگامی که
با باگی در
CLISP[6] یا در
مستندات آن
(این صفحه
راهنما یا CLISP
impnotes) مواجه
شدید،
لطفاً آن را
به SourceForge bug tracker[56]
مربوط به
CLISP[6] گزارش
دهید. یا به
حساب
کاربری خود
در SourceForge[57] یا به
حساب OpenID[58] خود
وارد شوید.
سپس روی
پیوند "Create Ticket"
در سمت چپ
کلیک کنید.
پیش از
ارسال
گزارش باگ،
لطفاً
مراحل
ابتدایی
زیر را برای
مفیدتر شدن
گزارش
انجام
دهید:
1.مگر در
مواردی که
باگ شما
وابسته به
محلیسازی
(locale) خاصی
باشد،
لطفاً locale خود
را روی en
تنظیم کنید.
شما
نمیتوانید
فرض کنید که
نگهدارندگان
CLISP[6] زبانی
غیر از English[59] را
متوجه
میشوند،
حتی با
اینکه از
نظر
تاریخی،
نگهدارندگان
اندکی از
CLISP[6] زبان
مادریشان
انگلیسی
بوده است.
2.یک ساخت
پاکیزه (clean build)
انجام دهید
(دایرکتوری
ساخت خود را
حذف کرده و
CLISP[6] را با ./configure --cbcx
build بسازید،
یا دستکم
پیش از make
دستور make distclean
را اجرا
کنید).
3.اگر یک
“فروپاشی
سخت (hard crash)”
(مانند segmentation fault، bus
error، core dump و غیره)
را گزارش
میکنید،
لطفاً
دستور ./configure
--with-debug --cbcx build-g ; cd build-g; gdb
lisp.run را اجرا
کرده، سپس
مجموعه
پیونددهی (linking set)
مناسب را با
دستور base یا
full در gdb[60]
بارگذاری
کنید، و
ردگیری
پشته (backtrace) را
گزارش دهید
(همچنین
ببینید Q: A.1.1.10).
4.اگر از
باینریهای
پیشساخته
استفاده
میکنید و
دچار یک
فروپاشی
سخت
میشوید،
مشکل
احتمالاً
ناشی از
ناسازگاریهای
میان
پلتفرمی
است که
باینری روی
آن ساخته
شده با
پلتفرم
شما؛ لطفاً
سورسها را
کامپایل
کنید و اگر
مشکل
همچنان
پابرجا بود
آن را گزارش
دهید.
هنگام
ارسال
گزارش باگ،
لطفاً
اطلاعات
زیر را مشخص
کنید:
1.پلتفرم
شما چیست (uname -a
روی یک
سیستم UNIX[42])\[u061F]
2.لطفاً
خروجی کامل
(کپی و پیست
شده) تمامی
پیامهای
خطا را
ارائه
دهید.
3.لطفاً
دستورالعملهای
دقیقی
درباره
نحوه
بازتولید
مشکل ارائه
دهید.
4.سورسها یا
باینریهای
CLISP[6] را از
کجا دریافت
کردهاید؟
چه زمانی؟
(تاریخهای
مطلق،
مانند “2006-01-17”،
نسبت به
تاریخهای
نسبی،
مانند “2 days ago”
ترجیح داده
میشوند.
اگر از Git[61]
استفاده
میکنید،
لطفاً
خروجی git rev-list --max-count=1
HEAD را ارائه
دهید).
5.اگر
شکست در
ساخت را
گزارش
میکنید:
1.نسخه
کامپایلر
شما چیست؟
2.نسخه GNU[8]
libc[62] شما (روی
GNU[8]/Linux[63])
چیست؟
3.نسخه هر
یک از DEPENDENCIES
(فایل موجود
در کدهای
منبع CLISP)
چیست؟
4.چگونه configure
(فایل موجود
در کدهای
منبع CLISP) را
اجرا
کردید؟ ما
به
گزینههایی
که استفاده
کردهاید و
همچنین
مقادیر
متغیرهای
محیطی[12] زیر
نیاز داریم:
CC
CFLAGS
CPPFLAGS
LDFLAFS
LD_LIBRARY_PATH
.
5.لطفاً
تمام
گزارشهای
ساخت (build logs) را
ضمیمه
کنید.
6.اگر یک
نسخهٔ در
حال کار از
CLISP[6] دارید،
لطفاً
خروجی clisp --version
را ارائه
دهید.
•بهبود
کامپایلر
بهگونهای
که بتواند
توابع محلی
را
درونخطی (inline)
کند.
•تعبیهٔ
CLISP[6] در VIM[64].
Copyright © 1992-2010 Bruno Haible
Copyright © 1998-2010 Sam Steingold
- 1.
- Common Lisp
- 2.
- read-eval-print loop
[set $man.base.url.for.relative.links]/sec_25-1-1
- 3.
- READ
- 4.
- EVAL
- 5.
- PRINT
- 6.
- CLISP
- 7.
- LISP-IMPLEMENTATION-VERSION
- 8.
- GNU
- 9.
- GPL
- 10.
- SYMBOL-MACRO
[set
$man.base.url.for.relative.links]/mac_define-symbol-macro
- 11.
- gzip
- 12.
- environment variable
[set
$man.base.url.for.relative.links]/basedefs/V1_chap08.html
- 13.
- *LOAD-VERBOSE*
- 14.
- *COMPILE-VERBOSE*
- 15.
- T
- 16.
- NIL
- 17.
- continuable
[set $man.base.url.for.relative.links]/clhs/glo
- 18.
- ERROR
http://www.ai.mit.edu/projects/iiip/doc/CommonLISP/HyperSpec/Body/contyp_error.html
WARNING
- 20.
- INVOKE-DEBUGGER
- 21.
- ABORT
- 22.
- SIGNAL
- 23.
- Emacs
- 24.
- SLIME
- 25.
- ILISP
- 26.
- readline
- 27.
- ASCII
- 28.
- *PACKAGE*
- 29.
- *PRINT-CASE*
- 30.
- “COMMON-LISP-USER”
[set $man.base.url.for.relative.links]/sec_11-1-2-2
- 31.
- LOAD
- 32.
- COMPILE
- 33.
- “run control” (RC)
- 34.
- USER-HOMEDIR-PATHNAME
- 35.
- DISASSEMBLE
- 36.
- *STANDARD-OUTPUT*
- 37.
- LIST
- 38.
- ANSI
- 39.
- مؤسسه ملی
استاندارد
آمریکا
- 40.
- ANSI
- 41.
- SYMBOL
- 42.
- UNIX
- 43.
- Win32
- 44.
- #'
[set $man.base.url.for.relative.links]/sec_2-4-8-2
- 45.
- #P
[set $man.base.url.for.relative.links]/sec_2-4-8-14
- 46.
- bash
- 47.
- جان
فودرارو (John
Foderaro)
- 48.
- DEFVAR
- 49.
- DEFUN
- 50.
- DEFMACRO
- 51.
- COMPILE-FILE
- 52.
- C
- 53.
- SHORT-SITE-NAME
- 54.
- CMU CL
- 55.
- SBCL
- 56.
- ردیاب باگ
SourceForge
- 57.
- SourceForge
- 58.
- OpenID
- 59.
- انگلیسی