1(module help-startup '#%kernel 2 (#%provide get-linklet 3 get-version-comparisons) 4 5 (define-values (get-lines) 6 (lambda (in) 7 (let-values ([(l) (read-line in 'any)]) 8 (if (eof-object? l) 9 null 10 (cons l (get-lines in)))))) 11 12 (define-values (get-linklet) 13 (lambda (src) 14 (read 15 (open-input-string 16 (apply 17 string-append 18 (map (lambda (l) 19 (regexp-replace* #rx"\\\\(.)" 20 (substring l 1 (sub1 (string-length l))) 21 "\\1")) 22 (reverse (cdr (reverse (cddr (call-with-input-file src get-lines))))))))))) 23 24 (define-values (get-version-comparisons) 25 (lambda (vers) 26 (call-with-input-file 27 vers 28 (lambda (in) 29 (letrec-values ([(get-version-comparisons) 30 (lambda () 31 (let-values ([(line) (read-line in 'any)]) 32 (if (eof-object? line) 33 "" 34 (let-values ([(m) (regexp-match #rx"^#define (MZSCHEME_VERSION_[A-Z]) ([0-9]+)" 35 line)]) 36 (if m 37 (string-append " || (" (cadr m) " != " (caddr m) ")" 38 (get-version-comparisons)) 39 (get-version-comparisons))))))]) 40 (get-version-comparisons))))))) 41