| LISP(1) | General Commands Manual | LISP(1) |
نام (NAME)
lisp - محیط برنامهنویسی CMU Common Lisp
خلاصه دستور (SYNOPSIS)
lisp [input-files] [switch-list]
توضیحات (DESCRIPTION)
دستور lisp محیط CMU Common Lisp را راهاندازی میکند. اگر switch-list خالی باشد، Lisp با استفاده از stdin ،stdout و stderr وارد یک حلقه خواندن-ارزیابی-چاپ (REPL) میشود. آرگومانهای اختیاری input-files عملوندهایی را برای برخی سوییچها فراهم میکنند. این سوییچها به شرح زیر تعریف شدهاند:
- -help
- گزینههای خط فرمان را چاپ کرده و خارج میشود.
- --help
- مشابه -help.
- -core filename
- تصویر تعلیقشده Lisp (یا «core file») را برای راهاندازی مشخص میکند.
- -lib libpath
- فهرستی از دایرکتوریها که با دونقطه جدا شدهاند برای استفاده در فهرست جستجوی library: مشخص میکند.
- -batch
- باعث اجرای Lisp در حالت دستهای (batch) میشود، که در آن تمام ورودیها از ورودی استاندارد (standard-input) دریافت میشوند. هنگام مواجهه با EOF یک کد خروجی یونیکس 0 بازگردانده میشود، در حالی که هر وضعیت خطای رسیدگینشده به جای ورود به دیباگر، باعث خروج فوری با کد خروجی 1 خواهد شد.
- -quiet
- باعث راهاندازی بیسروصدای Lisp میشود، چاپ پیام آغازین (herald) را غیرفعال کرده و بیشتر پیامهای غیرضروری مانند پیامهای GC، پیامهای بارگذاری و غیره را سرکوب میکند.
- -dynamic-space-size
- نیازمند آرگومانی است که تعداد مگابایتها (۱۰۴۸۵۷۶ بایت) تخصیصیافته به heap را مشخص میکند. در صورت عدم تعیین، از مقدار پیشفرض وابسته به پلتفرم استفاده میشود. حداکثر اندازه مجاز واقعی heap وابسته به پلتفرم است.
- -read-only-space-size
- نیازمند آرگومانی است که تعداد مگابایتها (۱۰۴۸۵۷۶ بایت) تخصیصیافته به فضای فقطخواندنی (read-only space) را مشخص میکند. در صورت عدم تعیین، از مقدار پیشفرض وابسته به پلتفرم استفاده میشود.
- -static-space-size
- نیازمند آرگومانی است که تعداد مگابایتها (۱۰۴۸۵۷۶ بایت) تخصیصیافته به فضای ایستا (static-space) را مشخص میکند. در صورت عدم تعیین، از مقدار پیشفرض وابسته به پلتفرم استفاده میشود. حداکثر اندازه مجاز واقعی heap وابسته به پلتفرم است.
- -control-stack-size
- نیازمند آرگومانی است که تعداد مگابایتها (۱۰۴۸۵۷۶ بایت) تخصیصیافته به پشته کنترل (control stack) را مشخص میکند. در صورت عدم تعیین، از مقدار پیشفرض وابسته به پلتفرم استفاده میشود. حداکثر اندازه مجاز واقعی heap وابسته به پلتفرم است.
- -binding-stack-size
- نیازمند آرگومانی است که تعداد مگابایتها (۱۰۴۸۵۷۶ بایت) تخصیصیافته به پشته اتصال (binding stack) را مشخص میکند. در صورت عدم تعیین، از مقدار پیشفرض وابسته به پلتفرم استفاده میشود. حداکثر اندازه مجاز واقعی heap وابسته به پلتفرم است.
- -edit
- باعث ورود Lisp به ویرایشگر Hemlock میشود. با قرار دادن نام فایل میان نام برنامه (معمولاً `lisp') و اولین سوییچ، میتوان فایلی را برای ویرایش مشخص کرد.
- -eval expression
- در طول مراحل راهاندازی، expression مشخصشده در Lisp را ارزیابی میکند. مقدار عبارت چاپ نخواهد شد مگر اینکه درون عبارتی قرار گیرد که خروجی تولید کند.
- -init filename
- نام فایلی شامل شخصیسازیهای کاربر را مشخص میکند که با هر بار راهاندازی Lisp بارگذاری میشود (پیشفرض ~/init یا ~/.cmucl-init است). بارگذار، فایل باینری کامپایلشده موجود را بارگذاری میکند، یا در صورت نبود، فایل منبع «.lisp» را بارگذاری مینماید.
- -hinit filename
- مشابه -init است، اما نام فایل راهاندازی اولیه Hemlock (پیشفرض `~/hemlock-init' یا ~/.hemlock-init) را مشخص میکند که تنها هنگام شروع به کار Hemlock بارگذاری میشود.
- -noinit
- از بارگذاری فایل init جلوگیری میکند، و همچنین مانع از بارگذاری فایل init ویرایشگر Hemlock توسط -edit میشود.
- -nositeinit
- از بارگذاری فایل پیکربندی اولیه ویژه سایت (site-init) جلوگیری میکند.
- -load filename
- پیش از ورود به حلقه خواندن-ارزیابی-چاپ Lisp، فایل مشخصشده را در Lisp بارگذاری میکند.
- -slave editor-name
- مشخص میکند که Lisp باید به عنوان یک Lisp پیرو ( slave) راهاندازی شود و تلاش کند به یک Lisp ویرایشگر متصل گردد. نام ویرایشگر برای اتصال باید مشخص شود. برای یافتن نام ویرایشگر، از دستور `Accept Slave Connections' در Hemlock استفاده کنید. editor-name به صورت `machine-name:socket' است، که در آن machine-name نام میزبان اینترنتی ماشین و socket شماره سوکت در مبنای ۱۰ برای برقراری اتصال است.
- -debug-lisp-search
- چاپ پیامهایی که نشان میدهند CMUCL چگونه در حال جستجوی فایل core خود است را فعال میکند. این گزینه زمانی مفید است که CMUCL به دلایلی قادر به یافتن فایل core خود نباشد.
- -fpu fpu-mode
- این گزینه فقط در سیستمهای x86 در دسترس است. این گزینه مقادیر x87 ،sse2 یا auto را میپذیرد که مقدار auto پیشفرض است. با مقدار پیشفرض، CMUCL بررسی میکند که آیا ماشین اجراکننده CMUCL از SSE2 پشتیبانی میکند یا خیر. در صورت پشتیبانی، فایل core مربوط به SSE2 به طور خودکار انتخاب و استفاده میشود. در غیر این صورت، از فایل core مربوط به x87 استفاده میگردد. با این گزینه، کاربر میتواند تشخیص خودکار را نادیده گرفته و یک core را انتخاب کند. (توجه داشته باشید که نمیتوانید core مربوط به SSE2 را روی تراشهای که فاقد SSE2 است اجرا کنید، اما core مربوط به x87 روی هر ماشینی قابل اجرا است.)
- --
- اگر این گزینه داده شود، پردازش آرگومانهای CMUCL متوقف شده و هر آنچه پس از «--» بیاید در EXT:*COMMAND-LINE-APPLICATION-ARGUMENTS* قرار میگیرد. این به برنامه اجازه میدهد تا پردازش اختصاصی خود را روی هرگونه گزینه ویژه انجام دهد.
محیط (ENVIRONMENT)
- CMUCLLIB
- این متغیر به دایرکتوری `lib/' اشاره دارد که حاوی `lisp.core' و سایر فایلهای مورد استفاده Lisp در زمان اجرا است. این متغیر را میتوان با استفاده از گزینه خط فرمان -lib بازنویسی کرد.
- CMUCLCORE
- این متغیر مسیر به `lisp.core' مورد استفاده را نگهداری میکند. این متغیر را میتوان با استفاده از گزینه خط فرمان -core بازنویسی کرد.
- CMUCL_EMPTYFILE
- [فقط در SunOS] اگر `df /tmp' برای دایرکتوری `/tmp' سیستم فایل `swap' را نشان دهد، شما یک سیستم فایل "tmpfs" دارید. در این حالت، باید متغیر محیطی CMUCL_EMPTYFILE را طوری تنظیم کنید که به مسیری در یک سیستم فایل غیر TMPFS اشاره کند تا بتواند به جای `/tmp/empty' استفاده شود.
- XKEYSYMDB
- به منظور استفاده از Motif (و دیباگر گرافیکی) با سرورهای X متعلق به ارائهدهندگان غیر OSF (مانند Sun)، ممکن است لازم باشد متغیر محیطی XKEYSYMDB را طوری تنظیم کنید که به فایل `lib/XKeysymDB' اشاره کند. در غیر این صورت، هر بار که اتصال جدیدی به motifd در CMU CL باز میشود، پیامهای خطای متعددی دریافت خواهید کرد. این فایل توسط Xt در X11R5 خوانده میشود تا پایگاه داده keysym را با برخی کلیدهای اختصاصی ارائهدهندگان OSF که Motif استفاده میکند، گسترش دهد.
جستجوی فایل CORE (CORE FILE SEARCHING)
هنگامی که هیچ فایل core مشخص نشده باشد (چه با متغیر محیطی CMUCLCORE و چه با گزینه -core)، برنامه CMUCL مکانهای مختلفی را برای یافتن یک فایل core احتمالی جستجو خواهد کرد.
هنگامی که متغیر محیطی CMUCLLIB تنظیم شده باشد یا گزینه -lib داده شده باشد، فایل core لیسپ در مکانهای مشخصشده در آن جستجو میشود. این متغیر فهرستی از دایرکتوریها است که مانند PATH با دونقطه از هم جدا شدهاند. این فهرست از دایرکتوریها به ترتیب برای فایلی به نام `lisp.core' جستجو میشود و نخستین فایل یافتشده، core مورد استفاده خواهد بود.
هنگامی که CMUCLLIB تنظیم نشده باشد و گزینه -lib نیز داده نشده باشد، مجموعهای از مسیرهای پیشفرض برای مقداردهی اولیه فهرست جستجوی library: استفاده میشود و این فهرست همچنین برای جستجوی فایل core به کار میرود. فرض کنید فایل اجرایی C لیسپ در `<bin>/lisp' قرار داشته باشد. در این صورت، دایرکتوریهای زیر برای فایل core جستجو میشوند:
- `<bin>'
- `<bin>/../lib/cmucl/lib'
- `<bin>/../lib'
- `/usr/local/lib/cmucl/lib'
فایلها (FILES)
مسیرهای زیر به صورت نسبی نسبت به دایرکتوری محل نصب CMU CL (مانند /usr/local) مشخص شدهاند.
- doc/cmucl/*
- فایلهای مختلف مستندات متنی و postscript.
- bin/lisp
- برنامه راهانداز lisp. این دایرکتوری باید در PATH باشد.
- lib/cmucl/sample-wrapper
- یک اسکریپت شل نمونه که محیط را آماده کرده و lisp را اجرا میکند. این فایل معمولاً مورد نیاز نیست مگر اینکه پیکربندی خاصی مد نظرتان باشد.
- lib/cmucl/lib/lisp.core
- تصویر تعلیقشده Lisp. اما برای ماشینهای x86، core تعلیقشده بسته به اینکه core نوع x87 یا sse2 استفاده شود، lisp-x87.core یا lisp-sse2.core نام دارد.
- lib/cmucl/lib/site-init.lisp,generic-site.lisp
- مقداردهی اولیه ویژه سایت (فایل README را ببینید). فایل generic-site.lisp قالبی است که میتوان از آن برای ایجاد site-init.lisp استفاده کرد. (توجه: نصب CMUCL هیچ فایل site-init.lisp را ایجاد یا حذف نمیکند.)
- lib/cmucl/lib/lisp.a
- یک فایل آرشیو از تمام کدهای زمان اجرای C. این فایل هنگام ساخت یک تصویر اجرایی مورد نیاز است.
- lib/cmucl/lib/linker.sh,linker-x86.sh
- اسکریپتهای شل برای انجام پیونددهی (linking) لازم جهت ساخت یک تصویر اجرایی.
- lib/cmucl/lib/hemlock11.*,lib/cmucl/lib/mh-scan,lib/cmucl/lib/spell-dictionary.bin
- فایلهای Hemlock.
- lib/cmucl/lib/fonts/
- فونتهای X11 برای Hemlock.
- lib/cmucl/lib/locale
- این دایرکتوری حاوی فایلهای قالب برای پیامهای CMUCL است. ترجمههای پیامهای CMUCL نیز در اینجا ذخیره میشوند.
- lib/cmucl/lib/XKeysymDB
- پایگاه داده نامهای X Keysym برای Motif.
- lib/cmucl/lib/load-foreign.csh
- اسکریپت مورد استفاده توسط LOAD-FOREIGN برای اجرای "ld" در برخی پلتفرمها.
- lib/cmucl/lib/contrib
- این دایرکتوری حاوی ماژولهای contrib، از جمله asdf2 و mk-defsystem است.
- lib/cmucl/lib/ext-formats
- این دایرکتوری حاوی فایلهای lisp است که فرمتهای خارجی مختلف پشتیبانیشده توسط CMUCL را پیادهسازی میکنند.
- lib/cmucl/lib/subsystems
- این دایرکتوری حاوی زیرسیستمهای CMUCL است. این زیرسیستمها شامل CLX ،CLM ،Gray streams ،Hemlock و Simple Streams هستند.
- ~/init.lisp,~/.cmucl-init.lisp
- فایلهای شخصیسازی کاربر که در زمان راهاندازی lisp بارگذاری میشوند؛ هر دو نام قابل قبول است. فایلهای init را میتوان کامپایل کرد.
- ~/hemlock-init.lisp,~/.hemlock-init.lisp
- فایل مقداردهی اولیه Hemlock که هنگام شروع Hemlock بارگذاری میشود.
همچنین ببینید (SEE ALSO)
cmucl(1)، README
«راهنمای
کاربر CMU Common Lisp»،
«راهنمای
کاربر Hemlock»، و
«راهنمای
پیادهساز
دستورات Hemlock»
اشکالات (BUGS)
برای اطلاعات پشتیبانی، از جمله سازوکارهای گزارش باگ، به نشانی http://www.cons.org/cmucl/support.html مراجعه کنید. لطفاً پیش از گزارش یک مشکل، با نگهدارنده محلی CMU CL یا در صورت وجود با یک کارشناس Common Lisp مشورت کنید تا مطمئن شوید که آن مشکل واقعاً یک باگ است.
مشکلات شناختهشده در این نسخه:
- --
- تشخیص سرریز پشته (stack overflow) خیلی تمیز انجام نمیشود؛ خطاهای متعددی مبنی بر «map failure» در stderr دریافت خواهید کرد.
- --
- اگر توصیفکنندههای فایل به پایان برسند، Lisp متوقف خواهد شد.
- --
- چندین ویژگی پیشنهادی ANSI Common Lisp (CLtL II) پیادهسازی نشدهاند: هر ویژگی CLOS که توسط PCL پیادهسازی نشده باشد، و ویژگیهایی که پس از اولین پیشنویس ANSI اضافه شدهاند.
- --
- پیشپردازش مفسر، تعاریف ماکرویی را که در زمان تعریف یک تابع تفسیرشده فعال هستند، تثبیت (freeze) میکند.
| Nov, 2011 | 7th Edition |