LINUX.ORG.RU

Концептуальный дистрибутив - почти lisp os? :)

 , , , ,


0

1

Всем привет. Не использовал Linux на десктопе несколько последних лет, но с 2011 активно использую на серверах (в основном debian), походу многое пропустил - и у нас появился (потенциально?) нормальный дистр, которым можно пользоваться? Речь о GuixSD. Почти lisp os, лол: guix один из самых продвинутых менеджеров пакетов (и не только?), shepherd - нормальный и переносимый вириант System V, stumpwm и next browser в активной разработке, emacs как ide.

Хотел узнать, на сколько актуально и какие юз-кейсы использования guix поверх других дистров, например gentoo, или arch? Кто совмещает с debian? Какие сейчас основные issues в проекте GuixSD? Чем shepherd лучше других систем инициализации, кроме того, что он на scheme, что само по себе огромный плюс?

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

И что? Метод - это функция, первый параметр которого (this) задан как объект перед функцией-методом. Не буду копать в сторону таблицы виртуальных методов, а то слишком явно будет сквозить ООП.

правильно, не будь. а то в функциональные объекты попадёшь.

и это банка с червями. откроешь и станешь копать глубже – расползутся во все стороны.

копай лучше в фреймы, CLOS, форматы представления знаний в онтологиях типа Cyc, KM, правила вывода.

вот есть например Cyc. идея сделать «базу знаний» где иерархия абстрактных базовых пращуров "Абрам родил Иакова родил … " или «Object породил … породил интерфейс» это таксономия философичной системы мира «бытиё моё» какое-то.

это базовые термы-утверждения, факты базы знаний. и сама таксономия задаёт классификатор предметной области.

далее в Cyc вводят контексты, микротеории. возможно (не)консистентные по отдельности, но (не(не))консистентные вместе, в плане полноты системы, теории.

в них есть аксиомы (из фактов) и правила вывода, предикаты правил вывода базы знаний.

далее вводят «бытовые знания» типа «здравого смысла». и какую-то типовую базу знаний «здравого смысла». где константы это какие-то факты, а предикаты задают ~законы мира~ эти правила вывода на основе аксиом.

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

далее например cyc. развитие идёт в сторону накопления такой базы знаний – как отдельных фактов, так и онтологий. так и правил.

или например KM на лиспе. развитие идёт в сторону DSL для представления знаний, об аксиомах и правилах вывода.

которое довольно прозрачно отображается на фреймы или нормальное ООП в духе CLOS.

только в этом моноиде другие базовые моноиды и базовые операции: на уровне микротеорий, концептов: наследование и изменение базовой концепции, на уровне событий и ситуаций – importing/projection, на уровне реюзабельных компонент для представления знаний – classify/elaborate (ср.: наследование и полиморфизм, classify/elaborate в reasoning vs. eval/apply в вычислении).

здесь, если взять базовое ядро такой системы представления знаний. и удастся все эти запросы вычислить в CTFE. то в ООП этому будет соответствовать построение таблицы VMT во время компиляции для С++-style ООП. что-то в динамике для CLOS. какой-то велосипед для фреймов. эти вот запросы базы знаний для importing/projection для KM/Cyc.

в каком-то виде это эквивалентные представления одного и того же: форматов представления знаний, ООП, таксономия и правила вывода в предметной области, внутренние операции при reasoning вроде того же classify/elaborate.

ссылки:

  • aaai97.pdf «Building Concept Representations from Reusable Components» преимущества подхода KM в сравнении с Cyc

  • aarati.pdf «The Representation of Actions in KM and Cyc» сравнение

  • situations-implementations.pdf «A Brief Note on Implementing Situations in KM»

  • km-tutorial-2006f.pdf/.ppt «KM: The Knowledge Machine. A knowledge representation and reasoning system»

  • km-2-5-45-packaged.lisp сам KM с примерами test-suite.km

ну и по Cyc отдельно бы чего нибудь почитать, про его онтологии и представления.

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

emacs

Для которого конфиги на лисп. Чтобы нормально писать на на лисп нужен настроенный emacs. Порочный круг. Не нужен.

так исторически повелось. первый Maclisp из проекта Mac в исходниках Multics. емакс там же, ядро на PL/I с асинхронными процессами, задачами в PL/I; окружение, скрипты, конфиги на Maclisp.

затем лисп-машины, Symbolics Genera, CADR, LMI, TI Explorer (см. Unlambda.com). всё на лиспе который Zetalisp, который потомок Maclisp. Eine/Zwei емаксы на таком лиспе. вместо [inline]M-x compile-program[/inline] в GNU емаксе – более человекопонятный [inline]M-x Compile Program[/inline] и comtables, command tables для отображения человекопонятного в лиспоугодное.

затем Gosling Emacs, микроемаксы всякие. с ядром на си. вплоть до языка скриптухи на си и конфигов – slickedit всевозможный, brief/grief. emact на ISLISP реализации OpenLisp. texmacs со схемой guile.

затем GNU емакс по мотивам Gosling. полноценный лисп, хоть IS, хоть коммон хоть схемку – ниасилили, изобрели свой mocklisp.

затем, не прошло и 40 лет – модули запилили в GNU наконец. которые в xemacs отродясь были изначально.

затем CommonLisp стандартизация диалектов на основе Zetalisp, maclisp, ещё какой-то для векторных процессоров.

затем emacsy где сишное ядро и guile, embed в десяток строчек.

затем lite и реиплементации емакс идеи на lua. минимализм.

emacs

Для которого конфиги на лисп. Чтобы нормально писать на на лисп нужен настроенный emacs

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

Порочный круг.

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

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

emacs

Для которого конфиги на лисп. Чтобы нормально писать на на лисп нужен настроенный emacs. Порочный круг. Не нужен.

так исторически повелось. первый Maclisp из проекта Mac в исходниках Multics. емакс там же, ядро на PL/I с асинхронными процессами, задачами в PL/I; окружение, скрипты, конфиги на Maclisp.

затем лисп-машины, Symbolics Genera, CADR, LMI, TI Explorer (см. Unlambda.com). всё на лиспе который Zetalisp, который потомок Maclisp. Eine/Zwei емаксы на таком лиспе. вместо [inline]M-x compile-program[/inline] в GNU емаксе – более человекопонятный [inline]M-x Compile Program[/inline] и comtables, command tables для отображения человекопонятного в лиспоугодное.

затем Gosling Emacs, микроемаксы всякие. с ядром на си. вплоть до языка скриптухи на си и конфигов – slickedit всевозможный, brief/grief. emact на ISLISP реализации OpenLisp. texmacs со схемой guile.

затем GNU емакс по мотивам Gosling. полноценный лисп, хоть IS, хоть коммон хоть схемку – ниасилили, изобрели свой mocklisp.

затем, не прошло и 40 лет – модули запилили в GNU наконец. которые в xemacs отродясь были изначально.

затем CommonLisp стандартизация диалектов на основе Zetalisp, maclisp, ещё какой-то для векторных процессоров.

затем emacsy где сишное ядро и guile, embed в десяток строчек.

затем lite и реиплементации емакс идеи на lua. минимализм.

emacs

Для которого конфиги на лисп. Чтобы нормально писать на на лисп нужен настроенный emacs

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

Порочный круг.

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

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

(first (.split (.replace (.toUpperCase «a b c d») «A» «X») " "))

Это ты правильно написал. Это не композиция функций.

это композиция выражений. объектно-функциональных. которые такими спецформами на функции и отображаются. через какие-то CTFE онтологии. либо через ООП рантайм.

вдругорядь, опять же моноид.

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

ещё есть guix import, который генерит рецепт для пакета с pypi, hackage, melpa, cran, crate и всякого такого.

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

а то каждый недоязычок свой пакетный менеджер тащит. который ментейнеры или тащят в дистрибутивосистемный пакетный менеджер, либо забивают и ниасиливают. в итоге эти батарейки языкового ПМ и общедистросистемного ПМ – разные.

а как их можно однообразно нагенерировать.

ляпота композабельных DSL и моноидов CTFE или даже config-time function execution – конечно же.

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

В общем, конечная цель - максимальное уменьшение trusted computing base. Отсюда неформальное требование - не тащить из интернетов блобы, в происхождении которых нет уверенности и которым приходится доверять. Скажем, почти вся система собирается из т.н. trusted binary seed размером 120MB, и ведутся работы по уменьшению его размера. Например, rust раскручивается из сишной реализации компилятора, способной собрать одну из старых версий официального компилятора. А вот ghc поднимается из блоба, скачиваемого с официального сайта.

а сишка раскручивается из схемки. которая собирается из минисишки на схемке. замкнутый цикл.

то есть, метациклически замыкай цикл петли времени великого джина – в 12 обезьянах Коул это демон который движется исторически только вперёд (по времени назад, диагонально наискосок и в другие стороны), а время циклично в петле времени великого джина.

эдакий метациклический eval/apply из SICP. Гёдель, Эшер Бах эта бесконечная гирлянда туда же.

то есть, метафизически «метапрог сам на себе» или там Шекспир из Screamers «я сам себе отец и сын и брат».

на месте условной схемки, лиспа мог бы быть и пролог и форт. и ещё много чего. да хоть тот же оберон-2 или модула с адой.

ну просто исторически так сложилось ещё в лисп машинах – всё на лиспе, даже биос, загрузчик и сборщик мусора, планировщик ос. и далее на этом простой загрузчик модулей, процессы и планировщик, защита адресного пространства процессов или её отсутствие. ооп в духе flavors недоCLOS и композабельное общесистемное API в духе функциональных объектов.

а например компилятор сишки или паскаля/модулы или фортрана уже на таком лиспе делается.

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

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

Но, думаю, это вопрос времени, и в конечном счёте guix всех побьёт. А если ещё и на микроядро переедет, вот это будет да… :D

в Genode какую-нибудь нужно воткнуть, там и линукс какой-то паравиртуализованый есть, и гипервизоров несколько, и L4 опять же…

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

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

vagrant’ом через скрипт, и в итоге в полклика – настроенная OpenGenera и лисп машины в убунте в виртуалбоксе :))

ах, да. ещё и убунта за компанию :))

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

Жаль, в guile не такие макросы забористые, как в racket

Занюхал Иван Денисович заначенный на подоконнике носочек, и аж заколдобился.

Ну ниче, и так неплохо :)

а жизнь-то налаживается :))

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

переизобретают емакс

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

метапрог, например. все эти СУВТ и локальные форки — из-за того, что макросы с зерокост рантаймом с оптимальным стиранием типов поверх MetaProg_Obj * в первом случае и макросы, ну правда недоделанные уже без гигиены но с гиперссылками на оригинал и обратными — в графическом конструировании.

интересно, когда же он наконец додумается AST сериализовать. с бинарными форматами — наверное, никогда.

в то время как графический quine распечатывающий сам себя не в текстовую консоль а в графический canvas  — не такая уж и архисложная вещь, сама-на-себе.

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

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