pkgsrc-WIP-changes archive

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

wip/chicken5: Import as chicken5-5.1.0



Module Name:	pkgsrc-wip
Committed By:	ng0 <ng0%n0.is@localhost>
Pushed By:	ng0
Date:		Thu Jun 20 23:52:31 2019 +0000
Changeset:	ffe53934321b2c9084ba1d90bb68a4d8eb77c2e6

Modified Files:
	Makefile
Added Files:
	chicken5/DESCR
	chicken5/Makefile
	chicken5/PLIST
	chicken5/distinfo
	chicken5/patches/patch-tests_runtests.sh

Log Message:
wip/chicken5: Import as chicken5-5.1.0

Changelog:

5.1.0

- Core libraries
  - Symbols ending or starting with a colon are now always pipe-quoted
    when written by `write` to ensure they can be read back with a
    different keyword-style setting.
  - Read-write invariance of special symbols starting with #! other
    than #!key, #!rest or #!optional is now preserved (#1572).
  - When using (set-file-position!) on a port, its EOF status will now
    be reset.
  - In (chicken file posix), the values of perm/irgrp, perm/iwgrp,
    perm/ixgrp, perm/iroth, perm/iwoth and perm/ixoth are now correctly
    defined (they were all for "usr"; #1602, thanks to Eric Hoffman).
  - In (chicken file posix), `file-truncate` now accepts also accepts
    port objects, for consistency with other file procedures.
    All such procedures from (chicken file posix) now have the correct
    types in types.db (fixes #1609, thanks to Robert Jensen).
  - Add the system-config-directory and system-cache-directory procedures
    in the chicken.platform module. These procedures follow the XDG
    specification and also give sensible results on Windows.
  - Fix get-environment from (chicken process-context) to raise an
    error when passed #f instead of segfaulting.
  - Qualified symbols (##foo#bar style) are no longer encoded by a
    byte prefix inside the symbol name.  This ensures read-write
    invariance of symbols which start with a low-byte character
    (fixes #1077, except for keywords, which start with NUL bytes).
  - Fix a missing export (list->s64vector) in SRFI-4.

- Runtime system
  - Keywords are now distinct types; they are not a subtype of symbols.
  - Use arc4random on FreeBSD (thanks to Tobias Kortkamp and gahr)
  - Removed the unused, undocumented (and incorrect!) C functions
    C_delete_symbol_table and C_set_symbol_table.
  - Continuations which discard additional values beyond the first no
    longer accept multiple values via direct invocation after being
    captured through `call/cc`, only via `values` (revert of #1390,
    due to #1601)
  - SRFI-4 vector predicates, reference, set and length procedures
    should now be faster in tight loops as they're inlineable (#757).
  - Keywords are now interned in a separate keyword table, not in the
    standard symbol table.  This brings full read-write invariance
    for symbols (they can now also start with NUL bytes).  Keywords
    no longer have plists.  Fixes #1576.
  - Increased the "binary compatibility version" to 11.

- Compiler
  - Restored optimized implementations of =, +, -, /, * and quotient in
    fixnum-arithmetic mode (fixes #1604 mostly; thanks to "chickendan").
  - Added an optimization pass for reducing the amount of boxing of
    intermediate floating point values, enabled by the "-lfa2" compiler
    option.
  - The "lfa2" pass is now enabled at optimization levels 2 or higher.

- Module system
  - When you try to import the module you are currently defining into
    itself, an error will be raised. This prevents an infinite loop in
    the compiler when later trying to import that same module (fixes
    #1506, thanks to Kristian Lein-Mathisen).

- Foreign function interface
  - Improved hygiene in FFI macro expansions, which means you don't
     have to import "scheme" or "(chicken base)" for them to work.

- Type system
  - It is now possible to quote free variables in type declarations,
     which acts as shorthand for `forall' (thanks to "megane")

- Tools
  - csi now uses (system-config-directory) to find csirc and falls back to
    $HOME/.csirc when needed.
  - chicken-install now uses (system-config-directory) to find a user
    defined setup.defaults file ; it also uses (system-cache-directory)
    for its egg cache directory when the CHICKEN_EGG_CACHE environment
    variable is not defined.

- Egg specifications
  - Allows "cond-expand" and "error" forms in egg specification files.
  - Add "c-object" and "object" properties to link separately compiled
     C objects into CHICKEN code.

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=ffe53934321b2c9084ba1d90bb68a4d8eb77c2e6

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 Makefile                                 |   1 +
 chicken5/DESCR                           |  12 +++
 chicken5/Makefile                        |  55 ++++++++++++
 chicken5/PLIST                           | 146 +++++++++++++++++++++++++++++++
 chicken5/distinfo                        |   7 ++
 chicken5/patches/patch-tests_runtests.sh |  18 ++++
 6 files changed, 239 insertions(+)

diffs:
diff --git a/Makefile b/Makefile
index 0dbd71548f..f2511f09a6 100644
--- a/Makefile
+++ b/Makefile
@@ -389,6 +389,7 @@ SUBDIR+=	chems
 SUBDIR+=	cherokee
 SUBDIR+=	chezscheme
 SUBDIR+=	chibi-scheme
+SUBDIR+=	chicken5
 SUBDIR+=	chocolate-doom
 SUBDIR+=	choosefont
 SUBDIR+=	chora
diff --git a/chicken5/DESCR b/chicken5/DESCR
new file mode 100644
index 0000000000..041f6a6523
--- /dev/null
+++ b/chicken5/DESCR
@@ -0,0 +1,12 @@
+CHICKEN is a Scheme-to-C compiler supporting most of the language
+features as defined in the Revised^5 Report on Scheme.  CHICKEN
+generates quite portable C code, and files compiled by it (including
+itself) should work without any changes on most platforms.
+
+The whole package is distributed under a BSD license and as such free
+to use and modify as long as you adhere to its terms (see the manual).
+Linkage to C modules and C-library functions is straightforward, so
+it's easy to access C from Scheme.  Compiled code can be embedded into
+existing C programs without problems.  The generated code supports
+full tail-recursion, first-class continuations, multiple values and
+dynamic-wind.
diff --git a/chicken5/Makefile b/chicken5/Makefile
new file mode 100644
index 0000000000..f790ff838b
--- /dev/null
+++ b/chicken5/Makefile
@@ -0,0 +1,55 @@
+# $NetBSD: Makefile,v 1.1 2018/12/21 12:35:38 leot Exp $
+
+DISTNAME=	chicken-5.1.0
+CATEGORIES=	lang
+MASTER_SITES=	http://code.call-cc.org/releases/${PKGVERSION_NOREV}/
+
+MAINTAINER=	pkgsrc-users%NetBSD.org@localhost
+HOMEPAGE=	http://www.call-cc.org/
+COMMENT=	Scheme to C compiler, handling R5RS
+LICENSE=	modified-bsd
+
+MAKE_JOBS_SAFE=	no
+
+USE_LIBTOOL=		yes
+USE_TOOLS+=		gmake
+UNLIMIT_RESOURCES=	datasize
+
+OWN_DIRS=		${PREFIX}/lib/chicken ${PREFIX}/lib/chicken/11
+
+BUILD_TARGET=		all
+
+.include "../../mk/bsd.prefs.mk"
+
+# PLATFORM detection:
+.if !empty(OPSYS:M*BSD) || ${OPSYS} == "DragonFly"
+PLATFORM=	bsd
+.elif ${OPSYS} == "Linux"
+PLATFORM=	linux
+.elif ${OPSYS} == "Darwin"
+PLATFORM=	macosx
+.elif ${OPSYS} == "SunOS"
+PLATFORM=	solaris
+.elif ${OPSYS} == "Haiku"
+PLATFORM=	haiku
+.else
+#PLATFORM+=	${OPSYS} == "Interix"
+# possible choices left: aix android cross-linux-mingw cygwin hurd mingw
+#                        mingw-msys
+PKG_SKIP_REASON+=	"${OPSYS} is not supported"
+.endif
+
+MAKE_FILE=	GNUmakefile
+MAKE_ENV+=	C_COMPILER=${CC:Q}
+MAKE_ENV+=	HOST=	# fix ${HOST} prepending ${CC}
+# Need to have these in MAKE_FLAGS, MAKE_ENV is not enough due to the
+# way the build system overrides them.
+MAKE_FLAGS+=	PLATFORM=${PLATFORM:Q} PREFIX=${PREFIX:Q} DESTDIR=${DESTDIR:Q}
+MAKE_FLAGS+=	MANDIR=${PREFIX:Q}/${PKGMANDIR}
+MAKE_FLAGS+=	INFODIR=${PREFIX:Q}/${PKGINFODIR:Q}
+MAKE_FLAGS+=	DOCDIR=${PREFIX:Q}/share/doc/${PKGNAME_NOREV}
+MAKE_FLAGS+=	INSTALL_PROGRAM=${INSTALL:Q}
+
+TEST_TARGET=	check
+
+.include "../../mk/bsd.pkg.mk"
diff --git a/chicken5/PLIST b/chicken5/PLIST
new file mode 100644
index 0000000000..aa55a75c88
--- /dev/null
+++ b/chicken5/PLIST
@@ -0,0 +1,146 @@
+@comment $NetBSD: PLIST,v 1.1 2018/12/21 12:35:38 leot Exp $
+bin/chicken
+bin/chicken-do
+bin/chicken-install
+bin/chicken-profile
+bin/chicken-status
+bin/chicken-uninstall
+bin/csc
+bin/csi
+bin/feathers
+include/chicken/chicken-config.h
+include/chicken/chicken.h
+lib/chicken/11/chicken.base.import.so
+lib/chicken/11/chicken.bitwise.import.so
+lib/chicken/11/chicken.blob.import.so
+lib/chicken/11/chicken.compiler.user-pass.import.so
+lib/chicken/11/chicken.condition.import.so
+lib/chicken/11/chicken.continuation.import.so
+lib/chicken/11/chicken.csi.import.so
+lib/chicken/11/chicken.errno.import.so
+lib/chicken/11/chicken.eval.import.so
+lib/chicken/11/chicken.file.import.so
+lib/chicken/11/chicken.file.posix.import.so
+lib/chicken/11/chicken.fixnum.import.so
+lib/chicken/11/chicken.flonum.import.so
+lib/chicken/11/chicken.foreign.import.so
+lib/chicken/11/chicken.format.import.so
+lib/chicken/11/chicken.gc.import.so
+lib/chicken/11/chicken.internal.import.so
+lib/chicken/11/chicken.io.import.so
+lib/chicken/11/chicken.irregex.import.so
+lib/chicken/11/chicken.keyword.import.so
+lib/chicken/11/chicken.load.import.so
+lib/chicken/11/chicken.locative.import.so
+lib/chicken/11/chicken.memory.import.so
+lib/chicken/11/chicken.memory.representation.import.so
+lib/chicken/11/chicken.pathname.import.so
+lib/chicken/11/chicken.platform.import.so
+lib/chicken/11/chicken.plist.import.so
+lib/chicken/11/chicken.port.import.so
+lib/chicken/11/chicken.pretty-print.import.so
+lib/chicken/11/chicken.process-context.import.so
+lib/chicken/11/chicken.process-context.posix.import.so
+lib/chicken/11/chicken.process.import.so
+lib/chicken/11/chicken.process.signal.import.so
+lib/chicken/11/chicken.random.import.so
+lib/chicken/11/chicken.read-syntax.import.so
+lib/chicken/11/chicken.repl.import.so
+lib/chicken/11/chicken.sort.import.so
+lib/chicken/11/chicken.string.import.so
+lib/chicken/11/chicken.syntax.import.so
+lib/chicken/11/chicken.tcp.import.so
+lib/chicken/11/chicken.time.import.so
+lib/chicken/11/chicken.time.posix.import.so
+lib/chicken/11/srfi-4.import.so
+lib/chicken/11/types.db
+lib/libchicken.a
+lib/libchicken.so
+lib/libchicken.so.11
+man/man1/chicken-do.1
+man/man1/chicken-install.1
+man/man1/chicken-profile.1
+man/man1/chicken-status.1
+man/man1/chicken-uninstall.1
+man/man1/chicken.1
+man/man1/csc.1
+man/man1/csi.1
+man/man1/feathers.1
+share/chicken/feathers.tcl
+share/chicken/setup.defaults
+share/doc/${PKGNAME}/DEPRECATED
+share/doc/${PKGNAME}/LICENSE
+share/doc/${PKGNAME}/README
+share/doc/${PKGNAME}/manual/Accessing external objects.html
+share/doc/${PKGNAME}/manual/Acknowledgements.html
+share/doc/${PKGNAME}/manual/Bibliography.html
+share/doc/${PKGNAME}/manual/Bugs and limitations.html
+share/doc/${PKGNAME}/manual/C interface.html
+share/doc/${PKGNAME}/manual/Cross development.html
+share/doc/${PKGNAME}/manual/Data representation.html
+share/doc/${PKGNAME}/manual/Debugging.html
+share/doc/${PKGNAME}/manual/Declarations.html
+share/doc/${PKGNAME}/manual/Deployment.html
+share/doc/${PKGNAME}/manual/Deviations from the standard.html
+share/doc/${PKGNAME}/manual/Egg specification format.html
+share/doc/${PKGNAME}/manual/Embedding.html
+share/doc/${PKGNAME}/manual/Extension tools.html
+share/doc/${PKGNAME}/manual/Extensions to the standard.html
+share/doc/${PKGNAME}/manual/Extensions.html
+share/doc/${PKGNAME}/manual/Foreign type specifiers.html
+share/doc/${PKGNAME}/manual/Getting started.html
+share/doc/${PKGNAME}/manual/Included modules.html
+share/doc/${PKGNAME}/manual/Interface to external functions and variables.html
+share/doc/${PKGNAME}/manual/Module (chicken base).html
+share/doc/${PKGNAME}/manual/Module (chicken bitwise).html
+share/doc/${PKGNAME}/manual/Module (chicken blob).html
+share/doc/${PKGNAME}/manual/Module (chicken condition).html
+share/doc/${PKGNAME}/manual/Module (chicken continuation).html
+share/doc/${PKGNAME}/manual/Module (chicken csi).html
+share/doc/${PKGNAME}/manual/Module (chicken errno).html
+share/doc/${PKGNAME}/manual/Module (chicken eval).html
+share/doc/${PKGNAME}/manual/Module (chicken file posix).html
+share/doc/${PKGNAME}/manual/Module (chicken file).html
+share/doc/${PKGNAME}/manual/Module (chicken fixnum).html
+share/doc/${PKGNAME}/manual/Module (chicken flonum).html
+share/doc/${PKGNAME}/manual/Module (chicken foreign).html
+share/doc/${PKGNAME}/manual/Module (chicken format).html
+share/doc/${PKGNAME}/manual/Module (chicken gc).html
+share/doc/${PKGNAME}/manual/Module (chicken io).html
+share/doc/${PKGNAME}/manual/Module (chicken irregex).html
+share/doc/${PKGNAME}/manual/Module (chicken keyword).html
+share/doc/${PKGNAME}/manual/Module (chicken load).html
+share/doc/${PKGNAME}/manual/Module (chicken locative).html
+share/doc/${PKGNAME}/manual/Module (chicken memory representation).html
+share/doc/${PKGNAME}/manual/Module (chicken memory).html
+share/doc/${PKGNAME}/manual/Module (chicken module).html
+share/doc/${PKGNAME}/manual/Module (chicken pathname).html
+share/doc/${PKGNAME}/manual/Module (chicken platform).html
+share/doc/${PKGNAME}/manual/Module (chicken plist).html
+share/doc/${PKGNAME}/manual/Module (chicken port).html
+share/doc/${PKGNAME}/manual/Module (chicken pretty-print).html
+share/doc/${PKGNAME}/manual/Module (chicken process signal).html
+share/doc/${PKGNAME}/manual/Module (chicken process).html
+share/doc/${PKGNAME}/manual/Module (chicken process-context posix).html
+share/doc/${PKGNAME}/manual/Module (chicken process-context).html
+share/doc/${PKGNAME}/manual/Module (chicken random).html
+share/doc/${PKGNAME}/manual/Module (chicken read-syntax).html
+share/doc/${PKGNAME}/manual/Module (chicken repl).html
+share/doc/${PKGNAME}/manual/Module (chicken sort).html
+share/doc/${PKGNAME}/manual/Module (chicken string).html
+share/doc/${PKGNAME}/manual/Module (chicken syntax).html
+share/doc/${PKGNAME}/manual/Module (chicken tcp).html
+share/doc/${PKGNAME}/manual/Module (chicken time posix).html
+share/doc/${PKGNAME}/manual/Module (chicken time).html
+share/doc/${PKGNAME}/manual/Module (chicken type).html
+share/doc/${PKGNAME}/manual/Module r4rs.html
+share/doc/${PKGNAME}/manual/Module r5rs.html
+share/doc/${PKGNAME}/manual/Module scheme.html
+share/doc/${PKGNAME}/manual/Module srfi-4.html
+share/doc/${PKGNAME}/manual/Modules.html
+share/doc/${PKGNAME}/manual/The User's Manual.html
+share/doc/${PKGNAME}/manual/Types.html
+share/doc/${PKGNAME}/manual/Units and linking model.html
+share/doc/${PKGNAME}/manual/Using the compiler.html
+share/doc/${PKGNAME}/manual/Using the interpreter.html
+share/doc/${PKGNAME}/manual/manual.css
diff --git a/chicken5/distinfo b/chicken5/distinfo
new file mode 100644
index 0000000000..8afc779ba9
--- /dev/null
+++ b/chicken5/distinfo
@@ -0,0 +1,7 @@
+$NetBSD: distinfo,v 1.1 2018/12/21 12:35:38 leot Exp $
+
+SHA1 (chicken-5.1.0.tar.gz) = ac5abdf82168d5d86f00a79f75f7a73dc0c717ab
+RMD160 (chicken-5.1.0.tar.gz) = e12a746e1dffd5cd2c16cbb0e33540f818879b38
+SHA512 (chicken-5.1.0.tar.gz) = 56bfe918e4c4069f15f845350bf334df7580f3b6e53c1edc4abbeafdb57cfc86cb6ce426c9b9e739ca415e830e538a76b27de16ec04643eae8d45ea82c9ed3f3
+Size (chicken-5.1.0.tar.gz) = 4071169 bytes
+SHA1 (patch-tests_runtests.sh) = c2bcee720a56cc399c6acdb1e002dbcd82ea272e
diff --git a/chicken5/patches/patch-tests_runtests.sh b/chicken5/patches/patch-tests_runtests.sh
new file mode 100644
index 0000000000..c90e9605d7
--- /dev/null
+++ b/chicken5/patches/patch-tests_runtests.sh
@@ -0,0 +1,18 @@
+$NetBSD: patch-tests_runtests.sh,v 1.1 2018/12/21 12:35:38 leot Exp $
+
+`export -p' also exports make(1) variables that contains `.', e.g.
+`.MAKE.ENV.LEVEL'.  As part of `. ./env.out' this lead to failure because
+variable with `.' are not valid is sh(1) context.
+Filter `export -p' output to avoid that.
+
+--- tests/runtests.sh.orig	2018-09-23 09:24:46.000000000 +0000
++++ tests/runtests.sh
+@@ -64,7 +64,7 @@ cp $TYPESDB test-repository/types.db
+ 
+ echo "======================================== repository search path ..."
+ if test -z "$MSYSTEM"; then
+-  export -p >./env.out
++  export -p | sed -ne '/export [^.]*=/p' >./env.out
+   unset CHICKEN_REPOSITORY_PATH
+   $interpret -s repository-path-default.scm
+   . ./env.out


Home | Main Index | Thread Index | Old Index