[LispM-Hackers] Re: [Lispm-cvs] CVS update: e3

James A. Crippen james@unlambda.com
20 Dec 2001 22:35:10 -0900


john morrison <jm@mak.com> writes:

> Well, that was unexpectedly easy.  I kind of had the idea that it would
> be an all-weekend job.

Good to hear it!

> > Builds and runs under cygwin on Win2K

Yay!  For suitably small values of 'yay' of course.  ;-)

> It seems to produce the exact same results (based upon a VERY cursory
> inspection) as the Linux version.

Cat the output to a file and do a 'diff -u' on that and the same
output from the Linux version.  That's how I test such things
anyway...  It's easier than doing a 'vdiff'.

> (1) I made a sort of nasty change to types.h.  I tried to use
> "stdint.h," but on cygwin, it apparently only exists for this entirely
> separate "mingw" compilation set which does NOT depend upon cygwin, but
> instead depends upon MS DLLs.  (If there are any cygwin jocks on the
> list, please help me out here.)  Now, the weird thing was I got REALLY
> close (one undefined reference to an iostream routine at link time), but
> then (God Bless Google) found out I was doing things completely wrong. 
> So, I made the temporary change -- we ("Who's 'we,' paleface?") ought to
> change this to use something better.  Believe it or not,
> /usr/include/tiff.h on both Linux and Cygwin seems to define some
> u8/u16/u32 data types we might use.

That's all kinds of evil.  That's just not right...  It's not even a
hack, it's a crock.  Ugh.

My thought is that we could just #ifdef WINDOWS or whatever, then
define the types ourselves.  Since Windows only ever runs under one
platform (I know about the others, but damned to anyone who ruins an
Alpha or SGI by running Windows on it) we can gratuitously assume that
int, float, long, and double are particular sizes.  Everything else we
use stdint.h.

> (2) I don't know if anybody out there is planning on hacking on e3
> (instead of playing solitaire) on his Win98 laptop whilst he's stuck on
> an airplane, but Cygwin was pretty easy to install.

You mean Windows is good for other things besides Solitaire?  Oh yeah,
that's right, they've got Minesweeper too.  And web pages in Windows
always seem to look good to.  Hmm...  Must be a conspiracy.

> It includes cvs (make and bash), too, which really helped out with
> this.

I'm very pleased with cygwin, it's the first thing I install on a
Windows box.

> However, the first version I installed didn't have an up-to-date CVS
> (Google told me this was a known "whoops," so I knew enough to go
> get a newer download).

Duly noted.

> I would be more than happy to help anyone who is interested
> (although why one would want to do this under Windows rather than a
> Real Operating System I will never know).

I'm not volunteering unless I am forced to use Windows at the next job.

> It is also helpful to get the latest emacs.

I recommend XEmacs, which comes with a networked installer or an
InstallShield installer.  The networked version allows selecting
particular packages for inclusion.  That and XEmacs is much better
integrated with Windows than FSF Emacs is.

> (3) I would be interested in what the binary packaging requirements are
> for the e3.exe executable are with respect to the rest of the cygwin
> dlls.
> 
> (4) If nobody else steps up to the plate, I am perfectly willing to be
> the Cygwin guy.

I think you just got the job.  :-)

> (5) The whole fiasco (is a half-hour problem a "fiasco?")

Depends on the frustration level.  If you're bleeding from your
forehead by the end then it is.  If the shock of success gives you a
cranial aneurysm or massive indigestion then it is.  I think it also
depends on the amount and ferocity of cursing you do.

> with the "mingw" thing led me to believe that I am going to have
> some issues getting win32 stuff called from e3.exe.

Check out how [X]Emacs does it.  I think it is in a similar situation?

> I am assuming that I have to do so in order to open up a window.

We could just run full-screen instead.  Lots of games work this way,
eg Quake.  I'd be in favor of that, since things like Drag-N-Drop(TM)
and Cut-N-Paste(TM) may not exactly be easily applicable.

> When this issue comes to a head in the future, if nobody else steps
> up to the plate, I will revisit the build process.

Don't worry too much about it now.  I'd much rather worry about that
after we can call functions...

'james

-- 
James A. Crippen <james@unlambda.com> ,-./-.  Anchorage, Alaska,
Lambda Unlimited: Recursion 'R' Us   |  |/  | USA, 61.20939N, -149.767W
Y = \f.(\x.f(xx)) (\x.f(xx))         |  |\  | Earth, Sol System,
Y(F) = F(Y(F))                        \_,-_/  Milky Way.