Remove util-list, use srfi-1.

This commit is contained in:
Dominik Pantůček 2023-06-08 21:00:16 +02:00
parent b2070d3b2e
commit fc099d027f
16 changed files with 41 additions and 121 deletions

View file

@ -48,11 +48,10 @@ HACKERBASE-OBJS=hackerbase.o testing.o listing.o cal-month.o \
util-csv.o bank-account.o bank-fio.o members-payments.o \ util-csv.o bank-account.o bank-fio.o members-payments.o \
brmember-parser.o export-wiki-compat.o environment.o \ brmember-parser.o export-wiki-compat.o environment.o \
mailman.o util-set-list.o util-time.o util-tag.o util-io.o \ mailman.o util-set-list.o util-time.o util-tag.o util-io.o \
util-string.o util-io.o util-list.o util-parser.o texts.o \ util-string.o util-io.o util-parser.o texts.o tests.o \
tests.o util-proc.o util-mail.o notifications.o \ util-proc.o util-mail.o notifications.o util-format.o \
util-format.o brmember-format.o logging.o specification.o \ brmember-format.o logging.o specification.o util-git.o \
util-git.o cal-day.o util-stdout.o cal-format.o \ cal-day.o util-stdout.o cal-format.o util-dict-bst.o
util-dict-bst.o
.PHONY: imports .PHONY: imports
imports: $(HACKERBASE-DEPS) imports: $(HACKERBASE-DEPS)
@ -115,13 +114,13 @@ UTIL-DICT-LIST-SOURCES=util-dict-list.scm testing.import.scm \
util-dict-list.o: util-dict-list.import.scm util-dict-list.o: util-dict-list.import.scm
util-dict-list.import.scm: $(UTIL-DICT-LIST-SOURCES) util-dict-list.import.scm: $(UTIL-DICT-LIST-SOURCES)
ANSI-SOURCES=ansi.scm testing.import.scm util-list.import.scm ANSI-SOURCES=ansi.scm testing.import.scm
ansi.o: ansi.import.scm ansi.o: ansi.import.scm
ansi.import.scm: $(ANSI-SOURCES) ansi.import.scm: $(ANSI-SOURCES)
COMMAND-LINE-SOURCES=command-line.scm testing.import.scm \ COMMAND-LINE-SOURCES=command-line.scm testing.import.scm \
util-list.import.scm util-proc.import.scm util-proc.import.scm
command-line.o: command-line.import.scm command-line.o: command-line.import.scm
command-line.import.scm: $(COMMAND-LINE-SOURCES) command-line.import.scm: $(COMMAND-LINE-SOURCES)
@ -130,19 +129,13 @@ MBASE-SOURCES=mbase.scm testing.import.scm util-dict-list.import.scm \
primes.import.scm brmember.import.scm ansi.import.scm \ primes.import.scm brmember.import.scm ansi.import.scm \
cal-period.import.scm cal-month.import.scm \ cal-period.import.scm cal-month.import.scm \
configuration.import.scm progress.import.scm \ configuration.import.scm progress.import.scm \
table.import.scm mbase-dir.import.scm util-list.import.scm \ table.import.scm mbase-dir.import.scm util-tag.import.scm \
util-tag.import.scm racket-kwargs.import.scm \ racket-kwargs.import.scm util-dict-bst.import.scm
util-dict-bst.import.scm
mbase.o: mbase.import.scm mbase.o: mbase.import.scm
mbase.import.scm: $(MBASE-SOURCES) mbase.import.scm: $(MBASE-SOURCES)
UTIL-LIST-SOURCES=util-list.scm testing.import.scm PRIMES-SOURCES=primes.scm testing.import.scm
util-list.o: util-list.import.scm
util-list.import.scm: $(UTIL-LIST-SOURCES)
PRIMES-SOURCES=primes.scm testing.import.scm util-list.import.scm
primes.o: primes.import.scm primes.o: primes.import.scm
primes.import.scm: $(PRIMES-SOURCES) primes.import.scm: $(PRIMES-SOURCES)
@ -150,8 +143,7 @@ primes.import.scm: $(PRIMES-SOURCES)
BRMEMBER-SOURCES=brmember.scm util-dict-list.import.scm \ BRMEMBER-SOURCES=brmember.scm util-dict-list.import.scm \
cal-period.import.scm testing.import.scm cal-month.import.scm \ cal-period.import.scm testing.import.scm cal-month.import.scm \
configuration.import.scm primes.import.scm \ configuration.import.scm primes.import.scm \
bank-account.import.scm util-list.import.scm \ bank-account.import.scm util-tag.import.scm
util-tag.import.scm
brmember.o: brmember.import.scm brmember.o: brmember.import.scm
brmember.import.scm: $(BRMEMBER-SOURCES) brmember.import.scm: $(BRMEMBER-SOURCES)
@ -167,8 +159,7 @@ progress.o: progress.import.scm
progress.import.scm: $(PROGRESS-SOURCES) progress.import.scm: $(PROGRESS-SOURCES)
TABLE-SOURCES=table.scm ansi.import.scm testing.import.scm \ TABLE-SOURCES=table.scm ansi.import.scm testing.import.scm \
util-string.import.scm util-list.import.scm \ util-string.import.scm racket-kwargs.import.scm
racket-kwargs.import.scm
table.o: table.import.scm table.o: table.import.scm
table.import.scm: $(TABLE-SOURCES) table.import.scm: $(TABLE-SOURCES)
@ -179,10 +170,10 @@ EXPORT-CARDS-SOURCES=export-cards.scm util-dict-list.import.scm \
export-cards.o: export-cards.import.scm export-cards.o: export-cards.import.scm
export-cards.import.scm: $(EXPORT-CARDS-SOURCES) export-cards.import.scm: $(EXPORT-CARDS-SOURCES)
BRMEMBER-PARSER-SOURCES=brmember-parser.scm brmember.import.scm \ BRMEMBER-PARSER-SOURCES=brmember-parser.scm brmember.import.scm \
testing.import.scm util-dict-list.import.scm cal-month.import.scm \ testing.import.scm util-dict-list.import.scm \
cal-period.import.scm configuration.import.scm \ cal-month.import.scm cal-period.import.scm \
util-string.import.scm util-list.import.scm \ configuration.import.scm util-string.import.scm \
util-parser.import.scm cal-day.import.scm util-parser.import.scm cal-day.import.scm
brmember-parser.o: brmember-parser.import.scm brmember-parser.o: brmember-parser.import.scm
@ -193,9 +184,9 @@ MEMBERS-PRINT-SOURCES=members-print.scm util-dict-list.import.scm \
listing.import.scm ansi.import.scm cal-period.import.scm \ listing.import.scm ansi.import.scm cal-period.import.scm \
primes.import.scm mbase.import.scm configuration.import.scm \ primes.import.scm mbase.import.scm configuration.import.scm \
bank-account.import.scm members-fees.import.scm \ bank-account.import.scm members-fees.import.scm \
members-payments.import.scm util-list.import.scm \ members-payments.import.scm brmember-format.import.scm \
brmember-format.import.scm specification.import.scm \ specification.import.scm cal-format.import.scm \
cal-format.import.scm util-git.import.scm util-git.import.scm
members-print.o: members-print.import.scm members-print.o: members-print.import.scm
members-print.import.scm: $(MEMBERS-PRINT-SOURCES) members-print.import.scm: $(MEMBERS-PRINT-SOURCES)
@ -203,14 +194,13 @@ members-print.import.scm: $(MEMBERS-PRINT-SOURCES)
MEMBERS-FEES-SOURCES=members-fees.scm configuration.import.scm \ MEMBERS-FEES-SOURCES=members-fees.scm configuration.import.scm \
brmember.import.scm cal-month.import.scm table.import.scm \ brmember.import.scm cal-month.import.scm table.import.scm \
mbase.import.scm specification.import.scm \ mbase.import.scm specification.import.scm \
util-list.import.scm
members-fees.o: members-fees.import.scm members-fees.o: members-fees.import.scm
members-fees.import.scm: $(MEMBERS-FEES-SOURCES) members-fees.import.scm: $(MEMBERS-FEES-SOURCES)
MBASE-DIR-SOURCES=mbase-dir.scm testing.import.scm \ MBASE-DIR-SOURCES=mbase-dir.scm testing.import.scm \
util-dict-list.import.scm brmember.import.scm \ util-dict-list.import.scm brmember.import.scm \
brmember-parser.import.scm util-list.import.scm brmember-parser.import.scm
mbase-dir.o: mbase-dir.import.scm mbase-dir.o: mbase-dir.import.scm
mbase-dir.import.scm: $(MBASE-DIR-SOURCES) mbase-dir.import.scm: $(MBASE-DIR-SOURCES)
@ -235,7 +225,7 @@ bank-fio.import.scm: $(BANK-FIO-SOURCES)
MEMBERS-PAYMENTS-SOURCES=members-payments.scm bank-account.import.scm \ MEMBERS-PAYMENTS-SOURCES=members-payments.scm bank-account.import.scm \
util-dict-list.import.scm members-fees.import.scm \ util-dict-list.import.scm members-fees.import.scm \
cal-period.import.scm configuration.import.scm \ cal-period.import.scm configuration.import.scm \
progress.import.scm bank-fio.import.scm util-list.import.scm \ progress.import.scm bank-fio.import.scm \
specification.import.scm specification.import.scm
members-payments.o: members-payments.import.scm members-payments.o: members-payments.import.scm
@ -243,8 +233,7 @@ members-payments.import.scm: $(MEMBERS-PAYMENTS-SOURCES)
EXPORT-WIKI-COMPAT-SOURCES=export-wiki-compat.scm brmember.import.scm \ EXPORT-WIKI-COMPAT-SOURCES=export-wiki-compat.scm brmember.import.scm \
configuration.import.scm members-payments.import.scm \ configuration.import.scm members-payments.import.scm \
mbase.import.scm util-git.import.scm util-list.import.scm \ mbase.import.scm util-git.import.scm progress.import.scm
progress.import.scm
export-wiki-compat.o: export-wiki-compat.import.scm export-wiki-compat.o: export-wiki-compat.import.scm
export-wiki-compat.import.scm: $(EXPORT-WIKI-COMPAT-SOURCES) export-wiki-compat.import.scm: $(EXPORT-WIKI-COMPAT-SOURCES)
@ -256,7 +245,6 @@ environment.import.scm: $(ENVIRONMENT-SOURCES)
MAILMAN-SOURCES=mailman.scm progress.import.scm \ MAILMAN-SOURCES=mailman.scm progress.import.scm \
util-set-list.import.scm util-io.import.scm \ util-set-list.import.scm util-io.import.scm \
util-list.import.scm
mailman.o: mailman.import.scm mailman.o: mailman.import.scm
mailman.import.scm: $(MAILMAN-SOURCES) mailman.import.scm: $(MAILMAN-SOURCES)
@ -292,11 +280,6 @@ UTIL-IO-SOURCES=util-io.scm
util-io.o: util-io.import.scm util-io.o: util-io.import.scm
util-io.import.scm: $(UTIL-IO-SOURCES) util-io.import.scm: $(UTIL-IO-SOURCES)
UTIL-LIST-SOURCES=util-list.scm testing.import.scm
util-list.o: util-list.import.scm
util-list.import.scm: $(UTIL-LIST-SOURCES)
UTIL-PARSER-SOURCES=util-parser.scm testing.import.scm UTIL-PARSER-SOURCES=util-parser.scm testing.import.scm
util-parser.o: util-parser.import.scm util-parser.o: util-parser.import.scm
@ -308,10 +291,10 @@ texts.o: texts.import.scm
texts.import.scm: $(TEXTS-SOURCES) texts.import.scm: $(TEXTS-SOURCES)
TESTS-SOURCES=tests.scm listing.import.scm util-dict-list.import.scm \ TESTS-SOURCES=tests.scm listing.import.scm util-dict-list.import.scm \
cal-month.import.scm cal-period.import.scm \ cal-month.import.scm cal-period.import.scm ansi.import.scm \
util-list.import.scm ansi.import.scm command-line.import.scm \ command-line.import.scm mbase-dir.import.scm \
mbase-dir.import.scm primes.import.scm brmember.import.scm \ primes.import.scm brmember.import.scm table.import.scm \
table.import.scm util-csv.import.scm util-set-list.import.scm \ util-csv.import.scm util-set-list.import.scm \
util-parser.import.scm util-string.import.scm \ util-parser.import.scm util-string.import.scm \
cal-day.import.scm util-dict-bst.import.scm cal-day.import.scm util-dict-bst.import.scm

View file

@ -50,8 +50,8 @@
(chicken string) (chicken string)
(chicken irregex) (chicken irregex)
(chicken keyword) (chicken keyword)
testing srfi-1
util-list) testing)
;; Only basic ANSI colors and bold attribute support. ;; Only basic ANSI colors and bold attribute support.
(define colors (define colors

View file

@ -36,12 +36,12 @@
(chicken io) (chicken io)
(chicken irregex) (chicken irregex)
(chicken string) (chicken string)
srfi-1
brmember brmember
testing testing
util-dict-list util-dict-list
cal-month cal-month
cal-period cal-period
util-list
configuration configuration
util-string util-string
util-parser util-parser

View file

@ -91,13 +91,13 @@
(chicken irregex) (chicken irregex)
(chicken string) (chicken string)
(chicken format) (chicken format)
srfi-1
util-dict-list util-dict-list
testing testing
cal-month cal-month
cal-period cal-period
configuration configuration
primes primes
util-list
bank-account bank-account
util-tag) util-tag)

View file

@ -40,7 +40,7 @@
(chicken base) (chicken base)
(chicken process-context) (chicken process-context)
(chicken format) (chicken format)
util-list srfi-1
testing testing
util-proc) util-proc)

View file

@ -40,8 +40,8 @@
(chicken pathname) (chicken pathname)
(chicken file) (chicken file)
(chicken file posix) (chicken file posix)
srfi-1
brmember brmember
util-list
configuration configuration
members-payments members-payments
mbase mbase

View file

@ -59,7 +59,7 @@
(chicken string) (chicken string)
(chicken sort) (chicken sort)
(chicken format) (chicken format)
util-list srfi-1
progress progress
util-set-list util-set-list
util-io) util-io)

View file

@ -40,9 +40,9 @@
(chicken file) (chicken file)
(chicken format) (chicken format)
(chicken irregex) (chicken irregex)
srfi-1
testing testing
util-dict-list util-dict-list
util-list
brmember brmember
brmember-parser) brmember-parser)

View file

@ -65,8 +65,8 @@
(chicken string) (chicken string)
(chicken random) (chicken random)
(chicken sort) (chicken sort)
srfi-1
testing testing
util-list
util-dict-list util-dict-list
primes primes
brmember brmember

View file

@ -45,6 +45,7 @@
(chicken base) (chicken base)
(chicken format) (chicken format)
(chicken sort) (chicken sort)
srfi-1
configuration configuration
brmember brmember
cal-month cal-month
@ -52,8 +53,7 @@
table table
mbase mbase
cal-period cal-period
specification specification)
util-list)
;; Returns a matching list of (list regular student) ;; Returns a matching list of (list regular student)
(define (lookup-member-fees) (define (lookup-member-fees)

View file

@ -46,6 +46,7 @@
(chicken process-context) (chicken process-context)
(chicken pathname) (chicken pathname)
(chicken condition) (chicken condition)
srfi-1
bank-account bank-account
brmember brmember
mbase mbase
@ -54,7 +55,6 @@
members-fees members-fees
cal-period cal-period
configuration configuration
util-list
progress progress
specification) specification)

View file

@ -46,10 +46,10 @@
(chicken string) (chicken string)
(chicken sort) (chicken sort)
(chicken format) (chicken format)
srfi-1
util-dict-list util-dict-list
brmember brmember
cal-month cal-month
util-list
table table
listing listing
ansi ansi

View file

@ -35,8 +35,8 @@
(import scheme (import scheme
(chicken base) (chicken base)
testing srfi-1
util-list) testing)
;; Checks whether given number is prime by checking the remainder of ;; Checks whether given number is prime by checking the remainder of
;; the division by all primes less than square root of the number in ;; the division by all primes less than square root of the number in

View file

@ -40,9 +40,9 @@
(chicken format) (chicken format)
(chicken keyword) (chicken keyword)
(chicken irregex) (chicken irregex)
srfi-1
ansi ansi
testing testing
util-list
util-string util-string
racket-kwargs) racket-kwargs)

View file

@ -37,7 +37,6 @@
cal-month cal-month
cal-period cal-period
cal-day cal-day
util-list
ansi ansi
command-line command-line
mbase-dir mbase-dir
@ -61,7 +60,6 @@
(primes-tests!) (primes-tests!)
(brmember-tests!) (brmember-tests!)
(mbase-dir-tests!) (mbase-dir-tests!)
(util-list-tests!)
(ansi-tests!) (ansi-tests!)
(command-line-tests!) (command-line-tests!)
(table-tests!) (table-tests!)

View file

@ -1,61 +0,0 @@
;;
;; util-list.scm
;;
;; Various utilities so that no external libraries are needed.
;;
;; ISC License
;;
;; Copyright 2023 Brmlab, z.s.
;; Dominik Pantůček <dominik.pantucek@trustica.cz>
;;
;; Permission to use, copy, modify, and/or distribute this software
;; for any purpose with or without fee is hereby granted, provided
;; that the above copyright notice and this permission notice appear
;; in all copies.
;;
;; THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL
;; WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED
;; WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE
;; AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR
;; CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
;; OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT,
;; NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN
;; CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
;;
(declare (unit util-list))
(module
util-list
(
filter
util-list-tests!
)
(import scheme
(chicken base)
(chicken io)
(chicken process)
testing)
;; Returns a list with elements matching pred? predicate.
(define (filter pred? lst)
(let loop ((lst lst)
(res '()))
(if (null? lst)
(reverse res)
(if (pred? (car lst))
(loop (cdr lst)
(cons (car lst) res))
(loop (cdr lst)
res)))))
;; Performs utils module self-tests.
(define (util-list-tests!)
(run-tests
util-list
(test-equal? filter (filter odd? '(1 2 3 4)) '(1 3))
(test-equal? filter (filter odd? '(2 4)) '())
))
)