diff --git a/benchmarks/bench.ss b/benchmarks/bench.ss
index e6ca849..54d6c4a 100755
--- a/benchmarks/bench.ss
+++ b/benchmarks/bench.ss
@@ -1,4 +1,19 @@
#!../src/ikarus -b ../scheme/ikarus.boot --r6rs-script
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2006,2007,2008 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
(import (ikarus))
(optimize-level 2)
diff --git a/benchmarks/benchall.ss b/benchmarks/benchall.ss
index 54c622b..05ce06b 100755
--- a/benchmarks/benchall.ss
+++ b/benchmarks/benchall.ss
@@ -1,4 +1,19 @@
#!/usr/bin/env ikarus --r6rs-script
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2006,2007,2008 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
(import (ikarus))
diff --git a/benchmarks/rnrs-benchmarks.ss b/benchmarks/rnrs-benchmarks.ss
index df30a4c..8950853 100644
--- a/benchmarks/rnrs-benchmarks.ss
+++ b/benchmarks/rnrs-benchmarks.ss
@@ -1,3 +1,18 @@
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2006,2007,2008 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
(library (rnrs-benchmarks)
(export run-benchmark fatal-error include-source
diff --git a/configure b/configure
index 42fe3fb..f964ed1 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for ikarus 0.0.3.
+# Generated by GNU Autoconf 2.63 for ikarus 0.0.4-rc1.
#
# Report bugs to .
#
@@ -596,8 +596,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='ikarus'
PACKAGE_TARNAME='ikarus'
-PACKAGE_VERSION='0.0.3'
-PACKAGE_STRING='ikarus 0.0.3'
+PACKAGE_VERSION='0.0.4-rc1'
+PACKAGE_STRING='ikarus 0.0.4-rc1'
PACKAGE_BUGREPORT='aghuloum@cs.indiana.edu'
ac_unique_file="src/"
@@ -1306,7 +1306,7 @@ if test "$ac_init_help" = "long"; then
# Omit some internal or obsolete options to make the list less imposing.
# This message is too long to be a string in the A/UX 3.1 sh.
cat <<_ACEOF
-\`configure' configures ikarus 0.0.3 to adapt to many kinds of systems.
+\`configure' configures ikarus 0.0.4-rc1 to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1377,7 +1377,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of ikarus 0.0.3:";;
+ short | recursive ) echo "Configuration of ikarus 0.0.4-rc1:";;
esac
cat <<\_ACEOF
@@ -1468,7 +1468,7 @@ fi
test -n "$ac_init_help" && exit $ac_status
if $ac_init_version; then
cat <<\_ACEOF
-ikarus configure 0.0.3
+ikarus configure 0.0.4-rc1
generated by GNU Autoconf 2.63
Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1482,7 +1482,7 @@ cat >config.log <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by ikarus $as_me 0.0.3, which was
+It was created by ikarus $as_me 0.0.4-rc1, which was
generated by GNU Autoconf 2.63. Invocation command line was
$ $0 $@
@@ -2324,7 +2324,7 @@ fi
# Define the identity of the package.
PACKAGE=ikarus
- VERSION=0.0.3
+ VERSION=0.0.4-rc1
cat >>confdefs.h <<_ACEOF
@@ -10742,7 +10742,7 @@ exec 6>&1
# report actual input values of CONFIG_FILES etc. instead of their
# values after options handling.
ac_log="
-This file was extended by ikarus $as_me 0.0.3, which was
+This file was extended by ikarus $as_me 0.0.4-rc1, which was
generated by GNU Autoconf 2.63. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -10805,7 +10805,7 @@ Report bugs to ."
_ACEOF
cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
ac_cs_version="\\
-ikarus config.status 0.0.3
+ikarus config.status 0.0.4-rc1
configured by $0, generated by GNU Autoconf 2.63,
with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
diff --git a/configure.ac b/configure.ac
index 990f45a..17c3d6b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -2,9 +2,9 @@
# Process this file with autoconf to produce a configure script.
AC_PREREQ(2.59)
-AC_INIT(ikarus, 0.0.3, aghuloum@cs.indiana.edu)
+AC_INIT(ikarus, 0.0.4-rc1, aghuloum@cs.indiana.edu)
AC_CANONICAL_SYSTEM
-AM_INIT_AUTOMAKE(ikarus, 0.0.3)
+AM_INIT_AUTOMAKE(ikarus, 0.0.4-rc1)
AC_CONFIG_SRCDIR([src/])
diff --git a/lab/check-comments.ss b/lab/check-comments.ss
new file mode 100755
index 0000000..e1e50b1
--- /dev/null
+++ b/lab/check-comments.ss
@@ -0,0 +1,63 @@
+#!/usr/bin/env ikarus --r6rs-script
+
+(import (ikarus))
+
+(define (suffix? s str)
+ (let ([n1 (string-length s)] [n2 (string-length str)])
+ (and (>= n2 n1)
+ (string=? s (substring str (- n2 n1) n2)))))
+
+(define (prefix? s str)
+ (let ([n1 (string-length s)] [n2 (string-length str)])
+ (and (>= n2 n1)
+ (string=? s (substring str 0 n1)))))
+
+
+
+
+
+(define (scheme? str)
+ (ormap (lambda (s) (suffix? s str)) (library-extensions)))
+
+
+(define (lsr dir)
+ (define (app x) (string-append dir "/" x))
+ (let-values ([(dirs others)
+ (partition file-directory?
+ (directory-list dir))])
+ (apply append
+ (map app (filter scheme? others))
+ (map lsr
+ (map app
+ (filter
+ (lambda (x)
+ (and (not (string=? x ".")) (not (string=? x ".."))))
+ dirs))))))
+
+
+(define (has-comment? x)
+ (with-input-from-file x
+ (lambda ()
+ (define (S0)
+ (let ([x (read-line)])
+ (cond
+ [(eof-object? x) #f]
+ [(prefix? "#!" x) (S1)]
+ [(prefix? ";;; Copyright" x) #t]
+ [(prefix? ";;;" x) (S1)]
+ [else #f])))
+ (define (S1)
+ (let ([x (read-line)])
+ (cond
+ [(eof-object? x) #f]
+ [(prefix? ";;; Copyright" x) #t]
+ [(prefix? ";;;" x) (S1)]
+ [else #f])))
+ (S0))))
+
+(define (check-comment x)
+ (unless (has-comment? x)
+ (printf "no comment in ~s\n" x)))
+
+(for-each check-comment (lsr "."))
+
diff --git a/lib/Cocoa.ss b/lib/Cocoa.ss
index 6efc0ca..f4f5f3b 100755
--- a/lib/Cocoa.ss
+++ b/lib/Cocoa.ss
@@ -1,3 +1,18 @@
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2008,2009 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
(library (Cocoa)
(export) ; below
diff --git a/lib/objc.ss b/lib/objc.ss
index 2925337..4789b86 100644
--- a/lib/objc.ss
+++ b/lib/objc.ss
@@ -1,3 +1,19 @@
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2008,2009 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
+
(library (objc)
(export
diff --git a/lib/ypsilon-compat.ikarus.ss b/lib/ypsilon-compat.ikarus.ss
index 057b65c..fe03d02 100644
--- a/lib/ypsilon-compat.ikarus.ss
+++ b/lib/ypsilon-compat.ikarus.ss
@@ -1,3 +1,19 @@
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2008,2009 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
+
(library (ypsilon-compat)
(export on-windows on-darwin on-linux on-freebsd on-posix
diff --git a/lib/ypsilon-compat.ypsilon.ss b/lib/ypsilon-compat.ypsilon.ss
index 7ca9a62..ef54446 100644
--- a/lib/ypsilon-compat.ypsilon.ss
+++ b/lib/ypsilon-compat.ypsilon.ss
@@ -1,3 +1,19 @@
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2008,2009 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
+
(library (ypsilon-compat)
(export on-windows on-darwin on-linux on-freebsd on-posix
diff --git a/scheme/ikarus.apropos.ss b/scheme/ikarus.apropos.ss
index b8ba488..7852c88 100644
--- a/scheme/ikarus.apropos.ss
+++ b/scheme/ikarus.apropos.ss
@@ -1,3 +1,19 @@
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2008,2009 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
+
(library (ikarus.apropos)
(export apropos)
diff --git a/scheme/ikarus.main.ss b/scheme/ikarus.main.ss
index edc8964..429a3a5 100644
--- a/scheme/ikarus.main.ss
+++ b/scheme/ikarus.main.ss
@@ -26,17 +26,18 @@
(define (host-info) target)
(define (print-greeting)
- (printf "Ikarus Scheme version ~a\n"
- (if (zero? (string-length ikarus-revision))
- ikarus-version
- (format "~a+ (revision ~a, build ~a~a)"
- ikarus-version
+ (printf "Ikarus Scheme version ~a~a~a~a\n"
+ ikarus-version
+ (if (zero? (string-length ikarus-revision)) "" "+")
+ (if (= (fixnum-width) 30)
+ ""
+ ", 64-bit")
+ (if (zero? (string-length ikarus-revision))
+ ""
+ (format " (revision ~a, build ~a)"
(+ 1 (string->number ikarus-revision))
(let-syntax ([ds (lambda (x) (date-string))])
- ds)
- (if (= (fixnum-width) 30)
- ""
- ", 64-bit"))))
+ ds))))
(display "Copyright (c) 2006-2008 Abdulaziz Ghuloum\n\n"))
(define (init-library-path)
diff --git a/scheme/ikarus.not-yet-implemented.ss b/scheme/ikarus.not-yet-implemented.ss
index 7b093f1..df0c3d9 100644
--- a/scheme/ikarus.not-yet-implemented.ss
+++ b/scheme/ikarus.not-yet-implemented.ss
@@ -1,3 +1,19 @@
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2008,2009 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
+
(library (ikarus not-yet-implemented)
(export
diff --git a/scheme/ikarus.pointers.ss b/scheme/ikarus.pointers.ss
index 241da99..b5d1d40 100644
--- a/scheme/ikarus.pointers.ss
+++ b/scheme/ikarus.pointers.ss
@@ -1,3 +1,19 @@
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2008,2009 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
+
(library (ikarus.pointers)
(export pointer? integer->pointer pointer->integer
diff --git a/scheme/ikarus.string-to-number.ss b/scheme/ikarus.string-to-number.ss
index 383b508..bd2ac4d 100755
--- a/scheme/ikarus.string-to-number.ss
+++ b/scheme/ikarus.string-to-number.ss
@@ -1,3 +1,19 @@
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2008,2009 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
+
(library (ikarus.string-to-number)
(export string->number define-string->number-parser)
diff --git a/scheme/ikarus.symbol-table.ss b/scheme/ikarus.symbol-table.ss
index eda72d7..64f84be 100644
--- a/scheme/ikarus.symbol-table.ss
+++ b/scheme/ikarus.symbol-table.ss
@@ -1,3 +1,19 @@
+;;; Ikarus Scheme -- A compiler for R6RS Scheme.
+;;; Copyright (C) 2008,2009 Abdulaziz Ghuloum
+;;;
+;;; This program is free software: you can redistribute it and/or modify
+;;; it under the terms of the GNU General Public License version 3 as
+;;; published by the Free Software Foundation.
+;;;
+;;; This program is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+;;; General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with this program. If not, see .
+
+
(library (ikarus.symbol-table)
(export string->symbol initialize-symbol-table! $symbol-table-size)
diff --git a/scheme/last-revision b/scheme/last-revision
index a41cbc3..548f0a5 100644
--- a/scheme/last-revision
+++ b/scheme/last-revision
@@ -1 +1 @@
-1743
+1744