@@ -238,12 +238,9 @@ and their directly relevant code sequences have been removed.
238
238
Simple mechanisms such as those found in ` <cassert> `
239
239
and ` <cerrno> ` , however, remain mostly available.
240
240
241
- - ** ` <atomic> ` :** Even though the intended compilers are built with no threading,
242
- the ` <atomic> ` library and its use as a dependency has
243
- been removed. This means that atomic functions and
244
- atomic store/load functions are not available. So if you are sharing
245
- data in an operating system or mixed program/interrupt mode,
246
- self-written atomic primitives are needed.
241
+ - ** ` <atomic> ` :** The ` <atomic> ` library is being handled
242
+ specifically in the draft of
243
+ [ avr-libstdcpp/pull/36] ( https://github.com/modm-io/avr-libstdcpp/pull/36 ) .
247
244
248
245
- ** ` <random> ` :** There is no source of entropy whatsoever on these platforms
249
246
in their standard configuration. So ` std::random_device `
@@ -280,12 +277,6 @@ The widths depend on the compiler command line options `-mdouble=32`
280
277
` std::exp() ` and the like will, therefore, have input and output
281
278
widths according to these command line options.
282
279
283
- - ** ` <cmath> ` :** In compiler versions of ` avr-gcc ` 11 and higher,
284
- slight discrepancies in the signatures of functions like
285
- ` isnan() ` , ` isinf() ` , etc. seem to be in the process of being corrected.
286
- Future patches of math function signatures in ` <cmath> `
287
- may be needed as the ` <math.h> ` header continues to evolve.
288
-
289
280
## C++20 ` constexpr ` support
290
281
291
282
The following is a rather advanced, highly useful topic.
@@ -337,18 +328,24 @@ int main()
337
328
```
338
329
339
330
See also the [numeric.cpp](./examples/numeric/numeric.cpp) file
340
- in the [. /examples/numeric](./examples/numeric) directory.
331
+ in the [/examples/numeric](./examples/numeric) directory.
341
332
342
333
## Additional details
343
334
344
335
`avr-libstdcpp` is intended for a modern `avr-gcc`
345
- such as the 11.2 port available in the [modm-io project](https://github.com/modm-io/avr-gcc)
346
- repository. Tests show usability also for `avr-gcc` 10 through 13 (and beyond).
336
+ such as the port available in the [modm-io project](https://github.com/modm-io/avr-gcc)
337
+ repository. Tests show usability for `avr-gcc` 7 through 15.
338
+
339
+ This library has been checked for compatibility on `avr-gcc`
340
+ with language standards C++11,14,17,20,23 and 2c.
347
341
348
- Using the port way back to `avr-gcc` 5, however, does not work
342
+ Using the port way back to `avr-gcc` 5 does not work
349
343
at the moment with today's form of the checked-in library,
350
- as the older compiler's lexical parser is not capable of
351
- properly handling some of the library's template code.
344
+ and `avr-gcc` 7 or higher is required.
345
+ This is because the very old compiler lexical parsers are not capable
346
+ of properly handling some of the library's template code.
347
+ See also [avr-libstdcpp/issues/15](https://github.com/modm-io/avr-libstdcpp/issues/15)
348
+ which is closed and includes justification for its closure.
352
349
353
350
## Licensing
354
351
@@ -357,6 +354,6 @@ and the library include files in [`include/` and its subfolders](./include/)
357
354
(with two exceptions for the sources, as mentioned below)
358
355
are licensed under [GNU General Public License Version 3](./COPYING3) or higher.
359
356
360
- The [example codes](./examples/) and two library source files
357
+ All of the [example codes](./examples/) and also two library source files
361
358
(namely `functexcept.cc` and `math.cc` in [`src/`](./src/))
362
359
are subject to the terms of the [Mozilla Public License Version 2.0](./COPYING.MPLv2).
0 commit comments