head	1.29;
access;
symbols
	pkgsrc-2026Q1:1.29.0.8
	pkgsrc-2026Q1-base:1.29
	pkgsrc-2025Q4:1.29.0.6
	pkgsrc-2025Q4-base:1.29
	pkgsrc-2025Q3:1.29.0.4
	pkgsrc-2025Q3-base:1.29
	pkgsrc-2025Q2:1.29.0.2
	pkgsrc-2025Q2-base:1.29
	pkgsrc-2025Q1:1.28.0.20
	pkgsrc-2025Q1-base:1.28
	pkgsrc-2024Q4:1.28.0.18
	pkgsrc-2024Q4-base:1.28
	pkgsrc-2024Q3:1.28.0.16
	pkgsrc-2024Q3-base:1.28
	pkgsrc-2024Q2:1.28.0.14
	pkgsrc-2024Q2-base:1.28
	pkgsrc-2024Q1:1.28.0.12
	pkgsrc-2024Q1-base:1.28
	pkgsrc-2023Q4:1.28.0.10
	pkgsrc-2023Q4-base:1.28
	pkgsrc-2023Q3:1.28.0.8
	pkgsrc-2023Q3-base:1.28
	pkgsrc-2023Q2:1.28.0.6
	pkgsrc-2023Q2-base:1.28
	pkgsrc-2023Q1:1.28.0.4
	pkgsrc-2023Q1-base:1.28
	pkgsrc-2022Q4:1.28.0.2
	pkgsrc-2022Q4-base:1.28
	pkgsrc-2022Q3:1.27.0.6
	pkgsrc-2022Q3-base:1.27
	pkgsrc-2022Q2:1.27.0.4
	pkgsrc-2022Q2-base:1.27
	pkgsrc-2022Q1:1.27.0.2
	pkgsrc-2022Q1-base:1.27
	pkgsrc-2021Q4:1.25.0.2
	pkgsrc-2021Q4-base:1.25
	pkgsrc-2021Q3:1.24.0.10
	pkgsrc-2021Q3-base:1.24
	pkgsrc-2021Q2:1.24.0.8
	pkgsrc-2021Q2-base:1.24
	pkgsrc-2021Q1:1.24.0.6
	pkgsrc-2021Q1-base:1.24
	pkgsrc-2020Q4:1.24.0.4
	pkgsrc-2020Q4-base:1.24
	pkgsrc-2020Q3:1.24.0.2
	pkgsrc-2020Q3-base:1.24
	pkgsrc-2020Q2:1.21.0.2
	pkgsrc-2020Q2-base:1.21
	pkgsrc-2020Q1:1.20.0.2
	pkgsrc-2020Q1-base:1.20
	pkgsrc-2019Q4:1.17.0.4
	pkgsrc-2019Q4-base:1.17
	pkgsrc-2019Q3:1.13.0.2
	pkgsrc-2019Q3-base:1.13
	pkgsrc-2019Q2:1.9.0.2
	pkgsrc-2019Q2-base:1.9
	pkgsrc-2019Q1:1.8.0.6
	pkgsrc-2019Q1-base:1.8
	pkgsrc-2018Q4:1.8.0.4
	pkgsrc-2018Q4-base:1.8
	pkgsrc-2018Q3:1.8.0.2
	pkgsrc-2018Q3-base:1.8
	pkgsrc-2018Q2:1.7.0.4
	pkgsrc-2018Q2-base:1.7
	pkgsrc-2018Q1:1.7.0.2
	pkgsrc-2018Q1-base:1.7
	pkgsrc-2017Q4:1.5.0.2
	pkgsrc-2017Q4-base:1.5
	pkgsrc-2017Q3:1.4.0.4
	pkgsrc-2017Q3-base:1.4
	pkgsrc-2017Q2:1.3.0.4
	pkgsrc-2017Q2-base:1.3
	pkgsrc-2017Q1:1.3.0.2
	pkgsrc-2017Q1-base:1.3;
locks; strict;
comment	@# @;


1.29
date	2025.03.30.07.48.46;	author wiz;	state Exp;
branches;
next	1.28;
commitid	ZF8o6FAMWLZ024PF;

1.28
date	2022.10.26.10.31.04;	author wiz;	state Exp;
branches;
next	1.27;
commitid	PVFjlIYUKslkpdZD;

1.27
date	2022.03.09.00.37.46;	author gdt;	state Exp;
branches;
next	1.26;
commitid	eQxHtyN4pkmaytvD;

1.26
date	2022.03.07.23.02.06;	author wiz;	state Exp;
branches;
next	1.25;
commitid	IHcoGoYsLHjr3lvD;

1.25
date	2021.12.08.16.02.16;	author adam;	state Exp;
branches;
next	1.24;
commitid	2PyWjHx5T8rqARjD;

1.24
date	2020.08.30.13.27.30;	author js;	state Exp;
branches;
next	1.23;
commitid	FzON6G477S5kG5mC;

1.23
date	2020.08.19.08.11.49;	author nia;	state Exp;
branches;
next	1.22;
commitid	WgxW4VeMxYhOhEkC;

1.22
date	2020.08.17.07.59.55;	author tnn;	state Exp;
branches;
next	1.21;
commitid	yWSPt0wJEYfUhokC;

1.21
date	2020.05.14.14.28.04;	author nikita;	state Exp;
branches;
next	1.20;
commitid	mESZNarFhl56ud8C;

1.20
date	2020.03.19.14.15.17;	author wiz;	state Exp;
branches;
next	1.19;
commitid	3QujWmfIe8Cvd11C;

1.19
date	2020.03.10.22.43.27;	author wiz;	state Exp;
branches;
next	1.18;
commitid	Ptf18fhpokxSjUZB;

1.18
date	2020.03.08.16.42.27;	author bsiegert;	state Exp;
branches;
next	1.17;
commitid	zwKxhaUg2qJlnCZB;

1.17
date	2019.12.13.00.47.23;	author gutteridge;	state Exp;
branches;
next	1.16;
commitid	7pMlotcXSGozRtOB;

1.16
date	2019.12.09.04.51.57;	author gutteridge;	state Exp;
branches;
next	1.15;
commitid	mlvQmjXlRDZmlZNB;

1.15
date	2019.11.10.17.49.21;	author maya;	state Exp;
branches;
next	1.14;
commitid	URsTj6B9xHj7AkKB;

1.14
date	2019.11.03.19.04.01;	author rillig;	state Exp;
branches;
next	1.13;
commitid	puQpdVbj8afCdrJB;

1.13
date	2019.09.10.03.47.27;	author gutteridge;	state Exp;
branches;
next	1.12;
commitid	IC7f87KYt1FVQpCB;

1.12
date	2019.09.03.13.20.06;	author gutteridge;	state Exp;
branches;
next	1.11;
commitid	OIWLhUW4woApgzBB;

1.11
date	2019.07.20.21.01.19;	author wiz;	state Exp;
branches;
next	1.10;
commitid	a0mnGk6yYZnbhPvB;

1.10
date	2019.07.14.21.46.22;	author rillig;	state Exp;
branches;
next	1.9;
commitid	UkrT37qmFFWwI3vB;

1.9
date	2019.06.23.09.14.58;	author wiz;	state Exp;
branches;
next	1.8;
commitid	U0uDNUTzND0EeisB;

1.8
date	2018.08.16.11.25.57;	author wiz;	state Exp;
branches;
next	1.7;
commitid	jHit1a42grunXkOA;

1.7
date	2018.01.08.22.37.08;	author joerg;	state Exp;
branches;
next	1.6;
commitid	vUcpMDgzCkTSJ7mA;

1.6
date	2018.01.08.10.39.45;	author wiz;	state Exp;
branches;
next	1.5;
commitid	RkVKOwX5rFjXL3mA;

1.5
date	2017.12.02.18.34.04;	author gdt;	state Exp;
branches;
next	1.4;
commitid	STIeLP5pTdnsAlhA;

1.4
date	2017.08.19.00.27.59;	author jlam;	state Exp;
branches;
next	1.3;
commitid	GI9yfaGVNUO7XK3A;

1.3
date	2017.03.16.23.39.05;	author wiz;	state Exp;
branches;
next	1.2;
commitid	zrmTkXpPAStdFPJz;

1.2
date	2017.03.16.14.13.43;	author wiz;	state Exp;
branches;
next	1.1;
commitid	CxUoLAkyHmzexMJz;

1.1
date	2017.03.16.10.02.57;	author wiz;	state Exp;
branches;
next	;
commitid	No8WDAElSPJf9LJz;


desc
@@


1.29
log
@guile22: merge an upstream patch fixing the version

Bump PKGREVISION.
@
text
@# $NetBSD: Makefile,v 1.28 2022/10/26 10:31:04 wiz Exp $

DISTNAME=	guile-2.2.7
PKGNAME=	${DISTNAME:S/guile/guile22/}
PKGREVISION=	7
CATEGORIES=	lang
MASTER_SITES=	${MASTER_SITE_GNU:=guile/}

MAINTAINER=	pkgsrc-users@@NetBSD.org
HOMEPAGE=	https://www.gnu.org/software/guile/
COMMENT=	Official extension language for the GNU operating system
LICENSE=	gnu-lgpl-v3

# Currently, all versions are namespaced.
GUILE_SUBDIR=	guile/2.2
#GUILE_SUBDIR=	# empty

# guile does not like the --build and --host triplets on NetBSD
HAS_CONFIGURE=		yes
CONFIGURE_ARGS+=	--disable-shared
CONFIGURE_ARGS+=	SHELL=${CONFIG_SHELL}
# Needed to work around broken configure check for accept4()
LDFLAGS.SunOS+=		-lsocket -lnsl
# Workaround for Xcode 11 clang bug
# https://bitbucket.org/multicoreware/x265/issues/514/wrong-code-generated-on-macos-1015
CFLAGS.Darwin+=		-fno-stack-check

.if !empty(GUILE_SUBDIR)
# Installation prefix is non-default.
GUILE_PREFIX=			${PREFIX}/${GUILE_SUBDIR}
CONFIGURE_ARGS+=		--prefix=${GUILE_PREFIX:Q}
CONFIGURE_ARGS+=		--infodir=${GUILE_PREFIX:Q}/info
CONFIGURE_ARGS+=		--mandir=${GUILE_PREFIX:Q}/man
BUILDLINK_PASSTHRU_DIRS+=	${GUILE_PREFIX}
LDFLAGS+=			${COMPILER_RPATH_FLAG}${GUILE_PREFIX}/lib
.else
CONFIGURE_ARGS+=		--prefix=${PREFIX}
CONFIGURE_ARGS+=		--infodir=${PREFIX}/${PKGINFODIR}
CONFIGURE_ARGS+=		--mandir=${PREFIX}/${PKGMANDIR}
.endif

INFO_FILES=		yes
USE_LIBTOOL=		yes
USE_TOOLS+=		gmake pkg-config
USE_TOOLS.Darwin+=	gsed
USE_TOOLS.SunOS+=	gsed

PKGCONFIG_OVERRIDE+=	meta/guile-2.2.pc.in
# known broken: test-loose-ends on NetBSD/current
# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24003
TEST_TARGET=		check

SUBST_CLASSES+=		tools
SUBST_SED.tools+=	-e "s,\\((define %pkg-config-program .\\).*\\(.)\\),\\1${PREFIX}/bin/pkg-config\\2,"
SUBST_STAGE.tools=	post-build
SUBST_FILES.tools+=	meta/guile-config
SUBST_MESSAGE.tools=	Fixing path to pkg-config in installed file.

# XXX: less tests would fail if we made libunistring use GNU iconv too
#USE_GNU_ICONV=		yes

OPSYSVARS+=		GUILE_LIBNAME
GUILE_LIBNAME.Darwin=	a
GUILE_LIBNAME.*=	so.1.4.2

PLIST_SUBST+=		GUILE_LIBNAME=${GUILE_LIBNAME}
PRINT_PLIST_AWK+=	{gsub(/${GUILE_LIBNAME}/, "$${GUILE_LIBNAME}");}

.include "../../mk/bsd.prefs.mk"

# If not Darwin, an extra charset.alias file is installed
PLIST_VARS+=	charset
.if ${OPSYS} != "Darwin"
PLIST.charset=	yes
.endif

# https://debbugs.gnu.org/cgi/bugreport.cgi?bug=24002
post-configure:
	${ECHO} '#define FLEXIBLE_ARRAY_MEMBER /**/' >> ${WRKSRC}/config.h

.include "../../devel/gmp/buildlink3.mk"
.include "../../converters/libiconv/buildlink3.mk"
.include "../../devel/gettext-lib/buildlink3.mk"
.include "../../devel/libltdl/buildlink3.mk"
.include "../../textproc/libunistring/buildlink3.mk"
# needs threaded boehm-gc
BUILDLINK_API_DEPENDS.boehm-gc+=	boehm-gc>=8.0.4nb1
.include "../../devel/boehm-gc/buildlink3.mk"
.include "../../devel/libffi/buildlink3.mk"
.include "../../devel/readline/buildlink3.mk"
.include "../../mk/pthread.buildlink3.mk"
.include "../../mk/bsd.pkg.mk"
@


1.28
log
@*: bump PKGREVISION for libunistring shlib major bump
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.27 2022/03/09 00:37:46 gdt Exp $
d5 1
a5 1
PKGREVISION=	6
@


1.27
log
@lang/guile*: Adjust namespacing comments to reality

This is a comment-only change.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.26 2022/03/07 23:02:06 wiz Exp $
d5 1
a5 1
PKGREVISION=	5
@


1.26
log
@guile22: add ALTERNATIVES file
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.25 2021/12/08 16:02:16 adam Exp $
d14 1
a14 1
# Currently, 2.0 is primary.
@


1.25
log
@revbump for icu and libffi
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.24 2020/08/30 13:27:30 js Exp $
d5 1
a5 1
PKGREVISION=	4
@


1.24
log
@Fix lang/guile22 on Darwin
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.23 2020/08/19 08:11:49 nia Exp $
d5 1
a5 1
PKGREVISION=	3
@


1.23
log
@guile22: Use MASTER_SITE_GNU instead of hardcoding ftp://ftp.gnu.org

ftp://ftp.gnu.org prints a warning on connect that it may no longer
exist soon due to concerns with FTP
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.22 2020/08/17 07:59:55 tnn Exp $
d24 3
@


1.22
log
@guile22: fix rpath syntax issue in the pkg-config file. Bump.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.21 2020/05/14 14:28:04 nikita Exp $
d7 1
a7 1
MASTER_SITES=	ftp://ftp.gnu.org/gnu/guile/
@


1.21
log
@lang/guile22: crude but working patch to make target-vendor check conforming
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.20 2020/03/19 14:15:17 wiz Exp $
d5 1
a5 1
PKGREVISION=	2
@


1.20
log
@guile22: update to 2.2.7nb1.

Enable threads support, now that boehm-gc is threaded.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.19 2020/03/10 22:43:27 wiz Exp $
d5 1
a5 1
PKGREVISION=	1
@


1.19
log
@guile22: update to 2.2.7.

Changes in 2.2.7 (since 2.2.6)

* New interfaces and functionality

** (texinfo plain-text) now exports '*line-width*' fluid

The new '*line-width*' fluid allows users to specify the width of a line
for the purposes of line wrapping.  See "texinfo plain-text" in the
manual.

* Bug fixes

** Reduce GC pressure when using bignums

Guile no longer installs a finalizer on each bignum (large integer) it
creates.  This significantly improves speed and memory usage on
applications that make heavy use of bignums, such as the compiler
itself.

** Fix peval bug that ignored excess arguments

In an expression like:

  ((lambda ()
     (define (add1 n)(+ 1 n))
     (add1 1 2)))

the compiler (specifically 'peval') would silently ignore the excess
argument to 'add1'.

** Respect thread local fluid defaults

Previously (fluid-ref (make-thread-local-fluid #t)) would return #f.
This is now fixed.

** Fix non-deterministic crash in 'finalization_thread_proc'
   (<https://bugs.gnu.org/37757>)

** texinfo properly renders @@acronym in plain text
   (<https://bugs.gnu.org/37846>)

** 'scm_port_poll' honors "w" flags
   (<https://bugs.gnu.org/36709>)

** Do not record LDFLAGS in .pc file
   (<https://bugs.gnu.org/36339>)

** Fix Readline configure check for the sake of libedit

This fixes builds on macOS against the system-provided libedit.

** Fix build on platforms where the stack grows upwards
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.18 2020/03/08 16:42:27 bsiegert Exp $
d5 1
a20 2
# not until boehm-gc is threaded
CONFIGURE_ARGS+=	--without-threads
d83 2
a84 2
# needs a particular bug fix on NetBSD
BUILDLINK_API_DEPENDS.boehm-gc+=	boehm-gc>=7.4.2nb1
d88 1
a88 1
#.include "../../mk/pthread.buildlink3.mk"
@


1.18
log
@Revbump packages depending on libffi after .so version change.

Requested by Matthias Ferdinand and Oskar on pkgsrc-users.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.17 2019/12/13 00:47:23 gutteridge Exp $
d3 1
a3 1
DISTNAME=	guile-2.2.6
a4 1
PKGREVISION=	3
d62 1
a62 1
GUILE_LIBNAME.*=	so.1.4.1
@


1.17
log
@guile22: add another SunOS build fix

Some SunOS variants provide an older version of (default path) sed that
doesn't support the -i option. (My previous build fix had completed
successfully on OmniOS, on which /usr/bin/sed is the FreeBSD variant,
which does support -i.) For simplicity's sake, just require gsed.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.16 2019/12/09 04:51:57 gutteridge Exp $
d5 1
a5 1
PKGREVISION=	2
@


1.16
log
@guile22: fix SunOS builds on releases that provide accept4()

Curiously, the only thing stopping this from building was the second
accept4() test in the configure script, which doesn't supply the
necessary linker arguments. Elsewhere, the build configuration does
correctly set those same arguments. On current members of the SunOS
family, this meant it would falsely think accept4() wasn't defined
when it really was, which would then lead to a signature mismatch
during compilation.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.15 2019/11/10 17:49:21 maya Exp $
d45 1
@


1.15
log
@guile22: restore logic for different PLIST for Darwin.

(Dropping FreeBSD version rather than blindly guessing which number it is,
if it's different we might hear a report of it.)

Fixes report by Louis Guillaume on tech-pkg.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.14 2019/11/03 19:04:01 rillig Exp $
d24 2
@


1.14
log
@lang: align variable assignments

pkglint -Wall -F --only aligned --only indent -r

No manual corrections.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.13 2019/09/10 03:47:27 gutteridge Exp $
d60 1
a60 2
GUILE_LIBNAME.FreeBSD=	so.30
GUILE_LIBNAME.*=	so.22.8.1
@


1.13
log
@guile22: further packaging fixes

My earlier try at fixing Linux only worked with particular distros. To
get around this, just install a stub charset.alias file universally on
Linux. This is the simplest thing to do for now. While here, this is
also breaking on recent Darwin releases because the build scripting
expects GNU sed.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.12 2019/09/03 13:20:06 gutteridge Exp $
d39 3
a41 3
INFO_FILES=	yes
USE_LIBTOOL=	yes
USE_TOOLS+=	gmake pkg-config
@


1.12
log
@guile22: build fix for most Linux distributions and Darwin

The file charset.alias is not defined as part of the installation
target if this is being built on Linux+glibc or Darwin, handle
accordingly.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.11 2019/07/20 21:01:19 wiz Exp $
a2 1
PKGREVISION=	1
d5 1
d42 1
d68 1
a68 1
# If not Linux+glibc or Darwin, an extra charset.alias file is installed
d70 1
a70 1
.if (${OPSYS} != "Linux" || !defined(GLIBC_VERSION)) && ${OPSYS} != "Darwin"
@


1.11
log
@guile22: update to 2.2.6.

Changes in 2.2.6 (since 2.2.5)

* Bug fixes

** Fix regression introduced in 2.2.5 that would break HTTP servers

Guile 2.2.5 introduced a bug that would break the built-in HTTP server
provided by the (web server) module.  Specifically, HTTP servers would
hang while reading requests.  See <https://bugs.gnu.org/36350>.

** 'strftime' and 'strptime' honor the current locale encoding

Until now these procedures would wrongfully assume that the locale
encoding is always UTF-8.  See <https://bugs.gnu.org/35920>.

** Re-export 'current-load-port'

This procedure was erroneously removed in the 2.2 series but was still
documented.

** Minor documentation mistakes were fixed
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.10 2019/07/14 21:46:22 rillig Exp $
d3 1
d65 8
@


1.10
log
@lang/guile: fix alignment of variables
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.9 2019/06/23 09:14:58 wiz Exp $
d3 1
a3 1
DISTNAME=	guile-2.2.5
@


1.9
log
@guile22: update to 2.2.5.

Add comment to patch.

Changes in 2.2.5 (since 2.2.4):

* Notable improvements

** Greatly improved performance of bidirectional pipes.

The performance of bidirectional pipes, as created using 'open-pipe' or
'open-pipe*' in OPEN_BOTH mode, has been greatly improved.  When reading
large blocks of binary data from a bidirectional pipe, the maximum
bandwidth has been increased by a factor of ~10^3 in some cases.

** New 'get-bytevector-some!' I/O primitive.

This new I/O primitive is similar to 'get-bytevector-some' from the
R6RS, except that it writes its data to a user-specified range of
indices in an existing bytevector.  As a corollary, it is also now
possible to specify a maximum number of bytes to read.  Note that
'get-bytevector-some', and now 'get-bytevector-some!', are unique among
Guile's I/O primitives in their support of efficient binary reads of
potentially large blocks while also allowing for short reads, to avoid
undesired blocking.  Now these operations can be performed while also
avoiding heap-allocation.

'get-bytevector-some!' is needed to efficiently implement the new
bidirectional pipes, which are built upon R6RS custom binary
input/output ports.

** get-bytevector-{n!,some,some!} now support suspendable I/O.

Scheme implementations of 'get-bytevector-n!', 'get-bytevector-some',
and 'get-bytevector-some!' have been added to (ice-9 suspendable-ports).
As a result, these I/O operations now support suspendable I/O.

* Compiler improvements

** guild compile: Add -Wshadowed-toplevel.

Top-level definitions that shadow previous top-level definitions from
the same compilation unit will now trigger a compile-time warning, if
-Wshadowed-toplevel is enabled.  It is enabled by default.

** guild compile: Add '-x' flag.

Passing "-x EXT" to 'guild compile' will now cause EXT to be recognized
as a valid source file name extension.  For example, to compile R6RS
code, you might want to pass "-x .sls" so that files ending in ".sls"
can be found.

* Miscellaneous improvements

** Bootstrap optimization

eval.go and psyntax-pp.go are now built before the rest of the .go files
so that they are processed by a fast macro expander.  This saves time
when using parallel builds.

** put-u8 now always writes a single byte, regardless of the port encoding.

Previously, (put-u8 PORT OCTET) worked as expected only when writing to
binary ports, i.e. those with port encoding "ISO-8859-1" a.k.a. Latin-1.
Strictly speaking, this meets the requirements of the R6RS 'put-u8',
which need only support binary ports.  However, Guile in fact allows
binary I/O to be performed on any port, and yet 'put-u8' behaved in a
surprising way with other port encodings: it would perform a _textual_
I/O operation, writing the character with Unicode scalar value OCTET.
Now, 'put-u8' always writes a single byte with value OCTET, regardless
of the port encoding.

** Optimize fixnum exact integer square roots.

'exact-integer-sqrt' now avoids heap allocation when applied to a
fixnum.  'sqrt' now avoids heap allocation when applied to a fixnum
that's a perfect square.  Fewer heap allocations are now required when
applying 'sqrt' to a square of an exact rational whose numerator or
denominator are fixnums.

** scm_mkstrport: Optimize the POS -> BYTE_POS conversion.

scm_mkstrport now avoids an unnecessary heap allocation and conversion
to UTF-8, when STR is provided and POS is non-zero.

** SRFI-19: Support ~N in string->date.

Support for the ~N escape, which allows fractions of a second to be
parsed, is now supported in SRFI-19 'string->date'.

** SRFI-19: Update the leap second table.

The leap on 1 January 2017 was added to SRFI-19's leap second table.

** stexi->shtml: Add support for @@i, @@math, @@tie and @@dots.

stexi->shtml is now able to convert @@i, @@math, @@tie and @@dots to HTML.

** Define AT_SYMLINK_NOFOLLOW, AT_NO_AUTOMOUNT, and AT_EMPTY_PATH.

AT_SYMLINK_FOLLOW, AT_NO_AUTOMOUNT, and AT_EMPTY_PATH are now available
from Scheme, if supported on the platform.

** Improvements to the 'time' macro from (ice-9 time).

The 'time' macro now supports expressions that return multiple values.
It has also been rewritten as a hygienic 'syntax-rules' macro.
Previously, it was built using 'define-macro', and was therefore
unhygienic.  This is not merely an internal implementation detail, but
is potentially relevant to any user of the 'time' macro, since it could
lead to unintended variable capture and other problems.

** Clarify the documentation for 'nil?'.
   See commit b44f505f1571fc9c42e58982f161a9cfc81fb7f4.
** Clarify the manual's "Processes" section.
   See commit 8cdd3a0773930ca872a13aada7a1344f03bb382b.
** Avoid 'with-latin1-locale' in binary I/O tests.
   See commit 162a031e5f2c64cd23fcf069fb7b5071196f9527.
** Update user-visible copyright years.

* Bug fixes

** Avoid regexp ranges in HTTP inter-protocol exploitation check.

The regular expression used to check for HTTP inter-protocol
exploitation attacks previously used a character range '0-9', whose
meaning depends on the current locale.  This has now been fixed.

** Fixes to the SRFI-19 time/date library.

*** TAI-to-UTC conversion leaps at the wrong time.
   <https://bugs.gnu.org/21911>
*** time-utc->date shows bogus zone-dependent leap second.
   <https://bugs.gnu.org/22034>
*** Manual incorrectly describes Julian Date.
   <https://bugs.gnu.org/21902>
*** date->string duff ISO 8601 negative years.
   <https://bugs.gnu.org/21903>
*** date->string duff ISO 8601 format for non-4-digit years.
   <https://bugs.gnu.org/21904>
*** julian-day->date negative input breakage.
    <https://bugs.gnu.org/21906>
*** time-duration screws up negative durations.
    <https://bugs.gnu.org/26162>
*** time-difference doesn't detect error of differing time types.
    <https://bugs.gnu.org/26163>

** Improve overflow checks in bytevector, string, and I/O operations.

Several numerical computations, performed using primitive C arithmetic
in Guile's core bytevector, string, and I/O operations, have been
rewritten to avoid overflows.

** Fix type inferencing for 'nil?' and 'null?' predicates.

Previously, the compiler would sometimes miscompile certain combinations
of 'nil?' and 'null?' predicates present within the same top-level form.
See <https://bugs.gnu.org/33036>.

** Fix 'atomic-box-compare-and-swap!'.

Previously, 'atomic-box-compare-and-swap!' would sometimes spuriously
fail on architectures based on Load-Linked/Store-Conditional (LL/SC)
synchronication primitives (e.g. ARM, PowerPC, and MIPS) in a way that
was undetectable by the caller.  See <https://bugs.gnu.org/32786>.

** Make URI handling locale independent.

Previously, procedures in (web uri) would misbehave in some locales
including sv_SE.  See <https://bugs.gnu.org/35785>.

** Strings, i18n: Limit the use of alloca to approximately 8 kilobytes.

Previously, 'string-locale-ci=?', 'string-locale-ci<?',
'string-locale<?', 'string-locale-{downcase,upcase,titlecase}' and
'string-normalize-{nfd,nfc,nfkd,nfkc}' would overflow the C stack when
applied to very large strings.

** Fix documentation of R6RS 'binary-port?' to reflect reality.

Previously, the documentation incorrectly stated that 'binary-port?'
always returns #t.  In fact, it returns #t if and only if the port
encoding is "ISO-8859-1".  The documentation for 'binary-port?' and
'textual-port?' has been rewritten to reflect the current reality, and
also to leave open the possibility of changing the behavior of these
predicates in a future version of Guile.

** Avoid passing NULL to 'memcpy' and 'memcmp'.

Previously, NULL was sometimes passed to 'memcpy' or 'memcmp' when the
size argument was 0.

** Save and restore errno in the signal handler.

Previously, Guile's synchronous C signal handler failed to save and
restore 'errno', although it might change its value.  This could
potentially lead to spurious corruptions of 'errno' within threads
interrupted by signals.

** scm_to_stringn: Avoid passing NULL to c_strcasecmp.
   <https://lists.gnu.org/archive/html/guile-user/2019-05/msg00070.html>
** r6rs-ports: Accept 'port-position' values greater than 2^32.
   <https://bugs.gnu.org/32161>
** r6rs-ports: 'put-bytevector' accepts 64-bit integers.
   Fixed in commit 741c45458da0831a12a4f8d729814bf9f2cb6571.
** Fix R6RS call-with-{input,output}-file to open textual ports.
   <https://bugs.gnu.org/32329>
** Update (ice-9 match) to include selected bug fixes from upstream.
*** ice-9/match named match-let is not working
   <https://bugs.gnu.org/22925>
** open-process: Fix dup(2) and execvp(2) error handling.
   Fixed in commit 521f1ab4709217407496004019c00005d2a82f78.
** bytevectors: Support large indices in integer accessors.
   Fixed in commit b9cf3517efd4643670d970d2692bc7bede9a85e8.
** bytevectors: Fix list validation of *list->bytevector procedures.
   <https://bugs.gnu.org/32938>
** Gracefully handle huge shift counts in 'ash' and 'round-ash'.
   <https://bugs.gnu.org/32644>
** In 'ash' and 'round-ash', handle right shift count of LONG_MIN.
   <https://bugs.gnu.org/21901>
** Use 'scm_from_utf8_{string,symbol,keyword}' for C string literals.
   <https://bugs.gnu.org/33044>
** web: Add support for HTTP header continuation lines.
   Fixed in commit 73cde5ed7218a090ecee888870908af5445796f0.
** scm_seed_to_random_state: Support wide string arguments.
   <https://bugs.gnu.org/33044>
** Do not warn the user when 'madvise' returns ENOSYS.
   Fixed in commit 45e4ace6603e00b297e6542362273041aebe7305.
** Add 'texinfo' as a dependency in the README.
   Fixed in commit 1bbce71501198c3c7abdf07941f5cdc1434858c2.
** Don't mutate read-only string in ports test.
   Fixed in commit 552f007e91a97f136aad1b22918688b61d03a4a3.
** Remove redefinition of when & unless in snarf-check-and-output-texi.
   Fixed in commit 1ba5d6f47a54dceee4452a1e7726d2635e5b3449.
** Fix strftime when Guile is built without threading support.
   Fixed in commit 139c702fc8b61fdeb813c3428fef3701ea8677f9.
** Avoid leaking a file descriptor in test-unwind.
   Fixed in commit 1437b76777e576b3d000e2f80c5ecdb33a74ac33.
** Fix binary output on files created by mkstemp!.
   Fixed in commit 78468baa118d316050a27e43250966e52ffd3d54.
** Fix crypt-on-glibc test error.
   Fixed in commit 27ffbfb0235de466016ea5a6421508f6548971b6.
** Fix race when expanding syntax-parameterize and define-syntax-parameter.
   <https://bugs.gnu.org/27476#102>
** Add a fallback value for the locale-monetary-decimal-point.
   Fixed in commit 9ba449643d4c2ac1d2174befca7d765af222bcc0.
** Handle newlib C library's langinfo constant names.
   Fixed in commit 92105d13ad1363b511214589b7d62d95304beb17.
** Make locale monetary conversion tests be less strict on terminal whitespace.
   Fixed in commit 2a3ccfb66714efc1c081ea6e921336f80b756d3c.
** Disable test for current value of setitimer on Cygwin.
   Fixed in commit 3a64c504caaf83e9faf2ec9b7d0e031e1a6a09b9.
** Fix gc.test "after-gc-hook gets called" failures.
   <https://bugs.gnu.org/31776#17>
** Update iconv.m4 from gnulib, to fix an iconv leak during configure.
   <https://lists.gnu.org/archive/html/guile-devel/2019-05/msg00011.html>
** guild compile: Add missing newline in "unrecognized option" error message.
   Fixed in commit 85c5bae4fd94f8686d26fd792b7c0f588c23bd94.
** 'basename' now correctly handles "/" and "//".
   Fixed in commit 36ad1d24b3d2c174a64c445502a36f19605dbd65.
** Make srfi-71 visible through 'cond-expand'.
   Fixed in commit 59a06d8392234fbec8b3605cec266a7a0a7b7a56.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.8 2018/08/16 11:25:57 wiz Exp $
d18 1
a18 1
HAS_CONFIGURE=	yes
d26 4
a29 4
GUILE_PREFIX=		${PREFIX}/${GUILE_SUBDIR}
CONFIGURE_ARGS+=	--prefix=${GUILE_PREFIX:Q}
CONFIGURE_ARGS+=	--infodir=${GUILE_PREFIX:Q}/info
CONFIGURE_ARGS+=	--mandir=${GUILE_PREFIX:Q}/man
d33 3
a35 3
CONFIGURE_ARGS+=	--prefix=${PREFIX:Q}
CONFIGURE_ARGS+=	--infodir=${PREFIX:Q}/${PKGINFODIR:Q}
CONFIGURE_ARGS+=	--mandir=${PREFIX:Q}/${PKGMANDIR:Q}
@


1.8
log
@guile22: update to 2.2.4.

Changes in 2.2.4 (since 2.2.3):

* New interfaces and functionality

** SRFI-71 (Extended LET-syntax for multiple values)

Guile now includes SRFI-71, which extends let, let*, and letrec to
support assigning multiple values.  See "SRFI-71" in the manual for
details.

** (web client) export 'http-request' procedure

The 'http-request' procedure is the generalized procedure underneath
'http-get', 'http-post', etc.

** GDB support now registers the 'guile-backtrace' GDB command

The 'guile-backtrace' GDB command displays a backtrace of the VM stack
for the current thread.

** Recognize RISC-V compilation targets in (system base target)

* Bug fixes

** Fix stack-marking bug affecting multi-threaded programs
   (<https://bugs.gnu.org/28211>)

** Add missing SYNC_IP calls in the VM

These could cause multi-threaded code to crash.

** Fix multi-threaded access to modules
   (<https://bugs.gnu.org/30602>, <https://bugs.gnu.org/31879>,
    and <https://bugs.gnu.org/31878>)

** (ice-9 match) now has better documentation

** 'get-bytevector-n' and 'get-bytevector-n!' can now read more than 4 GB

** Fix cross-compilation support for elisp

** Fix error reporting in 'load-thunk-from-memory'

** Fix GOOPS 'instance?' to work on objects that aren't structs
   (<https://bugs.gnu.org/31606>)

** Fix type inference for bitwise logical operators
   (<https://bugs.gnu.org/31474>)

** Avoid inexact arithmetic in the type inferrer for 'sqrt'

** Fix floating point unboxing regression in 2.2.3
   (<https://bugs.gnu.org/30020>)

** Fix eta-conversion edge cases in peval (<https://bugs.gnu.org/29520>)

** Correctly interpret SRFI-18 timeout parameters
   (<https://bugs.gnu.org/29704>)

** 'select' returns empty sets upon EINTR and EAGAIN
   (<https://bugs.gnu.org/30368>)

** Restore pre-2.2.3 '%fresh-auto-compile' behavior

This reverts an incorrect fix for <https://bugs.gnu.org/29226>.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.7 2018/01/08 22:37:08 joerg Exp $
d3 1
a3 1
DISTNAME=	guile-2.2.4
@


1.7
log
@guile22: Use correct mmap permissions for later PROT_WRITE mprotect.
Revert paxctl hack. Bump revision.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.6 2018/01/08 10:39:45 wiz Exp $
d3 1
a3 1
DISTNAME=	guile-2.2.3
a4 1
PKGREVISION=	2
@


1.6
log
@guile22: fix build on NetBSD 8+
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.5 2017/12/02 18:34:04 gdt Exp $
d5 1
a5 1
PKGREVISION=	1
@


1.5
log
@Update to 2.2.3

Upstream Changelog is large; bug fixes are omitted and heaeders only
follow; see NEWS for details.

Changes in 2.2.3 (since 2.2.2):

* New interfaces and functionality

** (web uri) module has better support for RFC 3986

** `struct-ref/unboxed' and `struct-set!/unboxed'

** Improved support for arrays with non-zero lower bounds

** Add `uintptr_t' and `intptr_t' to FFI types.

* Compiler improvements

** Improve speed of compiler backend for functions without loops

** Disable slot pre-coloring for optimization level "-O1" or below

** Improve complexity of constant subexpression elimination pass

** CPS conversion avoids generating return arity adapters if possible

* New deprecations

** Using `uri?' as a predicate on relative-refs deprecated

** Struct tail arrays deprecated

** Struct "self" slots deprecated

** Struct fields with opaque ("o") protection deprecated

** Using `struct-ref' and `struct-set!' on unboxed fields is deprecated

Changes in 2.2.2 (since 2.2.1):

Changes in 2.2.1 (since 2.2.0):

* Notable changes

** New sandboxed evaluation facility

** All literal constants are read-only

** Syntax objects are now a distinct type
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.4 2017/08/19 00:27:59 jlam Exp $
d5 1
@


1.4
log
@lang/guile22: Fix PLIST errors for non-default PKG{INFO,MAN}DIR.

If Guile installs into a non-default installation prefix, then
use ${GUILE_PREFIX}/info and ${GUILE_PREFIX}/man as the locations
for the installed GNU info files and manpages.  This avoids needing
to do a lot of fixes to the PLISTs.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.3 2017/03/16 23:39:05 wiz Exp $
d3 1
a3 1
DISTNAME=	guile-2.2.0
a4 1
PKGREVISION=	1
@


1.3
log
@Remove alpha.gnu.org from master sites, this has been properly released.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.2 2017/03/16 14:13:43 wiz Exp $
d15 2
a16 2
GUILE_PREFIX=	${PREFIX}/guile/2.2
#GUILE_PREFIX=	${PREFIX}
a22 4
CONFIGURE_ARGS+=	--prefix=${GUILE_PREFIX}
CONFIGURE_ARGS+=	--mandir=${GUILE_PREFIX}/${PKGMANDIR}
CONFIGURE_ARGS+=	--infodir=${GUILE_PREFIX}/${PKGINFODIR}

d25 6
a30 1
# When GUILE_PREFIX is non-default, these must be enabled.
d33 5
@


1.2
log
@Fix installation prefix from 2.1 to 2.2. Bump PKGREVISION.

Noted by gdt.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.1 2017/03/16 10:02:57 wiz Exp $
d7 1
a7 2
MASTER_SITES=	ftp://ftp.gnu.org/gnu/guile/ \
		ftp://alpha.gnu.org/gnu/guile/
@


1.1
log
@Import guile22-2.2.0 as lang/guile22.

GUILE, GNU's Ubiquitous Intelligent Language for Extension, is a library
that implements the Scheme language plus various convenient facilities.
It's designed so that you can link it into an application or utility to
make it extensible. Our plan is to link this library into all GNU programs
that call for extensibility.

This is guile 2.2, the current stable version.
@
text
@d1 1
a1 1
# $NetBSD: Makefile,v 1.11 2017/02/21 15:55:28 gdt Exp $
d5 1
d16 1
a16 1
GUILE_PREFIX=	${PREFIX}/guile/2.1
@

