3

I have been asked to automate the operation of a Windows (WinForms) application, performing some fairly complicated statistical analysis along the way.

My first thought was the usual suspects: .NET, C# and White or AutoItX.

Then it occured to me that I could try an alternative stack: SBCL, CFFI, and AutoItX. That way, I could write in a language I like (Common Lisp), using my native Linux development tools via SLIME and Swank.

Hence my question: is there some reason I shouldn't try this? I'm a Common Lisp newbie, and have essentially zero experience in CL FFI or SBCL on Windows. The learning curve isn't a problem, though. I'm worried that someone may have tried something like this in the past and discovered insurmountable issues. My list of concerns includes:

  • stability / completeness of CFFI on SBCL on Windows
  • getting SLIME on Linux talking to SBCL running on a Windows box

Any experience, advice or warnings on any aspect of my proposed stack would be greatly appreciated.

  • You'd be better off asking this question on an SBCL list, but having said "wrong place" it's an interesting question. Off-hand I don't see any particular difficulties: SWANK is a protocol, so you're fine there, and I didn't have major problems with SBCL on Windows (but I did nothing fancy, and it was years ago). – Frank Shearar Sep 13 '13 at 6:28
3

This is a little late, but as of about 2 months ago (05/2018) I found this project called Portacle which bundles SBCL, Emacs, Quicklisp, and more into a single package for Windows 10. All you have to do is double click the portacle.exe file and you have a full blown Common Lisp IDE to work with.

See https://portacle.github.io/ and https://github.com/portacle/portacle

2

Here is half of an answer.

Clozure Common Lisp (CCL) is the "best" Common Lisp implementation for windows. It works great with Emacs/SLIME. I haven't had any issues but I don't get to use Lisp beyond tinkering. Not sure about CFFI.

To save you a bit of searching.... On my windows XP box I had to add CCL to the path. When you set the inferior-lisp-program it does not assume an absolute path.

Start -> right click "My computer" -> Properties -> Advanced -> Environment variables -> click "PATH" -> edit -> add path to CCL into the ";" separated list.

Then add this to .emacs:

(set-language-environment "utf-8") ;for clozure cl
(setq inferior-lisp-program "wx86cl.exe -K utf-8") ;clozure cl
(add-to-list 'load-path "~/.emacs.d/slime/") ; your SLIME directory
(require 'slime)
(setq slime-net-coding-system 'utf-8-unix)
(slime-setup '(slime-fancy))

Your Answer

By clicking "Post Your Answer", you acknowledge that you have read our updated terms of service, privacy policy and cookie policy, and that your continued use of the website is subject to these policies.

Not the answer you're looking for? Browse other questions tagged or ask your own question.