LINUX.ORG.RU

[история узбека] Лисп крошит экономику

 


2

5

Поставили партнёрам первую железку, стоит в датацентре NASDAQ.

Ну что сказать, очень хорошо себя железка чувстует. Вносимые задержки очень маленькие и, главное, стабильные даже на насдаковских 10 гигабитах. Рынок сейчас колбасит, нагрузка в разы выше обычной, а у нас коробка даже в ус не дует, ни одного пакета не дропнула, не зациклилась, не взглючила, только радует выхлопом валидных данных и ровненькой, прекрасной статистикой :)

Самую сложную часть написали на лиспообразном самописанном компиляторе, реализующем часть Коммон Лиспа (CLOS нет, но макросы остались :) и транслирующем в vhdl. Верификацию делали лиспом же, визуализация графа по тактам отлично через graphviz идёт (вывод в dot интегрирован в компилятор). Ошибок логических почти не было, а всяких vhdl-специфичных проблем вообще не было. Ошибками динамической типизации только хаскеллисты пугают, в реальной жизни они практически никогда не встречаются.

Компилятор и обвязку писало два занятых и другими вещами человека, времени потратили достаточно мало. Лиспообразный язык получился простой, даже лох типа меня может чего-нибудь наклепать :) Декларативная часть для генерации интерфейса ещё какой-то тайный смысл в себе несёт, а сама логика - ну чистый Коммон Лисп.

Я считаю, это реальный успех кластеров метапарадигм!

★★★★★

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

Да, если после этого ты не приведешь цифры. Но тебе с твоими тремя классами этого не понять

anonymous
()

>NASDAQ

vhdl

Европейское быдло не в курсе, что в Штатах используют verilog?

anonymous
()

А компилятор то на чем написан?

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

>> утверждение, скажем, что «плотность воды меньше, чем плотность

железа» в технической беседе моветон?

Да, если после этого ты не приведешь цифры.


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

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

Причем здесь академизм?

Я склонен думать, что мне не удастся объяснить это тебе. Не буду тратить свою энергию.

Хочешь анекдот расскажу:

Едут по Австралии биолог, физик, математик и видят, что на лугу пасется черная овца.

- Смотрите! В Австралии обитают черные овцы. - говорит биолог.

- Нет. В Австралии обитает как минимум одна черная овца. - утверждает физик.

- Нет, господа. В Австралии обитает как минимум одна овца, и как минимум с одной стороны черная. - заявляет математик.

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

>А вот если бы их DSL не выглядел как говно, был понятен обычным финансовым деятелям. Если бы сделали для людей, а не для специально нанятого программиста на списках mv, на каком языке было бы легче реализовать?

На любом :-)
http://research.microsoft.com/apps/pubs/default.aspx?id=71425

anonymous
()

Молодцы! Забейте на местных недоумокв.

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

у них работа поинтереснее, и зарплаты повыше

где это волшебное место?

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

pathfinder ★★★★
()

> Самую сложную часть написали на лиспообразном самописанном компиляторе, реализующем часть Коммон Лиспа (CLOS нет, но макросы остались :) и транслирующем в vhdl.

А лямбды остались в этом языке? Предполагаю, что, скорее всего, нет.

dave ★★★★★
()

>а у нас коробка даже в ус не дует, ни одного пакета не дропнула, не зациклилась, не взглючила, только радует выхлопом валидных данных и ровненькой, прекрасной статистикой :)

ты так радуешься как будто на жабе не делают то же самое http://www.infoq.com/presentations/LMAX

Karapuz ★★★★★
()

Это решение предложили после того как програмное решение признали неэффективным?

vertexua ★★★★★
()

И что у вас подразумевалось под верификацией? Если это формальная верификация, которая строит все возможные состояния и переходы, то интересно как вы обошли динамичность лиспа?

anonymous
()

Поздравляю с успехом и откровенно завидую.

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

>И что у вас подразумевалось под верификацией? Если это формальная верификация, которая строит все возможные состояния и переходы, то интересно как вы обошли динамичность лиспа?

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

anonymous
()

возьмите меня на темную строну силы

Vernat ★★
()

SBCL vs. LispWorks

Интересно, SBCL справился бы со всеми описанными задачами, или LispWorks здесь используется особенным образом и без негo никак?

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

> то интересно как вы обошли динамичность лиспа?

причем здесь динамичность лиспа? oна здесь никак не мешает.

anonymous
()

Поделись в общих чертах, как писал компилятор?

//и да, грац!

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

ты так радуешься как будто на жабе не делают то же самое http://www.infoq.com/presentations/LMAX

У них книга заказов второго уровня, вы сначала обработайте фид ;)

На сишечке обработка сообщения при постоянной 100% нагрузке занимает ~400 нс на 3.4 ГГц процессоре - это 2.5 млн сообщений в секунду на одном ядре. Если время не замерять, и работать в боевых условиях, при которых плотность потока, практически, никакая, то лэйтенси ещё меньше получается, ибо кэш и tlb не выносятся.

Чем удивили-то? Что на яве можно написать код, работающий в несколько раз медленнее, чем Си + ассемблер?

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

И что у вас подразумевалось под верификацией? Если это формальная верификация, которая строит все возможные состояния и переходы, то интересно как вы обошли динамичность лиспа?

Отладка синтезируемой части hdl делается на сигнальном уровне. Это несколько неудобно при отладке сложной логики. Если из лиспового кода генерируется hdl, то можно отладить логику на лиспе и транслировать её в hdl.

mv ★★★★★
() автор топика
Ответ на: SBCL vs. LispWorks от anonymous

Интересно, SBCL справился бы со всеми описанными задачами, или LispWorks здесь используется особенным образом и без негo никак?

А какая разница? :)

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

ХЗ.

Вроде вы использовали LispWorks. Поэтому и спросил. Значит никакой. :)

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

Я так т не понял. Компилятор на CL написан?

Да.

Т.е. нечто вроде эмулятора?

И это тоже.

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

Вопрос: что ж это получается, вы код на лиспе перегнали частично в VHDL для ускорения? В принципе это можно было сделать на любом языке... и точно так же ускорить...

I-Love-Microsoft ★★★★★
()
Ответ на: комментарий от I-Love-Microsoft

>Вопрос: что ж это получается, вы код на лиспе перегнали частично в VHDL для ускорения?

Не думаю, что перегон произвольного кода на языке X в VHDL оправдан: никакой реальной пользы кроме геморроя не будет. Насколько я понял был разработан DSL, который перегоняется в VHDL.

В принципе это можно было сделать на любом языке... и точно так же ускорить...

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

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

На лиспе можно написать dsl. Например, у нас написан dsl для разбора фида. Выглядит, как формальное описание из pdf'ки, а на выходе получается vhdl, парсящий фид в этом формате.

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

> На лиспе можно написать dsl. Например, у нас написан dsl для разбора фида. Выглядит, как формальное описание из pdf'ки, а на выходе получается vhdl, парсящий фид в этом формате.

я уже давно писал тут, что лисп предоставляет poor man's algebraic data types

я бы конечно в вашем случае пользовался бы человеческими АлгТД

то, что у вас — небольшой профит с того, что не надо парсера, небольшой (но не ясный) убыток с того, что у вас poor man's algebraic data types, и неясный, но возможный профит с того, что лисп позволяет eval-ить, квотить, так сказать рефлексию (относительно удобно, в явовской ногу сломишь, пока поймешь как и что) и может что еще

в общем, то на то и выходит, но я бы так не делал

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

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

Профит, наверное, в том, что в лиспе значительное число конструкций - макросы, по-этому если сделать компилятор из подмножества full-expanded лиспокода в целевой ЯП, то все макросы, раскрывающиеся в это подмножества автоматически работают. Ну + искаробки возможность писать макросы самому.

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