LINUX.ORG.RU

[lisp] Ограничения LispWorks Personal Edition


0

2

Сразу оговорюсь - на лиспе не пишу, эта тема результат праздного интереса.

Пройдя по ссылке http://www.lispworks.com/downloads/index.html можно увидеть ограничения LispWorks PE:

  • There is a heap size limit which, if exceeded, causes the image to exit. A warning is provided when the limit is approached.
  • There is a time limit of 5 hours for each session, after which LispWorks Personal exits, possibly without saving your work or performing cleanups such as removing temporary files. You are warned after 4 hours of use.
  • The functions save-image, deliver, and load-all-patches are not available.
  • Initialization files are not loaded.
  • Layered products that are part of LispWorks Professional and Enterprise Editions (CLIM, KnowledgeWorks, Common SQL and LispWorks ORB) are not included.

Так вот интересно, что-то полезное можно «сотворить» с учетом этих ограничений? или удел пользователей данной версии lispworks это использование её в качестве «навороченного калькулятора»? Если подобные вопросы уже где-то обсуждались, просто дайте ссылку.

Спасибо.

Можно проверить свою библиотеку на совместимость с LW.

mv ★★★★★ ()

Можно потыкать IDE, попробовать CAPI, компильнуть свой CL проект на проверку совместимости, в учебных целях тоже хорош, если не хочется использовать имакс.

gensym ★★ ()

Т.е. целевая аудитория этой редакции LW это, в основном, люди, изучающие cl?

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

спасибо, я как раз после этого текста и задался вопросом выше. по ссылке написано

Автор использовал её в течение двух первых лет для собственных библиотек и программ весьма внушительных размеров.)

не пойму , как это вяжется с указанными ограничениями.

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

не пойму , как это вяжется с указанными ограничениями.

Это коммерческая контора, и используют они соответственно полную реализацию.

И зачем тебе сейчас LW? Начинай смело с открытых реализаций.

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

sbcl

Нормально работает только на ширпотребных юниксах. И даже там бажнее конфетки-LW.

ecl

Не ANSI, глюкалово.

clisp

Байткод.

gcl

См. ecl

guile

Не Common Lisp.

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

mv, если бы нужно было составить «рейтинг» реализаций CL, то список бы как выглядел (по любым субъективным критериям, которые кажутся важными)?

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

1. clozure (бесплатный, хороший фидбэк от компилятора, достаточно стабильный, достаточно быстрый)
2. sbcl (бесплатный, быстрый, большинство библиотек на него заточено)
3. clisp (бесплатный, стабильный, хороший фидбэк)
4. lw (достаточно быстрый, хороший фидбэк, дофига всего внутри, мощный дебаггер)
5. коллеги говорят, что acl ещё более волосатый в плане фич, но лицензия... они ж просто почку просят отдать!

Если важна быстрая разработка в безглючном, навороченном окружении, и есть деньги, то однозначно LW. Если бы я стартап лисповый поднимал, то затарился LW без вопросов.

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

рейтинг тем выше, чем выше номер реализации в списке? у меня сложилось впечатление, что sbcl «лучше» clisp.

Вообще, на сколько оправдана такая логика:

  • пишем прототип с помощью одной из бесплатных реализаций
  • если с помощью прототипа удается получить конгруэнтные результаты, покупаем LW и создаем рабочую систему

Если эта логика - не глупость, то какую реализацию подбирать в пару к LW, которая у меня пока единственный кандидат для второго шага?

спасибо.

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

Первый в списке предпочтительней. Очевидно, что выкладывать 4 штуки баксов за LW не слишком-то предпочтительно, если деньги не из чужого кармана.

CLISP более стабильный, чем SBCL. Сейчас особо не слежу, но некоторое время назад это было правдой. SBCL в районе 1.0 на x86-64 был вообще Содом и Гоморра.

Если прототип собран на бесплатном лиспе, и всё устраивает, то зачем тогда на другую имплементацию переходить? Ко всему прочему, на LW некоторые библиотеки имеют больше багов, чем под SBCL или CCL.

Я бы выбрал CCL.

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

Не ANSI, глюкалово.

ANSI, глюкаво. Но других кроссплатформенных ныне живых и развивающихся встраиваемых коммон лиспов по-моему нет. На линуксе amd64 ecl выдает просто феерические баги :(

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

Но других кроссплатформенных ныне живых и развивающихся встраиваемых коммон лиспов по-моему нет.

LispWorks прекрасно (есть опыт) встраивается, как и AllegroCL (судя по документации). Да, не бесплатно. Serious buisness же.

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

LispWorks прекрасно (есть опыт) встраивается, как и AllegroCL (судя по документации). Да, не бесплатно. Serious buisness же.

Спасибо за информацию, возможно удастся выбить себе нормальный LW. В бесплатной версии, как я понял, все идет одним большим бинарником и просто вытащить оттуда компилятор на «попробовать встроить» не получится, верно?

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

В бесплатной версии, как я понял, все идет одним большим бинарником и просто вытащить оттуда компилятор на «попробовать встроить» не получится, верно?

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

Кстати, в готовом приложении/библиотеке не будет доступен compile-file, но можно обойтись compile и load (зависит от delivery level).

Из других фич:

На юниксах можно даже эмбедить Си модули в лисп библиотеку, включив C ис ходники в lw:defsystem. В последней версии можно встроить внешнюю динамическую библиотеку в лисп приложение, чтобы потом не таскать все зависимости на клиентские машины.

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

Ан нет, покупайте! ;-p :)

у меня две лицензии, но не дам ;)

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

Нормально работает только на ширпотребных юниксах.

Да на винде тоже нормально. Вот у меня все отлично работает, например, и даже лучше чем на юниксах(есть например foreign-thread коллбэки, и т.п.)

lovesan

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

Я бы выбрал CCL.

Но его нет в списке

Первая строчка.

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

Кстати, в готовом приложении/библиотеке не будет доступен compile-file, но можно обойтись compile и load (зависит от delivery level).

В хвост и гриву используем. Настолько гибкая система получилась, что сейчас чешем голову, как её интегрировать с менее гибкими enterprise-поделками ;)

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

Да на винде тоже нормально. Вот у меня все отлично работает, например, и даже лучше чем на юниксах(есть например foreign-thread коллбэки, и т.п.)

Не пи-ди, ты в юниксах - полный профан, о чём в своём бложике неоднократно писал :)

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

В хвост и гриву используем. Настолько гибкая система получилась, что сейчас чешем голову, как её интегрировать с менее гибкими enterprise-поделками ;)

Same here ;) Даже не представляю, как это реализавать, _также гибко_, в других средах/языках. Ерланг тоже использую, но там не так все просто.

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

есть например foreign-thread коллбэки

В LW «искаропки» на всех поддeрживаемых платформах. Использую во всю для интерфейса с low-level C библиотеками.

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

В LW то везде есть, но в SBCL - есть только на винде.

Вообще, SBCL на винде еще отлично интегрируется с родной системой обработки исключений(aka SEH), умеет вменяемо работать с консолью(т.к. использует юникодовую часть WinAPI), и пр..

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

Да, спасибо akovalenko и dmitry_vk, большую работу проделали.

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