Re: :out parameters

Ben <ben-PLN1j/[email protected]> Fri, 27 Aug 2004 04:45:09 -0400 (EDT)
Newsgroups gmane.lisp.uffi.devel
Message-ID <[email protected]>
On Fri, 27 Aug 2004, Kevin Rosenberg wrote:

> Would you resend make.sh? Perhaps in the body of the messary. My mime
> filter removes attachments that end with .sh.

at the bottom.

>> meanwhile, i would like to release some software which depends on the
>> :out parameters stuff.  since a new release of UFFI is probably not
>> imminent, how should i do this?
>
> I'm glad to release updates. What I meant what that a rewrite of UFFI
> to use high-level macros and would be somewhat backwards incompatible
> is not imminent.

great.  i should really write more tests and test it on some other
platforms first of course.  the advantage of me releasing a patch with
my library is to gain testers, who will only get mad at ME when stuff
fails!  after the dust settles, you can patch it back in.  your choice.

> Also, I wonder about including def-funcallable in the next release of
> UFFI. You have that commented out. Besides the note about Allegro
> being incorrect, how do you feel about the rest of the macro?

theoretically correct but wholly untested.  Also it is unknown if
Allegro will give information about how to do this, it's undocumented.
I found a message from someone who asked long ago, they got no
response (and neither did I.)  That's the main reason I gave up.  if
you're interested in it i can make some tests for it and run them
while i'm running my :out parameter tests.

the REALLY interesting thing of course would be to figure out
callbacks.....

take care, B


make.sh

#!/bin/sh

case "`uname`" in
     Linux) os_linux=1 ;;
     FreeBSD) os_freebsd=1 ;;
     Darwin) os_darwin=1 ;;
     SunOS) os_sunos=1 ;;
     AIX) os_aix=1 ;;
     *) echo "Unable to identify uname " `uname`
        exit 1 ;; 
esac

if [ "$os_linux" ]; then
     gcc -fPIC -DPIC -c $SOURCE -o $OBJECT
     gcc -shared $OBJECT -o $SHARED_LIB

elif [ "$os_freebsd" ]; then
     gcc -fPIC -DPIC -c $SOURCE -o $OBJECT
     gcc -shared $OBJECT -o $SHARED_LIB

elif [ "$os_darwin" ]; then
     cc -dynamic -c $SOURCE -o $OBJECT
     ld -bundle /usr/lib/bundle1.o -flat_namespace -undefined suppress -o $BASE.dylib $OBJECT
     ld -bundle /usr/lib/bundle1.o -flat_namespace -undefined suppress /usr/lib/libz.dylib -o z.dylib

elif [ "$os_sunos" ]; then
     cc -KPIC -c $SOURCE -o $OBJECT
     cc -G $OBJECT -o $SHARED_LIB

elif [ "$os_aix" ]; then
     gcc -c -D_BSD -D_NO_PROTO -D_NONSTD_TYPES -D_MBI=void $SOURCE
     make_shared -o $SHARED_LIB $OBJECT
fi

exit 0