|
From: Hans-Bernhard B. <br...@ph...> - 2004-02-25 09:11:53
|
Hello, all,
I've got round to trying to build 16-bit binaries of gnuplot for DOS and
Windows and the news, so far, is bad.
Win16 (i.e. good old Windows 3.1 and Windows for Workgroups 3.11) kills
itself directly on startup. I may be blowing the stack or something ---
investigating that is a nightmare without at least a Win9x machine.
DOS-16bit works, sort of. But that's after I disabled most of the bit
optional features (filled boxes, PM3D) *and* removed pretty much all
terminal drivers besides dospc (the interactive graphics driver), table
and cgm. Yes, that does mean I had to throw out post.trm ;-( The reason
post.trm had to go is the PS_header[] string array. This is simply too
large, and the way it's constructed (array of many short strings) means
that Borland's compiler, which is otherwise quite clever at squeezing a
lot of code into those 640KB, fails to move the bulk of it into a separate
segment. As is, term.obj with post.trm in it costs 26000 of the total of
64 precious kilobytes of "dgroup". I won't give up on this quite yet,
though.
The other major challenge is graphics.c, and it affects both 16-bit
platforms: that module is plain and simply too large. BCC chokes already
on compiling that source file because it contains more than 64KB of code.
Maybe I'm overlooking some optimization (the 32-bit graphics.o on Linux
has only 52KB...), but for the time being, I decided to tentatively split
graphics.c into two files: I copied all the "steps" plotting style handler
(plot_{f,hi,}steps) and their helper functions to a separate source file
and #ifdef'ed out their implementations in graphics.c. The new files
steps2d.[ch] currently contain copies of the relevant parts of
graphics.[ch], but those may be replaced by #include'ing graphics.c if I
put even more #ifdef's into the latter.
I will leave the CVS version free of these complications for now, until
the following question is settled: Is support for 16-bit machines (think:
old lab PCs, "poor pupils", under-developed countries...) important enough
to warrant changes as deep as these before the release?
I'll hands-up poll of any users of the 16-bit versions to the newsgroup to
get some additional feedback.
--
Hans-Bernhard Broeker (br...@ph...)
Even if all the snow were burnt, ashes would remain.
|