(Arne Babenhauserheide)
2017-11-10: merge install fix stable v0.9.8 merge install fix
diff --git a/Makefile.am b/Makefile.am
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,16 +1,19 @@
SUFFIXES = .w .scm .sh
-sitedir = $(GUILE_SITE)
-site_DATA = language/wisp.scm
+sitedir = $(datarootdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site
+site_DATA = wisp.scm
-langdir = ${datarootdir}/guile/site/$(GUILE_EFFECTIVE_VERSION)/language/wisp
-lang_DATA = language/wisp/spec.scm language/wisp.scm
+langdir = $(datarootdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site/language
+lang_DATA = language/wisp.scm
+
+langwispdir = $(datarootdir)/guile/$(GUILE_EFFECTIVE_VERSION)/site/language/wisp
+langwisp_DATA = language/wisp/spec.scm
WISP = wisp-guile.w wisp-reader.w wisp-scheme.w
EXTRA_DIST = $(WISP) bootstrap.sh bootstrap-reader.sh language examples tests wisp-repl-guile.sh testrunner.w wisp.py wisp.scm m4
CLEANFILES = 1 2
-DISTCLEANFILES = $(lang_DATA) $(site_DATA)
+DISTCLEANFILES = $(site_DATA) $(lang_DATA) $(langwisp_DATA)
# don't spout out lots of stuff at each distcheck. Disable for debugging.
AM_DISTCHECK_CONFIGURE_FLAGS="--quiet"
@@ -18,7 +21,7 @@ ChangeLog :
hg log --style changelog > ChangeLog
.INTERMEDIATE: .mydatastuff
-$(site_DATA) $(lang_DATA): .wispbootstrap
+$(lang_DATA) $(langwisp_DATA): .wispbootstrap
.wispbootstrap : ${WISP} wisp.scm
@abs_top_srcdir@/bootstrap-reader.sh @abs_top_srcdir@ @abs_top_builddir@ @GUILE@ wisp.scm 2>&1 | sed "s/^;;;.*//" 2>&1 | grep . 1>&2 ; test ! $$? -eq 0 # it worked if grep does not find anything
@@ -47,10 +50,14 @@ install-siteDATA:
echo "Running 'make distcheck'; local installchecks disabled."
install-langDATA:
echo "Running 'make distcheck'; local installchecks disabled."
+install-langwispDATA:
+ echo "Running 'make distcheck'; local installchecks disabled."
uninstall-siteDATA:
echo "Running 'make distcheck'; local installchecks disabled."
uninstall-langDATA:
echo "Running 'make distcheck'; local installchecks disabled."
+uninstall-langwispDATA:
+ echo "Running 'make distcheck'; local installchecks disabled."
else !IS_MAKE_DISTCHECK
endif !IS_MAKE_DISTCHECK
diff --git a/README.md b/README.md
--- a/README.md
+++ b/README.md
@@ -47,7 +47,7 @@ From a release:
* Get a release from [bitbucket.org/ArneBab/wisp/downloads/](https://bitbucket.org/ArneBab/wisp/downloads/)
* Unpack and build: `tar xf [release].tar.gz; cd [release]; ./configure; make`
-Install systemwide with `./configure --datarootdir=/usr/share && sudo make install`, then you can run `guile --language=wisp` anywhere. Install in your home folder with `./configure --prefix=$HOME/.local; make install`. Use `guile -c '(import (language wisp spec))'` to get rid of auto-compile errors.
+Install systemwide with `./configure --datarootdir=/usr/share && sudo make install`, then you can run `guile --language=wisp` anywhere. Install in your home folder with `./configure --datarootdir=$HOME/.local; make install`. Use `guile -c '(import (language wisp spec))'` to get rid of auto-compile errors.
Run tests with `make check`. Distribute your own version with `make distcheck`.
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.9.7],
+AC_INIT([wisp], [0.9.8],
[arne_bab@web.de])
# Add macros in m4/ to ensure that wisp builds without having Guile in the aclocal path
AC_CONFIG_MACRO_DIR([m4])
diff --git a/examples/advent-2016-day-7.w b/examples/advent-2016-day-7.w
--- a/examples/advent-2016-day-7.w
+++ b/examples/advent-2016-day-7.w
@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -s "$0"
; !#
diff --git a/examples/argparse.w b/examples/argparse.w
--- a/examples/argparse.w
+++ b/examples/argparse.w
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
-guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples argparse) main)' -s "$0" "$@"
; !#
diff --git a/examples/benchmark.w b/examples/benchmark.w
--- a/examples/benchmark.w
+++ b/examples/benchmark.w
@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples benchmark) main)' -l $(dirname $(realpath "$0"))/cholesky.w -l $(dirname $(realpath "$0"))/ensemble-estimation.w -s "$0" "$@"
; !#
diff --git a/examples/cartesian-sets.w b/examples/cartesian-sets.w
--- a/examples/cartesian-sets.w
+++ b/examples/cartesian-sets.w
@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples cartesian-sets) main)' -s "$0" "$@"
; !#
;; Implementation of the cartesian product over a list of lists, building on http://stackoverflow.com/a/20591545/7666
diff --git a/examples/cholesky.w b/examples/cholesky.w
--- a/examples/cholesky.w
+++ b/examples/cholesky.w
@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples cholesky) main)' -s "$0" "$@"
; !#
diff --git a/examples/cli.w b/examples/cli.w
--- a/examples/cli.w
+++ b/examples/cli.w
@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples cli) main)' -s "$0" "$@"
; !#
diff --git a/examples/closure.w b/examples/closure.w
--- a/examples/closure.w
+++ b/examples/closure.w
@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples closure) main)' -s "$0" "$@"
; !#
diff --git a/examples/coffee.w b/examples/coffee.w
new file mode 100755
--- /dev/null
+++ b/examples/coffee.w
@@ -0,0 +1,41 @@
+#!/usr/bin/env sh
+# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
+exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -s "$0" "$@"
+; !#
+
+;;; coffee --- pseudo-code for work with coffee, based on flawed java-code on a cup
+
+import : ice-9 q
+ ice-9 pretty-print
+
+define-syntax-rule : sip x
+ set! x #f
+define-syntax-rule : pop x
+ let : : y : car x
+ set! x : cdr x
+ . y
+
+define* : work schedule
+ let*
+ : pot : prepare 'coffee
+ cup : serve pot
+ let proceed : : task : pop schedule
+ sip cup
+ execute task
+ when : not : done? schedule
+ when : empty? cup
+ when : empty? pot
+ set! pot : prepare 'coffee
+ set! cup : serve pot
+ proceed : pop schedule
+
+define prepare list
+define serve car
+define execute pretty-print
+define done? null?
+define : empty? x
+ equal? #f x
+define schedule : iota 5
+
+work schedule
diff --git a/examples/commandline-handling.w b/examples/commandline-handling.w
--- a/examples/commandline-handling.w
+++ b/examples/commandline-handling.w
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
-guile-2.0 -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+guile-2.0 -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile-2.0 -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(examples commandline-handling)' -s "$0" "$@"
; !#
diff --git a/examples/comment-server.w b/examples/comment-server.w
--- a/examples/comment-server.w
+++ b/examples/comment-server.w
@@ -1,4 +1,6 @@
#!./wisp-multiline.sh
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
+
; !#
use-modules
diff --git a/examples/d20world.w b/examples/d20world.w
--- a/examples/d20world.w
+++ b/examples/d20world.w
@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples d20world) main)' -s "$0" "$@"
; !#
diff --git a/examples/d6.w b/examples/d6.w
--- a/examples/d6.w
+++ b/examples/d6.w
@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples d6) main)' -s "$0" "$@"
; !#
diff --git a/examples/duel.w b/examples/duel.w
--- a/examples/duel.w
+++ b/examples/duel.w
@@ -2,7 +2,7 @@
# -*- wisp -*-
D="$(dirname $(realpath "$0"))"
W="$(dirname $(dirname $(realpath "$0")))"
-guile -L "$W" -c '(import (wisp-scheme) (language wisp spec))'
+guile -L "$W" -c '(import (language wisp spec))'
exec guile -L "$W" --language=wisp -l "$D/enter-three-witches.w" -s "$0" "$@"
; !#
diff --git a/examples/ensemble-estimation.w b/examples/ensemble-estimation.w
--- a/examples/ensemble-estimation.w
+++ b/examples/ensemble-estimation.w
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
-guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples ensemble-estimation) main)' -l $(dirname $(realpath "$0"))/cholesky.w -s "$0" "$@"
; !#
diff --git a/examples/enter-three-witches.w b/examples/enter-three-witches.w
--- a/examples/enter-three-witches.w
+++ b/examples/enter-three-witches.w
@@ -1,6 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
-guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (wisp-scheme) (language wisp spec))'
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples enter-three-witches) main)' -s "$0" "$@"
; !#
diff --git a/examples/evaluate-r7rs-benchmark.w b/examples/evaluate-r7rs-benchmark.w
--- a/examples/evaluate-r7rs-benchmark.w
+++ b/examples/evaluate-r7rs-benchmark.w
@@ -1,5 +1,6 @@
#!/bin/sh
# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L ~/wisp --language=wisp -s $0 "$@"
!#
diff --git a/examples/evolve.w b/examples/evolve.w
--- a/examples/evolve.w
+++ b/examples/evolve.w
@@ -1,5 +1,6 @@
#!/usr/bin/env sh
# -*- wisp -*-
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples evolve) main)' -s "$0" "$@"
; !#
diff --git a/examples/factorial.w b/examples/factorial.w
--- a/examples/factorial.w
+++ b/examples/factorial.w
@@ -1,4 +1,5 @@
#!/usr/bin/env sh
+guile -L $(dirname $(dirname $(realpath "$0"))) -c '(import (language wisp spec))'
exec guile -L $(dirname $(dirname $(realpath "$0"))) --language=wisp -e '(@@ (examples factorial) main)' -s "$0" "$@"
; !#