Eu entendo o que o carregamento automático faz para funções (registrar o arquivo para carregar quando essa função é chamada ou sua cadeia de documentação é recuperada). No entanto, não está claro como usar o recurso de carregamento automático em conjunto com variáveis e macros.
Eu tenho duas perguntas:
O que acontece quando o pacote tem parâmetro, implementado como uma variável que o usuário pode definir, mas não é carregado automaticamente? Essas variáveis devem ser carregadas automaticamente? Caso contrário, verifica-se que essas variáveis não existem, o ambiente Lisp não sabe nada sobre elas, incluindo seus valores padrão, até que alguma função carregada automaticamente do pacote seja usada (normalmente após o carregamento dos arquivos de configuração) e, se o usuário as definir no seu / seu arquivo de configuração, é como definir variáveis inexistentes. Se o valor da variável é uma lista não vazia e o usuário usa
push
ouadd-to-list
para alterar seu valor, o que exatamente acontece? Os valores padrão são perdidos?O que acontece quando uma macro é carregada automaticamente? Quando devemos carregar automaticamente uma macro?
setq
editadas apenas (ou seja, não importa quais valores eles tinham antes) podem ter o padrão especificadodefvar
ou odefcustom
formulário, mas no caso de uma lista que pode ser estendida pelo usuário, é melhor usareval-after-load
certo? Também, às vezes bons padrões são boas, mesmo se eles tomam forma de uma lista ;-)