Re: Digitool MCL support for CFFI (was Re: ? cffi)
james anderson <[email protected]> Sat, 2 Oct 2010 10:52:52 +0200
| Newsgroups | gmane.lisp.mcl.general,gmane.lisp.cffi.devel |
|---|---|
| Message-ID | <[email protected]> |
good morning; On 2010-10-02, at 07:21 , Chun Tian (binghe) wrote: > Hi, CFFI developers > > Digitool MCL was a old&famous Common Lisp implementation on PPC Mac > OS. Recently it was ported into Intel Mac OS X by running in > Rosetta (a PPC emulator by Apple). So there're people still using > this platform even when Clozure CL is a better choice. > > Attach is two patches, one is a CFFI MCL support patch made by > James Anderson, the other is a trivial patch for MCL support of > trivial-features made by me. With these two patch, CFFI can now be > loaded into Digitool MCL. > > This work seems work with James' own project which is based on > CFFI. But CFFI-TESTS cannot run at this time, because ASDF:RUN- > SHELL-COMMAND doesn't support MCL (I don't know how to fix this > right now). there is a version of asdf:run-shell-command in the bsd module of de.setf.utilities (see www.github.com/lisp) which could be used for this purpose, but that would either add a dependency, so i didn't want to solve that part. > IOlib also cannot work in MCL because Gray Streams wasn't supported > by MCL yet ... > > However, I hope CFFI maintainer could merge this patch and let > other MCL users help improving exist work. > > Chun Tian (binghe) > > 在 2010-9-28,06:41, james anderson 写道: > >> good morning; >> >> i have worked out enough of a cffi-mcl to be able to accomplish >> the immediate goal - to use the cl-zmq zeromq ffi binding.[1] >> in case someone wants to carry it further, it's posted along with >> a mcl-compatible zmq version,[2] which eliminates un-ported >> dependencies. >> >> --- >> [1] : http://repo.or.cz/w/cl-zmq.git >> [2] : http://github.com/lisp/de.setf.zeromq >> >> On 2010-09-22, at 08:29 , Chun Tian (binghe) wrote: >> >>> I've read these documents. MCL 4.0's FFI seems based on the >>> function "define-entry-point" which then depends on "ppc-ff- >>> call", both of them are still available in MCL 5.x, and the >>> related MCL source code is "lib/deftrap.lisp", which was last >>> modified in 2005. >>> >>> However, I think "define-entry-point" is not the preferred way >>> any more: >>> >>> ; Change log >>> ; >>> ; put back define-entry-point and things it depends on - though >>> MCL doesn't use it users may >>> ; ------ 5.2b2 >>> >>> I think CFFI people, if want to support MCL, should research >>> "deftrap.lisp" and figure out the preferred way to do the work. >>> But for me, a USOCKET maintainer, I'd like to use this interface >>> directly to implement UDP networking, which was lack from >>> OpenTransport. >>> >>> --binghe >>> >>> 在 2010-9-22,13:30, james anderson 写道: >>> >>>> there are two sources. >>>> >>>> if you go to ftp.clozure.com, you will find the 5.2 release and >>>> a copy of the documentation for 4.0. >>>> i know of no revised documentation for 5.2. other than that, >>>> there is always the source. >>>> i believe 5.2 has a very different calling mechanism then 4.0, >>>> as it uses a different os x facility to manage foreign libraries. >>>> >>>> the biggest '?' is turning off the gc for the dynamic extent of >>>> any foreign calls which pass lisp data. i do not know if that is >>>> possible in mcl, but it could be faked by moving the data to/ >>>> from temporary external storage just to get it working. >>>> two little question marks are the data type size calculations >>>> and the call-back protocol. >>>> since the source is there, there's nothing stopping me from >>>> adapting the clozure-specific code to work in mcl. >>>> i was just hoping to avoid having to wrap my head around those >>>> bits. >>>> >>>> >>>> On 2010-09-22, at 04:45 , Chun Tian (binghe) wrote: >>>> >>>>> Never know how to do FFI in Digitool MCL ... Where can I find >>>>> some API documents? >>>>> >>>>> --binghe >>>>> >>>>> 在 2010-9-22,05:36, james anderson 写道: >>>>> >>>>>> good morning; >>>>>> >>>>>> has anyone ported cffi to mcl? >>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> info-mcl mailing list >>>>>> [email protected] >>>>>> http://clozure.com/mailman/listinfo/info-mcl >>>>> >>>>> _______________________________________________ >>>>> info-mcl mailing list >>>>> [email protected] >>>>> http://clozure.com/mailman/listinfo/info-mcl >>>> >>>> _______________________________________________ >>>> info-mcl mailing list >>>> [email protected] >>>> http://clozure.com/mailman/listinfo/info-mcl >>> >>> _______________________________________________ >>> info-mcl mailing list >>> [email protected] >>> http://clozure.com/mailman/listinfo/info-mcl >> >> _______________________________________________ >> info-mcl mailing list >> [email protected] >> http://clozure.com/mailman/listinfo/info-mcl > _______________________________________________ info-mcl mailing list [email protected] http://clozure.com/mailman/listinfo/info-mcl