civodul pushed a commit to branch main in repository guile. commit 4a0c2433d97be9d995b3be74d90bc074d8efb5a7 Author: Ludovic Courtès <l...@gnu.org> AuthorDate: Mon Apr 15 15:58:30 2024 +0200
linker: Create sparse files for padding. Since ‘*lcm-page-size*’ is 64 KiB, this saves disk space for small ‘.go’ files. * module/system/vm/linker.scm (link-elf)[write-padding]: Rewrite in terms of ‘seek’. --- module/system/vm/linker.scm | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/module/system/vm/linker.scm b/module/system/vm/linker.scm index cf213323e..952e85c30 100644 --- a/module/system/vm/linker.scm +++ b/module/system/vm/linker.scm @@ -769,16 +769,10 @@ Returns a bytevector." objects) bv) (lambda (port) - (define write-padding - (let ((blank (make-bytevector 4096 0))) - (lambda (port size) - ;; Write SIZE bytes of padding to PORT. - (let loop ((size size)) - (unless (zero? size) - (let ((count (min size - (bytevector-length blank)))) - (put-bytevector port blank 0 count) - (loop (- size count)))))))) + (define (write-padding port size) + ;; Write SIZE bytes of padding to PORT. Use 'seek' to + ;; create a sparse file. + (seek port size SEEK_CUR)) (define (compute-padding objects) ;; Return the list of padding in between OBJECTS--the list