Отсутствуют записи в tclIndex для типов снитов

Я использую tcl 8.6, который включает snit (Active State Tcl). Мои типы снимок хранятся в разных файлах. При генерации индекса с auto_mkindex в auto_mkindex соответствующий материал для типов tclIndex.

Это означает: когда я пытаюсь создать объект типа snit (например, " MYTYPE create objectsName...), интерпретатор записывает invalid command name....

Если я завершу tclIndex вручную

set auto_index(RPCSkeleton) [list source [file join $dir rpc2.tcl]]

все работает отлично!

У меня что-то не так? Это ошибка в пакете snit (или в модуле добавления для auto_mkindex)?

1 ответ

Я бы не посоветовал использовать auto_mkindex вообще; все, что он делает с настройкой автоматически загруженного кода, довольно плохо информируется в первую очередь в любом реальном приложении. Это намного лучше:

  1. Соберите код в пакет, который вы можете package require. Файл определения пакета потребует, чтобы package provide вызов в нем, и тогда вы захотите (по крайней мере в первый раз) использовать pkg_mkIndex для создания индексного файла пакета. Пакетные индексные файлы достаточно просты, чтобы вы могли поддерживать их вручную; они не перечисляют каждую команду в пакете в них и перемещаются, поэтому обслуживание просто добавляет дополнительный файл, если это необходимо, и иногда обновляет номер версии. (Не используйте ленивую загрузку пакетов!)

    Альтернативно,...

  2. Непосредственно source файлы в нужное время. Это наиболее полезно для того, где у вас есть приложение, чей источник длиннее, чем вы хотите поместить в один файл. (Разделение вещей может быть очень хорошим инстинктом.)

licensed under cc by-sa 3.0 with attribution.