Pergunta

Sou relativamente novo no Lisp (só conheço o básico) e atualmente estou tentando executar um programa de composição algorítmica criado por David Cope.Ele é executado no MCL 5.0 e continuo recebendo o seguinte erro:

Erro na reprodução do processo:Estouro de pilha na pilha de valores.Para aumentar globalmente o espaço da pilha, aumente *minimum-stack-overflow-size*

Alguém sabe qual função eu usaria para aumentar o tamanho do estouro de pilha e como calcularia o melhor tamanho de estouro de pilha para meu computador?Estou executando o MCL em um Powerbook antigo com 512 MB de RAM.

Obrigado pelo seu tempo,

Eddie

Foi útil?

Solução

Parece dizer que você simplesmente precisa modificar a variável especial *minimum-stack-overflow-size*.Quando você está no REPL (CL-USER> prompt ou similar), inspecione esta variável avaliando seu nome:

CL-USER> *minimum-stack-overflow-size*

Em seguida, defina-o com um valor maior (1234567 é apenas um espaço reservado) com setf:

CL-USER> (setf *minimum-stack-overflow-size* 1234567)

No entanto, este pode não ser o verdadeiro problema.Não conheço bem o MCL, mas talvez seja necessário (declaim (optimize (speed 3) (safety 0))) ou semelhante para ativar a eliminação da chamada final, se o programa que você deseja executar usar uma função recursiva final que depende de tal otimização.

Outras dicas

Originalmente, as opções de memória foram editadas com o RESEDIT.

Pode-se também usar a função Salvar-Aplicação e usar a palavra-chave: Memory-Options para especificar vários valores. Isso é descrito no Manual de Referência da MCL. Esta função salva um novo aplicativo MCL. Normalmente, inicia -se a baunilha MCL, define várias opções, carrega algumas bibliotecas e salva um novo aplicativo. Este novo aplicativo é então usado durante o desenvolvimento.

O tamanho necessário da pilha depende do programa que você deseja executar.

Se ocorrer um excesso de pilha, no MCL, você poderá continuar com uma pilha maior em muitos casos. Basta escolher a opção de reinicialização correta.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top