(Arne Babenhauserheide)
2014-08-07: merge default for release: simpler unicode handling and honor stable v0.6.1 merge default for release: simpler unicode handling and honor --quiet for bootstrapping.
diff --git a/Makefile.am b/Makefile.am
--- a/Makefile.am
+++ b/Makefile.am
@@ -2,7 +2,10 @@ wisp = wisp.scm language/wisp/spec.scm
wisp_SOURCES = wisp-guile.w wisp-reader.w
EXTRA_DIST = $(wisp_SOURCES) $(wisp_DATA) bootstrap.sh wisp.py examples tests runtests.sh wisp-repl-guile.sh
CLEANFILES = ${wisp} ChangeLog
-DISTCLEANFILES = ${CLEANFILES} @abs_top_builddir@/1 @abs_top_builddir@/2 @abs_top_builddir@/test.sh
+DISTCLEANFILES = ${CLEANFILES} @abs_top_builddir@/1 @abs_top_builddir@/2 @abs_top_builddir@/syntaxtests.sh
+# don't spout out lots of stuff at each distcheck. Disable for debugging.
+AM_DISTCHECK_CONFIGURE_FLAGS="--quiet"
+
all : ${wisp}
@@ -14,12 +17,12 @@ ChangeLog :
.INTERMEDIATE: input.in.intermediate
input.in.intermediate: ${wisp_SOURCES}
- @abs_top_srcdir@/bootstrap.sh @abs_top_srcdir@ @guile@ @python3@
+ @abs_top_srcdir@/bootstrap.sh @abs_top_srcdir@ @guile@ @python3@ 2>&1 | sed "s/^;;;.*//" 2>&1 | grep . 1>&2 ; test ! $$? -eq 0 # grep did not find anything
-.PHONY: test.sh
-test.sh : wisp.scm runtests.sh
- echo '#!/bin/bash' > @abs_top_builddir@/test.sh
- echo @abs_top_srcdir@/runtests.sh @abs_top_srcdir@ @abs_top_builddir@ >> @abs_top_builddir@/test.sh
- chmod +x @abs_top_builddir@/test.sh
+.PHONY: syntaxtests.sh
+syntaxtests.sh : wisp.scm runtests.sh
+ echo '#!/bin/bash' > @abs_top_builddir@/syntaxtests.sh
+ echo @abs_top_srcdir@/runtests.sh @abs_top_srcdir@ @abs_top_builddir@ >> @abs_top_builddir@/syntaxtests.sh
+ chmod +x @abs_top_builddir@/syntaxtests.sh
-TESTS=test.sh
+TESTS=syntaxtests.sh
diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,7 @@
+wisp 0.6.1 (2014-08-05):
+- simpler unicode handling
+- honor --quiet in bootstrapping
+
wisp 0.6.0 (2014-07-14):
- Better performance
- Support for SRFI-105
diff --git a/bootstrap.sh b/bootstrap.sh
--- a/bootstrap.sh
+++ b/bootstrap.sh
@@ -26,12 +26,13 @@ if [[ ! x"${diff}" == x"success" ]]; the
echo "failed to bootstrap wisp.scm. diff: " ${diff}
exit 1
fi
-echo "successfully bootstrapped wisp.scm"
-echo preparing the reader: wisp at the REPL
-echo parsing the spec file...
+# put all output into stderr via 1>&2 and prefix it with ;;; to make it possible to kill it alongside the auto-compile output from guile with one sed.
+echo ";;;" "successfully bootstrapped wisp.scm" 1>&2
+echo ";;;" preparing the reader: wisp at the REPL 1>&2
+echo ";;;" parsing the spec file... 1>&2
mkdir -p language/wisp
${guile} wisp.scm ${srcdir}/wisp-reader.w 2>/dev/null > language/wisp/spec.scm \
- && echo ...precompiling the spec file... \
+ && echo ";;;" ...precompiling the spec file... 1>&2 \
&& ${guile} -L . -s language/wisp/spec.scm \
- && echo ...succeeded \
- && echo to use wisp at the REPL, run '`'${guile} -L . --language=wisp'`'
+ && echo ";;;" ...succeeded 1>&2 \
+ && echo ";;;" to use wisp at the REPL, run '`'${guile} -L . --language=wisp'`' 1>&2
diff --git a/configure.ac b/configure.ac
--- a/configure.ac
+++ b/configure.ac
@@ -1,14 +1,14 @@
dnl run `autoreconf -i` to generate a configure script.
dnl Then run ./configure to generate a Makefile.
dnl Finally run make to generate the project.
-AC_INIT([wisp], [0.6.0],
+AC_INIT([wisp], [0.6.1],
[arne_bab@web.de])
# Check for programs I need for my build
AC_CANONICAL_TARGET
-AC_ARG_VAR([guile], [How to call GNU Guile.])
-AC_CHECK_TARGET_TOOL([guile], [guile], [no])
+AC_ARG_VAR([guile], [How to call GNU Guile 2.0.x.])
+AC_CHECK_TARGET_TOOL([guile], [guile-2.0], [no])
AS_IF([test "x$guile" = "xno"],
- [AC_MSG_ERROR([cannot find GNU Guile.])])
+ [AC_MSG_ERROR([cannot find GNU Guile 2.0 or later.])])
AC_ARG_VAR([python3], [How to call Python 3.])
AC_CHECK_TARGET_TOOL([python3], [python3], [no])
AS_IF([test "x$python3" = "xno"],
diff --git a/docs/srfi.org b/docs/srfi.org
--- a/docs/srfi.org
+++ b/docs/srfi.org
@@ -80,7 +80,8 @@ Remember, even if a proposal becomes an
** Acknowledgments
-Thanks for lots of constructive discussions goes to Alan Manuel K. Gloria and David A. Wheeler.
+- Thanks for lots of constructive discussions goes to Alan Manuel K. Gloria and David A. Wheeler.
+- Also thanks to Mark Weaver for his help with the wisp parser and the guile integration - including a 20x speedup.
* Related SRFIs
@@ -429,7 +430,7 @@ if
** _ (the underscore)
-In Python the whitespace hostile html already presents problems with sharing code - for example in email list archives and forums. But in Python the indentation can mostly be inferred by looking at the previous line: If that ends with a colon, the next line must be more indented (there is nothing to clearly mark reduced indentation, though). In wisp we do not have that help, so we need a way to survive in that hostile environment.
+In Python the whitespace hostile html already presents problems with sharing code - for example in email list archives and forums. But in Python the indentation can mostly be inferred by looking at the previous line: If that ends with a colon, the next line must be more indented (there is nothing to clearly mark reduced indentation, though). In wisp we do not have this help, so we need a way to survive in that hostile environment.
The underscore is commonly used to denote a space in URLs, where spaces are inconvenient, but it is rarely used in lisp (where the dash ("-") is mostly used instead), so it seems like a a natural choice.
diff --git a/wisp-reader.w b/wisp-reader.w
--- a/wisp-reader.w
+++ b/wisp-reader.w
@@ -15,6 +15,9 @@ define-module : language wisp spec
. #:use-module : system base language
. #:export : wisp
+; Set locale to something which supports unicode. Required to avoid using fluids.
+setlocale LC_ALL ""
+
;;;
;;; Language definition
;;;
@@ -32,21 +35,10 @@ define : read-one-wisp-sexp port env
define : read-wisp-chunk
if : eof-object? : peek-char port
read-char port ; return eof: we’re done
- let
- : dpe : fluid-ref %default-port-encoding
- set-pending-port!
- lambda ()
- let
- : s : wisp2lisp : wisp-chunkreader port
- set! : wisp-pending-port port
- open-input-string s
- if dpe ; default port encoding is set
- set-pending-port!
- ; else: we need to redefine %default-port-encoding to
- ; UTF-8. Use with-fluids to avoid affecting other code.
- with-fluids : : %default-port-encoding "UTF-8"
- set-pending-port!
- try-pending
+ let : : s : wisp2lisp : wisp-chunkreader port
+ set! : wisp-pending-port port
+ open-input-string s
+ try-pending
define : try-pending
let : : pending-port : wisp-pending-port port
if pending-port