On Thu, 22 Aug 2013 23:23:48 -0500, James Gatannah said:
This may be a complete dead-end, but it seems worth a stab.
I'm trying to get a program running on win64. It requires FFI, and I'd much prefer to use CFFI.
The short version (for anyone who doesn't already know) is that SYSV and STDCALL options have been replaced with WIN64. This breaks the groveller.
I've traced the actual issue down to the point where the ASD passes a template file into a method in grovel.lisp that generates a C file that prints out a bunch of sexps...I'm guessing to configure a running lisp to let it know what kind of hardware it's running on.
It seems like it would be simple enough to either a) update the win32 template with read conditionals to export appropriate calling conventions b) add a win64 template that's really a copy/pasted duplicate with the minor modifications to make it work, then update the ASD to choose it instead of the win32 template, if appropriate.
That part seems so trivial that I'm guessing there's a much bigger piece to the puzzle. It's been years since I dug into different calling conventions, and my only refresher so far has been a glance through a wikipedia article.
Is win64 different enough that it hasn't been worth bothering with yet on the CFFI end? Is support in various lisp implementations so poor/limited that it hasn't been interesting so far? Is there just not enough interest from library users so far to justify any efforts? Am I totally off-base?
I'm sorry if this is an FAQ...I haven't been able to find mailing list archives to dig through.
There is only one calling convention on x64 Windows, so the cffi/implementation doesn't care much about it.