LINUX.ORG.RU

Конфигурирование библиотеки


0

1

Я смотрю сейчас модно конфигурировать поведение библиотек через переменные окружения. Например: http://www.mesa3d.org/envvars.html Меня смущает сам факт того, что библиотека лезет в окружение, оно не детерминировано и может быть произвольным в момент запуска программы, которая эту библиотеку испльзует. С другой стороны это удобно т.к. при необходимости аффектит все приложения, полинкованные с либой.

Хорошо было бы, чтобы клиентский код конфигурил библиотеку в момент ее инициализации, но это крайне не удобно т.к. нужно выносить конфигурацию в саму клиентскую программу.

Какие еще методы передачи конфигурации в библиотеки посоветуете?

★★★★★

оно не детерминировано

В смысле? Что в .profile, .initrc понапишешь, то и будет.

monk ★★★★★
()
Ответ на: комментарий от monk

что впишу export или unset перед запуском приложения, то и будет.

x0r ★★★★★
() автор топика

Дык в конфигурации шелла же.

DeadEye ★★★★★
()
Ответ на: комментарий от monk

для приложения это приемемо, для библиотеки - нет.

x0r ★★★★★
() автор топика

Это не сейчас модно, а так всегда было. И обычно такой способ используют для отладки, а не конфигурирования, там же вначале написано

Normally, no environment variables need to be set. Most of the environment variables used ... for debugging purposes

Альтернатива это конфиги, контексты, конфигурирование во время сборки библиотеки (опции к configure и т.п.).

mashina ★★★★★
()
Ответ на: комментарий от mashina

Это не сейчас модно, а так всегда было.

И это надо выжечь огнём как можно скорее. Глобальные переменные в библиотеках - это отвратительно, и за это нужно отрывать яйца по самые гланды. А библиотека, использующая переменные системы - это что-то из области абсурда.

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

и за это нужно отрывать яйца

Яйца нужно отрывать за слепой, беспощадный и глупый юношеский максчимализм. Хотя яйца навряд ли помогут, лучше в дурке закрывать на какой-то срок.

mashina ★★★★★
()
Ответ на: комментарий от mashina

про дебаг это я пропустил. ну тогда впринципе мне подходит.

x0r ★★★★★
() автор топика
Ответ на: комментарий от mashina

И сразу переход на личности. К тебе что, в детстве приставал маньяк в футболке с надписью «НЕНАВИЖУ ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ»?

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

И сразу переход на личности

Он есть, только с твоей стороны на себя самого же: видимо настолько перевозбужден и эмоционален, что всё подряд написанное относишь в адрес своей личности.

mashina ★★★★★
()
Ответ на: комментарий от mashina

Ну вот, ты опять это делаешь. Зачем? Неужели ты настолько глуп, что не понимаешь, что поведение библиотеки, зависящее от внешних глобальных ресурсов - это явная ошибка дизайна?

hateyoufeel ★★★★★
()
Ответ на: комментарий от hateyoufeel

Неужели ты настолько глуп, что не понимаешь, что поведение библиотеки, зависящее от внешних глобальных ресурсов - это явная ошибка дизайна?

Само по себе это не ошибка. Пример - ядро ОС.

tailgunner ★★★★★
()
Ответ на: комментарий от hateyoufeel

поведение библиотеки, зависящее от внешних глобальных ресурсов

долой конфиги!!1

yoghurt ★★★★★
()
Ответ на: комментарий от hateyoufeel

... это явная ошибка дизайна?

Очень некрасиво с таким гонором рассуждать о вещах в которых совсем не разбираешься.

mashina ★★★★★
()
Ответ на: комментарий от mashina

Наконец-то ты это понял. Если бы ты ещё что-то по делу мог сказать. Ну да ладно, не стоит требовать от тебя слишком многого.

hateyoufeel ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.