LINUX.ORG.RU

конечно - один из самых мощных компиляторов - Python (не путать с языком программирования)

lg ★★
()

gcl - через Цэ компилит.

cmucl, sbcl - оченно шибко оптимиздящие нативные компиляторы (но - не сделают standalone приложения - это вообще не lisp way).

vsl
()
Ответ на: комментарий от vsl

Еще есть ecl --- он, как и gcl, компилит через С, но более ANSI-conformant

aa5779
()

я вот все понял. токо не понял как получить исполняемый файл, имея cmucl и clisp.

anonymous
()
Ответ на: комментарий от anonymous

Получить "настоящий" исполняемый файл с помощью clisp нельзя в принципе, потому что clisp -- это байт-компилятор (в отличие от всех остальных). Как его сымитировать -- про это написано в impnotes в разделе Application Delivery.

cmucl тоже не умеет создавать стандартных ELF файлов, так что тоже нужно писать скрипт-обертку. В sbcl эта процедура автоматизирована.

aa5779
()
Ответ на: комментарий от aa5779

хорошо имеем sbcl cat test.lp (defun hello_world () (format t "Hello world!"))

как получить бинарник????

може я тупой может лыжи не едут но в man sbcl этого нет.

anonymous
()
Ответ на: комментарий от aa5779

Вот так должно выглядеть:
хорошо имеем sbcl. 
cat test.lp
(defun hello_world () (format t "Hello world!"))

как получить бинарник????

anonymous
()
Ответ на: комментарий от lg

а как принято???
вот мне сказали что lisp может заменить с++ полностью.
а теперь получается что бинарники не в моде????
я запутался....

anonymous
()
Ответ на: комментарий от anonymous

Просто так уж сложилось, что cmucl использует нестандартный формат исполняемого файла. В принципе, используя т.н. MISC binaries в Linux можно сделать так, чтобы такие файлы запускались как обычные. Но проще сделать обвязку через shell. Ну или действительно использовать ecl или gcl.

Какое это отношение имеет к замене С++?

aa5779
()
Ответ на: комментарий от anonymous

Не в моде не бинарники, а раздельная компиляция. В Лиспе компиляция инкрементальная, и, соответственно, "бинарник" - это дамп памяти, содержащий как откомпилированные уже выражения, так и все данные, результаты работы программы на момент сброса дампа.

Этот подход не лучше и не хуже поздней линковки - он просто ДРУГОЙ.

vsl
()
Ответ на: комментарий от aa5779

насчет отношения:
Ну дает мне например заказчик задачу напиши ка мне говорит
программку чтобы с базой под постгресом она ворочала.
Значит беру lisp вместо с++ и либы сишные и пишу значит программу.
А заказчику что приносить??? 
p.s.
я в лиспе не силен как вы уже наверно поняли. и я раньше думал что лисп 
достаточно ограничен и используется исключительно больше в теории чем 
на практике. Мне вот интересно просто если бинарники не lisp-way, 
то как реально на практике его можно использовать в качестве замены 
того же c++, если все компиляторы для c++ генерят бинарники. 
Из программы на перле тоже можно получить исполняемый файл, 
но ИМХО это "костыли".
Для лиспа бинарник это тоже костыль???

anonymous
()
Ответ на: комментарий от lg

хорошо.
этот core image?? его как получить то????
gcl???

p.s.
прошу не обижаться на такие простые вопросы просто хочу знать - если
где-то на просторах www есть на них ответы - ткните.

anonymous
()
Ответ на: комментарий от anonymous

практически каждая имплементация common lisp имеет функциональность для
сброса текущего дампа в на внешнее хранилище, с дальнейшей возможностью
его подсоса ..

пример с cmucl:

$ lisp
* (boundp 'test-ok)
NIL
* (setq test-ok 1)
Warning:  Declaring TEST-OK special.
1
* (save-lisp "test.core")
[Doing purification: Done.]
..
Done
$ lisp -core test.core
* test-ok
1

lg ★★
()
Ответ на: комментарий от anonymous

Философский ответ: он тебе что -- "Hello, world" заказал? Нет? Тогда ты ему принесёшь не только бинарник -- будь то хоть Цэ, хоть ++, чорт лысый. Ты ему принесёшь бинарник, парочку .dll, парочку скриптов, а может, ещё парочку .sql файлов, а может, дамп базы или ещё чего-нить.

Конкретнее -- видимо, надо ставить ему Лисп (возможно, урезанный, без средств редактирования) и батничек для запуска. Ты серьёзно думаешь, что заказчик будет на типы файлов смотреть?

С уважением -- Смоляное Чучелко

anonymous
()
Ответ на: комментарий от anonymous

Понятно. Вот из-за этого мне не нравится ява, то что всегда надо еще виртуальную ява машину таскать.

anonymous
()
Ответ на: комментарий от anonymous

У явы много недостатков, но виртуальная машина к ним не относится
А что тебе не нравится? Ну будет у тебя скрипт запускать программу, а не бинарник - какая разница?

Fedor ★★★
()
Ответ на: комментарий от Fedor

Не нравится имеено тем что надо будет таскать еще лисп с собой.
Хотя в принципе Смоляное Чучелко правильно сказал что в более-менее
сложной программе даже в с++ одним экзешником не обойтись.

anonymous
()
Ответ на: комментарий от anonymous

Ну, с SBCL тем же таскать надо всего то два файла - сам бинарник рантайма sbcl и core. При желании можно и сшить в один бинарник, но это будет типа извращение...

vsl
()

Lispworks генерирует бинарники довольно небольшие. http://www.lispworks.com

Но за спасибу его не дадут, лицензия стоит примерно 1000$, демо версия не умеет рожать исполняемые файлы.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.