(Arne Babenhauserheide)
2014-07-14: merge merge
diff --git a/.hgsigs b/.hgsigs --- a/.hgsigs +++ b/.hgsigs @@ -8,3 +8,4 @@ 1d95b99da08b25917847702a382c691b5bd1de69 a41ca7bf033667a8dfeacd48be5caf315fabb020 0 iJwEAAEIAAYFAlL2Z+gACgkQ3M8NswvBBUisDgQAiHKSfcOdlWoin7wpHDVlyKhAxAIg5D9xwAGDj2CIVEu4cpw5HdZ8t8fjyrP6lMsAkHnCVNUlRjprdo7PR4al1uxNmz4H0mQMlDLxG4Sfj2x01w3DDgiNOfV/65lwNY9BNxULCjwBlHN5qzv9toLwZ29SLEZXvshuZBxe8qSfBy8= a2ae0f4d637ff5d615acc91d82d21259b0ec3b94 0 iJwEAAEIAAYFAlMJPXwACgkQ3M8NswvBBUjSEAP/bvPcy52p1mq4LuEkYxvj3UYnknT6g3yDCCXNEa2vuy6rkekZvbl6h9U2/FM37JEw2sgeqcp2P7epJzlxSpd9jIH+5/xT7R1FViOibLBumZ/5cQoMsthQyyrB2NhQbxtUf6fH5TnqZU/z9jdAZqBLABNaNeufetjGXbYmn4W7zk4= 4e9a5aef2eb1307e082d4536afa5d4f47840b6ec 0 iQEcBAABAgAGBQJTIGw4AAoJEFyD82SnDaCeQw4IAKt5CZS8Jx4qyL3Zb8z0xjop461uDnEXyg0m+QL2fUgv3kpsZM5CqgZRm8mF3bnRTtmPwwvtD+mjkz+xCUhAWkqCMH+VusLnwfVAeOxAAvvXT+z8quh/Xt9qZ8J8VaWh6L1CrYl8xJFDJlymCe/2pcOn9OnWF3QeNuLswWllebGRXFHpeUs+JZKVxXhwSyGnfKOiboXfpkrW4VoyCuWR4Mz/KczohAj8dZYhD+gRjTUGLS64TJbaevmTnffexgqvM3KYj8hvwx4m1Iz95QLxcb09fRA9BoRPNvaOHUNMsPSlpoDEMI/pBBfWx0ALadaYTmJvG/jGeyYDCWQMAXUjMIs= +a321c87fec27f184407da6a410c482a944074b7e 0 iQEcBAABAgAGBQJTw8CwAAoJEFyD82SnDaCeb/sH/374MNTwjx2LqBDAaK0jMHsFabm1/vZ99hlzNo0d7TPbl6/KkeicnluTpB+HVYtssMwHEFGiIWAY1xmX3rZKrYDpvCr2r15UZqqtyyeJxdDkqTQfsI7qwQy4FhZAfI9o948zYQ3z32TtsjPoyS6JDRZ1D0rBcU8/+K9AaYwl3QVsyxuvVwJK2Wb/Afn8CbG8xn0JtGNRbosfAAcgQDnV4MqA1p5MSDX3UaImWuVuBM9ejIvcyiBXxpwUb2DiEfFF8agsJoHQ/Vjy1j+IPE/mIa6nfV9I4Czb9wpItDXJe56wrsmGHEVVstnzys4DPiEWH57tG+iFgHXuw3gBJfySi2g= diff --git a/.hgtags b/.hgtags --- a/.hgtags +++ b/.hgtags @@ -16,3 +16,4 @@ bb1c4165b8a6d12929625e6518a5b1c727c75942 0e1335f015a83c6c6616019189c665b3849269ce v0.5.10 07ec05365e84d29d24ce5f476654f9542931ed2d v0.5.11 9af37e8efa7a2674caec07c7d2339f136f380d37 wisp-mode-0.2 +5475d743562512c44d2cdd0bf534c78c88efb0f8 v0.6.0 diff --git a/NEWS b/NEWS --- a/NEWS +++ b/NEWS @@ -1,3 +1,14 @@ +wisp 0.6.0 (2014-07-14): +- Better performance +- Support for SRFI-105 +- Working syntax highlighting in export via wisp-mode.el +- Wisp can now execute wisp-files directly via `guile -L . --language=wisp file.w`. +- Icosahedric Advection-Diffusion example: examples/d20world.w +- Draft for an SRFI +- Presentatien: Why Wisp? +- Working autoreconf -i; ./configure; make distcheck +- Real Testsuite (./runtests.sh . .) + wisp 0.5.3 (2014-01-08): Started to use autotools to get make distcheck. wisp 0.5.2 (2014-01-07): Support general paren-prefixes for macros. @@ -14,4 +25,4 @@ wisp 0.5 (2013-09-13): Wisp now has a RE Voilà, you have wisp at the REPL! Caveeat: the wisp-parser is still experimental and contains known bugs. Use it for testing, but please do not rely on it for important stuff, yet. -wisp 0.4 (2013-09-10): wisp-guile.w can now parse itself! Bootstrapping: The magical feeling of seeing a language (dialect) grow up to live by itself: python3 wisp.py wisp-guile.w > 1 && guile 1 wisp-guile.w > 2 && guile 2 wisp-guile.w > 3 && diff 2 3. Starting today, wisp is implemented in wisp. \ No newline at end of file +wisp 0.4 (2013-09-10): wisp-guile.w can now parse itself! Bootstrapping: The magical feeling of seeing a language (dialect) grow up to live by itself: python3 wisp.py wisp-guile.w > 1 && guile 1 wisp-guile.w > 2 && guile 2 wisp-guile.w > 3 && diff 2 3. Starting today, wisp is implemented in wisp. diff --git a/configure.ac b/configure.ac --- a/configure.ac +++ b/configure.ac @@ -1,7 +1,7 @@ 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.5.9], +AC_INIT([wisp], [0.6.0], [arne_bab@web.de]) # Check for programs I need for my build AC_CANONICAL_TARGET @@ -21,4 +21,4 @@ AS_IF([test "x$python3" = "xno"], AM_INIT_AUTOMAKE([gnu]) AM_MAINTAINER_MODE([enable]) AC_CONFIG_FILES([Makefile]) -AC_OUTPUT \ No newline at end of file +AC_OUTPUT diff --git a/wisp-multiline.sh b/wisp-multiline.sh --- a/wisp-multiline.sh +++ b/wisp-multiline.sh @@ -41,7 +41,7 @@ else fi PROGNAME=`basename $0` -ARGS=`getopt --name "$PN" --long help,lisp:,verbose,version,output:,wisp:interactive --options hl:vo:w:i -- "$@"` +ARGS=`getopt --name "$PROGNAME" --long help,lisp:,verbose,version,output:,wisp:interactive --options hl:vo:w:i -- "$@"` if [ $? -ne 0 ]; then exit 1 fi 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 ;;; @@ -30,10 +33,12 @@ define wisp-pending-port : make-object-p ; Code thanks to Mark Weaver define : read-one-wisp-sexp port env define : read-wisp-chunk - let : : s : wisp2lisp : wisp-chunkreader port - set! : wisp-pending-port port - open-input-string s - try-pending + if : eof-object? : peek-char port + read-char port ; return eof: we’re done + 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