Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion NOTICE.md
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@ We recommend to read their licenses, as their terms may differ from the terms de
| Project | Version | License | Path |
|---------------------------|---------|-----------|----------------------------------------------------------------------|
| Corrosion | 0.6 | MIT | ``libs/3rdparty/corrosion/LICENSE`` |
| ETL | 20.45.0 | MIT | ``libs/3rdparty/etl/LICENSE`` |
| ETL | 20.46.2 | MIT | ``libs/3rdparty/etl/LICENSE`` |
| LwIP | 2.2.1 | BSD-3 | ``libs/3rdparty/lwip/COPYING`` |
| googletest | 1.12.1 | BSD-3 | ``libs/3rdparty/googletest/LICENSE`` |
| printf | 5.2.0 | MIT | ``libs/3rdparty/printf/LICENSE`` |
Expand Down
10 changes: 5 additions & 5 deletions libs/3rdparty/etl/.riminfo
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
1341b964537bf7ba6967859b025eaa835b7b0ac4
79146667bcd1330cc569553915145e252844ff62

RIM Info file. You're welcome to read but don't write it.
Instead, use RIM commands to do the things you want to do.
BEWARE: Any manual modification will invalidate the file!

remote_url : https://github.com/ETLCPP/etl.git
revision_sha1 : e9c2577d8e98ca9dd3a9c211cd2bb9395890978e
target_revision: 20.45.0
revision_sha1 : 7bac1d02f7b4fe31592842ae824d6c1c6b0b16af
target_revision: 20.46.2
ignores :
checksum : ee0a6420a082179f035853d01cdda0c5d2e05a74
checksum : 9508f3b63edccc32fe247d8f6eeffa706fe15c30
subdir :

committer_date : 2026-01-11 21:06:22 +0100
committer_date : 2026-03-02 09:16:18 +0000

13 changes: 8 additions & 5 deletions libs/3rdparty/etl/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,16 @@
# How to contribute

If your are considering creating a pull request, please observe the following:
Thanks for considering a contribution! Here’s what you need to know before opening a pull request:

- If you are adding or modifying a feature, add *new* unit tests that test that feature.
- If you are fixing a bug, add a unit test that *fails* before the bug fix is implemented.
- Do not initiate a pull request until all of the units tests pass.
- Branches should be based on the branch `master`.
- Do not initiate a pull request until all of the units tests pass. See below for information on project files and test scripts.
- Branches should be based on the branch `master`. If `development` has pending updates, I’ll rebase the PR against it before pulling..

There is a project file for VS2022 for C++14, 17, 20, and bash scripts that run the tests for C++11, 14, 17, 20 under Linux with GCC and Clang.
There is a project file for VS2022 for C++14, 17, 20, 23, and bash scripts that run the tests for C++11, 14, 17, 20, 23 under Linux with GCC and Clang.
There are syntax-only check bash scripts that cover C++03, 11, 14, 17, 20, 23 under Linux with GCC and Clang.

If you are thinking of adding a new feature then raise this on the GitHub Issues page for discussion as the maintainers and user of the ETL may have questions or suggestions.
It is possible that the maintainer of the ETL or another contributor is already working on the same or a related feature.
It is possible that the maintainer of the ETL or another contributor is already working on the same or a related feature.

Take a look through our current issues and see if anything sparks your interest!
84 changes: 80 additions & 4 deletions libs/3rdparty/etl/README.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
Embedded Template Library (ETL)
-------------------------
# ![alt text](https://github.com/ETLCPP/etl/blob/master/images/etl64.png?raw=true) Embedded Template Library (ETL)

![GitHub release (latest by date)](https://img.shields.io/github/v/release/jwellbelove/etl)
[![Release date](https://img.shields.io/github/release-date/jwellbelove/etl?color=%231182c3)](https://img.shields.io/github/release-date/jwellbelove/etl?color=%231182c3)
Expand All @@ -10,7 +9,6 @@ Embedded Template Library (ETL)
![GitHub Repo stars](https://img.shields.io/github/stars/ETLCPP/etl?style=flat)

![CI](https://github.com/ETLCPP/etl/actions/workflows/msvc.yml/badge.svg?branch=master)
[![Build status](https://ci.appveyor.com/api/projects/status/b7jgecv7unqjw4u0/branch/master?svg=true)](https://ci.appveyor.com/project/jwellbelove/etl/branch/master)

![CI](https://github.com/ETLCPP/etl/actions/workflows/gcc-c++11.yml/badge.svg?branch=master)
![CI](https://github.com/ETLCPP/etl/actions/workflows/gcc-c++14.yml/badge.svg?branch=master)
Expand Down Expand Up @@ -50,7 +48,7 @@ Its design goals include:

- Offering APIs that closely resemble those of the STL, enabling familiar and consistent usage.

- Maintaining compatibility with C++98 while implementing many features introduced in later standards
- Maintaining compatibility with C++98 while implementing many features introduced in later standards
(C++11/14/17/20/23) where possible.

- Ensuring deterministic behavior, which is critical in real-time and resource-constrained environments.
Expand Down Expand Up @@ -184,6 +182,84 @@ add_executable(foo main.cpp)
target_link_libraries(foo PRIVATE etl::etl)
```

## Profile definition

When using ETL in a project, there is typically an `etl_profile.h` defined to
adjust ETL to the project needs. ETL will automatically find `etl_profile.h`
if it is available in the include path(s). If it's not available, ETL will
work with default values.

### Example

```
#ifndef __ETL_PROFILE_H__
#define __ETL_PROFILE_H__

#define ETL_TARGET_DEVICE_GENERIC
#define ETL_TARGET_OS_NONE

#define ETL_NO_STL

#endif
```

## Platform specific implementation

Although ETL is generally a self-contained header-only library, some interfaces need to be
implemented in every project or platform, at least if those interfaces are actually being
used, due to project specifics:

| ETL header | Platform specific API to be implemented | Needed when using |
|------------|-----------------------------------------|-------------------------------------|
| `chrono.h` | `etl_get_high_resolution_clock()` | `etl::high_resolution_clock::now()` |
| | `etl_get_system_clock()` | `etl::system_clock::now()` |
| | `etl_get_steady_clock()` | `etl::steady_clock::now()` |
| `print.h` | `etl_putchar()` | `etl::print()` |
| | | `etl::println()` |

### Example

```
#include <etl/chrono.h>
#include <etl/print.h>

extern "C"
{

etl::chrono::high_resolution_clock::rep etl_get_high_resolution_clock()
{
return etl::chrono::high_resolution_clock::rep(static_cast<int64_t>(getSystemTimeNs()));
}

etl::chrono::system_clock::rep etl_get_system_clock()
{
return etl::chrono::system_clock::rep(static_cast<int64_t>(getSystemTimeNs()));
}

etl::chrono::system_clock::rep etl_get_steady_clock()
{
return etl::chrono::system_clock::rep(static_cast<int64_t>(getSystemTimeNs()));
}

void etl_putchar(int c)
{
putByteToStdout(static_cast<uint8_t>(c));
}

}
```

The following default values apply if the respective macros are not defined
(e.g. in `etl_profile.h`):

| Macro | Default |
|-----------------------------------------------|----------------------------|
| `ETL_CHRONO_SYSTEM_CLOCK_DURATION` | `etl::chrono::nanoseconds` |
| `ETL_CHRONO_SYSTEM_CLOCK_IS_STEADY` | `true` |
| `ETL_CHRONO_HIGH_RESOLUTION_CLOCK_DURATION` | `etl::chrono::nanoseconds` |
| `ETL_CHRONO_HIGH_RESOLUTION_CLOCK_IS_STEADY` | `true` |
| `ETL_CHRONO_STEADY_CLOCK_DURATION` | `etl::chrono::nanoseconds` |

## Arduino library

The content of this repo is available as a library in the Arduino IDE (search for the "Embedded Template Library" in the IDE library manager). The Arduino library repository is available at ```https://github.com/ETLCPP/etl-arduino```, see there for more details.
2 changes: 1 addition & 1 deletion libs/3rdparty/etl/arduino/library-arduino.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "Embedded Template Library ETL",
"version": "20.45.0",
"version": "20.46.2",
"authors": {
"name": "John Wellbelove",
"email": "john.wellbelove@etlcpp.com"
Expand Down
2 changes: 1 addition & 1 deletion libs/3rdparty/etl/arduino/library-arduino.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
name=Embedded Template Library ETL
version=20.45.0
version=20.46.2
author= John Wellbelove <john.wellbelove@etlcpp.com>
maintainer=John Wellbelove <john.wellbelove@etlcpp.com>
license=MIT
Expand Down
Binary file added libs/3rdparty/etl/images/QR Github.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
4 changes: 3 additions & 1 deletion libs/3rdparty/etl/include/etl/algorithm.h
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@ namespace etl
{
while (first1 != last1)
{
iter_swap(first1, first2);
etl::iter_swap(first1, first2);
++first1;
++first2;
}
Expand Down Expand Up @@ -338,7 +338,9 @@ namespace etl
template <typename TIterator1, typename TIterator2>
ETL_CONSTEXPR20 TIterator2 move_backward(TIterator1 sb, TIterator1 se, TIterator2 de)
{
#include "etl/private/diagnostic_array_bounds_push.h"
return std::move_backward(sb, se, de);
#include "etl/private/diagnostic_pop.h"
}
#elif ETL_USING_CPP11
// For C++11
Expand Down
4 changes: 2 additions & 2 deletions libs/3rdparty/etl/include/etl/alignment.h
Original file line number Diff line number Diff line change
Expand Up @@ -367,7 +367,7 @@ namespace etl
//***************************************************************************
// Default constructor
//***************************************************************************
typed_storage() ETL_NOEXCEPT
ETL_CONSTEXPR typed_storage() ETL_NOEXCEPT
: valid(false)
{
}
Expand Down Expand Up @@ -567,7 +567,7 @@ namespace etl
//*******************************
union union_type
{
union_type() ETL_NOEXCEPT
ETL_CONSTEXPR union_type() ETL_NOEXCEPT
: dummy()
{
}
Expand Down
4 changes: 2 additions & 2 deletions libs/3rdparty/etl/include/etl/array.h
Original file line number Diff line number Diff line change
Expand Up @@ -1136,7 +1136,7 @@ namespace etl
///\return <b>true</b> if the arrays are equal, otherwise <b>false</b>
//*************************************************************************
template <typename T, size_t SIZE>
bool operator ==(const etl::array<T, SIZE>& lhs, const etl::array<T, SIZE>& rhs)
ETL_CONSTEXPR14 bool operator ==(const etl::array<T, SIZE>& lhs, const etl::array<T, SIZE>& rhs)
{
return etl::equal(lhs.cbegin(), lhs.cend(), rhs.cbegin());
}
Expand All @@ -1148,7 +1148,7 @@ namespace etl
///\return <b>true</b> if the arrays are not equal, otherwise <b>false</b>
//*************************************************************************
template <typename T, size_t SIZE>
bool operator !=(const etl::array<T, SIZE>& lhs, const etl::array<T, SIZE>& rhs)
ETL_CONSTEXPR14 bool operator !=(const etl::array<T, SIZE>& lhs, const etl::array<T, SIZE>& rhs)
{
return !(lhs == rhs);
}
Expand Down
Loading
Loading