From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.org!not-for-mail From: Neil Jerram Newsgroups: gmane.lisp.guile.devel Subject: Re: [PATCH] Fix continuation problems on IA64. Date: Thu, 08 May 2008 22:29:00 +0100 Message-ID: <8763tomqn7.fsf@ossau.uklinux.net> References: <87k5i5d6ei.fsf@ossau.uklinux.net> <87y76ksglg.fsf@gnu.org> NNTP-Posting-Host: lo.gmane.org Mime-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Transfer-Encoding: quoted-printable X-Trace: ger.gmane.org 1210282469 11912 80.91.229.12 (8 May 2008 21:34:29 GMT) X-Complaints-To: usenet@ger.gmane.org NNTP-Posting-Date: Thu, 8 May 2008 21:34:29 +0000 (UTC) Cc: guile-devel@gnu.org To: ludo@gnu.org (Ludovic =?iso-8859-1?Q?Court=E8s?=) Original-X-From: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Thu May 08 23:35:04 2008 Return-path: Envelope-to: guile-devel@m.gmane.org Original-Received: from lists.gnu.org ([199.232.76.165]) by lo.gmane.org with esmtp (Exim 4.50) id 1JuDj7-0007uq-Tv for guile-devel@m.gmane.org; Thu, 08 May 2008 23:32:34 +0200 Original-Received: from localhost ([127.0.0.1]:58405 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JuDiP-0006tS-Nt for guile-devel@m.gmane.org; Thu, 08 May 2008 17:31:49 -0400 Original-Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JuDft-0005JA-JQ for guile-devel@gnu.org; Thu, 08 May 2008 17:29:13 -0400 Original-Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JuDft-0005Ic-1f for guile-devel@gnu.org; Thu, 08 May 2008 17:29:13 -0400 Original-Received: from [199.232.76.173] (port=58237 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JuDfs-0005IV-P5 for guile-devel@gnu.org; Thu, 08 May 2008 17:29:12 -0400 Original-Received: from mail3.uklinux.net ([80.84.72.33]:47752) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JuDfi-0002O3-5P; Thu, 08 May 2008 17:29:02 -0400 Original-Received: from arudy (host81-129-100-189.range81-129.btcentralplus.com [81.129.100.189]) by mail3.uklinux.net (Postfix) with ESMTP id 638DF1F6622; Thu, 8 May 2008 22:29:01 +0100 (BST) Original-Received: from laruns (laruns [192.168.0.10]) by arudy (Postfix) with ESMTP id D02B83800D; Thu, 8 May 2008 22:29:00 +0100 (BST) In-Reply-To: <87y76ksglg.fsf@gnu.org> (Ludovic =?iso-8859-1?Q?Court=E8s's?= message of "Thu, 08 May 2008 22:09:31 +0200") User-Agent: Gnus/5.110006 (No Gnus v0.6) Emacs/21.4 (gnu/linux) X-detected-kernel: by monty-python.gnu.org: Linux 2.4-2.6 X-BeenThere: guile-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "Developers list for Guile, the GNU extensibility library" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Original-Sender: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Errors-To: guile-devel-bounces+guile-devel=m.gmane.org@gnu.org Xref: news.gmane.org gmane.lisp.guile.devel:7222 Archived-At: ludo@gnu.org (Ludovic Court=E8s) writes: > Hi Neil, > > Neil Jerram writes: > >> FYI, I finally fixed some problems on IA64 that have been outstanding >> for ages (at least about 2 years). Following is a big spiel about it, >> and the actual patch (against 1.8.4 release). If anyone has any >> comments or questions, please let me know. (And if not, I'll commit >> in a couple of days' time.) > > Thanks a lot for fixing this! It just missed 1.8.5 my a few hours (my > fault). Huh? How can that have been your fault? > Hopefully distributions will apply the patch by themselves > until we release a new version... Yes, I'll forward it to Debian (who reported it) at least, once it's committed. > Thanks also for the nice explanation. I must confess I didn't grasp > everything (especially since I'm not familiar with IA64 and its RBS > thing), but I'm confident you did the right thing. ;-) > >> + * threads.h (scm_i_thread): New IA64 fields: >> + register_backing_store_base and pending_rbs_continuation. > > This breaks ABI compatibility on IA64, but if Guile wasn't usable on > IA64 (was it?) that's probably not a problem. Good point, and I don't think it was completely unusable before, so this could be an issue. The problems were sufficient to break Lilypond on IA64, but many simpler programs could have been fine. Who is ABI compatibility an issue for? If it's only the distros, we're probably OK, as I believe they won't have promoted something that failed "make check". For people building their own Guile libs, can we cover this by a sentence in the next release notes, to say that programs using scm_i_thread should be recompiled? >> + void scm_ia64_longjmp (jmp_buf *, int); > > Add `SCM_API' at the beginning and `SCM_NORETURN' at the end. The > latter should fix this: > >> +#ifdef __ia64__ >> + /* On IA64, we #define longjmp as setcontext, and GCC appears not to >> + know that that doesn't return. */ >> + return SCM_UNSPECIFIED; >> +#endif I'm happy with adding SCM_NORETURN; but why the SCM_API? I don't think a libguile application should call scm_ia64_longjmp itself, so do not intend to document it. Thanks for your comments! Regards, Neil