Size: a a a

Clojure — русскоговорящее сообщество

2021 March 27

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Alexander Ushanov
Господа, подскажите, есть ли какая-то возможность принудительно во время отладки во все ns добавить определенную зависимость не прописывая ее в require?
Или может быть в какую-то другую сторону посмотреть: задача - каким-то образом использоваться дебажные макросы, при этом не реквайрить их руками в каждом ns, где они нужны и не удалять после отладки этот require?
а редактор какой?
для курсива я думаю знаю workaround
источник

AU

Alexander Ushanov in Clojure — русскоговорящее сообщество
emacs + cider
источник

ST

Sergey Trofimov in Clojure — русскоговорящее сообщество
Sergey Trofimov
а редактор какой?
для курсива я думаю знаю workaround
делается своя команда для выполнения формы, в которой перед выполнением делается что-нибудь ещё, типа require
источник

AU

Alexander Ushanov in Clojure — русскоговорящее сообщество
Sergey Trofimov
делается своя команда для выполнения формы, в которой перед выполнением делается что-нибудь ещё, типа require
ну это тоже про репл, за :injection спасибо, но в cljs ожидаемо не работает) по крайней мере с макросами
источник

AU

Alexander Ushanov in Clojure — русскоговорящее сообщество
я вот думаю еще куда-то в сторону алиасов для ns покопаться, вроде видел что-то такое. можно будет вместо полного пути к макросу, писать что-то вроде dev/?, что уже достаточно удобно
источник

T

The2lb3oz4dr10½grOfH... in Clojure — русскоговорящее сообщество
Alexander Ushanov
ну это тоже про репл, за :injection спасибо, но в cljs ожидаемо не работает) по крайней мере с макросами
Можно попробовать в репле объявить что-нить (in-ns 'clojure.core)
источник

AU

Alexander Ushanov in Clojure — русскоговорящее сообщество
вроде есть еще intern, но у меня пока в cljs не получилось сделать не через in-ns, не через intern
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Alexander Ushanov
Господа, подскажите, есть ли какая-то возможность принудительно во время отладки во все ns добавить определенную зависимость не прописывая ее в require?
Или может быть в какую-то другую сторону посмотреть: задача - каким-то образом использоваться дебажные макросы, при этом не реквайрить их руками в каждом ns, где они нужны и не удалять после отладки этот require?
user.clj пробовали уже?
источник

AU

Alexander Ushanov in Clojure — русскоговорящее сообщество
Kirill Chernyshov
user.clj пробовали уже?
Надо будет попробовать, не слышал про такое
источник

KC

Kirill Chernyshov in Clojure — русскоговорящее сообщество
Alexander Ushanov
Надо будет попробовать, не слышал про такое
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
Alexander Ushanov
Господа, подскажите, есть ли какая-то возможность принудительно во время отладки во все ns добавить определенную зависимость не прописывая ее в require?
Или может быть в какую-то другую сторону посмотреть: задача - каким-то образом использоваться дебажные макросы, при этом не реквайрить их руками в каждом ns, где они нужны и не удалять после отладки этот require?
один из способов -- всегда использовать дебажный макрос, который опирается на глобальную переменную. Если она ложь, то макрос разворачивается в пустоту
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
как в спеке

(defmacro assert
 [spec x]
 (if *compile-asserts*
   `(if clojure.lang.RT/checkSpecAsserts
      (assert* ~spec ~x)
      ~x)
   x))
источник

AU

Alexander Ushanov in Clojure — русскоговорящее сообщество
Спасибо
источник

AU

Alexander Ushanov in Clojure — русскоговорящее сообщество
Ivan Grishaev
один из способов -- всегда использовать дебажный макрос, который опирается на глобальную переменную. Если она ложь, то макрос разворачивается в пустоту
Не вижу смысла особо оставлять дебажные штуки в продакшен коде, ассерт все таки немного другое. Если делать что-то подобное, то чтоб варнингами кидался, если не задефайнена какая-то глобальная переменная, в таком варианте удобно будет отловить забытые куски дебажного кода.
источник

IG

Ivan Grishaev in Clojure — русскоговорящее сообщество
это уже от задачи зависит, я же не знаю контекста. Ассерт я привёл для примера: он ещё в момент развертки решает, отставлять своё тело или нет
источник

AU

Alexander Ushanov in Clojure — русскоговорящее сообщество
ну да
источник

AU

Alexander Ushanov in Clojure — русскоговорящее сообщество
это просто уже вторая часть пролемы)
источник

MK

Mikhail Kuzmin in Clojure — русскоговорящее сообщество
Alexander Ushanov
Господа, подскажите, есть ли какая-то возможность принудительно во время отладки во все ns добавить определенную зависимость не прописывая ее в require?
Или может быть в какую-то другую сторону посмотреть: задача - каким-то образом использоваться дебажные макросы, при этом не реквайрить их руками в каждом ns, где они нужны и не удалять после отладки этот require?
Можно использовать tagged literals, например как тут https://github.com/weavejester/hashp
источник
2021 March 28

N

NC in Clojure — русскоговорящее сообщество
Привет всем. Кто найдёт способ проще сгенерировать map:
{0 0, 1 1, 2 2, 3 3}
, чем вот этим кодом:
(into {} (apply vector (for [i
(range 4)] [i i])))
источник

OR

Oleg Roshchupkin in Clojure — русскоговорящее сообщество
user=> (into {} (for [i (range 4)] [i i]))
источник