10-10-2018, 02:22 AM
Hi there. We are working on the automotive framework for programming of autonomous cars. Our framework has features that are very similar to those in Adaptive Autosar: https://www.autosar.org/standards/adaptive-platform/. We plan to certify this framework as a Safety Element Out of Context according to ISO 26262.
The framework is written in C++ and makes rather heavy use of constructs implemented in Standard Library (see below for the full list). Many C++ keywords like throw or lambdas use the C++ standard library. So removing the C++ standard library would lead to a dysfunctional compiler.
We are aware of 3 Standard Library implementations:
1. LLVM libc++: https://libcxx.llvm.org/docs/
2. GCC libstdc++: https://gcc.gnu.org/
3. Dinkumware: https://www.dinkumware.com/
Now the problem is that none of the above libraries are certified according to ISO 26262.
Questions:
1. **Are you aware of any ISO 26262 certified Standard Library? Or anybody that is working on it?**
2. **Would any of the above implementations qualify for a “proven in use†argument?**
Constructs in our framework used from the Standard Library:
```cpp
std::string
std::vector
std::map
std::unordered_map
std::allocator
std::allocator_traits
std::shared_ptr
std::make_shared
std::unique_ptr
std::make_unique
std::weak_ptr
std::enable_shared_from_this
std::move
std::ostream
std::ostringstream
std::lock_guard
std::mutex
std::shared_future
std::thread::hardware_concurrency
std::this_thread::yield()
std::enable_if
std::false_type
std::is_same
std::declval
std::function
std::bind
std::chrono*
std::numeric_limits
std::shared_future
std::runtime_error
std::invalid_argument
std::int32_t
std::type_index
std::snprintf
```
The framework is written in C++ and makes rather heavy use of constructs implemented in Standard Library (see below for the full list). Many C++ keywords like throw or lambdas use the C++ standard library. So removing the C++ standard library would lead to a dysfunctional compiler.
We are aware of 3 Standard Library implementations:
1. LLVM libc++: https://libcxx.llvm.org/docs/
2. GCC libstdc++: https://gcc.gnu.org/
3. Dinkumware: https://www.dinkumware.com/
Now the problem is that none of the above libraries are certified according to ISO 26262.
Questions:
1. **Are you aware of any ISO 26262 certified Standard Library? Or anybody that is working on it?**
2. **Would any of the above implementations qualify for a “proven in use†argument?**
Constructs in our framework used from the Standard Library:
```cpp
std::string
std::vector
std::map
std::unordered_map
std::allocator
std::allocator_traits
std::shared_ptr
std::make_shared
std::unique_ptr
std::make_unique
std::weak_ptr
std::enable_shared_from_this
std::move
std::ostream
std::ostringstream
std::lock_guard
std::mutex
std::shared_future
std::thread::hardware_concurrency
std::this_thread::yield()
std::enable_if
std::false_type
std::is_same
std::declval
std::function
std::bind
std::chrono*
std::numeric_limits
std::shared_future
std::runtime_error
std::invalid_argument
std::int32_t
std::type_index
std::snprintf
```
<t></t>