Imbutindo Common Lisp (ECL) em C

Hoje comecei a brincar com ECL (Embeddable Common Lisp). Como o nome diz, é possível embarcá-lo [1] em um programa escrito em C. Na verdade, ele é mais que isso; é possível também rodar o comando ecl para ter um interpretador de Common Lisp ou usá-lo como um compilador de Common Lisp para C/binário.

Esses dois últimos usos são relativamente simples e estão bem documentados. Meu interesse mesmo era como embarcar em um programa escrito em C e acessar funções definidas em C a partir do programa em Lisp e vice versa. Infelizmente, essa parte consta com um “TBD” no manual, que eu imagino que signifique To Be Done, a ser feito. Mesmo assim, consegui achar algumas informações na mailing list e em outros sites e fazer um programa básico.

Leia o resto deste post »