guile-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: There is no returning


From: Bruce Korb
Subject: Re: There is no returning
Date: Sat, 16 Nov 2013 09:16:01 -0800
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:17.0) Gecko/20130922 Icedove/17.0.9

On 11/14/13 16:46, Paul Eggert wrote:
Yes, that sounds right.  If user code employs SCM_NORETURN in that position
and you therefore you can't change SCM_NORETURN to mean _Noreturn, it might be 
simpler
to keep SCM_NORETURN the way it is for backwards compatibility.  But you
can change all its uses in Guile to be _Noreturn at the start of the 
declaration,
where _Noreturn is defined the Gnulib way.

Actually, internally to Guile I do not care in the slightest what gets used.

The problem I face is that the Guile headers were written with the presumption
that the token "noreturn" is not #defined to something else.  I seriously doubt
there are a lot of developers out there writing Guile call out functions with
the SCM_NORETURN attribute, so fretting a lot about it is unlikely to be
especially useful.  What is crucial is fixing the headers so they
do not break.  That's been done.

I do think it is also important to know that stable distributions do not
jump on the next major release until it has proven to be stable.  And,
yes, often times current releases of other tools get built for "stable"
platforms.  That means my current stuff needs to build against the 1.8.x
releases of Guile.  In fact, it gets built against 1.6.x releases of Guile.
That's why I have hundreds of lines of Guile compatibility cruft -- just
to cope with changes.

Attached is a shell script that I think I can distribute and forget about.
My hope is that I can distribute the thing for the next decade while
the "__attribute__ ((__noreturn__))" variation propagates everywhere.
It gets invoked from the Makefile.am thus:

diff --git a/autoopts/Makefile.am b/autoopts/Makefile.am
index 3f2f3ad..137ec51 100644
--- a/autoopts/Makefile.am
+++ b/autoopts/Makefile.am
@@ -164,4 +164,10 @@ install-data-hook:

 .NOTPARALLEL:

+if GL_GENERATE_STDNORETURN_H
+$(STDNORETURN_H) : libguile/__scm.h
+libguile/__scm.h :
+       $(SHELL) $(srcdir)/fix-guile.sh $(LIBGUILE_CFLAGS)
+endif
+

Attachment: fix-guile.sh
Description: application/shellscript


reply via email to

[Prev in Thread] Current Thread [Next in Thread]