Comments (16)
-
This is a difficult proposal to understand grammatically and has a number of spelling errors. I believe the committee should consider how clear proposals need to be in order to be accepted.
-
I'm not certain, but this appears to be dependent on SDL-0043. In my research, the boost library is only available at C++11. This proposal should not have been simultaneously in review with it.
-
Although this proposal doesn't state it, the Boost library's license appears to be MIT. Before this would be accepted, I think this would have to be cleared by the SDLC lawyers. The MIT is very permissive, so it should be okay.
With that said, the overall idea of this proposal seems good. Having well-tested library support for common functions that are broadly cross-platform seems like a good addition. If a platform is not supported however, will having this library be more of a burden than our own custom code?
from sdl_evolution.
I'm not certain, but this appears to be dependent on SDL-0043. In my research, the boost library is only available at C++11. This proposal should not have been simultaneously in review with it.
The boost library available for c++98 as well. Basically, it has different parts(sub-libraries), some of them indeed are available only together with c++11 whereas other are working fine with c++98.
Additional note: since version 1.56 Boost library officially supports QCC4.2 which is default compiler for QNX6.5 and based on gcc4.2. The gcc4.2 does not support c++11.
Thus, I don't see any dependency on SDL-0043 at all.
from sdl_evolution.
Overall
- I support the use of boost libraries in the core project. Boost is a well established library with high quality code and a permissive license.
- As stated, the amount of features we could leverage will depend on if we move to c++11 or stay at c++98, but there are enough features at the c++98 level that make this addition worthwhile.
Concerns
- If this is accepted, we will have to weigh out if we wish to refactor the different parts of the project to use the Boost API's over our custom classes.
- If we don't believe refactoring certain code with the Boost API's would be worthwhile, we will need to consider if we should always use our custom implementation of those specific classes/features. We should avoid getting into situations where sometimes we use one and sometimes we use the other.
- If the steering committee accepts this proposal we will need to then take it through the SDLC legal team to ensure we can add it to the project.
from sdl_evolution.
Is there any sort of guess on timeline or lines of code changed for this?
from sdl_evolution.
I believe it would depend on which aspect you wanted to attempt to refactor to use the Boost APIs. Maybe like, refactor to use Boosts Async features over custom Threads as an example?
from sdl_evolution.
I agree with Joey and Joel's comments. Also the best advantage of these changes would be for future portability of SDL Core. Other than that, I don't see what is currently broken with the utilities that boost aims to replace.
I would also be interested in a timeline or an estimate for the amount of work for these changes. I am under the impression that the amount of refactoring to make these changes worthwhile will be astronomical. Also a plan would need to be developed for mitigating bugs introduced by removing existing utilities and replacing with boost.
from sdl_evolution.
@JackLivio @joeljfischer @joeygrover
The main idea in this proposal is to describe what is boost, what advantages it has and why it could be useful for SDL.
If committee will accept this proposal and allow to use boost in SDL we are going to prepare several proposals for the future refactoring.
To me, it looks like following
- Substitute own implementation of the
FileSystem
andDateTime
classes in SDL - Remove own timer's, which is not sufficient enough, in favor of the boost's
- Use Asio for the threads management and async operations - this one could be split to several small pieces
- Use Boost's synchronization primitives
from sdl_evolution.
The Steering Committee has deferred this proposal, as they've agreed the author will need to prepare a more specific proposal, with which exact components could be replaced with the Boost library. The revised proposal should also clarify which specific version of the Boost library would be used.
from sdl_evolution.
The pull request for the additional proposal is located at the following link
#148
from sdl_evolution.
The proposed version of the Boost library of 1.56
from sdl_evolution.
Can I ask why 1.56 as this is a quite old version? (1.64 being the newest)
from sdl_evolution.
@tpulatha This is the first version which is officially supported QCC4 for QNX6.5. and almost all its features are working with the old compilers. The newest versions of the boots library contain some number of sub-libraries which could be compiled only with newest c++ compiler as they required some specific c++11/14 features.
In order to avoid confusion about features set between hardware which uses legacy QNX and regular Linux(like Ubuntu 16) I proposed to start at least from 1.56 to be able to use the same version under all systems we have to support.
from sdl_evolution.
I must admit to still being leery about this. It seems like a lot of work for relatively small gains. As I am not a Core developer, however, I will defer to others' judgment.
from sdl_evolution.
@joeljfischer As I highlighted in the proposal the main goal is to substitute our own implementation of the different algorithms and primitives we are currently using in SDL with some stable and production ready solution which will not require any efforts for re-working and/or extension during porting to any other platform. As the example, I show the FileSystem
class where we way
- Reduce code amount
- Make the code more stable and error free
- Simplify the portability
So the advantage is quite obvious in this case - if we have a good framework which provides us ready functionality, we have to prefer to use it instead of writing own implementation for the same
from sdl_evolution.
The Steering Committee has noted that there may be overlapping benefits of Boost and C++11 once C++11 has been implemented. However, as a date for C++11 implementation has not yet been determined, the benefits of using Boost library in the interim warrant this proposal's acceptance.
from sdl_evolution.
Issue entered: [SDL 0044] Use Boost library in SDL
from sdl_evolution.
Related Issues (20)
- [Withdrawn] SDL 0330 - App Service Subscription Resumption HOT 8
- [Accepted] Revise SDL-0296 Possibility to update video streaming capabilities during ignition cycle HOT 9
- [Withdrawn] Revise SDL 0280 - Adding new parameter of requiresAudioSupport and BluetoothDeviceAddress HOT 14
- [Withdrawn] SDL 0331 - Add new SDL System Structure using Mediation Application for middle/low-end class model of Powered Two Wheeler and low-cost vehicle models HOT 22
- [Accepted with Revisions] SDL 0332 - Additional Video Streaming Capabilities Validation HOT 8
- [Accepted] SDL 0333 - Handle Scenario Where no Valid Cert is Available HOT 18
- [Accepted with Revisions] SDL 0334 - Transform SetDisplayLayout requests into UI.Show for HMIs HOT 5
- [Accepted with Revisions] SDL 0335 - Limit TextField Length According to HMI Capabilities HOT 16
- [Accepted] SDL 0336 - Strict Versioning for Outgoing Core Messages HOT 16
- [Accepted] SDL 0337 - Reject PROPRIETARY/HTTP SystemRequests when PTU is not in progress HOT 3
- [Accepted] SDL 0338 - Remove Unused Files From SDL Core HOT 1
- [Accepted] SDL 0338 Revisions - Remove Unused Files From SDL Core HOT 1
- [Accepted] SDL 0339 - Replace `thread::Thread` implementation with `std::thread` from C++11 HOT 8
- [Accepted] SDL 0340 - ATF Selenium Support HOT 10
- [Accepted] SDL 0341 - Add Generic HMI Plugin Support HOT 26
- [Accepted] SDL 0342 - Remove Policy Mode Option From SDL Core HOT 6
- [Withdrawn] SDL 0343 - Add Notifications for Required App Support HOT 31
- [Accepted] SDL 0338 Revisions - Remove Unused Files From SDL Core HOT 1
- [Accepted] SDL 0344 - Use Promises in Server Logic of SDL Policy Server HOT 2
- [Accepted] SDL 0345 - Android 12 Issues HOT 26
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from sdl_evolution.