wisp
 
(Arne Babenhauserheide)
2015-07-28: merge : . and SRFI-119. stable v0.8.5

merge : . and SRFI-119.

diff --git a/.hgtags b/.hgtags
--- a/.hgtags
+++ b/.hgtags
@@ -28,3 +28,4 @@ 8eaf023f5d3bc20ad4b795cde3a92e3b5c242dba
 327acbae68ef4efbf77734f0ee20359ed559ce0d v0.8.2
 41c48043ca33bf47311a93d0545b13a0578c3cf0 v0.8.3
 a4bca2a0f2f6659d97b1db471ae9803119b80529 v0.8.4
+f0096bf5f3baee5017be94f49c70515fe2a535b3 wisp-mode-0.2.1
diff --git a/NEWS b/NEWS
--- a/NEWS
+++ b/NEWS
@@ -1,3 +1,8 @@
+wisp 0.8.5 (2015-07-28):
+- wisp-scheme.w now parses : . to nothing. The colon adds parens, the
+  dot removes them. This provides compatibility to the older parser.
+- wisp is now SRFI-119: http://srfi.schemers.org/srfi-119/srfi-119.html
+
 wisp 0.8.4 (2015-06-23):
 - no longer wrap wisp blocks into begin. Fixes missing macro
   definitions when executed as file.
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.8.4],
+AC_INIT([wisp], [0.8.5],
         [arne_bab@web.de])
 # Check for programs I need for my build
 AC_CANONICAL_TARGET
diff --git a/docs/srfi-from-template.html b/docs/srfi-from-template.html
--- a/docs/srfi-from-template.html
+++ b/docs/srfi-from-template.html
@@ -33,7 +33,7 @@ subscribe to the list.  You can access p
     href="http://srfi.schemers.org/cgi-bin/viewcvs.cgi/*checkout*/srfi/srfi-119/srfi-119.html?rev=1.1">2015/01/25</a></li>
       <li>Draft: 2015/02/03-2015/04/03</li>
     <li>Revised: <a
-    href="http://srfi.schemers.org/cgi-bin/viewcvs.cgi/*checkout*/srfi/srfi-119/srfi-119.html?rev=1.2">2015/03/12</a></li>
+    href="http://srfi.schemers.org/cgi-bin/viewcvs.cgi/*checkout*/srfi/srfi-119/srfi-119.html?rev=1.2">2015/06/23</a></li>
 </ul>
 
 
@@ -60,7 +60,7 @@ It resolves a limitation of <a href="htt
 </p>
 
 <p>
-Wisp expressions can include any s-expressions and as such provide backwards compatibility.
+Wisp expressions can include arbitrary s-expressions and as such provide backwards compatibility.
 </p>
 
 <blockquote>
diff --git a/examples/fizzbuzz.w b/examples/fizzbuzz.w
--- a/examples/fizzbuzz.w
+++ b/examples/fizzbuzz.w
@@ -9,16 +9,18 @@ define : divisible? number divisor
          = 0 : remainder number divisor
 
 define : fizzbuzz
-  let : : print_number #f
-    loop : : for i : up-from 1 : to 100
-        set! print_number #t
-        when : divisible? i 3
-            display "Fizz"
-            set! print_number #f
-        when : divisible? i 5
-            display "Buzz"
-            set! print_number #f;
-        when print_number : display i
-        newline
+  let
+    : print_number #f
+    loop
+      : for i : up-from 1 : to 100
+      set! print_number #t
+      when : divisible? i 3
+          display "Fizz"
+          set! print_number #f
+      when : divisible? i 5
+          display "Buzz"
+          set! print_number #f;
+      when print_number : display i
+      newline
 
 fizzbuzz
diff --git a/examples/kit-encode.w b/examples/kit-encode.w
--- a/examples/kit-encode.w
+++ b/examples/kit-encode.w
@@ -1,6 +1,10 @@
-#!./wisp-multiline.sh
+#!/usr/bin/env sh
+# -*- wisp -*-
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples kit-encode) main)' -s "$0" "$@"
 ; !#
 
+define-module : examples kit-encode
+              . #:export : main kittify kittifylarge unkittify kittyfile kittytextfile unkittyfile unkittytextfile
 use-modules 
   srfi srfi-1
   rnrs io ports
@@ -257,55 +261,52 @@ define : unkittytextfile filepath
 ; displaywithnewline : kittyfile ".hg/store/00changelog.i"
 ; displaywithnewline : unkittytextfile "1.kit"
 
-; Now for the ultimate Kittyfication
-
-displaywithnewline "
-     === TEXT MODE ==="
-
-displaywithnewline : kittify : map shiftbytedownfortext : bytevector->u8-list : string->utf8 "Karlsruhe Institut für Technologie (KIT)"
-
-displaywithnewline : utf8->string : u8-list->bytevector : map shiftbyteupfortext : unkittify "
-     A.Y  .p.i    .q.p .s.e .b.3i.8.
-      k.q  .r.  f.r.   s.r. 3i.c.2A.
- 23.p   .3 i.K.b._     .e.k   .m.i
-    .m.d .f .b.3i.3    r.A.   8.K.
-3s..    .... .  ....   ....   ....
-..............    .... ....   ....
-Karlsruher Institut fuer Technologie
-"
-
-
-displaywithnewline "
-
-     === BINARY MODE ==="
-
-displaywithnewline : kittify : bytevector->u8-list : string->utf8 "Karlsruhe Institut für Technologie (KIT)"
-
-displaywithnewline : utf8->string : u8-list->bytevector : unkittify "
-     1F.  1c.1    u.1o .1v. 1u.1x.1j
-      .1g  .Y.  1D.1   q.1v .1w.1k.1
- w.1x   .1 w.Y.1h.     3F.3   8.1u
-    .Y.1 Q. 1g.1e.1    j.1q   .1r.
-1o.1    r.1i .  1k.1   g.Y.   f.1F
-.1D.1Q.g......    .... ....   ....
-Karlsruher Institut fuer Technologie
-"
-
-
-displaywithnewline "
-
-     === KIT, IMK, RemoteC ==="
-
-displaywithnewline : kittify : map shiftbytedownfortext : bytevector->u8-list : string->utf8 "Karlsruhe Institut für Technologie (KIT), IMK-ASF, RemoteC"
-
-
-displaywithnewline "
-
-     === kittifyscript ==="
-
-displaywithnewline : kittytextfile "examples/kit-encode.w"
-
-
-
+define : main args
+  . "The ultimate Kittyfication"
+  displaywithnewline "
+       === TEXT MODE ==="
+  
+  displaywithnewline : kittify : map shiftbytedownfortext : bytevector->u8-list : string->utf8 "Karlsruhe Institut für Technologie (KIT)"
+  
+  displaywithnewline : utf8->string : u8-list->bytevector : map shiftbyteupfortext : unkittify "
+       A.Y  .p.i    .q.p .s.e .b.3i.8.
+        k.q  .r.  f.r.   s.r. 3i.c.2A.
+   23.p   .3 i.K.b._     .e.k   .m.i
+      .m.d .f .b.3i.3    r.A.   8.K.
+  3s..    .... .  ....   ....   ....
+  ..............    .... ....   ....
+  Karlsruher Institut fuer Technologie
+  "
+    
+  displaywithnewline "
+  
+       === BINARY MODE ==="
+  
+  displaywithnewline : kittify : bytevector->u8-list : string->utf8 "Karlsruhe Institut für Technologie (KIT)"
+  
+  displaywithnewline : utf8->string : u8-list->bytevector : unkittify "
+       1F.  1c.1    u.1o .1v. 1u.1x.1j
+        .1g  .Y.  1D.1   q.1v .1w.1k.1
+   w.1x   .1 w.Y.1h.     3F.3   8.1u
+      .Y.1 Q. 1g.1e.1    j.1q   .1r.
+  1o.1    r.1i .  1k.1   g.Y.   f.1F
+  .1D.1Q.g......    .... ....   ....
+  Karlsruher Institut fuer Technologie
+  "
+  
+  displaywithnewline "
+  
+       === KIT, IMK, RemoteC ==="
+  
+  displaywithnewline : kittify : map shiftbytedownfortext : bytevector->u8-list : string->utf8 "Karlsruhe Institut für Technologie (KIT), IMK-ASF, RemoteC"
+  
+  displaywithnewline "
+  
+       === kittifyscript ==="
+  
+  displaywithnewline : kittytextfile "examples/kit-encode.w"
+  
+  
+  
 ; TODO: Final step: Add commandline handling which allows to write into files and set the text flag and so on.
 ; ./kit-encode [-e|--encode|-d|--decode] [--text] [--template file] [--killstring "stringtoremove" (mutliple times)] [-o|--output file] [file|-]
diff --git a/guildhall-packages/newbase60.scm b/guildhall-packages/newbase60/newbase60.scm
rename from guildhall-packages/newbase60.scm
rename to guildhall-packages/newbase60/newbase60.scm
diff --git a/guildhall-packages/pkg-list.scm b/guildhall-packages/newbase60/pkg-list.scm
rename from guildhall-packages/pkg-list.scm
rename to guildhall-packages/newbase60/pkg-list.scm
--- a/guildhall-packages/pkg-list.scm
+++ b/guildhall-packages/newbase60/pkg-list.scm
@@ -3,4 +3,4 @@
          (libraries
           (scm -> "newbase60"))
          (programs
-          (("newbase60.scm") -> "newbase60")))
+          ("newbase60.scm")))
diff --git a/wisp-guile.w b/wisp-guile.w
--- a/wisp-guile.w
+++ b/wisp-guile.w
@@ -19,6 +19,29 @@
 ;; 
 ;; -Author: Arne Babenhauserheide
 
+;; Copyright (C) Arne Babenhauserheide (2013--2015). All Rights Reserved.
+
+;; Permission is hereby granted, free of charge, to any person
+;; obtaining a copy of this software and associated documentation
+;; files (the "Software"), to deal in the Software without
+;; restriction, including without limitation the rights to use, copy,
+;; modify, merge, publish, distribute, sublicense, and/or sell copies
+;; of the Software, and to permit persons to whom the Software is
+;; furnished to do so, subject to the following conditions:
+;; 
+;; The above copyright notice and this permission notice shall be
+;; included in all copies or substantial portions of the Software.
+;; 
+;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+;; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+;; SOFTWARE.
+
+
 define-module : wisp
    . #:export : wisp2lisp wisp-chunkreader
 
diff --git a/wisp-mode.el b/wisp-mode.el
--- a/wisp-mode.el
+++ b/wisp-mode.el
@@ -3,7 +3,7 @@
 ;; Copyright (C) 2013  Arne Babenhauserheide <arne_bab@web.de>
 
 ;; Author: Arne Babenhauserheide <arne_bab@web.de>
-;; Version: 0.2
+;; Version: 0.2.1
 ;; Keywords: languages, lisp
 
 ;; This program is free software; you can redistribute it and/or
@@ -37,6 +37,7 @@
 ;; 
 ;; ChangeLog:
 ;; 
+;;  - 0.2.1: Disable electric-indent-local-mode in wisp-mode buffers.
 ;;  - 0.2: Fixed the regular expressions. Now org-mode HTML export works with wisp-code.
 ;; 
 ;;; Code:
diff --git a/wisp-scheme.w b/wisp-scheme.w
--- a/wisp-scheme.w
+++ b/wisp-scheme.w
@@ -17,6 +17,28 @@ exec guile -L . --language=wisp -s "$0" 
 ;; then simply reuse the appropriate function from the generic wisp
 ;; preprocessor.
 
+;; Copyright (C) Arne Babenhauserheide (2014--2015). All Rights Reserved.
+
+;; Permission is hereby granted, free of charge, to any person
+;; obtaining a copy of this software and associated documentation
+;; files (the "Software"), to deal in the Software without
+;; restriction, including without limitation the rights to use, copy,
+;; modify, merge, publish, distribute, sublicense, and/or sell copies
+;; of the Software, and to permit persons to whom the Software is
+;; furnished to do so, subject to the following conditions:
+;; 
+;; The above copyright notice and this permission notice shall be
+;; included in all copies or substantial portions of the Software.
+;; 
+;; THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+;; EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+;; MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+;; NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
+;; BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN
+;; ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
+;; CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+;; SOFTWARE.
+
 
 define-module : wisp-scheme
    . #:export (wisp-scheme-read-chunk wisp-scheme-read-all 
@@ -349,6 +371,12 @@ define : line-code-replace-inline-colons
              : null? unprocessed
                ; format #t "inline-colons processed line: ~A\n" processed
                . processed
+             ; replace : . with nothing
+             : and (<= 2 (length unprocessed)) (equal? readcolon (car unprocessed)) (equal? repr-dot (car (cdr unprocessed)))
+               loop
+                 append processed
+                   loop '() (cdr (cdr unprocessed))
+                 . '()
              : equal? readcolon : car unprocessed
                loop
                  ; FIXME: This should turn unprocessed into a list.