(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.