Получить флаги конфигурации скомпилированного tcl - PullRequest
0 голосов
/ 24 мая 2018

Я скомпилировал tcl версии 8.4 и хочу проверить, было ли установлено --enable-threads при компиляции или нет?

или есть какой-либо другой способ получить список всех переданных флагов.Спасибо

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Начиная с 8.5 ( TIP 59 ), можно получить подробную информацию о конфигурации сборки, используя tcl::pkgconfig:

% tcl::pkgconfig get threaded
1

Обратите внимание, что это не доступно в Tcl 8.4;если доступно, не нужно защищать от запроса несуществующей записи массива tcl_platform(threaded).

0 голосов
/ 25 мая 2018

ВАЖНОЕ ПРИМЕЧАНИЕ!

Tcl 8.4 находится вне долгосрочной поддержки.Абсолютно никаких дальнейших изменений к нему не ожидается, , даже если обнаружена катастрофическая ошибка безопасности; , если ваша проблема не устранена в 8.4.20, вам нужно перейти к 8.5 или более поздней версии.Мы не знаем о таких проблемах безопасности, но мы не ищем и не будем их исправлять, если они будут найдены.

Поддержка здесь только на основе «потому что мы чувствуем себя хорошо».Вы не должны создавать новую работу на основе 8.4.

Элемент глобального массива tcl_platform(threaded) определен и установлен на 1, когда используемая в настоящее время библиотека Tcl создается споддержка потоков.Это верно, по крайней мере, с Tcl 8.4.Вот как можно надежно получить хорошее логическое значение, которое вы можете проверить:

set isThreaded [expr {
    [info exist tcl_platform(threaded)] && $tcl_platform(threaded)
}]

NB: Некоторые платформы практически всегда имеют многопоточность (из-за того, как они работают внутри; это имеет место в случае сWindows и OSX, если я правильно помню).В будущих версиях Tcl (начиная с версии 8.7) по умолчанию будет использоваться многопоточность;это будет единственный поддерживаемый режим сборки начиная с 9.0.Вам все еще понадобится пакет Thread для работы с потоками в вашем скрипте, но в наши дни это стандартное расширение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...