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 \
brmember-parser.o export-wiki-compat.o environment.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 \
tests.o util-proc.o util-mail.o notifications.o \
util-format.o brmember-format.o logging.o specification.o \
util-git.o cal-day.o util-stdout.o cal-format.o \
util-dict-bst.o
util-string.o util-io.o util-parser.o texts.o tests.o \
util-proc.o util-mail.o notifications.o util-format.o \
brmember-format.o logging.o specification.o util-git.o \
cal-day.o util-stdout.o cal-format.o util-dict-bst.o
.PHONY: imports
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.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.import.scm: $(ANSI-SOURCES)
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.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 \
cal-period.import.scm cal-month.import.scm \
configuration.import.scm progress.import.scm \
table.import.scm mbase-dir.import.scm util-list.import.scm \
util-tag.import.scm racket-kwargs.import.scm \
util-dict-bst.import.scm
table.import.scm mbase-dir.import.scm util-tag.import.scm \
racket-kwargs.import.scm util-dict-bst.import.scm
mbase.o: mbase.import.scm
mbase.import.scm: $(MBASE-SOURCES)
UTIL-LIST-SOURCES=util-list.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-SOURCES=primes.scm testing.import.scm
primes.o: primes.import.scm
primes.import.scm: $(PRIMES-SOURCES)
@ -150,8 +143,7 @@ primes.import.scm: $(PRIMES-SOURCES)
BRMEMBER-SOURCES=brmember.scm util-dict-list.import.scm \
cal-period.import.scm testing.import.scm cal-month.import.scm \
configuration.import.scm primes.import.scm \
bank-account.import.scm util-list.import.scm \
util-tag.import.scm
bank-account.import.scm util-tag.import.scm
brmember.o: brmember.import.scm
brmember.import.scm: $(BRMEMBER-SOURCES)
@ -167,8 +159,7 @@ progress.o: progress.import.scm
progress.import.scm: $(PROGRESS-SOURCES)
TABLE-SOURCES=table.scm ansi.import.scm testing.import.scm \
util-string.import.scm util-list.import.scm \
racket-kwargs.import.scm
util-string.import.scm racket-kwargs.import.scm
table.o: table.import.scm
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.import.scm: $(EXPORT-CARDS-SOURCES)
BRMEMBER-PARSER-SOURCES=brmember-parser.scm brmember.import.scm \
testing.import.scm util-dict-list.import.scm cal-month.import.scm \
cal-period.import.scm configuration.import.scm \
util-string.import.scm util-list.import.scm \
BRMEMBER-PARSER-SOURCES=brmember-parser.scm brmember.import.scm \
testing.import.scm util-dict-list.import.scm \
cal-month.import.scm cal-period.import.scm \
configuration.import.scm util-string.import.scm \
util-parser.import.scm cal-day.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 \
primes.import.scm mbase.import.scm configuration.import.scm \
bank-account.import.scm members-fees.import.scm \
members-payments.import.scm util-list.import.scm \
brmember-format.import.scm specification.import.scm \
cal-format.import.scm util-git.import.scm
members-payments.import.scm brmember-format.import.scm \
specification.import.scm cal-format.import.scm \
util-git.import.scm
members-print.o: members-print.import.scm
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 \
brmember.import.scm cal-month.import.scm table.import.scm \
mbase.import.scm specification.import.scm \
util-list.import.scm
members-fees.o: members-fees.import.scm
members-fees.import.scm: $(MEMBERS-FEES-SOURCES)
MBASE-DIR-SOURCES=mbase-dir.scm testing.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.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 \
util-dict-list.import.scm members-fees.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
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 \
configuration.import.scm members-payments.import.scm \
mbase.import.scm util-git.import.scm util-list.import.scm \
progress.import.scm
mbase.import.scm util-git.import.scm progress.import.scm
export-wiki-compat.o: export-wiki-compat.import.scm
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 \
util-set-list.import.scm util-io.import.scm \
util-list.import.scm
mailman.o: mailman.import.scm
mailman.import.scm: $(MAILMAN-SOURCES)
@ -292,11 +280,6 @@ UTIL-IO-SOURCES=util-io.scm
util-io.o: util-io.import.scm
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.o: util-parser.import.scm
@ -308,10 +291,10 @@ texts.o: texts.import.scm
texts.import.scm: $(TEXTS-SOURCES)
TESTS-SOURCES=tests.scm listing.import.scm util-dict-list.import.scm \
cal-month.import.scm cal-period.import.scm \
util-list.import.scm ansi.import.scm command-line.import.scm \
mbase-dir.import.scm primes.import.scm brmember.import.scm \
table.import.scm util-csv.import.scm util-set-list.import.scm \
cal-month.import.scm cal-period.import.scm ansi.import.scm \
command-line.import.scm mbase-dir.import.scm \
primes.import.scm brmember.import.scm table.import.scm \
util-csv.import.scm util-set-list.import.scm \
util-parser.import.scm util-string.import.scm \
cal-day.import.scm util-dict-bst.import.scm

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -37,7 +37,6 @@
cal-month
cal-period
cal-day
util-list
ansi
command-line
mbase-dir
@ -61,7 +60,6 @@
(primes-tests!)
(brmember-tests!)
(mbase-dir-tests!)
(util-list-tests!)
(ansi-tests!)
(command-line-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)) '())
))
)