mes: Remove SRFI 1 from boot-4.

* mes/module/mes/boot-0.scm: Do not import 'srfi-1'.
* mes/module/mes/boot-5.scm: Likewise.
* mes/module/srfi/srfi-1.scm: Adjust exports accordingly.
* mes/module/mes/scm.mes (hash-fold): Rewrite avoiding 'fold'.
* mes/module/mes/guile-module.mes (reverse): New procedure.
(reverse!): New procedure.
This commit is contained in:
Timothy Sample 2022-04-10 10:37:40 -06:00
parent c65cd724ba
commit b36da36004
5 changed files with 37 additions and 30 deletions

View File

@ -183,7 +183,6 @@
;; end boot-03.scm
;; boot-04.scm
(mes-use-module (srfi srfi-1))
(mes-use-module (srfi srfi-13))
(mes-use-module (mes fluids))
(mes-use-module (mes catch))

View File

@ -179,7 +179,6 @@
;; end boot-03.scm
;; boot-04.scm
(mes-use-module (srfi srfi-1))
(mes-use-module (srfi srfi-13))
(mes-use-module (mes fluids))
(mes-use-module (mes catch))

View File

@ -74,6 +74,8 @@
(define delete! delete)
(define (include-deprecated-features) #f)
(define current-reader (make-fluid))
(define (reverse lst) (append-reverse lst '()))
(define (reverse! lst) (core:reverse! lst '()))
;;; A leaky version of object properties. We need weak references to do
;;; this properly.

View File

@ -216,7 +216,11 @@
acc))))))))
(define (hash-fold proc init table)
(fold proc init (hash-map->list cons table)))
(let loop ((handles (hash-map->list cons table)) (acc init))
(if (null? handles)
acc
(loop (cdr handles)
(cons (proc (caar handles) (cdar handles) acc) acc)))))
(define (hash-for-each proc table)
(hash-map->list proc table)

View File

@ -27,30 +27,33 @@
;;; Code:
(define-module (srfi srfi-1)
#:re-export (every
find
filter
append-map
filter-map
fold
fold-right
unfold
remove
reverse!
mes:member
srfi-1:member
member
mes:iota
srfi-1:iota
iota
delete-duplicates
any
any1
every
every1
list-index
lset-union
lset-intersection
lset-difference
reverse!
take-while))
#:re-export (append-reverse
reverse
reverse!)
#:replace (member
iota
filter
srfi-1:member)
#:export (every
find
append-map
filter-map
fold
fold-right
unfold
remove
mes:member
mes:iota
srfi-1:iota
delete-duplicates
any
any1
every
every1
list-index
lset-union
lset-intersection
lset-difference
take-while))
(include-from-path "srfi/srfi-1.mes")