LINUX.ORG.RU

[cl][asdf2][sbcl-1.0.49]


0

1

Пришло обновление - в оверлее lisp появился sbcl-1.0.49 в котором используется asdf2. При попытке

(asdf:operate 'asdf:load-op 'iterate)
говорит
  ASDF 2 is not compatible with ASDF-BINARY-LOCATIONS, which you are using.
ASDF 2 now achieves the same purpose with its builtin ASDF-OUTPUT-TRANSLATIONS,
which should be easier to configure. Please stop using ASDF-BINARY-LOCATIONS,
and instead use ASDF-OUTPUT-TRANSLATIONS. See the ASDF manual for details.
In case you insist on preserving your previous A-B-L configuration, but
do not know how to achieve the same effect with A-O-T, you may use function
ASDF:ENABLE-ASDF-BINARY-LOCATIONS-COMPATIBILITY as documented in the manual;
call that function where you would otherwise have loaded and configured A-B-L.
что писать в sbclrc чтобы работало ?

И так должно работать, тебя просто предупреждают о том, что asdf-binary-locations уже давно deprecated (кстати, в sbcl это уже давно).

Надо отредактировать /etc/gentoo-init.lisp и убрать оттуда строки, касающиеся инициализации asdf-binary-locations.

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

А я в доках по asdf прочел что надо в хомяк теперь класть (точнее в XDG base directory) файлик такого вида

>>cat ~/.config/common-lisp/asdf-output-translations.conf
(:output-translations :enable-user-cache :inherit-configuration)

и таки да убрать инициализацию asdf. И еще что якобы это должно работать для всех лиспов. У мну для clisp не работает. SBCL уже завел

вот маны

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

> ~/.config/common-lisp/asdf-output-translations.conf

Этого финта я так и не понял, нафига мне класть что-то в хомяк, если на боевых серверах у меня всё работает от пользователей, у которых нет домашней директории? Вообще подвязка к домашней директории для «языка программирования» выглядит как-то очень сомнительно.

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

>Этого финта я так и не понял

Возможность (но не обязательность) привязки к пользователю - это, вроде, часть XDG, и хорошо, что ASDF2 это поддерживает.

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

Да просто мне плохо понятна логика разработчиков. Мне был бы нужен простой и ясный механизм настройки путем непосредственного вызова кода, но asdf::*user-cache* и asdf::*system-cache* хоть и упоминаются в документации, но не экспортированы, так что приходиться их использовать на свой страх и риск, в вместо этого предлагается какой-то дикий механизм настройки через файлы, которые я не могу реально задействовать. Когда читаю доку, то у меня создаётся устойчивое впечатление, что там была жестокое столкновение здравого смысла с какими-то «идеальным концепциями», от чего смысл перестал быть здравым, а концепции идеальными.

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

А у меня еще slime не хочет работать с sbcl-1.0.49 пишет что-то не понятное что я понять не могу где ошибка

; compiling (DEFIMPLEMENTATION BACKGROUND-SAVE-IMAGE ...)
; compiling (DEFUN DEINIT-LOG-OUTPUT ...)
; compiling (PUSHNEW (QUOTE DEINIT-LOG-OUTPUT) ...)

; /home/razor/.cache/common-lisp/sbcl-1.0.49.gentoo-r0-linux-x86/usr/share/common-lisp/source/swank/ASDF-TMP-swank-sbcl.fasl written
; compilation finished in 0:00:02.298
WARNING:
   COMPILE-FILE warned while performing #<COMPILE-OP NIL {BBE0751}> on
   #<CL-SOURCE-FILE "swank" "swank-sbcl">.

debugger invoked on a ASDF:COMPILE-FAILED in thread #<THREAD
                                                      "initial thread" RUNNING
                                                       {AAA0879}>:
  Error while invoking #<COMPILE-OP NIL {BBE0751}> on
  #<CL-SOURCE-FILE "swank" "swank-sbcl">

Type HELP for debugger help, or (SB-EXT:QUIT) to exit from SBCL.

restarts (invokable by number or by possibly-abbreviated name):
  0: [TRY-RECOMPILING] Try recompiling swank-sbcl
  1: [RETRY          ] Retry compiling #<CL-SOURCE-FILE "swank" "swank-sbcl">.
  2: [ACCEPT         ] Continue, treating
                       compiling #<CL-SOURCE-FILE "swank" "swank-sbcl"> as
                       having been successful.
  3: [RETRY          ] Retry EVAL of current toplevel form.
  4: [CONTINUE       ] Ignore error and continue loading file "/usr/share/emacs/site-lisp/slime/swank-loader.lisp".
  5: [ABORT          ] Abort loading file "/usr/share/emacs/site-lisp/slime/swank-loader.lisp".
  6:                   Exit debugger, returning to top level.

((SB-PCL::FAST-METHOD ASDF:PERFORM (ASDF:COMPILE-OP ASDF:CL-SOURCE-FILE))
 #<unavailable argument>
 #<unavailable argument>
 #<ASDF:COMPILE-OP NIL {BBE0751}>
 #<ASDF:CL-SOURCE-FILE "swank" "swank-sbcl">)

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

В том то и дело что он теперь не ТОЖЕ это поддерживает, а в том что старый способ конфигурации сломался.

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

Уже починил - поставил слайм из CVS там оно поновее, еще гуглиться патч на swank. Так что с новым SBCL надо и слайм супер новый иметь и настройку в хомяке создавать.

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

> Так что с новым SBCL надо и слайм супер новый иметь

Кстати, вообще странная проблема, http://lists.common-lisp.net/pipermail/slime-devel/2011-June/018124.html - Nikodemus Siivola как бы сразу признал, что это какой-то дибилизм. И мне не понятно, как вообще в релиз попало это изменения, которое не работало с SLIME. Разработчики SBCL не юзают SLIME? Или релизят без тестов? Это ведь надо было зарелизить без запуска под SLIME. У меня это как-то в голове не укладывается. Как бы не первый случай, когда в релиз попадет какой-то левый патч. Возможно объявленный полный и окончательный переход с CVS ни Git как раз и связан с подобными проблемами, которые почему-то просачиваются в релизы.

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

Древние бородатые хакеры считают что git - бесовская затея, сложная и надуманная ?

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

>Мне был бы нужен простой и ясный механизм настройки путем непосредственного вызова кода

В документации же описаны функции настройки путей поиска систем и настройки хранения fasl'ов.

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

>Возможно объявленный полный и окончательный переход с CVS ни Git как раз и связан с подобными проблемами, которые почему-то просачиваются в релизы.

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

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

> функции настройки путей поиска систем

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

настройки хранения fasl'ов.


А вот тут какая-то срань: http://common-lisp.net/project/asdf/asdf/Controlling-where-ASDF-saves-compile... Просто выкинуть и забыть. Накрутили какой-то фигни. Не знаю кому это нужно, но мне точно не нужно. Я, как сказал выше, юзаю asdf::*user-cache* и asdf::*system-cache* для серверов-приложений.

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

Ну это как минимум удобно если лисп машину локально используешь (под своим пользюком пускаешь), во первых одна настройка для всех лиспов, во вторых не во всех дистрибутивах есть такой костылек как /etc/gentoo-init.lisp который проводит настройку ASDF, а тут скопировал файл с конфой в домашний каталог и пользуешь настроенное окружение.

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

> Ну это как минимум удобно

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

не во всех дистрибутивах есть такой костылек как /etc/gentoo-init.lisp

который проводит настройку ASDF, а тут скопировал файл с конфой


в домашний каталог



Да gentoo-init.lisp ничего особого и не делает, вообще практически ничего не делает. Просто грузит asdf. А это всё равно нужно как-то делать.

Речь о том, что работоспособность системы не должна зависеть от домашнего каталога, а способы настройки системы как для режима разработки (локальное использование), так и для продакшен должны быть одни и те же. ASDF2 предлагает массу каких-то левых возможностей для настройки в режиме локального использования и совершенно игнорирует необходимость настройки боевых серверов. Сделано в духе common-lisp-controller - левые возможности и игнорирование практических потребностей.

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

> Все же стоит перейти на Haskell.

Почему тогда не на Python? Вообще за лисперами замечена склонность переходить на Node.js

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

>Почему тогда не на Python?

про Haskell vs Python сказано много, я ничего нового сказать не смогу.

Вообще за лисперами замечена склонность переходить на Node.js


Почему? В голову приходит лишь ассоциация «javascript - это схема с сишным синтаксисом», но лично мне всегда хочется заехать в лицо тем, кто так утверждает. Хотелось бы услышать ваше мнение.

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

>если для веб приложений, то разумнее наверно ерланг например тащемта.

Проблема Erlang-a в том, что он слишком разрекламирован. За «две недели»; «горячая замена кода»; «отказоустойчивость» стоят на самом деле - год; он есть, но никто его правильно не делает; тормаза и потребление памяти.

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

> «javascript - это схема с сишным синтаксисом»

JavaScript это однозначно лисп )

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


Почему?

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

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

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

> совершенно игнорирует необходимость настройки боевых серверов

Почему игнорирует? Он достаточно гибок: конфиги можно класть в /etc/common-lisp/, можно передавать через переменную окружения CL_SOURCE_REGISTRY, можно в коде конфигурировать через API.

По-моему, надо просто прочесть мануал на asdf.

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

> разве javascript вообще является полноценным языком?

Да. Смотри хотя бы пресловутую http://nodejs.org/

тем более сравнивать его со схемой или лиспом


Легенда гласит, что его разрабатывали на основе scheme и лишь в самый последний момент, из маркетинговых сообщений соображений приделали к нему C-подобный синтаксис и назвали JavaScript. Идейно он очень близок к лиспам.

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

> Он недостаточно удобен.

Неудобен, зато работоспособен.

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