From mboxrd@z Thu Jan 1 00:00:00 1970 Message-ID: <49CBABE9.6080107@gmail.com> Date: Thu, 26 Mar 2009 12:23:05 -0400 From: "Joel C. Salomon" User-Agent: Thunderbird 2.0.0.21 (Windows/20090302) MIME-Version: 1.0 To: Fans of the OS Plan 9 from Bell Labs <9fans@9fans.net> References: <361d2c0d16ae44890a1a2515f261c800@terzarima.net> <24177E28-F531-46C4-8354-2179A4DBB05F@telus.net> <49CA96A6.7060201@orcasystems.com> <16E537CE-3544-46E7-A969-58CA54C35D87@telus.net> <9ab217670903251620n5511aa2ej14b22e725adf6eec@mail.gmail.com> In-Reply-To: <9ab217670903251620n5511aa2ej14b22e725adf6eec@mail.gmail.com> Content-Type: multipart/signed; micalg=pgp-sha1; protocol="application/pgp-signature"; boundary="------------enig90238B9E70049B8C8664DAF6" Subject: [9fans] LLVM & Exceptions (Was re. request for more GSoC project suggestions) Topicbox-Message-UUID: c939b09c-ead4-11e9-9d60-3106f5b1d025 This is an OpenPGP/MIME signed message (RFC 2440 and 3156) --------------enig90238B9E70049B8C8664DAF6 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Devon H. O'Dell wrote: > Another student I spoke to on IRC spoke of the possibility of > bootstrapping LLVM for Plan 9 on Linux and getting it to run natively. > That would give us a whole bunch of different compilers. Something to watch out for with such a project: The LLVM back-end for Windows does not support C++ (nicely) because of issues with exception handling; Windows provides a mechanism for stack unwinding=E2=80=94especially across DLL boundaries=E2=80=94that neither G= CC nor LLVM handle well. Porting LLVM to Plan 9 may well have some of the same troubles. Those who have dealt with the GCC port can answer this: What does g++ do on Plan 9? Does it add DWARF debugging tables to the executable so that the stack can be unwound? Does it play games with setjmp/longjmp?=20 Does it even work at all? Otherwise, a large part of an LLVM project would be a port of some exception mechanism. Does plan9port=E2=80=99s mach-stack(3) have any precedent in Plan 9? and = is that the correct basis for exception-like stack unwinding? (I.e., a program unwinding its own stack, rather than a debugger tracing the stack back.) =E2=80=94Joel Salomon P.s.: I am not raising the question of whether exception handling via stack unwinding is a good idea=E2=80=94which has been done to death on th= is list; see the =E2=80=9CSame Functions Everywhere=E2=80=9D thread from 200= 3 at and message 56 & responses at =E2=80=94just asking how to implement = it under Plan 9 using the existing tools as far as possible. --------------enig90238B9E70049B8C8664DAF6 Content-Type: application/pgp-signature; name="signature.asc" Content-Description: OpenPGP digital signature Content-Disposition: attachment; filename="signature.asc" -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.9 (MingW32) iEYEARECAAYFAknLq/UACgkQKmztJYxspm5sKwCgh4Cp1oMYPUASjX9l++3DOoSO t38An2G4CvKoh4vGuEzTeAFAWtiF29rP =LeaX -----END PGP SIGNATURE----- --------------enig90238B9E70049B8C8664DAF6--