<div dir="ltr">This may be a complete dead-end, but it seems worth a stab.<div><br></div><div>I'm trying to get a program running on win64. It requires FFI, and I'd much prefer to use CFFI.</div><div><br></div><div>
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.</div><div><br></div><div>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.</div>
<div><br></div><div>It seems like it would be simple enough to either</div><div>a) update the win32 template with read conditionals to export appropriate calling conventions</div><div>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.</div>
<div><br></div><div>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.</div>
<div><br></div><div>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?</div>
<div><br></div><div>I'm sorry if this is an FAQ...I haven't been able to find mailing list archives to dig through.</div><div><br></div><div>Thanks in advance,</div><div>James</div><div><br></div></div>