028433ae35
New in Gauche 0.9.1: Major Feature Enhancements + New Features o Extended formals: Built-in lambda, define etc. can recognize optional and keyword arguments, a la Common Lisp. o Enhanced module mechanism: Now you can rename, choose, or add prefix to the symbols when importing other modules. o Efficient record types: A new module gauche.record provides ERR5RS (srfi-99) compatible record types. It is also upper compatible to srfi-9 records. o More support for multithreaded applications: Thread-safe queue is added to util.queue, and thread-pool feature is provided by the new module control.thread-pool. Continuations can be passed between threads. o Partial continuations. o Enhanced Windows support. o New module: crypt.bcrypt: A module for Blowfish password hashing. o New module: srfi-98: portable environment variable lookup support. o New module: gauche.mop.propagate: Making object composition simpler. o New module: rfc.json: JSON parsing and construction. + Changes o The directory structure for Gauche installation has changed so that we can keep binary compatibility for the extension modules throughout 0.9.x releases. o Now it is an error to pass a keyword argument that isn't expected by the callee. It used to be a warning. o Regular expression re{,M} now means the same as re{0,M}, which is compatible to Oniguruma. + Improvements o The compiler and the runtime got optimized more. The compiler now knows more about built-in procedures, and tries compile-time constant folding and/or inlining more aggressively. For example, sxml.ssax can parse XML document a lot faster. o ^ can be used in place of lambda, allowing more concise code. There's also convenience macros ^a, ^b, ... ^z and ^_ as abbreviations of lambda (a) etc. o ~ is added for universal accessing operator. (~ x y) is the same as (ref x y), and (~ x y z) is the same as (ref (ref x y) z), and so on. It can be used with generalized setter, e.g. (set! (~ array i) x). o define-syntax, let-syntax, and letrec-syntax are enhanced so that they can take a general expression in rhs, as far as it yields a syntactic transformer. o gauche.process: I/O redirection handling in run-process becomes more flexible. o rfc.http module now supports https connection (unix platforms only). Currently it relies on an external program (stunnel). o A new procedure current-load-path allows the program to know the file name it is being loaded from. o A new procedure .$ is introduced as an alternative name of compose. o Regular expressions now got read-write invariance. Some internal regexp routines are made public, giving users an easy way to construct and analyze regexp programatically. o rfc.822: New procedure: rfc822-date->date. o file.util: The procedure temporary-directory now became a parameter so that you can switch it when necessary. The default value is taken from (sys-tmpdir), which determines temporary directory in the recommended way of the platform; esp., it works on Windows native platforms. home-directory works on Windows, too. Procedures null-device and console-device are added to make it easier to write portable script across Unix and Windows platforms. o util.queue: New proceduers: any-in-queue, every-in-queue. o gauche.parseopt: When let-args encounters a command-line option that doesn't match any spec, it now raises a condition of type <parseopt-error> instead of <error>. The application can capture the condition to handle invalid command-line arguments. o gauche.uvector: New procedure uvector-size to obtain number of octets actually to be written out when the given uvector is written out by write-block. o dbm: A new procedure dbm-type->class allows an application to load appropriate dbm implementation at runtime. Utility scripts dbm/dump and dbm/restore are provided for easier backup and migration. o Procedure slot-pop! is added for the consistency with other *-push!/pop! API pairs. o When ref is used for object slot access, it can take default value in case the slot is unbound. o Made (set! (ref list k) value) work. o New procedures delete-keywords, delete-keywords!, tree-map-map, tree-map-for-each. o unwind-protect allows multiple handlers, as in CL. o sqrt now returns an exact number if the argument is exact and the result can be computed exactly. Also, R6RS's exact-integer-sqrt is added. o gauche.parameter: Parameters can be used with generalized set!. o The default-endian parameter is moved from binary.io module to the core, so that this parameter controls default endian of binary I/O in general. For example, read-block! and write-block of the gauche.uvector module now uses the value of this parameter as the default. A new procedure native-endian is added to retrieve the platform's native endianness. o More R6RS procedures: inexact, exact, real-valued?, rational-valued?, integer-valued?, div, mod, div0, mod0. A number of bug fixes.
56 lines
1.4 KiB
Makefile
56 lines
1.4 KiB
Makefile
# $NetBSD: Makefile,v 1.55 2010/12/16 03:42:08 asau Exp $
|
|
#
|
|
|
|
DISTNAME= Gauche-0.9.1
|
|
CATEGORIES= lang
|
|
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=gauche/}
|
|
EXTRACT_SUFX= .tgz
|
|
|
|
MAINTAINER= uebayasi@NetBSD.org, minoura@NetBSD.org
|
|
HOMEPAGE= http://www.shiro.dreamhost.com/scheme/gauche/index.html
|
|
COMMENT= R5RS Scheme implementation aimed to be a handy tool for daily works
|
|
|
|
DEPENDS+= slib-[0-9]*:../../devel/slib
|
|
|
|
PKG_DESTDIR_SUPPORT= user-destdir
|
|
NOT_FOR_BULK_PLATFORM= HPUX-*-*
|
|
|
|
.include "options.mk"
|
|
|
|
EVAL_PREFIX+= SLIB_PREFIX=slib
|
|
|
|
MAKE_JOBS_SAFE= no
|
|
GNU_CONFIGURE= yes
|
|
CONFIGURE_ARGS+= --with-slib=${SLIB_PREFIX}/share/slib
|
|
CONFIGURE_ARGS+= --enable-threads=pthreads
|
|
CONFIGURE_ARGS+= --with-iconv=${BUILDLINK_PREFIX.iconv}
|
|
|
|
CHECK_BUILTIN.iconv:= no
|
|
.include "../../converters/libiconv/builtin.mk"
|
|
CHECK_BUILTIN.iconv:= yes
|
|
|
|
.if !empty(USE_BUILTIN.iconv:M[nN][oO])
|
|
CONFIGURE_ARGS+= --with-iconv-lib=${BUILDLINK_LIBNAME.iconv}
|
|
ALL_ENV+= \
|
|
ICONV_LDFLAGS="${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.iconv}/lib"
|
|
.endif
|
|
|
|
USE_LIBTOOL= yes
|
|
USE_TOOLS+= gzip makeinfo
|
|
TEST_TARGET= check
|
|
INFO_FILES= yes
|
|
|
|
# refer %install in ${WRKSRC}/Gauche.spec
|
|
INSTALL_TARGET= install-pkg install-doc
|
|
|
|
# Does relink internally
|
|
BUILDLINK_PASSTHRU_RPATHDIRS+= ${WRKSRC}
|
|
|
|
.include "../../mk/dlopen.buildlink3.mk"
|
|
.include "../../mk/pthread.buildlink3.mk"
|
|
|
|
post-install:
|
|
gzip -d ${DESTDIR}${PREFIX}/${PKGINFODIR}/gauche-ref*gz
|
|
|
|
.include "../../converters/libiconv/buildlink3.mk"
|
|
.include "../../mk/bsd.pkg.mk"
|