Skip to content

Commit

Permalink
Feature/hierarchical state machine 2 (#390)
Browse files Browse the repository at this point in the history
* Refactored reference_counted_message now contains owner reference

* Added fixed_sized_memory_block_pool and restored imemory_block_pool interface

* message router changes

* Fixed LGT8F macro name clash

* Updated generators

* Updated deque from development

* get_memory_block_size() const

* Updates to pools and memory allocators

* LLVM changes

* Ongoing addition of unit tests

* Added final unit tests

* Added static asserts

* Renamed internal structure

* Minor updates.

* Added virtual function 'void on_task_added()' that is called when a task is added to a shceduler.

* Added virtual function 'void on_task_added()' that is called when a task is added to a scheduler.

* Update version number

* Removed pool_message and non_pool_message

* Added shared_message example

* Added shared_message receive override to messge_bus

* Added shared_message example

* Added memory allocator successor

* Added reference_counted_message specialisation for void counter

* Added lock/unlock interface

* Added lock/unlock example

* Added constructors with deleters for unique_ptr.

* Fixed typos in rvalue constructor

* Added ilockable interface class

* Fixed VS2019 warning for etl::deque iterators.

* Added nullptr check to unique_ptr destructor

* Added nullptr check to unique_ptr destructor.

* Added nullptr check to unique_ptr destructor.

* Added ilockable interface & queue_lockable

* Added nullptr check to unique_ptr destructor.

* Typo in unique_ptr

* Refactored queues

* Added virtual destructor to observer.

Changed C++11 destructors to '= default'.

* Updated version and release notes.

* Added more CMakeLists.txt files for examples

* Added enable_if for container iterator costructors, to exclude integrals from consideration

* Squashed commit of the following:

commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:32:35 2021 +0000

    Fixed rollover error for etl::queue_spsc_atomic

    Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
    Updated QueuedMessageRouter example

* Squashed commit of the following:

commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:34:49 2021 +0000

    Squashed commit of the following:

    commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:32:35 2021 +0000

        Fixed rollover error for etl::queue_spsc_atomic

        Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
        Updated QueuedMessageRouter example

* Squashed commit of the following:

commit 6107c4538be149137209d85e5f41031291bc7150
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 12:15:31 2021 +0000

    Added move constructor and move assignment to etl::shared_message

commit c9a5716012db9b614ea67660ebf64dcb790ce571
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:36:29 2021 +0000

    Squashed commit of the following:

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example

* Squashed commit of the following:

commit 007b56d03513887636b84fc246e57d6c4f8b777e
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 18:09:51 2021 +0000

    Squashed commit of the following:

    commit 6107c4538be149137209d85e5f41031291bc7150
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 12:15:31 2021 +0000

        Added move constructor and move assignment to etl::shared_message

    commit c9a5716012db9b614ea67660ebf64dcb790ce571
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:36:29 2021 +0000

        Squashed commit of the following:

        commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:34:49 2021 +0000

            Squashed commit of the following:

            commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:32:35 2021 +0000

                Fixed rollover error for etl::queue_spsc_atomic

                Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                Updated QueuedMessageRouter example

commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:34:49 2021 +0000

    Squashed commit of the following:

    commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:32:35 2021 +0000

        Fixed rollover error for etl::queue_spsc_atomic

        Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
        Updated QueuedMessageRouter example

* Squashed commit of the following:

commit 04ba91bcccc8e12867962bc3746665f430672a23
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sat Feb 6 10:43:34 2021 +0000

    Updated shared message unit test

commit fababc5cf748073464b4294a50c201cb0aa4fa13
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Fri Feb 5 09:41:52 2021 +0000

    Updated FSM generator

commit ff287bcf0a833ca70933354b42b8b036b422ff81
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Fri Feb 5 09:35:56 2021 +0000

    Updated message router generator

commit 52724e1e62b55dad81e2f80dd656026d828b3214
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Thu Feb 4 13:06:50 2021 +0000

    Updated unit tests

commit 0d89105262aa050577ccc17ddc6eece9f4fc5d18
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 20:09:35 2021 +0000

    Interim commit

commit ce8385ff24826103c7a55267ccf3f8a31f517e0b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 18:13:29 2021 +0000

    Squashed commit of the following:

    commit 007b56d03513887636b84fc246e57d6c4f8b777e
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 18:09:51 2021 +0000

        Squashed commit of the following:

        commit 6107c4538be149137209d85e5f41031291bc7150
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Tue Feb 2 12:15:31 2021 +0000

            Added move constructor and move assignment to etl::shared_message

        commit c9a5716012db9b614ea67660ebf64dcb790ce571
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:36:29 2021 +0000

            Squashed commit of the following:

            commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:34:49 2021 +0000

                Squashed commit of the following:

                commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
                Author: John Wellbelove <github@wellbelove.co.uk>
                Date:   Sun Jan 31 12:32:35 2021 +0000

                    Fixed rollover error for etl::queue_spsc_atomic

                    Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                    Updated QueuedMessageRouter example

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example

commit c9a5716012db9b614ea67660ebf64dcb790ce571
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:36:29 2021 +0000

    Squashed commit of the following:

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example

* Squashed commit of the following:

commit 97a6e6a03557359442123d439cef9bdf6dea2d1b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Feb 7 11:02:49 2021 +0000

    Squashed commit of the following:

    commit 04ba91bcccc8e12867962bc3746665f430672a23
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sat Feb 6 10:43:34 2021 +0000

        Updated shared message unit test

    commit fababc5cf748073464b4294a50c201cb0aa4fa13
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Fri Feb 5 09:41:52 2021 +0000

        Updated FSM generator

    commit ff287bcf0a833ca70933354b42b8b036b422ff81
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Fri Feb 5 09:35:56 2021 +0000

        Updated message router generator

    commit 52724e1e62b55dad81e2f80dd656026d828b3214
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Thu Feb 4 13:06:50 2021 +0000

        Updated unit tests

    commit 0d89105262aa050577ccc17ddc6eece9f4fc5d18
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 20:09:35 2021 +0000

        Interim commit

    commit ce8385ff24826103c7a55267ccf3f8a31f517e0b
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 18:13:29 2021 +0000

        Squashed commit of the following:

        commit 007b56d03513887636b84fc246e57d6c4f8b777e
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Tue Feb 2 18:09:51 2021 +0000

            Squashed commit of the following:

            commit 6107c4538be149137209d85e5f41031291bc7150
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Tue Feb 2 12:15:31 2021 +0000

                Added move constructor and move assignment to etl::shared_message

            commit c9a5716012db9b614ea67660ebf64dcb790ce571
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:36:29 2021 +0000

                Squashed commit of the following:

                commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
                Author: John Wellbelove <github@wellbelove.co.uk>
                Date:   Sun Jan 31 12:34:49 2021 +0000

                    Squashed commit of the following:

                    commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
                    Author: John Wellbelove <github@wellbelove.co.uk>
                    Date:   Sun Jan 31 12:32:35 2021 +0000

                        Fixed rollover error for etl::queue_spsc_atomic

                        Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                        Updated QueuedMessageRouter example

        commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:34:49 2021 +0000

            Squashed commit of the following:

            commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:32:35 2021 +0000

                Fixed rollover error for etl::queue_spsc_atomic

                Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                Updated QueuedMessageRouter example

    commit c9a5716012db9b614ea67660ebf64dcb790ce571
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:36:29 2021 +0000

        Squashed commit of the following:

        commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:34:49 2021 +0000

            Squashed commit of the following:

            commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:32:35 2021 +0000

                Fixed rollover error for etl::queue_spsc_atomic

                Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                Updated QueuedMessageRouter example

commit 007b56d03513887636b84fc246e57d6c4f8b777e
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 18:09:51 2021 +0000

    Squashed commit of the following:

    commit 6107c4538be149137209d85e5f41031291bc7150
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 12:15:31 2021 +0000

        Added move constructor and move assignment to etl::shared_message

    commit c9a5716012db9b614ea67660ebf64dcb790ce571
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:36:29 2021 +0000

        Squashed commit of the following:

        commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:34:49 2021 +0000

            Squashed commit of the following:

            commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:32:35 2021 +0000

                Fixed rollover error for etl::queue_spsc_atomic

                Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                Updated QueuedMessageRouter example

commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:34:49 2021 +0000

    Squashed commit of the following:

    commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:32:35 2021 +0000

        Fixed rollover error for etl::queue_spsc_atomic

        Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
        Updated QueuedMessageRouter example

* Changed template aliases so they are available for C++11 rather than C++14.

* Changed template aliases so they are available for C++11 rather than C++14.

* Allow default constructed messages for shared messages

* Updated version numbers

* Modified reference_counted_message_pool::allocate() return type

* Modified reference_counted_message_pool::allocate() return type

* Added non-const get_message() member funtions in shared message framework.

* Added update_size() to string API to fix string lengths after insertion of characters by C code.

* Interface for C string handling.

* Fixed indexing error in find_next for etl::bitset.

Added some enum tests for type_traits

* Updated version

* fix bug in ibitset find_next method (#338)

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>

* Merge branch 'hotfix/bitset-iteration-error' into development

* Merge branch 'hotfix/Chiraffollo-fix-find_next' into development

* Updated version

* Fixed indexing error in find_next for etl::bitset.

Added some enum tests for type_traits

* Updated version

* Merge branch 'hotfix/bitset-iteration-error' into development

* fix bug in ibitset find_next method (#338)

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>

* Merge branch 'hotfix/Chiraffollo-fix-find_next' into development

* Updated version

* Added data_end() and renamed trim() to trim_to_terminator()

* Added ETL_CONSTANT to numeric_limits member functions.

* Added uninitialized_resize()

* Updated version numbers

* Added uninitialized_resize() tests to external buffer containers

* Updated example for shared_message

* Updates to etl::shared_message example application.

* Added specialisation of etl::state_chart that allows a parameter to be passed to the event handler.

* Export headers as system includes (#340)

Gcc doesn't apply warning to system includes paths. This change
allows a project to use high warning levels without getting swamped by ETL
issues.

* Fix extent type conversion warning (#339)

* Issue #339 - Fix extent type conversion warning

* Merge branch 'feature/state-chart-to-have-optional-data-parameter' into development

* Minor updates to state chart

* Minor updates to state chart

* Fix extent error in clang and gcc

* Fix extent error in clang and gcc

* Initial code

* Fix C++14 only type aliases for STL

* Fix C++14 only type aliases for STL

* Fix C++14 only type aliases for STL

* Fix C++14 only type aliases for STL

* Abstracted unit test framework header

* Initial commit

* Added message_router_registry

* Added message_router_registry

* Added iterators

* Added iterators

* Changed to using etl::flat_multimap

* Updates to message_router_registry

* Remove executable permission on C++ source files (#341)

* Updated * & -> operators.

* Partial fix to compiling with C++98/03 (#342)

* Updated version numbers

* Fix default function templates for C++03

* Updated file id macros

* Added ETL_CONSTEXPR to etl::array

* Remove unnecessary template keyword to destroy() call.

* Remove unnecessary template keyword to destroy() call.

* Fix default function templates for C++03

* Correct use of ETL_NULLPTR instead for keyword nulllptr (#346)

Gives problem in C++98/03 mode.

* Remove etl/ prefix in state_chart.h (#347)

It's the only file to include internal header files with "etl/... .h".

* Add atomic bool to gcc clang implementations

* Add free-standing sanity tests for C++03/11/14/17 (#351)

* Add ETL_CONSTEXPR for state_chart, transision and state constructors.

* Updated versions

* Added ETL_CONSTEXPR

* Added ETL_CONSTEXPR

* Updated version numbers

* Updated version numbers

* Add buffer descriptors

* Issue 297

* Updated version numbers

* Added extra std/etl conversions

* Updated strings

Re-introduced case utilities
Fixed make_string for empty strings

* make_string_view + fix constexpr in flags.h

* Added etl::buffer_descriptors.

Added std/etl pair conversions.
Added etl::make_string_view.
Resolved issue with zero length literals for etl::make_string
Resolved etl::flags constexpr issues.
Added atomics for clang.
Resolved type_traits issues for GCC < v5

* Added etl::buffer_descriptors.

Added std/etl pair conversions.
Added etl::make_string_view.
Resolved issue with zero length literals for etl::make_string
Resolved etl::flags constexpr issues.
Added atomics for clang.
Resolved type_traits issues for GCC < v5

* Fixed warnings

* Disabled ASAN option in Visual Studio project.

* Fix make_string for zero length literals

Remove redundant test support code

* Updated notes

* Adding Tests for a fractional -1.0 < x < 0, fixing missing sign for integral parts equals to zero 0 (#306)

Co-authored-by: Heinz-Peter Liechtenecker <h.liechtenecker@fh-kaernten.at>

* #306-bugfix-to-string-formatting

* Updated version numbers

* Update setup-msbuild to v1.0.2

Updates Actions core toolkit to fix vulnerability on environment/path variable setting.

* circular_buffer_ext

* forward_list_ext

* list_ext

* indirect_vector_ext

* string_ext

* vector_ext

* Updated .leu

* Merge remote-tracking branch 'origin/feature/no-huge-value' into development

* Remove VS2017 project

* Refactor of etl::buffer_descriptors interface

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* clang.yml hack for testing

* clang hack for testing

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Refactor buffer_descriptors test

* Fixed non-initialisation of in_use flag.

* Fixed non-initialisation of in_use flag.

* Squashed commit of the following:

commit dceb56dd1a19be6fe9b991bb50e08902eefe36a8
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 19:27:18 2020 +0000

    Fixed non-initialisation of in_use flag.

commit c7ee1d6574ca5d95869152c5f8e4e6d02a7fa6bc
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 19:20:24 2020 +0000

    Fixed non-initialisation of in_use flag.

commit 36cbf21cd1b67a28255582cfb4a188a601631ab2
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:52:53 2020 +0000

    Refactor buffer_descriptors test

commit 49c60add63153bf53f400a891d8c4fb880cacda8
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:44:42 2020 +0000

    Refactor buffer_descriptors test

commit 7bda7678311bf2eb497483f3ef27c3af9211680b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:29:02 2020 +0000

    Refactor buffer_descriptors test

commit 7a68c932a7df05f66690fa63e67365cf4b0619e8
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:14:30 2020 +0000

    Refactor buffer_descriptors test

commit a9b25ac67d175f58751a2eb819f0e5822e8f0cf9
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:08:21 2020 +0000

    Refactor buffer_descriptors test

commit 0c721c0466733751708fcbd995ce0bc1d7c0a932
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:58:22 2020 +0000

    Refactor buffer_descriptors test

commit 4b2dd2fce22cd0a4846b95695fbfd812e0823540
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:47:43 2020 +0000

    Refactor buffer_descriptors test

commit 80d5776c409b416377269d543bd539bdad83dc86
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:32:27 2020 +0000

    Refactor buffer_descriptors test

commit 3564ac5b7ef89c41b240d9f54fce36042408daa0
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:17:50 2020 +0000

    Refactor buffer_descriptors test

commit 297ef42c60e4228bfbcb2adcddeb6b8a617c4113
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:08:45 2020 +0000

    Refactor buffer_descriptors test

commit 658d592c96eb7eaf1afb5d09fef38e293ea6f79b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:58:52 2020 +0000

    Refactor buffer_descriptors test

commit e97d8f90d5527349324ea84fd578c1d879d7a5a4
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:48:52 2020 +0000

    Refactor buffer_descriptors test

commit ed783a8ccccc8673c0f55eb1780c08668880a745
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:43:52 2020 +0000

    clang.yml hack for testing

* Squashed commit of the following:

commit dceb56dd1a19be6fe9b991bb50e08902eefe36a8
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 19:27:18 2020 +0000

    Fixed non-initialisation of in_use flag.

commit c7ee1d6574ca5d95869152c5f8e4e6d02a7fa6bc
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 19:20:24 2020 +0000

    Fixed non-initialisation of in_use flag.

commit 36cbf21cd1b67a28255582cfb4a188a601631ab2
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:52:53 2020 +0000

    Refactor buffer_descriptors test

commit 49c60add63153bf53f400a891d8c4fb880cacda8
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:44:42 2020 +0000

    Refactor buffer_descriptors test

commit 7bda7678311bf2eb497483f3ef27c3af9211680b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:29:02 2020 +0000

    Refactor buffer_descriptors test

commit 7a68c932a7df05f66690fa63e67365cf4b0619e8
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:14:30 2020 +0000

    Refactor buffer_descriptors test

commit a9b25ac67d175f58751a2eb819f0e5822e8f0cf9
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:08:21 2020 +0000

    Refactor buffer_descriptors test

commit 0c721c0466733751708fcbd995ce0bc1d7c0a932
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:58:22 2020 +0000

    Refactor buffer_descriptors test

commit 4b2dd2fce22cd0a4846b95695fbfd812e0823540
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:47:43 2020 +0000

    Refactor buffer_descriptors test

commit 80d5776c409b416377269d543bd539bdad83dc86
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:32:27 2020 +0000

    Refactor buffer_descriptors test

commit 3564ac5b7ef89c41b240d9f54fce36042408daa0
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:17:50 2020 +0000

    Refactor buffer_descriptors test

commit 297ef42c60e4228bfbcb2adcddeb6b8a617c4113
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:08:45 2020 +0000

    Refactor buffer_descriptors test

commit 658d592c96eb7eaf1afb5d09fef38e293ea6f79b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:58:52 2020 +0000

    Refactor buffer_descriptors test

commit e97d8f90d5527349324ea84fd578c1d879d7a5a4
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:48:52 2020 +0000

    Refactor buffer_descriptors test

commit ed783a8ccccc8673c0f55eb1780c08668880a745
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:43:52 2020 +0000

    clang.yml hack for testing

* Squashed commit of the following:

commit dceb56dd1a19be6fe9b991bb50e08902eefe36a8
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 19:27:18 2020 +0000

    Fixed non-initialisation of in_use flag.

commit c7ee1d6574ca5d95869152c5f8e4e6d02a7fa6bc
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 19:20:24 2020 +0000

    Fixed non-initialisation of in_use flag.

commit 36cbf21cd1b67a28255582cfb4a188a601631ab2
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:52:53 2020 +0000

    Refactor buffer_descriptors test

commit 49c60add63153bf53f400a891d8c4fb880cacda8
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:44:42 2020 +0000

    Refactor buffer_descriptors test

commit 7bda7678311bf2eb497483f3ef27c3af9211680b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:29:02 2020 +0000

    Refactor buffer_descriptors test

commit 7a68c932a7df05f66690fa63e67365cf4b0619e8
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:14:30 2020 +0000

    Refactor buffer_descriptors test

commit a9b25ac67d175f58751a2eb819f0e5822e8f0cf9
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 18:08:21 2020 +0000

    Refactor buffer_descriptors test

commit 0c721c0466733751708fcbd995ce0bc1d7c0a932
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:58:22 2020 +0000

    Refactor buffer_descriptors test

commit 4b2dd2fce22cd0a4846b95695fbfd812e0823540
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:47:43 2020 +0000

    Refactor buffer_descriptors test

commit 80d5776c409b416377269d543bd539bdad83dc86
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:32:27 2020 +0000

    Refactor buffer_descriptors test

commit 3564ac5b7ef89c41b240d9f54fce36042408daa0
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:17:50 2020 +0000

    Refactor buffer_descriptors test

commit 297ef42c60e4228bfbcb2adcddeb6b8a617c4113
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 17:08:45 2020 +0000

    Refactor buffer_descriptors test

commit 658d592c96eb7eaf1afb5d09fef38e293ea6f79b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:58:52 2020 +0000

    Refactor buffer_descriptors test

commit e97d8f90d5527349324ea84fd578c1d879d7a5a4
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:48:52 2020 +0000

    Refactor buffer_descriptors test

commit ed783a8ccccc8673c0f55eb1780c08668880a745
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:43:52 2020 +0000

    clang.yml hack for testing

* Squashed commit of the following:

commit fa9d9592aa7cb686ae1e8c6eeedfcbfda7a59835
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Thu Nov 26 19:26:11 2020 +0000

    format_spec may be constexpr

* Squashed commit of the following:

commit 638cceaf9c4a6964e58894adb36d633b01a1d5ac
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Wed Nov 25 17:57:06 2020 +0000

    Strings inherit secure status on copy.

commit 5f1ab55c61ed62b5c234b5e1d6ac3ef362b78851
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 22:33:08 2020 +0000

    Squashed commit of the following:

    commit dceb56dd1a19be6fe9b991bb50e08902eefe36a8
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 19:27:18 2020 +0000

        Fixed non-initialisation of in_use flag.

    commit c7ee1d6574ca5d95869152c5f8e4e6d02a7fa6bc
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 19:20:24 2020 +0000

        Fixed non-initialisation of in_use flag.

    commit 36cbf21cd1b67a28255582cfb4a188a601631ab2
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:52:53 2020 +0000

        Refactor buffer_descriptors test

    commit 49c60add63153bf53f400a891d8c4fb880cacda8
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:44:42 2020 +0000

        Refactor buffer_descriptors test

    commit 7bda7678311bf2eb497483f3ef27c3af9211680b
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:29:02 2020 +0000

        Refactor buffer_descriptors test

    commit 7a68c932a7df05f66690fa63e67365cf4b0619e8
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:14:30 2020 +0000

        Refactor buffer_descriptors test

    commit a9b25ac67d175f58751a2eb819f0e5822e8f0cf9
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:08:21 2020 +0000

        Refactor buffer_descriptors test

    commit 0c721c0466733751708fcbd995ce0bc1d7c0a932
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:58:22 2020 +0000

        Refactor buffer_descriptors test

    commit 4b2dd2fce22cd0a4846b95695fbfd812e0823540
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:47:43 2020 +0000

        Refactor buffer_descriptors test

    commit 80d5776c409b416377269d543bd539bdad83dc86
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:32:27 2020 +0000

        Refactor buffer_descriptors test

    commit 3564ac5b7ef89c41b240d9f54fce36042408daa0
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:17:50 2020 +0000

        Refactor buffer_descriptors test

    commit 297ef42c60e4228bfbcb2adcddeb6b8a617c4113
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:08:45 2020 +0000

        Refactor buffer_descriptors test

    commit 658d592c96eb7eaf1afb5d09fef38e293ea6f79b
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 16:58:52 2020 +0000

        Refactor buffer_descriptors test

    commit e97d8f90d5527349324ea84fd578c1d879d7a5a4
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 16:48:52 2020 +0000

        Refactor buffer_descriptors test

    commit ed783a8ccccc8673c0f55eb1780c08668880a745
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 16:43:52 2020 +0000

        clang.yml hack for testing

commit c26e42253f4502c3afb943a7ff1f7ef0f79c475b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 19:32:48 2020 +0000

    Squashed commit of the following:

    commit dceb56dd1a19be6fe9b991bb50e08902eefe36a8
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 19:27:18 2020 +0000

        Fixed non-initialisation of in_use flag.

    commit c7ee1d6574ca5d95869152c5f8e4e6d02a7fa6bc
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 19:20:24 2020 +0000

        Fixed non-initialisation of in_use flag.

    commit 36cbf21cd1b67a28255582cfb4a188a601631ab2
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:52:53 2020 +0000

        Refactor buffer_descriptors test

    commit 49c60add63153bf53f400a891d8c4fb880cacda8
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:44:42 2020 +0000

        Refactor buffer_descriptors test

    commit 7bda7678311bf2eb497483f3ef27c3af9211680b
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:29:02 2020 +0000

        Refactor buffer_descriptors test

    commit 7a68c932a7df05f66690fa63e67365cf4b0619e8
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:14:30 2020 +0000

        Refactor buffer_descriptors test

    commit a9b25ac67d175f58751a2eb819f0e5822e8f0cf9
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:08:21 2020 +0000

        Refactor buffer_descriptors test

    commit 0c721c0466733751708fcbd995ce0bc1d7c0a932
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:58:22 2020 +0000

        Refactor buffer_descriptors test

    commit 4b2dd2fce22cd0a4846b95695fbfd812e0823540
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:47:43 2020 +0000

        Refactor buffer_descriptors test

    commit 80d5776c409b416377269d543bd539bdad83dc86
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:32:27 2020 +0000

        Refactor buffer_descriptors test

    commit 3564ac5b7ef89c41b240d9f54fce36042408daa0
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:17:50 2020 +0000

        Refactor buffer_descriptors test

    commit 297ef42c60e4228bfbcb2adcddeb6b8a617c4113
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:08:45 2020 +0000

        Refactor buffer_descriptors test

    commit 658d592c96eb7eaf1afb5d09fef38e293ea6f79b
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 16:58:52 2020 +0000

        Refactor buffer_descriptors test

    commit e97d8f90d5527349324ea84fd578c1d879d7a5a4
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 16:48:52 2020 +0000

        Refactor buffer_descriptors test

    commit ed783a8ccccc8673c0f55eb1780c08668880a745
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 16:43:52 2020 +0000

        clang.yml hack for testing

commit 3cbe1a80030263aac53616391fa434d0501f4f26
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 19:31:03 2020 +0000

    Squashed commit of the following:

    commit dceb56dd1a19be6fe9b991bb50e08902eefe36a8
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 19:27:18 2020 +0000

        Fixed non-initialisation of in_use flag.

    commit c7ee1d6574ca5d95869152c5f8e4e6d02a7fa6bc
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 19:20:24 2020 +0000

        Fixed non-initialisation of in_use flag.

    commit 36cbf21cd1b67a28255582cfb4a188a601631ab2
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:52:53 2020 +0000

        Refactor buffer_descriptors test

    commit 49c60add63153bf53f400a891d8c4fb880cacda8
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:44:42 2020 +0000

        Refactor buffer_descriptors test

    commit 7bda7678311bf2eb497483f3ef27c3af9211680b
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:29:02 2020 +0000

        Refactor buffer_descriptors test

    commit 7a68c932a7df05f66690fa63e67365cf4b0619e8
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:14:30 2020 +0000

        Refactor buffer_descriptors test

    commit a9b25ac67d175f58751a2eb819f0e5822e8f0cf9
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 18:08:21 2020 +0000

        Refactor buffer_descriptors test

    commit 0c721c0466733751708fcbd995ce0bc1d7c0a932
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:58:22 2020 +0000

        Refactor buffer_descriptors test

    commit 4b2dd2fce22cd0a4846b95695fbfd812e0823540
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:47:43 2020 +0000

        Refactor buffer_descriptors test

    commit 80d5776c409b416377269d543bd539bdad83dc86
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:32:27 2020 +0000

        Refactor buffer_descriptors test

    commit 3564ac5b7ef89c41b240d9f54fce36042408daa0
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:17:50 2020 +0000

        Refactor buffer_descriptors test

    commit 297ef42c60e4228bfbcb2adcddeb6b8a617c4113
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 17:08:45 2020 +0000

        Refactor buffer_descriptors test

    commit 658d592c96eb7eaf1afb5d09fef38e293ea6f79b
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 16:58:52 2020 +0000

        Refactor buffer_descriptors test

    commit e97d8f90d5527349324ea84fd578c1d879d7a5a4
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 16:48:52 2020 +0000

        Refactor buffer_descriptors test

    commit ed783a8ccccc8673c0f55eb1780c08668880a745
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Nov 24 16:43:52 2020 +0000

        clang.yml hack for testing

commit e939e6b15557544bd0bb88d9862b5d5711170859
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:47:40 2020 +0000

    Refactor buffer_descriptors test

commit 4c4149abf6221f245aa4d73eb85e50319e7bd32c
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Nov 24 16:45:53 2020 +0000

    clang hack for testing

* Added AVR compile time switch

* Updated version numbers

* Fixed AVR to __AVR__

* Fixed version number retrieval from Github

* constexpr, template aliases and inline variables

* Updated version numbers

* Added ETL_ASSERT for out-of-order state list.

* issue-314-constexpr

* issue-314-constexpr

* Make modifying constexpr C++14 only

* Make modifying constexpr C++14 only

* Removed double subtraction of float size from 'bits_remaining' for floating point reads

* Added parameterised constructor for etl::format_spec

* Updated version numbers

* Include new on megaAVR Boards (Arduino Nano Every) (#313)

* Change new to new.h

* Only include <new> header if ETL supports STL

* Adding a flag to define placement new if necessary

Co-authored-by: Heinz-Peter Liechtenecker <h.liechtenecker@fh-kaernten.at>

* Minor changes

* Added clang mutex header redirect to GCC implementation

* Updated for automatic detection of <new> or <new.h>

* Updated generators

* Updated generators

* Merge branch 'hotfix/issue-303-etl-not-compatible-with-arduino-ide' into development

# Conflicts:
#	support/Release notes.txt
#	test/vs2019/etl.vcxproj.filters

* Make span std compliant (#317)

* add missing overloads for span::first + span::last

The C++20 standard defines additional overloads for first and last:

  template< std::size_t Count >
  constexpr std::span<element_type, Count> first() const;
  constexpr std::span<element_type, std::dynamic_extent> first( size_type Count ) const;

  template< std::size_t Count >
  constexpr std::span<element_type, Count> last() const;
  constexpr std::span<element_type, std::dynamic_extent> last( size_type Count ) const;

etl implements only the first (= template) variants so far. To be able to
compile valid C++20 code the missing overload should be added.

* remove explicit specifier for span conversion operator

The C++20 standard allows to assign a span of non-const elements to a span of
const elements. Example:

    std::span<const int> cintspan;
    std::span<int> intspan;
    cintspan = intspan;

This is enabled in the STL by using an explicit specifier with a constant
expression for one of the conversion constructors:

    template< class R >
    explicit(extent != std::dynamic_extent)
    constexpr span( R&& r );

The explicit specifier together with a constant expression is a C++20 feature
and therefore can't be used within etl. To be able to compile valid C++20
code which uses the conversion on assignment, the explicit specifier has to
be removed.

* remove explicit specifier for span conversion operator

The C++20 standard allows to assign an array of elements directly (without
explicitly using a conversion constructor). Example:

    const int data = { 1, 2, 3 };
    std::span<const int> cintspan;
    cintspan = data;

To be able to compile valid C++20 code which uses the conversion on assignment,
the explicit specifier of the array-conversion constructor has to be removed.

* Updated version numbers

* Change std::move to etl::move in etl::forward_list

* Create Arduino ZIP

* Fcs make getter const (#319)

* make FCS get and conversion-operator methods const

etl::frame_check_sequence has to access methods which can be made const:
  value_type value() const
  operator value_type() const

* make jenkins_policy::initial and final const

According to the documentation, initial, add and const have to be
tagged as const.

final has to be const now due to the change in the previous commit which
makes the fcs getter methods const.

* let default assignment operator return a reference to itself (#320)

The default assignment operator in C++ shall return a reference to *this.

* Arduino compatibility

* Arduino compatibility

* Updated version numbers

* Merge branch 'hotfix/fcs_make_getter_const' into development

* Arduino compatibility

* VS2019 Delegate function interrupt service example

* Removed unused functions

* Added is_random_access_iterator and deprecated is_random_iterator

* Interim commit

* Added etl::for_each

* Added etl::multi_loop

* etl::multi_loop implementation

* Added etl::multi_loop

* Added typedefs

* Latest implementation

* Refactor multi_loop to multi_range

* Moved code lines

* Interim commit

* Interim commit

Refactor of reference counted types.

* Merged shared_message handlers into message_router

* reference_counted_object and reference_counted_message specialisations

* reference_counted_object and reference_counted_message specialisations

* reference_counted_object and reference_counted_message specialisations

* Unknown board is not an error

* Refactored reference_counted_message now contains owner reference

* Added fixed_sized_memory_block_pool and restored imemory_block_pool interface

* message router changes

* Fixed LGT8F macro name clash

* Updated generators

* Updated deque from development

* get_memory_block_size() const

* Updates to pools and memory allocators

* LLVM changes

* Ongoing addition of unit tests

* Added final unit tests

* Added static asserts

* Renamed internal structure

* Minor updates.

* Added virtual function 'void on_task_added()' that is called when a task is added to a shceduler.

* Added virtual function 'void on_task_added()' that is called when a task is added to a scheduler.

* Update version number

* Removed pool_message and non_pool_message

* Added shared_message example

* Added shared_message receive override to messge_bus

* Added shared_message example

* Added memory allocator successor

* Added reference_counted_message specialisation for void counter

* Added lock/unlock interface

* Added lock/unlock example

* Added constructors with deleters for unique_ptr.

* Fixed typos in rvalue constructor

* Added ilockable interface class

* Fixed VS2019 warning for etl::deque iterators.

* Added nullptr check to unique_ptr destructor

* Added nullptr check to unique_ptr destructor.

* Added nullptr check to unique_ptr destructor.

* Added ilockable interface & queue_lockable

* Added nullptr check to unique_ptr destructor.

* Typo in unique_ptr

* Refactored queues

* Added virtual destructor to observer.

Changed C++11 destructors to '= default'.

* Updated version and release notes.

* Added more CMakeLists.txt files for examples

* Added enable_if for container iterator costructors, to exclude integrals from consideration

* Squashed commit of the following:

commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:32:35 2021 +0000

    Fixed rollover error for etl::queue_spsc_atomic

    Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
    Updated QueuedMessageRouter example

* Squashed commit of the following:

commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:34:49 2021 +0000

    Squashed commit of the following:

    commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:32:35 2021 +0000

        Fixed rollover error for etl::queue_spsc_atomic

        Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
        Updated QueuedMessageRouter example

* Squashed commit of the following:

commit 6107c4538be149137209d85e5f41031291bc7150
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 12:15:31 2021 +0000

    Added move constructor and move assignment to etl::shared_message

commit c9a5716012db9b614ea67660ebf64dcb790ce571
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:36:29 2021 +0000

    Squashed commit of the following:

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example

* Squashed commit of the following:

commit 007b56d03513887636b84fc246e57d6c4f8b777e
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 18:09:51 2021 +0000

    Squashed commit of the following:

    commit 6107c4538be149137209d85e5f41031291bc7150
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 12:15:31 2021 +0000

        Added move constructor and move assignment to etl::shared_message

    commit c9a5716012db9b614ea67660ebf64dcb790ce571
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:36:29 2021 +0000

        Squashed commit of the following:

        commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:34:49 2021 +0000

            Squashed commit of the following:

            commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:32:35 2021 +0000

                Fixed rollover error for etl::queue_spsc_atomic

                Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                Updated QueuedMessageRouter example

commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:34:49 2021 +0000

    Squashed commit of the following:

    commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:32:35 2021 +0000

        Fixed rollover error for etl::queue_spsc_atomic

        Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
        Updated QueuedMessageRouter example

* Squashed commit of the following:

commit 04ba91bcccc8e12867962bc3746665f430672a23
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sat Feb 6 10:43:34 2021 +0000

    Updated shared message unit test

commit fababc5cf748073464b4294a50c201cb0aa4fa13
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Fri Feb 5 09:41:52 2021 +0000

    Updated FSM generator

commit ff287bcf0a833ca70933354b42b8b036b422ff81
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Fri Feb 5 09:35:56 2021 +0000

    Updated message router generator

commit 52724e1e62b55dad81e2f80dd656026d828b3214
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Thu Feb 4 13:06:50 2021 +0000

    Updated unit tests

commit 0d89105262aa050577ccc17ddc6eece9f4fc5d18
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 20:09:35 2021 +0000

    Interim commit

commit ce8385ff24826103c7a55267ccf3f8a31f517e0b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 18:13:29 2021 +0000

    Squashed commit of the following:

    commit 007b56d03513887636b84fc246e57d6c4f8b777e
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 18:09:51 2021 +0000

        Squashed commit of the following:

        commit 6107c4538be149137209d85e5f41031291bc7150
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Tue Feb 2 12:15:31 2021 +0000

            Added move constructor and move assignment to etl::shared_message

        commit c9a5716012db9b614ea67660ebf64dcb790ce571
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:36:29 2021 +0000

            Squashed commit of the following:

            commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:34:49 2021 +0000

                Squashed commit of the following:

                commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
                Author: John Wellbelove <github@wellbelove.co.uk>
                Date:   Sun Jan 31 12:32:35 2021 +0000

                    Fixed rollover error for etl::queue_spsc_atomic

                    Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                    Updated QueuedMessageRouter example

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example

commit c9a5716012db9b614ea67660ebf64dcb790ce571
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:36:29 2021 +0000

    Squashed commit of the following:

    commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:34:49 2021 +0000

        Squashed commit of the following:

        commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:32:35 2021 +0000

            Fixed rollover error for etl::queue_spsc_atomic

            Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
            Updated QueuedMessageRouter example

* Squashed commit of the following:

commit 97a6e6a03557359442123d439cef9bdf6dea2d1b
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Feb 7 11:02:49 2021 +0000

    Squashed commit of the following:

    commit 04ba91bcccc8e12867962bc3746665f430672a23
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sat Feb 6 10:43:34 2021 +0000

        Updated shared message unit test

    commit fababc5cf748073464b4294a50c201cb0aa4fa13
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Fri Feb 5 09:41:52 2021 +0000

        Updated FSM generator

    commit ff287bcf0a833ca70933354b42b8b036b422ff81
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Fri Feb 5 09:35:56 2021 +0000

        Updated message router generator

    commit 52724e1e62b55dad81e2f80dd656026d828b3214
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Thu Feb 4 13:06:50 2021 +0000

        Updated unit tests

    commit 0d89105262aa050577ccc17ddc6eece9f4fc5d18
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 20:09:35 2021 +0000

        Interim commit

    commit ce8385ff24826103c7a55267ccf3f8a31f517e0b
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 18:13:29 2021 +0000

        Squashed commit of the following:

        commit 007b56d03513887636b84fc246e57d6c4f8b777e
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Tue Feb 2 18:09:51 2021 +0000

            Squashed commit of the following:

            commit 6107c4538be149137209d85e5f41031291bc7150
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Tue Feb 2 12:15:31 2021 +0000

                Added move constructor and move assignment to etl::shared_message

            commit c9a5716012db9b614ea67660ebf64dcb790ce571
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:36:29 2021 +0000

                Squashed commit of the following:

                commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
                Author: John Wellbelove <github@wellbelove.co.uk>
                Date:   Sun Jan 31 12:34:49 2021 +0000

                    Squashed commit of the following:

                    commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
                    Author: John Wellbelove <github@wellbelove.co.uk>
                    Date:   Sun Jan 31 12:32:35 2021 +0000

                        Fixed rollover error for etl::queue_spsc_atomic

                        Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                        Updated QueuedMessageRouter example

        commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:34:49 2021 +0000

            Squashed commit of the following:

            commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:32:35 2021 +0000

                Fixed rollover error for etl::queue_spsc_atomic

                Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                Updated QueuedMessageRouter example

    commit c9a5716012db9b614ea67660ebf64dcb790ce571
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:36:29 2021 +0000

        Squashed commit of the following:

        commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:34:49 2021 +0000

            Squashed commit of the following:

            commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:32:35 2021 +0000

                Fixed rollover error for etl::queue_spsc_atomic

                Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                Updated QueuedMessageRouter example

commit 007b56d03513887636b84fc246e57d6c4f8b777e
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Tue Feb 2 18:09:51 2021 +0000

    Squashed commit of the following:

    commit 6107c4538be149137209d85e5f41031291bc7150
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Tue Feb 2 12:15:31 2021 +0000

        Added move constructor and move assignment to etl::shared_message

    commit c9a5716012db9b614ea67660ebf64dcb790ce571
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:36:29 2021 +0000

        Squashed commit of the following:

        commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
        Author: John Wellbelove <github@wellbelove.co.uk>
        Date:   Sun Jan 31 12:34:49 2021 +0000

            Squashed commit of the following:

            commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
            Author: John Wellbelove <github@wellbelove.co.uk>
            Date:   Sun Jan 31 12:32:35 2021 +0000

                Fixed rollover error for etl::queue_spsc_atomic

                Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
                Updated QueuedMessageRouter example

commit e5f4eb6fb38c337c82fcc250f17a8f21eb788975
Author: John Wellbelove <github@wellbelove.co.uk>
Date:   Sun Jan 31 12:34:49 2021 +0000

    Squashed commit of the following:

    commit 23c5f1d3f9b13ff9e46ce3de96aefeb655d5ed97
    Author: John Wellbelove <github@wellbelove.co.uk>
    Date:   Sun Jan 31 12:32:35 2021 +0000

        Fixed rollover error for etl::queue_spsc_atomic

        Added 'required_alignment' parameter to 'allocate' for etl::imemeory_block_allocator.
        Updated QueuedMessageRouter example

* Changed template aliases so they are available for C++11 rather than C++14.

* Changed template aliases so they are available for C++11 rather than C++14.

* Allow default constructed messages for shared messages

* Updated version numbers

* Modified reference_counted_message_pool::allocate() return type

* Modified reference_counted_message_pool::allocate() return type

* Added non-const get_message() member funtions in shared message framework.

* Added update_size() to string API to fix string lengths after insertion of characters by C code.

* Interface for C string handling.

* Fixed indexing error in find_next for etl::bitset.

Added some enum tests for type_traits

* Updated version

* fix bug in ibitset find_next method (#338)

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>

* Merge branch 'hotfix/bitset-iteration-error' into development

* Merge branch 'hotfix/Chiraffollo-fix-find_next' into development

* Updated version

* Fixed indexing error in find_next for etl::bitset.

Added some enum tests for type_traits

* Updated version

* Merge branch 'hotfix/bitset-iteration-error' into development

* fix bug in ibitset find_next method (#338)

Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>

* Merge branch 'hotfix/Chiraffollo-fix-find_next' into development

* Updated version

* Added data_end() and renamed trim() to trim_to_terminator()

* Added ETL_CONSTANT to numeric_limits member functions.

* Added uninitialized_resize()

* Updated version numbers

* Added uninitialized_resize() tests to external buffer containers

* Updated example for shared_message

* Updates to etl::shared_message example application.

* Added specialisation of etl::state_chart that allows a parameter to be passed to the event handler.

* Export headers as system includes (#340)

Gcc doesn't apply warning to system includes paths. This change
allows a project to use high warning levels without getting swamped by ETL
issues.

* Fix extent type conversion warning (#339)

* Issue #339 - Fix extent type conversion warning

* Merge branch 'feature/state-chart-to-have-optional-data-parameter' into development

* Minor updates to state chart

* Minor updates to state chart

* Fix extent error in clang and gcc

* Fix extent error in clang and gcc

* Initial code

* Fix C++14 only type aliases for STL

* Fix C++14 only type aliases for STL

* Fix C++14 only type aliases for STL

* Fix C++14 only type aliases for STL

* Abstracted unit test framework header

* Initial commit

* Added message_router_registry

* Added message_router_registry

* Added iterators

* Added iterators

* Changed to using etl::flat_multimap

* Updates to message_router_registry

* Remove executable permission on C++ source files (#341)

* Updated * & -> operators.

* Partial fix to compiling with C++98/03 (#342)

* Updated version numbers

* Fix default function templates for C++03

* Updated file id macros

* Added ETL_CONSTEXPR to etl::array

* Remove unnecessary template keyword to destroy() call.

* Remove unnecessary template keyword to destroy() call.

* Fix default function templates for C++03

* Correct use of ETL_NULLPTR instead for keyword nulllptr (#346)

Gives problem in C++98/03 mode.

* Remove etl/ prefix in state_chart.h (#347)

It's the only file to include internal header files with "etl/... .h".

* Add free-standing sanity tests for C++03/11/14/17

Co-authored-by: John Wellbelove <github@wellbelove.co.uk>
Co-authored-by: Heinz-Peter Liechtenecker <heinz.liechtenecker@gmail.com>
Co-authored-by: Heinz-Peter Liechtenecker <h.liechtenecker@fh-kaernten.at>
Co-authored-by: Steffen Zimmermann <mampfes@users.noreply.github.com>
Co-authored-by: Chiraffollo <ollymarx@web.de>
Co-authored-by: John Wellbelove <jwellbelove@users.noreply.github.com>
Co-authored-by: Adam Boseley <aboseley@users.noreply.github.com>

* Updates to C++03 compatibility

* Add free-standing sanity tests for C++03/11/14/17

* Cleanup runsanitychecks.sh & runtests.sh with shellcheck (#352)

* Cleanup runsanitychecks.sh & runtests.sh with shellcheck

* Add executable writes on runsanitychecks.sh & runtests.sh

for easier use of scripts.

* string_utilities.h failes to compile with NO_ETL_STL (#354)

Lacks <ctype.h>

* Feature/make sanity test also run with clang compiler (#353)

* Cleanup runsanitychecks.sh & runtests.sh with shellcheck

* Add executable writes on runsanitychecks.sh & runtests.sh

for easier use of scripts.

* Correct sanity tests to use gcc and clang compiler

* Add to ignore file

* Version number update

* selection_sort

* selection_sort

* Updated to ETLCPP 20.0 and renamed to get adherence to Wikipedia UML State momenclature

* Updated to conform to ULM naming

* Updated function accepts to return true for all messages accepted by hsm

* Updated function accepts to return true for all messages accepted by hsm

* Add moveab…
  • Loading branch information
15 people committed Jun 18, 2021
1 parent 91df55d commit f0f1d70
Show file tree
Hide file tree
Showing 800 changed files with 92,279 additions and 36,458 deletions.
1 change: 1 addition & 0 deletions .circleci/config.yml
Expand Up @@ -6,6 +6,7 @@ jobs:
branches:
only:
- master
- development
steps:
- checkout:
- run:
Expand Down
5 changes: 5 additions & 0 deletions .gitattributes
Expand Up @@ -3,6 +3,11 @@
###############################################################################
* text=auto

###############################################################################
# Declare files that will always have LF line endings on checkout.
###############################################################################
*.sh text eol=lf

###############################################################################
# Set default behavior for command prompt diff.
#
Expand Down
3 changes: 3 additions & 0 deletions .github/FUNDING.yml
@@ -0,0 +1,3 @@
# These are supported funding model platforms

github: ETLCPP
91 changes: 91 additions & 0 deletions .github/workflows/clang.yml
@@ -0,0 +1,91 @@
name: clang
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
build-clang-9-linux:
name: Clang-9 Linux
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]

steps:
- uses: actions/checkout@v2

- name: Build
run: |
sudo apt-get update
sudo apt-get install -y "clang-9" "lldb-9" "lld-9" "clang-format-9"
export CC=clang-9
export CXX=clang++-9
cmake -D BUILD_TESTS=ON ./
clang --version
make
- name: Run tests
run: ./test/etl_tests

build-clang-9-linux-no-stl:
name: Clang-9 Linux - No STL
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-20.04]

steps:
- uses: actions/checkout@v2

- name: Build
run: |
cmake -DBUILD_TESTS=ON -DNO_STL=ON ./
gcc --version
make
- name: Run tests
run: ./test/etl_tests

build-clang-10-osx:
name: Clang-10 OSX
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-10.15]

steps:
- uses: actions/checkout@v2

- name: Build
run: |
export CC=clang
export CXX=clang++
cmake -D BUILD_TESTS=ON ./
clang --version
make
- name: Run tests
run: ./test/etl_tests

build-clang-10-osx-no-stl:
name: Clang-10 OSX - No STL
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-10.15]

steps:
- uses: actions/checkout@v2

- name: Build
run: |
export CC=clang
export CXX=clang++
cmake -D BUILD_TESTS=ON -DNO_STL=ON ./
clang --version
make
- name: Run tests
run: ./test/etl_tests
45 changes: 45 additions & 0 deletions .github/workflows/gcc.yml
@@ -0,0 +1,45 @@
name: gcc
on:
push:
branches: [ master ]
pull_request:
branches: [ master ]

jobs:
build-gcc-linux:
name: GCC Linux
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-18.04, ubuntu-20.04]

steps:
- uses: actions/checkout@v2

- name: Build
run: |
cmake -DBUILD_TESTS=ON ./
gcc --version
make
- name: Run tests
run: ./test/etl_tests

build-gcc-linux-no-stl:
name: GCC Linux - No STL
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-18.04, ubuntu-20.04]

steps:
- uses: actions/checkout@v2

- name: Build
run: |
cmake -DBUILD_TESTS=ON -DNO_STL=ON ./
gcc --version
make
- name: Run tests
run: ./test/etl_tests
51 changes: 51 additions & 0 deletions .github/workflows/vs2019.yml
@@ -0,0 +1,51 @@
name: vs2019
on:
push:
branches: [ master]
pull_request:
branches: [ master ]

jobs:
build-windows-vs2019:
name: Windows VS2019 Debug
runs-on: [windows-latest]

steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive

- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2

- name: Build
run: |
cmake -G "Visual Studio 16 2019" -DBUILD_TESTS=ON ./
MSBuild.exe -version
MSBuild.exe etl.sln
- name: Run tests
run: ./test/debug/etl_tests.exe

build-windows-vs2019-no-stl:
name: Windows VS2019 Debug - No STL
runs-on: [windows-latest]

steps:
- name: Checkout
uses: actions/checkout@v2
with:
submodules: recursive

- name: Add msbuild to PATH
uses: microsoft/setup-msbuild@v1.0.2

- name: Build
run: |
cmake -G "Visual Studio 16 2019" -DBUILD_TESTS=ON -DNO_STL=ON ./
MSBuild.exe -version
MSBuild.exe etl.sln
- name: Run tests
run: ./test/debug/etl_tests.exe
55 changes: 53 additions & 2 deletions .gitignore
@@ -1,4 +1,3 @@

#################
## Personal
#################
Expand Down Expand Up @@ -257,6 +256,58 @@ test/Logs
build-test-Desktop_x86_windows_msvc2019_pe_32bit-Debug
test/vs2019/.vs
Corel Auto-Preserve
.vscode
build-test-Clang_10-Debug
build-test-GCC-Debug
test/kdevelopbuild/unittest++
test/random_clcg.csv
test/random_hash.csv
test/random_lcg.csv
test/random_lcg.csv
test/random_lcg.csv
test/random_lsfr.csv
test/random_lsfr.csv
test/random_mwc.csv
test/random_pcg.csv
test/random_pcg.csv
test/random_xorshift.csv
test/cmake_install.cmake
test/Makefile
test/vs2019/enc_temp_folder
test/vs2019/.leu
test/etl_test_log.txt
test/vs2019/Debug No Unit Tests
test/vs2019/multi_loop.csv
temp/create_arduino_library.py
examples/FunctionInterruptSimulation-Delegates/vs2019/.vs

*.db-shm
test/vs2019/.vs/etl/v16/Browse.VC.db-wal
examples/SharedMessage/.vs
examples/QueuedMessageRouter/vs2019/.vs
*.leu
test/sanity-check/c++03/bclang
test/sanity-check/c++03/bgcc
test/sanity-check/c++11/bclang
test/sanity-check/c++11/bgcc
test/sanity-check/c++14/bclang
test/sanity-check/c++14/bgcc
test/sanity-check/c++17/bclang
test/sanity-check/c++17/bgcc
test/log.txt
log.txt
test/sanity-check/c++17/CMakeFiles
test/CMakeFiles
test/sanity-check/c++11/CMakeFiles
test/sanity-check/c++14/CMakeFiles
test/sanity-check/c++11/cmake_install.cmake
test/sanity-check/c++11/CMakeCache.txt
test/sanity-check/c++11/libt11.a
test/sanity-check/c++11/Makefile
test/sanity-check/c++14/cmake_install.cmake
test/sanity-check/c++14/CMakeCache.txt
test/sanity-check/c++14/libt14.a
test/sanity-check/c++14/Makefile
test/sanity-check/c++17/cmake_install.cmake
test/sanity-check/c++17/CMakeCache.txt
test/sanity-check/c++17/libt17.a
test/sanity-check/c++17/Makefile
59 changes: 13 additions & 46 deletions CMakeLists.txt
Expand Up @@ -4,57 +4,24 @@
cmake_minimum_required(VERSION 3.5.0)
project(etl)

#######################################################################
# Define an option to allow consumers of the library to
# specify the profile they would like to compile to. If
# not explicitly set CMake will attempt to choose an appropriate
# profile based on the compiler
#######################################################################
set(ETL_PROFILE "DEFAULT" CACHE STRING "Defines what profile header to include. See https://www.etlcpp.com/setup.html"
)

option(BUILD_TESTS "Build unit tests" OFF)
option(NO_STL "No STL" OFF)

add_library(etl INTERFACE)

target_include_directories(etl
INTERFACE
include
include/etl/profiles
)

if (${ETL_PROFILE} STREQUAL DEFAULT)
if (CMAKE_CXX_COMPILER_ID MATCHES "GNU")
set(ETL_PROFILE "PROFILE_GCC_GENERIC")
add_library(${PROJECT_NAME} INTERFACE)

elseif (CMAKE_CXX_COMPILER_ID MATCHES "Clang")
set(ETL_PROFILE "PROFILE_CLANG_GENERIC")

elseif (CMAKE_CXX_COMPILER_ID MATCHES "MSVC")
set(ETL_PROFILE "PROFILE_MSVC")

elseif (CMAKE_CXX_COMPILER_ID MATCHES "ARMCC")
if (CXX_STANDARD EQUAL 11)
set(ETL_PROFILE "PROFILE_ARMV6")
else ()
set(ETL_PROFILE "PROFILE_ARMV5")
endif()
elseif (CMAKE_CXX_COMPILER_ID MATCHES "TI")
set(ETL_PROFILE "PROFILE_TICC")

else()
message(FATAL_ERROR "Can't generate default profile for compiler: ${CMAKE_CXX_COMPILER_ID}")
endif()
endif()

message(STATUS "Compiling with ETL profile set to: ${ETL_PROFILE}")

target_compile_definitions(etl
INTERFACE
${ETL_PROFILE}
)
target_include_directories(${PROJECT_NAME} SYSTEM INTERFACE
$<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include>
$<INSTALL_INTERFACE:include>
)

target_link_libraries(${PROJECT_NAME} INTERFACE)

# only install if top level project
if(${CMAKE_PROJECT_NAME} STREQUAL ${PROJECT_NAME})
install(TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME}Config)
install(EXPORT ${PROJECT_NAME}Config DESTINATION lib/cmake/${PROJECT_NAME})
install(DIRECTORY include/${PROJECT_NAME} DESTINATION include)
endif()

if (BUILD_TESTS)
enable_testing()
Expand Down
10 changes: 5 additions & 5 deletions README.md
@@ -1,13 +1,12 @@
Embedded Template Library (ETL)
-------------------------

[![Build status](https://ci.appveyor.com/api/projects/status/b7jgecv7unqjw4u0/branch/master?svg=true)](https://ci.appveyor.com/project/jwellbelove/etl/branch/master)
[![ETLCPP](https://circleci.com/gh/ETLCPP/etl.svg?style=shield)](https://app.circleci.com/pipelines/github/ETLCPP/etl)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/3c14cd918ccf40008d0bcd7b083d5946)](https://www.codacy.com/manual/jwellbelove/etl?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=ETLCPP/etl&amp;utm_campaign=Badge_Grade)
![GitHub release (latest by date)](https://img.shields.io/github/v/release/jwellbelove/etl)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)


![CI](https://github.com/ETLCPP/etl/workflows/vs2019/badge.svg)
![CI](https://github.com/ETLCPP/etl/workflows/gcc/badge.svg)
![CI](https://github.com/ETLCPP/etl/workflows/clang/badge.svg)
[![Codacy Badge](https://api.codacy.com/project/badge/Grade/3c14cd918ccf40008d0bcd7b083d5946)](https://www.codacy.com/manual/jwellbelove/etl?utm_source=github.com&amp;utm_medium=referral&amp;utm_content=ETLCPP/etl&amp;utm_campaign=Badge_Grade)

**Motivation**

Expand Down Expand Up @@ -48,6 +47,7 @@ The library is intended for any compiler that supports C++ 03.
- Checksums & hash functions
- Variants (a type that can store many types in a type-safe interface)
- Choice of asserts, exceptions, error handler or no checks on errors
- Unit tested (currently over 6480 tests), using VS2019, GCC 8.1.0, , GCC 9.3.0, Clang 9.0.0 & 10.0.0
- Many utilities for template support.
- Easy to read and documented source.
- Free email support
Expand Down

0 comments on commit f0f1d70

Please sign in to comment.