[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

the function C::%ALIEN-ACCESS is undefined.

   From: Rob_MacLachlan@LISP-PMAX2.SLISP.CS.CMU.EDU

   What is happening is that an Alien operation is not being open-coded.  And
   since interpreted Aliens don't work, you get the undefined function error.
   In this case, it is due to a bug in DEF-C-ROUTINE.  If this is
   time-critical, I can come up with some sort of workaround for the alien
   support in 15d.  But the easiest solution for us (and in the long term for
   you) would be for you to change over to our redesigned foreign call
   facility.  This new system has just come up, but now seems to be mostly
   debugged.  We should be able to get you a new beta system within a week.

OK, I can wait a week.

   In addition to fixing the embarrasing brokenness of the current Aliens, the
   new system is also more C-like and easier to use (and compiles type
   definition much faster.)  I have recoded your test case in the new language
   so you can get an idea of the sort of changes that will be required.

Looks much cleaner.

   The old Alien and DEF-C-xxx mechanisms have been integrated into a single
   alien facility.  Alien types are now very much like C types.  Alien types
   are also integrated into the Lisp type system

If this means that I can do away with all that 'alien-access' stuff, great.

   One big convenience is that anonymous types are supported, so it is no
   longer necessary to explicitly define pointer and array types.  You will
   notice that the example becomes much shorter.

   As soon as I get the new Alien documentation together, I'll mail it to you
   for comments.  We'd like to have your input on what features are needed for
   interfacing with complex foreign systems.