<feed xmlns='http://www.w3.org/2005/Atom'>
<title>musl/src/stdio, branch v0.9.4</title>
<subtitle>musl - an implementation of the standard library for Linux-based systems</subtitle>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/'/>
<entry>
<title>add bsd fgetln function</title>
<updated>2012-08-11T22:10:38+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-08-11T22:10:38+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=617182734ca0beffa347747019d78b972e2038f9'/>
<id>617182734ca0beffa347747019d78b972e2038f9</id>
<content type='text'>
optimized to avoid allocation and return lines directly out of the
stream buffer whenever possible.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
optimized to avoid allocation and return lines directly out of the
stream buffer whenever possible.
</pre>
</div>
</content>
</entry>
<entry>
<title>minor but worthwhile optimization in printf: avoid expensive strspn</title>
<updated>2012-08-11T03:39:32+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-08-11T03:39:32+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=2b964b010e5d37cb2ff712d57a14095188d689e3'/>
<id>2b964b010e5d37cb2ff712d57a14095188d689e3</id>
<content type='text'>
the strspn call was made for every format specifier and end-of-string,
even though the expected return value was 1-2 for normal usage.
replace with simple loop.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
the strspn call was made for every format specifier and end-of-string,
even though the expected return value was 1-2 for normal usage.
replace with simple loop.
</pre>
</div>
</content>
</entry>
<entry>
<title>trivial optimization to printf: avoid wasted call frame</title>
<updated>2012-08-11T02:18:49+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-08-11T02:18:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=4c346919a9b238748de2ee85ce6d749fc3cf7059'/>
<id>4c346919a9b238748de2ee85ce6d749fc3cf7059</id>
<content type='text'>
amusingly, this cuts more than 10% off the run time of printf("a"); on
the machine i tested it on.

sadly the same optimization is not possible for snprintf without
duplicating all the pseudo-FILE setup code, which is not worth it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
amusingly, this cuts more than 10% off the run time of printf("a"); on
the machine i tested it on.

sadly the same optimization is not possible for snprintf without
duplicating all the pseudo-FILE setup code, which is not worth it.
</pre>
</div>
</content>
</entry>
<entry>
<title>putw is supposed to return 0 (not the value written) on success</title>
<updated>2012-07-04T16:21:22+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-07-04T16:21:22+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=920baab81f98a3cae3436361cdd044afe21fe347'/>
<id>920baab81f98a3cae3436361cdd044afe21fe347</id>
<content type='text'>
this is not a standard but it's the traditional behavior and it's more
useful because the caller can reliably detect errors.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
this is not a standard but it's the traditional behavior and it's more
useful because the caller can reliably detect errors.
</pre>
</div>
</content>
</entry>
<entry>
<title>make sure getw/putw agree with prototypes by defining _GNU_SOURCE</title>
<updated>2012-07-04T16:18:46+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-07-04T16:18:46+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=98eddc677609c20796982f3171165700613e3cf2'/>
<id>98eddc677609c20796982f3171165700613e3cf2</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix missing function declarations for __stdio_exit</title>
<updated>2012-07-03T02:48:56+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-07-03T02:48:56+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=8e26a591d059382cd28b96e457ede2fe07c550c7'/>
<id>8e26a591d059382cd28b96e457ede2fe07c550c7</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>fix fwrite return value when full write does not succeed</title>
<updated>2012-06-20T19:04:47+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T19:04:47+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=cea106fb8976d04b916953469439bc58fa111266'/>
<id>cea106fb8976d04b916953469439bc58fa111266</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>avoid cancellation in pclose</title>
<updated>2012-06-20T18:50:29+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T18:50:29+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=1af8c255040b3e1ba4913fd935d117490bfe8774'/>
<id>1af8c255040b3e1ba4913fd935d117490bfe8774</id>
<content type='text'>
at the point pclose might receive and act on cancellation, it has
already invalidated the FILE passed to it. thus, per musl's QOI
guarantees about cancellation and resource allocation/deallocation,
it's not a candidate for cancellation.

if it were required to be a cancellation point by posix, we would have
to switch the order of deallocation, but somehow still close the pipe
in order to trigger the child process to exit. i looked into doing
this, but the logic gets ugly, and i'm not sure the semantics are
conformant, so i'd rather just leave it alone unless there's a need to
change it.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
at the point pclose might receive and act on cancellation, it has
already invalidated the FILE passed to it. thus, per musl's QOI
guarantees about cancellation and resource allocation/deallocation,
it's not a candidate for cancellation.

if it were required to be a cancellation point by posix, we would have
to switch the order of deallocation, but somehow still close the pipe
in order to trigger the child process to exit. i looked into doing
this, but the logic gets ugly, and i'm not sure the semantics are
conformant, so i'd rather just leave it alone unless there's a need to
change it.
</pre>
</div>
</content>
</entry>
<entry>
<title>fix invalid memory access in pclose</title>
<updated>2012-06-20T18:47:34+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T18:47:34+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=9799560f79d37fb53d821b2f0b591a6ff260ebc3'/>
<id>9799560f79d37fb53d821b2f0b591a6ff260ebc3</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>make popen cancellation-safe</title>
<updated>2012-06-20T18:39:50+00:00</updated>
<author>
<name>Rich Felker</name>
<email>dalias@aerifal.cx</email>
</author>
<published>2012-06-20T18:39:50+00:00</published>
<link rel='alternate' type='text/html' href='http://git.musl-libc.org/cgit/musl/commit/?id=9c21f4342c787e04a9e31ad8a1d87a65c89968ca'/>
<id>9c21f4342c787e04a9e31ad8a1d87a65c89968ca</id>
<content type='text'>
close was the only cancellation point called from popen, but it left
popen with major resource leaks if any call to close got cancelled.
the easiest, cheapest fix is just to use a non-cancellable close
function.
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
close was the only cancellation point called from popen, but it left
popen with major resource leaks if any call to close got cancelled.
the easiest, cheapest fix is just to use a non-cancellable close
function.
</pre>
</div>
</content>
</entry>
</feed>
