LINUX.ORG.RU

Релиз Allegro CL 9.0

 , , ,


2

3

Вышла новая версия реализации среды программирования Common Lisp — Allegro CL 9.0.

Allegro CL® является динамической объектно-ориентированной средой программирования, подходящей для разработки сложных энтерпрайз-ориентированных приложений. Разработка такого рода приложений с миллиардами объектов теперь стала еще проще с новым Allegro CL 9.0. Сложность сегодняшних программных комплексов и взрывной рост объемов данных получили широкое распространение во всех областях, начиная с наук о жизни (Life Sciences) и кончая финансовым анализом (Financial Analytics).

Из наиболее значимых изменений в этой версии — полная поддержка SMP (Symmetric Multiprocessing) на SMP-платформах:

  • 32-bit Linux (x86), 64-bit Linux (x64);
  • 64-bit Mac OS X 10.5;
  • 32-bit Windows, 64-bit Windows.

«Релиз ACL 9.0 от Franz является важным шагом вперед, который принес настоящий SMP в одну из самых лучших существующих сред программирования. Все наши существующие многопоточные приложения „просто работают“ и выполняются быстрее, чем раньше на том же оборудовании.» — Jason Cornez CTO, RavenPack International.

Из других изменений:

  • 820 улучшений с последнего релиза.
  • Важное обновление для AllegroServe. Автоматическая компрессия/декомпрессия файлов, поддержка «chunking», и новые опции для безопасности, включая TLS v1.0 протокол для защищенных соединений.
  • jLinker. Улучшен протокол, проще API.
  • Важные изменения в интерфейсе Allegro CL к Amazon Elastic Compute Cloud (EC2), поддержка регионов.
  • Упрощенная установка для 64 битных графических утилит на Mac.
  • Метод «dequeue» теперь включает таймаут.
  • Поддержка компрессии данных. См. класс util.zip:deflate-stream и аналогичные функции.
  • Новый макрос in-case-mode позволяет загрузку fasl-файлов, скомпилированных в других режимах из запущенной лисп-среды.
  • Структуры могут быть переданы или возвращены в/из foreign функций как по значению, так и по ссылке.
  • Поддержка различных систем кодирования: MD2, MD4, MD5, SHA1, SHA256, SHA512, и RMD160.
  • Множество улучшений в Common Graphics и в IDE для систем без SMP.
  • Другие изменения

>>> Подробности

★★

Проверено: maxcom ()
Последнее исправление: maxcom (всего исправлений: 4)

новость хорошая!

//пользователь lispworks

ymn ★★★★★
()

Всё так и хотят пить кровь христианского младенца-первенца за свою лицензию?

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

Всё так и хотят пить кровь христианского младенца-первенца за свою лицензию?

yep

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

пафоса не многовато?

приложений с миллиардами объектов

В самый раз

AlexCones ★★★
()

Что-то мне кажется, фразы с «это превосходная, безупречная, изысканная программа» удалят перед аппрувом.

ZenitharChampion ★★★★★
()

SMP

MD2, MD4, MD5, SHA1, SHA256, SHA512, и RMD160

Метод «dequeue» теперь включает таймаут.

поддержка «chunking»

TLS 1.0

наша реальность

Гм. Нихило так ваша реальность окриогенилась.

baverman ★★★
()

хм, а мне казалось что 9-ка давно уже есть, о как

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

пафоса не многовато?

не мое. переводил с оффсайта.

особенно на фоне changelog'а запаздывающего лет на 10

Ну и что? Система развивается и это главное.

gensym ★★
() автор топика

А может кто-нибудь дать ссылку на анализ или сравнение различных коммерческих реализаций коммон лиспа? Интересуют в первую очередь возможности и киллер-фичи языка/рантайма, а не IDE.

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

Интересуют в первую очередь возможности и киллер-фичи языка/рантайма, а не IDE.

Скорее всего, то что можно нагуглить, уже устарело, так как все последние плюшки улучшения рантаймов, например LispWorks и Allegro CL, произошли буквально в последние 1-2 года.

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

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

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

Я потому и не гуглю. Может кто знающий поделится информацией.

если нужен «ынтырпрайз» и много денег, то выбирай Allegro CL, так как плюшек там больше (см. документацию) для этого. Для остального - подходит отличный LispWorks, у которого нет лицензии на рантайм развертуемого приложения.

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

s/развертуемого/развертываемого

блин, проще по аглицки писать

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

Единственная реализация, в которой с ходу завелись примеры из PAIP

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

Не троллинга ради: ты что, и впрямь не понимаешь разницы между CL и Clojure, или притворяешься?

//пользователь Clojure

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

отсутствием родовой травмы в виде JVM ;)

Это не родовая травма, это design desicion. JVM конечно ужасная виртуальная машина для лиспов (нет дешевых эфемерных обьектов), но имеет свои плюсы. Кложура не претендует на звание лиспа на века, это грязный инструмент для решения насущных проблем современного software enginnering-бизнеса (когда батарейки перевешивают). Кто занимается на Кложуре rocket science - ССЗБ.

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

Не вброса ради: чем оно лучше Clojure?

Оптимизирующий компилято. По скорости примерно как g++.

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

Вот поэтому я использую Scala

А, мы тебя знаем. Ты в Сан-Антонию дата майнингом занимаешься, да? Неделю на Clojure, неделю на Scala.

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

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

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

Для jvm есть реализация CL - ABCL. Особо не юзал, но вроде работает. Я использую sbcl и java: обращаюсь к jvm по tcp/ip - юзаю java библиотеки.

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

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

Это спорное утверждение. См :explain здесь: http://www.lispworks.com/documentation/lw60/LW/html/lw-592.htm#marker-1139137

(compile '(defun foo (arg)
           (declare (:explain :variables :types :boxing)
            (optimize (float 0)))
           (let* ((double-arg (coerce arg 'double-float))
                  (next (+ double-arg 1d0))
                  (other (* double-arg 1/2)))
             (values next other))))

;;- -> Examining a call to system::coerce-to-double-float with arguments
;;-    a variable named arg with type t
;;- -- failed to replace by compiler::null-operator-double (types did not match)
;;- -- failed to replace by system::coerce-to-double-float$single (types did not match)
;;- -- failed to replace by system::coerce-to-double-float$fixnum (types did not match)
;;- <- no further choices, so call will still be to system::coerce-to-double-float
;;- -> Examining a call to + with arguments
;;-    a variable named double-arg with type double-float
;;-    a constant, value 1.0 with type (member 1.0)
;;- <- replaced by system:|+2| (types matched)
;;- -- failed to replace by system:+$fixnum-noov (types did not match)
;;- -- failed to replace by system::+$fixnum-only (types did not match)
;;- -- failed to replace by system::+$fixnum-noov-check (types did not match)
;;- -- failed to replace by system::+$fixnum-nocheck (types did not match)
;;- <- replaced by system::+$double$double (types matched)
;;- -> Examining a call to * with arguments
;;-    a variable named double-arg with type double-float
;;-    a constant, value 1/2 with type (member 1/2)
;;- <- replaced by system::*2 (types matched)
;;- -- failed to replace by system::*$power-of-two$fixnum (types did not match)
;;- -- failed to replace by system::*$fixnum$power-of-two (types did not match)
;;- -- failed to replace by system:*$fixnum-noov (types did not match)
;;- -- failed to replace by system::*$fixnum-only (types did not match)
;;- -- failed to replace by system::*$fixnum-noov-check (types did not match)
;;- -- failed to replace by system::*$fixnum-nocheck (types did not match)
;;- -- failed to replace by system::*$double$double (types did not match)
;;- -- failed to replace by system::*$single$single (types did not match)
;;- -- failed to replace by system:*$fixnum (types did not match)
;;- -- failed to replace by system::*$double$single (types did not match)
;;- -- failed to replace by system::*$single$double (types did not match)
;;- <- no further choices, but call will now be to system::*2
;;- -> Examining a call to system::*2 with arguments
;;-    a variable named double-arg with type double-float
;;-    a constant, value 1/2 with type (member 1/2)
;;- -- failed to replace by system::*$power-of-two$fixnum (types did not match)
;;- -- failed to replace by system::*$fixnum$power-of-two (types did not match)
;;- -- failed to replace by system:*$fixnum-noov (types did not match)
;;- -- failed to replace by system::*$fixnum-only (types did not match)
;;- -- failed to replace by system::*$fixnum-noov-check (types did not match)
;;- -- failed to replace by system::*$fixnum-nocheck (types did not match)
;;- -- failed to replace by system::*$double$double (types did not match)
;;- -- failed to replace by system::*$single$single (types did not match)
;;- -- failed to replace by system:*$fixnum (types did not match)
;;- -- failed to replace by system::*$double$single (types did not match)
;;- -- failed to replace by system::*$single$double (types did not match)
;;- <- no further choices, so call will still be to system::*2
;;- -> Examining a call to system::coerce-to-double-float with arguments
;;-    a variable named arg with type t
;;- -- failed to replace by compiler::null-operator-double (types did not match)
;;- -- failed to replace by system::coerce-to-double-float$single (types did not match)
;;- -- failed to replace by system::coerce-to-double-float$fixnum (types did not match)
;;- <- no further choices, so call will still be to system::coerce-to-double-float
;;- -> Examining a call to system::*2 with arguments
;;-    a variable named double-arg with type double-float
;;-    a constant, value 1/2 with type (member 1/2)
;;- -- failed to replace by system::*$power-of-two$fixnum (types did not match)
;;- -- failed to replace by system::*$fixnum$power-of-two (types did not match)
;;- -- failed to replace by system:*$fixnum-noov (types did not match)
;;- -- failed to replace by system::*$fixnum-only (types did not match)
;;- -- failed to replace by system::*$fixnum-noov-check (types did not match)
;;- -- failed to replace by system::*$fixnum-nocheck (types did not match)
;;- -- failed to replace by system::*$double$double (types did not match)
;;- -- failed to replace by system::*$single$single (types did not match)
;;- -- failed to replace by system:*$fixnum (types did not match)
;;- -- failed to replace by system::*$double$single (types did not match)
;;- -- failed to replace by system::*$single$double (types did not match)
;;- <- no further choices, so call will still be to system::*2
;;- Calling a function that may allocate a non-float number (arg-types): system::*2  (double-float (member 1/2))
;;- Calling allocation call box-double
;;- Calling allocation call box-double
;;- Variables with non-floating point types:
;;-  arg other
;;- Variables with floating point types:
;;-  double-arg next

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

А что, было и такое? Никогда не видел подобной лицензии, даже у некрософта.

Franz хотят процент с дохода иметь.

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

А каково соотношение производительности между Allegro CL, LispWorks и SBCL, например?

Allegro CL < LispWorks < SBCL. По фичам в обратном порядке.

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

Ну да. Опять путаем голый sbcl и энтерпрайз фреймворки. Где там семантик веб и встроенный Пролог? И компилятор у них под винду очень хороший, а этот sbсl на этой платформе и не развивается ни хера.

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

А что, что-то в этом есть. Можно бесплатно свою собственность передавать кому-то, можно сдать в аренду, продать или передать неисключительные права на неё(право использовать в своих продуктах к примеру) в обмен на процент от прибыли. Они по сути инвестируют свой труд в ваш продукт. Это нормальная капиталистическая практика. Передача нематериального актива(прав на использование) в обмен на долю в предприятиии. Довольно стандартная практика, правда не в мире ПО, а в мире технологий, товарных знаков и других нематериальных активов. Не вижу в этом ничего особо странного. Хотя конечно выгодней просто один раз заплатить пару сотен(в крайнем случае тысяч) дуллеров за хороший инструмент.

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

пафоса не многовато? особенно на фоне changelog'а запаздывающего лет на 10

ну так преимущества модели разработки же :)

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

Не вброса ради: чем оно лучше Clojure?

Оптимизирующий компилято. По скорости примерно как g++.

у g++ быстрый компилятор, все знают

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

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

anonymous
()

Оно всё под своей анальной лицензией? Уж лучше LispWorks тогда. Но всё же молодцы, что развиваются, добра им.

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

На Прологе пишут очень серьезные вещи умные пузатые дядьки. Вроде Buran Prolog http://www.foia.cia.gov/docs/DOC_0000498691/DOC_0000498691.pdf Бизнес-логику такие дяди пишут на раз-два, заменяя весь департамент пых-явко-ерланг-кодеришек из Бауманки вместе с их (тим) и (тех) лидами и парой блядей разносящих кофе на рабочие места.

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

На Прологе пишут очень серьезные вещи умные пузатые дядьки.

спасибо чувак, всё по полкам расставил, а в лиспе то зачем пролог?

shty ★★★★★
()

...теперь стала еще проще с новым...

Я не понял, это новость на ЛОРе или реклама стирального порошка по зомбоящику?

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

У тебя все приложение (бинарник) включает image лисп+библиотеки+дебагер+пролог. Ну типа как в 1С есть ядро, есть конфиги, которое оно исполняет. Но, в отличии от этой срани, где надо писать на низкоуровнем бейсике с циклами, функциями и прочей херней десятки тысяч строк кода, для программирования бизнес-логики, ты свою бизнес-логику можешь описать в декларативном виде или в логике ограничений, как это принято в Прологе и скомпилить ее в бинарный код. Выигрышь в производитнльности в порядки.

anonymous
()

Allegro CL® является динамической объектно-ориентированной средой программирования, подходящей для разработки сложных энтерпрайз-ориентированных приложений. Разработка такого рода приложений с миллиардами объектов теперь стала еще проще с новым Allegro CL 9.0.

Какой жыыыр.

tailgunner ★★★★★
()

Allegro CL® является динамической объектно-ориентированной средой программирования

Вот она вся «сущность» лиспа коротко и ясно.

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

Может статься, что поддержка ООП важнее поддержки других парадигм, таких как ФП. Сегодняшняя мода на ФП пройдет, и многие, быть может, снова вернутся хвалить ООП. К тому же, парадигмы переплетаются порою причудливым образом - их не всегда можно противопоставить. Например, не так уж много отличий между коллекциями в Scala и Smalltalk.

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

Например, не так уж много отличий между коллекциями в Scala и Smalltalk.

Scala - это прежде всего ООП система. Так что неудивительно.

Сегодняшняя мода на ФП пройдет

Мода? Не наблюдаю никакой «моды»! Наблюдаю восстановление баланса между научным и инженерным подходами в разработке мейнстрим-софта.

их не всегда можно противопоставить

Я пытался противопоставить? Даже близко нет. Кроме того, противопоставлять их попросту глупо. И Одерский это доказал на практике.

ЗЫ: А раз ООП такое хорошее, так что ж тебя мое высказывание задело?

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