[comp.arch] Exception handling

fxtv@litp.UUCP (04/08/87)

I am trying tu use the exception mechanism available in VAX11 assembly 
language under 4.3BSD. My first attempt is not really successful...
I have read both "the Intrduction to VAX-11 Architecture
and assembly language" and "the VAx-11 Architecture Reference Manual".
In fact I never have the impression that my handlers are taken into account.
Is is possible to get any informations about this problem?

Thanks in advance.

[fxtv]


UUCP: ..!decvax!mcvax!inria!litp!fxtv

ok@quintus (09/14/88)

There is a dispute going on in comp.lang.fortran which comp.arch readers
may be able to contribute to.

I have been arguing that some sort of limited exception handling facility
should be _standard_ in Fortran.  (Several Fortran processors already
have some way of suppressing/counting/handling exceptions.  The trouble
is that they don't have the _same_ way.)  What I have in mind is something
vaguely ADA-ish, except that while a processor would be allowed to refuse
to handle an exception, it would be obliged to provide this information at
run-time.  I have in mind something like

	HANDLE (exception name string expression) IN
	    statements to be protected
	CANNOT HANDLE
	    statements to use if protection unavailable
	HANDLER
	    statements to recover
	END HANDLE	

Note that *precise* exceptions are not required.  There has to be some
way of ensuring that any pending exceptions are delivered when the end
of the protected block is reached.  In fact, no exception support is
required, as a Fortran processor would be entitled to generate code for
the "CANNOT HANDLE" case alone.

J Giles of Los Alamos has been arguing that such a feature would not be
"universally portable" and would impose a significant performance burden
on some machines.

I don't see the problem, and suspect that this is because the architectures
I know about are supermicros and older mainframes, not supercomputers or
signal-processors.

On which machines would it be excessively expensive
(a) to detect exceptions, or
(b) to report them to user code rather than killing the process?

Does anyone know of machines which have an ADA implementation where
numeric_error exceptions aren't/can't be handled?