1372 Commits

Author SHA1 Message Date
John Wellbelove
daa42f2d4b Endianness for IAR compiler 2022-10-19 12:20:42 +01:00
David Hebbeker
804a401a6e Automatically detect native endianness for IAR compiler platform. (#612)
* Auto detect native endianness for IAR compiler platform.

References:

- [IAR C/C++ Development Guide Compiling and Linking for Arm Limited’s **Arm**® Cores](https://wwwfiles.iar.com/arm/webic/doc/ewarm_developmentguide.enu.pdf)
- [IAR C/C++ Compiler User Guide for Microchip Technology’s **AVR** Microcontroller Family](https://wwwfiles.iar.com/AVR/webic/doc/EWAVR_CompilerGuide.pdf)

* Fix spelling mistake.
2022-10-19 12:20:42 +01:00
David Hebbeker
a4a096a54d Replace ETL_COMPILER_ICCAVR by ETL_COMPILER_IAR. (#602)
The current definition mechanism for ETL_COMPILER_ICCAVR does not work. Both IAR compilers, for ARM and AVR define `__IAR_SYSTEMS_ICC__`. Thus `ETL_COMPILER_TYPE_DETECTED` will be defined in line before ETL_COMPILER_ICCAVR is defined. This switch will never be entered.

Currently I see no reason for differentiating both compilers (`__ICCARM__` and `__ICCAVR__`). The condition for the IAR compiler platform (`__IAR_SYSTEMS_ICC__`) is sufficient (combined with <C++11 detection).

At the moment ETL_COMPILER_ICCAVR is used as a switch condition for using `#pragma push_macro`. But actually IAR ARM and IAR AVR have no such macro defined. ETL_COMPILER_IAR is defined for both compilers. Thus the switch condition is replaced with ETL_COMPILER_IAR.
2022-10-19 12:20:42 +01:00
David Hebbeker
aa2d249fdc Move __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS before #include <stdint.h>. (#601)
Macros must be defined before first include of stdint.h. Else they have no effect.
2022-10-19 12:20:42 +01:00
jeremyerdmann
93d9df9c9b
Automatically set ETL_HAS_ATOMIC if __STDC_NO_ATOMICS__ defined by compiler. (#624)
Reference: https://en.cppreference.com/w/c/atomic

Co-authored-by: Jeremy Erdmann <jeremy.erdmann@millerwelds.com>
2022-10-18 18:30:48 +01:00
John Wellbelove
e99a1a5845 Attempt to fix clang CI error 2022-09-11 19:50:09 +01:00
John Wellbelove
f8d9eb0f46 Attempt to fix clang CI error 2022-09-11 18:02:27 +01:00
John Wellbelove
0bfe4baa63 Attempt to fix clang CI error 2022-09-11 16:04:15 +01:00
John Wellbelove
23be4cfd02 Attempt to fix clang CI error 2022-09-11 15:41:51 +01:00
John Wellbelove
38458a71e3 Attempt to fix clang CI error 2022-09-11 15:29:51 +01:00
John Wellbelove
bc48b8ac4e Deleted copy constructors for etl::circular_buffer_ext, etl_indirect_vector and etl::vector to eliminate dangling pointers. 2022-09-11 12:04:28 +01:00
John Wellbelove
f952057508 Added ETL_ENUM_CLASS and ETL_ENUM_CLASS_TYPE macros 2022-09-11 00:59:34 +01:00
John Wellbelove
c953100dd0 Improved etl::span/std::span compatibility 2022-09-11 00:58:22 +01:00
John Wellbelove
7b733f73ad Minor updates to bitset
Added bitset_ext tests to cmake
2022-09-11 00:57:00 +01:00
John Wellbelove
e78e7b474a Added etl:lsb_mask, etl::make_lsb_mask, etl::msb_mask and etl::make_msb_mask 2022-09-11 00:55:55 +01:00
John Wellbelove
1e7b5887f5 Minor changes 2022-09-09 19:06:23 +01:00
John Wellbelove
435cec705f Modified order of standard includes 2022-09-09 14:20:24 +01:00
John Wellbelove
737b0bf6f7 #591 Automatically define __STDC_LIMIT_MACROS and __STDC_CONSTANT_MACROS 2022-09-08 23:00:48 +01:00
John Wellbelove
2d0d744c74 Updated etl::bitset and added etl::bitset_ext 2022-09-08 20:11:20 +01:00
John Wellbelove
7949c09b93 Merge branches 'development' and 'development' of https://github.com/ETLCPP/etl into development 2022-09-08 20:09:04 +01:00
David Hebbeker
1e592b5921
Do not use min/max workaround for ICCAVR. (#595)
IAR C/C++ Compiler V6.70.1.929 for Atmel AVR does not support push_macro and does neither define macros for min or max.
2022-09-08 16:29:02 +01:00
John Wellbelove
d2e8e0aa71 #594 Use a different workaround for problems with IARCC. 2022-09-07 12:38:30 +01:00
David Hebbeker
63e31068b7
Apply workaround for __has_include(<...>) and ICCAVR. (#593)
ICCAVR: IAR C/C++ Compiler V6.70.1.929 for Atmel AVR

There seems to be an issue with the ICCAVR compiler and `__has_include(<...>)` syntax:

```
Error[Pe008]: missing closing quote etl\include\etl\placement_new.h 48
Tool Internal Error:
Internal Error: [Front end]: assertion failed at: "..\..\Translator\compiler_core\src\parser\edg\literals.c", line 1159
Internal Error: [Front end]: assertion failed at: "..\..\Translator\compiler_core\src\parser\edg\literals.c", line 1159 etl\include\etl\placement_new.h 48
Error while running C/C++ Compiler
```

Which is weird, as I wonder why `__has_include` is defined in first place. The compiler is supposed to support some dialect of C++98.

Anyhow, `__has_include()` seems to work in general with ICCAVR. And with this change the code compiles well.
2022-09-07 11:15:59 +01:00
John Wellbelove
4b0047a3bb Updated release information 2022-09-07 11:13:04 +01:00
John Wellbelove
e8cc472ac9 Finished etl::circular_iterator an circular extensions to etl::span 2022-09-06 19:43:01 +01:00
John Wellbelove
dc0ab72e09 circular_span first draft 2022-09-06 10:59:49 +01:00
John Wellbelove
25adb3c68c Almost finalised circular_iterator and tests 2022-09-04 23:44:51 +01:00
John Wellbelove
2c0f56841e Almost finalised circular_iterator and tests 2022-09-04 21:05:22 +01:00
John Wellbelove
13a1ce6f8e Merge branch 'feature/circular_iterator' of https://github.com/ETLCPP/etl into feature/circular_iterator 2022-09-03 13:24:46 +01:00
John Wellbelove
15fd907549 Merge branch 'hotfix/#582-unordered_set-equality-comparison-fails-when-hash-collisions-occur' into development 2022-09-03 11:57:11 +01:00
John Wellbelove
eceaa23f47 #584 unordered_set::const_iterator has incorrect value_type 2022-09-03 11:56:24 +01:00
John Wellbelove
7c5a6e49a1 Fixed unordered container equality tests to match STL 2022-09-02 20:40:17 +01:00
John Wellbelove
0f2b9bb019 Fix non-C++03 code syntax 2022-09-02 15:56:39 +01:00
John Wellbelove
c4b67a2708 Merge branch 'development' of https://github.com/ETLCPP/etl into development 2022-09-02 15:04:23 +01:00
Ilya
818908fb6e
Add minmax_push.h/minmax_pop.h includes (#589) 2022-09-02 15:04:01 +01:00
John Wellbelove
b13442823a Merge branch 'hotfix/#585-etl-result-void-being-unusable-due-to-deleted-default-constructor' into development 2022-09-02 14:06:15 +01:00
John Wellbelove
245fbdeea9 Fixes for etl::result<void, TError> 2022-09-02 14:05:46 +01:00
John Wellbelove
201c1fb918 Merge branch 'hotfix/#583-permit-non-default-constructable-hashes-and-key-equals-in-unordered_map' into development 2022-09-02 13:32:23 +01:00
John Wellbelove
4f5847e189 Updates for unordered maps and sets for an API that better matches the STL 2022-09-02 13:32:00 +01:00
Jesse Li
aab900f002
Permit non-default-constructable hashes and key-equals (#583)
Co-authored-by: Jesse <jli@planarmotor.com>
2022-09-01 19:41:09 +01:00
John Wellbelove
b00929ef09 Merge branch 'feature/#581-hash-functions-for-enum' into development 2022-09-01 19:26:35 +01:00
John Wellbelove
a48aa15b60 Formatting 2022-09-01 19:16:24 +01:00
Jesse Li
a38a8fc33c
#227 Hash function for enums (#581)
* #227 Hash function for enums

* Move enum hash definition to bottom, so gcc doesn't complain about it

* Explicitly specify etl hash

Co-authored-by: Jesse <jli@planarmotor.com>
2022-09-01 19:10:35 +01:00
John Wellbelove
f0862971c1 Merge branch 'hotfix/#585-etl-result-void-being-unusable-due-to-deleted-default-constructor' into development 2022-09-01 18:56:46 +01:00
jeremyerdmann
7d7b7633bd
Fixed IAR build warnings in message_packet (#587)
IAR was tripping up on the syntax, generating warnings.  This addresses that per the discussion in #586.

Co-authored-by: Jeremy Erdmann <jeremy.erdmann@millerwelds.com>
2022-09-01 18:52:34 +01:00
Eyal Abramovitch
927491c763
Fix etl::result<void> being unusable due to deleted default constructor (#585) 2022-08-31 12:43:56 +01:00
John Wellbelove
64fa058f6b Work in progress 2022-08-26 09:49:13 +01:00
John Wellbelove
5aa14f85aa Revert "Work in progress"
This reverts commit b3a77d6f83088a01969a3164373166d14ce36639.
2022-08-26 09:47:05 +01:00
John Wellbelove
b3a77d6f83 Work in progress 2022-08-26 09:40:54 +01:00
John Wellbelove
868329f9e4 Remove redundant include 2022-08-24 11:27:48 +01:00