LINUX.ORG.RU

Lisp


163

8

Всего сообщений: 3

Еще одна мертвая ОС на мертвом* языке

В обсуждениях к скриншоту mezzano кто-то вспомнил opengenera от symbolics, захотелось и ее запустить. Конечно, смотреть тут особо нечего, интерес только для любителей такой истории. Работала она на древнем 64битном DEC Alpha, сейчас можно запустить в эмуляторе после некоторого количества танцев с бубном. На скрине видно остатки стартового экрана, логин, REPL и системное меню, которое вылазит по shift+правый клик. В REPL вывел *features* их компилятора, не знаю даже зачем.

Из софта есть REPL, текстовый редактор zmacs (клон emacs но на другом диалекте lisp), просмотрщик документов, peek - дает посмотреть сколько памяти свободно и тп, наверное можно назвать древним аналогом vmstat. почтовый клиент zmail, терминал и еще кое-чего по мелочи. Разрешение картинки 1152x900 - такое имели мониторы, на которых она работала.

Ах да, не обманитесь названием, Open Genera - самая настоящая проприетарщина, но на историю поглядеть ведь интересно.

--- * на самом деле нет

>>> Просмотр (1152x900, 1522 Kb)

 

coredump
()

Операционная система GNU Emacs завоевывает десктоп! :)

Операционная система GNU Emacs получила новые возможности! Собрал волю в кулак и написал библиотеку, которая практически полностью реализует протокол X11. Библиотека незамысловато называется x11 и написана на чистом Emacs Lisp, но пока имеет статус technical preview, хотя в принципе уже можно писать что-то реальное. За основу пока взяты описания протокола на XML из проекта XCB, которые разворачиваются в реализацию. В результате имеем практически все расширения. Работа с протоколом осуществляется в асинхронном стиле подобно XCB. Чего пока нет:

  • MIT-SHM. Запросы реализованы, но работать через разделяемую память из операционной системы Emacs мы пока не можем, поэтому Будем через сокет закидывать. Тем более, что разница в скорости, говорят (видел где-то в инете замеры), не такая сумасшедшая.
  • XKB. Просто забыл реализовать пару конструкций XML, используемых для описания этого расширения. Это я скоро реализую, поэтому расширение будет работать в полном объеме.
  • Big-requests. Тоже будет реализовано. Расширение содержит всего один запрос. Он реализован. Но именно для этого расширения надо несколько перелопатить процедуры формирования запросов к серверу X, так как подсчет размеров запросов изменяется с этим расширением.
  • GLX. Огромнейший пласт. За него возьмусь сильно позже. Тут же еще надо полностью сгенерировать протокол GL, а он очень обширный.

Остальные расширения вроде бы должны работать, если их описания правильные и если я что-то не упустил принципиального. Я работу всех расширений даже не проверил, так как очень спешу радостью поделиться. :)

(размер экрана уменьшил до 1024x768, чтобы скриншот поменьше был)

На скриншоте сверху робкая демонстрашка в стиле LSD основного протокола X11 (Core protocol). Ну с arcs, rectangles и core fonts все и так понятно. А вот как выведены фотографии? Я пока не настолько крут, чтобы писать растеризацию jpg и png на Emacs Lisp. Пораскинув мозгами, пошел смотреть, чем может помочь ImageMagick. Оказалось, есть там возможность получить дамп картинки в нужном формате. Так и сделал: надо отобразить картинку - дергаем stream, она нам отдает дамп в буфер, мы его отсылаем в сервер X. «Привет, Isden» написана мышкой. Демка отслеживает событие motion-notify и рисует маленький квадратик под указателем. По кнопке «q» - выход (отслеживается событие key-press)

На скриншоте снизу робкая и неумелая демонстрашка расширения XRender. Тоже в стиле LSD. На ней мы видим linear gradient, radial gradient, треугольник и отрисовку сглаженных окружностей. Окружности состоят из трапезоидов. Алгоритм рассечения (tessellation) я применил первый, какой мне пришел в голову - горизонтальными трапециями. Какая есть проблема? Сглаженный текст! Что-то мне писать растеризацию TrueType или Type1 на Emacs Lisp не улыбается. Есть идея написать программку на Си с помощью Xft, которую я буду что-то просить растеризовать, а она результат будет отдавать в Emacs. То есть примерно как и с ImageMagick поступить.

Надо хорошенько переобдумать API библиотеки, чтобы его заморозить. При этом надо учесть потенциальные и вероятные будущие новшества в Emacs и в библиотеке, чтобы людям не пришлось переписывать то, что написано ранее. Есть недостатки в Emacs, которые реально мешают и раздражают. Преодолимы, конечно, но это будут костыли. Если интересно, то потом поясню, а то уже и так много воды налил.

Так что есть потенциальная возможность воплотить мечту atoku в жизнь. :)

Традиционная ссылка на обоину: #888888. Старую удалил, так как она надоела, а новую еще не искал. Этот серый цвет реально бесит. :)

>>> Просмотр (1024x1536, 254 Kb)

 , ,

Zubok
()

Рабочее место начинающего лиспового программиста

Собственно, old good Emacs+Slime. Используемый для работы лисп - последняя версия честно купленного (не мной) LispWorks энтерпрайз эдишн. WM - лисповый StumpWM, линукс - Arch. Мыло, джаббер, irc, словарь (через dictd), спеллчекер (flyspell через aspell) и переводчики (через гуглевского бота) - всё в Емаксе. Не в Емаксе только xterm и Firefox.

Работаю ремоутером дома на кухне, использую старый тошибовский ноутбук, поэтому экран такой маленький. Деятельность нашего стартапа лежит в разработке спец.железа для бирж и телекома (торги, передача сообщений за сотни наносекунд). Пишу, в основном, на Коммон Лиспе, но также на Cи (драйвера, юзерспейс) и ассемблере.

>>> Просмотр (1280x800, 36 Kb)

 ,

mv
()