<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Recent changes to Home</title><link>https://sourceforge.net/p/ecstl/wiki/Home/</link><description>Recent changes to Home</description><atom:link href="https://sourceforge.net/p/ecstl/wiki/Home/feed" rel="self"/><language>en</language><lastBuildDate>Mon, 06 May 2024 08:21:44 -0000</lastBuildDate><atom:link href="https://sourceforge.net/p/ecstl/wiki/Home/feed" rel="self" type="application/rss+xml"/><item><title>Home modified by Petr Pazourek</title><link>https://sourceforge.net/p/ecstl/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v6
+++ v7
@@ -53,22 +53,29 @@
 - Easy to use
 - Headers only
 - No 3rd-party dependencies
-- Cross-platform: Windows, Linux, Mac OS X, Android (gcc, clang, msvc, mingw, mingw-w64, c++builder)
+- Cross-platform: Windows, Linux, Mac OS X (gcc, clang, msvc, mingw, mingw-w64, c++builder)
 - Doesn't require C99

 # Usage
 To start using ECSTL you need to make 2 simple steps.

 ## Step 1: Adding includes
-At first your project needs to know about ECSTL. For that you have to add `ecstl/include` to the project include paths
+At first your project needs to know about ECSTL. For that you have to add `ecstl/include` to the project include paths.

 ## Step 2: Using
 The next step is to include files you need. All modules are created as special macros. For more information see original CPP STL documentation or a ECSTL doxygen documentation. 

 # License
-ECSTL is licensed under the [MIT](https://www.tldrlegal.com/l/mit). You can freely use it in your commercial or opensource software.
+ECSTL is licensed under the [MITBSD](https://spdx.org/licenses/0BSD.html). You can freely use it in your commercial or opensource software.
+
+# Thread safety
+This colection of containers is Not thread safe. The container functions should not be called concurrently by different threads. In case of necessity, use mutex or other ways to protect data from concurrent access.

 # Version history
+## Version 0.8 (6 May 2024)
+ - fixed LIST container
+ - fixed some MISRA-C 2004 violations in the list container
+
 ## Version 0.7 (2 Dec 2021)
  - fixed a few MISRA-C:2004 violations
  - added a way to use the containers in a struct
@@ -83,5 +90,3 @@
  - Initial public release
  - queue, deque, stack, list containers
  - list iterators
-
-Still under development
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Petr Pazourek</dc:creator><pubDate>Mon, 06 May 2024 08:21:44 -0000</pubDate><guid>https://sourceforge.net2b4079876a6adc776d59cf3988f2da0c0e35208b</guid></item><item><title>Home modified by Petr Pazourek</title><link>https://sourceforge.net/p/ecstl/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v5
+++ v6
@@ -69,14 +69,19 @@
 ECSTL is licensed under the [MIT](https://www.tldrlegal.com/l/mit). You can freely use it in your commercial or opensource software.

 # Version history
-##Version 0.5 (24 Nov 2017)
- - initial public release;
+## Version 0.7 (2 Dec 2021)
+ - fixed a few MISRA-C:2004 violations
+ - added a way to use the containers in a struct
+ - removed standalone iterator template
+
+## Version 0.6 (21 Sep 2020)
+ - added static initializers
+ - fixed a missing include due to using a size_t type
+ - code is C89 compliant
+
+## Version 0.5 (24 Nov 2017)
+ - Initial public release
  - queue, deque, stack, list containers
  - list iterators

-##Version 0.6 (21 Sep 2020)
- - code should be C89 compliant,
- - added static initializers,
- - added missing includes due to using "size_t" type
-  
-[[download_button]]
+Still under development
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Petr Pazourek</dc:creator><pubDate>Thu, 02 Dec 2021 11:29:59 -0000</pubDate><guid>https://sourceforge.net7767650ca52085da8abf24c85ccbb76188c12c8f</guid></item><item><title>Home modified by Petr Pazourek</title><link>https://sourceforge.net/p/ecstl/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v4
+++ v5
@@ -69,9 +69,14 @@
 ECSTL is licensed under the [MIT](https://www.tldrlegal.com/l/mit). You can freely use it in your commercial or opensource software.

 # Version history
-##Version 0.6 (21 Sep 2020)
- - code C89 compliant;
+##Version 0.5 (24 Nov 2017)
+ - initial public release;
  - queue, deque, stack, list containers
  - list iterators

+##Version 0.6 (21 Sep 2020)
+ - code should be C89 compliant,
+ - added static initializers,
+ - added missing includes due to using "size_t" type
+  
 [[download_button]]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Petr Pazourek</dc:creator><pubDate>Sun, 18 Oct 2020 18:25:35 -0000</pubDate><guid>https://sourceforge.net48db996c9f062c37bb8cb37aad9c2e36fd3c16c0</guid></item><item><title>Home modified by Petr Pazourek</title><link>https://sourceforge.net/p/ecstl/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v3
+++ v4
@@ -69,8 +69,8 @@
 ECSTL is licensed under the [MIT](https://www.tldrlegal.com/l/mit). You can freely use it in your commercial or opensource software.

 # Version history
-##Version 0.5 (24 Nov 2017)
- - Initial public release
+##Version 0.6 (21 Sep 2020)
+ - code C89 compliant;
  - queue, deque, stack, list containers
  - list iterators

&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Petr Pazourek</dc:creator><pubDate>Sun, 18 Oct 2020 17:50:20 -0000</pubDate><guid>https://sourceforge.net3e239e7d301f0880893edd058041b40ba940987f</guid></item><item><title>Home modified by Petr Pazourek</title><link>https://sourceforge.net/p/ecstl/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v2
+++ v3
@@ -69,10 +69,9 @@
 ECSTL is licensed under the [MIT](https://www.tldrlegal.com/l/mit). You can freely use it in your commercial or opensource software.

 # Version history
-
-
-
-
-Still under development
+##Version 0.5 (24 Nov 2017)
+ - Initial public release
+ - queue, deque, stack, list containers
+ - list iterators

 [[download_button]]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Petr Pazourek</dc:creator><pubDate>Fri, 24 Nov 2017 12:13:02 -0000</pubDate><guid>https://sourceforge.net9f7e64ed7c44bd0ed81343ef48c4043b3a941e57</guid></item><item><title>Home modified by Petr Pazourek</title><link>https://sourceforge.net/p/ecstl/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;pre&gt;--- v1
+++ v2
@@ -1,8 +1,78 @@
-Welcome to your wiki!
+# ECSTL - Embedded C Standard Template Library

-This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: [SamplePage].
+The Embedded C Standard Template Library (ECSTL) is a software library for the C programming language. It is a clone of the C++ STL especially for embedded systems without using the heap (malloc/free functions).

-The wiki uses [Markdown](/p/ecstl/wiki/markdown_syntax/) syntax.
+[TOC]

-[[members limit=20]]
+# Introduction
+
+The ECSTL achieves its results through the use of macros. This approach provides compile-time polymorphism. Current focus is on implementation of a wide range of CPP STL containers.
+
+## Minimal example
+
+Here is a minimal example using the *queue* container:
+
+```c
+#include &amp;lt;stdio.h&amp;gt;
+#include &amp;lt;stdlib.h&amp;gt;
+#include &amp;lt;queue.h&amp;gt; // Step1: include the header.
+
+// Step2: define queue's properties
+DEFINE_QUEUE_TYPE(myqueue_int_t, int, 16);
+
+int main(void)
+{
+    DEFINE_QUEUE(myqueue_int_t, myqueue); // Step3: define queue
+    int sum = 0;
+
+    QUEUE_PUSH(myqueue, 10); //insert data
+    QUEUE_PUSH(myqueue, 20);
+    QUEUE_PUSH(myqueue, 30);
+
+    while(!QUEUE_EMPTY( myqueue ))
+    {
+        sum += *QUEUE_FRONT( myqueue ); //read data
+        QUEUE_POP( myqueue ); //remove data
+    }
+
+    printf( "The elements of myqueue add up to %d\n", sum );
+    printf( "\nThe final size of myqueue is %d\n", QUEUE_SIZE( myqueue ));
+    return 0;
+}
+```
+
+And its output:
+
+```
+The elements of myqueue add up to 60
+The final size of myqueue is 0
+```
+
+## Features
+- Very small
+- Easy to use
+- Headers only
+- No 3rd-party dependencies
+- Cross-platform: Windows, Linux, Mac OS X, Android (gcc, clang, msvc, mingw, mingw-w64, c++builder)
+- Doesn't require C99
+
+# Usage
+To start using ECSTL you need to make 2 simple steps.
+
+## Step 1: Adding includes
+At first your project needs to know about ECSTL. For that you have to add `ecstl/include` to the project include paths
+
+## Step 2: Using
+The next step is to include files you need. All modules are created as special macros. For more information see original CPP STL documentation or a ECSTL doxygen documentation. 
+
+# License
+ECSTL is licensed under the [MIT](https://www.tldrlegal.com/l/mit). You can freely use it in your commercial or opensource software.
+
+# Version history
+
+
+
+
+Still under development
+
 [[download_button]]
&lt;/pre&gt;
&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Petr Pazourek</dc:creator><pubDate>Thu, 02 Nov 2017 15:36:46 -0000</pubDate><guid>https://sourceforge.net723711450da3fe4415a4b14942fa055714e90d61</guid></item><item><title>Home modified by Petr Pazourek</title><link>https://sourceforge.net/p/ecstl/wiki/Home/</link><description>&lt;div class="markdown_content"&gt;&lt;p&gt;Welcome to your wiki!&lt;/p&gt;
&lt;p&gt;This is the default page, edit it as you see fit. To add a new page simply reference it within brackets, e.g.: &lt;span&gt;[SamplePage]&lt;/span&gt;.&lt;/p&gt;
&lt;p&gt;The wiki uses &lt;a class="" href="/p/ecstl/wiki/markdown_syntax/"&gt;Markdown&lt;/a&gt; syntax.&lt;/p&gt;
&lt;p&gt;&lt;/p&gt;&lt;h6&gt;Project Members:&lt;/h6&gt;
	&lt;ul class="md-users-list"&gt;
		&lt;li&gt;&lt;a href="/u/pazourek/"&gt;Petr Pazourek&lt;/a&gt; (admin)&lt;/li&gt;
		
	&lt;/ul&gt;&lt;br/&gt;
&lt;p&gt;&lt;span class="download-button-59f700510d78c1577784b383" style="margin-bottom: 1em; display: block;"&gt;&lt;/span&gt;&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;/div&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Petr Pazourek</dc:creator><pubDate>Thu, 02 Nov 2017 15:34:49 -0000</pubDate><guid>https://sourceforge.net5b7097c1856564348738d4609eae8ebe0c2d9154</guid></item></channel></rss>