[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.
Sure.
Rob
Thanks,
Steve