[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 01/02: linker: Create sparse files for padding.
From: |
Ludovic Courtès |
Subject: |
[Guile-commits] 01/02: linker: Create sparse files for padding. |
Date: |
Mon, 15 Apr 2024 14:01:03 -0400 (EDT) |
civodul pushed a commit to branch main
in repository guile.
commit 4a0c2433d97be9d995b3be74d90bc074d8efb5a7
Author: Ludovic Courtès <ludo@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