From: Daniel J S. <dan...@ie...> - 2004-02-25 16:46:56
|
Hans-Bernhard Broeker wrote: >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. > I think "graphics.c" is the file I argued should be restructured because 2D and 3D graphics seemed to be bifurcating. (Ultimately, everything ends up being plotted in 2D.) It should be just the core routines for graphics and then maybe a "graph2D.c" and "graph3D.c". If a major change is made to graphics.c right now it will undoubtedly mess up some of the patches currently on SF. Supporting 16-bit would probably be nice, but a conscious decision needs to be done on how to make that happen, i.e., how should software be organized, what features will be included. That will be difficult to make work in the time span of making a release. Maybe it would be best to not rock the 16-bit boat until 4.1. That is, don't make an untested upgrade for 16-bit. Otherwise the 16-bit world will upgrade and probably end up wrecking their current, workable set up. I don't look back fondly on software upgrades in the 16-bit days. Dan |