ol(1) General Commands Manual ol(1)

ol - کامپایلر و مفسر Owl Lisp

ol [options] [path] ...

‏Owl Lisp یک نگارش کاملاً تابعی از R7RS Scheme است. از ol می‌توان برای ارزیابی تعاملی برنامه‌ها و کامپایل آن‌ها به باینری‌های محلی (native) از طریق C استفاده کرد.

این برنامه از ساختار معمول خط فرمان گنو پیروی می‌کند که در آن گزینه‌های طولانی با دو خط تیره ('-') آغاز می‌شوند. خلاصه‌ای از گزینه‌های ضروری خط فرمان در ادامه آورده شده است. فهرست کامل در صفحهٔ راهنما نمایش داده می‌شود.

نمایش خلاصه‌ای از گزینه‌ها.
نمایش نسخهٔ برنامه.
ارزیابی string، چاپ مقدار آن، و خروج با وضعیت 0 مگر در صورت وقوع خطا.
ارزیابی string و خروج با وضعیت 1 در صورتی که مقدار آن #false باشد، 0 در صورت true بودن، یا 126 در صورت بروز خطا.
کامپایل فایل داده‌شده به fasl یا کد C، و ذخیرهٔ نتیجه در فایل خروجی مشخص‌شده.
بارگذاری بی‌صدای فایل و فراخوانی آخرین مقدار با آرگومان‌های باقیماندهٔ خط فرمان.
انتخاب قالبی که ol باید ورودی داده‌شده را به آن کامپایل کند. گزینه‌های معتبر در حال حاضر c و fasl هستند. این مقدار معمولاً از پسوند فایل ارائه‌شده در -o استنتاج می‌شود و بنابراین معمولاً نیازی به تعیین آن نیست.
تولید بایت‌کد ساده، کامپایل برخی از توابع متداول به C یا کامپایل همهٔ موارد ممکن. این گزینه‌ها تنها هنگام کامپایل به C معنادار هستند.
از سرگیری اجرای وضعیت برنامه که با suspend ذخیره شده است.

ایجاد یک باینری ساده

$ echo '(lambda (args) (for-each print args))' > test.l
$ ol -o test.c test.l
$ gcc -o test test.c
$ ./test foo bar
کامپایل درون یک لوله (pipe)
$ echo '(lambda (args) (print (cons "I got " args)))' | ol -x c -o - | gcc -x c -o test - && ./test 11 22 33
مقایسهٔ بارگذاری در برابر اجرای فایل‌ها

$ echo '(print "Hello, world!")' > test.l
$ ol test.l
Hello, world!
$ echo '(lambda (args) (print "Hello, world!"))' > test.l
$ ol --run test.l arg1 arg2 arg3
Hello, world!

ovm(1), gcc(1), scheme48(1)

‏Owl Lisp و این صفحهٔ راهنما توسط Aki Helin <aki.helin@iki.fi> نوشته شده‌اند.

January 12, 2021