Mail Archives: djgpp/1994/07/11/16:14:53
X-Mailer: exmh version 1.4 6/24/94
Date: Mon, 11 Jul 1994 09:40:44 PDT
From: Marty Leisner <leisner AT sdsp DOT mc DOT xerox DOT com>
I want to recursivesly do makes...
It seems each invocation takes over 100k out of my conventional memory,
so after 3 levels I'm "out of space to exec"
Right. this is GO32 itself, takes about 130KB per invocation, plus an
extra 50KB at startup. This isn't going to go away with current
technology.
Under 2.0 this problem shouldn't be a problem depending on your
DPMI host (see below). So it seems unlikely that current technology
will be "fixed".
How can I tell go32 where to put the program (msh has a way to:
not swap
swap to extended
swap to disk
swap to expanded
I want djgpp to put the majority of the program in XMS, with a little
bit in conventional memory (to "own a psp").
How can I do this (this seems pretty important and fairly doable).
You can't. It's apparently *not* "fairly doable" or (1) DJ would have
done it already (2) the other DOS extenders would do it (3) DPMI hosts
would do it (only a few do, apparently.) Anyway, GO32 swaps the
program out, but not itself. GO32 itself is not reentrant, nor is DOS
(presumaby the reason for keeping all those buffers around is so that
GO32 or the other protected mode managers can figure out what goes
where when everything gets swapped back in).
Possible workarounds:
(1) Switch to Linux or *BSD. (I seem to recall that you [Marty] came
the opposite direction for some reason, so this probably isn't real
appealing :-)
OR
(1) Buy DESQview or DESQview/X.
(2) Edit your recursive makefiles to use the "run it in a new
process" command (I think that's called "run" surprisingly enough.)
OR
(1) Search out one of the public domain programs which do this kind
of thing for you. They are not very general and require lots of
tweaking and probably just plain don't work with protected mode
programs, but good luck to you.
OR
(1) Ask DJ about the DJGPP 2.0 ALPHA distribution and get it. (DJ
told me that this would probably be feasible; he also told me that I
should do it 'cause he didn't have time at the moment.... He's
working on 2.0 in general. Sorry, I forget where the 2.0 ALPHA
distribution is, probably omnigate.clarkson.edu or cygnus.com.) 'Tis
an ALPHA distribution last I heard, it is incomplete and not suitable
for general develpoment, but it was possible to build make and GCC
with it as I recall. (You don't need to rebuild the compilers
themselves, they're the leaves of the process tree and don't get
invoked recursively. That's the secret to this, you just rebuild make
and GCC to make themselves small.) (2) Mess with it until it does
what you want.
OR
(1) Wait until somebody else has done that or the public release of
2.0 occurs and get it.
The DJGPP 2.0 solution is going to depend on your DPMI host which will
be required for DJGPP 2.0. There will probably be a DPMI 1.0 host
distributed with DJGPP eventually, but for the moment you'll probably
have to depend on one of the proprietary ones (QEMM's QDPMI, 386MAX,
etc.) I believe that someone (DJ? Charles Sandmann?) wrote that some
DPMI hosts require about 100KB of buffers and housekeeping *per
process* in real memory, in which case it's small improvement over
GO32. Others require much less. So be careful about which DPMI host
you use.
marty
+-----------------------------------------------------------------------+
| Stephen Turnbull |
| University of Tsukuba, Institute of Socio-Economic Planning |
| Tennodai 1-chome 1--1, Tsukuba, Ibaraki 305 JAPAN |
| Phone: +81 (298) 53-5091 Fax: +81 (298) 55-3849 |
| Email: turnbull AT shako DOT sk DOT tsukuba DOT ac DOT jp |
| |
| Founder and CEO, Skinny Boy Associates |
| Mechanism Design and Social Engineering |
| REAL solutions to REAL problems of REAL people in REAL time! REALLY. |
| Phone: +81 (298) 56-2703 |
+-----------------------------------------------------------------------+
- Raw text -