What about that discussion about why we have ditched out MSVC 2010 support (starting to depend on that fact, and thus, breaking any possibility of self-hosting ROS building on ROS using MSVC compiler (without the IDE), since later versions of MSVC only work on Vista+, and as an indirect consequence, too, opening the can of worms, that is, being able to "pollute", involuntarily or not, the ReactOS core code (kernel + drivers) with C99+ non-standard portable code -- ), and without having first warned heavily through all the mailing lists etc. , thus allowing the developers to voice their concerns publicly in the MLs ? This was done around in mattermost only, after we decided for some reason that we wouldn't need the VC2010 buildbots anymore.
Hermes.
-----Original Message----- From: Ros-dev ros-dev-bounces@reactos.org On Behalf Of Colin Finck Sent: Sun Nov 15 17:24:22 UTC 2020 To: ReactOS Development List ros-dev@reactos.org Subject: [ros-dev] Status Meeting (November 2020)
Hi all,
With several people asking for a status meeting, let's have another one before the year is over. Let me invite you to the meeting on
Thursday, 26th November 2020 19:00 UTC Mattermost private channel "Meeting"
So far, there is only one point on the agenda:
* Achievements and Future Outlook (everyone) What have you been working on and what are your plans?
Please submit further agenda proposals by answering to this mail.
Looking forward to see you!
Colin
What do you mean by C99+ non-portable code? GCC and Clang have -std=c(++)11 to keep it in an ISO compliant manner.
26 Kas 2020 Per 00:27 tarihinde Hermès BÉLUSCA-MAÏTO hermes.belusca@sfr.fr şunu yazdı:
What about that discussion about why we have ditched out MSVC 2010 support (starting to depend on that fact, and thus, breaking any possibility of self-hosting ROS building on ROS using MSVC compiler (without the IDE), since later versions of MSVC only work on Vista+, and as an indirect consequence, too, opening the can of worms, that is, being able to "pollute", involuntarily or not, the ReactOS core code (kernel + drivers) with C99+ non-standard portable code -- ), and without having first warned heavily through all the mailing lists etc. , thus allowing the developers to voice their concerns publicly in the MLs ? This was done around in mattermost only, after we decided for some reason that we wouldn't need the VC2010 buildbots anymore.
Hermes.
-----Original Message----- From: Ros-dev ros-dev-bounces@reactos.org On Behalf Of Colin Finck Sent: Sun Nov 15 17:24:22 UTC 2020 To: ReactOS Development List ros-dev@reactos.org Subject: [ros-dev] Status Meeting (November 2020)
Hi all,
With several people asking for a status meeting, let's have another one before the year is over. Let me invite you to the meeting on
Thursday, 26th November 2020 19:00 UTC Mattermost private channel "Meeting"So far, there is only one point on the agenda:
- Achievements and Future Outlook (everyone)
What have you been working on and what are your plans?
Please submit further agenda proposals by answering to this mail.
Looking forward to see you!
Colin
Ros-dev mailing list Ros-dev@reactos.org http://reactos.org/mailman/listinfo/ros-dev
Am 25.11.2020 um 22:26 schrieb Hermès BÉLUSCA-MAÏTO:
What about that discussion about why we have ditched out MSVC 2010 support
You mean reintroducing an ancient compiler that forces us to hack around its incapacity to deal with anything more modern than C89? One that already makes it harder to import third-party components and attract new developers?
Let's face it, we already make our incredible job of writing a Windows-compatible operating system even harder than Microsoft's - by supporting both GCC and MSVC. We spend enormous amounts of time to just get the basics right for both toolchains, and still fail at things like the C++ standard library. Ditching MSVC 2010 finally paves the way for importing a modern and trusted third-party C++ library like Clang's libc++ to replace our hacked and unmaintained stlport. Going even further, we could finally draw from the huge pool of talented C++ developers, who leverage the benefits of C++11 and beyond. Think about that next time you debug a memory leak or a deadlock that would have been impossible through std::unique_ptr or std::mutex.
This project won't ever become usable in a lifetime if we don't go with the time but stick to old habits forever. There is no inherent value in supporting old compilers, just wasted developer time. And don't tell me about self-hosting: It's not like anybody productively uses ReactOS for building ReactOS right now. If you just want to demonstrate that, use the RosBE GCC-based toolchain. I already spent hours on backporting that back to ReactOS/Windows XP...
Now I usually would have put that on the agenda for the meeting and asked for a vote. But as this year's ditching of MSVC 2010 is just the implementation of a meeting decision from 2 years ago (https://reactos.org/project-news/december-2018-meeting-minutes/), meeting votes are apparently not considered binding here. Neither is apparently the discussion we had in the related PR https://github.com/reactos/reactos/pull/2658.
So let's have an open discussion and voting process right here on the mailing list for everyone to see, to decide this once and for all! Just reply to this mail, tell about your reasons - and more importantly tell whether you support or reject dropping MSVC 2010 support.
Votes by CORE REACTOS MEMBERS are then counted on 1ST JANUARY 2021.
At this point, it should be obvious that I myself SUPPORT the decision to ditch building ReactOS with MSVC 2010.
Cheers,
Colin
Moin,
a few questions: * How much work needs to be done to get newer versions of MSVC running by e.g. using the shims? (not GUI, only the toolchain, and possibly hack around installer problems)? * How big is the danger to lose the capability to exchange ReactOS and Win 2k3 system files? * There isn't a time plan to get at least the core system file structure, exports and structures at Win 6+ level yet, right? * How big is the danger that newer MSVC versions can't be used to compile ReactOS anymore? (E.g. loosing the capability to build Win XP compatible files)
I think the first question/solution could be a short time compromise, the rest points at the "real" long time solution: targeting a newer Windows version..
Best regards, Michael Fritscher
Hey,
How much work needs to be done to get newer versions of MSVC running
This needs our compatibility layer to be finished (it's progressing, but slowly)
How big is the danger to lose the capability to exchange ReactOS and Win 2k3 system files?
As far as I know, we don't have issues with that atm with the latest MSVC
There isn't a time plan to get at least the core system file structure, exports and structures at Win 6+ level yet, right?
Nope. But a compatibility layer in usermode should be enough for now
How big is the danger that newer MSVC versions can't be used to compile ReactOS anymore? (E.g. loosing the capability to build Win XP compatible files)
We use a barebones compiler, without any SDK or something. The only danger I see - they may remove support for old architectures or SEH mechanism (CxxFrameHandler3). So far latest version work
And we always have GCC and clang, the latter is going to have a full SEH support in some near future
Victor
On Thu, 2020-11-26 at 10:07 +0100, michael@fritscher.net wrote:
Moin,
a few questions:
- How much work needs to be done to get newer versions of MSVC
running by e.g. using the shims? (not GUI, only the toolchain, and possibly hack around installer problems)?
- How big is the danger to lose the capability to exchange ReactOS
and Win 2k3 system files?
- There isn't a time plan to get at least the core system file
structure, exports and structures at Win 6+ level yet, right?
- How big is the danger that newer MSVC versions can't be used to
compile ReactOS anymore? (E.g. loosing the capability to build Win XP compatible files)
I think the first question/solution could be a short time compromise, the rest points at the "real" long time solution: targeting a newer Windows version..
Best regards, Michael Fritscher
Ros-dev mailing list Ros-dev@reactos.org http://reactos.org/mailman/listinfo/ros-dev
Agreed with Colin.
On 26-Nov-20 09:27, Colin Finck wrote:
Am 25.11.2020 um 22:26 schrieb Hermès BÉLUSCA-MAÏTO:
What about that discussion about why we have ditched out MSVC 2010 support
You mean reintroducing an ancient compiler that forces us to hack around its incapacity to deal with anything more modern than C89? One that already makes it harder to import third-party components and attract new developers?
Let's face it, we already make our incredible job of writing a Windows-compatible operating system even harder than Microsoft's - by supporting both GCC and MSVC. We spend enormous amounts of time to just get the basics right for both toolchains, and still fail at things like the C++ standard library. Ditching MSVC 2010 finally paves the way for importing a modern and trusted third-party C++ library like Clang's libc++ to replace our hacked and unmaintained stlport. Going even further, we could finally draw from the huge pool of talented C++ developers, who leverage the benefits of C++11 and beyond. Think about that next time you debug a memory leak or a deadlock that would have been impossible through std::unique_ptr or std::mutex.
This project won't ever become usable in a lifetime if we don't go with the time but stick to old habits forever. There is no inherent value in supporting old compilers, just wasted developer time. And don't tell me about self-hosting: It's not like anybody productively uses ReactOS for building ReactOS right now. If you just want to demonstrate that, use the RosBE GCC-based toolchain. I already spent hours on backporting that back to ReactOS/Windows XP...
Now I usually would have put that on the agenda for the meeting and asked for a vote. But as this year's ditching of MSVC 2010 is just the implementation of a meeting decision from 2 years ago (https://reactos.org/project-news/december-2018-meeting-minutes/), meeting votes are apparently not considered binding here. Neither is apparently the discussion we had in the related PR https://github.com/reactos/reactos/pull/2658.
So let's have an open discussion and voting process right here on the mailing list for everyone to see, to decide this once and for all! Just reply to this mail, tell about your reasons - and more importantly tell whether you support or reject dropping MSVC 2010 support.
Votes by CORE REACTOS MEMBERS are then counted on 1ST JANUARY 2021.
At this point, it should be obvious that I myself SUPPORT the decision to ditch building ReactOS with MSVC 2010.
Cheers,
Colin
Ros-dev mailing list Ros-dev@reactos.org http://reactos.org/mailman/listinfo/ros-dev
I think I agree with Colin on that. I personally remember some people who said something like «meh… C89». You can try to change my mind though, if you can answer two questions: * How can we attract new experienced developers who prefer new C standards while still conforming to C89? * How can we make 3rd party modules maintenance to have less overhead while still having support for MSVC2010? Seriously regarding self-hosting I think we should focus on NT6+ application compatibility shims to support newer MS CL compilers.
Thursday, 26 November 2020, 11:28 +03:00 from Colin Finck colin@reactos.org: Am 25.11.2020 um 22:26 schrieb Hermès BÉLUSCA-MAÏTO:
What about that discussion about why we have ditched out MSVC 2010 support
You mean reintroducing an ancient compiler that forces us to hack around its incapacity to deal with anything more modern than C89? One that already makes it harder to import third-party components and attract new developers?
Let's face it, we already make our incredible job of writing a Windows-compatible operating system even harder than Microsoft's - by supporting both GCC and MSVC. We spend enormous amounts of time to just get the basics right for both toolchains, and still fail at things like the C++ standard library. Ditching MSVC 2010 finally paves the way for importing a modern and trusted third-party C++ library like Clang's libc++ to replace our hacked and unmaintained stlport. Going even further, we could finally draw from the huge pool of talented C++ developers, who leverage the benefits of C++11 and beyond. Think about that next time you debug a memory leak or a deadlock that would have been impossible through std::unique_ptr or std::mutex.
This project won't ever become usable in a lifetime if we don't go with the time but stick to old habits forever. There is no inherent value in supporting old compilers, just wasted developer time. And don't tell me about self-hosting: It's not like anybody productively uses ReactOS for building ReactOS right now. If you just want to demonstrate that, use the RosBE GCC-based toolchain. I already spent hours on backporting that back to ReactOS/Windows XP...
Now I usually would have put that on the agenda for the meeting and asked for a vote. But as this year's ditching of MSVC 2010 is just the implementation of a meeting decision from 2 years ago ( https://reactos.org/project-news/december-2018-meeting-minutes/ ), meeting votes are apparently not considered binding here. Neither is apparently the discussion we had in the related PR https://github.com/reactos/reactos/pull/2658 .
So let's have an open discussion and voting process right here on the mailing list for everyone to see, to decide this once and for all! Just reply to this mail, tell about your reasons - and more importantly tell whether you support or reject dropping MSVC 2010 support.
Votes by CORE REACTOS MEMBERS are then counted on 1ST JANUARY 2021.
At this point, it should be obvious that I myself SUPPORT the decision to ditch building ReactOS with MSVC 2010.
Cheers,
Colin
_______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://reactos.org/mailman/listinfo/ros-dev
-- Stanislav Motylkov
Many words were said already about dropping the support for old compilers. I agree with all of them and want to put one more argument on top of it from myself.
There are a lot of innovations happen in compilers and tooling. Big companies put thousands of man-hours to improve compiler toolchains and standard libraries (LLVM and libc++ are the headliners here - everything goes there first). It's silly not to use all of those, it makes finding bugs easier by orders of magnitude (modern C++ makes you write code with less bugs too, but that has been said already). For example, AddressSanitizer will show you out of bounds access right where it happened, with stack trace and memory contents.
But there is one thing here, it doesn't work without the standard library support. Of course, we can write that into our own lib (stlport?), reinventing the wheel. But isn't it better to spend time on something ReactOS-related, where there is no open source code available at all? (note: I'm asking about who is going to do that)
And if we choose to incorporate libc++ into our project, which supports all of that tooling out of the box for Windows, we have another problem - it can't be compiled with ancient compilers.
So basically, the choice is simple - either we support building ReactOS with old compilers (this is not only about MSVC2010, but for everything which doesn't support modern-enough C++), or we benefit from modern tech for dynamic and static code analysis. I prefer the latter.
Regards, Victor
And it's not possible to use these tools and libraries as plug-in and -out? I mean, for example, for people interested in these, and some of our buildbots, to do "configure+build using libc++ and LLVM" in order to get more info about the code they write in ROS, and in such a way that it is also possible for other people who want to build ROS with e.g. MSVC 2010, to instead "configure+build using MSVC 2010 + older lib" ?
Regards, Hermes
-----Original Message----- From: Ros-dev ros-dev-bounces@reactos.org On Behalf Of Victor Perevertkin Sent: 18. prosinca 2020. 05:13 To: ReactOS Development List ros-dev@reactos.org Subject: Re: [ros-dev] Status Meeting (November 2020)
Many words were said already about dropping the support for old compilers. I agree with all of them and want to put one more argument on top of it from myself.
There are a lot of innovations happen in compilers and tooling. Big companies put thousands of man-hours to improve compiler toolchains and standard libraries (LLVM and libc++ are the headliners here - everything goes there first). It's silly not to use all of those, it makes finding bugs easier by orders of magnitude (modern C++ makes you write code with less bugs too, but that has been said already). For example, AddressSanitizer will show you out of bounds access right where it happened, with stack trace and memory contents.
But there is one thing here, it doesn't work without the standard library support. Of course, we can write that into our own lib (stlport?), reinventing the wheel. But isn't it better to spend time on something ReactOS-related, where there is no open source code available at all? (note: I'm asking about who is going to do that)
And if we choose to incorporate libc++ into our project, which supports all of that tooling out of the box for Windows, we have another problem - it can't be compiled with ancient compilers.
So basically, the choice is simple - either we support building ReactOS with old compilers (this is not only about MSVC2010, but for everything which doesn't support modern-enough C++), or we benefit from modern tech for dynamic and static code analysis. I prefer the latter.
Regards, Victor
_______________________________________________ Ros-dev mailing list Ros-dev@reactos.org http://reactos.org/mailman/listinfo/ros-dev
As I said, "It doesn't work without the standard library support". You will need to use a different standard library for old compilers
Victor
On Mon, 2020-12-21 at 18:47 +0100, Hermès BÉLUSCA-MAÏTO wrote:
But there is one thing here, it doesn't work without the standard library
support.
Hello everybody and a happy new year!
Am 26.11.2020 um 09:27 schrieb Colin Finck:
So let's have an open discussion and voting process right here on the mailing list for everyone to see, to decide this once and for all! Just reply to this mail, tell about your reasons - and more importantly tell whether you support or reject dropping MSVC 2010 support.
Votes by CORE REACTOS MEMBERS are then counted on 1ST JANUARY 2021.
1st January has passed and it's time to count the votes cast on the mailing list. First of all, a big thank you to the people who have submitted their opinions! Your votes matter to get the best possible overview on this topic.
It's a pity that many developers have not replied, when I'm sure that they have an opinion here. On the other hand, it's quite understandable considering that this is already the 3rd (and definitely last!) time we are debating this matter.
So without further ado, here are the votes everyone can gather from the replies on ros-dev:
Dropping MSVC 2010 support for building ReactOS =============================================== * Colin Finck * Dominik Hornung * Ged Murphy * Mark Jansen * Stanislav Motylkov * Victor Perevertkin
Keeping MSVC 2010 support for building ReactOS ============================================== * Doug Lyons * Hermès Bélusca-Maïto * Joachim Henze * Oleg Dubinskij
Third discussion, third time it's the same result. Thanks for providing a clear answer on that!
Note that I haven't applied the "CORE REACTOS MEMBERS" filter here, but that would lead to roughly the same number of votes getting subtracted on both sides. I also leave it up to you to merge this result with the votes cast in https://github.com/reactos/reactos/pull/2658. However, there is just no calculation where the "Keeping" fraction has a majority.
I'm glad to say that this result allows us to continue improving ReactOS. By not sticking with abandoned compilers like MSVC 2010 indefinitely, we can leverage the powers of C99 and C++11 and all third-party projects that have been developed after 2010.
Victor's recent integration of WDF/KMDF has already paved the way for a new storage stack that many of you could already test. And an import of libc++ would finally fix the mess that our current C++ STL support is.
Cheers,
Colin
I won't waste your time by repeating what's already written here about dropping VS2010 support. Count my voice in for dropping the support for MSVC 2010.
Even though I love old computers, I always envisioned ReactOS as a modern operating system for modern computers. There are other communities for those who like old stuff (MS-DOS 6.22, Windows 3.11, Watcom compilers, etc).
If ReactOS can benefit from newest technologies made accessible by other - it should!
Regards, Aleksey Bragin
On 1/7/2021 9:39 AM, Colin Finck wrote:
Hello everybody and a happy new year!
Am 26.11.2020 um 09:27 schrieb Colin Finck:
So let's have an open discussion and voting process right here on the mailing list for everyone to see, to decide this once and for all! Just reply to this mail, tell about your reasons - and more importantly tell whether you support or reject dropping MSVC 2010 support.
Votes by CORE REACTOS MEMBERS are then counted on 1ST JANUARY 2021.
1st January has passed and it's time to count the votes cast on the mailing list. First of all, a big thank you to the people who have submitted their opinions! Your votes matter to get the best possible overview on this topic.
It's a pity that many developers have not replied, when I'm sure that they have an opinion here. On the other hand, it's quite understandable considering that this is already the 3rd (and definitely last!) time we are debating this matter.
So without further ado, here are the votes everyone can gather from the replies on ros-dev:
Dropping MSVC 2010 support for building ReactOS
- Colin Finck
- Dominik Hornung
- Ged Murphy
- Mark Jansen
- Stanislav Motylkov
- Victor Perevertkin
Keeping MSVC 2010 support for building ReactOS
- Doug Lyons
- Hermès Bélusca-Maïto
- Joachim Henze
- Oleg Dubinskij
Third discussion, third time it's the same result. Thanks for providing a clear answer on that!
Note that I haven't applied the "CORE REACTOS MEMBERS" filter here, but that would lead to roughly the same number of votes getting subtracted on both sides. I also leave it up to you to merge this result with the votes cast in https://github.com/reactos/reactos/pull/2658. However, there is just no calculation where the "Keeping" fraction has a majority.
I'm glad to say that this result allows us to continue improving ReactOS. By not sticking with abandoned compilers like MSVC 2010 indefinitely, we can leverage the powers of C99 and C++11 and all third-party projects that have been developed after 2010.
Victor's recent integration of WDF/KMDF has already paved the way for a new storage stack that many of you could already test. And an import of libc++ would finally fix the mess that our current C++ STL support is.
Cheers,
Colin