LINUX.ORG.RU

Вышел новый релиз LispWorks 7.0

 , ,


1

1

LispWorks Ltd рада представить новый релиз LispWorks 7.0 на Windows®, Macintosh®, x86/x86_64 Linux®, ARM Linux®, FreeBSD®, AIX®, x86/x64 Solaris™ и SPARC/Solaris™ платформах.

Также представлен новый продукт: LispWorks for Mobile Runtime для разработки приложений на Android и iOS платформах.

LispWorks 7.0 предоставляет новые возможности:

  • 32-бит реализации для ARM Linux.
  • 32-бит и 64-бит реализации для PowerPC/AIX.
  • Интерфейс с Java.
  • Полная поддержка Unicode в строках.
  • Полная поддержка Unicode в редакторе, включая китайские и японские символы.
  • Улучшена гипертекстовая документация CAPI интерфейса с примерами.
  • Инструменты для анализа кода.
  • Асинхронное API ввода-вывода для TCP и UDP сокетов.
  • Редактор поддерживает больше шрифтов в Cocoa.
  • Поддержка multi-touch gestures.
  • Новая Graphic Tools API (beta quality).
  • Много улучшений в CAPI.
  • Улучшения в IDE включая режим Directory и списка буферов опций в редакторе.
  • Другие новые возможности:
    • Потокобезопасные операции над хеш-таблицами.
    • Оптимизированный доступ к 8 битным simple vectors.
    • Тип FLI для хранения адреса на foreign symbol (используется в коллбеках из C в Lisp).
    • Поддержка 64 битного целого в типах FLI в 32 битной версии LispWorks.
    • Эффективные арифметические операции над 64 битными raw целыми и доступ к елементам вектора в 64 битной версии LispWorks.
    • Поддержка UTF-16 и KOI8-R кодировок.
    • Оптимизация копирования объектов в CLOS.
    • На Windows, собранные DLLs могут использовать другую поставляемую копию MSVCRT рантайма.
    • На OSX улучшена обработка ошибок в Cocoa IDE event loop и используется новая защита от deadlocks.
  • Множество других исправлений ошибок.

Теперь 64 битные версии LispWorks доступны также в LispWorks Professional редакции.

Для некоммерческих целей также доступны новые редакции LispWorks Hobbyist и HobbyistDV с полнофункциональной средой Common Lisp IDE.

Таблица сравнения редакций

LispWorks for Android Runtime позволяет создавать ядро приложения в виде динамической библиотеки, которая затем может интегрироваться с GUI, созданным стандартным средставами разработки для Android.

LispWorks for iOS позволяет создавать ядро приложения в виде динамической библиотеки, которая затем может интегрироваться с GUI, созданным стандартным средствами XCode. 64 битная версия появится позже.

LispWorks 7.0 Personal Edition будет доступен позже в этом году.

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

★★★

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

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

Конечно затычка этот твой Си — узкое место в программе на Common Lisp пишется на Си. Это годный подход. Правильно, давай, закрывай тему. Ведь это же ты очередной антилисп спич затеял, тебе его и закрывать. Думал тут нагадить, а не получилось. :-)

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

Конечно затычка этот твой Си — узкое место в программе на Common Lisp пишется на Си

Так и запишем - Common Lisp мало того, что маргинален и в природе практически не встречается, так еще и не самодостаточен.

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

Я про фундаментальные математичекие корни говорил

маккарти математичен, ога, но джон шатт с кернелом ещё математичнее  — там всё первокласные объекты, даже макры фекспры.

может, 3-lisp математичнее 2-lisp и 1-lisp ? или, некий N-lisp?

например, математичнее ли добавить к eval-apply ещё третье, какой-нибудь locus и получить не двоичный метациклический вычислитель eval-apply, а троичный locus-eval-apply, «вычисления в конкретном контексте locus».

например, объект в контексте класса — это тип. обобщённый мультиметод в контексте класса — это реализация. макрос в контексте формы — форма. форма в контексте спецформы — это значение. матрица в контексте сечения — вектор. вектор в контексте сечения — элемент вектора. монада в контексте моноида — эндофунктор. и т.п.

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

другой вопрос, а как с этой всей сферической кубической математичностью в вакууме взлететь.

как-то общелисп более практичен чем это вот такое — хотя и менее математичен :))

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

First, current LISP environments are very large. To run a ‘‘nothing’’ program in LISP requires about 3 mbytes of address space. Hence, POSTGRES exceeds 4 mbytes in size, all but 1 mbyte is the LISP compiler, editor and assorted other non required (or even desired) functions. Hence, we suffer from a gigantic footprint.

как-то бургер накалякал свой picolisp покомпактнее. а там ведь тоже СУБД — строк нет, строки через символы, символы персистентны, демон для ссылок, персистентные объекты через префикс классы и символы. ах, да. там же нет компилятора.

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

These aren't much use in Emacs, which has GC and in which data types are handled at the Lisp level

значит, Столману GC не мешает, а постгрям — мешает?

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

А можно сделать, чтобы в одном файле лежало ЭТО, в другом правила проверки (аналог XML Schema), и всё это проверялось средствами самого языка?

для picolisp что-то типа (см. полный исходник в конце):

...
   (class +Prs +Entity)
   (rel nm (+Sn +IdxFold +String))        # Name
   (rel adr (+IdxFold +String))           # Address
   (rel em (+String))                     # E-Mail
   (rel tel (+String))                    # Telephone
   (rel dob (+Date))                      # Date of birth
...

для CL и схемы — что-то типа макроса или волкера, который проверяет переданную ему структуру и раскрывается в неё если ОК или в ошибку времени компиляции если структура не алё.

то есть, что-то вроде того, как в Rust Option<структура_непроверенная> раскрывается в Some(структура_проверенная), или в None, то есть, Error(«текст ошибки: не подходит схеме»); или Result<с,е> раскрывается в Ok(c) или в Err(e).

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

В SBCL компилятор по эффективности где-то в районе GCC 3-й ветки, но уже даже не вчерашних техник оптимизаций типа SSA в нём до сих пор нет.

значит ли это, что же clasp llvm общелисп более перспективен в плане оптимизаций? сейчас? или со временем?

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

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

и чтобы он сам себя рефакторил и переписывал :))) интеллектуально

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

значит ли это, что же clasp llvm общелисп более перспективен в плане оптимизаций? сейчас? или со временем?

LLVM делает достаточно низкоуровневые оптимизации. Чтобы они эффект давали, нужно сначала на высоком уровне всё правильно сделать. Если автор/сообщество clasp это осилят, хотя бы на уровне SBCL, то clasp имеет реальный шанс всех порвать в плане скорости.

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

«У LispWorks'а в первую очередь порадовало почти полное отсутствие багов,» Именно поэтому видимо в инсталлятор мажорного релиза 7.0 они забыли положить jar-ник, позволяющий работать с их новым Java-интерфесом. Да и народ в мейлинг листе начал жаловаться на другие баги

anonymous
()

А John Carmack написал:

Significant Lisp experience is one of those things I would pay money to have, but can't ever find the time to get.

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

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

А John Carmack написал:

Перефразируя: если вам надо успех и результат, то пишите как Кармак на С и С++, а лисп это то, что интересно было бы пощупать, но не стоит тратить на него время, есть более важные занятия.

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

А ну как тепеерь перефразируйте ещё одно выражение от John Carmack:

I just dumped the C++ server I wrote last year for a new one in Racket. May not scale, but it is winning for development even as a newbie.

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

А ну как тепеерь перефразируйте ещё одно выражение от John Carmack:

А что там перефразировать - с С и С++ Кармак добился успеха, а сейчас он в полной жопе. Налицо деградация - от успешного человека к убогому лиспофанбою.

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

Вам бы придумать уже парадигму успехо-ориентированного программирования, раз уж всё в жизни должно по Вашему сводиться к успеху. Ведь если не успешен, то деградат :-) Раз уж Вы успехо-ориентированный, можно посмотреть на Ваш успешный проект на C или C++? :-)

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

Кармак может предвзято относится к Lisp'у. В своё время из его компании (id Software) ушёл хороший программист, видимо разочаровавшийся в языке C. Ушёл писать игру на Lisp'е, и на зависть Кармаку он её выпустил.

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

Да не, он любит Lisp настолько, что даже он:

«Teaching my older son lisp (Racket). Working on a Pokemon battle simulator.»

И правильно делает, что сына учит правильному мышлению. Это пригодится в жизни даже если он и программированием заниматься не будет. А вот изучение (зубрёж) C++, всяких паттернов от 4-х ..., всяких трюков - воспитает в человеке киборга, натасканного на пару-тройку примитивных приёмов :-)

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

Вам бы придумать уже парадигму успехо-ориентированного программирования, раз уж всё в жизни должно по Вашему сводиться к успеху. Ведь если не успешен, то деградат :-)

Успех - один из важных (но не единственный) критериев оценки качества и уровня. И у Id достаточно старой славы и пиара, чтоб провалиться просто из-за незначительного внимания.

Раз уж Вы успехо-ориентированный, можно посмотреть на Ваш успешный проект на C или C++? :-)

У анонимусов такое не спрашивают.

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

Abuse же. Вряд ли Кармак завидовал самой игре, но по поводу ухода программиста из своей команды он точно переживал.

http://en.wikipedia.org/wiki/Abuse_(video_game)

Внутри имеется интерпретатор Lisp'а. Игра довольно шустро бегала на DOS. Сборочка для Linux кстати тоже есть. Зацени. Особо игрушка ничем не примечательна, разве что хардкорностью. Насколько я могу вспомнить, мне там больше всего запомнился многооконный игровой интерфейс, похожий на Window Maker из NeXTSTEP.

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

Сборочка для Linux кстати тоже есть. Зацени

Давно еще пробовал, в начале 2000-х (была на диске с ALT Linux), не зацепила, примитивная графика (даже для середины 90-х) и еще более примитивный геймплей. Впрочем это уже не вина языка, на котором ее сделали.

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

Скачал исходники - сплошной С++.

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

То есть Кармак, начав изучать Lisp, потерял качество и уровень, дегдарировав с профессионала C, C++ до любителя Lisp. Ну ты себя слушаешь вообще, фОнат ты наш крикливый? :-)

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

То есть Кармак, начав изучать Lisp, потерял качество и уровень, дегдарировав с профессионала C, C++ до любителя Lisp. Ну ты себя слушаешь вообще, фОнат ты наш крикливый? :-)

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

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

Евгений Павлович, раз Вы не можете показать свои секретные проекты на C и C++, тоне могли бы Вы назвать порекомендовать качественную среду разработки программ на C и C++?

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

тоне могли бы Вы назвать порекомендовать качественную среду разработки программ на C и C++?

Gnome builder.

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

Евгений Павлович, раз Вы не можете показать свои секретные проекты на C и C++, тоне могли бы Вы назвать порекомендовать качественную среду разработки программ на C и C++?

Xcode, VS. Для Linux сложнее, тут понятие «качественный», к сожалению, далеко не всегда применимо. Кроме того никто не занимается IDE именно для Linux, итого приходится использовать кроссплатформенные. Скажем так, можно пользоваться Eclipse, NetBeans, QtCreator. Clion может еще, надо посмотреть. Остальное хлам. Но, если не хотеть именно IDE, то на С и С++ можно писать и в редакторах вроде vim.

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

Ок. Евгений Павлович, а вот какая из перечисленных IDE (кроме Clion), умеет делать следующее. Допустим (в мыслях) есть 2 шаблона:

template<typename T, template<class> A = std::allocator<T>> class X { public: void method_name(T&& val); }

template<typename T> class Y : public X<T> { // ... }

template<typename T> class Z : public Y<T> { public: // ... }

Допустим, теперь кто-то своими ручонками накалякает этот шедевр в заголовки. Затем надо добавить реализации методов данных шаблонов. Мне очень жаль своего времени, чтобы калякать эти ваше template<typename T> void X<T>::method_name(T&& val) { //... }

// и т.д. для каждого метода Мне надо: 1) чтобы среда сгенерировала «заглушки» под эти методы; 2) чтобы среда могла зарефакторить все (в т.ч. и унаследованые) методы эти шаблонов. Потому что C++ - это выродок со своими мерзкими идеологиями ООП, где фОнаты должны придумывать свои говённые модели, которые имеют тенденцию оказываться неправильно спроектированными, и, приходится весь проект переделывать с ног на голову. 3) чтобы среда позволяла спокойно перемещаться между методами и их реализациями (да, в шаблонах, поэтому gtags или как их там здесь соснут). Емаксовый semantic тут тоже не канает - он плохо и медленно парсил C++ из-за его ущербной семантики, придуманной каким-то нацеленным на успех профЭссором. В Вашем этом vim'е это и подавно сделать нельзя. В QtCreator'е можно сделать только 1), в Xcode - не знаю, но вряд ли. В VS - может быть. Языку уже 32 года, а IDE до сих пор под него нормальной нет. Все с убийственными глюками и ограниченными возможностями. Это всё из-за непомерной сложности C++. Но красноглазые не унывают. И вот, наконец, Clion что-то путное соорудили (32 года спустя.) Хотя, что примечательно, IDE для C++ написана не на C++, а на Java :-)

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

Да не, он любит Lisp настолько, что даже он:

Дык, он и хаскель изучал. Расширять кругозор - хорошо, но о «большой любви» к языку это ещё не говорит. Да и сомневаюсь, что лисп или хаскель станут его основными инструментами, если он вообще активно программирует.

А вот изучение (зубрёж) C++, всяких паттернов от 4-х ..., всяких трюков - воспитает в человеке киборга, натасканного на пару-тройку примитивных приёмов :-)

А это уже глупое передёргивание. Для обучения «программированию в целом» С++ не лучший вариант, но свою нишу занимает не зря. Кармак-то, наверняка, изрядно времени отдал «зубрежу» нюансов языка, но киборга почему-то не вышло.

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

Успех - один из важных (но не единственный) критериев оценки качества и уровня

вообще не критерий.

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

А на чём написан интерфейс LispWorks?

Собственый хренулятор поверх нативных gtk и win api соответственно.

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

C++ - это лучший вариант для обучения «как не надо программировать». Так сказать, необходимое зло. Он оказался популярным лишь благодаря популярности C. В C++ есть лишь 1 фича, которая годная и (но не всегда) - деструкторы. И то, из деструкторов нельзя генерить исключения, а то произойдут УЖАСНЫЕ ВЕЩИ. (C) Саттер. Но и здесь некоторые извращаются и активно их пользуют там, где не надо. Пример, библиотека SOCI. Там запросы из дестукторов выполняются, а потому там исключений нема. :-) Да урод этот ваш C++. Его место в анналах.

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

Он оказался популярным лишь благодаря популярности C.

Ну есть появился в нужное время и занял свою нишу. Пользу приносит, опять же (хотя бы лично мне).

И то, из деструкторов нельзя генерить исключения, а то произойдут УЖАСНЫЕ ВЕЩИ.

Одна из сказок, которыми пугают нубов, чтобы меньше говнокодили. Если очень надо и знаешь, что делаешь, то вполне можно. Другое дело, что как правило, оно всё-таки не нужно.

Да урод этот ваш C++. Его место в анналах.

«Боюсь», что он нас переживёт.

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

Ок. Евгений Павлович

Может и ты назовешь свое имя?

Ок. Евгений Павлович, а вот какая из перечисленных IDE (кроме Clion), умеет делать следующее...

Понятия не имею, не было надобности в таком. Мне в IDE не хватает совсем другого.

Это всё из-за непомерной сложности C++

А что было бы, если б С++ еще и был динамически типизированным, да на полноценных макросах и т.п. Жуть.

Языку уже 32 года, а IDE до сих пор под него нормальной нет

Кроме сложности самого языка, C и C++ не IDE-ориентированные языки. Даже под крайне простой С нет «нормальной» IDE согласно твоих требований. Кто-то споткнется об препроцессор, кто-то об gnu-тости, кто-то не сможет отрефакторить как надо структуру, union и т.д. Даже С11 никто практически не умеет.

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

Это не сказка, это реальный недостаток языка. Из-за того, что его создатель боролся за совместимость с C, получился такой уродливый язык, полный костылей, подводных камней и ограничений.

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

У анонимусов такое не спрашивают. :-) «C и C++ не IDE-ориентированные языки» - тогда в пень такие языки. Инструмент должен мне помогать экономить моё драгоценное время, а не обкладывать меня со всех сторон ограничениями начиная от чрезвычайной сложности рефакторинга большого проекта (а он неизбежен), заканчивая невозможностью расширять сам язык, чтобы более ясно выражать свои идеи. Потому то я и питаю неподдельный интерес к LispWorks, чтобы писать на нормальном языке как можно больше, а на ущербных - как можно меньше. (Хотя это неизбежно.)

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

У анонимусов такое не спрашивают. :-)

Ну так и не нужно называть настоящее имя ;)

Потому то я и питаю неподдельный интерес к LispWorks, чтобы писать на нормальном языке как можно больше, а на ущербных - как можно меньше. (Хотя это неизбежно.)

А разве он может отрефакторить что-то сравнимое по сложности с приведенным выше кодом на С++? В последнем хотя бы статическая типизация есть.

П.С. решил поставить посмотреть (опустим тот момент, что оно только 32 бита, нет deb, а rpmlint от их rpm падает в обморок), может я спешил - не заметил, а там вообще рефакторинг под CLOS есть? Или CL офигенный, IDE тебе все показывает, а дальше уже раз плюнуть руками сделать?

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

Это не сказка, это реальный недостаток языка.

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

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

И вообще ты всё валишь в кучу. Да, С++ не подходит для быстрого написания кода, ну так возьми другой инструмент и не ной. Хотя такая фанбойская/хейтерская позиция зачастую характерна как раз тем, кто сам ничего и не делает.

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

Кстати интерфейс - привет 90-е, давно такого не встречал.

А что крутого в современных блевотно-гигантских интерфейсах для пальцатыкания и прочих плиток? По мне интерфейс 90х намного юзабельнее.

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

Интересно, как оно на OS X будет выглядеть, неужели и там gtk?

на винде — Win32

на OSX — Cocoa (опционально GTK+, или Motif (deprecated))

на прочих юниксах — GTK+, или Motif (deprectated)

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