From: Larry Wall Date: Mon, 8 Jun 1992 04:49:57 +0000 (+0000) Subject: perl 4.0 patch 27: patch #20, continued X-Git-Url: http://git.shadowcat.co.uk/gitweb/gitweb.cgi?a=commitdiff_plain;h=7b0cd887a13445cfae2c23db0b7efd05a47758e6;p=p5sagit%2Fp5-mst-13.2.git perl 4.0 patch 27: patch #20, continued See patch #20. --- diff --git a/atarist/makefile.sm b/atarist/makefile.sm new file mode 100644 index 0000000..6c2afbf --- /dev/null +++ b/atarist/makefile.sm @@ -0,0 +1,457 @@ +# : Makefile.SH,v 9820Revision: 4.0.1.2 9820Date: 91/06/07 10:14:43 $ +# +# $Log: makefile.sm,v $ +# Revision 4.0.1.1 92/06/08 11:50:00 lwall +# Initial revision +# +# Revision 4.0.1.2 91/06/07 10:14:43 lwall +# patch4: cflags now emits entire cc command except for the filename +# patch4: alternate make programs are now semi-supported +# patch4: uperl.o no longer tries to link in libraries prematurely +# patch4: installperl now installs x2p stuff too +# +# Revision 4.0.1.1 91/04/11 17:30:39 lwall +# patch1: C flags are now settable on a per-file basis +# +# Revision 4.0 91/03/20 00:58:54 lwall +# 4.0 baseline. +# +# + +CC = cgcc +YACC = bison -y +LDFLAGS = +CLDFLAGS = +SMALL = +LARGE = +mallocsrc = malloc.c +mallocobj = malloc.o +SLN = ln -s + +libs = -lgdbm -lpml + +public = perl.ttp + +# To use an alternate make, set in config.sh. +MAKE = make + + +CCCMD = $(CC) -O2 -fomit-frame-pointer -fstrength-reduce -c -DMYMALLOC + +private = + +scripts = + +manpages = perl.man h2ph.man + +util = echo.ttp perlglob.ttp + +sh = Makefile.SH makedepend.SH h2ph.SH + +h1 = EXTERN.h INTERN.h arg.h array.h cmd.h config.h form.h handy.h +h2 = hash.h perl.h regcomp.h regexp.h spat.h stab.h str.h util.h + +h = $(h1) $(h2) + +c1 = array.c cmd.c cons.c consarg.c doarg.c doio.c dolist.c dump.c +c2 = eval.c form.c hash.c $(mallocsrc) perl.c regcomp.c regexec.c +c3 = stab.c str.c toke.c util.c atarist.c usersub.c + +c = $(c1) $(c2) $(c3) + +obj1 = array.o cmd.o cons.o consarg.o doarg.o doio.o dolist.o dump.o +obj2 = eval.o form.o hash.o $(mallocobj) perl.o regcomp.o regexec.o +obj3 = stab.o str.o toke.o util.o atarist.o + +obj = $(obj1) $(obj2) $(obj3) + +lintflags = -hbvxac + +# grrr +SHELL = /bin/sh + +.c.o: + $(CCCMD) $*.c + +all: $(public) $(util) + +# This is the standard version that contains no "taint" checks and is +# used for all scripts that aren't set-id or running under something set-id. +# The $& notation is tells Sequent machines that it can do a parallel make, +# and is harmless otherwise. + +perl.ttp: perly.o $(obj) usersub.o + $(CC) $(LARGE) $(CLDFLAGS) $(obj) perly.o usersub.o $(libs) -o perl.ttp -v -s + +echo.ttp: wildmat.o echo.c + $(CC) -O -mshort -fomit-frame-pointer -o echo.ttp \ + echo.c wildmat.o -liio16 -s + +perlglob.ttp: wildmat.o perlglob.c + $(CC) -O -mshort -fomit-frame-pointer -o perlglob.ttp \ + perlglob.c wildmat.o -liio16 -s + +wildmat.o: wildmat.c + $(CC) -O -mshort -fomit-frame-pointer -c wildmat.c + +perly.h: perly.c + @ echo Dummy dependency for dumb parallel make + touch perly.h + +perly.c: perly.y perly.fixer + @ echo 'Expect either' 29 shift/reduce and 59 reduce/reduce conflicts... + @ echo ' or' 27 shift/reduce and 61 reduce/reduce conflicts... + $(YACC) -d perly.y + sh ./perly.fixer y.tab.c perly.c + mv y.tab.h perly.h + echo 'extern YYSTYPE yylval;' >>perly.h + +perly.o: perly.c perly.h $(h) + $(CCCMD) perly.c + + +clean: + rm -f *.o + +realclean: clean + rm -f *.ttp report core + rm -f perly.c perly.h + +# The following lint has practically everything turned on. Unfortunately, +# you have to wade through a lot of mumbo jumbo that can't be suppressed. +# If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message +# for that spot. + +lint: perly.c $(c) + lint $(lintflags) $(defs) perly.c $(c) > perl.fuzz + +depend: makedepend + - test -f perly.h || cp /dev/null perly.h + ./makedepend + - test -s perly.h || /bin/rm -f perly.h + +test: perl + - cd t && chmod +x TEST */*.t + - cd t && (rm -f perl; $(SLN) ../perl .) && ./perl TEST .clist + +hlist: + echo $(h) | tr ' ' '\012' >.hlist + +shlist: + echo $(sh) | tr ' ' '\012' >.shlist + +# AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE +# If this runs make out of memory, delete /usr/include lines. +array.o: EXTERN.h +array.o: arg.h +array.o: array.c +array.o: array.h +array.o: cmd.h +array.o: config.h +array.o: form.h +array.o: handy.h +array.o: hash.h +array.o: perl.h +array.o: regexp.h +array.o: spat.h +array.o: stab.h +array.o: str.h +array.o: util.h +cmd.o: EXTERN.h +cmd.o: arg.h +cmd.o: array.h +cmd.o: cmd.c +cmd.o: cmd.h +cmd.o: config.h +cmd.o: form.h +cmd.o: handy.h +cmd.o: hash.h +cmd.o: perl.h +cmd.o: regexp.h +cmd.o: spat.h +cmd.o: stab.h +cmd.o: str.h +cmd.o: util.h +cons.o: EXTERN.h +cons.o: arg.h +cons.o: array.h +cons.o: cmd.h +cons.o: config.h +cons.o: cons.c +cons.o: form.h +cons.o: handy.h +cons.o: hash.h +cons.o: perl.h +cons.o: perly.h +cons.o: regexp.h +cons.o: spat.h +cons.o: stab.h +cons.o: str.h +cons.o: util.h +consarg.o: EXTERN.h +consarg.o: arg.h +consarg.o: array.h +consarg.o: cmd.h +consarg.o: config.h +consarg.o: consarg.c +consarg.o: form.h +consarg.o: handy.h +consarg.o: hash.h +consarg.o: perl.h +consarg.o: regexp.h +consarg.o: spat.h +consarg.o: stab.h +consarg.o: str.h +consarg.o: util.h +doarg.o: EXTERN.h +doarg.o: arg.h +doarg.o: array.h +doarg.o: cmd.h +doarg.o: config.h +doarg.o: doarg.c +doarg.o: form.h +doarg.o: handy.h +doarg.o: hash.h +doarg.o: perl.h +doarg.o: regexp.h +doarg.o: spat.h +doarg.o: stab.h +doarg.o: str.h +doarg.o: util.h +doio.o: EXTERN.h +doio.o: arg.h +doio.o: array.h +doio.o: cmd.h +doio.o: config.h +doio.o: doio.c +doio.o: form.h +doio.o: handy.h +doio.o: hash.h +doio.o: perl.h +doio.o: regexp.h +doio.o: spat.h +doio.o: stab.h +doio.o: str.h +doio.o: util.h +dolist.o: EXTERN.h +dolist.o: arg.h +dolist.o: array.h +dolist.o: cmd.h +dolist.o: config.h +dolist.o: dolist.c +dolist.o: form.h +dolist.o: handy.h +dolist.o: hash.h +dolist.o: perl.h +dolist.o: regexp.h +dolist.o: spat.h +dolist.o: stab.h +dolist.o: str.h +dolist.o: util.h +dump.o: EXTERN.h +dump.o: arg.h +dump.o: array.h +dump.o: cmd.h +dump.o: config.h +dump.o: dump.c +dump.o: form.h +dump.o: handy.h +dump.o: hash.h +dump.o: perl.h +dump.o: regexp.h +dump.o: spat.h +dump.o: stab.h +dump.o: str.h +dump.o: util.h +eval.o: EXTERN.h +eval.o: arg.h +eval.o: array.h +eval.o: cmd.h +eval.o: config.h +eval.o: eval.c +eval.o: form.h +eval.o: handy.h +eval.o: hash.h +eval.o: perl.h +eval.o: regexp.h +eval.o: spat.h +eval.o: stab.h +eval.o: str.h +eval.o: util.h +form.o: EXTERN.h +form.o: arg.h +form.o: array.h +form.o: cmd.h +form.o: config.h +form.o: form.c +form.o: form.h +form.o: handy.h +form.o: hash.h +form.o: perl.h +form.o: regexp.h +form.o: spat.h +form.o: stab.h +form.o: str.h +form.o: util.h +hash.o: EXTERN.h +hash.o: arg.h +hash.o: array.h +hash.o: cmd.h +hash.o: config.h +hash.o: form.h +hash.o: handy.h +hash.o: hash.c +hash.o: hash.h +hash.o: perl.h +hash.o: regexp.h +hash.o: spat.h +hash.o: stab.h +hash.o: str.h +hash.o: util.h +perl.o: EXTERN.h +perl.o: arg.h +perl.o: array.h +perl.o: cmd.h +perl.o: config.h +perl.o: form.h +perl.o: handy.h +perl.o: hash.h +perl.o: patchlevel.h +perl.o: perl.c +perl.o: perl.h +perl.o: perly.h +perl.o: regexp.h +perl.o: spat.h +perl.o: stab.h +perl.o: str.h +perl.o: util.h +regcomp.o: EXTERN.h +regcomp.o: INTERN.h +regcomp.o: arg.h +regcomp.o: array.h +regcomp.o: cmd.h +regcomp.o: config.h +regcomp.o: form.h +regcomp.o: handy.h +regcomp.o: hash.h +regcomp.o: perl.h +regcomp.o: regcomp.c +regcomp.o: regcomp.h +regcomp.o: regexp.h +regcomp.o: spat.h +regcomp.o: stab.h +regcomp.o: str.h +regcomp.o: util.h +regexec.o: EXTERN.h +regexec.o: arg.h +regexec.o: array.h +regexec.o: cmd.h +regexec.o: config.h +regexec.o: form.h +regexec.o: handy.h +regexec.o: hash.h +regexec.o: perl.h +regexec.o: regcomp.h +regexec.o: regexec.c +regexec.o: regexp.h +regexec.o: spat.h +regexec.o: stab.h +regexec.o: str.h +regexec.o: util.h +stab.o: EXTERN.h +stab.o: arg.h +stab.o: array.h +stab.o: cmd.h +stab.o: config.h +stab.o: form.h +stab.o: handy.h +stab.o: hash.h +stab.o: perl.h +stab.o: regexp.h +stab.o: spat.h +stab.o: stab.c +stab.o: stab.h +stab.o: str.h +stab.o: util.h +str.o: EXTERN.h +str.o: arg.h +str.o: array.h +str.o: cmd.h +str.o: config.h +str.o: form.h +str.o: handy.h +str.o: hash.h +str.o: perl.h +str.o: perly.h +str.o: regexp.h +str.o: spat.h +str.o: stab.h +str.o: str.c +str.o: str.h +str.o: util.h +toke.o: EXTERN.h +toke.o: arg.h +toke.o: array.h +toke.o: cmd.h +toke.o: config.h +toke.o: form.h +toke.o: handy.h +toke.o: hash.h +toke.o: perl.h +toke.o: perly.h +toke.o: regexp.h +toke.o: spat.h +toke.o: stab.h +toke.o: str.h +toke.o: toke.c +toke.o: util.h +util.o: EXTERN.h +util.o: arg.h +util.o: array.h +util.o: cmd.h +util.o: config.h +util.o: form.h +util.o: handy.h +util.o: hash.h +util.o: perl.h +util.o: regexp.h +util.o: spat.h +util.o: stab.h +util.o: str.h +util.o: util.c +util.o: util.h +atarist.o: EXTERN.h +atarist.o: arg.h +atarist.o: array.h +atarist.o: cmd.h +atarist.o: config.h +atarist.o: form.h +atarist.o: handy.h +atarist.o: hash.h +atarist.o: perl.h +atarist.o: regexp.h +atarist.o: spat.h +atarist.o: stab.h +atarist.o: str.h +atarist.o: atarist.c +atarist.o: util.h + +malloc.o: EXTERN.h +malloc.o: arg.h +malloc.o: array.h +malloc.o: cmd.h +malloc.o: config.h +malloc.o: form.h +malloc.o: handy.h +malloc.o: hash.h +malloc.o: perl.h +malloc.o: regexp.h +malloc.o: spat.h +malloc.o: stab.h +malloc.o: str.h +malloc.o: malloc.c +malloc.o: util.h + diff --git a/atarist/makefile.st b/atarist/makefile.st new file mode 100644 index 0000000..a016a30 --- /dev/null +++ b/atarist/makefile.st @@ -0,0 +1,462 @@ +# : Makefile.SH,v 9820Revision: 4.0.1.2 9820Date: 91/06/07 10:14:43 $ +# +# $Log: makefile.st,v $ +# Revision 4.0.1.1 92/06/08 11:50:13 lwall +# Initial revision +# +# Revision 4.0.1.2 91/06/07 10:14:43 lwall +# patch4: cflags now emits entire cc command except for the filename +# patch4: alternate make programs are now semi-supported +# patch4: uperl.o no longer tries to link in libraries prematurely +# patch4: installperl now installs x2p stuff too +# +# Revision 4.0.1.1 91/04/11 17:30:39 lwall +# patch1: C flags are now settable on a per-file basis +# +# Revision 4.0 91/03/20 00:58:54 lwall +# 4.0 baseline. +# +# + +CC = cgcc +YACC = bison -y +LDFLAGS = +CLDFLAGS = +SMALL = +LARGE = +mallocsrc = +mallocobj = +SLN = ln -s + +libs = -lgdbm -lpml + +public = perl.ttp + +# To use an alternate make, set in config.sh. +MAKE = make + + +CCCMD = $(CC) -O2 -fomit-frame-pointer -fstrength-reduce -c + +private = + +scripts = + +manpages = perl.man h2ph.man + +util = echo.ttp perlglob.ttp + +sh = Makefile.SH makedepend.SH h2ph.SH + +h1 = EXTERN.h INTERN.h arg.h array.h cmd.h config.h form.h handy.h +h2 = hash.h perl.h regcomp.h regexp.h spat.h stab.h str.h util.h + +h = $(h1) $(h2) + +c1 = array.c cmd.c cons.c consarg.c doarg.c doio.c dolist.c dump.c +c2 = eval.c form.c hash.c $(mallocsrc) perl.c regcomp.c regexec.c +c3 = stab.c str.c toke.c util.c atarist.c usersub.c + +c = $(c1) $(c2) $(c3) + +obj1 = array.o cmd.o cons.o consarg.o doarg.o doio.o dolist.o dump.o +obj2 = eval.o form.o hash.o $(mallocobj) perl.o regcomp.o regexec.o +obj3 = stab.o str.o toke.o util.o atarist.o + +obj = $(obj1) $(obj2) $(obj3) + +lintflags = -hbvxac + +# grrr +SHELL = /bin/sh + +.c.o: + $(CCCMD) $*.c + +all: $(public) $(util) + +# This is the standard version that contains no "taint" checks and is +# used for all scripts that aren't set-id or running under something set-id. +# The $& notation is tells Sequent machines that it can do a parallel make, +# and is harmless otherwise. + +perl.ttp: perly.o $(obj) usersub.o + $(CC) $(LARGE) $(CLDFLAGS) $(obj) perly.o usersub.o $(libs) -o perl.ttp -v -s + +echo.ttp: wildmat.o echo.c + $(CC) -O -mshort -fomit-frame-pointer -o echo.ttp \ + echo.c wildmat.o -liio16 -s + +perlglob.ttp: wildmat.o perlglob.c + $(CC) -O -mshort -fomit-frame-pointer -o perlglob.ttp \ + perlglob.c wildmat.o -liio16 -s + +# we cant do a uperl.o, so we do our best. +# +uperl.a: perly.o $(obj) + car rs uperl.a perly.o $(obj) + +wildmat.o: wildmat.c + $(CC) -O -mshort -fomit-frame-pointer -c wildmat.c + +perly.h: perly.c + @ echo Dummy dependency for dumb parallel make + touch perly.h + +perly.c: perly.y perly.fixer + @ echo 'Expect either' 29 shift/reduce and 59 reduce/reduce conflicts... + @ echo ' or' 27 shift/reduce and 61 reduce/reduce conflicts... + $(YACC) -d perly.y + sh ./perly.fixer y.tab.c perly.c + mv y.tab.h perly.h + echo 'extern YYSTYPE yylval;' >>perly.h + +perly.o: perly.c perly.h $(h) + $(CCCMD) perly.c + + +clean: + rm -f *.o + +realclean: clean + rm -f *.ttp report core + rm -f perly.c perly.h + +# The following lint has practically everything turned on. Unfortunately, +# you have to wade through a lot of mumbo jumbo that can't be suppressed. +# If the source file has a /*NOSTRICT*/ somewhere, ignore the lint message +# for that spot. + +lint: perly.c $(c) + lint $(lintflags) $(defs) perly.c $(c) > perl.fuzz + +depend: makedepend + - test -f perly.h || cp /dev/null perly.h + ./makedepend + - test -s perly.h || /bin/rm -f perly.h + +test: perl + - cd t && chmod +x TEST */*.t + - cd t && (rm -f perl; $(SLN) ../perl .) && ./perl TEST .clist + +hlist: + echo $(h) | tr ' ' '\012' >.hlist + +shlist: + echo $(sh) | tr ' ' '\012' >.shlist + +# AUTOMATICALLY GENERATED MAKE DEPENDENCIES--PUT NOTHING BELOW THIS LINE +# If this runs make out of memory, delete /usr/include lines. +array.o: EXTERN.h +array.o: arg.h +array.o: array.c +array.o: array.h +array.o: cmd.h +array.o: config.h +array.o: form.h +array.o: handy.h +array.o: hash.h +array.o: perl.h +array.o: regexp.h +array.o: spat.h +array.o: stab.h +array.o: str.h +array.o: util.h +cmd.o: EXTERN.h +cmd.o: arg.h +cmd.o: array.h +cmd.o: cmd.c +cmd.o: cmd.h +cmd.o: config.h +cmd.o: form.h +cmd.o: handy.h +cmd.o: hash.h +cmd.o: perl.h +cmd.o: regexp.h +cmd.o: spat.h +cmd.o: stab.h +cmd.o: str.h +cmd.o: util.h +cons.o: EXTERN.h +cons.o: arg.h +cons.o: array.h +cons.o: cmd.h +cons.o: config.h +cons.o: cons.c +cons.o: form.h +cons.o: handy.h +cons.o: hash.h +cons.o: perl.h +cons.o: perly.h +cons.o: regexp.h +cons.o: spat.h +cons.o: stab.h +cons.o: str.h +cons.o: util.h +consarg.o: EXTERN.h +consarg.o: arg.h +consarg.o: array.h +consarg.o: cmd.h +consarg.o: config.h +consarg.o: consarg.c +consarg.o: form.h +consarg.o: handy.h +consarg.o: hash.h +consarg.o: perl.h +consarg.o: regexp.h +consarg.o: spat.h +consarg.o: stab.h +consarg.o: str.h +consarg.o: util.h +doarg.o: EXTERN.h +doarg.o: arg.h +doarg.o: array.h +doarg.o: cmd.h +doarg.o: config.h +doarg.o: doarg.c +doarg.o: form.h +doarg.o: handy.h +doarg.o: hash.h +doarg.o: perl.h +doarg.o: regexp.h +doarg.o: spat.h +doarg.o: stab.h +doarg.o: str.h +doarg.o: util.h +doio.o: EXTERN.h +doio.o: arg.h +doio.o: array.h +doio.o: cmd.h +doio.o: config.h +doio.o: doio.c +doio.o: form.h +doio.o: handy.h +doio.o: hash.h +doio.o: perl.h +doio.o: regexp.h +doio.o: spat.h +doio.o: stab.h +doio.o: str.h +doio.o: util.h +dolist.o: EXTERN.h +dolist.o: arg.h +dolist.o: array.h +dolist.o: cmd.h +dolist.o: config.h +dolist.o: dolist.c +dolist.o: form.h +dolist.o: handy.h +dolist.o: hash.h +dolist.o: perl.h +dolist.o: regexp.h +dolist.o: spat.h +dolist.o: stab.h +dolist.o: str.h +dolist.o: util.h +dump.o: EXTERN.h +dump.o: arg.h +dump.o: array.h +dump.o: cmd.h +dump.o: config.h +dump.o: dump.c +dump.o: form.h +dump.o: handy.h +dump.o: hash.h +dump.o: perl.h +dump.o: regexp.h +dump.o: spat.h +dump.o: stab.h +dump.o: str.h +dump.o: util.h +eval.o: EXTERN.h +eval.o: arg.h +eval.o: array.h +eval.o: cmd.h +eval.o: config.h +eval.o: eval.c +eval.o: form.h +eval.o: handy.h +eval.o: hash.h +eval.o: perl.h +eval.o: regexp.h +eval.o: spat.h +eval.o: stab.h +eval.o: str.h +eval.o: util.h +form.o: EXTERN.h +form.o: arg.h +form.o: array.h +form.o: cmd.h +form.o: config.h +form.o: form.c +form.o: form.h +form.o: handy.h +form.o: hash.h +form.o: perl.h +form.o: regexp.h +form.o: spat.h +form.o: stab.h +form.o: str.h +form.o: util.h +hash.o: EXTERN.h +hash.o: arg.h +hash.o: array.h +hash.o: cmd.h +hash.o: config.h +hash.o: form.h +hash.o: handy.h +hash.o: hash.c +hash.o: hash.h +hash.o: perl.h +hash.o: regexp.h +hash.o: spat.h +hash.o: stab.h +hash.o: str.h +hash.o: util.h +perl.o: EXTERN.h +perl.o: arg.h +perl.o: array.h +perl.o: cmd.h +perl.o: config.h +perl.o: form.h +perl.o: handy.h +perl.o: hash.h +perl.o: patchlevel.h +perl.o: perl.c +perl.o: perl.h +perl.o: perly.h +perl.o: regexp.h +perl.o: spat.h +perl.o: stab.h +perl.o: str.h +perl.o: util.h +regcomp.o: EXTERN.h +regcomp.o: INTERN.h +regcomp.o: arg.h +regcomp.o: array.h +regcomp.o: cmd.h +regcomp.o: config.h +regcomp.o: form.h +regcomp.o: handy.h +regcomp.o: hash.h +regcomp.o: perl.h +regcomp.o: regcomp.c +regcomp.o: regcomp.h +regcomp.o: regexp.h +regcomp.o: spat.h +regcomp.o: stab.h +regcomp.o: str.h +regcomp.o: util.h +regexec.o: EXTERN.h +regexec.o: arg.h +regexec.o: array.h +regexec.o: cmd.h +regexec.o: config.h +regexec.o: form.h +regexec.o: handy.h +regexec.o: hash.h +regexec.o: perl.h +regexec.o: regcomp.h +regexec.o: regexec.c +regexec.o: regexp.h +regexec.o: spat.h +regexec.o: stab.h +regexec.o: str.h +regexec.o: util.h +stab.o: EXTERN.h +stab.o: arg.h +stab.o: array.h +stab.o: cmd.h +stab.o: config.h +stab.o: form.h +stab.o: handy.h +stab.o: hash.h +stab.o: perl.h +stab.o: regexp.h +stab.o: spat.h +stab.o: stab.c +stab.o: stab.h +stab.o: str.h +stab.o: util.h +str.o: EXTERN.h +str.o: arg.h +str.o: array.h +str.o: cmd.h +str.o: config.h +str.o: form.h +str.o: handy.h +str.o: hash.h +str.o: perl.h +str.o: perly.h +str.o: regexp.h +str.o: spat.h +str.o: stab.h +str.o: str.c +str.o: str.h +str.o: util.h +toke.o: EXTERN.h +toke.o: arg.h +toke.o: array.h +toke.o: cmd.h +toke.o: config.h +toke.o: form.h +toke.o: handy.h +toke.o: hash.h +toke.o: perl.h +toke.o: perly.h +toke.o: regexp.h +toke.o: spat.h +toke.o: stab.h +toke.o: str.h +toke.o: toke.c +toke.o: util.h +util.o: EXTERN.h +util.o: arg.h +util.o: array.h +util.o: cmd.h +util.o: config.h +util.o: form.h +util.o: handy.h +util.o: hash.h +util.o: perl.h +util.o: regexp.h +util.o: spat.h +util.o: stab.h +util.o: str.h +util.o: util.c +util.o: util.h +atarist.o: EXTERN.h +atarist.o: arg.h +atarist.o: array.h +atarist.o: cmd.h +atarist.o: config.h +atarist.o: form.h +atarist.o: handy.h +atarist.o: hash.h +atarist.o: perl.h +atarist.o: regexp.h +atarist.o: spat.h +atarist.o: stab.h +atarist.o: str.h +atarist.o: atarist.c +atarist.o: util.h + +malloc.o: EXTERN.h +malloc.o: arg.h +malloc.o: array.h +malloc.o: cmd.h +malloc.o: config.h +malloc.o: form.h +malloc.o: handy.h +malloc.o: hash.h +malloc.o: perl.h +malloc.o: regexp.h +malloc.o: spat.h +malloc.o: stab.h +malloc.o: str.h +malloc.o: malloc.c +malloc.o: util.h + diff --git a/atarist/test/osexample.pl b/atarist/test/osexample.pl new file mode 100644 index 0000000..47bc8e2 --- /dev/null +++ b/atarist/test/osexample.pl @@ -0,0 +1,5 @@ +require 'osbind.pl'; + + &Cconws("Hello World\r\n"); + $str = "This is a string being printed by Fwrite Gemdos trap\r\n"; + &Fwrite(1, length($str), $str); diff --git a/dolist.c b/dolist.c index a452e8e..fb27a64 100644 --- a/dolist.c +++ b/dolist.c @@ -1,4 +1,4 @@ -/* $RCSfile: dolist.c,v $$Revision: 4.0.1.4 $$Date: 91/11/11 16:33:19 $ +/* $RCSfile: dolist.c,v $$Revision: 4.0.1.5 $$Date: 92/06/08 13:13:27 $ * * Copyright (c) 1991, Larry Wall * @@ -6,6 +6,17 @@ * License or the Artistic License, as specified in the README file. * * $Log: dolist.c,v $ + * Revision 4.0.1.5 92/06/08 13:13:27 lwall + * patch20: g pattern modifer sometimes returned extra values + * patch20: m/$pattern/g didn't work + * patch20: pattern modifiers i and o didn't interact right + * patch20: @ in unpack failed too often + * patch20: Perl now distinguishes overlapped copies from non-overlapped + * patch20: slice on null list in scalar context returned random value + * patch20: splice with negative offset didn't work with $[ = 1 + * patch20: fixed some memory leaks in splice + * patch20: scalar keys %array now counts keys for you + * * Revision 4.0.1.4 91/11/11 16:33:19 lwall * patch19: added little-endian pack/unpack options * patch19: sort $subname was busted by changes in 4.018 @@ -40,6 +51,8 @@ #include "EXTERN.h" #include "perl.h" +static int sortcmp(); +static int sortsub(); #ifdef BUGGY_MSC #pragma function(memcmp) @@ -63,6 +76,8 @@ int *arglast; char *myhint = hint; int global; int safebase; + char *truebase = s; + register REGEXP *rx = spat->spat_regexp; hint = Nullch; if (!spat) { @@ -100,16 +115,17 @@ int *arglast; if (debug & 8) deb("2.SPAT /%s/\n",t); #endif - if (spat->spat_regexp) { - regfree(spat->spat_regexp); - spat->spat_regexp = Null(REGEXP*); /* crucial if regcomp aborts */ - } + if (!global && rx) + regfree(rx); + spat->spat_regexp = Null(REGEXP*); /* crucial if regcomp aborts */ spat->spat_regexp = regcomp(t,t+tmpstr->str_cur, spat->spat_flags & SPAT_FOLD); if (!spat->spat_regexp->prelen && lastspat) spat = lastspat; if (spat->spat_flags & SPAT_KEEP) { - scanconst(spat,spat->spat_regexp->precomp, spat->spat_regexp->prelen); + if (!(spat->spat_flags & SPAT_FOLD)) + scanconst(spat,spat->spat_regexp->precomp, + spat->spat_regexp->prelen); if (spat->spat_runtime) arg_free(spat->spat_runtime); /* it won't change, so */ spat->spat_runtime = Nullarg; /* no point compiling again */ @@ -120,16 +136,27 @@ int *arglast; } } if (global) { - if (spat->spat_regexp->startp[0]) { - s = spat->spat_regexp->endp[0]; + if (rx) { + if (rx->startp[0]) { + s = rx->endp[0]; + if (s == rx->startp[0]) + s++; + if (s > strend) { + regfree(rx); + rx = spat->spat_regexp; + goto nope; + } + } + regfree(rx); } } else if (!spat->spat_regexp->nparens) gimme = G_SCALAR; /* accidental array context? */ - if (regexec(spat->spat_regexp, s, strend, s, 0, + rx = spat->spat_regexp; + if (regexec(rx, s, strend, s, 0, srchstr->str_pok & SP_STUDIED ? srchstr : Nullstr, safebase)) { - if (spat->spat_regexp->subbase || global) + if (rx->subbase || global) curspat = spat; lastspat = spat; goto gotcha; @@ -152,21 +179,28 @@ int *arglast; ch = '?'; else ch = '/'; - deb("2.SPAT %c%s%c\n",ch,spat->spat_regexp->precomp,ch); + deb("2.SPAT %c%s%c\n",ch,rx->precomp,ch); } #endif - if (!spat->spat_regexp->prelen && lastspat) + if (!rx->prelen && lastspat) { spat = lastspat; + rx = spat->spat_regexp; + } t = s; play_it_again: - if (global && spat->spat_regexp->startp[0]) - t = s = spat->spat_regexp->endp[0]; + if (global && rx->startp[0]) { + t = s = rx->endp[0]; + if (s == rx->startp[0]) + s++,t++; + if (s > strend) + goto nope; + } if (myhint) { if (myhint < s || myhint > strend) fatal("panic: hint in do_match"); s = myhint; - if (spat->spat_regexp->regback >= 0) { - s -= spat->spat_regexp->regback; + if (rx->regback >= 0) { + s -= rx->regback; if (s < t) s = t; } @@ -190,9 +224,9 @@ int *arglast; #endif else if (spat->spat_flags & SPAT_ALL) goto yup; - if (s && spat->spat_regexp->regback >= 0) { + if (s && rx->regback >= 0) { ++spat->spat_short->str_u.str_useful; - s -= spat->spat_regexp->regback; + s -= rx->regback; if (s < t) s = t; } @@ -207,14 +241,14 @@ int *arglast; spat->spat_short = Nullstr; /* opt is being useless */ } } - if (!spat->spat_regexp->nparens && !global) { + if (!rx->nparens && !global) { gimme = G_SCALAR; /* accidental array context? */ safebase = FALSE; } - if (regexec(spat->spat_regexp, s, strend, t, 0, + if (regexec(rx, s, strend, truebase, 0, srchstr->str_pok & SP_STUDIED ? srchstr : Nullstr, safebase)) { - if (spat->spat_regexp->subbase || global) + if (rx->subbase || global) curspat = spat; lastspat = spat; if (spat->spat_flags & SPAT_ONCE) @@ -223,7 +257,7 @@ int *arglast; } else { if (global) - spat->spat_regexp->startp[0] = Nullch; + rx->startp[0] = Nullch; if (gimme == G_ARRAY) return sp; str_sset(str,&str_no); @@ -238,7 +272,7 @@ int *arglast; if (gimme == G_ARRAY) { int iters, i, len; - iters = spat->spat_regexp->nparens; + iters = rx->nparens; if (global && !iters) i = 1; else @@ -251,14 +285,16 @@ int *arglast; for (i = !i; i <= iters; i++) { st[++sp] = str_mortal(&str_no); /*SUPPRESS 560*/ - if (s = spat->spat_regexp->startp[i]) { - len = spat->spat_regexp->endp[i] - s; + if (s = rx->startp[i]) { + len = rx->endp[i] - s; if (len > 0) str_nset(st[sp],s,len); } } - if (global) + if (global) { + truebase = rx->subbeg; goto play_it_again; + } return sp; } else { @@ -274,23 +310,23 @@ yup: if (spat->spat_flags & SPAT_ONCE) spat->spat_flags |= SPAT_USED; if (global) { - spat->spat_regexp->subbeg = t; - spat->spat_regexp->subend = strend; - spat->spat_regexp->startp[0] = s; - spat->spat_regexp->endp[0] = s + spat->spat_short->str_cur; + rx->subbeg = t; + rx->subend = strend; + rx->startp[0] = s; + rx->endp[0] = s + spat->spat_short->str_cur; curspat = spat; goto gotcha; } if (sawampersand) { char *tmps; - if (spat->spat_regexp->subbase) - Safefree(spat->spat_regexp->subbase); - tmps = spat->spat_regexp->subbase = nsavestr(t,strend-t); - spat->spat_regexp->subbeg = tmps; - spat->spat_regexp->subend = tmps + (strend-t); - tmps = spat->spat_regexp->startp[0] = tmps + (s - t); - spat->spat_regexp->endp[0] = tmps + spat->spat_short->str_cur; + if (rx->subbase) + Safefree(rx->subbase); + tmps = rx->subbase = nsavestr(t,strend-t); + rx->subbeg = tmps; + rx->subend = tmps + (strend-t); + tmps = rx->startp[0] = tmps + (s - t); + rx->endp[0] = tmps + spat->spat_short->str_cur; curspat = spat; } str_sset(str,&str_yes); @@ -299,10 +335,9 @@ yup: return sp; nope: - spat->spat_regexp->startp[0] = Nullch; - ++spat->spat_short->str_u.str_useful; - if (global) - spat->spat_regexp->startp[0] = Nullch; + rx->startp[0] = Nullch; + if (spat->spat_short) + ++spat->spat_short->str_u.str_useful; if (gimme == G_ARRAY) return sp; str_sset(str,&str_no); @@ -628,7 +663,7 @@ int *arglast; goto reparse; break; case '@': - if (len > strend - s) + if (len > strend - strbeg) fatal("@ outside of string"); s = strbeg + len; break; @@ -775,14 +810,14 @@ int *arglast; len = along; if (checksum) { while (len-- > 0) { - bcopy(s,(char*)&ashort,sizeof(short)); + Copy(s,&ashort,1,short); s += sizeof(short); culong += ashort; } } else { while (len-- > 0) { - bcopy(s,(char*)&ashort,sizeof(short)); + Copy(s,&ashort,1,short); s += sizeof(short); str = Str_new(38,0); str_numset(str,(double)ashort); @@ -798,7 +833,7 @@ int *arglast; len = along; if (checksum) { while (len-- > 0) { - bcopy(s,(char*)&aushort,sizeof(unsigned short)); + Copy(s,&aushort,1,unsigned short); s += sizeof(unsigned short); #ifdef HAS_NTOHS if (datumtype == 'n') @@ -813,7 +848,7 @@ int *arglast; } else { while (len-- > 0) { - bcopy(s,(char*)&aushort,sizeof(unsigned short)); + Copy(s,&aushort,1,unsigned short); s += sizeof(unsigned short); str = Str_new(39,0); #ifdef HAS_NTOHS @@ -835,7 +870,7 @@ int *arglast; len = along; if (checksum) { while (len-- > 0) { - bcopy(s,(char*)&aint,sizeof(int)); + Copy(s,&aint,1,int); s += sizeof(int); if (checksum > 32) cdouble += (double)aint; @@ -845,7 +880,7 @@ int *arglast; } else { while (len-- > 0) { - bcopy(s,(char*)&aint,sizeof(int)); + Copy(s,&aint,1,int); s += sizeof(int); str = Str_new(40,0); str_numset(str,(double)aint); @@ -859,7 +894,7 @@ int *arglast; len = along; if (checksum) { while (len-- > 0) { - bcopy(s,(char*)&auint,sizeof(unsigned int)); + Copy(s,&auint,1,unsigned int); s += sizeof(unsigned int); if (checksum > 32) cdouble += (double)auint; @@ -869,7 +904,7 @@ int *arglast; } else { while (len-- > 0) { - bcopy(s,(char*)&auint,sizeof(unsigned int)); + Copy(s,&auint,1,unsigned int); s += sizeof(unsigned int); str = Str_new(41,0); str_numset(str,(double)auint); @@ -883,7 +918,7 @@ int *arglast; len = along; if (checksum) { while (len-- > 0) { - bcopy(s,(char*)&along,sizeof(long)); + Copy(s,&along,1,long); s += sizeof(long); if (checksum > 32) cdouble += (double)along; @@ -893,7 +928,7 @@ int *arglast; } else { while (len-- > 0) { - bcopy(s,(char*)&along,sizeof(long)); + Copy(s,&along,1,long); s += sizeof(long); str = Str_new(42,0); str_numset(str,(double)along); @@ -909,7 +944,7 @@ int *arglast; len = along; if (checksum) { while (len-- > 0) { - bcopy(s,(char*)&aulong,sizeof(unsigned long)); + Copy(s,&aulong,1,unsigned long); s += sizeof(unsigned long); #ifdef HAS_NTOHL if (datumtype == 'N') @@ -927,7 +962,7 @@ int *arglast; } else { while (len-- > 0) { - bcopy(s,(char*)&aulong,sizeof(unsigned long)); + Copy(s,&aulong,1,unsigned long); s += sizeof(unsigned long); str = Str_new(43,0); #ifdef HAS_NTOHL @@ -951,7 +986,7 @@ int *arglast; if (sizeof(char*) > strend - s) break; else { - bcopy(s,(char*)&aptr,sizeof(char*)); + Copy(s,&aptr,1,char*); s += sizeof(char*); } str = Str_new(44,0); @@ -966,7 +1001,7 @@ int *arglast; if (s + sizeof(quad) > strend) aquad = 0; else { - bcopy(s,(char*)&aquad,sizeof(quad)); + Copy(s,&aquad,1,quad); s += sizeof(quad); } str = Str_new(42,0); @@ -979,7 +1014,7 @@ int *arglast; if (s + sizeof(unsigned quad) > strend) auquad = 0; else { - bcopy(s,(char*)&auquad,sizeof(unsigned quad)); + Copy(s,&auquad,1,unsigned quad); s += sizeof(unsigned quad); } str = Str_new(43,0); @@ -996,14 +1031,14 @@ int *arglast; len = along; if (checksum) { while (len-- > 0) { - bcopy(s, (char *)&afloat, sizeof(float)); + Copy(s, &afloat,1, float); s += sizeof(float); cdouble += afloat; } } else { while (len-- > 0) { - bcopy(s, (char *)&afloat, sizeof(float)); + Copy(s, &afloat,1, float); s += sizeof(float); str = Str_new(47, 0); str_numset(str, (double)afloat); @@ -1018,14 +1053,14 @@ int *arglast; len = along; if (checksum) { while (len-- > 0) { - bcopy(s, (char *)&adouble, sizeof(double)); + Copy(s, &adouble,1, double); s += sizeof(double); cdouble += adouble; } } else { while (len-- > 0) { - bcopy(s, (char *)&adouble, sizeof(double)); + Copy(s, &adouble,1, double); s += sizeof(double); str = Str_new(48, 0); str_numset(str, (double)adouble); @@ -1182,7 +1217,9 @@ int *arglast; sp--; } else { - if (numarray) { + if (sp == max) + st[sp] = &str_undef; + else if (numarray) { if (st[max]) st[sp] = afetch(ary, ((int)str_gnum(st[max])) - arybase, lval); @@ -1225,9 +1262,11 @@ int *arglast; STR **tmparyval; if (++sp < max) { - offset = ((int)str_gnum(st[sp])) - arybase; + offset = (int)str_gnum(st[sp]); if (offset < 0) offset += ary->ary_fill + 1; + else + offset -= arybase; if (++sp < max) { length = (int)str_gnum(st[sp++]); if (length < 0) @@ -1284,8 +1323,11 @@ int *arglast; } else { st[sp] = ary->ary_array[offset+length-1]; - if (ary->ary_flags & ARF_REAL) + if (ary->ary_flags & ARF_REAL) { str_2mortal(st[sp]); + for (i = length - 1, dst = &ary->ary_array[offset]; i > 0; i--) + str_free(*dst++); /* free them now */ + } } ary->ary_fill += diff; @@ -1306,7 +1348,7 @@ int *arglast; if (after) { /* anything to pull down? */ src = ary->ary_array + offset + length; dst = src + diff; /* diff is negative */ - Copy(src, dst, after, STR*); + Move(src, dst, after, STR*); } Zero(&ary->ary_array[ary->ary_fill+1], -diff, STR*); /* avoid later double free */ @@ -1334,7 +1376,7 @@ int *arglast; if (offset) { src = ary->ary_array; dst = src - diff; - Copy(src, dst, offset, STR*); + Move(src, dst, offset, STR*); } ary->ary_array -= diff; /* diff is positive */ ary->ary_max += diff; @@ -1345,14 +1387,17 @@ int *arglast; astore(ary, ary->ary_fill + diff, Nullstr); else ary->ary_fill += diff; + dst = ary->ary_array + ary->ary_fill; + for (i = diff; i > 0; i--) { + if (*dst) /* str was hanging around */ + str_free(*dst); /* after $#foo */ + dst--; + } if (after) { dst = ary->ary_array + ary->ary_fill; src = dst - diff; for (i = after; i; i--) { - if (*dst) /* str was hanging around */ - str_free(*dst); /* after $#foo */ - *dst-- = *src; - *src-- = Nullstr; + *dst-- = *src--; } } } @@ -1374,10 +1419,13 @@ int *arglast; } sp += length - 1; } - else if (length) { - st[sp] = tmparyval[length-1]; - if (ary->ary_flags & ARF_REAL) + else if (length--) { + st[sp] = tmparyval[length]; + if (ary->ary_flags & ARF_REAL) { str_2mortal(st[sp]); + while (length-- > 0) + str_free(tmparyval[length]); + } Safefree(tmparyval); } else @@ -1450,7 +1498,7 @@ int *arglast; *down-- = *up; } i = arglast[2] - arglast[1]; - Copy(down+1,up,i/2,STR*); + Move(down+1,up,i/2,STR*); return arglast[2] - 1; } @@ -1543,8 +1591,8 @@ int *arglast; if (stab) { if (!stab_sub(stab) || !(sortcmd = stab_sub(stab)->cmd)) fatal("Undefined subroutine \"%s\" in sort", - stab_name(stab)); - stash = stab_stash(stab); + stab_ename(stab)); + stash = stab_estash(stab); } else sortcmd = Nullcmd; @@ -1587,7 +1635,7 @@ int *arglast; return sp+max; } -int +static int sortsub(str1,str2) STR **str1; STR **str2; @@ -1598,6 +1646,7 @@ STR **str2; return (int)str_gnum(*stack->ary_array); } +static int sortcmp(strp1,strp2) STR **strp1; STR **strp2; @@ -1736,7 +1785,7 @@ int *arglast; if (!maxarg) return sp; str = Str_new(49,0); - stab_fullname(str, csv->stab); + stab_efullname(str, csv->stab); (void)astore(stack,++sp, str_2mortal(str)); (void)astore(stack,++sp, str_2mortal(str_nmake((double)csv->hasargs)) ); @@ -1848,7 +1897,13 @@ int *arglast; int dovalues = (kv == O_VALUES || kv == O_HASH); if (gimme != G_ARRAY) { - str_sset(str,&str_undef); + i = 0; + (void)hiterinit(hash); + /*SUPPRESS 560*/ + while (entry = hiternext(hash)) { + i++; + } + str_numset(str,(double)i); STABSET(str); st[++sp] = str; return sp; diff --git a/hints/ncr_tower.sh b/hints/ncr_tower.sh index 8b99201..aa517d7 100644 --- a/hints/ncr_tower.sh +++ b/hints/ncr_tower.sh @@ -1,2 +1,8 @@ +optimize='-O0' ccflags="$ccflags -W2,-Sl,2000" +eval_cflags='large="-W0,-XL"' +teval_cflags=$eval_cflags d_mkdir=$undef +usemymalloc='y' +mallocsrc='malloc.c' +mallocobj='malloc.o' diff --git a/hints/next.sh b/hints/next.sh index 8c77055..8a1fe39 100644 --- a/hints/next.sh +++ b/hints/next.sh @@ -2,3 +2,4 @@ nativegcc='define' groupstype="int" usemymalloc="n" +libswanted='dbm sys_s' diff --git a/makedepend.SH b/makedepend.SH index 8fb59cd..4665624 100644 --- a/makedepend.SH +++ b/makedepend.SH @@ -13,11 +13,15 @@ case "$0" in */*) cd `expr X$0 : 'X\(.*\)/'` ;; esac echo "Extracting makedepend (with variable substitutions)" +rm -f makedepend $spitshell >makedepend <>makedepend <<'!NO!SUBS!' +PATH="$PATH:." +export PATH + $cat /dev/null >.deptmp $rm -f *.c.c c/*.c.c if test -f Makefile; then @@ -83,21 +90,28 @@ for file in `$cat .clist`; do # for file in `cat /dev/null`; do case "$file" in *.c) filebase=`basename $file .c` ;; - *.y) filebase=`basename $file .c` ;; + *.y) filebase=`basename $file .y` ;; + esac + case "$file" in + */*) finc="-I`echo $file | sed 's#/[^/]*$##`" ;; + *) finc= ;; esac $echo "Finding dependencies for $filebase.o." - $sed -n <$file >$file.c \ + ( $echo "#line 1 \"$file\""; \ + $sed -n <$file \ -e "/^${filebase}_init(/q" \ -e '/^#/{' \ -e 's|/\*.*$||' \ -e 's|\\$||' \ -e p \ - -e '}' - $cppstdin -I/usr/local/include -I. $cppflags $cppminus <$file.c | sed -e 's#\.[0-9][0-9]*\.c#'"$file.c#" | \ + -e '}' ) >$file.c + $cppstdin $finc -I/usr/local/include -I. $cppflags $cppminus <$file.c | $sed \ + -e 's#\.[0-9][0-9]*\.c#'"$file.c#" \ -e 's/^[ ]*#[ ]*line/#/' \ - -e '/^# *[0-9][0-9]* *"/!d' \ + -e '/^# *[0-9][0-9]* *[".\/]/!d' \ -e 's/^.*"\(.*\)".*$/'$filebase'.o: \1/' \ + -e 's/^# *[0-9][0-9]* \(.*\)$/'$filebase'.o: \1/' \ -e 's|: \./|: |' \ -e 's|\.c\.c|.c|' | \ $uniq | $sort | $uniq >> .deptmp diff --git a/os2/mktemp.c b/os2/mktemp.c index e70507a..a14bc63 100644 --- a/os2/mktemp.c +++ b/os2/mktemp.c @@ -1,28 +1 @@ -/* MKTEMP.C using TMP environment variable */ - -#include -#include -#include -#include - -void Mktemp(char *file) -{ - char fname[32], *tmp; - - tmp = getenv("TMP"); - - if ( tmp != NULL ) - { - strcpy(fname, file); - strcpy(file, tmp); - - if ( file[strlen(file) - 1] != '\\' ) - strcat(file, "\\"); - - strcat(file, fname); - } - - mktemp(file); -} - -/* End of MKTEMP.C */ +(deprecated) diff --git a/patchlevel.h b/patchlevel.h index 9705476..466db5f 100644 --- a/patchlevel.h +++ b/patchlevel.h @@ -1 +1 @@ -#define PATCHLEVEL 26 +#define PATCHLEVEL 27