From: ceriel Date: Mon, 11 Apr 1988 10:29:59 +0000 (+0000) Subject: adapted to new semantics of the EHEAP error: no longer fatal X-Git-Tag: release-5-5~3467 X-Git-Url: https://git.ndcode.org/public/gitweb.cgi?a=commitdiff_plain;h=b2275303a27be6e88216d85254cff840797f8a16;p=ack.git adapted to new semantics of the EHEAP error: no longer fatal --- diff --git a/doc/em/dspace.nr b/doc/em/dspace.nr index 4fa5447d7..a610a20c2 100644 --- a/doc/em/dspace.nr +++ b/doc/em/dspace.nr @@ -357,9 +357,9 @@ If it is smaller, then the heap shrinks. HP may never point below its original value. All words between the current HP and the original HP are allocated to the heap. -The heap may not grow into a part of memory that is already allocated -for the stack. +The heap may not grow into a part of memory that is already allocated. When this is attempted, the STR instruction will cause a trap to occur. +In this case, HP retains its old value. .P The only way to address the heap is indirectly. Whenever an object is allocated by increasing HP, diff --git a/doc/em/em.i b/doc/em/em.i index fdef57dbf..a7a70f72e 100644 --- a/doc/em/em.i +++ b/doc/em/em.i @@ -205,7 +205,8 @@ begin if (a0) then trap(ESTACK); lb:=a end; procedure newhp(a:adr); begin if (a>sp) or (a>maxdata+1) or (a mod wsize<>0) - then trap(EHEAP); hp:=a + then trap(EHEAP) + else hp:=a end; function argc(a:double):sword; diff --git a/doc/em/int/em.p b/doc/em/int/em.p index f26402a36..2d0bb2d6e 100644 --- a/doc/em/int/em.p +++ b/doc/em/int/em.p @@ -245,7 +245,8 @@ begin if (a0) then trap(ESTACK); lb:=a end; procedure newhp(a:adr); begin if (a>sp) or (a>maxdata+1) or (a mod wsize<>0) - then trap(EHEAP); hp:=a + then trap(EHEAP) + else hp:=a end; function argc(a:double):sword; diff --git a/doc/em/traps.nr b/doc/em/traps.nr index b6d412613..c44c4b718 100644 --- a/doc/em/traps.nr +++ b/doc/em/traps.nr @@ -96,7 +96,7 @@ n l l. 9@EFUND@Undefined float 10@ECONV@Conversion error 16*@ESTACK@Stack overflow -17*@EHEAP@Heap overflow +17@EHEAP@Heap overflow 18*@EILLINS@Illegal instruction 19*@EODDZ@Illegal size argument 20*@ECASE@Case error