Re: Compiler internals question

From: Xavier Leroy (Xavier.Leroy@inria.fr)
Date: Sat Jul 04 1998 - 14:47:31 MET DST


Date: Sat, 4 Jul 1998 14:47:31 +0200
From: Xavier Leroy <Xavier.Leroy@inria.fr>
To: "Michael Sperber [Mr. Preprocessor]" <sperber@informatik.uni-tuebingen.de>,
Subject: Re: Compiler internals question
In-Reply-To: <y9lbtr8lji5.fsf@brabantio.informatik.uni-tuebingen.de>; from Michael Sperber [Mr. Preprocessor] on Thu, Jul 02, 1998 at 10:55:30AM +0200

> (catch
> (let (match/51 (apply (global f/49g) 5))
> (catch
> (switch match/51
> case tag 1:
> (let (match/52 (field 0 match/51) match/53 (field 1 match/51)) 17))
> with exit))
> with (raise (makeblock 0 (global Match_failure/12g) [0: "" 0 28])))
>
> Does the inner "catch" serve any purpose or is it redundant?

It is redundant. A latter pass (the translation from Lambda to
bytecode) will remove it by applying the equivalence (catch e with exit) == e.

- Xavier Leroy



This archive was generated by hypermail 2b29 : Sun Jan 02 2000 - 11:58:15 MET