<commit_before>Change Log
==========

All notable changes to this project will be documented in this file. This project adheres to
[Semantic Versioning](http://semver.org/).

[Unreleased](https://github.com/DISTORTEC/distortos/compare/v0.5.0...HEAD)
--------------------------------------------------------------------------

### Added

- `distortos/C-API/Mutex.h` - C-API for mutexes, implemented as wrappers for `distortos::Mutex` member functions.
- `distortos/C-API/Semaphore.h` - C-API for semaphores, implemented as wrappers for `distortos::Semaphore` member
functions.
- `distortos::fromCApi()` which can be used to cast referenes to C-API objects (like `distortos_Semaphore`) into
references to regular C++ API objects (like `distortos::Semaphore`).
- `distortos::DynamicSoftwareTimer` class - a dynamic and (mostly) non-templated counterpart of
`distortos::StaticSoftwareTimer`.
- Unit tests of C-API for mutexes and semaphores, using [Catch](https://github.com/philsquared/Catch) unit test
framework and [Trompeloeil](https://github.com/rollbear/trompeloeil) mocking framework. Build system of unit tests uses
[CMake](https://cmake.org/).
- New overload of `distortos::Mutex`'s constructor for "normal" type.

### Changed

- Reduced size of `distortos::Mutex` from 28 bytes to 24 bytes (5 pointers + 4 bytes).

### Fixed

- Fixed *GDB* pretty-printers of *distortos* queues when using *GCC 7*. New version of *libstdc++v3* from *GCC* changed
implementation of `std::unique_ptr`, which is used internally by queues for managing storage. Fixed pretty-printers from
`distortos.py` now handle both variants of `std::unique_ptr`.

[0.5.0](https://github.com/DISTORTEC/distortos/compare/v0.4.0...v0.5.0) - 2017-09-14
------------------------------------------------------------------------------------

### Added

- Support for whole [STM32L0](http://www.st.com/stm32l0) chip family.
- Support and test configuration for [NUCLEO-L073RZ](http://www.st.com/en/evaluation-tools/nucleo-l073rz.html) board
with *STM32L0* chip.
- Support and test configuration for [32F769IDISCOVERY](http://www.st.com/en/evaluation-tools/32f769idiscovery.html)
board with *STM32F7* chip.
- Test of `Thread::generateSignal()` and `Thread::queueSignal()` returning `ENOSPC` when the amount of target thread's
free stack is too small to request signal delivery.
- *GDB* pretty-printers for `estd` containers (`estd::ContiguousRange`, `estd::IntrusiveForwardList`,<commit_msg>Mention the fix to .bss sections in generated scripts in CHANGELOG.md<commit_after>Change Log
==========

All notable changes to this project will be documented in this file. This project adheres to
[Semantic Versioning](http://semver.org/).

[Unreleased](https://github.com/DISTORTEC/distortos/compare/v0.5.0...HEAD)
--------------------------------------------------------------------------

### Added

- `distortos/C-API/Mutex.h` - C-API for mutexes, implemented as wrappers for `distortos::Mutex` member functions.
- `distortos/C-API/Semaphore.h` - C-API for semaphores, implemented as wrappers for `distortos::Semaphore` member
functions.
- `distortos::fromCApi()` which can be used to cast referenes to C-API objects (like `distortos_Semaphore`) into
references to regular C++ API objects (like `distortos::Semaphore`).
- `distortos::DynamicSoftwareTimer` class - a dynamic and (mostly) non-templated counterpart of
`distortos::StaticSoftwareTimer`.
- Unit tests of C-API for mutexes and semaphores, using [Catch](https://github.com/philsquared/Catch) unit test
framework and [Trompeloeil](https://github.com/rollbear/trompeloeil) mocking framework. Build system of unit tests uses
[CMake](https://cmake.org/).
- New overload of `distortos::Mutex`'s constructor for "normal" type.

### Changed

- Reduced size of `distortos::Mutex` from 28 bytes to 24 bytes (5 pointers + 4 bytes).

### Fixed

- Fixed *GDB* pretty-printers of *distortos* queues when using *GCC 7*. New version of *libstdc++v3* from *GCC* changed
implementation of `std::unique_ptr`, which is used internally by queues for managing storage. Fixed pretty-printers from
`distortos.py` now handle both variants of `std::unique_ptr`.
- Mark all `.bss` sections in generated linker scripts as `(NOLOAD)`. Without this change `.bin` file for a project
containing zero-initialized data in additional memories would be extremely large - for example ~134 MB in case of
*STM32F4* when anything is placed in `.ccm.bss`. 

[0.5.0](https://github.com/DISTORTEC/distortos/compare/v0.4.0...v0.5.0) - 2017-09-14
------------------------------------------------------------------------------------

### Added

- Support for whole [STM32L0](http://www.st.com/stm32l0) chip family.
- Support and test configuration for [NUCLEO-L073RZ](http://www.st.com/en/evaluation-tools/nucleo-l073rz.html) board
with *STM32L0* chip.
- Support and test configuration for [32F769IDISCOVERY](http://www.st.com/en/evaluation-tools/32f769idiscovery.html)
board with *STM32F7* chip.
- Test of `Thread::generateSignal()` and `Thread::queueSignal()` returning `ENOSPC` when the amount of target thread's
free stack is too small to request signal delivery.
- *GDB* pretty-printers for `estd` containers (`estd::ContiguousRange`, `estd::IntrusiveForwardList`,
{'fraction_non_alphanumeric': 0.18230358504958047, 'fraction_numerical': 0.02250190694126621, 'mean_word_length': 3.5888013998250217, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 10, 'lorem ipsum': 0, 'www.': 6, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3160159', 'n_tokens_mistral': 1712, 'n_tokens_neox': 1605, 'n_words': 493}