1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-05-11 00:00:49 +02:00
guile/module/slib/syncase.sh
2001-04-14 11:24:45 +00:00

146 lines
3.8 KiB
Bash

#! /bin/sh -e
echo Cleaning up old version and unpacking original ...
rm -fr syntax-case
gzip --decompress --stdout syntax-case.tar.z | tar xf -
cd syntax-case
echo Removing some files ...
rm *.ps loadpp.ss hooks*
# Remove enormous amount (about 200k) of white space in expand.pp
echo Slimming expand.pp ...
sed -e '/^ */s///' expand.pp > tt; mv tt expand.pp
echo Patching ...
patch -s -b .ORIG << 'PATCH'
--- ./expand.pp.ORIG Wed Mar 24 19:54:52 1993
+++ ./expand.pp Wed Mar 24 19:54:52 1993
@@ -337,9 +337,10 @@
'()
(lambda (e maps) (regen e)))))
(ellipsis? (lambda (x)
-(if (if (top-level-bound? 'dp) dp #f)
-(break)
-(void))
+;; I dont know what this is supposed to do, and removing it seemed harmless.
+;; (if (if (top-level-bound? 'dp) dp #f)
+;; (break)
+;; (void))
(if (identifier? x)
(free-id=? x '...)
#f)))
@@ -1674,7 +1675,7 @@
(set! generate-temporaries
(lambda (ls)
(arg-check list? ls 'generate-temporaries)
-(map (lambda (x) (wrap (gensym) top-wrap)) ls)))
+(map (lambda (x) (wrap (new-symbol-hook "g") top-wrap)) ls)))
(set! free-identifier=?
(lambda (x y)
(arg-check id? x 'free-identifier=?)
--- ./expand.ss.ORIG Thu Jul 2 13:56:19 1992
+++ ./expand.ss Wed Mar 24 19:54:53 1993
@@ -564,7 +564,8 @@
(define ellipsis?
(lambda (x)
- (when (and (top-level-bound? 'dp) dp) (break))
+ ;; I dont know what this is supposed to do, and removing it seemed harmless.
+ ;; (when (and (top-level-bound? 'dp) dp) (break))
(and (identifier? x)
(free-id=? x (syntax (... ...))))))
@@ -887,7 +888,7 @@
;; gensym
(lambda (ls)
(arg-check list? ls 'generate-temporaries)
- (map (lambda (x) (wrap (gensym) top-wrap)) ls)))
+ (map (lambda (x) (wrap (new-symbol-hook "g") top-wrap)) ls)))
(set! free-identifier=?
(lambda (x y)
--- ./macro-defs.ss.ORIG Thu Jul 2 12:28:49 1992
+++ ./macro-defs.ss Wed Mar 24 19:55:31 1993
@@ -161,26 +161,3 @@
(syntax-case x ()
((- e) (gen (syntax e) 0))))))
-;;; simple delay and force; also defines make-promise
-
-(define-syntax delay
- (lambda (x)
- (syntax-case x ()
- ((delay exp)
- (syntax (make-promise (lambda () exp)))))))
-
-(define make-promise
- (lambda (thunk)
- (let ([value (void)] [set? #f])
- (lambda ()
- (unless set?
- (let ([v (thunk)])
- (unless set?
- (set! value v)
- (set! set? #t))))
- value))))
-
-(define force
- (lambda (promise)
- (promise)))
-
PATCH
test $# -gt 0 && exit 0
rm *.ORIG
###############################################################################
echo Renaming globals ...
CR='
'
SEDCMD='s/list\*/syncase:list*/g'
for x in \
build- void andmap install-global-transformer eval-hook error-hook \
new-symbol-hook put-global-definition-hook get-global-definition-hook \
expand-install-hook;
do SEDCMD=$SEDCMD$CR"s/$x/syncase:$x/g"; done
WARN=";;; This file was munged by a simple minded sed script since it left
;;; its original authors' hands. See syncase.doc for the horrid details.
"
for f in *.pp *.ss; do
mv $f tt; (echo "$WARN"; sed -e "$SEDCMD" tt) >$f; rm tt; done
echo Making the doc file ...
DOC=syncase.doc
cp ../$DOC .
for f in Notes ReadMe; do
echo "
*******************************************************************************
The file named $f in the original distribution:
"
cat $f
rm $f
done >>$DOC
echo "
*******************************************************************************
The shell script that created these files out of the original distribution:
" >>$DOC
cat ../fixit >>$DOC
echo Renaming files ...
mv compat.ss sca-comp.scm
mv output.ss scaoutp.scm
mv init.ss scaglob.scm
mv expand.pp scaexpp.scm
mv expand.ss sca-exp.scm
mv macro-defs.ss scamacr.scm
mv structure.ss structure.scm
echo Adding new pieces ...
cp ../sca-init.scm scainit.scm
echo Done.