[О блоге]
[наверх]
[пред]
[2022-08-22 17:21:56+03:00]
[d4eadab571bf5e8ea00d19598f129a708a322d15]
Темы: [dns][tcl]
Переписал zdns на Tcl
http://www.git.stargrave.org/?p=zdns.git;a=commitdiff;h=bb68fcc5ab280623651b31953e149d364d3f7bf9
Не преследуя никакой практической цели, кроме как потрогать Tcl вновь,
чтобы развеяться. Этот язык я в руки не брал с момента написания
tofuproxy (который тоже почти не трогается, ибо just works -- почти все
HTTP запросы на моём компьютере проходят через него, даже WARC временами
использую).
И вот почти ничего не помня про Tcl, я почти без единого спотыкания и
почти без единой ошибки во время выполнения всё переписал. Только одна
ошибка запомнилась: если закрыть канал, являющийся stdout-ом от другой
команды, не дочитав всё до конца (я читаю OpenPGP ключ и выхожу когда
нужный UID был прочитан), то программа выходит с ошибкой (что ожидаемо)
и Tcl ловит эту ошибку падая. Ну и забыл что глобальные переменные по
умолчанию не видны в процедурах.
Всю документацию, кроме одной базовой книжки в PDF по Tcl, я брал из
man-ов, благо до которых у меня прекрасно работает мой клёвый
настроенный completion в zsh:
% man index<TAB>
[...]
... manual page, section 5 (file formats and conventions)
INDEX portindex
... manual page, section 9 (kernel features)
bhnd_get_core_index ifaddr_byindex
... manual page, section n (new documentation)
auto_mkindex.tcl86 lindex.tcl86 pkg_mkIndex.tcl86
... parameter
ZSH_AUTOSUGGEST_ORIGINAL_WIDGET_PREFIX
И эти man-ы очень понравились, наличием ценнейших простых примеров, где
тот же намёк на использование while {getc} и catch{close} имеется.
Непередаваемое чувство, когда ты пишешь всякий код, много или не очень,
а он просто берёт и выполняется без проблем. Такое у меня только с Go
было. Tcl очень приятен!
[оставить комментарий]