Re: 2.2.0 release plan
> On Mar 14, 2017, at 5:35 PM, Matt Wettewrote: > >> >> On Mar 14, 2017, at 8:50 AM, Andy Wingo wrote: >> >> On Tue 14 Mar 2017 16:25, Greg Troxel writes: >> >>> Andy Wingo writes: >>> However! Even though the code says 2.2.0 and the tag says 2.2.0, the release is not until Thursday. I will not upload the tag yet. >>> >>> I have just barely caught up with 2.0.x in pkgsrc, and haven't gotten to >>> testing 2.1.x yet. I wonder how many platforms 2.1.x has been tested >>> on, and really I mean "has it been tested on other than GNU/Linux". >> >> Things are in the early days, you are right. GNU/Linux and macOS have >> been tested. Cygwin builds and works though it has some test errors; we >> are working on it. I don't know about mingw yet. I think there might >> be some errors on the other BSDs but I don't know yet. > > Just got my desktop to extra-boot FreeBSD. I’m taking a shot at that target > (amd64). Status: The (g)make is grinding away, now building ice-9/psyntax-pp.go, going slow ... Notes: To configure, besides the mentioned items (e.g., libffi), must "pkg install" * pkgconf * gmake * boehm-gc-threaded Must use “gmake”, “make” breaks on meta/Makefile The first gmake produced "not found" link errors for GC_unregister_my_thread GC_get_suspend_signal GC_allow_register_threads GC_register_my_thread So I reconfigured using BDW_GC_LIBS=-L/usr/local/lib -lgc-threaded ./configure --prefix=/usr/local Now the HACK: ran into issue w/ weak-set.c (?), so I edited config.h and changed /* #undef HAVE_GC_MOVE_DISAPPEARING_LINK */ to #define HAVE_GC_MOVE_DISAPPEARING_LINK 1 I will report more later, as time permits. Matt
Re: 2.2.0 release plan
> On Mar 14, 2017, at 8:50 AM, Andy Wingowrote: > > On Tue 14 Mar 2017 16:25, Greg Troxel writes: > >> Andy Wingo writes: >> >>> However! Even though the code says 2.2.0 and the tag says 2.2.0, the >>> release is not until Thursday. I will not upload the tag yet. >> >> I have just barely caught up with 2.0.x in pkgsrc, and haven't gotten to >> testing 2.1.x yet. I wonder how many platforms 2.1.x has been tested >> on, and really I mean "has it been tested on other than GNU/Linux". > > Things are in the early days, you are right. GNU/Linux and macOS have > been tested. Cygwin builds and works though it has some test errors; we > are working on it. I don't know about mingw yet. I think there might > be some errors on the other BSDs but I don't know yet. Just got my desktop to extra-boot FreeBSD. I’m taking a shot at that target (amd64).
Re: [PATCH] Add to the 2.1.x branch GUILE_SITE_CCACHE_DIR and GUILE_EXTENSION_DIR Autoconf macros along with needed siteccachdir entry in pkgconfig file
I missed adding an entry for meta/guile-2.2.pc.in in the commit log. Fixed now. Freja Nordsiek On Tue, Mar 14, 2017 at 5:10 PM, Freja Nordsiekwrote: > OK, got it on the commit log. Took some work to figure out how to do a > multiline one, but got it now. > > Fixed the long lines. > > Removed the --print-errors option. Didn't catch that. > > Thank you for all the help. Yeah, this sort of nitpicking makes it a > lot easier for people in the future to work on things. > > > Freja Nordsiek > > > > > On Tue, Mar 14, 2017 at 4:56 PM, Andy Wingo wrote: >> Heya :) >> >> On Tue 14 Mar 2017 16:31, Freja Nordsiek writes: >> >>> From 41498549ac22ea50e497887b3a1e002985bb6f8f Mon Sep 17 00:00:00 2001 >>> From: Freja Nordsiek >>> Date: Tue, 14 Mar 2017 16:28:45 +0100 >>> Subject: [PATCH] GUILE_SITE_DIR: Find site directories for compiled files. >>> >> >> Here in the commit log you need entries for the files you change and the >> functions you change in them. See >> 036cc149e6e52722f16ef25f4203e82abae9bc79 for an example. I know it's a >> bit of a drag but it's how it is. (In Magit, if you use that, you can >> press C in a diff to make a template in the log.) >> >>> -# GUILE_SITE_DIR -- find path to Guile "site" directory >>> +# GUILE_SITE_DIR -- find path to Guile site directories >>> # >>> # Usage: GUILE_SITE_DIR >>> # >>> -# This looks for Guile's "site" directory, usually something like >>> -# PREFIX/share/guile/site, and sets var @var{GUILE_SITE} to the path. >>> -# Note that the var name is different from the macro name. >>> +# This looks for Guile's "site" directories. The variable >>> @var{GUILE_SITE} will >>> +# be set to Guile's "site" directory for Scheme source files (usually >>> something like >>> +# PREFIX/share/guile/site). @var{GUILE_SITE_CCACHE} will be set to the >>> directory >>> +# for compiled Scheme files also known as @code{.go} files >>> +# (usually something like >>> PREFIX/lib/guile/@var{GUILE_EFFECTIVE_VERSION}/site-ccache). >>> +# @var{GUILE_EXTENSION} will be set to the directory for compiled C >>> extensions >>> +# (usually something like # >>> PREFIX/lib/guile/@var{GUILE_EFFECTIVE_VERSION}/extensions). >>> +# The latter two are set to blank if the particular version of Guile does >>> not support >>> +# them. Note that this macro will run the macros @code{GUILE_PKG} and >>> @code{GUILE_PROGS} >>> +# if they have not already been run. >> >> Please limit lines to < 80 characters. If you use emacs, you can fix >> with M-q, provided your fill-column is set appropriately. >> >>>AC_SUBST(GUILE_SITE) >>> + AC_MSG_CHECKING([for Guile site-ccache directory using pkgconfig]) >>> + GUILE_SITE_CCACHE=`$PKG_CONFIG --print-errors --variable=siteccachedir >>> guile-$GUILE_EFFECTIVE_VERSION` >> >> Is --print-errors the right thing here? I guess this causes some text >> to spew on the console for 2.0. Probably not the right thing if we're >> going to fall back. >> >> Otherwise good. Apologies for the nit-picking; I'm doing it now just so >> that things are fluid in the future :) >> >> Andy From 09e2d1075a7c48e408a5ddaf8b7bf4578b455aa9 Mon Sep 17 00:00:00 2001 From: Freja Nordsiek Date: Tue, 14 Mar 2017 17:05:09 +0100 Subject: [PATCH] GUILE_SITE_DIR: updated to find compiled site directories * meta/guile.m4: GUILE_SITE_DIR updated to find compiled site directories * meta/guile-2.2.pc.in: added entry for site-ccache directory --- meta/guile-2.2.pc.in | 1 + meta/guile.m4| 44 ++-- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/meta/guile-2.2.pc.in b/meta/guile-2.2.pc.in index c8f485b..c6d12b5 100644 --- a/meta/guile-2.2.pc.in +++ b/meta/guile-2.2.pc.in @@ -10,6 +10,7 @@ pkgincludedir=@includedir@/guile sitedir=@sitedir@ extensiondir=@libdir@/guile/@GUILE_EFFECTIVE_VERSION@/extensions +siteccachedir=@libdir@/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache libguileinterface=@LIBGUILE_INTERFACE@ # Actual name of the 'guile' and 'guild' programs. This is diff --git a/meta/guile.m4 b/meta/guile.m4 index b0ef9be..23c2c63 100644 --- a/meta/guile.m4 +++ b/meta/guile.m4 @@ -25,7 +25,7 @@ ## GUILE_PKG -- find Guile development files ## GUILE_PROGS -- set paths to Guile interpreter, config and tool programs ## GUILE_FLAGS -- set flags for compiling and linking with Guile -## GUILE_SITE_DIR -- find path to Guile "site" directory +## GUILE_SITE_DIR -- find path to Guile "site" directories ## GUILE_CHECK -- evaluate Guile Scheme code and capture the return value ## GUILE_MODULE_CHECK -- check feature of a Guile Scheme module ## GUILE_MODULE_AVAILABLE -- check availability of a Guile Scheme module @@ -154,18 +154,28 @@ AC_DEFUN([GUILE_FLAGS], AC_SUBST([GUILE_LTLIBS]) ]) -# GUILE_SITE_DIR -- find path to Guile "site" directory +# GUILE_SITE_DIR -- find path to Guile site directories # # Usage: GUILE_SITE_DIR
Re: guile 2.1.7 skips while condition
Andy Wingo writes: > On Mon 13 Mar 2017 18:09, Arne Babenhauserheidewrites: > >> ERROR: In procedure string: >> ERROR: In procedure string: Wrong type (expecting character): # > > Fixed, I think. Thanks for the report. That’s awesome! Thank you! Best wishes, Arne PS: I did not test the fix, yet.
Re: [PATCH] Add to the 2.1.x branch GUILE_SITE_CCACHE_DIR and GUILE_EXTENSION_DIR Autoconf macros along with needed siteccachdir entry in pkgconfig file
OK, got it on the commit log. Took some work to figure out how to do a multiline one, but got it now. Fixed the long lines. Removed the --print-errors option. Didn't catch that. Thank you for all the help. Yeah, this sort of nitpicking makes it a lot easier for people in the future to work on things. Freja Nordsiek On Tue, Mar 14, 2017 at 4:56 PM, Andy Wingowrote: > Heya :) > > On Tue 14 Mar 2017 16:31, Freja Nordsiek writes: > >> From 41498549ac22ea50e497887b3a1e002985bb6f8f Mon Sep 17 00:00:00 2001 >> From: Freja Nordsiek >> Date: Tue, 14 Mar 2017 16:28:45 +0100 >> Subject: [PATCH] GUILE_SITE_DIR: Find site directories for compiled files. >> > > Here in the commit log you need entries for the files you change and the > functions you change in them. See > 036cc149e6e52722f16ef25f4203e82abae9bc79 for an example. I know it's a > bit of a drag but it's how it is. (In Magit, if you use that, you can > press C in a diff to make a template in the log.) > >> -# GUILE_SITE_DIR -- find path to Guile "site" directory >> +# GUILE_SITE_DIR -- find path to Guile site directories >> # >> # Usage: GUILE_SITE_DIR >> # >> -# This looks for Guile's "site" directory, usually something like >> -# PREFIX/share/guile/site, and sets var @var{GUILE_SITE} to the path. >> -# Note that the var name is different from the macro name. >> +# This looks for Guile's "site" directories. The variable @var{GUILE_SITE} >> will >> +# be set to Guile's "site" directory for Scheme source files (usually >> something like >> +# PREFIX/share/guile/site). @var{GUILE_SITE_CCACHE} will be set to the >> directory >> +# for compiled Scheme files also known as @code{.go} files >> +# (usually something like >> PREFIX/lib/guile/@var{GUILE_EFFECTIVE_VERSION}/site-ccache). >> +# @var{GUILE_EXTENSION} will be set to the directory for compiled C >> extensions >> +# (usually something like # >> PREFIX/lib/guile/@var{GUILE_EFFECTIVE_VERSION}/extensions). >> +# The latter two are set to blank if the particular version of Guile does >> not support >> +# them. Note that this macro will run the macros @code{GUILE_PKG} and >> @code{GUILE_PROGS} >> +# if they have not already been run. > > Please limit lines to < 80 characters. If you use emacs, you can fix > with M-q, provided your fill-column is set appropriately. > >>AC_SUBST(GUILE_SITE) >> + AC_MSG_CHECKING([for Guile site-ccache directory using pkgconfig]) >> + GUILE_SITE_CCACHE=`$PKG_CONFIG --print-errors --variable=siteccachedir >> guile-$GUILE_EFFECTIVE_VERSION` > > Is --print-errors the right thing here? I guess this causes some text > to spew on the console for 2.0. Probably not the right thing if we're > going to fall back. > > Otherwise good. Apologies for the nit-picking; I'm doing it now just so > that things are fluid in the future :) > > Andy From 438a8902f38b838eb407499aa0ed37669dc0b851 Mon Sep 17 00:00:00 2001 From: Freja Nordsiek Date: Tue, 14 Mar 2017 17:05:09 +0100 Subject: [PATCH] GUILE_SITE_DIR: updated to find compiled site directories * meta/guile.m4: GUILE_SITE_DIR updated to find compiled site directories --- meta/guile-2.2.pc.in | 1 + meta/guile.m4| 44 ++-- 2 files changed, 39 insertions(+), 6 deletions(-) diff --git a/meta/guile-2.2.pc.in b/meta/guile-2.2.pc.in index c8f485b..c6d12b5 100644 --- a/meta/guile-2.2.pc.in +++ b/meta/guile-2.2.pc.in @@ -10,6 +10,7 @@ pkgincludedir=@includedir@/guile sitedir=@sitedir@ extensiondir=@libdir@/guile/@GUILE_EFFECTIVE_VERSION@/extensions +siteccachedir=@libdir@/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache libguileinterface=@LIBGUILE_INTERFACE@ # Actual name of the 'guile' and 'guild' programs. This is diff --git a/meta/guile.m4 b/meta/guile.m4 index b0ef9be..23c2c63 100644 --- a/meta/guile.m4 +++ b/meta/guile.m4 @@ -25,7 +25,7 @@ ## GUILE_PKG -- find Guile development files ## GUILE_PROGS -- set paths to Guile interpreter, config and tool programs ## GUILE_FLAGS -- set flags for compiling and linking with Guile -## GUILE_SITE_DIR -- find path to Guile "site" directory +## GUILE_SITE_DIR -- find path to Guile "site" directories ## GUILE_CHECK -- evaluate Guile Scheme code and capture the return value ## GUILE_MODULE_CHECK -- check feature of a Guile Scheme module ## GUILE_MODULE_AVAILABLE -- check availability of a Guile Scheme module @@ -154,18 +154,28 @@ AC_DEFUN([GUILE_FLAGS], AC_SUBST([GUILE_LTLIBS]) ]) -# GUILE_SITE_DIR -- find path to Guile "site" directory +# GUILE_SITE_DIR -- find path to Guile site directories # # Usage: GUILE_SITE_DIR # -# This looks for Guile's "site" directory, usually something like -# PREFIX/share/guile/site, and sets var @var{GUILE_SITE} to the path. -# Note that the var name is different from the macro name. +# This looks for Guile's "site" directories. The variable @var{GUILE_SITE} will +# be set to Guile's "site" directory
Re: [PATCH] Add to the 2.1.x branch GUILE_SITE_CCACHE_DIR and GUILE_EXTENSION_DIR Autoconf macros along with needed siteccachdir entry in pkgconfig file
Heya :) On Tue 14 Mar 2017 16:31, Freja Nordsiekwrites: > From 41498549ac22ea50e497887b3a1e002985bb6f8f Mon Sep 17 00:00:00 2001 > From: Freja Nordsiek > Date: Tue, 14 Mar 2017 16:28:45 +0100 > Subject: [PATCH] GUILE_SITE_DIR: Find site directories for compiled files. > Here in the commit log you need entries for the files you change and the functions you change in them. See 036cc149e6e52722f16ef25f4203e82abae9bc79 for an example. I know it's a bit of a drag but it's how it is. (In Magit, if you use that, you can press C in a diff to make a template in the log.) > -# GUILE_SITE_DIR -- find path to Guile "site" directory > +# GUILE_SITE_DIR -- find path to Guile site directories > # > # Usage: GUILE_SITE_DIR > # > -# This looks for Guile's "site" directory, usually something like > -# PREFIX/share/guile/site, and sets var @var{GUILE_SITE} to the path. > -# Note that the var name is different from the macro name. > +# This looks for Guile's "site" directories. The variable @var{GUILE_SITE} > will > +# be set to Guile's "site" directory for Scheme source files (usually > something like > +# PREFIX/share/guile/site). @var{GUILE_SITE_CCACHE} will be set to the > directory > +# for compiled Scheme files also known as @code{.go} files > +# (usually something like > PREFIX/lib/guile/@var{GUILE_EFFECTIVE_VERSION}/site-ccache). > +# @var{GUILE_EXTENSION} will be set to the directory for compiled C > extensions > +# (usually something like # > PREFIX/lib/guile/@var{GUILE_EFFECTIVE_VERSION}/extensions). > +# The latter two are set to blank if the particular version of Guile does > not support > +# them. Note that this macro will run the macros @code{GUILE_PKG} and > @code{GUILE_PROGS} > +# if they have not already been run. Please limit lines to < 80 characters. If you use emacs, you can fix with M-q, provided your fill-column is set appropriately. >AC_SUBST(GUILE_SITE) > + AC_MSG_CHECKING([for Guile site-ccache directory using pkgconfig]) > + GUILE_SITE_CCACHE=`$PKG_CONFIG --print-errors --variable=siteccachedir > guile-$GUILE_EFFECTIVE_VERSION` Is --print-errors the right thing here? I guess this causes some text to spew on the console for 2.0. Probably not the right thing if we're going to fall back. Otherwise good. Apologies for the nit-picking; I'm doing it now just so that things are fluid in the future :) Andy
Re: 2.2.0 release plan
On Tue 14 Mar 2017 16:25, Greg Troxelwrites: > Andy Wingo writes: > >> However! Even though the code says 2.2.0 and the tag says 2.2.0, the >> release is not until Thursday. I will not upload the tag yet. > > I have just barely caught up with 2.0.x in pkgsrc, and haven't gotten to > testing 2.1.x yet. I wonder how many platforms 2.1.x has been tested > on, and really I mean "has it been tested on other than GNU/Linux". Things are in the early days, you are right. GNU/Linux and macOS have been tested. Cygwin builds and works though it has some test errors; we are working on it. I don't know about mingw yet. I think there might be some errors on the other BSDs but I don't know yet. > So if you think it's ready, I would suggest preparing a 2.2.0rc1, or > simply a new 2.1.x with the notion that aside from version numbers it's > an RC, and call for all people engaged in packaging to try to package it > as 2.2, and to give them a few weeks. I have done exactly that in the past weeks with 2.1.7 and 2.1.8 :) I think a 2.2.1 will follow very soon (within a month or so from 2.2.0, I would imagine), so any portability fixes will naturally be included there. That's about the same timeframe you are asking for, so all is well in that regard. Happy hacking, Andy
Re: Guile-2.2 - goops slot redefinition at subclass level
Andy Wingo writes: > On Mon 27 Feb 2017 01:09, David Pirottewrites: > >> 2- slot redefinition at subclass level >> >> See bug#20423 for a full description. > > I think the correct solution here is to implement the slot combination > protocol; see http://mop.lisp.se/dictionary.html#compute-slots. This > can be done in 2.2. It's all in Scheme now so hopefully it will be > easier to hack on. > > I do not have any time to devote to this area, however, and as it's > possible to implement this in the stable series and it's not a > regression, I don't think it's a release blocker. > > Andy Okay, it's good to know that you're open to this being implemented as a feature (and that there's a clear explaination of how to do it above). Maybe in the not too distant future I can take a crack at it, as it's something I'd love to have myself. - Chris
Re: [PATCH] Add to the 2.1.x branch GUILE_SITE_CCACHE_DIR and GUILE_EXTENSION_DIR Autoconf macros along with needed siteccachdir entry in pkgconfig file
I improved the commit log and the comments to make them better formatted and more terse. Does the commit log look better? I also made it so that pkgconfig is tried first for finding site-ccache and only if that fails will the interpreter be used (the messages say specifically which method they are using now). It is definitely better to have both methods in there. Freja Nordsiek On Tue, Mar 14, 2017 at 3:53 PM, Andy Wingowrote: > Hi :) > > Great patch, some comments. > > On Tue 14 Mar 2017 15:08, Freja Nordsiek writes: > >> From 90daf796c829f8e422a281d501f711138f21a334 Mon Sep 17 00:00:00 2001 >> From: Freja Nordsiek >> Date: Tue, 14 Mar 2017 15:04:38 +0100 >> Subject: [PATCH] Made GUILE_SITE_DIR Autoconf macro look for directories for >> compiled .go and C extensions in addition to the site directory for scheme >> files. > > Please adapt the commit log. (Just look at any other commit to see what > the standard is.) You might also be interested in "info standards". > >> -## GUILE_SITE_DIR -- find path to Guile "site" directory >> +## GUILE_SITE_DIR -- find path to Guile "site" directories for scheme, >> compiles GO files, and compiled C extensions > > Line too long. Probably just s/directories.*/directories./. > >> -# GUILE_SITE_DIR -- find path to Guile "site" directory >> +# GUILE_SITE_DIR -- find path to Guile site directories > >> -# This looks for Guile's "site" directory, usually something like >> -# PREFIX/share/guile/site, and sets var @var{GUILE_SITE} to the path. >> -# Note that the var name is different from the macro name. >> +# This looks for Guile's "site" directory for Scheme files (usually >> something like >> +# PREFIX/share/guile/site), "site-ccache" directory for compiled @code{.go} >> files >> +# (usually something like >> PREFIX/lib/guile/@var{GUILE_EFFECTIVE_VERSION}/site-ccache), >> +# and "extensions" directory for compiled C extensions (usually something >> like >> +# PREFIX/lib/guile/@var{GUILE_EFFECTIVE_VERSION}/extensions). The variables >> +# @var{GUILE_SITE}, @var{GUILE_SITE_CCACHE}, and @var{GUILE_EXTENSION} are >> set to these >> +# paths respectively. The latter two are set to blank if they are not >> found. Note that >> +# this macro will run the macros @code{GUILE_PKG} and @code{GUILE_PROGS} if >> they have >> +# not already been run. > > Can we make the text more terse? E.g. 'This looks for Guile's "site" > directories. The variable @var{GUILE_SITE} will be set to Guile's > "site" directory for Scheme source files (usually [...]). > @var{GUILE_SITE_CCACHE} will be set to the directory for compiled Scheme > files (usually [...])' and so on. Two spaces before periods please in > comments in Guile code. > >> -# The variable is marked for substitution, as by @code{AC_SUBST}. >> +# The variables are marked for substitution, as by @code{AC_SUBST}. >> # >> AC_DEFUN([GUILE_SITE_DIR], >> [AC_REQUIRE([GUILE_PKG]) >> + AC_REQUIRE([GUILE_PROGS]) > > I guess this is OK given that anyone installing Scheme files should > install .go files, and you need GUILE_PROGS to build .go files. > >> + AC_MSG_CHECKING([for Guile site-ccache directory]) >> + GUILE_SITE_CCACHE=`$GUILE -c "(display (if (defined? '%site-ccache-dir) >> (%site-ccache-dir) \"\"))"` > > You prefer this rather than first trying pkg-config? I would try > pkg-config first; but it doesn't really matter I guess :) > > Otherwise looking fine. Thanks! > > Andy From 41498549ac22ea50e497887b3a1e002985bb6f8f Mon Sep 17 00:00:00 2001 From: Freja Nordsiek Date: Tue, 14 Mar 2017 16:28:45 +0100 Subject: [PATCH] GUILE_SITE_DIR: Find site directories for compiled files. --- meta/guile-2.2.pc.in | 1 + meta/guile.m4| 42 -- 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/meta/guile-2.2.pc.in b/meta/guile-2.2.pc.in index c8f485b..c6d12b5 100644 --- a/meta/guile-2.2.pc.in +++ b/meta/guile-2.2.pc.in @@ -10,6 +10,7 @@ pkgincludedir=@includedir@/guile sitedir=@sitedir@ extensiondir=@libdir@/guile/@GUILE_EFFECTIVE_VERSION@/extensions +siteccachedir=@libdir@/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache libguileinterface=@LIBGUILE_INTERFACE@ # Actual name of the 'guile' and 'guild' programs. This is diff --git a/meta/guile.m4 b/meta/guile.m4 index b0ef9be..8617b52 100644 --- a/meta/guile.m4 +++ b/meta/guile.m4 @@ -25,7 +25,7 @@ ## GUILE_PKG -- find Guile development files ## GUILE_PROGS -- set paths to Guile interpreter, config and tool programs ## GUILE_FLAGS -- set flags for compiling and linking with Guile -## GUILE_SITE_DIR -- find path to Guile "site" directory +## GUILE_SITE_DIR -- find path to Guile "site" directories ## GUILE_CHECK -- evaluate Guile Scheme code and capture the return value ## GUILE_MODULE_CHECK -- check feature of a Guile Scheme module ## GUILE_MODULE_AVAILABLE -- check availability of a Guile Scheme module @@ -154,18 +154,26 @@
Re: 2.2.0 release plan
Andy Wingowrites: > However! Even though the code says 2.2.0 and the tag says 2.2.0, the > release is not until Thursday. I will not upload the tag yet. I have just barely caught up with 2.0.x in pkgsrc, and haven't gotten to testing 2.1.x yet. I wonder how many platforms 2.1.x has been tested on, and really I mean "has it been tested on other than GNU/Linux". So if you think it's ready, I would suggest preparing a 2.2.0rc1, or simply a new 2.1.x with the notion that aside from version numbers it's an RC, and call for all people engaged in packaging to try to package it as 2.2, and to give them a few weeks. The basic issue is that getting widespread testing relies on a bunch of people for whom hacking on guile is one little thing among many, and not their main Free Software focus. This is not about guile; I see this in a vast number of projects. signature.asc Description: PGP signature
Re: [PATCH] Add to the 2.1.x branch GUILE_SITE_CCACHE_DIR and GUILE_EXTENSION_DIR Autoconf macros along with needed siteccachdir entry in pkgconfig file
Hi :) Great patch, some comments. On Tue 14 Mar 2017 15:08, Freja Nordsiekwrites: > From 90daf796c829f8e422a281d501f711138f21a334 Mon Sep 17 00:00:00 2001 > From: Freja Nordsiek > Date: Tue, 14 Mar 2017 15:04:38 +0100 > Subject: [PATCH] Made GUILE_SITE_DIR Autoconf macro look for directories for > compiled .go and C extensions in addition to the site directory for scheme > files. Please adapt the commit log. (Just look at any other commit to see what the standard is.) You might also be interested in "info standards". > -## GUILE_SITE_DIR -- find path to Guile "site" directory > +## GUILE_SITE_DIR -- find path to Guile "site" directories for scheme, > compiles GO files, and compiled C extensions Line too long. Probably just s/directories.*/directories./. > -# GUILE_SITE_DIR -- find path to Guile "site" directory > +# GUILE_SITE_DIR -- find path to Guile site directories > -# This looks for Guile's "site" directory, usually something like > -# PREFIX/share/guile/site, and sets var @var{GUILE_SITE} to the path. > -# Note that the var name is different from the macro name. > +# This looks for Guile's "site" directory for Scheme files (usually > something like > +# PREFIX/share/guile/site), "site-ccache" directory for compiled @code{.go} > files > +# (usually something like > PREFIX/lib/guile/@var{GUILE_EFFECTIVE_VERSION}/site-ccache), > +# and "extensions" directory for compiled C extensions (usually something > like > +# PREFIX/lib/guile/@var{GUILE_EFFECTIVE_VERSION}/extensions). The variables > +# @var{GUILE_SITE}, @var{GUILE_SITE_CCACHE}, and @var{GUILE_EXTENSION} are > set to these > +# paths respectively. The latter two are set to blank if they are not found. > Note that > +# this macro will run the macros @code{GUILE_PKG} and @code{GUILE_PROGS} if > they have > +# not already been run. Can we make the text more terse? E.g. 'This looks for Guile's "site" directories. The variable @var{GUILE_SITE} will be set to Guile's "site" directory for Scheme source files (usually [...]). @var{GUILE_SITE_CCACHE} will be set to the directory for compiled Scheme files (usually [...])' and so on. Two spaces before periods please in comments in Guile code. > -# The variable is marked for substitution, as by @code{AC_SUBST}. > +# The variables are marked for substitution, as by @code{AC_SUBST}. > # > AC_DEFUN([GUILE_SITE_DIR], > [AC_REQUIRE([GUILE_PKG]) > + AC_REQUIRE([GUILE_PROGS]) I guess this is OK given that anyone installing Scheme files should install .go files, and you need GUILE_PROGS to build .go files. > + AC_MSG_CHECKING([for Guile site-ccache directory]) > + GUILE_SITE_CCACHE=`$GUILE -c "(display (if (defined? '%site-ccache-dir) > (%site-ccache-dir) \"\"))"` You prefer this rather than first trying pkg-config? I would try pkg-config first; but it doesn't really matter I guess :) Otherwise looking fine. Thanks! Andy
2.2.0 release plan
Hi, I think we are ready to go for 2.2.0. I am going to make a provisional 2.2.0 tag today and update the version. I will dist a tarball and upload to somewhere provisional. However! Even though the code says 2.2.0 and the tag says 2.2.0, the release is not until Thursday. I will not upload the tag yet. This will give us a chance to update the web site, prepare nice release notes, make a binary build using the new "guix pack", and test everything out. It could be we find some showstopper like a libtool age issue or something. If that's the case, we can fix it and re-spin a release. Since I won't have uploaded the tag, all should be good. Thoughts welcome :) Andy
Re: [PATCH] Add to the 2.1.x branch GUILE_SITE_CCACHE_DIR and GUILE_EXTENSION_DIR Autoconf macros along with needed siteccachdir entry in pkgconfig file
I coalesced the new macros into the existing GUILE_SITE_DIR macro, though I had to change a few things as will be explained. It works on Guile 2.1.x, 2.0.x, and 1.8.x. I changed it so that if the directories for go files and compiled C extensions are not found, a warning is raised and those variables are set to blank. Otherwise, it would just result in failure on Guile 1.8.x. While testing this for these different Guile versions, I uncovered a small bug in the GUILE_PROGS macro that I will make a patch for in another email (back on the email chain for the relevant bug). Freja Nordsiek On Mon, Mar 13, 2017 at 1:46 PM, Andy Wingowrote: > On Sun 12 Mar 2017 10:38, Freja Nordsiek writes: > >> Guile provides the GUILE_SITE_DIR Autoconf macro for finding where a >> user should install scheme files, but there are no equivalent macros >> for the directories to put compiled go files and C extensions into. >> The patch adds the equivalent macros to do this for the 2.1.x branch >> (it might work as is for the 2.0.x branch but I haven't tested it), >> which are more or less copy-pastes of the GUILE_SITE_DIR macro. > > The patch looks good. WDYT though about instead extending > GUILE_SITE_DIR to search for the ccache dir and the extension dir and > AC_SUBST them? It would be nice to avoid adding more ceremonial lines > to configure.ac. > > (I really wish I hadn't named it "ccache"; oh well, too late in 2.1.x to > change.) > >> GUILE_SITE_CCACHE_DIR does require an additional entry to be put into >> Guile's pkgconfig file, which I named siteccachedir to fit in with the >> rest. One major issue is that the GUILE_SITE_CCACHE_DIR macro will >> fail for any version of Guile that does not have the new entry in the >> pkgconfig file, which would be all 2.0.x and 2.1.x releases thus far. >> One way around it would be to instead of using pkgconfig for it would >> to instead use the following macro that uses the Guile interpreter >> itself to find the directory (this is more or less the version I use >> in one of my own projects). >> >> AC_DEFUN([GUILE_SITE_CCACHE_DIR], >> [AC_REQUIRE([GUILE_PROGS]) >> AC_MSG_CHECKING([for Guile site-ccache directory]) >> GUILE_SITE_CCACHE=`$GUILE -c "(display (%site-ccache-dir))"` >> if test $? != "0" -o "$GUILE_SITE_CCACHE" = ""; then >> AC_MSG_FAILURE([siteccachedir not found]) >> fi >> AC_MSG_RESULT([$GUILE_SITE_CCACHE]) >> AC_SUBST([GUILE_SITE_CCACHE]) >> ]) > > A fallback sounds good. In that case it would work fine with 2.0. We > can add more paths to the pkg-config file as well, in parallel; it's > better for other build systems. > > Andy From 90daf796c829f8e422a281d501f711138f21a334 Mon Sep 17 00:00:00 2001 From: Freja Nordsiek Date: Tue, 14 Mar 2017 15:04:38 +0100 Subject: [PATCH] Made GUILE_SITE_DIR Autoconf macro look for directories for compiled .go and C extensions in addition to the site directory for scheme files. --- meta/guile-2.2.pc.in | 1 + meta/guile.m4| 35 +-- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/meta/guile-2.2.pc.in b/meta/guile-2.2.pc.in index c8f485b..c6d12b5 100644 --- a/meta/guile-2.2.pc.in +++ b/meta/guile-2.2.pc.in @@ -10,6 +10,7 @@ pkgincludedir=@includedir@/guile sitedir=@sitedir@ extensiondir=@libdir@/guile/@GUILE_EFFECTIVE_VERSION@/extensions +siteccachedir=@libdir@/guile/@GUILE_EFFECTIVE_VERSION@/site-ccache libguileinterface=@LIBGUILE_INTERFACE@ # Actual name of the 'guile' and 'guild' programs. This is diff --git a/meta/guile.m4 b/meta/guile.m4 index 2e4f3dc..4a2e285 100644 --- a/meta/guile.m4 +++ b/meta/guile.m4 @@ -25,7 +25,7 @@ ## GUILE_PKG -- find Guile development files ## GUILE_PROGS -- set paths to Guile interpreter, config and tool programs ## GUILE_FLAGS -- set flags for compiling and linking with Guile -## GUILE_SITE_DIR -- find path to Guile "site" directory +## GUILE_SITE_DIR -- find path to Guile "site" directories for scheme, compiles GO files, and compiled C extensions ## GUILE_CHECK -- evaluate Guile Scheme code and capture the return value ## GUILE_MODULE_CHECK -- check feature of a Guile Scheme module ## GUILE_MODULE_AVAILABLE -- check availability of a Guile Scheme module @@ -154,18 +154,25 @@ AC_DEFUN([GUILE_FLAGS], AC_SUBST([GUILE_LTLIBS]) ]) -# GUILE_SITE_DIR -- find path to Guile "site" directory +# GUILE_SITE_DIR -- find path to Guile site directories # # Usage: GUILE_SITE_DIR # -# This looks for Guile's "site" directory, usually something like -# PREFIX/share/guile/site, and sets var @var{GUILE_SITE} to the path. -# Note that the var name is different from the macro name. +# This looks for Guile's "site" directory for Scheme files (usually something like +# PREFIX/share/guile/site), "site-ccache" directory for compiled @code{.go} files +# (usually something like
Re: Guile-2.2 - goops slot redefinition at subclass level
On Mon 27 Feb 2017 01:09, David Pirottewrites: > 2-slot redefinition at subclass level > > See bug#20423 for a full description. I think the correct solution here is to implement the slot combination protocol; see http://mop.lisp.se/dictionary.html#compute-slots. This can be done in 2.2. It's all in Scheme now so hopefully it will be easier to hack on. I do not have any time to devote to this area, however, and as it's possible to implement this in the stable series and it's not a regression, I don't think it's a release blocker. Andy
Re: Guile-2.2 - goops setters should be inherited, no matter what :)
Hi, On Sun 26 Feb 2017 23:57, David Pirottewrites: > 1-setters, as in (define-method ((setter ...) (self <...>) ...) ...) > should (also :)) be inherited, As you mention this is https://debbugs.gnu.org/cgi/bugreport.cgi?bug=19770. I think we have an understanding about why things are the way they are in GOOPS, and you are arguing that they should be different -- different from 1.8 and 2.0. That's OK and making a different system is possible if we have good reasons. It's also possible to extend the current system to implement new behaviors. In this case though I don't know how to make a consistent system with the semantics you are looking for and without losing some of the speed of the current system. I guess you would want for the class defining the slot to define a method that just does (slot-set! obj 'slot x), and not have concrete subclasses define their own accessor methods, thereby avoiding accessors entirely. In that case I would think you could define slots with a different kind of class, or override the slot definition protocol or something, or use a different define-class wrapper or something. In short I think I just don't agree with this change as part of standard GOOPS, so I propose the second solution: to make sure you can implement the behavior you want as a user. What about using a wrapper define-class macro that removes "#:accessor foo" from its slot definitions and translates those to issue definitions like this: (define-method (foo (x )) (slot-ref x 'foo)) (define-method ((setter foo) (x ) val) (slot-set! x 'foo val)) Andy