~ chicken-core (chicken-5) b17e47253eb8f05114ae5dbfa9bd30e758e9fd4f
commit b17e47253eb8f05114ae5dbfa9bd30e758e9fd4f Author: Evan Hanson <evhan@foldling.org> AuthorDate: Thu Jan 14 00:12:31 2016 +1300 Commit: Evan Hanson <evhan@foldling.org> CommitDate: Tue Mar 8 22:52:33 2016 +1300 Remove scan-input-lines from unit utils It's now available as an extension, instead. Also, fix a missing dependency on ports in runbench.sh. diff --git a/NEWS b/NEWS index b088d390..c5cd6bfa 100644 --- a/NEWS +++ b/NEWS @@ -14,8 +14,8 @@ - Core libraries - Removed support for memory-mapped files (posix), queues (data-structures), - binary-search (data-structures) and object-eviction (lolevel). These - are now available as eggs. + binary-search (data-structures), scan-input-lines (utils), and + object-eviction (lolevel). These are now available as eggs. - Removed the srfi-1, srfi-13, srfi-14, srfi-18 and srfi-69 units. These are now available as eggs. - Added the `executable-pathname` procedure for retrieving a path to diff --git a/manual/Unit utils b/manual/Unit utils index ccccd1ab..64d9ade0 100644 --- a/manual/Unit utils +++ b/manual/Unit utils @@ -81,20 +81,6 @@ A parameter that holds a list of default options that should be given to {{csc}} after invocation of the {{compile-file}} procedure. The initial default options are {{-O2 -d2}}. -=== Scanning through an input port - -==== scan-input-lines - -<procedure>(scan-input-lines REGEXP [PORT])</procedure> - -Reads lines from {{PORT}} (defaults to the result of {{(current-input-port)}}) -using {{read-line}} and returns the result of {{(irregex-search REGEXP LINE)}}, -if the match succeeds. If no match could be found, {{#f}} is returned. - -{{REGEXP}} may also be a procedure of one argument which is called for each -input line and should return a non-false value on success, which will then -be the result of the call to {{scan-input-lines}}. - === Asking the user for confirmation diff --git a/tests/sgrep.scm b/tests/sgrep.scm index ebd8c51a..6dc442f1 100644 --- a/tests/sgrep.scm +++ b/tests/sgrep.scm @@ -1,7 +1,7 @@ ;;;; sgrep.scm - grepping benchmark -(use irregex extras utils posix) +(use irregex extras utils ports) (define big-string @@ -17,14 +17,12 @@ (lambda () (let ((h 0) (c 0)) - (scan-input-lines - (lambda (line) - (set! c (fx+ c 1)) - ;(when (zero? (fxmod c 500)) (print* ".")) - (when (irregex-search expr line) - (set! h (fx+ h 1))) - #f)) - ;(newline) + (do ((line (read-line) (read-line))) + ((eof-object? line)) + (set! c (fx+ c 1)) + ;(when (zero? (fxmod c 500)) (print* ".")) + (when (irregex-search expr line) + (set! h (fx+ h 1)))) h)))))))) (define-syntax rx1 diff --git a/types.db b/types.db index 606c4109..b751058e 100644 --- a/types.db +++ b/types.db @@ -2258,5 +2258,4 @@ (chicken.utils#qs (#(procedure #:clean #:enforce) chicken.utils#qs (string) string)) (chicken.utils#compile-file (#(procedure #:clean #:enforce) chicken.utils#compile-file (string #!rest) (or false string))) (chicken.utils#compile-file-options (#(procedure #:clean #:enforce) chicken.utils#compile-file-options (#!optional (list-of string)) (list-of string))) -(chicken.utils#scan-input-lines (#(procedure #:enforce) chicken.utils#scan-input-lines (* #!optional input-port) *)) (chicken.utils#yes-or-no? (#(procedure #:enforce) chicken.utils#yes-or-no? (string #!rest) *)) diff --git a/utils.scm b/utils.scm index 5caf2898..985296a3 100644 --- a/utils.scm +++ b/utils.scm @@ -35,7 +35,6 @@ (compile-file compile-file-options read-all - scan-input-lines system* yes-or-no? qs) @@ -127,20 +126,6 @@ (else #f))))))) -;;; Scan lines until regex or predicate matches - -(define scan-input-lines - (lambda (rx #!optional (port ##sys#standard-input)) - (let ((rx (if (procedure? rx) - rx - (cute irregex-search (irregex rx) <>)))) - (let loop () - (let ((ln (read-line port))) - (and (not (eof-object? ln)) - (or (rx ln) - (loop)))))))) - - ;; Ask for confirmation #>Trap