From: Kauker, H. <Hub...@tr...> - 2009-01-26 18:47:12
|
Hi, I have a text file containing just "line1" and "line2", and I want to print it to stdout recursively using the following source: (defun print-stream (in) (let ((line (read-line in nil))) (when line (write-line line) (print-stream in)))) (defun print-file-to-stdout (filename) (with-open-file (in filename) (print-stream in))) Now, here is what happens when I call the ROOM function: === Snip === This is SBCL 1.0.22, an implementation of ANSI Common Lisp. More information about SBCL is available at <http://www.sbcl.org/>. SBCL is free software, provided as is, with absolutely no warranty. It is mostly in the public domain; some portions are provided under BSD-style licenses. See the CREDITS and COPYING files in the distribution for more information. This is experimental prerelease support for the Windows platform: use at your own risk. "Your Kitten of Death awaits!" * (load "print-file") T * (room) Dynamic space usage is: 25,852,552 bytes. Read-only space usage is: 2,968 bytes. Static space usage is: 1,640 bytes. Control stack usage is: 1,816 bytes. Binding stack usage is: 336 bytes. Garbage collection is currently enabled. Breakdown for dynamic space: 9,106,856 bytes for 11,430 code objects. 4,756,608 bytes for 594,576 cons objects. 3,393,304 bytes for 77,815 instance objects. 3,078,464 bytes for 55,024 simple-vector objects. 5,537,648 bytes for 139,571 other objects. 25,872,880 bytes for 878,416 dynamic objects (space total.) * (print-file-to-stdout "in.txt") Line1 Line2 NIL * (room) Dynamic space usage is: 25,600,336 bytes. Read-only space usage is: 2,968 bytes. Static space usage is: 1,640 bytes. Control stack usage is: 1,816 bytes. Binding stack usage is: 336 bytes. Garbage collection is currently enabled. Breakdown for dynamic space: 14,093,696 bytes for 1,732,897 bignum objects. 9,106,856 bytes for 11,430 code objects. 4,764,160 bytes for 595,520 cons objects. 3,473,376 bytes for 87,233 instance objects. 3,043,344 bytes for 54,160 simple-vector objects. 5,675,304 bytes for 178,828 other objects. 40,156,736 bytes for 2,660,068 dynamic objects (space total.) * === Snap === What puzzles me: There are so many bignum objects. The space for dynamic objects has increased. Any explanations? Thanks a lot. Hubert |