LINUX.ORG.RU

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

 


2

3

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


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

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

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

mv ★★★★★
()

можно, через FFI.

den73 ★★★★★
()

Почитал тред, пребываю в восхищении. Лол, давно не было такого эпичного слива лиспачей! В последнее время обычно сливают по мелочам — а тут тебе и позорный просёр Пайтону с факториалом, и полная беспомощность в задаче с SQLite. Ошмётки дымящихся скобчатых пердаков повсюду.

Побольше бы таких тредов, а то /development/ превратился в какой-то филиал скобочной секты. А религиозным фанатикам на моём ЛОРе не место.

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

На сишечке spherical cow пишу раз в 10 медленней, чем на CL. Как там на плюсах - уже не помню, но раз в 5.

Просто ты некомпетентен в Си и Си++. Что не так?

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

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

Но ведь проект не взлетел, а контора лопнула.

Дай угадаю: конечно же, это произошло не по вине Лиспа!.. Виноват заговор финансистом с манагерами, онолитеги, орхетекторы, жидомасоны лично с Бернанке во главе, ZOG, иллюминаты, иезуиты, Антарктический Третий Рейх, межпланетные ящерики и индейцы майя? Это же очевидно! Б-жественный ЛNСП никак не может быть причиной провала продукта!..

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

Тезка, по поводу факториала загляните сюда Функциональная языкометрия (комментарий)

текущие результаты:

Python
model name      : Intel(R) Core(TM) i5-2400 CPU @ 3.10GHz
cpu MHz         : 1600.000
real    0m0.042s

Lisp
model name	: Intel(R) Core(TM) i5-2500 CPU @ 3.30GHz
cpu MHz		: 1600.000
0.001 sec
Разница 40 (сорок) раз в пользу лиспа. Не хотите ли помочь своим решением любимому языку?

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

Разница 40 (сорок) раз в пользу лиспа.

Но ведь это решение не удовлетворяет изначальным условиям: не использовать сторонних библиотек. Таким образом, вы либо невнимательно читали условия, либо смошенничали. И попутно признали, что встроенная реализация bignum в Common Lisp — беспомощный кусок говна.

Не хотите ли помочь своим решением любимому языку?

В смысле? Аналогичное «решение» на Python имеет идентичное время выполнения.

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

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

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

Программист: (даёт постановку задачи)
Лиспер: Я фсёзделол за две минуты!!!111 (приводит нерабочее решение)
Программист: Ваше решение некорректно. Оно не будет работать, так как (следует перечисление доводов)
Лиспер: Соснул - не выебывайся.

Замечательный диалог, не правда ли. А хочешь, я расскажу, что произошло на самом деле?

Был приведён пример задачи, легко решаемый на т.н. «мейнстримных» языках. Мучимый ненавистью к «мейнстриму», завистью и баттхёртом, ты сломя голову понёсся доказывать, что твоя Священная Корова не хуже. И, разумеется, свернул себе шею. Ведь тебе даже в голову не пришло, что тебя просят реализовать конкретный, завершённый, работающий практический use-case. Потому что для лисперов «практический», «работающий» и «конкретный» — это всего лишь баззворды. Лиспер не оперирует такими понятиями, это ниже лиспера. Лиспер оперирует анафорическими лямбдами, пандорическими захватами, вложенными квазицитированиями и кластерами метапарадигм.

Разумеется, ты высрал нерабочий код, отдалённо имеющий отношение к задаче. И теперь пытаешься свалить вину на недостаточно чёткую постановку задачи, неподходящую фазу Луны, магнитные бури и заговор жидомасонов. (Кстати, если для тебя приведённая постановка являетя «недостаточно чёткой» — это наглядно демонстрирует, что ты некомпетентен в предметной области, так как для специалиста в вышеприведённой постановке нет неоднозначностей). Ты сидишь в калоше, обтекаешь говном и при этом устраиваешь клоунаду. Всё это показывает тебя в не самом лучшем свете (впрочем, такое поведение очень характерно именно для лисперов).

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

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

Animation and Graphics

пруф?

AI

пруф?

Bioinformatics

пруф?

B2B and E-Commerce

пруф?

Data Mining

пруф?

EDA/ Semiconductor applications

пруф?

Expert Systems

пруф?

Finance

пруф?

Intelligent Agents

пруф?

Knowledge Management

пруф?

Mechanical CAD

пруф?

Modeling and Simulation

пруф?

Natural Language

пруф?

Optimization

пруф?

Research

пруф?

Risk Analysis

пруф?

Scheduling

пруф?

Telecom

пруф?

Web Authoring

пруф?

Ведь без пруфов всё вышеперечисленное — это всего лишь влажные фантазии лисп-адепта.

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

Сравнивать надо на реальных задачах - то есть объем кода которых имеет порядок mloc, а разработка ведется годами.

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

Если я неправ — пожалуйста, опровергните путём приведения доказательств. Только объективных и верифицируемых, а не из разряда сравнений с автомобилем и самолётом.

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

Просто ты некомпетентен в Си и Си++. Что не так?

Открою тебе секрет: я в вопросах компетентности - следующий после б-га. Толще моей компетенции только моя скромность.

Дай угадаю: конечно же, это произошло не по вине Лиспа!.. Виноват заговор финансистом с манагерами, онолитеги, орхетекторы, жидомасоны лично с Бернанке во главе, ZOG, иллюминаты, иезуиты, Антарктический Третий Рейх, межпланетные ящерики и индейцы майя? Это же очевидно! Б-жественный ЛNСП никак не может быть причиной провала продукта!..

Сдулся, как и 10 тыщ других highfreq стартапов, клепавших на яве, плюсах и голых сях. Причём, первыми сдулись явщики.

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

Ведь без пруфов всё вышеперечисленное — это всего лишь влажные фантазии лисп-адепта.

В гугл.

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

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

Ты знаешь, а ведь мы таки «мучаемся», ага.

Мы пишем операционные системы, которые работают везде — от смарт-карт, мобильников, DVD-проигрывателей до мощнейших кластеров, АЭС и космических аппаратов. Без нас твой компьютер был бы просто грудой железок.
Мы обрабатываем аудио и видео и отрисовываем 3D-модели. Благодаря нам компьютеры сегодня находятся на службе у искусства.
Мы моделируем, программируем, обсчитываем, анализируем физические, химические и биологические процессы. Без нас не было бы современной медицины и энергетики.
Мы обрабатываем огромные массивы данных, обеспечивая логистику, бизнес, экономику и телеком. Без нас ты бы не сидел на ЛОРе и не писал бы чепухи.
Мы обеспечиваем оборону. Без нас ты бы ходил в мечеть, носил бы бороду и восхвалял Аллаха. Если бы остался в живых.

Мы запускаем исследовательские аппараты в глубины космоса и в подводные пучины. А чем занимаешься ты? На что годен «красивый, удобный и интересный» ЛNСП, кроме анафорических лямбд, пандорических захватов и вложенных квазицитирований?

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

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

И да, по поводу доширака обязательно обращусь в бухгалтерию. Ведь анонимус с ЛОРа сказал, что я должен получать за работу доширак. А получаю какие-то дурацкие 270 т.р. в месяц! Что мне делать с этими никчёмными бумажками? Надо будет договориться, чтобы в следующий раз дошираком выдали. Правда, придётся фургон подгонять, ну да ничего, справимся.

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

загрузить файл в несколько десятков ГБ (дамп SQL) в БД SQLite, на плюсах - минимум кода, на си немногим больше, только вчера писал - минут 10 потратил

Ты за 10 минут парсер SQL написал или в libsqlite есть соответствующий API?

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

Т.е. пруфов привести не можешь? Слив засчитан.

Да их тут в каждом втором сраче приводят. Уж потрудись...

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

Ты за 10 минут парсер SQL написал или в libsqlite есть соответствующий API?

Я не автора задачи, но отвечу. Разумеется, в SQLite API есть функции для выполнения SQL statement'ов. А файл с дампом как раз и представляет собой набор таких стейтментов, разделяемых точкой с запятой и, возможно, переводом строки.

Собственно, пойнт состоял в том, чтобы поочерёдно читать стейтменты из файла и скармливать их в SQLite API. На Си/Си++ это решается тривиально, как и на других приличных языках, и только вот один лишь анонимный лисп-фанбой зафейлил на ровном месте.

Что, впрочем, неудивительно.

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

Ты за 10 минут парсер SQL написал или в libsqlite есть соответствующий API?

в SQLite, только в обертки на лиспе указатель на начало следующего запроса не попадает, потому анонимус и начал раасказывать про то, что «файл в несколько десятков ГБ (дамп SQL)» - это один запрос и ниипет

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

Открою тебе секрет: я в вопросах компетентности - следующий после б-га.

Но ведь это ложь. Если ты валишь дерево ручной пилой быстрее, чем исправной и заправленной бензопилой — это значит, что ты просто не владеешь последней. Так и с языками программирования. Если ты на современном мощном языке решаешь задачу в 5-10 раз медленнее, чем на устаревшем, архаичном и эзотерическом — значит, ты просто не владеешь современными технологиями. Вот и всё.

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

Опять этот странный аноним приполз.

Если для тебя использование подходящих для задачи инструментов, следование best practices, владение широким спектром языков, профессионализм, грамотность, высокая з/п, трезвое отношение к маргинальным технологиям — это «странности», то мне тебя жаль.

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

Уж потрудись...

С какой стати я должен трудиться, подтверждая высказывания некого форумного бредоносца? Бремя доказательства, как известно, лежит на авторе утверждения (бредоносце в нашем случае).

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

Только вот Common Lisp - это не топор, а целый feller buncher.

Но почему тогда им не пользуются в индустрии? Тупые, наверное, да?

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

Но почему тогда им не пользуются в индустрии? Тупые, наверное, да?

Да, в «индустрии» (где мне приключилось в данное время пребывать) тупых ну ооочень много. Соотношение шарящих/нешарящих удручает, конечно.

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

Ладно, уговорил. Будет не «странный аноним», а «бедный закомплексованный юноша».

Да вы тонкий психолог!

Не подскажете, чем вызваны мои комплексы? Использованием мейнстрим-технологий? Работой на крупных проектах? Или, может, это деньги так влияют?

Что порекомендуете для избавления от комплексов? Бросить работу, перейти целиком на лисп? Завести блог, в котором описывать свои изыскания на тему анафорических лямбд и кластеров метапарадигм? Перейти на питание исключительно мамкиным борщом? Спасибо!

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

С какой стати я должен трудиться, подтверждая высказывания некого форумного бредоносца? Бремя доказательства, как известно, лежит на авторе утверждения (бредоносце в нашем случае).

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

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

Что порекомендуете для избавления от комплексов?

Деанонимизироваться. Мы на вас реального посмотрим и вынесем заключение.

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

Да, в «индустрии» (где мне приключилось в данное время пребывать) тупых ну ооочень много. Соотношение шарящих/нешарящих удручает, конечно.

Но ведь всегда есть 5% шарящих. А Common Lisp, как известно, на порядки повышает производительность труда программистов. Следовательно, 5% шарящих могли бы, вооружившись таким мощным инструментом как Common Lisp, оставить «индустрию» «нешарящих» далеко позади и выбиться в лидеры по всем направлениям.

Но почему-то этого не происходит. Странно, не правда ли?

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

Деанонимизироваться. Мы на вас реального посмотрим и вынесем заключение.

Зачем? Мнение форумных бредоносцев меня не ебёт.

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

Но почему-то этого не происходит. Странно, не правда ли?

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

mv ★★★★★
()

в лиспе
как в с++

Думаю никак. Абсолютно разные языки, с разными предназначениями

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

Я еще на елиспе пописываю для емакса. А что с ним еще можно/нужно полезного/интересного делать?

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

А что с ним еще можно/нужно полезного/интересного делать?

Хм, можно попробовать писать программы. На удивление, они даже работают. При чём, намного быстрее, чем на Python, а кода писать намного меньше, чем на C++. Плюс удовольствия от работы намного больше.

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

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

Это вы сгоряча, наверное, что-то напутали. Вот условия:

Функциональная языкометрия

Условия такие - надо посчитать 10000! и вывести его в 16ти-ричном виде (буквочки маленькие), без всяких '0x' вначале и какой то служебной лабуды в конце

Ничего против использования сторонних библиотек не говориться.

Кстати, данное мною решение (как и я сам последнее время) не имеет отношения к Common Lisp.

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

... При чём, намного быстрее, чем на Python, а кода писать намного меньше, чем на C++.

щас тебе расскажут, что ты полный ноль в питоне и крестах

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

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

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

Я сейчас go пытаюсь использовать. Как раз «между» питоном и С++.

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

Не съезжай с темы. Вопрос звучал так: где те 5% шарящих? Почему они не выбились в лидеры индустрии, будучи вооружёнными такой пушкой как Common Lisp? Ведь Common Lisp якобы позволяет решать задачи на порядки быстрее, получая на порядки более качественный и краткий код. Может, это всё-таки выдумки фанбоев, а?

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

щас тебе расскажут, что ты полный ноль в питоне и крестах

Но ведь так и есть. Что не так-то?

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

«Намного» - это насколько?

Раза в два-три быстрее, чем PyPy, а PyPy для моих задач примерно в 8 раз быстрее, чем CPython. При этом, PyPy ещё память жрёт старшно (процессы живут сутками, а то и неделями), а SBCL на его фоне смотрится намного лучше.

И код для каких задач дает такую разницу?

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

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

«Намного» - это насколько?

Дай предположу: ;-)

Компиляция в нативный код, несколько уровней оптимизаций, отсутствие GIL, оптимизация кода в compile-time (макросня).

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

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