.\" -*- Mode: Text -*- .\" .\" ********************************************************************** .\" This code was written as part of the CMU Common Lisp project at .\" Carnegie Mellon University, and has been placed in the public domain. .\" If you want to use this code or any part of CMU Common Lisp, please contact .\" Scott Fahlman or slisp-group@cs.cmu.edu. .\" .\"$Header: /Volumes/share2/src/cmucl/cvs2git/cvsroot/src/general-info/lisp.1,v 1.15 2010/08/25 21:35:00 rtoy Rel $ .\" .\" ********************************************************************** .\" .\" Man page for CMU CL. .TH LISP 1 "Nov, 2011" .AT 3 .SH "نام (NAME)" lisp \- محیط برنامه‌نویسی CMU Common Lisp .SH "خلاصه دستور (SYNOPSIS)" .B lisp [input-files] [switch-list] .SH "توضیحات (DESCRIPTION)" دستور .I lisp محیط CMU Common Lisp را راه‌اندازی می‌کند. اگر .I switch-list خالی باشد، Lisp با استفاده از stdin ،stdout و stderr وارد یک حلقه خواندن-ارزیابی-چاپ (REPL) می‌شود. آرگومان‌های اختیاری .I input-files عملوندهایی را برای برخی سوییچ‌ها فراهم می‌کنند. این سوییچ‌ها به شرح زیر تعریف شده‌اند: .TP 10n .BR \-help گزینه‌های خط فرمان را چاپ کرده و خارج می‌شود. .TP .BR \--help مشابه .BR \-help . .TP .BR \-core " filename" تصویر تعلیق‌شده Lisp (یا «core file») را برای راه‌اندازی مشخص می‌کند. .TP .BR \-lib " libpath" فهرستی از دایرکتوری‌ها که با دونقطه جدا شده‌اند برای استفاده در فهرست جستجوی library: مشخص می‌کند. .TP .BR \-batch باعث اجرای Lisp در حالت دسته‌ای (batch) می‌شود، که در آن تمام ورودی‌ها از ورودی استاندارد (standard-input) دریافت می‌شوند. هنگام مواجهه با EOF یک کد خروجی یونیکس 0 بازگردانده می‌شود، در حالی که هر وضعیت خطای رسیدگی‌نشده به جای ورود به دیباگر، باعث خروج فوری با کد خروجی 1 خواهد شد. .TP .BR \-quiet باعث راه‌اندازی بی‌سروصدای Lisp می‌شود، چاپ پیام آغازین (herald) را غیرفعال کرده و بیشتر پیام‌های غیرضروری مانند پیام‌های GC، پیام‌های بارگذاری و غیره را سرکوب می‌کند. .TP .BR \-dynamic-space-size نیازمند آرگومانی است که تعداد مگابایت‌ها (۱۰۴۸۵۷۶ بایت) تخصیص‌یافته به heap را مشخص می‌کند. در صورت عدم تعیین، از مقدار پیش‌فرض وابسته به پلتفرم استفاده می‌شود. حداکثر اندازه مجاز واقعی heap وابسته به پلتفرم است. .TP .BR \-read-only-space-size نیازمند آرگومانی است که تعداد مگابایت‌ها (۱۰۴۸۵۷۶ بایت) تخصیص‌یافته به فضای فقط‌خواندنی (read-only space) را مشخص می‌کند. در صورت عدم تعیین، از مقدار پیش‌فرض وابسته به پلتفرم استفاده می‌شود. .TP .BR \-static-space-size نیازمند آرگومانی است که تعداد مگابایت‌ها (۱۰۴۸۵۷۶ بایت) تخصیص‌یافته به فضای ایستا (static-space) را مشخص می‌کند. در صورت عدم تعیین، از مقدار پیش‌فرض وابسته به پلتفرم استفاده می‌شود. حداکثر اندازه مجاز واقعی heap وابسته به پلتفرم است. .TP .BR \-control-stack-size نیازمند آرگومانی است که تعداد مگابایت‌ها (۱۰۴۸۵۷۶ بایت) تخصیص‌یافته به پشته کنترل (control stack) را مشخص می‌کند. در صورت عدم تعیین، از مقدار پیش‌فرض وابسته به پلتفرم استفاده می‌شود. حداکثر اندازه مجاز واقعی heap وابسته به پلتفرم است. .TP .BR \-binding-stack-size نیازمند آرگومانی است که تعداد مگابایت‌ها (۱۰۴۸۵۷۶ بایت) تخصیص‌یافته به پشته اتصال (binding stack) را مشخص می‌کند. در صورت عدم تعیین، از مقدار پیش‌فرض وابسته به پلتفرم استفاده می‌شود. حداکثر اندازه مجاز واقعی heap وابسته به پلتفرم است. .TP .BR \-edit باعث ورود Lisp به ویرایشگر .I Hemlock می‌شود. با قرار دادن نام فایل میان نام برنامه (معمولاً `lisp') و اولین سوییچ، می‌توان فایلی را برای ویرایش مشخص کرد. .TP .BR \-eval " expression" در طول مراحل راه‌اندازی، .I expression مشخص‌شده در Lisp را ارزیابی می‌کند. مقدار عبارت چاپ نخواهد شد مگر اینکه درون عبارتی قرار گیرد که خروجی تولید کند. .TP .BR \-init " filename" نام فایلی شامل شخصی‌سازی‌های کاربر را مشخص می‌کند که با هر بار راه‌اندازی Lisp بارگذاری می‌شود (پیش‌فرض ‎~/init یا ‎~/.cmucl-init است). بارگذار، فایل باینری کامپایل‌شده موجود را بارگذاری می‌کند، یا در صورت نبود، فایل منبع «.lisp» را بارگذاری می‌نماید. .TP .BR \-hinit " filename" مشابه \-init است، اما نام فایل راه‌اندازی اولیه .I Hemlock (پیش‌فرض `~/hemlock-init' یا ~/.hemlock-init) را مشخص می‌کند که تنها هنگام شروع به کار .I Hemlock بارگذاری می‌شود. .TP .BR \-noinit از بارگذاری فایل init جلوگیری می‌کند، و همچنین مانع از بارگذاری فایل init ویرایشگر .I Hemlock توسط \-edit می‌شود. .TP .BR \-nositeinit از بارگذاری فایل پیکربندی اولیه ویژه سایت (site-init) جلوگیری می‌کند. .TP .BR \-load " filename" پیش از ورود به حلقه خواندن-ارزیابی-چاپ Lisp، فایل مشخص‌شده را در Lisp بارگذاری می‌کند. .TP .BR \-slave " editor-name" مشخص می‌کند که Lisp باید به عنوان یک Lisp پیرو ( .IR slave ) راه‌اندازی شود و تلاش کند به یک Lisp ویرایشگر متصل گردد. نام ویرایشگر برای اتصال باید مشخص شود. برای یافتن نام ویرایشگر، از دستور `Accept Slave Connections' در .I Hemlock استفاده کنید. .I editor-name به صورت `machine-name:socket' است، که در آن .I machine-name نام میزبان اینترنتی ماشین و .I socket شماره سوکت در مبنای ۱۰ برای برقراری اتصال است. .TP .BR \-debug-lisp-search چاپ پیام‌هایی که نشان می‌دهند CMUCL چگونه در حال جستجوی فایل core خود است را فعال می‌کند. این گزینه زمانی مفید است که CMUCL به دلایلی قادر به یافتن فایل core خود نباشد. .TP .BR \-fpu " fpu-mode" این گزینه فقط در سیستم‌های x86 در دسترس است. این گزینه مقادیر x87 ،sse2 یا auto را می‌پذیرد که مقدار auto پیش‌فرض است. با مقدار پیش‌فرض، CMUCL بررسی می‌کند که آیا ماشین اجراکننده CMUCL از SSE2 پشتیبانی می‌کند یا خیر. در صورت پشتیبانی، فایل core مربوط به SSE2 به طور خودکار انتخاب و استفاده می‌شود. در غیر این صورت، از فایل core مربوط به x87 استفاده می‌گردد. با این گزینه، کاربر می‌تواند تشخیص خودکار را نادیده گرفته و یک core را انتخاب کند. (توجه داشته باشید که نمی‌توانید core مربوط به SSE2 را روی تراشه‌ای که فاقد SSE2 است اجرا کنید، اما core مربوط به x87 روی هر ماشینی قابل اجرا است.) .TP .BR \-- اگر این گزینه داده شود، پردازش آرگومان‌های CMUCL متوقف شده و هر آنچه پس از «--» بیاید در EXT:*COMMAND-LINE-APPLICATION-ARGUMENTS* قرار می‌گیرد. این به برنامه اجازه می‌دهد تا پردازش اختصاصی خود را روی هرگونه گزینه ویژه انجام دهد. .PP .SH "محیط (ENVIRONMENT)" .TP 10n .BR CMUCLLIB این متغیر به دایرکتوری `lib/' اشاره دارد که حاوی `lisp.core' و سایر فایل‌های مورد استفاده Lisp در زمان اجرا است. این متغیر را می‌توان با استفاده از گزینه خط فرمان -lib بازنویسی کرد. .TP .BR CMUCLCORE این متغیر مسیر به `lisp.core' مورد استفاده را نگهداری می‌کند. این متغیر را می‌توان با استفاده از گزینه خط فرمان -core بازنویسی کرد. .TP .BR CMUCL_EMPTYFILE [فقط در SunOS] اگر `df /tmp' برای دایرکتوری `/tmp' سیستم فایل `swap' را نشان دهد، شما یک سیستم فایل "tmpfs" دارید. در این حالت، باید متغیر محیطی CMUCL_EMPTYFILE را طوری تنظیم کنید که به مسیری در یک سیستم فایل غیر TMPFS اشاره کند تا بتواند به جای `/tmp/empty' استفاده شود. .TP .BR XKEYSYMDB به منظور استفاده از Motif (و دیباگر گرافیکی) با سرورهای X متعلق به ارائه‌دهندگان غیر OSF (مانند Sun)، ممکن است لازم باشد متغیر محیطی XKEYSYMDB را طوری تنظیم کنید که به فایل `lib/XKeysymDB' اشاره کند. در غیر این صورت، هر بار که اتصال جدیدی به motifd در CMU CL باز می‌شود، پیام‌های خطای متعددی دریافت خواهید کرد. این فایل توسط Xt در X11R5 خوانده می‌شود تا پایگاه داده keysym را با برخی کلیدهای اختصاصی ارائه‌دهندگان OSF که Motif استفاده می‌کند، گسترش دهد. .SH "جستجوی فایل CORE (CORE FILE SEARCHING)" هنگامی که هیچ فایل core مشخص نشده باشد (چه با متغیر محیطی CMUCLCORE و چه با گزینه .BR \-core )، برنامه CMUCL مکان‌های مختلفی را برای یافتن یک فایل core احتمالی جستجو خواهد کرد. .PP هنگامی که متغیر محیطی CMUCLLIB تنظیم شده باشد یا گزینه .B \-lib داده شده باشد، فایل core لیسپ در مکان‌های مشخص‌شده در آن جستجو می‌شود. این متغیر فهرستی از دایرکتوری‌ها است که مانند PATH با دونقطه از هم جدا شده‌اند. این فهرست از دایرکتوری‌ها به ترتیب برای فایلی به نام `lisp.core' جستجو می‌شود و نخستین فایل یافت‌شده، core مورد استفاده خواهد بود. .PP هنگامی که CMUCLLIB تنظیم نشده باشد و گزینه .B \-lib نیز داده نشده باشد، مجموعه‌ای از مسیرهای پیش‌فرض برای مقداردهی اولیه فهرست جستجوی library: استفاده می‌شود و این فهرست همچنین برای جستجوی فایل core به کار می‌رود. فرض کنید فایل اجرایی C لیسپ در `/lisp' قرار داشته باشد. در این صورت، دایرکتوری‌های زیر برای فایل core جستجو می‌شوند: .TP 10n .BR `' .TP .BR `/../lib/cmucl/lib' .TP .BR `/../lib' .TP .BR `/usr/local/lib/cmucl/lib' .PP .SH "فایل‌ها (FILES)" مسیرهای زیر به صورت نسبی نسبت به دایرکتوری محل نصب CMU CL (مانند /usr/local) مشخص شده‌اند. .TP 10n .BR doc/cmucl/* فایل‌های مختلف مستندات متنی و postscript. .TP .BR bin/lisp برنامه راه‌انداز lisp. این دایرکتوری باید در PATH باشد. .TP .BR lib/cmucl/sample-wrapper یک اسکریپت شل نمونه که محیط را آماده کرده و lisp را اجرا می‌کند. این فایل معمولاً مورد نیاز نیست مگر اینکه پیکربندی خاصی مد نظرتان باشد. .TP .BR lib/cmucl/lib/lisp.core تصویر تعلیق‌شده Lisp. اما برای ماشین‌های x86، core تعلیق‌شده بسته به اینکه core نوع x87 یا sse2 استفاده شود، lisp-x87.core یا lisp-sse2.core نام دارد. .TP .BR lib/cmucl/lib/site-init.lisp, generic-site.lisp مقداردهی اولیه ویژه سایت (فایل README را ببینید). فایل generic-site.lisp قالبی است که می‌توان از آن برای ایجاد site-init.lisp استفاده کرد. (توجه: نصب CMUCL هیچ فایل site-init.lisp را ایجاد یا حذف نمی‌کند.) .TP .BR lib/cmucl/lib/lisp.a یک فایل آرشیو از تمام کدهای زمان اجرای C. این فایل هنگام ساخت یک تصویر اجرایی مورد نیاز است. .TP .BR lib/cmucl/lib/linker.sh, linker-x86.sh اسکریپت‌های شل برای انجام پیونددهی (linking) لازم جهت ساخت یک تصویر اجرایی. .TP .BR lib/cmucl/lib/hemlock11.*, lib/cmucl/lib/mh-scan, lib/cmucl/lib/spell-dictionary.bin فایل‌های Hemlock. .TP .BR lib/cmucl/lib/fonts/ فونت‌های X11 برای Hemlock. .TP .BR lib/cmucl/lib/locale این دایرکتوری حاوی فایل‌های قالب برای پیام‌های CMUCL است. ترجمه‌های پیام‌های CMUCL نیز در اینجا ذخیره می‌شوند. .TP .BR lib/cmucl/lib/XKeysymDB پایگاه داده نام‌های X Keysym برای Motif. .TP .BR lib/cmucl/lib/load-foreign.csh اسکریپت مورد استفاده توسط LOAD-FOREIGN برای اجرای "ld" در برخی پلتفرم‌ها. .TP .BR lib/cmucl/lib/contrib این دایرکتوری حاوی ماژول‌های contrib، از جمله asdf2 و mk-defsystem است. .TP .BR lib/cmucl/lib/ext-formats این دایرکتوری حاوی فایل‌های lisp است که فرمت‌های خارجی مختلف پشتیبانی‌شده توسط CMUCL را پیاده‌سازی می‌کنند. .TP .BR lib/cmucl/lib/subsystems این دایرکتوری حاوی زیرسیستم‌های CMUCL است. این زیرسیستم‌ها شامل CLX ،CLM ،Gray streams ،Hemlock و Simple Streams هستند. .TP .BR ~/init.lisp,~/.cmucl\-init.lisp فایل‌های شخصی‌سازی کاربر که در زمان راه‌اندازی lisp بارگذاری می‌شوند؛ هر دو نام قابل قبول است. فایل‌های init را می‌توان کامپایل کرد. .TP .BR ~/hemlock-init.lisp, ~/.hemlock-init.lisp فایل مقداردهی اولیه Hemlock که هنگام شروع Hemlock بارگذاری می‌شود. .PP .SH "همچنین ببینید (SEE ALSO)" .BR cmucl (1)، README .br «راهنمای کاربر CMU Common Lisp»، .br «راهنمای کاربر Hemlock»، و .br «راهنمای پیاده‌ساز دستورات Hemlock» .SH "اشکالات (BUGS)" برای اطلاعات پشتیبانی، از جمله سازوکارهای گزارش باگ، به نشانی http://www.cons.org/cmucl/support.html مراجعه کنید. لطفاً پیش از گزارش یک مشکل، با نگه‌دارنده محلی CMU CL یا در صورت وجود با یک کارشناس Common Lisp مشورت کنید تا مطمئن شوید که آن مشکل واقعاً یک باگ است. .PP مشکلات شناخته‌شده در این نسخه: .TP 3 \-- تشخیص سرریز پشته (stack overflow) خیلی تمیز انجام نمی‌شود؛ خطاهای متعددی مبنی بر «map failure» در stderr دریافت خواهید کرد. .TP 3 \-- اگر توصیف‌کننده‌های فایل به پایان برسند، Lisp متوقف خواهد شد. .TP 3 \-- چندین ویژگی پیشنهادی ANSI Common Lisp (CLtL II) پیاده‌سازی نشده‌اند: هر ویژگی CLOS که توسط PCL پیاده‌سازی نشده باشد، و ویژگی‌هایی که پس از اولین پیش‌نویس ANSI اضافه شده‌اند. .TP 3 \-- پیش‌پردازش مفسر، تعاریف ماکرویی را که در زمان تعریف یک تابع تفسیرشده فعال هستند، تثبیت (freeze) می‌کند. .PP