1. Their license is MIT. At least it allows us
to borrow ideas
from their code for how to implement stuff in ReactOS’ console/terminal.
(I suppose that if one wants to copy entire chunks of code, that I
wouldn’t do it, I’m not sure how the licensing of the original ReactOS
console GPL code would have to change.
We've been over-cautious with legal matters long enough, so let's get
this one straight: MIT is fully compatible with any version of GPL.
This is confirmed by GNU:
https://www.gnu.org/licenses/license-list.en.html#X11License
You can take as much code as you want from the Terminal repo and
integrate it into our GPL code, as long as you add the copyright and
permission notice from
https://github.com/microsoft/Terminal/blob/master/LICENSE to the file
header. Our work will stay GPL while those imported portions may also be
used under the terms of the MIT license.
3. ReactOS doesn’t use C++ in the console
We've also been over-cautious with C++ in the past. But as we're moving
to GCC 8+ and MSVC 2015+, it's also time to reconsider our usage of C++.
Honestly, our project goal is hard enough as is! Let's not make it
harder by clinging to C and expecting everyone to happily spend time on
buffer sizes and pointer arithmetics when an STL container would do the
same job.
Since C++11, you finally have guarantees about STL buffers being
contiguous, so std::string and std::vector have become universal
alternatives to char[] and C arrays.
On that note, has anyone tried replacing our STLport with a newer STL
(such as LLVM's libc++) that is maintained and supports newer C++ features?
Cheers,
Colin