replace define-library-alias with define-library + alias-for

This commit is contained in:
Alex Shinn 2020-06-04 23:55:37 +09:00
parent c245d6cee8
commit d42d4d5600
39 changed files with 141 additions and 153 deletions

9
.gitignore vendored
View file

@ -51,15 +51,23 @@ lib/chibi/stty.c
lib/chibi/system.c lib/chibi/system.c
lib/chibi/time.c lib/chibi/time.c
lib/chibi/win32/process-win32.c lib/chibi/win32/process-win32.c
lib/scheme/bytevector.c
lib/srfi/144/math.c lib/srfi/144/math.c
lib/srfi/160/uvprims.c lib/srfi/160/uvprims.c
*.tgz *.tgz
*.bz2
*.xz
*.html *.html
*.img *.img
*.err *.err
*.fasl *.fasl
*.txt
*.test
*.train
*.h5
!index.html !index.html
benchmarks/gabriel/times.tsv
examples/snow-fort examples/snow-fort
examples/synthcode examples/synthcode
tests/snow/repo-cache tests/snow/repo-cache
@ -73,3 +81,4 @@ tmp
js/chibi.* js/chibi.*
build-lib/chibi/char-set/derived.scm build-lib/chibi/char-set/derived.scm
build-lib/chibi/char-set/width.scm

View file

@ -229,6 +229,21 @@
(define define-library-transformer (define define-library-transformer
(er-macro-transformer (er-macro-transformer
(lambda (expr rename compare) (lambda (expr rename compare)
(cond
((find (lambda (x) (and (pair? x) (compare (car x) (rename 'alias-for))))
(cddr expr))
=> (lambda (alias)
(if (not (= 1 (length (cddr expr))))
(error "alias must be the only library declaration" expr))
;; we need to load the original module first, not just find it,
;; or else the includes would happen relative to the alias
(let ((name (cadr expr))
(orig (load-module (cadr alias))))
(if (not orig)
(error "couldn't find library to alias" (cadr alias))
`(,(rename 'add-module!) (,(rename 'quote) ,name)
(,(rename 'quote) ,orig))))))
(else
(let ((name (cadr expr)) (let ((name (cadr expr))
(body (cddr expr)) (body (cddr expr))
(tmp (rename 'tmp)) (tmp (rename 'tmp))
@ -307,23 +322,11 @@
#f #f
(,_reverse ,this-module))) (,_reverse ,this-module)))
(,_set! ,this-module ,tmp) (,_set! ,this-module ,tmp)
(,(rename 'pop-this-path))))))) (,(rename 'pop-this-path)))))))))
(define-syntax define-library define-library-transformer) (define-syntax define-library define-library-transformer)
(define-syntax module define-library-transformer) (define-syntax module define-library-transformer)
(define-syntax define-library-alias
(er-macro-transformer
(lambda (expr rename compare)
;; we need to load the original module first, not just find it,
;; or else the includes would happen relative to the alias
(let ((name (cadr expr))
(orig (load-module (car (cddr expr)))))
(if (not orig)
(error "couldn't find library to alias" (car (cddr expr)))
`(,(rename 'add-module!) (,(rename 'quote) ,name)
(,(rename 'quote) ,orig)))))))
(define-syntax pop-this-path (define-syntax pop-this-path
(er-macro-transformer (er-macro-transformer
(lambda (expr rename compare) (lambda (expr rename compare)

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme bitwise) (srfi 151)) (define-library (scheme bitwise) (alias-for (srfi 151)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme box) (srfi 111)) (define-library (scheme box) (alias-for (srfi 111)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme case-lambda) (srfi 16)) (define-library (scheme case-lambda) (alias-for (srfi 16)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme charset) (srfi 14)) (define-library (scheme charset) (alias-for (srfi 14)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme comparator) (srfi 128)) (define-library (scheme comparator) (alias-for (srfi 128)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme ephemeron) (srfi 124)) (define-library (scheme ephemeron) (alias-for (srfi 124)))

2
lib/scheme/fixnum.sld Normal file
View file

@ -0,0 +1,2 @@
(define-library (scheme fixnum) (alias-for (srfi 143)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme flonum) (srfi 144)) (define-library (scheme flonum) (alias-for (srfi 144)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme generator) (srfi 121)) (define-library (scheme generator) (alias-for (srfi 121)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme hash-table) (srfi 125)) (define-library (scheme hash-table) (alias-for (srfi 125)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme ideque) (srfi 134)) (define-library (scheme ideque) (alias-for (srfi 134)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme ilist) (srfi 116)) (define-library (scheme ilist) (alias-for (srfi 116)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme list-queue) (srfi 117)) (define-library (scheme list-queue) (alias-for (srfi 117)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme list) (srfi 1)) (define-library (scheme list) (alias-for (srfi 1)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme lseq) (srfi 127)) (define-library (scheme lseq) (alias-for (srfi 127)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme mapping) (srfi 146)) (define-library (scheme mapping) (alias-for (srfi 146)))

View file

@ -1,28 +1,2 @@
(define-library (scheme mapping hash) (define-library (scheme mapping hash) (alias-for (srfi 146 hash)))
(import (srfi 146 hash))
(export
hashmap hashmap-unfold
hashmap? hashmap-contains? hashmap-empty? hashmap-disjoint?
hashmap-ref hashmap-ref/default hashmap-key-comparator
hashmap-adjoin hashmap-adjoin!
hashmap-set hashmap-set!
hashmap-replace hashmap-replace!
hashmap-delete hashmap-delete! hashmap-delete-all hashmap-delete-all!
hashmap-intern hashmap-intern!
hashmap-update hashmap-update! hashmap-update/default hashmap-update!/default
hashmap-pop hashmap-pop!
hashmap-search hashmap-search!
hashmap-size hashmap-find hashmap-count hashmap-any? hashmap-every?
hashmap-keys hashmap-values hashmap-entries
hashmap-map hashmap-map->list hashmap-for-each hashmap-fold
hashmap-filter hashmap-filter!
hashmap-remove hashmap-remove!
hashmap-partition hashmap-partition!
hashmap-copy hashmap->alist alist->hashmap alist->hashmap!
hashmap=? hashmap<? hashmap>? hashmap<=? hashmap>=?
hashmap-union hashmap-intersection hashmap-difference hashmap-xor
hashmap-union! hashmap-intersection! hashmap-difference! hashmap-xor!
make-hashmap-comparator
hashmap-comparator
comparator?))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme regex) (srfi 115)) (define-library (scheme regex) (alias-for (srfi 115)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme set) (srfi 113)) (define-library (scheme set) (alias-for (srfi 113)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme show) (srfi 166)) (define-library (scheme show) (alias-for (srfi 166)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme sort) (srfi 132)) (define-library (scheme sort) (alias-for (srfi 132)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme stream) (srfi 41)) (define-library (scheme stream) (alias-for (srfi 41)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme text) (srfi 135)) (define-library (scheme text) (alias-for (srfi 135)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector) (srfi 133)) (define-library (scheme vector) (alias-for (srfi 133)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector base) (srfi 160 base)) (define-library (scheme vector base) (alias-for (srfi 160 base)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector c128) (srfi 160 c128)) (define-library (scheme vector c128) (alias-for (srfi 160 c128)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector c64) (srfi 160 c64)) (define-library (scheme vector c64) (alias-for (srfi 160 c64)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector f32) (srfi 160 f32)) (define-library (scheme vector f32) (alias-for (srfi 160 f32)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector f64) (srfi 160 f64)) (define-library (scheme vector f64) (alias-for (srfi 160 f64)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector s16) (srfi 160 s16)) (define-library (scheme vector s16) (alias-for (srfi 160 s16)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector s32) (srfi 160 s32)) (define-library (scheme vector s32) (alias-for (srfi 160 s32)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector s64) (srfi 160 s64)) (define-library (scheme vector s64) (alias-for (srfi 160 s64)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector s8) (srfi 160 s8)) (define-library (scheme vector s8) (alias-for (srfi 160 s8)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector u16) (srfi 160 u16)) (define-library (scheme vector u16) (alias-for (srfi 160 u16)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector u32) (srfi 160 u32)) (define-library (scheme vector u32) (alias-for (srfi 160 u32)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector u64) (srfi 160 u64)) (define-library (scheme vector u64) (alias-for (srfi 160 u64)))

View file

@ -1,2 +1,2 @@
(define-library-alias (scheme vector u8) (srfi 160 u8)) (define-library (scheme vector u8) (alias-for (srfi 160 u8)))