<feed xmlns='http://www.w3.org/2005/Atom'>
<title>llvm-project.git/libc/src/stdio, branch users/nico/python-2</title>
<subtitle>Unnamed repository; edit this file 'description' to name the repository.
</subtitle>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/'/>
<entry>
<title>[libc] Change default behaviour of baremetal/printf to use stdout (#143703)</title>
<updated>2025-06-16T19:22:58+00:00</updated>
<author>
<name>William Huynh</name>
<email>William.Huynh@arm.com</email>
</author>
<published>2025-06-16T19:22:58+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=402c376daa659c0c3a477ad038a415079ffa0a48'/>
<id>402c376daa659c0c3a477ad038a415079ffa0a48</id>
<content type='text'>
In #94078, `write_to_stdout` had not been fully implemented. However,
now that it has been implemented, to conform with the C standard
(7.23.6.3. The printf function, specifically point 2), we use `stdout`.
This issue is tracked in #94685.

- Also prefer `static constexpr`
- Made it explicit that we are writing to `stdout`</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
In #94078, `write_to_stdout` had not been fully implemented. However,
now that it has been implemented, to conform with the C standard
(7.23.6.3. The printf function, specifically point 2), we use `stdout`.
This issue is tracked in #94685.

- Also prefer `static constexpr`
- Made it explicit that we are writing to `stdout`</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Implement perror (#143624)</title>
<updated>2025-06-12T17:45:47+00:00</updated>
<author>
<name>Michael Jones</name>
<email>michaelrj@google.com</email>
</author>
<published>2025-06-12T17:45:47+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5a6a4b6ba6945363bf366a885103a4adca11b5ef'/>
<id>5a6a4b6ba6945363bf366a885103a4adca11b5ef</id>
<content type='text'>
The perror function writes an error message directly to stderr. This
patch adds an implementation, tests, and header generation details.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The perror function writes an error message directly to stderr. This
patch adds an implementation, tests, and header generation details.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Move libc_errno.h to libc/src/__support and make LIBC_ERRNO_MODE_SYSTEM to be header-only. (#143187)</title>
<updated>2025-06-11T20:25:27+00:00</updated>
<author>
<name>lntue</name>
<email>lntue@google.com</email>
</author>
<published>2025-06-11T20:25:27+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d87eea35fac5a34a841c637db8908128409a184e'/>
<id>d87eea35fac5a34a841c637db8908128409a184e</id>
<content type='text'>
This is the first step in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This is the first step in preparation for:
https://discourse.llvm.org/t/rfc-make-clang-builtin-math-functions-constexpr-with-llvm-libc-to-support-c-23-constexpr-math-functions/86450</pre>
</div>
</content>
</entry>
<entry>
<title>[libc][GPU] clean up includes (#143203)</title>
<updated>2025-06-06T21:12:07+00:00</updated>
<author>
<name>Michael Jones</name>
<email>michaelrj@google.com</email>
</author>
<published>2025-06-06T21:12:07+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=3695d6cdf98c252af4a747af8e247b48e046721a'/>
<id>3695d6cdf98c252af4a747af8e247b48e046721a</id>
<content type='text'>
The GPU stdio functions were depending on indirect inclusion for some of
their dependencies. This patch should fix all of that.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
The GPU stdio functions were depending on indirect inclusion for some of
their dependencies. This patch should fix all of that.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Fix missing includes after transitive dependency changed</title>
<updated>2025-06-06T19:34:27+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-06-06T19:34:09+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=5823e927494f56a024b9ede29cc70498ce8b2415'/>
<id>5823e927494f56a024b9ede29cc70498ce8b2415</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Fix typo in uint128 type for PPC printf handling (#138157)</title>
<updated>2025-05-01T15:52:41+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-05-01T15:52:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=927cdd2c73590ef6475f7e00ce79078d6e8323bd'/>
<id>927cdd2c73590ef6475f7e00ce79078d6e8323bd</id>
<content type='text'>
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Special case PPC double double for print (#136614)</title>
<updated>2025-04-23T15:36:14+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-04-23T15:36:14+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=cc6def4b7521676fd339936d027e48928e0ba398'/>
<id>cc6def4b7521676fd339936d027e48928e0ba398</id>
<content type='text'>
Summary:
We use the storage class for `long double` in the printing
implementations. We don't fully support the PPC double double type,
which that maps to, but we can stub out just the support needed for the
print interface to works. This required using the internal interface for
storage type, but it should be good enough.

Fixes: https://github.com/llvm/llvm-project/issues/136596</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
We use the storage class for `long double` in the printing
implementations. We don't fully support the PPC double double type,
which that maps to, but we can stub out just the support needed for the
print interface to works. This required using the internal interface for
storage type, but it should be good enough.

Fixes: https://github.com/llvm/llvm-project/issues/136596</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Fix incorrect unsigned comparison (#135595)</title>
<updated>2025-04-17T01:33:48+00:00</updated>
<author>
<name>Wu Yingcong</name>
<email>yingcong.wu@intel.com</email>
</author>
<published>2025-04-17T01:33:48+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=6b8d072cfd41f647f2c241f0a1a0843a279d049b'/>
<id>6b8d072cfd41f647f2c241f0a1a0843a279d049b</id>
<content type='text'>
There is a problem with such unsigned comparison pattern:
```
if(unsigned_a - unsigned_b &gt; 0) { /* only NOT go here when unsigned_a==unsigned_b */ }
```
When `unsigned_a` &lt; `unsigned_b`, the result will still be `&gt;0` due to
underflow.
This patch fixes two of the occurrences I found.
Also remove two redundant `if` where its condition is guaranteed by
outer `if`.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
There is a problem with such unsigned comparison pattern:
```
if(unsigned_a - unsigned_b &gt; 0) { /* only NOT go here when unsigned_a==unsigned_b */ }
```
When `unsigned_a` &lt; `unsigned_b`, the result will still be `&gt;0` due to
underflow.
This patch fixes two of the occurrences I found.
Also remove two redundant `if` where its condition is guaranteed by
outer `if`.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Fix unresolved stdio symbols (#132403)</title>
<updated>2025-03-21T15:06:57+00:00</updated>
<author>
<name>Joseph Huber</name>
<email>huberjn@outlook.com</email>
</author>
<published>2025-03-21T15:06:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=d4ce57cb98dbe753d246ae5395cc5ac6da8afa88'/>
<id>d4ce57cb98dbe753d246ae5395cc5ac6da8afa88</id>
<content type='text'>
Summary:
We have 'generic' implementations for some functions stdio functions.
The current logic mandates that all generic functions are implemented by
the target. This obviously isn't true and this caused the GPU builds to
fail once baremtal added some extra ones.

This patch changes the logic to always include the generic sources only
if they aren't already defined. This can probably be cleaned up and
formalized later, since this pattern is copied in many places, but for
now this fixes the failing GPU build bots.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Summary:
We have 'generic' implementations for some functions stdio functions.
The current logic mandates that all generic functions are implemented by
the target. This obviously isn't true and this caused the GPU builds to
fail once baremtal added some extra ones.

This patch changes the logic to always include the generic sources only
if they aren't already defined. This can probably be cleaned up and
formalized later, since this pattern is copied in many places, but for
now this fixes the failing GPU build bots.</pre>
</div>
</content>
</entry>
<entry>
<title>[libc] Support for scanf on baremetal (#131043)</title>
<updated>2025-03-20T22:54:38+00:00</updated>
<author>
<name>Petr Hosek</name>
<email>phosek@google.com</email>
</author>
<published>2025-03-20T22:54:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.belthelziquor.com/llvm-project.git/commit/?id=afae7c91e19f0e9d6f1e03ebada64d740894abc7'/>
<id>afae7c91e19f0e9d6f1e03ebada64d740894abc7</id>
<content type='text'>
This uses the templatized scanf Reader interface introduced in #131037.</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This uses the templatized scanf Reader interface introduced in #131037.</pre>
</div>
</content>
</entry>
</feed>
