Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP Path: utzoo!mnetor!uunet!husc6!necntc!ima!haddock!karl From: karl@haddock.ISC.COM (Karl Heuer) Newsgroups: comp.lang.c Subject: setjmp, longjmp, goto Message-ID: <990@haddock.ISC.COM> Date: Fri, 21-Aug-87 18:34:16 EDT Article-I.D.: haddock.990 Posted: Fri Aug 21 18:34:16 1987 Date-Received: Sun, 23-Aug-87 06:06:41 EDT References: <2196@xanth.UUCP> Reply-To: karl@haddock.ima.isc.com (Karl Heuer) Organization: Interactive Systems, Boston Lines: 13 Summary: If it's a builtin, maybe it should look the part? In article <2196@xanth.UUCP> kent@xanth.UUCP (Kent Paul Dolan) writes: >[Symbolics machines require that setjmp be a builtin] There's an interesting connection between this and my earlier ramblings about label variables and pointers. If labels were real objects (with declarations, etc.), perhaps "long label" could be a variant that includes the stack info for non-local gotos. Then "jmp_buf" becomes "long label", "if (setjmp(j))" becomes "come_from = 0; j: if (come_from)", and "longjmp(j, x)" becomes "come_from = x; goto j". Naaaah. (Maybe if I were designing a new language from scratch...) Karl W. Z. Heuer (ima!haddock!karl or karl@haddock.isc.com), The Walking Lint