I've uploaded a snapshot of my work on a McCLIM backend for Windows:
http://home.earthlink.net/~jdunrue/clim-graphic-forms.zip
The README in that zip file explains:
This directory contains the start of a McCLIM backend implementation for Win32 using the Graphic-Forms library. I am making this snapshot available in the hopes that someone else possessing sufficient time, motivation, and McCLIM knowledge can pick up where I've left off.
Files in this archive:
mcclim.asd -- a patched version of mcclim.asd (rev 1.39) defining a new system called :clim-graphic-forms
ports.lisp -- a patched version of ports.lisp (rev 1.53) that adds the symbol :graphic-forms to *server-path-search-order*
Backends/ Graphic-Forms/
README.txt -- this file
frame-manager.lisp -- backend code gadgets.lisp graft.lisp medium.lisp package.lisp port.lisp utils.lisp
loader.lisp -- a utility to load the system; you can either modify this to suit your local environment or just consult it as a reference
My overall plan was to use existing abstractions provided by Graphic-Forms on top of the Win32 API rather than re-implement that infrastructure. Package nicknames GFG: GFS: and GFW: identify symbols exported from that library.
Many thanks to David L., Troels, and Robert S. for their replies to my earlier queries. And thanks to Christophe for creating the null backend, without which getting started would have been much more difficult. I will be happy to answer questions or provide fixes for Graphic-Forms to facilitate further development of this backend.
Quoting Jack Unrue (jdunrue@gmail.com):
I've uploaded a snapshot of my work on a McCLIM backend for Windows:
Thanks for writing this!
Which Lisp implementation are you using for development?
I just tried SBCL 1.0 on Windows 2000. Demodemo appears as a window, but window contents do not get drawn, so the buttons are not visible. and the address book just says: fatal error encountered in SBCL pid 832: GC invariant lost, file "gencgc.c", line 833
My overall plan was to use existing abstractions provided by Graphic-Forms on top of the Win32 API rather than re-implement that infrastructure. Package nicknames GFG: GFS: and GFW: identify symbols exported from that library.
Sure, using Graphic-Forms seems like a good plan.
I would like to suggest this patch for mcclim.asd and ports.lisp instead of the file replacements from your zip file:
http://www.lichteblau.com/blubba/clim-gf.diff
Diffs are easier to apply than complete copies of the files, and if you are using CVS, line endings should be handled automatically for you.
My diff also cleans up *server-path-search-order* and adds a comment explaining the chosen order. -- If anyone actually has a Genera backend, please speak up! ;-)
David
David Lichteblau david@lichteblau.com writes:
I just tried SBCL 1.0 on Windows 2000. Demodemo appears as a window, but window contents do not get drawn, so the buttons are not visible. and the address book just says: fatal error encountered in SBCL pid 832: GC invariant lost, file "gencgc.c", line 833
This looks like one of the known issues with 1.0 on Win32, onfortunately something that doesn't happen to everyone with the same inputs, depending on at least the amount of stack Windows decides to give SBCL.
"Mostly Fixed" for SBCL in CVS, though.
Cheers,
-- Nikodemus Schemer: "Buddha is small, clean, and serious." Lispnik: "Buddha is big, has hairy armpits, and laughs."
On 12/17/06, David Lichteblau david@lichteblau.com wrote:
Quoting Jack Unrue (jdunrue@gmail.com):
I've uploaded a snapshot of my work on a McCLIM backend for Windows:
Thanks for writing this!
Which Lisp implementation are you using for development?
I was using CLISP so that I could run GF-based programs from SLIME. SBCL and SLIME aren't a good combination where GF is concerned and I have yet to nail down the problem. I recall seeing a similar problem when running the gtkairo backend on Win32, actually. Something is going wrong as a window is created and the early window creation events are dispatched, so although there is no crash it appears as though nothing is happening. I've done some investigation with a window spy utility, but that's going off-topic here.
I just tried SBCL 1.0 on Windows 2000. Demodemo appears as a window, but window contents do not get drawn, so the buttons are not visible. and the address book just says: fatal error encountered in SBCL pid 832: GC invariant lost, file "gencgc.c", line 833
Yep, I've seen several variations of that, too. As Nikodemus mentioned, I think SBCL from CVS might behave better -- need to try it myself :-)
Assuming that I'm understanding correctly that you were trying to run the GF backend, there's actually quite a lot of work to be done yet. I was struggling to understand and fix some basic issues and basically threw up my hands, hence my email about the snapshot.
The fact that you've taken a look at it is very heartening, and so I'm feeling motivated to keep working. Thanks!
I would like to suggest this patch for mcclim.asd and ports.lisp instead of the file replacements from your zip file:
OK, that's fine with me.