diff options
| -rw-r--r-- | Init5d2.scm | 4 | ||||
| -rw-r--r-- | Makefile | 18 | ||||
| -rw-r--r-- | bld.scm | 59 | ||||
| -rw-r--r-- | build.features | 123 | ||||
| -rw-r--r-- | build.scm | 6 | ||||
| -rw-r--r-- | continue.h | 2 | ||||
| -rw-r--r-- | crs.c | 25 | ||||
| -rw-r--r-- | debian/changelog | 133 | ||||
| -rw-r--r-- | debian/control | 13 | ||||
| -rw-r--r-- | debian/copyright | 16 | ||||
| -rw-r--r-- | debian/postinst | 12 | ||||
| -rw-r--r-- | debian/postrm | 4 | ||||
| -rw-r--r-- | debian/prerm | 8 | ||||
| -rw-r--r-- | debian/require.scm.debian | 2 | ||||
| -rwxr-xr-x | debian/rules | 151 | ||||
| -rw-r--r-- | eval.c | 2 | ||||
| -rw-r--r-- | features.txi | 196 | ||||
| -rw-r--r-- | mkimpcat.scm | 46 | ||||
| -rw-r--r-- | platform.txi | 43 | ||||
| -rw-r--r-- | tmp3 | 2 | ||||
| -rw-r--r-- | version.txi | 2 | ||||
| -rwxr-xr-x | xgen.scm | 2 | 
22 files changed, 826 insertions, 43 deletions
diff --git a/Init5d2.scm b/Init5d2.scm index 946e6d7..19c2ff2 100644 --- a/Init5d2.scm +++ b/Init5d2.scm @@ -149,7 +149,7 @@  	  ((eof-object? c))  	(write-char c)))))  (define (terms) -  (display-file (in-vicinity (implementation-vicinity) "COPYING"))) +  (display-file "/usr/doc/copyright/GPL"))  ;; Array syntax:  ;; n is a decimal number, which may be elided for a default value of 1. @@ -471,7 +471,7 @@      (begin        (define (ed . args)  	(system (apply string-append -		       (or (getenv "EDITOR") "ed") +		       (or (getenv "EDITOR") "editor")  		       (map (lambda (s) (string-append " " s)) args))))        (set! *features* (cons 'ed *features*)))) @@ -44,9 +44,9 @@  SHELL = /bin/sh  CPROTO = cproto  #CC = -CFLAGS = -g +CFLAGS = -g -O  #LIBS = -LD = $(CC) -g +LD = $(CC) -g -O  # directory where COPYING and InitXXX.scm reside.  #IMPLPATH = /usr/local/src/scm/ @@ -203,7 +203,7 @@ benchlit:  	echo  	tail -20 BenchLog  report: -	scmlit -e"(slib:report #t)" +	./scmlit -e"(slib:report #t)"  	scm -e"(slib:report #t)"  dvidir=../dvi/ @@ -264,17 +264,17 @@ info:	installinfo  installinfo:	$(infodir)scm.info $(infodir)Xlibscm.info  platform.txi:	build.scm -	scmlit -r database-browse -l build.scm -e "(browse build 'platform)" \ +	./scmlit -r database-browse -l build.scm -e "(browse build 'platform)" \  	> platform.txi -features.txi:	build build.scm -	scmlit -l build -e"(make-features-txi)" +features.txi:	build.features build.scm +	./scmlit -l build.features -e"(make-features-txi)"  scm$(VERSION).info:	version.txi scm.texi platform.txi features.txi  	-mv scm.info scmtemp.info  	makeinfo scm.texi --no-split -o scm.info  	mv scm.info scm$(VERSION).info  	-mv scmtemp.info scm.info  scm.info:	scm$(VERSION).info -	infobar scmprev/scm.info scm$(VERSION).info scm.info +#	infobar scmprev/scm.info scm$(VERSION).info scm.info  $(infodir)scm.info:	scm.info  	cp -p scm.info $(infodir)scm.info  	-install-info $(infodir)scm.info $(infodir)dir @@ -518,8 +518,10 @@ mostlyclean:  clean:  	-rm -f core a.out ramap.o ramap.obj $(ofiles) scmmain.o lints  	-$(RM_R) *temp +	-rm -f scm$(VERSION).info +  distclean:	clean -	-rm -f $(EXECFILES) *.o *.obj a.out TAGS implcat slibcat gdbscm +	-rm -f $(EXECFILES) *.o *.obj a.out  implcat slibcat gdbscm TAGS  realclean:	distclean  	-rm -f scm.doc  realempty:	temp/scm @@ -0,0 +1,59 @@ +#!/bin/sh +:;exec ./scmlit -f $0 -e"(bi)" build $* + +(require 'build) +(require 'getopt) +(require 'getopt-parameters) + +(define (build-from-argv argv) +  (cond ((string? argv) +	 (require 'read-command) +	 (set! argv (call-with-input-string argv read-command)))) +  (let () +    (define command (string->symbol (list-ref argv *optind*))) +    (define argc (length argv)) +    (cond +     ((pair? argv) +      (set! *optind* (+ 1 *optind*)) +      ((make-command-server build '*commands*) +       command +       (lambda (comname comval options positions arities types +			defaulters checks aliases) +	 (let* ((params (getopt->parameter-list +			 argc argv options arities types aliases)) +		(fparams (fill-empty-parameters defaulters params))) +	   (cond ((not (list? params)) #f) +		 ((not (check-parameters checks fparams)) #f) +		 ((not (check-arities (map arity->arity-spec arities) fparams)) +		  (slib:error 'build-from-argv "arity error" fparams) #f) +		 (else (comval fparams)))))))))) + +(define (build-from-whole-argv argv) +  (set! *optind* 0) +  (set! *optarg* #f) +  (build-from-argv argv)) + +(define b build-from-whole-argv) + +(define (b*) +  (require 'read-command) +  (do ((e (read-command) (read-command))) +      ((eof-object? e)) +    (cond ((null? e)) +	  (else +	   (cond ((not (string-ci=? (car e) "build")) +		  (set! e (cons "build" e)))) +	   (write (build-from-whole-argv e)) +	   (newline))) +    (display "build> ") +    (force-output))) + +(define (bi) (build-from-argv *argv*)) + +(cond (*interactive* +       (display "type (b \"build <command-line>\") to build") (newline) +       (display "type (b*) to enter build command loop") (newline))) + +;;; Local Variables: +;;; mode:scheme +;;; End: diff --git a/build.features b/build.features new file mode 100644 index 0000000..1921d3c --- /dev/null +++ b/build.features @@ -0,0 +1,123 @@ +#!/bin/sh +:;exec scmlit -f $0 -e"(bi)" build $* + +(require (in-vicinity (program-vicinity) "build.scm")) +(require 'getopt) +(require 'getopt-parameters) + +(define (make-features-txi) +  (call-with-output-file "features.txi" +    (lambda (port) +      ((((build 'open-table) 'features #f) 'for-each-row) +       (lambda (row) +	 (apply (lambda (name spec documentation) +		  (display "@item " port) (display name port) (newline port) +		  (display "@cindex " port) (display name port) (newline port) +		  (display documentation port) (newline port) (newline port)) +		row)))))) + +(define (print-manifest port) +  (display "@multitable @columnfractions .22 .78" port) (newline port) +  ((((build 'open-table) 'manifest #f) 'for-each-row) +   (lambda (row) +     (apply (lambda (file format category documentation) +	      (display (string-append "@item @code{" file) port) +	      (display "}" port) (newline port) +	      (display (string-append "@tab " documentation) port) +	      (newline port)) +	    row))) +  (display "@end multitable" port) (newline port)) + +(define (append-info-node path node afile) +  (let ((cat (open-file afile "a"))) +    (do ((n (+ -1 2) (+ -1 n))) +	((negative? n) (close-port cat)) +      (newline cat))) +  (system (string-append "info -f " path " -n '" node "' -o - >> " afile))) + +(define (make-readme) +  (require 'posix) +  (let ((pipe (open-output-pipe "makeinfo --no-headers -o README")) +	(scm-info (read-version +		   (in-vicinity (implementation-vicinity) "patchlvl.h")))) +    (if (not pipe) (slib:error 'make-readme 'couldn't 'open 'pipe)) +    (display "\ +This directory contains the distribution of scm" pipe) +    (display scm-info pipe) +    (display ".  Scm conforms to +Revised^5 Report on the Algorithmic Language Scheme and the IEEE P1178 +specification. SCM runs under Amiga, Atari-ST, MacOS, MS-DOS, OS/2, +NOS/VE, Unicos, VMS, Unix and similar systems. + +@center @url{http://swissnet.ai.mit.edu/~jaffer/SCM.html} + +@section Manifest +" +	     pipe) +    (print-manifest pipe) +    (close-port pipe) +    (set! scm-info (string-append "scm" scm-info ".info")) +    (append-info-node scm-info "SLIB" "README") +    (append-info-node scm-info "Making SCM" "README") +    (append-info-node scm-info "Editing Scheme Code" "README") +    (append-info-node scm-info "Problems Compiling" "README") +    (append-info-node scm-info "Problems Linking" "README") +    (append-info-node scm-info "Problems Running" "README") +    (append-info-node scm-info "Testing" "README"))) + +(define (build-from-argv argv) +  (cond ((string? argv) +	 (require 'read-command) +	 (set! argv (call-with-input-string argv read-command)))) +  (let () +    (define command (string->symbol (list-ref argv *optind*))) +    (define argc (length argv)) +    (cond +     ((pair? argv) +      (set! *optind* (+ 1 *optind*)) +      ((make-command-server build '*commands*) +       command +       (lambda (comname comval options positions arities types +			defaulters checks aliases) +	 (let* ((params (getopt->parameter-list +			 argc argv options arities types aliases)) +		(fparams (fill-empty-parameters defaulters params))) +	   (cond ((not (list? params)) +		  (slib:warn 'build-from-argv 'not-parameters? fparams) +		  #f) +		 ((not (check-parameters checks fparams)) +		  (slib:warn 'build-from-argv 'check-parameters 'failed) +		  #f) +		 ((not (check-arities (map arity->arity-spec arities) fparams)) +		  (slib:error 'build-from-argv "arity error" fparams) #f) +		 (else (comval fparams)))))))))) + +(define (build-from-whole-argv argv) +  (set! *optind* 0) +  (set! *optarg* #f) +  (build-from-argv argv)) + +(define b build-from-whole-argv) + +(define (b*) +  (require 'read-command) +  (do ((e (read-command) (read-command))) +      ((eof-object? e)) +    (cond ((null? e)) +	  (else +	   (cond ((not (string-ci=? (car e) "build")) +		  (set! e (cons "build" e)))) +	   (write (build-from-whole-argv e)) +	   (newline))) +    (display "build> ") +    (force-output))) + +(define (bi) (if (build-from-argv *argv*) #t (exit #f))) + +(cond (*interactive* +       (display "type (b \"build <command-line>\") to build") (newline) +       (display "type (b*) to enter build command loop") (newline))) + +;;; Local Variables: +;;; mode:scheme +;;; End: @@ -318,7 +318,7 @@  #;interface to the editline or GNU readline library.  (define-build-feature   'edit-line - '((c-file "edline.c") (c-lib termcap editline) (compiled-init "init_edline"))) + '((c-file "edline.c") (c-lib terminfo editline) (compiled-init "init_edline")))  #;Client connections to the mysql databases.  (define-build-feature @@ -475,12 +475,12 @@      ((m *unknown* "" "-lm" "/usr/lib/libm.a" () ())       (c *unknown* "" "-lc" "/usr/lib/libc.a" () ()) -     (regex *unknown* "" "-lregex" "/usr/lib/libregex.a" () ()) +     (regex *unknown* "" "-lrx" "/usr/lib/librx.a" () ())       (curses *unknown* "" "-lcurses" "/usr/lib/libcurses.a" () ())       (graphics *unknown* "-I/usr/X11/include -DX11" "-lX11"  	       "/usr/X11/lib/libX11.sa" () ())       (editline *unknown* "" "-lreadline" "/usr/lib/libreadline.a" () ()) -     (termcap *unknown* "" "-ltermcap" "/usr/lib/libtermcap.a" () ()) +     (termcap *unknown* "" "-lncurses" "/usr/lib/libncurses.a" () ())       (debug *unknown* "-g" "-g" #f () ())       (socket *unknown* "" "" #f () ())       (lib *unknown* "" "" #f () ("scmmain.c")) @@ -170,7 +170,7 @@ void throw_to_continuation P((CONTINUATION *cont, long val,     continuations on the SPARC.  It flushes the register windows so     that all the state of the process is contained in the stack. */ -#ifdef sparc +#if defined(sparc) || defined(__sparc__)  # define FLUSH_REGISTER_WINDOWS asm("ta 3")  #else  # define FLUSH_REGISTER_WINDOWS /* empty */ @@ -54,6 +54,18 @@  	int wgetch P((WINDOW *));  #endif +static int curses_initted = 0; + +static SCM scm_linitscr(void); + + +static void do_init_maybe() +{ +    if(!curses_initted) +        scm_linitscr(); +    curses_initted = 1; +} +  /* define WIN port type */  #define WIN(obj) ((WINDOW*)CDR(obj))  #define WINP(obj) (tc16_window==TYP16(obj)) @@ -84,8 +96,8 @@ static ptobfuns winptob = {    bwaddch,    bwaddstr,    bwwrite, -  wrefresh, -  wgetch, +  wrefresh, /* warning from compiler is wrefresh(WINDOW*) not (FILE*) */ +  wgetch,   /* warning from compiler is wrefresh(WINDOW*) not (FILE*) */    freewindow};  SCM mkwindow(win) @@ -102,7 +114,7 @@ SCM mkwindow(win)  }  SCM *loc_stdscr = 0; -SCM linitscr() +SCM scm_linitscr()  {    WINDOW *win;    if NIMP(*loc_stdscr) { @@ -110,10 +122,12 @@ SCM linitscr()      return *loc_stdscr;    }    win = initscr(); +  curses_initted = 1;    return *loc_stdscr = mkwindow(win);  }  SCM lendwin()  { +    do_init_maybe();    if IMP(*loc_stdscr) return BOOL_F;    return ERR==endwin() ? BOOL_F : BOOL_T;  } @@ -132,6 +146,7 @@ SCM lnewwin(lines, cols, args)    begin_x = CAR(CDR(args));    ASSERT(INUMP(begin_y), begin_y, ARG3, s_newwin);    ASSERT(INUMP(begin_x), begin_y, ARG4, s_newwin); +  do_init_maybe();    win = newwin(INUM(lines), INUM(cols),  	       INUM(begin_y), INUM(begin_x));    return mkwindow(win); @@ -302,7 +317,7 @@ static char s_nonl[] = "nonl", s_nocbreak[] = "nocbreak",  	    s_noecho[] = "noecho", s_noraw[] = "noraw";  static iproc subr0s[] = { -	{"initscr", linitscr}, +	{"initscr", scm_linitscr},  	{"endwin", lendwin},  	{&s_nonl[2], lnl},  	{s_nonl, lnonl}, @@ -403,5 +418,5 @@ void init_crs()    make_subr(s_mvwin, tc7_subr_3, lmvwin);    make_subr(s_box, tc7_subr_3, lbox);    add_feature("curses"); -  add_final(lendwin); +  /* add_final(lendwin); */  } diff --git a/debian/changelog b/debian/changelog new file mode 100644 index 0000000..981ac53 --- /dev/null +++ b/debian/changelog @@ -0,0 +1,133 @@ +scm (5d2-3) unstable frozen; urgency=low + +  * Fix libncurses4-dev -> libncurses5-dev build depend (Closes: #58435) +  * Fix libreadline2-dev -> libreadline4-dev build depend. +  * Fix license location in copyright file (lintian warning) +  * Add tetex-bin as a build depend (needs makeinfo) (Closes: #53197) +  * Add -isp option to dpkg-gencontrol (lintian error) +  * Move scm to section interpreters. + + -- James LewisMoss <dres@debian.org>  Sun, 12 Mar 2000 09:04:17 -0500 + +scm (5d2-2) unstable; urgency=low + +  * Apply patch from upstream for bug in eval.c. (Picked up from +    comp.lang.scheme) +  * Add Build-Depends on slib, librx1g-dev, libncurses4-dev, libreadlineg2-dev. +  * Up standards version. +  * Correct description: this is an R5RS implementation now +  * Make sure no optimizations are done on m68k. (Closes: #52434) + + -- James LewisMoss <dres@debian.org>  Thu, 16 Dec 1999 23:53:15 -0500 + +scm (5d2-1) unstable; urgency=low + +  * New upstream. + + -- James LewisMoss <dres@debian.org>  Mon,  6 Dec 1999 19:30:02 -0500 + +scm (5d1-2) unstable; urgency=low + +  * Remove TAGS on clean (cut the diff back down to reasonable size). + + -- James LewisMoss <dres@debian.org>  Sat, 13 Nov 1999 14:10:10 -0500 + +scm (5d1-1) unstable; urgency=low + +  * New upstream. +  * move stuff to /usr/share. + + -- James LewisMoss <dres@debian.org>  Sat, 13 Nov 1999 13:26:46 -0500 + +scm (5d0-3) unstable; urgency=low + +  * Change scmlit call to ./scmlit call (missed one) (Fixes bugs #37455 +    and #35545) +  * Change man file permissions to 644 (fixes lintian warning) + + -- James LewisMoss <dres@debian.org>  Wed, 12 May 1999 22:39:54 -0400 + +scm (5d0-2) unstable; urgency=low + +  * Removed call to add_final in init_crs.  lendwin doesn't do anything +    and scm was crashing when quit everytime in final_scm. +  * Changed copyright to reflect new source. + + -- James LewisMoss <dres@debian.org>  Thu, 11 Mar 1999 22:13:19 -0500 + +scm (5d0-1) unstable; urgency=low + +  * New upstream. +  * Changed (terms) to access "/usr/doc/copyright/GPL". +  * Changed regex to use -lrx + + -- James LewisMoss <dres@debian.org>  Sun,  7 Mar 1999 12:39:16 -0500 + +scm (5c3-6) unstable; urgency=low + +  * New maintainer. + + -- James LewisMoss <dres@debian.org>  Fri, 26 Feb 1999 00:45:30 -0500 + +scm (5c3-5) frozen unstable; urgency=low + +  * debian/rules chmod +x's bld.scm. Fixes #30521. + + -- David N. Welton <davidw@efn.org>  Fri, 11 Dec 1998 20:21:49 -0800 + +scm (5c3-4) frozen unstable; urgency=low + +  * Made bld.scm executable.  Fixes #29578. + + -- David N. Welton <davidw@efn.org>  Mon, 30 Nov 1998 20:57:12 -0800 + +scm (5c3-3) frozen unstable; urgency=low + +  * -nw +  * Fixes #16762.  +  * Fixes #18163. +  * Fixes #18164. +  * Fixes #23743. +  * Fixes #24098. +  * Fixes #24099. +  * Fixes #24547. + + -- David N. Welton <davidw@efn.org>  Mon,  9 Nov 1998 21:41:29 -0800 + +scm (5c3-2) frozen unstable; urgency=low + +  * Re-uploading for slink freeze. + + -- David N. Welton <davidw@efn.org>  Mon,  2 Nov 1998 21:06:01 -0800 + +scm (5c3-1) unstable; urgency=low + +  * New upstream version. + + -- David N. Welton <davidw@efn.org>  Thu, 29 Oct 1998 21:37:49 -0800 + +scm (5b3-1) unstable; urgency=low + +  * New maintainer +  * New version +  * libc6 + + -- Rob Browning <rlb@cs.utexas.edu>  Fri, 12 Dec 1997 17:29:42 -0600 + +scm (4e6-2) unstable; urgency=low + +  * Recompiled to use regex0. + + -- Karl Sackett <krs@debian.org>  Wed, 18 Dec 1996 13:27:20 -0600 + +scm (4e6-1) unstable; urgency=low + +  * First Debian release. +  * Makefile.in: scm compiles with regex. + + -- Karl Sackett <krs@debian.org>  Fri, 13 Dec 1996 08:55:23 -0600 + +Local variables: +mode: debian-changelog +add-log-mailing-address: "dres@debian.org" +End: diff --git a/debian/control b/debian/control new file mode 100644 index 0000000..adca312 --- /dev/null +++ b/debian/control @@ -0,0 +1,13 @@ +Source: scm +Section: interpreters +Priority: optional +Maintainer:  James LewisMoss <dres@debian.org> +Standards-Version: 3.1.1 +Build-Depends: slib, librx1g-dev, libncurses5-dev, libreadline4-dev, tetex-bin + +Package: scm +Architecture: any +Depends: slib, ${shlibs:Depends} +Description: A Scheme language interpreter. + Scm conforms to Revised^5 Report on the Algorithmic Language Scheme and + the IEEE P1178 specification. diff --git a/debian/copyright b/debian/copyright new file mode 100644 index 0000000..419226e --- /dev/null +++ b/debian/copyright @@ -0,0 +1,16 @@ +This is the Debian GNU/Linux prepackaged version of scm. + +This package was put together by Karl Sackett <krs@debian.org>, and +upgraded by James LewisMoss <dres@debian.org> from sources obtained +from: + +	ftp://swiss-ftp.ai.mit.edu/archive/scm/scm5d0.tar.gz + +For more information see: + +	http://www-swiss.ai.mit.edu/~jaffer/SCM.html + +License: + +scm is distributed under the GNU General Public License.  See +/usr/share/common-licenses/GPL for details. diff --git a/debian/postinst b/debian/postinst new file mode 100644 index 0000000..aa12961 --- /dev/null +++ b/debian/postinst @@ -0,0 +1,12 @@ +#!/bin/sh +set -e + +install-info --quiet --section "Development" "Development" \ +  --description="A Scheme language interpreter" \ +  /usr/share/info/scm.info.gz + +if [ "$1" = "configure" ]; then +	if [ -d /usr/doc -a ! -e /usr/doc/scm -a -d /usr/share/doc/scm ]; then +		ln -sf ../share/doc/scm /usr/doc/scm +	fi +fi diff --git a/debian/postrm b/debian/postrm new file mode 100644 index 0000000..e7f4756 --- /dev/null +++ b/debian/postrm @@ -0,0 +1,4 @@ +#!/bin/sh +set -e + +install-info --quiet --remove scm diff --git a/debian/prerm b/debian/prerm new file mode 100644 index 0000000..85fdaab --- /dev/null +++ b/debian/prerm @@ -0,0 +1,8 @@ +#!/bin/sh + +set -e + +if [ \( "$1" = "upgrade" -o "$1" = "remove" \) -a -L /usr/doc/scm ]; then +	rm -f /usr/doc/scm +fi + diff --git a/debian/require.scm.debian b/debian/require.scm.debian new file mode 100644 index 0000000..06e43e6 --- /dev/null +++ b/debian/require.scm.debian @@ -0,0 +1,2 @@ +(define (library-vicinity) "/usr/share/slib/") +(load (in-vicinity (library-vicinity) "require")) diff --git a/debian/rules b/debian/rules new file mode 100755 index 0000000..bc0618f --- /dev/null +++ b/debian/rules @@ -0,0 +1,151 @@ +#! /usr/bin/make -f +# -*-Makefile-*- + +CC =gcc +CFLAGS =-O2 -g -Wall +LDFLAGS = + +SHELL =/bin/sh +srcdir =. + +INSTALL =/usr/bin/install +INSTALL_DIR =$(INSTALL) -d -m 755 -o root -g root +INSTALL_PROGRAM =$(INSTALL) -m 755 -o root -g root +INSTALL_DATA =$(INSTALL) -m 644 -o root -g root +INSTALL_MAN =$(INSTALL) -m 644 -o root -g root + +ifeq ($(DEB_BUILD_ARCH), m68k) +COMPILER_OPTIONS= +else +COMPILER_OPTIONS=-O2 +endif + +SCM_OPTIONS = -p linux  \ +  --compiler-options=-g \ +  --compiler-options=$(COMPILER_OPTIONS) \ +  -F cautious \ +  -F bignums \ +  -F arrays \ +  -F array-for-each \ +  -F inexact \ +  -F record \ +  -F compiled-closure \ +  -F generalized-c-arguments \ +  -F tick-interrupts \ +  -F i/o-extensions \ +  -F edit-line \ +  -F regex \ +  -F socket \ +  -F posix \ +  -F unix \ +  -F curses \ +  -F dynamic-linking \ +  -F dump \ +  -F macro + +#   -F heap-can-shrink \ + +NON_LIB_FILES = 'bench.scm|build.scm|example.scm|r4rstest.scm|pi.scm' + +#test: stamp-configure +#	$(checkdir) +#	make checklit + +build: +	chmod +x bld.scm +	$(checkdir) +	cp debian/require.scm.debian require.scm +ifeq ($(DEB_BUILD_ARCH), m68k) +	${MAKE} scmlit CFLAGS=-g +else +	${MAKE} scmlit +endif +	test -e /usr/share/slib || \ +    (echo "Must have slib installed for compile" && exit 1)	 +#	SCHEME_LIBRARY_PATH=/usr/share/slib/ ./build.scm ${SCM_OPTIONS} > debian/bld +	./bld.scm ${SCM_OPTIONS} > debian/bld +	chmod ug+x debian/bld +	debian/bld +	#-rm -f debian/bld +	#makeinfo scm.texi -o scm.info +	make scm.info +	texi2html -monolithic scm.texi +	touch build + +clean: +	$(checkdir) +	-rm scm.info* scm.html tmp1 tmp2 scmflags.h scmlit +	-rm -f scm5d0.info +	-rm require.scm scm +	make distclean +	-rm -f build debian/bld +	-rm -rf *~ debian/*~ debian/tmp* debian/files debian/substvars + +binary-indep: checkroot +	$(checkdir) + +binary-arch: checkroot build +	$(checkdir)	 +	-rm -rf debian/tmp* + +# debian/tmp +	$(INSTALL_DIR) debian/tmp +	$(INSTALL_DIR) debian/tmp/DEBIAN +	$(INSTALL_PROGRAM) debian/postinst debian/tmp/DEBIAN +	$(INSTALL_PROGRAM) debian/prerm debian/tmp/DEBIAN +	$(INSTALL_PROGRAM) debian/postrm debian/tmp/DEBIAN + +# binaries +	$(INSTALL_DIR) debian/tmp/usr/bin +	$(INSTALL_PROGRAM) -s scm debian/tmp/usr/bin + +# library +	$(INSTALL_DIR) debian/tmp/usr/lib/scm +	$(INSTALL_DATA) `ls *.scm | egrep -v ${NON_LIB_FILES}` debian/tmp/usr/lib/scm +	$(INSTALL_DATA) slibcat debian/tmp/usr/lib/scm +	chmod +x debian/tmp/usr/lib/scm/bld.scm + +# man pages +	$(INSTALL_DIR) debian/tmp/usr/share/man/man1 +	$(INSTALL_MAN)	scm.1 debian/tmp/usr/share/man/man1 +	gzip -9vr debian/tmp/usr/share/man + +# documentation +	$(INSTALL_DIR) debian/tmp/usr/share/doc/scm +	$(INSTALL_DATA) debian/changelog debian/tmp/usr/share/doc/scm/changelog.Debian +	$(INSTALL_DATA) ChangeLog debian/tmp/usr/share/doc/scm/changelog +	$(INSTALL_DATA) QUICKREF debian/tmp/usr/share/doc/scm +	$(INSTALL_DATA) README debian/tmp/usr/share/doc/scm +	gzip -9v debian/tmp/usr/share/doc/scm/* +	$(INSTALL_DATA) scm.html debian/tmp/usr/share/doc/scm +	$(INSTALL_DATA) debian/copyright debian/tmp/usr/share/doc/scm + +# examples +	$(INSTALL_DIR) debian/tmp/usr/share/doc/scm/examples +	$(INSTALL_DATA) r4rstest.scm debian/tmp/usr/share/doc/scm/examples +	$(INSTALL_DATA) example.scm debian/tmp/usr/share/doc/scm/examples +	$(INSTALL_DATA) pi.scm debian/tmp/usr/share/doc/scm/examples +	$(INSTALL_DATA) pi.c debian/tmp/usr/share/doc/scm/examples +	$(INSTALL_DATA) bench.scm debian/tmp/usr/share/doc/scm/examples +	$(INSTALL_DATA) split.scm debian/tmp/usr/share/doc/scm/examples + +# info pages +	$(INSTALL_DIR) debian/tmp/usr/share/info +	$(INSTALL_DATA) scm.info* debian/tmp/usr/share/info +	gzip -9 debian/tmp/usr/share/info/* + +	dpkg-shlibdeps scm +	dpkg-gencontrol -isp +	dpkg --build debian/tmp .. + +define checkdir +	test -f scm.h -a -f debian/rules +endef + +binary: binary-indep binary-arch + +checkroot: +	$(checkdir) +	test root = "`whoami`" + +.PHONY: clean binary binary-arch binary-indep @@ -2332,7 +2332,7 @@ SCM scm_cvapply(proc, n, argv)      return SUBRF(proc)(argv[0], argv[1],  		       2==n ? EOL : scm_v2lst(n-2, &argv[2]));    case tc7_asubr: -    if (1 >= n) return SUBRF(proc)(0==n ? argv[0] : UNDEFINED, UNDEFINED); +    if (1 >= n) return SUBRF(proc)(0==n ? UNDEFINED : argv[0], UNDEFINED);      res = argv[0];      for (i = 1; i < n; i++)        res = SUBRF(proc)(res, argv[i]); diff --git a/features.txi b/features.txi new file mode 100644 index 0000000..3580171 --- /dev/null +++ b/features.txi @@ -0,0 +1,196 @@ +@item array +@cindex array +Alias for ARRAYS + +@item array-for-each +@cindex array-for-each +array-map! and array-for-each (arrays must also be featured). + +@item arrays +@cindex arrays +Use if you want arrays, uniform-arrays and uniform-vectors. + +@item bignums +@cindex bignums +Large precision integers. + +@item careful-interrupt-masking +@cindex careful-interrupt-masking +Define this for extra checking of interrupt masking and some simple +checks for proper use of malloc and free.  This is for debugging C +code in @file{sys.c}, @file{eval.c}, @file{repl.c} and makes the +interpreter several times slower than usual. + +@item cautious +@cindex cautious +Normally, the number of arguments arguments to interpreted closures +(from LAMBDA) are checked if the function part of a form is not a +symbol or only the first time the form is executed if the function +part is a symbol.  defining @samp{reckless} disables any checking. +If you want to have SCM always check the number of arguments to +interpreted closures define feature @samp{cautious}. + +@item cheap-continuations +@cindex cheap-continuations +If you only need straight stack continuations, executables compile with +this feature will run faster and use less storage than not having it. +Machines with unusual stacks @emph{need} this.  Also, if you incorporate +new C code into scm which uses VMS system services or library routines +(which need to unwind the stack in an ordrly manner) you may need to +use this feature. + +@item compiled-closure +@cindex compiled-closure +Use if you want to use compiled closures. + +@item curses +@cindex curses +For the @dfn{curses} screen management package. + +@item debug +@cindex debug +Turns on the features @samp{cautious}, +@samp{careful-interrupt-masking}, and @samp{stack-limit}; uses +@code{-g} flags for debugging SCM source code. + +@item dump +@cindex dump +Convert a running scheme program into an executable file. + +@item dynamic-linking +@cindex dynamic-linking +Be able to load compiled files while running. + +@item edit-line +@cindex edit-line +interface to the editline or GNU readline library. + +@item engineering-notation +@cindex engineering-notation +Use if you want floats to display in engineering notation (exponents +always multiples of 3) instead of scientific notation. + +@item generalized-c-arguments +@cindex generalized-c-arguments +@code{make_gsubr} for arbitrary (< 11) arguments to C functions. + +@item i/o-extensions +@cindex i/o-extensions +Commonly available I/O extensions: @dfn{exec}, line I/O, file +positioning, file delete and rename, and directory functions. + +@item inexact +@cindex inexact +Use if you want floating point numbers. + +@item lit +@cindex lit +Lightweight -- no features + +@item macro +@cindex macro +C level support for hygienic and referentially transparent macros +(syntax-rules macros). + +@item mysql +@cindex mysql +Client connections to the mysql databases. + +@item no-heap-shrink +@cindex no-heap-shrink +Use if you want segments of unused heap to not be freed up after +garbage collection.  This may increase time in GC for *very* large +working sets. + +@item none +@cindex none +No features + +@item posix +@cindex posix +Posix functions available on all @dfn{Unix-like} systems.  fork and +process functions, user and group IDs, file permissions, and +@dfn{link}. + +@item reckless +@cindex reckless +If your scheme code runs without any errors you can disable almost +all error checking by compiling all files with @samp{reckless}. + +@item record +@cindex record +The Record package provides a facility for user to define their own +record data types.  See SLIB for documentation. + +@item regex +@cindex regex +String regular expression matching. + +@item rev2-procedures +@cindex rev2-procedures +These procedures were specified in the @cite{Revised^2 Report on Scheme} +but not in @cite{R4RS}. + +@item sicp +@cindex sicp +Use if you want to run code from: + +@cindex SICP +Harold Abelson and Gerald Jay Sussman with Julie Sussman. +@cite{Structure and Interpretation of Computer Programs.} +The MIT Press, Cambridge, Massachusetts, USA, 1985. + +Differences from R5RS are: +@itemize @bullet +@item +(eq? '() '#f) +@item +(define a 25) returns the symbol a. +@item +(set! a 36) returns 36. +@end itemize + +@item single-precision-only +@cindex single-precision-only +Use if you want all inexact real numbers to be single precision.  This +only has an effect if SINGLES is also defined (which is the default). +This does not affect complex numbers. + +@item socket +@cindex socket +BSD @dfn{socket} interface. + +@item stack-limit +@cindex stack-limit +Use to enable checking for stack overflow.  Define value of the C +preprocessor variable @var{STACK_LIMIT} to be the size to which SCM +should allow the stack to grow.  STACK_LIMIT should be less than the +maximum size the hardware can support, as not every routine checks the +stack. + +@item tick-interrupts +@cindex tick-interrupts +Use if you want the ticks and ticks-interrupt functions. + +@item turtlegr +@cindex turtlegr +@dfn{Turtle} graphics calls for both Borland-C and X11 from +sjm@@ee.tut.fi. + +@item unix +@cindex unix +Those unix features which have not made it into the Posix specs: +nice, acct, lstat, readlink, symlink, mknod and sync. + +@item windows +@cindex windows +Microsoft Windows executable. + +@item x +@cindex x +Alias for Xlib feature. + +@item xlib +@cindex xlib +Interface to Xlib graphics routines. + diff --git a/mkimpcat.scm b/mkimpcat.scm index 57c29b0..2f6c13a 100644 --- a/mkimpcat.scm +++ b/mkimpcat.scm @@ -41,15 +41,17 @@  ;;;; "mkimpcat.scm" Build SCM-specific catalog for SLIB.  ;;; Author: Aubrey Jaffer. +(define (installation-vicinity) "/usr/lib/scm/") +  (let ((catname "implcat"))    (call-with-output-file (in-vicinity (implementation-vicinity) catname)      (lambda (op)        (define (display* . args)  	(for-each (lambda (arg) (display arg op)) args)  	(newline op)) -      (define wb:vicinity (string-append (implementation-vicinity) "../wb/")) +      (define wb:vicinity (string-append (installation-vicinity) "../wb/"))        (define x-scm:vicinity -	(string-append (implementation-vicinity) "../xscm-2.01/")) +	(string-append (installation-vicinity) "../xscm-2.01/"))        (define (add-link feature ofile . libs)  	(cond ((file-exists? ofile)  	       ;; remove #f from libs list @@ -72,14 +74,14 @@  	(display* "(")  	(begin  	  (cond ((add-link 'i/o-extensions -			   (in-vicinity (implementation-vicinity) "ioext" +			   (in-vicinity (installation-vicinity) "ioext"  					link:able-suffix)  			   (usr:lib "c"))  		 (add-alias 'directory-for-each 'i/o-extensions)  		 (add-alias 'line-i/o 'i/o-extensions)  		 (add-alias 'pipe 'i/o-extensions)))  	  (cond ((add-link 'rev2-procedures -			   (in-vicinity (implementation-vicinity) "sc2" +			   (in-vicinity (installation-vicinity) "sc2"  					link:able-suffix))  		 (add-alias  'rev3-procedures 'rev2-procedures)))  	  (cond ((or @@ -111,55 +113,55 @@  		 (add-source 'xpm   (in-vicinity x-scm:vicinity "xpm"))))  	  (add-link 'turtle-graphics -		    (in-vicinity (implementation-vicinity) "turtlegr" +		    (in-vicinity (installation-vicinity) "turtlegr"  				 link:able-suffix)  		    (x:lib "X11")  		    (usr:lib "m")  		    (usr:lib "c"))  	  (add-link 'Xlib -		    (in-vicinity (implementation-vicinity) "x" +		    (in-vicinity (installation-vicinity) "x"  				 link:able-suffix)  		    (x:lib "X11")  		    (usr:lib "c"))  	  (add-link 'curses -		    (in-vicinity (implementation-vicinity) "crs" +		    (in-vicinity (installation-vicinity) "crs"  				 link:able-suffix)  		    (usr:lib "ncurses")  		    ;;(usr:lib "curses")  		    ;;(usr:lib "termcap")  		    (usr:lib "c"))  	  (add-link 'edit-line -		    (in-vicinity (implementation-vicinity) "edline" +		    (in-vicinity (installation-vicinity) "edline"  				 link:able-suffix)  		    (usr:lib "readline")  		    (usr:lib "termcap")  		    (usr:lib "c"))  	  (add-link 'regex -		    (in-vicinity (implementation-vicinity) "rgx" +		    (in-vicinity (installation-vicinity) "rgx"  				 link:able-suffix)  		    (usr:lib "c"))  	  (add-link 'unix -		    (in-vicinity (implementation-vicinity) "unix" +		    (in-vicinity (installation-vicinity) "unix"  				 link:able-suffix) -		    (in-vicinity (implementation-vicinity) "ioext" +		    (in-vicinity (installation-vicinity) "ioext"  				 link:able-suffix)  		    (usr:lib "c"))  	  (add-link 'posix -		    (in-vicinity (implementation-vicinity) "posix" +		    (in-vicinity (installation-vicinity) "posix"  				 link:able-suffix)  		    (usr:lib "c"))  	  (add-link 'socket -		    (in-vicinity (implementation-vicinity) "socket" +		    (in-vicinity (installation-vicinity) "socket"  				 link:able-suffix)  		    (usr:lib "c"))  	  (add-link 'record -		    (in-vicinity (implementation-vicinity) "record" +		    (in-vicinity (installation-vicinity) "record"  				 link:able-suffix))  	  (add-link 'generalized-c-arguments -		    (in-vicinity (implementation-vicinity) "gsubr" +		    (in-vicinity (installation-vicinity) "gsubr"  				 link:able-suffix))  	  (add-link 'array-for-each -		    (in-vicinity (implementation-vicinity) "ramap" +		    (in-vicinity (installation-vicinity) "ramap"  				 link:able-suffix))  	  )  	(display* ")") @@ -180,14 +182,14 @@        (begin  	;; Simple associations -- OK for all modes of dynamic-linking  	(display* "(") -	(add-alias 'hobbit (in-vicinity (implementation-vicinity) "hobbit")) -	(add-alias 'scmhob (in-vicinity (implementation-vicinity) "scmhob")) +	(add-alias 'hobbit (in-vicinity (installation-vicinity) "hobbit")) +	(add-alias 'scmhob (in-vicinity (installation-vicinity) "scmhob"))  	(add-alias 'regex-case -		    (in-vicinity (implementation-vicinity) "rgxcase")) +		    (in-vicinity (installation-vicinity) "rgxcase"))  	(add-alias 'url-filename -		    (in-vicinity (implementation-vicinity) "urlfile")) +		    (in-vicinity (installation-vicinity) "urlfile"))  	(add-source 'disarm (in-vicinity -			     (implementation-vicinity) +			     (installation-vicinity)  			     (string-append "disarm" (scheme-file-suffix))))  	(add-source 'build (in-vicinity  			    (implementation-vicinity) @@ -203,7 +205,7 @@  	(display* "#.(if (defined? renamed-identifier)")  	(display* "      '(")  	(display "       " op) -	(add-source 'macro (in-vicinity (implementation-vicinity) "Macro")) +	(add-source 'macro (in-vicinity (installation-vicinity) "Macro"))  	(display* "        )")  	(display* "      '())")  	) diff --git a/platform.txi b/platform.txi new file mode 100644 index 0000000..bae415d --- /dev/null +++ b/platform.txi @@ -0,0 +1,43 @@ +Table: platform +name              processor         operating-system  compiler           +#f                processor-family  operating-system  #f                 +symbol            processor-family  operating-system  symbol             +symbol            atom              symbol            symbol             +================= ================= ================= =================  +*unknown*         *unknown*         unix              cc                 +acorn-unixlib     acorn             *unknown*         cc                 +aix               powerpc           aix               cc                 +alpha             alpha             osf1              cc                 +alpha-elf         alpha             unix              cc                 +alpha-linux       alpha             linux             gcc                +amiga-aztec       m68000            amiga             cc                 +amiga-dice-c      m68000            amiga             dcc                +amiga-gcc         m68000            amiga             gcc                +amiga-sas         m68000            amiga             lc                 +atari-st-gcc      m68000            atari.st          gcc                +atari-st-turbo-c  m68000            atari.st          tcc                +borland-c         8086              ms-dos            bcc                +cygwin32          i386              unix              gcc                +djgpp             i386              ms-dos            gcc                +freebsd           i386              unix              cc                 +gcc               *unknown*         unix              gcc                +highc             i386              ms-dos            hc386              +hp-ux             hp-risc           hp-ux             cc                 +irix              mips              irix              gcc                +linux             i386              linux             gcc                +linux-aout        i386              linux             gcc                +microsoft-c       8086              ms-dos            cl                 +microsoft-c-nt    i386              ms-dos            cl                 +microsoft-quick-c 8086              ms-dos            qcl                +ms-dos            8086              ms-dos            cc                 +os/2-cset         i386              os/2              icc                +os/2-emx          i386              os/2              gcc                +sunos             sparc             sunos             cc                 +svr4              *unknown*         unix              cc                 +svr4-gcc-sun-ld   sparc             sunos             gcc                +turbo-c           8086              ms-dos            tcc                +unicos            cray              unicos            cc                 +unix              *unknown*         unix              cc                 +vms               vax               vms               cc                 +vms-gcc           vax               vms               gcc                +watcom-9.0        i386              ms-dos            wcc386p            @@ -0,0 +1,2 @@ +;(0.25 -3.25) +(define foo (quote (0.25 -3.25)))
\ No newline at end of file diff --git a/version.txi b/version.txi new file mode 100644 index 0000000..b5a0148 --- /dev/null +++ b/version.txi @@ -0,0 +1,2 @@ +@set SCMVERSION 5d0 +@set SCMDATE January 1999 @@ -1,4 +1,4 @@ -#! /usr/local/bin/scm \ %0 %1 %2 %3 %4 %5 %6 %7 %8 %9 +#! /usr/bin/scm \ %0 %1 %2 %3 %4 %5 %6 %7 %8 %9  - !#  ;; Copyright (C) 1991-1999 Free Software Foundation, Inc.  ;;  | 
