LINUX.ORG.RU

PicoLisp 17.6

 ,


0

2

29 июня вышла новая версия интерпретатора PicoLisp.

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

Обновление включает в себя две новые функции, исправления ошибок и улучшения repl, добавлена библиотека для Android и новый компонент TreeChart для web-gui.

>>> Страница загрузки

★★★

Проверено: jollheef ()

появился порт под OpenBSD

А в дереве портов/-wip его сейчас нет?

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

А в дереве портов/-wip его сейчас нет?

Увы, не могу ответить - так и не нашел времени установить OpenBSD на что-нибудь.

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

А в дереве портов/-wip его сейчас нет?

Узнал. Пока что - нет.

nihirash ★★★ ()

Чем это нечто лучше других лиспов и недолиспов?

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

Чем это нечто лучше других лиспов и недолиспов?

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

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

в коммерческой разработке с 88 года

а что вообще на нём работающего выпускали/выпускают? закрытое/открытое.

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

а что вообще на нём работающего выпускали/выпускают? закрытое/открытое

Из открытого - есть Wiki-движок, клон Vi, и еще пригоршня всякой мелкой фигни.

Из закрытого - кучка CRM, система обработки фотографий.

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

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

Это какой-такой «коммерческий веб-сервер» 1988 года???

HTTP появился только в 1991 году!

Пруф - https://ru.m.wikipedia.org/wiki/HTTP

Кулькакеры, такие гикнутые кулькакеры!

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

Поздравляю, ты только что продемонстрировал умение находить в прочитанном тесте то, чего там нет. Ни про какой «коммерческий веб-сервер» 1988 года, речь, разумеется, не шла.

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

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

Это какой-такой «коммерческий веб-сервер» 1988 года???

В 1988 году была версия на маки, которая использовалась для разработки системы обработки фотографий. И другие проекты, которые вел Александр Бюргер и его компания.

Позже портировали его на SCO Unix и MS DOS, а с 93 года основная версия переехала на Linux.

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

Где веб-сервер в 1988 году?

А ну, да конечно же - позже прикрутили.

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

Пруф - [ЖЖ] Луговский

http://dslengine.sourceforge.net/ - Ну вот как минимум один его проект. Это то, что нашлось на вскидку.

А вы его провереяли?

Аз сверзсся с печки! Это надо видеть!

Вы желаете поучиться программированию у написавшего вот это:

(DEF-NATIVE CAAR (**B . CAR) . CAR) >(DEF-NATIVE CADR (**B . CAR) . CDR) >(DEF-NATIVE CAAAR ((**BS . CAR) . CAR) . CAR) >(DEF-NATIVE CAADR ((**BS . CAR) . CAR) . CDR) >(DEF-NATIVE CAAAAR (**B . CAR) ((**BS . CAR) . CAR) . CAR) >(DEF-NATIVE CAAADR (**B . CAR) ((**BS . CAR) . CAR) . CDR) >(DEF-NATIVE CAAAAAR ((**BS . CAR) . CAR) ((**BS . CAR) . CAR) . CAR)

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

Как раз после того как это существо выперли из библиотеки занюханного провинциального НИИЧАВО, откуда он на весь LOR тявкал, он отчаянно пытался найти работу программистом. К нам вот приходил на собеседование, претендовал на роль Java-программиста. Junior, конечно же. Это был цирк! Попросил его написать метод, разворачивающий строку, классическая такая проверка на вшивость. Мелкое тощее горбатое существо с рожей и голосом профессионального алкаша бубнило и булькало чтото с полчаса, ничего родить не смогло, потом начало втирать, что вот зато в мегаязыке Хаскель строки сделаны односвязными списками и что это типа тру, а все остальное ламеризм. Еще чтото втирал что кулькакеры на Вакс использовали мегаформат для строк ASCIID, а ламеры не поняли и теперь везде позорный ASCIIZ (внимание: собеседование вообще про Java было). Угадайте - мы его взяли?

Говорят, оно все еще ищет работу. Хотите посмеяться, приглашайте его на собеседование. Баксов на $500, иначе решит, что прикалываются.

anonymous (10.10.2007 21:30:20)

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

Где веб-сервер в 1988 году?

Где я написал, что он там с 88 года? Пост был о текущем релизе.

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

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

Наличие фриков в любой из языковых сред не показатель о всей среде. Вспомни не так давно был тред, где на джаве предлагался класс для работы с SQL. Классическое «покакал», ничуть не лучше кода выше(с изобилием CAR/CDR/CAADAR и т.д.).

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

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

Это автоматически сгенерированный код.

10.10.2007

Он с 2005 года в Англии живет.

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

Даже заинтересовало. «Разворачивающий» в смысле разворачивающий, а не разбирающий на токены? Что с джавой не так, что это должно быть сложно?

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

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

anonymous ()

ультрапрагматичный

работающий исключительно в режиме интерпретации

в 2017 году

Virtuos86 ★★★★★ ()

ультрапрагматичный

работающий исключительно в режиме интерпретации

/0

no-such-file ★★★★★ ()
Ответ на: комментарий от no-such-file

/0

Спор о компиляции/интерпретации и прагматичности самого языка поднимать не буду.

Просто скажу, что вы все не правы, а я один красивый и хороший.

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

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

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

Что с джавой не так, что это должно быть сложно?

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

no-such-file ★★★★★ ()
Ответ на: комментарий от Bioreactor

Умничать будете на собеседовании.

Ну это скорее тебя самого касается.

newb ()

Зачем нужны лиспы в эпоху статической типизации и формальной верификации?

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

Зачем нужны лиспы в эпоху статической типизации и формальной верификации?

VR(гугли о проектах с участием Кармака), web, слышал о data-майнинге на лиспах, о таск-трекере, который пилится на лиспе в этой стране.

На самом деле много задач, где лисп хорошо себя чувствует и сейчас.

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

Кажется у вас тут ява-кодер перегорел, несите нового

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

Хорошо отлаженный диалект

Это значит что мануалов днём с огнём не найдёшь?

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

Найдёшь, даже ночью и даже книги по сабжу от автора пикилиспа

anonymous ()

Не собрался на маке (начиная с 3.1.8), не собрался на голом OpenBSD (не изучал), не собрался на Arch (не нашелся PicoLisp для бутстрапа).

Публичного доступа к репозиторию, я так понимаю, нет даже для чтения?

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

Не собрался на маке (начиная с 3.1.8), не собрался на голом OpenBSD (не изучал), не собрался на Arch (не нашелся PicoLisp для бутстрапа).

Эм, как же ты собирал его?! Он же собирается на чем угодно с пол пинка.

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

В Арче через pacaur, а так - (cd src64; make).

Можешь лог сборки скинуть?

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

не собрался на Arch (не нашелся PicoLisp для бутстрапа).

Если есть JVM - то оберется через Ersatz PicoLisp.

Если не собралось из за наличия очень старой версии picolisp(там был момент и использованием инструкции, которая появилась позже). Автор языка уже обновил архив на своем сайте, выкатив исправление.

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

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

Если говорить про macOS, то после 3 версии из Makefile пропала архитектура Darwin, потому результат такой:

$ (cd src64; make)
cc -o sysdefs -D_FILE_OFFSET_BITS=64 sysdefs.c
: sysdefs
./mkAsm emu "" .c  base "" ../lib/map  version.l glob.l main.l gc.l apply.l flow.l sym.l subr.l big.l io.l db.l net.l err.l sys/emu.code.l
[mkAsm.l:16] !? (in "emu.symtab" (setq *BaseData (read) *BaseCode (read) *BaseOpcodes (make (while (read) (chain @))) *OpOffs (length *BaseOpcodes)))
"emu.symtab" -- Read open error
? 
Если скопировать Makefile из версии 3.1.6, то результат такой:
$ (cd src64; make)
# Вырезано 158 предупреждений чтобы не засорять форум
# Полный лог: https://pastebin.com/Z8SYipU4
./mkAsm: line 15:  2973 Segmentation fault: 11  ../pil mkAsm.l "$@"
make: *** [emu.ext.c] Error 139
Скомпилированный picolisp крешится с сегфолтом. Возможно дело в том, что проблема заключается в различиях clang и gcc (что-то такое читал в списке рассылки).

По части OpenBSD, до компиляции не доходит

$ (cd src64; make)
*** Parse error in /home/sli/picoLisp/src64: Missing dependency operator (Makefile:7)
*** Parse error: Need an operator in 'else' (Makefile:10)
*** Parse error: Need an operator in 'endif' (Makefile:42)
*** Parse error: Missing dependency operator (Makefile:50)
*** Parse error: Need an operator in 'else' (Makefile:78)
*** Parse error: Need an operator in 'endif' (Makefile:111)

Arch Linux: скорее всего установка Java поможет, но мне лень это проверять :-)

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

Что примечательно, Segmentation fault начал выпадать на версиях 3.1.9 и более поздних, но без доступа к истории коммитов выследить проблемное место сложно.

Может я неправильно ищу, может есть где-нибудь репа?

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

расценки у него будь добр

Струйня! Я такой заплесневелый язык не возьму даже для однострочного скрипта, ибо маргинальщина и старьё. Прошло время идиотских языков, на которых писали всё и вся, проверку временем выдержали только языки с оптимальной структурой и хорошим/лёгким сопровождением кода. Тут единогласно рулят Си-подобные: С++, Жаба, Шарп. Хипстота ещё может немного попежонить на пестонорубях, но интыпрайз не может себе позволить эти таймбомбы - только строгая типизация, только хардкор.

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

Если говорить про macOS, то после 3 версии из Makefile пропала архитектура Darwin, потому результат такой

С Darwin'ом проблема есть из за PIE, сейчас собрать можно только в режиме emu, который медленный. По словам автора с макосью действительно сейчас не очень хорошо дела.

И можно сделать, чтобы работало, но для этого нужно перепилить файл src64/arch/x86-64.l

По части OpenBSD, до компиляции не доходит

Вот тут странно. Потому как в OpenBSD должно все работать нормально.

Больше похоже на проблему с make. Надо найти салазки для жесткого диска вместо slim-dvd - подниму на отдельном жестком OpenBSD(хотя бы в виртуалке) - будет проще помочь со сборкой.

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

прагматичность можно рассматривать с разных точек зрения.

Ах вот где у хипстеров разрез с реальностью! :) «Красный - это конечно #FF0000, но если посмотреть с другой стороны....». :))

Нет никакой другой «прагматичности», кроме той, за которую платят. Если язык безопасный, легко сопровождаемый (а значит понимаемый любым кодером от мл.н.с. до сеньора), шустрый, удобный, он БУДЕТ в мэйнстриме. Отговорки лузеров «вы его не так держите» оставьте для бабушки - вы не можете спорить с главным судьёй - временем. Оно уже давно всех рассадило, только задние ряды всё ещё недовольны местом у параши. Ну так мир не будет под вас прогибаться, умные вы наши!

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

По части OpenBSD, до компиляции не доходит.

Как пишет nihirash, действительно

Больше похоже на проблему с make.

И, сразу же, не вдаваясь в подробности, приходит мысль попробовать gmake вместо make. Потому что, не знаю как сейчас, но раньше в разных бсдях синтаксис стандартного make отличался от GNU make.

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

Ах вот где у хипстеров разрез с реальностью! :) «Красный - это конечно #FF0000, но если посмотреть с другой стороны....». :))

... то это ещё и (255, 0, 0), а также (0, 100, 100, 0), и ещё (0°, 100%, 100%).

И это только в численных стандартизованных координатах. А так-то, конечно, «красный» — это ещё очень много что.

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

anonymous ()

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

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

gmake сработал отлично! Ну и да, нужна либо ява либо готовый picolisp:

./mkAsm x86-64 ".openBsd" .s OpenBSD base "" ../lib/map  version.l glob.l main.l gc.l apply.l flow.l sym.l subr.l big.l io.l db.l net.l err.l sys/x86-64.openBsd.code.l
which: java: Command not found.
No PicoLisp binary found for bootstrapping
as -o x86-64.openBsd.base.o x86-64.openBsd.base.s
Assembler messages:
Can't open x86-64.openBsd.base.s for reading: No such file or directory
cc -o ../bin/picolisp x86-64.openBsd.base.o -Wl,-nopie -rdynamic -lc -lm 
/usr/lib/crt0.o: In function `_start':
(.text+0x5a): undefined reference to `main'
collect2: ld returned 1 exit status
gmake: *** [Makefile:135: ../bin/picolisp] Error 1

sli ()
Ответ на: комментарий от sli
$ doas pkg_add jre
$ export PATH=$PATH:/usr/local/jre-1.8.0/bin
$ gmake -C src64
$ ./pil -bye   
$

После установки jre запустилось на OpenBSD

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

Ну и да, нужна либо ява либо готовый picolisp

Похоже, ещё можно собрать сначала 32-битный, а потом уже с его помощью 64-битный.

Чтобы собрать 32-битный не нужна ни жаба, ни пиколисп, а только gcc тулчейн, который умеет 32.

Но проверить точно не могу, у меня система 64-битная и не мультилиб.

anonymous ()

Чтобы собрать минималистичный диалект Лишп, нужна минималистичная JVM? Парад минимализма.

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