This is the mail archive of the cygwin-apps mailing list for the Cygwin project.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
On 2/18/2015 3:08 PM, Corinna Vinschen wrote:
On Feb 18 13:28, Yaakov Selkowitz wrote:On Wed, 2015-02-18 at 13:49 -0500, Ken Brown wrote:I've been trying to adopt Reini's packages that have not yet been ported to 64-bit Cygwin and that have some connection to packages I already maintain. The next one on my list is ffcall.I'm guessing this is for clisp? (In Fedora, clisp is the only package which BR: ffcall).Unfortunately, the source has a lot of assembler code in it, so I will almost certainly need help from someone well versed in x86_64 assembly language. And the libffcall project appears to be dead upstream, so I'm not going to get help there.Unless you can find a patch somewhere for Win64 support.I have no idea how hard this will be. The code has been ported to x86_64 Linux, so there's at least a starting point.What is ffcall doing? What functions does it call?
I don't know much about it yet. Here's an overview: ffcall - foreign function call libraries This is a collection of four libraries which can be used to build foreign function call interfaces in embedded interpreters. The four packages are: avcall - calling C functions with variable arguments vacall - C functions accepting variable argument prototypes trampoline - closures as first-class C functions callback - closures with variable arguments as first-class C functions (a reentrant combination of vacall and trampoline) All except callback are written in assembler.
Help with basic x86_64 assembler is ok, I did it for Cygwin with help from Kai Tietz. The main difference to Linux you have to look out for is the different calling convention and how the registers are used: http://en.wikipedia.org/wiki/X86_calling_conventions#Microsoft_x64_calling_convention So the job is typically to rearrange the register usage and to account for the only four registers used for the first arguments to a function, rather than the 6 registers in the SYSV ABI.
I might give it a try at some point, but I'm not highly motivated unless someone who really cares about clisp steps forward to help. I'll concentrate first on seeing if I can get some 64-bit version of clisp built without ffcall.
Ken
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |