LINUX.ORG.RU

Но зачем? Ведь LISP потерпел сокрушительное фиаско как технология.

Часто спрашивают, почему человечество топчется на месте, почему дерзкие прогнозы футурологов не сбываются. Ответ прост: люди – идиоты. Они сделали кучу глупостей: придумывали костюмы для собак, должность рекламного менеджера и штуки вроде LISP, не получив взамен ничего, кроме кислого послевкусия. Человечеству дали возможность бороздить космос, но оно хочет заниматься ерундой – пить пиво, смотреть сериалы или делать пандорические захваты на анафорических лямбдах.

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

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

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

В сбцл бэктрейс очень невнятный.

Есть такой недостаток, к сожалению.

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

К слову про раби. У него есть удобная IDE под emacs? Такая как slime. Меня интересует, главным образом, интерактивная разработка и доступ к документации.

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

Используй сжатие

(save-lisp-and-die "a.out" :toplevel #'main :executable t :compression 9)

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

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

Лол, в лишпике чтобы получить вменяемый исполнимый образ, нужно покупать какой-то «шейкер» за $$$. ТруЪ™ Ынтырпрайз®!

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

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

Но, во-первых, здесь речь идет о какой-то уж совсем элементарщине.

А во-вторых, лишперы в большинстве своем — борщевики и нищеброды, не зарабатывающие ни копейки.

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

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

Aswed ★★★★★
()

Не наступил ещё 22-й век, а SBCL уже портанули на ARM

Для истинных ценителей прекрасного портанули gforth - GNU Forth for Android

https://play.google.com/store/apps/details?id=gnu.gforth

http://www.forth-ev.de/wiki/doku.php/en:projects:gforth-android:start

в нём, к примеру, можно набрать:


require gl-sample.fs

All Android examples are packet into /sdcard/gforth/site-forth. There is

  • gl-sample.fs: A simple OpenGL demo
  • omx-example.fs: Playing videos. Download my Jingle Bells as test stream into /storage/extSdCard/Filme, then you can start it with jb, or any other MPEG 2 transport stream file with ”<filename>” play-ts, or a MKV file (H.264, MP3 or AAC) with ”<filename>” play-mkv.
  • gl-slideshow.fs: Plays a slideshow. Put photos into a directory, and a file listing all filenames (including path). Load that file with ”<slidelist>” slide-show.
  • android-recorder.fs: Records a video, when you start camera-test. The recorded video will end up in /storage/extSdCard/Filme/test.mp4.

Также, рекомендуется дополнительно установить Hacker's Keyboard и Vim Touch

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

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

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

Сообщение говорит, что ошибка в одном месте, а на самом деле она совсем в другом. Но это не проблема. Ок.

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

Это говно, а не макросы. Нельзя определить макрос и использовать его в том же модуле.

Простой макрос, созданный через macro_rules! можно использовать сразу же.

А процедурные макросы нужны только в сложных случаях и выделение их в отдельные модули - это хорошо.

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

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

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

Они все там, только не все признаются.

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

э не-не, Дэвид Блэйн, такое поняте, как исходник, есть всегда

Ну почему же? Я могу написать программу в REPL. Сохранить её в save-lisp. Периодически запускать и дописывать. Причём дописывать иногда в стиле:

(setf (fdefinition myfunction) (memoize (fdefinition myfunction))

(if (> (runned-in-time #'df 86400) 100)
  (setf (fdefinition df) (cached-last (fdefinition df) 10)))

И что тогда будет исходником?

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

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

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

И так будет с каждым антилиспером.

Они все там, только не все признаются.

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

(setf (fdefinition myfunction)... + то, что было написано ранее

цитирую: The “source code” for a work means the preferred form of the work for making modifications to it. “Object code” means any non-source form of a work.

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

The “source code” for a work means the preferred form of the work for making modifications to it

То есть в данном случае «source code» — это лисп-образ? Ведь модификации больше вносить некуда.

Ну чтож... тогда Symbolics Genera — тоже open source.

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

The “source code” for a work means the preferred form of the work for making modifications to it

О! На основании этого определения я имею право требовать не только компилируемый код для бинарников текущей версии, но и полное дерево VCS? Ведь программисты вносят модификации в систему контроля версий, а не непосредственно в файл с текстом программы.

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

но и полное дерево VCS?

нет, только «компилируемый код для бинарников текущей версии».

Ведь программисты вносят модификации в систему контроля версий

это вообще «по барабану»

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

(setf (fdefinition myfunction)... + то, что было написано ранее

Так оно нигде не сохранено так как вносилось в REPL.

Кроме того, часть изменений вполне может быть через что-то типа sdbl-inspect — тогда даже текстового представления не будет.

Аналогичный вопрос: что является исходником каталога $HOME? Вряд ли содержимое .history.

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

The “source code” for a work means the preferred form of the work for making modifications to it

Ведь программисты вносят модификации в систему контроля версий

это вообще «по барабану»

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

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

Человек, пишущий такое:

Free software acts as a virus. Free systems have the potency to wipe out any other protocol or design, including any superior ones (unless they are also free). A example is the various Unix systems and protocols has done huge irreversible damage to society.

должен умереть в муках.

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

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

anonymous
()
30 июня 2015 г.
Ответ на: комментарий от stevejobs

а чо такого хорошего в этом SBCL?

А ты чем CL компиляешь и чо такого в твоем компеляторе хорошего?

Gentooshnik ★★★★★
()

А ерланг написан на анси си, и даже я смог запросто скомпилить его для микрозеда)

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

den73 издалека

Надо приноровиться просто. В SLIME если сборка происходит через asdf, то нужно открыть файл, в к-ром компиляция сломалась (я лично для этого написал спец. патч для asdf, сейчас как раз портирую его под sbcl). Затем компилируешь уже этот файл (с-с с-k). Тогда ошибки показываются в виде простыни с гиперссылками. Гиперссылка с большой вероятностью ведёт в точку кода, где произошла ошибка.

Если ошибка времени выполнения, то в дебаггере есть кнопка v для перехода к исходнику.

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

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