LINUX.ORG.RU
Ответ на: комментарий от den73

Лучше, но есть куда стремиться. :)

Берите пример с усреднённого ридми проекта. Даже с самого advanced-readtable. Короткий список фич (человек в поисках библиотеки с конкретной фичёй не станет читать полный список с подробностями), полные примеры кода, которые можно просто выполнить в репле, хоть какое-то оформление (заголовки, <hr/>).

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

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

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

И ещё одну. Теперь вроде проблемы с iterate не должно быть. Криво, но что успел.

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

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

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

конфликта с вашей библиотекой не будет

А с чего? Либо используется станлартный ридтейбл, либо наш. Поэтому никаких конфликтов. (in-readtable ...) однозначно определяет синтаксис

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

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

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

Я недавно обсудил это на #lisp. Похоже, переносимость считается более важной чем отсутствие хаков и прочих лишних сущностей. Поэтому, при выборе между своей почти с нуля readtable и использованием внутренних/нестандартных пакетов реализаций, стоит выбирать первое.

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

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

библиотеку message-oo и пару issue к ней

Виноват. Не заметил. Сейчас отвечу.

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

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

В advanced-readtable однозначно будет всё своё (предполагаем, что CL умеет только ANSI). Разве что синтаксис буду стремиться делать с оглядкой на SBCL, чтобы было единообразие.

В def-symbol-readmacro (проект den73) будет использование особенностей конкретных систем, потому что в рамках ANSI, похоже, реализацию сделать не получится. Сейчас повсюду раскиданы #+lispworks и #+sbcl.

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

Кастую den73

Хочу похвастаться: advanced-readtable теперь полностью интегрирована с SLIME.

Благодаря небольшому коду в .emacs:

(defun slime-init-command (port-filename _coding-system)
  "Return a string to initialize Lisp."
  (let ((loader (if (file-name-absolute-p slime-backend)
                    slime-backend
                  (concat slime-path slime-backend))))
    ;; Return a single form to avoid problems with buffered input.
    (format "%S\n\n"
            `(progn
               (asdf:oos 'asdf:load-op :advanced-readtable)
               (funcall (read-from-string "advanced-readtable:!"))
               (load ,(expand-file-name loader) 
                     :verbose t)
               (funcall (read-from-string "swank-loader:init"))
               (funcall (read-from-string "swank:start-server")
                        ,port-filename)))))

Осталась мелочь с поддержкой дополнения в package:(...), но оно не работало и с родным SBCL-евским ридером.

"(..::ca[Tab]" теперь работает и даёт список функций, доступных через алиас.

Нет дополнения по имени синонима, но тут не знаю, что делать, ведь на "..[Tab]" можно строить бесконечное дерево.

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

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

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

потому что в рамках ANSI, похоже, реализацию сделать не получится

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

Хочу похвастаться: advanced-readtable теперь полностью интегрирована с SLIME.

Хорошо.

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