Что: d4eadab571bf5e8ea00d19598f129a708a322d15
Когда: 2022-08-22 17:21:56+03:00
Темы: 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 очень приятен!
Сгенерирован: SGBlog 0.34.0