(Arne Babenhauserheide)
2014-01-08: Integrated bootstrapping with autotools. v0.5.3 Integrated bootstrapping with autotools.
diff --git a/AUTHORS b/AUTHORS new file mode 100644 --- /dev/null +++ b/AUTHORS @@ -0,0 +1,17 @@ +Main Author: Arne Babenhauserheide + +Specific Contributions: + +- Mark Weaver and Arne Babenhauserheide: Efficient string-replace-substring +- Mark Weaver and NalaGinrut and Arne Babenhauserheide: wisp-reader.w + +Authors Info: + +Arne Babenhauserheide: + Arne Babenhauserheide known as ArneBab: http://savannah.gnu.org/users/arnebab + +NalaGinrut: + "Mu Lei" known as "NalaGinrut" <NalaGinrut@gmail.com>: http://savannah.gnu.org/users/nalaginrut + +Mark Weaver: + Mark H. Weaver: http://savannah.gnu.org/users/mhw \ No newline at end of file diff --git a/Makefile.am b/Makefile.am new file mode 100644 --- /dev/null +++ b/Makefile.am @@ -0,0 +1,14 @@ +wisp = wisp.scm language/wisp/spec.scm +wisp_SOURCES = wisp-guile.w wisp-reader.w +EXTRA_DIST = $(wisp_SOURCES) $(wisp_DATA) bootstrap.sh wisp.py examples tests +CLEANFILES = ${wisp} +DISTCLEANFILES = ${CLEANFILES} @builddir@/1 @builddir@/2 + +all : ${wisp} $(changelog) + +# emacs org-mode beamer build instructions +${wisp} : input.in.intermediate + +.INTERMEDIATE: input.in.intermediate +input.in.intermediate: ${wisp_SOURCES} + @srcdir@/bootstrap.sh @srcdir@ diff --git a/NEWS b/NEWS new file mode 100644 --- /dev/null +++ b/NEWS @@ -0,0 +1,17 @@ +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. + +wisp-mode 0.1.5 (2014-01-04): Resolved a name-clash for the emacs wisp-mode together with Steve Purcell und Kris Jenkins: the javascript wisp-mode was renamed to wispjs-mode and wisp.el is called wisp-mode 0.1.5. It provides syntax highlighting for Emacs and minimal indentation support via tab. You can install it with `M-x package-install wisp-mode` + +wisp 0.5 (2013-09-13): Wisp now has a REPL! Thanks go to GNU Guile and especially Mark Weaver, who guided me through the process (along with nalaginrut who answered my first clueless questions…). + To test the REPL, get the current code snapshot, unpack it, run ./bootstrap.sh, start guile with $ guile -L . (requires guile 2.x) and enter ,language wisp. + Example usage: + + display "Hello World!\n" + + then hit enter thrice. + 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 diff --git a/bootstrap.sh b/bootstrap.sh --- a/bootstrap.sh +++ b/bootstrap.sh @@ -1,13 +1,18 @@ #!/bin/sh # Bootstrap wisp-guile with wisp.py +if [[ x"$1" == x"" ]]; then + srcdir=. +else + srcdir="$1" +fi -diff=$(python3 wisp.py wisp-guile.w > 1 && guile 1 wisp-guile.w > 2 && guile 2 wisp-guile.w > wisp.scm && diff 2 wisp.scm && echo success) +diff=$(python3 ${srcdir}/wisp.py ${srcdir}/wisp-guile.w > 1 && guile 1 ${srcdir}/wisp-guile.w > 2 && guile 2 ${srcdir}/wisp-guile.w > wisp.scm && diff 2 wisp.scm && echo success) if [[ x"${diff}" == x"success" ]]; then echo "successfully bootstrapped wisp.scm" echo preparing the reader: wisp at the REPL mkdir -p language/wisp - guile wisp.scm wisp-reader.w 2>/dev/null > language/wisp/spec.scm \ + guile wisp.scm ${srcdir}/wisp-reader.w 2>/dev/null > language/wisp/spec.scm \ && echo ...succeeded \ && echo 'to use wisp at the REPL, run `guile -L` . and then in guile `,L wisp`' else diff --git a/configure.ac b/configure.ac new file mode 100644 --- /dev/null +++ b/configure.ac @@ -0,0 +1,23 @@ +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.3], + [arne_bab@web.de]) +# Check for programs I need for my build +AC_CANONICAL_TARGET +AC_ARG_VAR([guile], [How to call GNU Guile.]) +AC_CHECK_TARGET_TOOL([guile], [guile], [no]) +AS_IF([test "x$guile" = "xno"], + [AC_MSG_ERROR([cannot find GNU Guile.])]) +AC_CHECK_TARGET_TOOL([python3], [python3], [no]) +AS_IF([test "x$python3" = "xno"], + [AC_MSG_ERROR([cannot find Python 3 which is required for bootstrapping.])]) +# Run automake +# Use GNU style. Note that ChangeLog is created on every commit +# by a commit hook in .hg/hgrc +# [hooks] +# post-commit = hg log --style changelog > ChangeLog +AM_INIT_AUTOMAKE([gnu]) +AM_MAINTAINER_MODE([enable]) +AC_CONFIG_FILES([Makefile]) +AC_OUTPUT \ No newline at end of file