[pe.cust.sources] Little Smalltalk Source, *New* Part 1 of 20

earlw@pesnta.UUCP (Earl Wallace) (06/13/85)

#! /bin/sh 
#
# This is an another posting of the Little Smalltalk source, the last posting
# of this source went out in 5 parts and they were too big (>200k) for most
# sites so I redid the whole mess to keep the files around the 50k range.
#
# The complete set is now 20 parts.
#
# P.S. - If you don't receive all 20 parts within 5 days, drop me a line.
#	 Also, I have the Rand sources of May 1984, if someone has a more
#	 updated copy, I'll be happy to post them (or YOU can post them :-))
# 
# -earlw@pesnta
#
#! /bin/sh
# This is a shell archive, meaning:
# 1. Remove everything above the #! /bin/sh line.
# 2. Save the resulting text in a file.
# 3. Execute the file with /bin/sh (not csh) to create the files:
#	LOGFILE
#	Makefile
#	READ_ME
#	disclaim
#	docs/BUGS
#	docs/INDEX
#	docs/Makefile
# This archive created: Thu Jun 13 11:31:33 1985
# By:	Earl Wallace (Perkin-Elmer Data Systems Group / Customer Service)
export PATH; PATH=/bin:$PATH
if test -f 'LOGFILE'
then
	echo shar: will not over-write existing file "'LOGFILE'"
else
cat << \SHAR_EOF > 'LOGFILE'
	echo "Installing Little Smalltalk System"
Installing Little Smalltalk System
	cd parser ; make install
	cc  -c y.tab.c
	cc  -c parse1.c
	cc  -c parse2.c
	cc  -o parse y.tab.o parse1.o parse2.o -lm
	mv parse ../bin
	cd sources ; make install
	cp ../parser/drive.h .
	sstr symbols <../parser/cmds.h >cmds.h
	cp ../parser/env.h .
	cc  -c main.c
	cc  -c object.c
	cc  -c line.c
	cc  -c class.c
	cc  -c number.c
	cc  -c symbol.c
	cc  -c string.c
	cc  -c byte.c
	cc  -c array.c
	cc  -c file.c
	cc  -c primitive.c
	cc  -c syms.c
	cc  -c cldict.c
	cc  -c process.c
	cc  -c interp.c
	cc  -c block.c
	cc  -c courier.c
	cc  -c lex.c
	cc  -c drive.c
	cc  -c lexcmd.c
	cc  -o st main.o object.o line.o  class.o number.o symbol.o string.o byte.o array.o file.o  primitive.o syms.o cldict.o process.o interp.o block.o courier.o  lex.o drive.o lexcmd.o -lm
	mv st ../bin
	cd prelude ; make install
	make fastsave
	../bin/st -m <savescript
Little Smalltalk
		

	cd tests ; make install
	echo Performing Self Checking Tests
Performing Self Checking Tests
	make basic.test
	../bin/st -m basic.st <in | diff - basic.out
	make blocks.test
	../bin/st -m blocks.st <in | diff - blocks.out
	make fork.test
	../bin/st -m fork.st <in | diff - fork.out
	make new.test
	../bin/st -m new.st <in | diff - new.out
	make super.test
	../bin/st -m super.st <in | diff - super.out
	make copy.test
	../bin/st -m copy.st <in | diff - copy.out
	make num.test
	../bin/st -m num.st <in | diff - num.out
	make file.test
	../bin/st -m file.st <in | diff - file.out
	make primes.test
	../bin/st -m primes.st <in | diff - primes.out
	make collect.test
	../bin/st -m collect.st <in | diff - collect.out
	make 4queen.test
	../bin/st -m 4queen.st <in | diff - 4queen.out
	echo The following produce cycles, thus have nonzero differences
The following produce cycles, thus have nonzero differences
	make phil.test
	../bin/st -m phil.st <in | diff - phil.out
	echo Differences in random numbers may change results in following
Differences in random numbers may change results in following
	make sim1.test
	../bin/st -m sim1.st <in | diff - sim1.out
4c4
< customer received at 7
---
> customer received at 5
8c8
< customer received at 9
---
> customer received at 10
12c12
< customer received at 17
---
> customer received at 14
14c14
< customer received at 21
---
> customer received at 19
16c16
< customer received at 25
---
> customer received at 23
18c18,20
< profits are 4.08
---
> customer received at 27
> customer has 3 scoops 
> profits are 4.59
*** Error code 1
*** Error code 1 (ignored)
	make sim2.test
	../bin/st -m sim2.st <in | diff - sim2.out
3,5c3,5
< group of 6 have 8 scoops 
< customer received at 7
< group of 6 have 9 scoops 
---
> group of 7 have 10 scoops 
> customer received at 5
> group of 7 have 9 scoops 
7,9c7,9
< group of 6 have 7 scoops 
< customer received at 9
< group of 6 have 11 scoops 
---
> group of 7 have 11 scoops 
> customer received at 10
> group of 7 have 7 scoops 
11,18c11,20
< group of 6 have 10 scoops 
< customer received at 17
< group of 6 have 8 scoops 
< customer received at 21
< group of 6 have 6 scoops 
< customer received at 25
< group of 6 have 7 scoops 
< profits are 11.22
---
> group of 7 have 9 scoops 
> customer received at 14
> group of 7 have 10 scoops 
> customer received at 19
> group of 7 have 11 scoops 
> customer received at 23
> group of 7 have 8 scoops 
> customer received at 27
> group of 7 have 8 scoops 
> profits are 14.11
*** Error code 1
*** Error code 1 (ignored)
	echo Finished Self Checking Tests
Finished Self Checking Tests
SHAR_EOF
if test 3563 -ne "`wc -c < 'LOGFILE'`"
then
	echo shar: error transmitting "'LOGFILE'" '(should have been 3563 characters)'
fi
fi # end of overwriting check
if test -f 'Makefile'
then
	echo shar: will not over-write existing file "'Makefile'"
else
cat << \SHAR_EOF > 'Makefile'
install:
	@echo "Installing Little Smalltalk System"
	cd parser ; make install
	cd sources ; make install
	cd prelude ; make install
	cd tests ; make install

clean:
	cd sources; make clean
	cd parser; make clean

shar:
	@echo shar started...
	shar -c Makefile READ_ME disclaim bin symbols \
	        parser newsletters tests 			  > lst.1
	shar -c sources           				  > lst.2
	shar -c prelude           				  > lst.3
	shar -c projects          				  > lst.4
	shar -c docs 					          > lst.5
	@echo shar completed.

tartape:
	tar cv Makefile unbundle *.bundle projects newsletters

800tartape:
	tar cvf /dev/rmt0 Makefile unbundle *.bundle projects newsletters

gone:
	@echo "WARNING: You just tried to delete all files!"
	@echo "         If you want to do that use:  rm -rf *"
SHAR_EOF
if test 785 -ne "`wc -c < 'Makefile'`"
then
	echo shar: error transmitting "'Makefile'" '(should have been 785 characters)'
fi
fi # end of overwriting check
if test -f 'READ_ME'
then
	echo shar: will not over-write existing file "'READ_ME'"
else
cat << \SHAR_EOF > 'READ_ME'
NOTE:
	* Origional XELOS directory was /u/smalltalk/...
	  Grep sources for reference to hard-coding and modify
	  as appropriate

	* Compiled XELOS objects in ../bin need be moved to
	  an accessible path

	* Documentation is in ../docs.  Unfortunately, macros are
	  for the "ms" set and Makefile is geared for itroff and
	  ditroff.
	
	* It works so far!

Marc Ries
June 1985

SHAR_EOF
if test 380 -ne "`wc -c < 'READ_ME'`"
then
	echo shar: error transmitting "'READ_ME'" '(should have been 380 characters)'
fi
fi # end of overwriting check
if test -f 'disclaim'
then
	echo shar: will not over-write existing file "'disclaim'"
else
cat << \SHAR_EOF > 'disclaim'
/*
	The source code for the Little Smalltalk System may be freely
	copied provided that the source of all files is acknowledged
	and that this condition is copied with each file.

	The Little Smalltalk System is distributed without responsibility
	for the performance of the program and without any guarantee of
	maintenance.

	All questions concerning Little Smalltalk should be addressed to:

		Professor Tim Budd
		Department of Computer Science
		The University of Arizona
		Tucson, Arizona
		85721
		USA
*/
SHAR_EOF
if test 512 -ne "`wc -c < 'disclaim'`"
then
	echo shar: error transmitting "'disclaim'" '(should have been 512 characters)'
fi
fi # end of overwriting check
if test -f 'docs/BUGS'
then
	echo shar: will not over-write existing file "'docs/BUGS'"
else
cat << \SHAR_EOF > 'docs/BUGS'
KNOWN BUGS

1/1/85 assigning a block to a variable will usually cause cycles
	(not really a bug, caused by the implementation - blocks need to
	access the context, which includes the local variables, which
	includes the block, which needs to access the context ... )

1/1/85	The stack size allocated by the parser is fixed.  It should be
	computed by the parser and varied for different methods.

1/1/85  system should be modified to allow execution on system with no
	``system()'' system call (whew!).  This would involve using two
	programs - a parser to take class descriptions and turn them into
	internal form, and the smalltalk system.  Should be easy to do,
	however.

2/1/85	fast loading does not work on the HP9000

4/1/85	if you modify the class Smalltalk (and thereby the pseudo variable
	smalltalk) the pseudo variable does not get properly initialized.

4/1/85	Because of bootstrapping peculiarities, a few classes (such as
	Object or Symbol or String) do not respond to the message ``variables''
	correctly.
SHAR_EOF
if test 1022 -ne "`wc -c < 'docs/BUGS'`"
then
	echo shar: error transmitting "'docs/BUGS'" '(should have been 1022 characters)'
fi
fi # end of overwriting check
if test -f 'docs/INDEX'
then
	echo shar: will not over-write existing file "'docs/INDEX'"
else
cat << \SHAR_EOF > 'docs/INDEX'
1983 :books 0/122 234/101
1984 :books 123/110
addiso :books 0/122 123/110 234/101
adele :books 0/122 123/110
advice :books 234/101
bits :books 234/101
blue :books 0/122
david :books 0/122
enviro :books 123/110
glenn :books 234/101
goldbe :books 0/122 123/110
green :books 234/101
histor :books 234/101
implem :books 0/122
intera :books 123/110
its :books 0/122
krasne :books 234/101
langua :books 0/122
orange :books 123/110
progra :books 123/110
robson :books 0/122
smallt :books 0/122 123/110 234/101
words :books 234/101
SHAR_EOF
if test 524 -ne "`wc -c < 'docs/INDEX'`"
then
	echo shar: error transmitting "'docs/INDEX'" '(should have been 524 characters)'
fi
fi # end of overwriting check
if test -f 'docs/Makefile'
then
	echo shar: will not over-write existing file "'docs/Makefile'"
else
cat << \SHAR_EOF > 'docs/Makefile'
TROFF = itroff
DITROFF = ditroff
FILES = Makefile macros books BUGS INDEX \
install userman apndx1 man syntax

INDEX: books
	invert books

installguide:
	$(TROFF) -ms install

manbody: INDEX 
	bib userman | tbl | $(TROFF) -ms 

appendix1: apndx1 macros
	tbl apndx1 | $(TROFF) -ms

appendix2:
	$(TROFF) -man man

appendix3:
	pic syntax | $(DITROFF) -ms

bundle: $(FILES)
	bundle $(FILES) >../docs.bundle

SHAR_EOF
if test 404 -ne "`wc -c < 'docs/Makefile'`"
then
	echo shar: error transmitting "'docs/Makefile'" '(should have been 404 characters)'
fi
fi # end of overwriting check
#	End of shell archive
exit 0