guix/guix
Ludovic Courtès 85a2b58987
zlib: Fix memory leak due to revealed ports not being GC'd.
Fixes <https://bugs.gnu.org/28784>.

This mostly reverts 81a0f1cdf1, which
introduced a regression: revealed ports are *never* GC'd (contrary to
what Guile's manual suggests).

In addition to the revert, 'close-procedure' now explicitly swallows
EBADF errors when 'close-port' is called.

* guix/zlib.scm (close-procedure): New procedure.
(make-gzip-input-port)[gzfile]: Use 'fileno' instead of 'port->fdes'.
Use 'close-procedure' instead of 'gzclose'.
(make-gzip-output-port): Likewise.
* tests/zlib.scm ("compression/decompression pipe"): Use 'port-closed?'
to determine whether PARENT has been closed.
2017-10-11 15:20:50 +02:00
..
build syscalls: clone: Define syscall-id for aarch64. 2017-10-09 18:55:18 -05:00
build-system guix: ant-build-system: Add #:test-include and #:test-exclude arguments. 2017-10-03 21:38:23 +02:00
import import: cpan: Load (gnu packages perl) lazily. 2017-10-10 23:12:04 +02:00
scripts lint: Remove extra newline. 2017-10-09 23:17:49 +02:00
store store: Support 'ssh://' URIs in 'GUIX_DAEMON_SOCKET'. 2017-04-21 19:17:36 +02:00
tests
base16.scm utils: Move base16 procedures to (guix base16). 2017-03-16 22:50:14 +01:00
base32.scm base32: Export the base32 charsets. 2017-07-21 17:03:24 +02:00
base64.scm base64: Turn into a regular Guile module. 2017-05-25 14:25:17 +02:00
build-system.scm
cache.scm cache: Work around 'time-monotonic' bug in Guile 2.2.2. 2017-04-22 14:42:15 +02:00
combinators.scm
config.scm.in
cpio.scm
cve.scm cve: Disable position recording while reading the CVE list. 2017-09-19 23:58:25 +02:00
cvs-download.scm
derivations.scm derivations: Introduce 'read-derivation-from-file'. 2017-06-12 17:53:51 +02:00
discovery.scm discovery: Recurse into directories pointed to by a symlink. 2017-07-03 23:51:23 +02:00
docker.scm pack: Add '--target'. 2017-03-18 00:38:41 +01:00
download.scm guix: mirrors: Add kde archive mirror. 2017-10-10 17:01:32 +03:00
elf.scm
ftp-client.scm ftp-client: Allow custom username and password for FTP servers. 2017-03-21 12:14:05 +01:00
gcrypt.scm
gexp.scm gexp: Slightly improve error reporting for 'local-file'. 2017-07-20 18:08:00 +02:00
git-download.scm git-download: Remove call to 'canonicalize-path'. 2017-07-30 17:22:13 +02:00
git.scm guix: git: Stop using libgit2-shutdown. 2017-07-01 16:32:42 +02:00
gnu-maintenance.scm upstream: Add new GNOME updater. 2017-09-26 00:35:06 +02:00
gnupg.scm ui: Rename '_' to 'G_'. 2017-05-03 16:16:17 +02:00
grafts.scm derivations: Introduce 'read-derivation-from-file'. 2017-06-12 17:53:51 +02:00
graph.scm Revert "graph: Provide access to the package record in the emit functions." 2017-08-24 23:55:51 +02:00
hash.scm
hg-download.scm
http-client.scm http-client: Reset cache TTL upon 304 "Not Modified" responses. 2017-09-26 00:35:06 +02:00
licenses.scm licenses: Add CC-Sampling+ 1.0. 2017-09-22 08:04:32 -04:00
memoization.scm memoization: (mlambda () ...) allows for inner 'define'. 2017-09-03 23:36:17 +02:00
modules.scm modules: Raise an error when a dependency could not be found. 2017-05-25 14:25:17 +02:00
monad-repl.scm
monads.scm monads: Add a template and specialization mechanism for monadic procedures. 2017-05-02 23:41:13 +02:00
nar.scm ui: Rename '_' to 'G_'. 2017-05-03 16:16:17 +02:00
packages.scm packages: Use Guile 2.0 for grafting. 2017-08-24 00:41:44 +02:00
pk-crypto.scm publish: The public and private keys are now SRFI-39 parameters. 2017-03-22 14:05:59 +01:00
pki.scm
profiles.scm profiles: Only check file contents if the file exists. 2017-08-09 14:46:48 +02:00
records.scm records: Slight simplification. 2017-04-17 23:31:28 +02:00
scripts.scm scripts: Do not create the config directory. 2017-05-13 00:03:46 +02:00
search-paths.scm
serialization.scm serialization: Remove Guile < 2.0.9 workaround. 2017-04-17 23:31:28 +02:00
sets.scm
ssh.scm ssh: Improve error reporting when 'send-files' fails. 2017-06-04 23:00:32 +02:00
store.scm store: Add missing import. 2017-10-07 17:08:32 +02:00
svn-download.scm guix: Add download-svn-to-store. 2017-06-15 17:03:14 +02:00
tests.scm store: 'GUIX_DAEMON_SOCKET' can now be a URI. 2017-04-21 17:23:37 +02:00
ui.scm ui: Improve reporting of missing closing parentheses. 2017-10-10 23:12:03 +02:00
upstream.scm guix: lint: Add checker for new upstream versions. 2017-10-09 14:05:17 +03:00
utils.scm download: Don't report the progress too fast. 2017-09-20 19:49:31 +08:00
workers.scm scripts: Set thread names. 2017-05-28 23:13:39 +02:00
zlib.scm zlib: Fix memory leak due to revealed ports not being GC'd. 2017-10-11 15:20:50 +02:00