HP3000-L Archives

November 1995, Week 3

HP3000-L@RAVEN.UTC.EDU

Options: Use Monospaced Font
Show Text Part by Default
Show All Mail Headers

Message: [<< First] [< Prev] [Next >] [Last >>]
Topic: [<< First] [< Prev] [Next >] [Last >>]
Author: [<< First] [< Prev] [Next >] [Last >>]

Print Reply
Subject:
From:
David Greer <[log in to unmask]>
Reply To:
Date:
Tue, 14 Nov 1995 09:42:00 PST
Content-Type:
text/plain
Parts/Attachments:
text/plain (49 lines)
Various people commented on HP's getheap and rtnheap intrinsics.
However, no one commented on an undocumented feature of the
native-mode p_getheap and p_rtnheap.
 
 
Warning!  Warning!  Warning!  Warning!  Warning!  Warning!  Warning!
 
 
If you do NOT have a Pascal/iX outer-block for your program, p_rtnheap
will *not* return all data to the heap.  You must call an undocumented
Pascal/iX run-time routine in order to enable any sort of heap reuse.
It took us about six or seven years of native-mode heap use before we
discovered this problem.  In our programs, we now always invoke a
routine that calls p'init'heap and p'set'compaction:
 
   procedure p'init'heap;
      option native, nocc, uppercase, external;
 
   !  Note P_SET_COMPACTION is "extensible", so we pass the
   !  number of parameters as the first parm in R26.
 
   procedure p'set'compaction(no'parms,compact'value);
      value   no'parms, compact'value;
      double  no'parms, compact'value;
      option native, nocc, uppercase, external;
 
 
   p'init'heap;
   p'set'compaction(1,1);
 
 
Note:  I believe that you *never* want to call these two routines
       more than once, although I don't know what will happen if you
       do (I was told to "only call once").  I also think that you
       must call these routines before calling p_getheap or p_rtnheap.
 
I don't know all possible values for "compact'value", but I suspect
that they are related to the Pascl/iX compiler options for dealing
with heap compaction.  The value "1" seems to work fine for us.
 
Cheers,
 
David    <[log in to unmask]>
 
 
p.s.  I've been away the last four days and I'm only now catching up
      on my HP3000-L digests.  If someone else pointed this out on
      Fri, Sat, Sun, or Mon, sorry.  /djg

ATOM RSS1 RSS2