LINUX.ORG.RU

Clasp, одна из новых реализаций CL, всего лишь в четыре раза медленнее, чем C++

 , , , ,


4

3

Новая реализация компилятора CClasp, базирующегося на Cleavir от Robert Strandh, без оптимизаций, всего лишь в четыре раза медленнее, чем C++. Ожидается, что с добавлением вывода типов производительность генерируемого кода с CClasp, должнo еще прибавить в скорости выполнения.

В приведенной таблице, также есть сравнение производительности генерируемого кода с SBCL (еще одна из активных реализаций CL) и Python.

Основной особенностью Clasp, среди других реализаций Common Lisp, является тесная интеграция с C++ и использование LLVM.

Подробности: https://drmeister.wordpress.com/2015/07/30/timing-data-comparing-cclasp-to-c-...

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

Чего за ахинею ты несешь? Какая тебе Навье-Стокс линейная модель? Или ты даже не в курсе проблем с решением нелинейных дифуров?

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

ХЗ, я на эту тему подписан был.

Но похоже не может.

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

А программист на CL (или любом другом модном на ЛОРе язычке) - в лучшем случае теоретик-исследователь

А в худшем делает софт для квантового компьютера.

Ну или хотябы ядро системы проверки грамматики.

loz ★★★★★
()
Последнее исправление: loz (всего исправлений: 1)
Ответ на: комментарий от loz

А в худшем делает софт для квантового компьютера.

«· Experience working with Common Lisp or other functional languages such as Scheme, Scala, Clojure, Haskell, Erlang or Racket. · Experience developing and optimizing software in compiled languages; ability to consider both algorithm choice and how your code is compiled when tuning performance.»

Как-то не очень похоже на Lisp job.

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

You will share responsibility for designing, implementing, testing and maintaining the suite of software necessary to support the testing and operation of D-Wave’s quantum computing hardware.The software is implemented in Common Lisp (SBCL)

loz ★★★★★
()

Лисп ето тот случай когда дебилы собрались вместе и тупят коллективно а нормальные не могут им возразить потомучто лень ради етого доку по лиспу читать. Я прочел- хуйтень как я и думал.

Вобщем лисп ето perl самой 1й версии но без без циклов вместо ветвлений условные выражения и нетнормального парзера формул с приоритетами +(a,b) надо писать вместо a+b

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

Как-то не очень похоже на Lisp job.

Не, это он и есть.

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

Божечки, да оно страшнее C++

Квазицитирование? Есть немного, особенно, больших вложенностей.

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

Ты это сейчас так perl обосрать попытался? Не суйся своими грязными ручонками в то, чего не понимаешь!

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

Никогда не было так стыдно за Анона.

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

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

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

я уж не говорю про то, что сабжевый КК это не совсем то, что эйнштейнологи подумали.

ckotinko ☆☆☆
()
Ответ на: комментарий от loz

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

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

C и C++ и многих других используемых языков это тоже касается, надо заметить.

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

Да и потом, утверждать, что какой-нибудь (setf (aref series index) value) лучше, чем series[index] = value будет только упертый фоннатег.

А чем первый вариант хуже второго? Читается одинаково. Но подход Common Lisp-а гибче. Можно написать макрос или функцию для форм-модификаций с дополнительными аргументами. Это часто очень удобно.

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

Но любой разработчик знает, что от прототипа до продакшена путь неблизкий

В случае с CL - достаточно близкий.

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

Любой проект на крестах или жабе начинается с написания точного ТЗ. Пока нет _полной_ спецификации программирование не начинается. Кому ты объясняешь, что такое «написание программ в условиях неясности»?

Сказочки. Даже самая тривиальная задача не имеет точного ТЗ. Максимум - видимость этого ТЗ.

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

результат зависит от того, загружен ли в текущий образ пакет B

Не вижу ничего плохого в этом. Загружаемый пакет меняет поведение метода. Хороший приём. Главное чтобы всё это было самоочевидно или хорошо задокументировано.

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

Собственно вся суть - «Fixnum_sp» в крестовом коде. Я так и не понял чего там фикснум, ну ладно.

Я уже 100раз писал про суть этих тестов, почему все недоязычки бенчат на «+, -, <, =, >» над интами/флоатами - их проще всего свести к банальному статическому ir(в данном случае)-говнокоду и скормить ллвм - результат будет тем же, что и у шланга.

Т.е. любой недоязычек-фронтенд к ллвм выдаст одно и тоже. Но проблема в том, что недоязычек с примитивно выводящимися статистическими типами и 4-мя операциями нахрен никому не нужен.

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

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

Поэтому единственная вещь в которую реально умеет оптимизатор ллвм - это преобразование кода.

Пистон этого не умеет - поэтому показывает реальные цифры.

Далее очередная байка про «без оптимизаций». Оставим даже тот факт, что какие нахрен там нужны оптимизации. Адепты как орали 10лет назад, что завтра жабаскрипт догонит сишку и будут оптимизации, так 10лет прошли, а оптимизациями так и не пахнет.

Точно так же, как 20лет назад адепты орали, что конпелятор не нужен - щас все их днищеязычке на копеляторах. Как орали, что статические типы не нужны - так сейчас всё их днище статическое.

Какзалось бы - поел говна, ну заткнись ты и не неси херни - нет же, они жрут говно и продолжают нести херню.

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

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

Я уже не помню сколько лисперов насрало в штанишки от таких вопросов, но всё же:

Опиши фичу и внятное описание контекста её применения. Потом выкати мне реальный пример её применения, в контексте какой-то реальной задачи с описанием, естественно в рамках обобщённой технической терминологии(т.е. стандартной терминологии кс). Которую(задачу) ты можешь полностью технически описать.

Т.е. не «ко-ко-ко манады - пацаны юзают 100% в какой-то херне, а зачем и почему, да и вообще что есть „Херня“ - я тебе не скажу. Пошел нахрен, ко-ко-ко», как дефолтный адепт, а нормально.

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

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

Мнение адепта который слил мне во всех своих жалких попытках со мною поспорить - миру крайне важно.

Твоя ЦА - это пхписты, которым ты будешь толкать про раст. Только в отличии от твоей ЦА я помножу на ноль и раст и тебя вмести с ним левой пяткой. Стучать модераторам - это единственный скилл, которым владеет дефолтный лора-балабол.

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

слил мне во всех своих жалких попытках со мною поспорить

Я не спорю с подделкой под слабоумного.

миру крайне важно.

Миру пофиг, тебе - важно. Иначе ты бы не ответил, причем аж несколькими постами.

tailgunner ★★★★★
()
Последнее исправление: tailgunner (всего исправлений: 1)
Ответ на: комментарий от tailgunner

Я не спорю с подделкой под слабоумного.

Ну что ты ещё мне можешь сказать, явно ведь по темень сказать чего и ты не юлишь. Ладно бы ты хотя бы мог это сделать, но когда ты трясёшься от страха при любом упоминании спора со мною - это жалко.

Ну и да, зачем ты пытаешься делать вид, что я типа подделка, если ты точно знаешь, что я настоящий? К чему это? Типа оправдать перед публикой свой юлёж - типа он траль и не царь вообще, а царя я вроде как уже обоссал. Так чтоли?

Будь мужиком.

Миру пофиг, тебе - важно. Иначе ты бы не ответил.

Миру пофиг, тебе - важно. Иначе ты бы не ответил.

Т.е. тебе важен царь. А говорил, что пофиг. Неужели неразделённая любовь?

А я ведь разделяю твою любовь и люблю тебя. Только вот почему вы меня все боитесь - я ведь добрый и хороший братан. Были бы друзьями - ты бы мне рассказывал какой крутой раст - я бы пытался с тобою поспорить. Мы бы исцелили друг друга.

Как я узнаю, что я не прав, если со мною никто уже не спорит? Как ты узнаешь, что ты прав, если ты споришь только с нулями? Почему же вы все такие глупые.

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

Загружаемый пакет меняет поведение метода. Хороший приём. Главное чтобы всё это было самоочевидно или хорошо задокументировано.

Это плохо тем, что влияет на все пакеты в текущем образе, а не только на те, которые этот загружаемый пакет используют.

Особенно феерично, если этот «загружаемый пакет» используется не самой программой, а пакетом трассировки или IDE, например.

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

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

Ты даже ФФТ не осилило, ничтожество. Заткни пасть и не возвращайся, пока не сможешь показать царский код.

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

Что я тебя должен показывать? Меня не интересует мнение нуля, который обделался уже раз 10 за последние 3-4 своих высера. Зачем ты срёшь под анонимусом - сри под регистрантом.

Штука в том, что обоссать мне тебя ничего не стоит, а с чего такое ничтожество пытается что-то с меня требовать?

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

Что я тебя должен показывать?

Код. Хоть что-нибудь, чтобы подтвердить твои претензии на царство. Ты ж пиздобол, жалкая балаболка, которая сама не умеет вообще ни хуя. Так по какому праву ты ебло разеваешь и производишь пиздежь, если ты сам полный ноль?

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

Это плохо тем, что влияет на все пакеты в текущем образе, а не только на те, которые этот загружаемый пакет используют.

Это гибкость, а за гибкость приходится платить. В данном случае внимательностью и дисциплиной. Это своего рода monkey patching.

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

А в Common Lisp почти всегда так. CL много позволяет, но в тоже время нужно следить чтобы всё было консистентно.

multimethod
()

всего лишь в четыре раза медленнее

У людей вон жаба тормозит, которая обычно на 20% медленнее плюсов

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

Это своего рода monkey patching.

...

CL много позволяет, но в тоже время нужно следить чтобы всё было консистентно.

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

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

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

Хочешь сказать, что операционную систему Genera и кучу прикладных программ к ней писали «программисты-одиночки»?

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

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

fixed for the greater good

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

А её писали на CL?

Писали на том, что потом стало CL. У них даже был режим совместимости с CL после стандартизации.

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

большой командой макак, не умеющих в дисциплину.

В любой достаточно большой команде будет хотя бы одна такая «макака».

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

В любой достаточно большой команде будет хотя бы одна такая «макака».

Ну с этим я не спорю. А вот с тем что CL не подходит для коммандной разработки — это не верно.

Если пару макак затесалось среди специалистов, их можно поднатаскать :)

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

Писали на том, что потом стало CL.

CLOS с ad-hoc дописыванием функций там не было. Был вменяемый Flavors.

Было разделение на системы. И (вроде как) запрет на переопределение экспортных символов из чужого пакета.

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

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

То же самое говорят приверженцы C++. В дискуссии против C#/Java. Но новые крупные проекты успешнее (быстрее доходят до состояния, когда вероятность пользователя нарваться на ошибку достаточно мала) на безопасных языках.

Из CL можно сделать безопасный язык запретив некоторые возможности ( den73 периодически тут рассказывает про допиливание Lispworks). Но по факту безопасный CL — как безопасный C++. Можно обложить заслонками, но никогда не будешь уверен, что все возможности учёл. Так как полный доступ к образу — неотъемлемая суть CL.

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

Неумный человек не осилит лисп

...а умный осиливать не станет

именно поэтому, в частности, лиспом пользуются 3,5 человека, у которых просто случайно так сложилось

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

CLOS с ad-hoc дописыванием функций там не было. Был вменяемый Flavors.

Было разделение на системы. И (вроде как) запрет на переопределение экспортных символов из чужого пакета.

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

И (вроде как) запрет на переопределение экспортных символов из чужого пакета.

можнозделать

Flavors

и это тоже, на уровне библиотек

я думаю, коммерческие вендоры бы осилили, просто это никому не нужно, и хватает CLOS

Oxdeadbeef ★★★
() автор топика
Последнее исправление: Oxdeadbeef (всего исправлений: 2)
Ответ на: комментарий от monk

Так как полный доступ к образу — неотъемлемая суть CL.

Вот это то, что мне как раз подходит для моих задач.

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