LINUX.ORG.RU

Вышел SBCL 1.0


0

0

Вышла первая версия SBCL (Steel Bank Common Lisp) - свободной реализации ANSI Common Lisp. SBCL предоставляет интерактивную среду для взаимодействия с пользователем REPL (read-evaluation-print-loop), компилятор в машинный код для различных процессоров, отладчик, возможность профилирования и множество различных расширений.

>>> Страница проекта SBCL

★★★★★

Проверено: Teak ()

Ложка дёгтя (погода плохая и настроения нет):

threads по-прежнему experimental (даже на тех платформах, где вообще есть); порт под офтопик всё так-же не доделан...

И вообще. Я понимаю, что в "стабильных вещах" sbcl давно "стабилен" и заслуживает смены мажорной версии с 0 на 1. Но просто так объявить, что след. версия будет не 0.9.19, а 1.0... Не знаю. Остался осадочек "неудовлетворённости".

А всё-равно здорово!!!! :)

yyk ★★★★★
()

Новость конечно хорошая, надо будет посмотреть ...

И кстати, раз уж зашел разговор - кто знает какие-нибудь фреймворки для написания веб-приложений с БД на лиспе ? Я нашел несколько туториалов в сети на предмет mod_lisp и кучи других костылей, но как то это все не впечатляет ... Хочется чего то попроще ;) Ткните кто нибудь носом плз %))

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

>И вообще. Я понимаю, что в "стабильных вещах" sbcl давно "стабилен" и заслуживает смены мажорной версии с 0 на 1. Но просто так объявить, что след. версия будет не 0.9.19, а 1.0... Не знаю. Остался осадочек "неудовлетворённости".

Мне кажется, что смена версии -- это чисто психологический ход. Чтобы внести оживление в зал. :)

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

> Мне кажется, что смена версии -- это чисто психологический ход. Чтобы внести оживление в зал. :)

Ну, в "зале" и так практически всё время кто-то шевелится :)

Хотя может и "да". Лишним дополнительное "шевеление" не будет :)

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

> И кстати, раз уж зашел разговор - кто знает какие-нибудь фреймворки для написания веб-приложений с БД на лиспе

наиболее продвинутый UnCommon Web: http://common-lisp.net/project/ucw/

KPAX: http://homepage.mac.com/svc/kpax/

Или минимальный вариант (cgi-подобный): Araneida (http://www.cliki.net/asdf/edit/araneida) как сервер + LML2 (http://lml2.b9.com/readme.html) для генерации XHTML

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

>И кстати, раз уж зашел разговор - кто знает какие-нибудь фреймворки для написания веб-приложений с БД на лиспе ?

Сам я не занимался пока web'ом, но http://www.cliki.net/web (из сообщения я не понял, был ли ты тут). Имеются веб-сервера, написанные на Common Lisp, всякие фреймфорки, библиотеки.

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

> Мне кажется, что смена версии -- это чисто психологический ход. Чтобы внести оживление в зал. :)

И не только для оживления. Мне, например, будет значительно проще общаться с заказчиками -- "круглая" версия им внушает доверие, а вот всякие 0.9.18 они воспринимают настороженно :]

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

> А в чем там сложности? У меня вроде все работает.

Да собственно с самим уникодом - никаких. Но - ограниченное количество поддерживаемых кодировок (всё руки не дойдут приделать возможность подключения libiconv - или может кто другой сварганит?), и в 1.0 не успел войти патч, исправляющий невозможность передачи sbcl в командной строке not-ascii параметров.

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

> Да собственно с самим уникодом - никаких.

Что и имелось в виду под "замечательно".

> ограниченное количество поддерживаемых кодировок (всё руки не дойдут приделать возможность подключения libiconv - или может кто другой сварганит?)

Это да. Но я варганить не буду, поскольку использую :utf-8. Так что, видимо, самому придется :]

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

> И не только для оживления. Мне, например, будет значительно проще общаться с заказчиками -- "круглая" версия им внушает доверие, а вот всякие 0.9.18 они воспринимают настороженно :]

ИМХО, тогда лучше подождать 1.1. По мне так 1.0 (1.0.0) вызывает ещё меньшее доверие (не в отношении sbcl) :))

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

на http://www.cliki.net/web я был, смотрел, но интересно узнать мнение людей которые уже хоть с чем-то работали; UnCommonWeb пока выглядит красивей всего, хотя прикола ради можно и lisplets.sf.net посмотреть на досуге %)))

BTW, Спасибо всем за советы :)

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

> По мне так 1.0 (1.0.0) вызывает ещё меньшее доверие (не в отношении sbcl) :))

Я-то согласен. А вот этих товарищей симпатичная единичка радует, уж не знаю почему. Конечно, какое-нибудь 7.3 было бы еще лучше ;]]

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

> ещё есть siscweb

Есть. Но Buddha is big, has hairy armpits, and laughs -- на том стояли и стоять будем! :]]

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

Пробовал K-PAX, отказался из-за малого количества документации (есть только примеры и исходники).

UnCommonWeb не использовал.

Использую Araneida + LML2. Типовая программа выглядит примерно как

(in-package :asdf)
(oos 'load-op :araneida)
(oos 'load-op :lml2)
(oos 'load-op 'clsql)
(oos 'load-op 'clsql-postgresql)

(in-package lml2)
(setq +xml-prologue-string+
  "<?xml version=\"1.0\" encoding=\"koi8-r\"?>")

(defpackage "MY-WEB"
  (:use "CL" "ARANEIDA"))

(in-package :my-web)

(defvar *my-url*
  (make-url :scheme "http" :host "localhost" :port 8000))

(defvar *listener*
  (make-instance 'serve-event-http-listener :port (url-port *my-url*)))

(defclass home-handler (handler) ())

(clsql:connect '("" "monk" "monk" ""))

(defun two-or-null (list)
  (if (> (length (caar list)) 0) list (cdr list)))

(defmacro show-html (request template)
  `(let* ((lml2:*html-stream* (request-stream ,request))
        (*params* (append (two-or-null
                          (url-query-alist (request-url ,request)))
                           (request-body ,request)))
                          ))
    (lml2:dtd-prologue)
    (eval (macroexpand `(lml2:html (html-templ
                                    ,#',template ,request))))))

(defmethod handle-request-response ((handler home-handler) method request)
  (request-send-headers request)
  (show-html request html-sections))  

(install-handler (http-listener-handler *listener*)
		 (make-instance 'home-handler)
		 (urlstring (merge-url *my-url* "/"))  nil)

(install-handler (http-listener-handler *listener*)
		 (make-instance 'programs-handler)
		 (urlstring (merge-url *my-url* "/programs"))  nil)

(setf *content-types* (read-mime-types "/etc/mime.types"))

;;; point the root url at a static view of the Araneida sources

(install-handler (http-listener-handler *listener*)
		 (make-instance 'static-file-handler
				:pathname (pathname "images/"))
		 (urlstring (merge-url *my-url* "/images")) nil)

(install-handler (http-listener-handler *listener*)
		 (make-instance 'static-file-handler
				:pathname (pathname "utils/"))
		 (urlstring (merge-url *my-url* "/utils")) nil)


(start-listening *listener*)

------------------------

Основное удобство в том, что Araneida все неиспользуемые адреса перекидывает на обработчик '/' (если быть более точным, то на тот
обработчик начало которого больше всего совпадает с набранным
адресом).

Сообственно, программирование в стиле CGI, но все данные 
(и соединение к БД) между запросами не теряются.

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

> Я-то согласен. А вот этих товарищей симпатичная единичка радует, уж не знаю почему.

Если это не коммерческий секрет :), то что за проекты. И где можно на них посмотреть, опять же если можно :)

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

> порт под офтопик всё так-же не доделан

Так nyef его один практически ковыряет, вот и медленно

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

> Если это не коммерческий секрет :), то что за проекты. И где можно на них посмотреть, опять же если можно :)

Показывать пока что нельзя. Все что могу сказать -- нефтянка, учет и умное управление.

Но я в любом случае буду договариваться насчет прав на код, чтобы и себе что-то осталось, и выкладывать можно было. Все не получится, но многое -- вполне.

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

спасибо, посмотрю ... А то хочется с лиспом разобраться чуть получше чем hello world'ы писать, но нужна какая то более менее реальная задача, вот и попробую веб-приложеньице сделать.

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

> Так nyef его один практически ковыряет, вот и медленно

Присоединяйтесь!.. :)

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

> А то хочется с лиспом разобраться чуть получше чем hello world'ы писать, но нужна какая то более менее реальная задача

TODO в используемой реализации? :)

yyk ★★★★★
()

Почитал про UCW. Очень интересная штука, но мне пока не нужна. Возьму на вооружение.

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

>Как ты, однако, лисп хорошо охарактеризовал.

Вообще-то я про UnСommon Web (UCW), а не про Common Lisp. Просто я уеб-приложения не пишу. Другими вещами занимаюсь. :)

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

Я понял, но твоя фраза применима ко всему лиспу.

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

В оригинале было (из /usr/share/common-lisp/source/lml2/data.lisp):

(defvar +xml-prologue-string+ "<?xml version=\"1.0\" encoding=\"iso-8859-1\" standalone=\"yes\"?>")

На мой взгляд, koi8-r не хуже, чем iso-8859-1, а на UTF8 переходить ломает.

И работает везде :-)))

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

>> А то хочется с лиспом разобраться чуть получше чем hello world'ы писать, но нужна какая то более менее реальная задача

>TODO в используемой реализации? :)

Времени нет, все на быдлокодерство уходит :))))

anonymous_IV
()
Ответ на: Лисперы грызуться от yyk

>Из объявления о выходе SBCL 1.0 на comp.lang.lisp разгорелась "война" фришников с проприетарщиками :(

Заметил, кстати, что Ken Tilton -- автор CELLS -- тамошний прототип Луговского. Хоть и проприетарщик (помню старый тред какой-то по поводу GPL). Самый классный чувак -- это Pascal Bourguignon. Наш человек. Троллей не кормит, отвечает всегда по делу, множеством примеров, конкретным кодом. )

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

> Заметил, кстати, что Ken Tilton -- автор CELLS -- тамошний прототип Луговского. Хоть и проприетарщик (помню старый тред какой-то по поводу GPL).

Ну не знаю... ИМХО - не тянет на "прототип" ;)

А вот то, что некоторые из тех людей, продукты которых довольно интересны и в разной степени свободны, оказались "в противоположном лагере" (да ещё и довольно агрессивны местами) - заставляет более пристально приглядываться к лицензиям их продуктов. Со всеми вытекающими...

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

>А вот то, что некоторые из тех людей, продукты которых довольно интересны и в разной степени свободны, оказались "в противоположном лагере" (да ещё и довольно агрессивны местами) - заставляет более пристально приглядываться к лицензиям их продуктов. Со всеми вытекающими...

Да, лицензионная политика у них разная у всех. Вот есть лицензия LLGLP (Lisp LGPL = LGPL + преамбула http://opensource.franz.com/preamble.html). Там есть особенность же. Понятие "линковка" по отношению к LISP не поймешь, как трактовать. Как-то на том же c.l.l кто-то отказался использовать для своих целей CLISP из-за того, что он GPL (тоже флейм был). Типа получается, что респространяя какой-то продукт с CLISP он автоматически должен становиться GPL. Впрочем, на сайте CLISP лицензионный вопрос освещен:

Q: License - why GNU GPL? A: Because CLISP uses GNU readline.

Note that this does not necessarily prevent you from distributing your proprietary products based on CLISP. See Note in COPYRIGHT.

Но юрасты это все-равно должны смотреть, так как вопрос распространения несвободных программ с ядрами GPL-ных реализаций -- вопрос неоднозначный.

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

>Ну не знаю... ИМХО - не тянет на "прототип" ;)

Имеется в виду то, что он хоть и зло отвечает зачастую, но чаще всего весьма ржачно. То есть "умри, быдло" в его словах читается. Но а по содаржательной части он, наоборот, ненавидит RMS, GPL и все из этого лагеря. :)

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

> Ken Tilton -- автор CELLS -- тамошний прототип Луговского

А как же Eric Naggum? :-)

-- SVK

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