[gecol-devel] Gecol 2.0 fixes for Allegro

Willem Broekema metawilm at gmail.com
Sat Mar 22 20:55:22 UTC 2008


On Wed, Mar 19, 2008 at 10:38 AM, Kilian Sprotte
<kilian.sprotte at googlemail.com> wrote:
> thank you very much for helping with Allegro and the newest GECODE version.
> All the patches arrived fine!
> I have now pushed them to gecol20 - but committed a small change
> afterwards...
>
> You made this change:
>
> hunk ./gecol.asd 64
> -  (let ((loader (intern "LOAD-FOREIGN-LIBRARY" :cffi)))
> +  (let ((loader (intern '#:load-foreign-library :cffi)))
> }
>
> For instance SBCL would complain if the first arg of intern is not a string
> (and according to the spec it should not be anything else). As I dont have
> Allegro, what is the exact error message / problem here?

The problem is that in a case-sensitive Lisp (Allegro's "Modern"
mode), the symbol is exported by cffi as lowercase. (intern
"LOAD-FOREIGN-LIBRARY" :cffi) creates a second, different symbol. To
solve this, the argument to intern (or find-symbol) should be given in
lowercase.

Allegro happens to also accept symbols as argument to intern, so I was
not notified of the mistake (it is controlled by the switch
excl:*intern-allows-symbol*, by default true).

Now I'd like to propose (intern (string '#:load-foreign-library)
:cffi), to fix the case issue.

Cheers,
- Willem



More information about the gecol-devel mailing list