LINUX.ORG.RU

Ручное управление памятью в лиспе

 


2

3

Подскажите, пожалуйста, можно ли в лиспе работать с собственными структурами как в с++? Например вручную указать сколько памяти выделить для хранения и т.п. Гуглил, что можно делать как то через FFI, но ни одного примера не нашел, поэтому спрашиваю на данном форуме - можно ли управлять памятью программы и работать с указателями вручную?


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

на питоне пишу только простую скриптоту.

У меня основной код работает на PyPy, который довольно неплох по скорости. GIL не мешает, если вместо потоков использовать процессы: у меня несколько серверов, на каждом по процессу на ядро, коммуникация через брокер сообщений.

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

Может, это всё-таки выдумки фанбоев, а?

Из недавних «выстреливших» лисповых стартапов - Velocitude, куплен Акамаем. Конечно, тебе там в бобруйском энтерпрайзе света белого не видно, но если быть к индустрии причастным, то много интересных вещей обнаруживается.

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

Вот кстати, имплементация Python на Common Lisp:

http://common-lisp.net/project/clpython/index.html

  • access Python libraries from Lisp;
  • access Lisp libraries from Python.

Можно также смешивать лисповый и питоний код. Работает в LispWorks, Allegro CL, SBCL, CCL, CMUCL, ECL.

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

Прикольно, но зачем? В clpython и «a lot of functionality not available yet», и Си-модули не поддерживаются.

У меня в голове только один юзкейс: упростить жизнь кастомерам, и дать им возможность писать кастомные скрипты на питоне. Хотя для этой цели есть уже имплементация JavaScript.

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

Сложные и большие алгоритмы. Которые я очень не хочу на C++ писать (потому что трудно и долго изменять, а важно иметь возможность быстро менять логику).

Ну, и много ты «больших и сложных алгоритмов» написал? Список в студию.

И да, если для тебя расстановка бутылок на полках в супермаркете — «большой и сложный алгоритм», то у меня для тебя плохие новости.

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

И да, если для тебя расстановка бутылок на полках в супермаркете

Список ваших достижений в студию, пожалуйста.

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

Из недавних «выстреливших» лисповых стартапов - Velocitude, куплен Акамаем.

Но ведь это один мелкий стартап на тысячи мейнстримных. Почему лисперы до сих пор не во главе индустрии? Ведь Лисп же мощнее всех других языков, а разработка на нём идёт на порядки быстрее!

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

у меня для тебя плохие новости

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

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

Список ваших достижений в студию, пожалуйста.

... МЫ запускаем ракеты, МЫ управляем заводами...

поищи сам в любом лиспосраче

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

Лол, какая замечательная картина!

На каждом углу лисперы жужжат про мифические «большие и сложные алгоритмы, проекты порядка mloc», на которых лисп якобы выстреливает. Но давайте же поинтересуемся, что же это за такие алгоритмы?

Тут начнётся интересное. Один вместо ответа спросит: «А чего добился ты?», другой отмажется под предлогом мифической коммерческой тайны, а третий свалит с темы и начнёт жаловаться на тупизну в «индустрии».

И в этом весь лисп.

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

Ведь Лисп же мощнее всех других языков, а разработка на нём идёт на порядки быстрее!

Так и есть. ;-) А о чем был вопрос?

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

Лисперов мало?

Но ведь они пишут на порядки быстрее, а код получается на порядки более краткий и качественный. Что не так? Должны ведь были уже сто раз обставить любой ынтырпрайз по всем направлениям.

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

Так и есть. ;-) А о чем был вопрос?

Если «так и есть», то почему лисп сейчас находится на свалке истории, а не во главе индустрии?

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

Не верю. Брехня.

Отрицание очевидного и общеизвестного — яркий симптом любой секты. И лисп — не исключение.

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

почему лисп сейчас находится на свалке истории, а не во главе индустрии?

«у меня для тебя плохие новости»

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

Отрицание очевидного и общеизвестного — яркий симптом любой секты.

«Не верю. Брехня.»

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

Что вас удивляет?

Да нет, как раз ничего не удивляет. Нажужжать про «большие и сложные алгоритмы», а потом отказаться приводить пруфы — это вполне типичное поведение лиспера, так что just as planned.

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

Друк, «0.05% stable marketshare since 1950's» — это и есть «на свалке истории», лол.

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

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

Какое основное время? В предыдущей конторе я этим (лисповые конпеляторы, и DSL, и обычные) и занимался всё время.

Немного расширим ответ... Очень, знаешь, льстит, что фейл целой ниши индустрии или языка программирования связывают с моим трудоустройством! Давай я перечислю, какие языки к применению в энтерпрайзе не годны:

На первой своей программерской работе я ваял на C, PHP, Perl и PL/pgSQL. Т.к. я оттуда ушёл, то очевидно, что эти язычки негодны к промышленному применению и привели к фейлу продукта. Фейл там на самом деле был, в основном из-за плохого решения использовать только что вышедший 8-й Постгрес на полную катушку.

На второй работе писал на C++ и Perl. Контора сидела на заказе Москвы, доставшимся по-блату. Денег было столько, что ажно кошелёк, привезённый в нерезиновую из своего бобруйска, порвал. Как блат закончился, деньги у конторы резко испарились, я ушёл. Но это стопудов фейл C++ и Perl! Если бы C++ был нормальным языком промышленного уровня, то блат никогда бы не закончился. Ну или, как вариант, это я C++ не знал, поэтому блат ушёл.

На третьей работе опять писал на C. Ну, тут всё понятно: наступил на грабли во второй раз - опять взялся за маргинальный язычишко, больше я там не работаю. С таким недоязычком-поделкой хрен ведь удачное что-то напишешь, да?

Про лисп уже все знают: каша из обрезков ногтей нечитаема, браузеры на нём не пишут, работы нет, денег не платят. Фейл обеспечен.

Сейчас опять на C пишу, и есть у меня смутные сомнения, что опять это не последнее моё место. Дай бохх, если контора опомнится и вовремя перейдёт на проверенные, промышленные языки программирования!

Можно ещё сказать, что фейл не в языках, а во мне, ибо нормальный, грамотный специалист попадает в контору ещё проходя практику, всю жизнь пилит на APL или Cobol один и тот же продукт, а выносят его оттуда ногами вперёд. Сидел пятой точкой на одном месте ровно 50 лет, использовал проверенный временем инструмент, джоб хоппером не был, никаких проблем!

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

Отрицание очевидного и общеизвестного — яркий симптом любой секты.

совершенно очевидно, что Солнце вращается вокруг Земли :)

а раньше это было и общеизвестно...

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

Пруфы???

Именно. Примеры «больших и сложных алгоритмов», которые существенно легче реализовать, поддерживать и развивать на Лиспе, нежели на нормальных языках.

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

годный язык этот Python

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

http://norvig.com/python-lisp.html

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

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

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

какие у тебя основания не верить анону на слово?

О'кей, давайте не на словах. Начнём с малого: «мы управляем заводами», о'кей.

OpenSCADA: C++, C, JavaScript, Shell script, XML, CSS. EPICS: pure C

Лишь у этих двух систем (open source, между прочим), десятки тысяч деплойментов по всему миру. И это мы не говорим о коммерческих SCADA-системах, которые, к слову, тоже по большей части написаны на Си.

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

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

А теперь ссылку на аналогичную систему с аналогичным
кол-вом инсталляций и пользователей

man «Подмена понятий»

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

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

Так и скажи: «пруфов привести не могу». Причины не имеют значения. Если не можешь доказать, то нечего было вякать про «большие и сложные алгоритмы».

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

man «Подмена понятий»

Что опять не так? На вопрос ответить можешь? Ссылку привести? Нет — слив засчитан.

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

Тогда откуда бред про тяжесть изменений? Это не от языка зависит, а от проектных решений.

С++ хороший инструмент. В один ряд(но не в нишу) с ним я бы поставил разве что scala.

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

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

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

Чем лисп так сильно отличается от других языков, что на нём писать невозможно? Помимо конпелятора я на нём написал систему, которая месяцами работала, не падая. Сеть, БД (своя), железо, мультитрединг, всякие разные .so через ffi - никаких проблем.

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

С++ хороший инструмент. В один ряд(но не в нишу) с ним я бы поставил разве что scala.

жопа с пальцем

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