From: Taahir Ahmed <ahmed.taahir@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: guile-devel@gnu.org
Subject: Re: Exception-safety for C++ code integrated with Guile.
Date: Tue, 24 Feb 2015 13:21:48 -0600 [thread overview]
Message-ID: <4194214.B3z6dDOsXA@basis> (raw)
In-Reply-To: <83bnkj6t28.fsf@gnu.org>
[-- Attachment #1: Type: text/plain, Size: 1725 bytes --]
> mingw.org's MinGW uses DWARF exception handling. Perhaps you are
> thinking of MinGW64, which (AFAIK) indeed uses eh by default, but can
> be configured to use DWARF.
I was under the impression that MinGW only used setjump/longjump exception
handling, with plans to move to Windows SEH. Either way, it's neither here
nor there.
> As for libunwind, are you sure it supports enough platforms to be a
> useful alternative? AFAIK, the last official release supports only
> IA-64, and even the current development version in git repo basically
> supports GNU/Linux and almost nothing else (2 FreeBSD targets and 1 on
> HP-UX).
The documentation of the last official release (v1.1, in 2012) only mentions
ia64, but it appears to actually support the same list of platforms as the
current version.
From looking at the libunwind source, the only os-dependent code is a single
function for looking through an elf image. The rest of the code is written
once for each architecture (more specifically, once for each
architecture/calling convention tuple).
What are the platforms that Guile supports? (I can't find a comprehensive list
anywhere). In _scm.h, I can see special casing of sj/lj for vms, cray(!!),
and ia64. There's no need to change the behavior for vms and cray. The ia64
special casing is simply to force all registers to be saved, which is easy to
handle. It seems reasonable that all other cases will be covered by libunwind
(or at least, libunwind with some small modifications).
Of course, if testing uncovers an os/arch tuple that doesn't work, one can
simply fall back to the standard system sj/lj, and not having C++ cleanup
behavior on those platforms.
[-- Attachment #2: This is a digitally signed message part. --]
[-- Type: application/pgp-signature, Size: 473 bytes --]
next prev parent reply other threads:[~2015-02-24 19:21 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-23 21:59 Exception-safety for C++ code integrated with Guile Taahir Ahmed
2015-02-24 18:52 ` Eli Zaretskii
2015-02-24 19:21 ` Taahir Ahmed [this message]
2015-02-24 19:36 ` Eli Zaretskii
2015-02-24 19:59 ` Taahir Ahmed
2015-03-10 21:15 ` Andy Wingo
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://www.gnu.org/software/guile/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4194214.B3z6dDOsXA@basis \
--to=ahmed.taahir@gmail.com \
--cc=eliz@gnu.org \
--cc=guile-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).