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