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
pushouadd-to-listpara 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?
setqeditadas apenas (ou seja, não importa quais valores eles tinham antes) podem ter o padrão especificadodefvarou odefcustomformulário, mas no caso de uma lista que pode ser estendida pelo usuário, é melhor usareval-after-loadcerto? Também, às vezes bons padrões são boas, mesmo se eles tomam forma de uma lista ;-)