'arthur fontolan' via Slackware Users Group - Brazil wrote:
Seguinte,

Se uma biblioteca da qual um programa depende for atualizada, eu preciso
recompilar todo o programa?

Por exemplo, o Inkscape usa a lxml. Se eu fizer um upgrade dela preciso
recompilar o Inkscape?

Depende do Sol, do Vento, fase da Lua, ...

*Geralmente* subir da biblioteca X.x para a X.y com x != y não faz diferença nenhuma. Inclusive muitas atualizações de segurança são feitas instalando a versão nova das bibliotecas. Ou mesmo para subir a versão do Slackware usando o slackpkg, ele vai atualizando os pacotes "aos pouquinhos".

Já quando sobe da versão X.x para a Y.y com X != Y, o "normal" é quebrar a compatibilidade com a versão anterior. Nesse caso, muitas vezes, nem recompilando resolve, como costuma mudar a API precisa mexer no código do produto.

Mas pode ver que coloquei "geralmente" e "normal" nos dois casos. Já que o comportamento não é 100% garantido, depende muito do que foi alterado na versão antiga e nova da biblioteca. Pô, trocando de compilador às vezes dá para fazer a mesma versão da biblioteca ficar incompatível com os outros programas.

A título de exemplo, vamos supor que na biblioteca punkmath 1.0 exista uma função chamada raiz_quadrada_nao_imaginaria(), cuja entrada deveriam ser apenas números positivos; mas por algum motivo desconhecido do programador, ela aceite números negativos como argumento. Então:

raiz_quadrada_nao_imaginaria(4) = 2
raiz_quadrada_nao_imaginaria(-4) = 2

Um matemático reclama com o desenvolvedor e, na punkmath 1.1, a função é corrigida e passa a aceitar apenas números positivos como argumento.

raiz_quadrada_nao_imaginaria(4) = 2
raiz_quadrada_nao_imaginaria(-4) = ERR

Mesmo sendo uma mudança pequena e mantendo o major number da biblioteca (o X de X.x), qualquer programa linkado nessa biblioteca e que use a função raiz_quadrada_nao_imaginaria com números negativos esperando não receber um erro, vai parar de funcionar (ou crashar do nada de vez em quando).

Então voltamos no "Depende do Sol, do Vento, fase da Lua"...

Piter Punk

--
GUS-BR - Grupo de Usuários de Slackware Brasil
http://www.slackwarebrasil.org/
http://groups.google.com/group/slack-users-br

Antes de perguntar:
http://www.vivaolinux.com.br/artigo/Como-elaborar-perguntas-para-listas-de-discussao

Para sair da lista envie um e-mail para:
[email protected]
--- Você está recebendo esta mensagem porque se inscreveu no grupo "Slackware Users Group - Brazil" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um 
e-mail para [email protected].
Para obter mais opções, acesse https://groups.google.com/d/optout.

Responder a