Alternatives?

By: Brendan (btrotter.delete@this.gmail.com), July 12, 2021 2:34 am
Room: Moderated Discussions
Hi,

cqwrteur (euloanty.delete@this.live.com) on July 11, 2021 11:58 am wrote:
> Brendan (btrotter.delete@this.gmail.com) on July 11, 2021 6:51 am wrote:
> > Michael S (already5chosen.delete@this.yahoo.com) on July 11, 2021 6:01 am wrote:
> > > Brendan (btrotter.delete@this.gmail.com) on July 11, 2021 1:54 am wrote:
> > > > cqwrteur (euloanty.delete@this.live.com) on July 10, 2021 6:27 pm wrote:
> > > > > Oh. Modern C++ does not save us. Neither C nor C++ are fixable. Using C or C++ will
> > > > > destroy the earth and kill everyone. Using C or C++ violates human rights.
> > > > >
> > > > > Okay. That is exactly the Rust advocator like you's logic. Alex Gaynor, one of the Rustsec
> > > > > evanglist (who is actually Rust dev) actively pushes Rust into Linux kernel because he
> > > > > treats C and C++ as some kind of great evil like hitler who violates human rights.
> > > > >
> > > > > Right. Clearly Linus Torvalds is the worst human rights violator
> > > > > in the world based on him and people like you's logic.
> > > >
> > > > Let's pretend that you are responsible for Linux and everyone blames you each time a new CVE
> > > > is found; and you want Linux to improve and be the best/most secure kernel it can be.
> > > >
> > > > Let's pretend you started by investigating the causes of the last 200 CVEs, and
> > > > found that there's lots of causes (CPU/hardware bugs that aren't the kernel's
> > > > fault at all, overflows, etc) but "memory safety" is one of the top causes.
> > > >
> > > > Now; what could you do?
> > >
> > > But does it matter?
> > > I mean, I believe that "memory safety" is one of the top causes, probably, in top 5 or even
> > > top 3, but I don't believe that it accounts for, say, more than 1/5th of all CVEs.
> > > I.e. it warrants attention, but very far from warranting such radical changes in methodology
> > > as switch to Rust that very likely has uncountable disadvantages vs current set of tools.
> >
> > It depends a lot on when you look and how you classify (and if you apply weights based on severity); but...
> >
> > For the current most recent 10 CVEs (from https://www.cvedetails.com/vulnerability-list/vendor_id-33/product_id-47/year-2021/Linux-Linux-Kernel.html
> >
> > starting from "CVE-2021-34693 from 2021-06-14" in case it changes and you end up looking at newer list); it
> > looks like 60% could be classified as "memory safety" (parts
> > of a data structure are uninitialized, out-of-bounds
> > reads, 3 x use-after-free, out-of-bounds memory write = 6/10).
> >
> > It could be a fluke (a larger sample would be better); but it's at least plausible
> > to claim that "memory safety" the single largest cause of CVEs in Linux.
> >
> > Of course it's also plausible to classify differently, and possible to argue that Rust
> > won't avoid (some? most? all?) the memory safety issues, or that Rust will create new
> > problems, or that "found CVEs" are a lot less important than "not found CVEs".
>
> https://cve.mitre.org/cgi-bin/cvekey.cgi?keyword=rust
>
> Same with Rust crates and std. You still see 80% of cves are memory safety cves.
>
> Notice that this is only in crates. A lot of security vulnerabilities are not shown. Redox OS whatever.
>
> https://bugzilla.mozilla.org/buglist.cgi?bug_id=1513519%2C1683439%2C1690169%2C1690718
> https://phabricator.services.mozilla.com/D103999
>
> Things like Linux kernel, a monolithic single address kernel,
> you need a lot of unsafe. You will still find a lot of cves.
>
>
> If your argument is that parts of data structures are uninitialized, use-after-free, actually
> C++ reduces a huge amount of problem too, even you can add checks for preventing oob issues
> (that is what libstdc++ or C++ standard library is doing). Also unlike Rust, you can change
> existing C code to make them safer while Rust could only be used in new code.
>
> However, linus torvalds clearly does not like it and reasonable
> about it. And yes, C++ EH is a huge issue in kernel.
>
> So, Rust must prove it is superior to modern C++. However, Rust still requires a huge amount of runtime afaik,
> due to the bloat of rustfmt and all sorts of other stuffs. Clearly, using Rust is no better either.

Ah, I think I can see what's going on now. The reason you're not interested in finding out if Rust is/isn't better than C (after they start building safe code on top of the "unsafe scaffolding" you've been cherry picking) is that you're a butthurt C++ advocate.

With that in mind; I think you should start by clearly defining which subset of Cthulhu is your personal concept of "modern C++" this week. Not that it really matters, given that there's a 50% chance that "all the worst parts of C, with every fad feature conceivable slapped on top with no foresight over a 30+ year period" will add support for safe/unsafe in its next reincarnation anyway.

> Also recently I've found the stupidity like this:
> https://github.com/Rust-for-Linux/linux/commit/c606d85a0d3c67b8221fee5fa67028bdebd4b0cc#diff-521fe5c9ece1aa1f8b66228171598263574aefc6fa4ba06a61747ec81ee9f5a3
>
>
> Instead of doing this
> void foo()
> {
> p[1].x().y() = p[2].x().y();
> }
>
>
> Now you have to do this. Who the fuck in rust team though this is a good idea.
> ///SAFETY: p has 5 elements
> ///XXXX
> ///XXXX
> unsafe fn foo()
> {
> (unsafe{p.get_mut_unchecked(1)}.unsafe {x()}.unwrap().unsafe{y()?})? =
> (unsafe{p.get_mut_unchecked(2)}.unsafe {x()}.unwrap().unsafe{y()?})?;
> }
>
> Rust one is completely unreadable, wasting programmers time and probably even leading to slower compilation.

Unlike C++; where it's impossible to be sure what something as innocent looking as "a = b + c;" actually does without scouring the source code to determine who overloaded what; where compile times have a reputation for being the worst of any language ever created (despite scavenging the concept of modules from other languages and slapping it onto their huge pile recently)?

> If the goal of Rust team is to make everything painful, why should I waste time to fight against
> the compiler? Instead of using that time to sanitize and fuzz? What's the benefit of using it?

Heh. This is how I feel about "smart pointers" in C++. If the goal of C++ is to double the (already 10 times worse) learning curve why should I fight against the compiler?

Note: I'm not a Rust advocate (I'm just willing to let other people spend their time experimenting so I can obtain better empirical evidence about the benefits and pitfalls of certain language features). To me; the goal should be to reduce complexity of the language (because I think "more complexity" translates directly into "higher chance of mistakes" and that programmers have enough complexity to deal with from the problem their code is trying to solve), and to reduce the time between a programmer making a mistake and the programmer finding out a mistake was made (primarily by designing language to maximize the practicality and effectiveness of "continual analysis while you type").

- Brendan
< Previous Post in ThreadNext Post in Thread >
TopicPosted ByDate
Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/09 09:56 PM
  Is unsafe hell truly good for linux kernel in the future?Brendan2021/07/10 12:59 AM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 01:37 PM
  Is unsafe hell truly good for linux kernel in the future?anon2021/07/10 04:14 AM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 01:40 PM
      Is unsafe hell truly good for linux kernel in the future?Gabriele Svelto2021/07/10 03:59 PM
        Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 04:42 PM
      Is unsafe hell truly good for linux kernel in the future?anon2021/07/11 06:11 AM
        Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/12 12:40 PM
  Is unsafe hell truly good for linux kernel in the future?Foo_2021/07/10 06:56 AM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 09:59 AM
      Most RWT posters don’t decide what goes into the Linux kernelMark Roulo2021/07/10 12:55 PM
      Is unsafe hell truly good for linux kernel in the future?Foo_2021/07/22 11:10 AM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 10:22 AM
      Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 10:24 AM
        Déja VuDismissive2021/07/10 10:41 AM
          Déja Vucqwrteur2021/07/10 10:47 AM
            Déja VuDismissive2021/07/10 10:51 AM
            Déja VuMichael S2021/07/10 01:11 PM
  Is unsafe hell truly good for linux kernel in the future?Gabriele Svelto2021/07/10 12:51 PM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 01:32 PM
      Is unsafe hell truly good for linux kernel in the future?Michael S2021/07/10 02:04 PM
        Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 02:25 PM
      Is unsafe hell truly good for linux kernel in the future?Gabriele Svelto2021/07/10 03:56 PM
        Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 04:41 PM
          Is unsafe hell truly good for linux kernel in the future?Rayla2021/07/10 05:33 PM
            Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 06:27 PM
              Interesting response... (NT)Rayla2021/07/10 09:02 PM
                perhaps just another lousy AI bot? (NT)anonymou52021/07/10 09:33 PM
                  perhaps just another lousy AI bot?dmcq2021/07/10 11:26 PM
                    perhaps just another lousy AI bot?cqwrteur2021/07/10 11:56 PM
                      perhaps just another lousy AI bot?dmcq2021/07/11 03:29 AM
                      perhaps just another lousy AI bot?anon2021/07/11 06:16 AM
                        perhaps just another lousy AI bot?cqwrteur2021/07/12 03:56 PM
                    perhaps just another lousy AI bot?Rayla2021/07/11 06:13 AM
                      perhaps just another lousy AI bot?cqwrteur2021/07/11 11:59 AM
                        When did I call you a bot, Kebabbert? (NT)Rayla2021/07/11 08:51 PM
              Alternatives?Brendan2021/07/11 01:54 AM
                Alternatives?Michael S2021/07/11 06:01 AM
                  Alternatives?Brendan2021/07/11 06:51 AM
                    Alternatives?cqwrteur2021/07/11 11:58 AM
                      Alternatives?Gabriele Svelto2021/07/12 01:31 AM
                        Alternatives?Michael S2021/07/12 03:58 AM
                          Alternatives?anon22021/07/12 09:08 AM
                            Alternatives?Michael S2021/07/12 09:22 AM
                              cqwrteur: Keep it politeDavid Kanter2021/07/13 08:59 AM
                          Alternatives?dmcq2021/07/12 09:37 AM
                            Alternatives?cqwrteur2021/07/12 04:04 PM
                              Alternatives?dmcq2021/07/12 04:26 PM
                                Alternatives?cqwrteur2021/07/13 01:47 AM
                                  Alternatives?dmcq2021/07/13 06:54 AM
                          Alternatives?Jörn Engel2021/07/13 04:53 PM
                            Alternatives?FrankHB2021/07/17 07:56 AM
                          Differences between Rust and C/GoGabriele Svelto2021/07/14 05:57 AM
                            Differences between Rust and C/GoFrankHB2021/07/17 09:47 AM
                        Alternatives?FrankHB2021/07/12 10:08 AM
                          Alternatives?Gabriele Svelto2021/07/14 02:28 PM
                            Inappropriate messages removed: cqwrteurDavid Kanter2021/07/15 10:59 AM
                            Alternatives?FrankHB2021/07/16 06:43 AM
                              Alternatives?Anon2021/07/16 12:01 PM
                                Alternatives?Gabriele Svelto2021/07/16 01:44 PM
                                Type abstraction and kernel programmingFrankHB2021/07/17 01:44 AM
                                  Type abstraction and kernel programmingdmcq2021/07/18 04:00 AM
                                    Type abstraction and kernel programmingdmcq2021/07/18 04:36 AM
                                  Type abstraction and kernel programmingEtienne Lorrain2021/07/19 01:03 AM
                                    Type abstraction and kernel programmingdmcq2021/07/19 02:01 AM
                                      Type abstraction and kernel programmingAnon2021/07/19 02:05 AM
                                        Type abstraction and kernel programmingdmcq2021/07/19 03:23 AM
                                      Type abstraction and kernel programmingBrendan2021/07/19 07:05 AM
                                Alternatives?gallier22021/07/20 04:57 AM
                                  Alternatives?Anon2021/07/20 06:24 AM
                                    Alternatives?Michael S2021/07/20 10:14 AM
                                      Alternatives?Anon2021/07/20 10:53 AM
                                        Alternatives?gallier22021/07/21 11:44 PM
                                      Alternatives?Adrian2021/07/20 12:00 PM
                                        Alternatives?Brett2021/07/20 11:13 PM
                                          Alternatives?Michael S2021/07/21 02:12 AM
                                            Alternatives?dmcq2021/07/22 12:58 PM
                                          Alternatives?Anon2021/07/21 08:58 AM
                      Alternatives?Brendan2021/07/12 02:34 AM
                        Alternatives?FrankHB2021/07/12 10:57 AM
                          Alternatives?cqwrteur2021/07/12 12:55 PM
                            Alternatives?FrankHB2021/07/12 09:44 PM
                          Alternatives?Brendan2021/07/12 08:52 PM
                            Alternatives?cqwrteur2021/07/12 11:05 PM
                              Alternatives?Anon2021/07/12 11:42 PM
                                Alternatives?cqwrteur2021/07/13 12:42 AM
                                Alternatives?cqwrteur2021/07/13 12:44 AM
                                  Alternatives?Anon2021/07/13 08:32 PM
                                    Alternatives?cqwrteur2021/07/13 09:36 PM
                                    Alternatives?cqwrteur2021/07/13 09:39 PM
                                      Alternatives?Anon2021/07/13 10:02 PM
                                        Alternatives?cqwrteur2021/07/13 10:18 PM
                                    Alternatives?cqwrteur2021/07/13 09:49 PM
                                      Alternatives?Anon2021/07/13 10:07 PM
                                        Alternatives?cqwrteur2021/07/13 10:16 PM
                                          Alternatives?Anon2021/07/13 11:31 PM
                                            Alternatives?cqwrteur2021/07/14 12:30 AM
                                              Alternatives?Anon2021/07/14 01:55 AM
                                                Alternatives?cqwrteur2021/07/14 02:22 AM
                                                  Alternatives?Anon2021/07/14 03:05 AM
                                                    Alternatives?cqwrteur2021/07/14 03:11 AM
                                                      Alternatives?Anon2021/07/14 04:16 AM
                                                        Alternatives?cqwrteur2021/07/14 07:06 AM
                                                          Alternatives?Anon2021/07/14 08:20 AM
                                                            Alternatives?cqwrteur2021/07/14 08:51 AM
                                                              Alternatives?Anon2021/07/14 12:33 PM
                                                              Alternatives?Gabriele Svelto2021/07/14 01:19 PM
                                                                Alternatives?FrankHB2021/07/16 07:07 AM
                                            Alternatives?cqwrteur2021/07/14 12:33 AM
                                              Alternatives?Anon2021/07/14 01:57 AM
                                                Alternatives?cqwrteur2021/07/14 02:21 AM
                                                  Alternatives?dmcq2021/07/14 03:06 AM
                                                    Alternatives?cqwrteur2021/07/14 03:50 AM
                                                  Alternatives?2021/07/15 08:33 AM
                                                    Alternatives?FrankHB2021/07/16 07:13 AM
                                            Alternatives?cqwrteur2021/07/14 12:39 AM
                                              Alternatives?Anon2021/07/14 02:08 AM
                                                Alternatives?cqwrteur2021/07/14 02:20 AM
                                                  Alternatives?dmcq2021/07/14 02:46 AM
                                                    Alternatives?cqwrteur2021/07/14 02:52 AM
                                                      Alternatives?dmcq2021/07/14 10:13 AM
                                                        Alternatives?dmcq2021/07/14 10:23 AM
                                                        Dealing with memory errorsBrendan2021/07/14 12:50 PM
                                                          Dealing with memory errorsdmcq2021/07/14 04:27 PM
                                                            Dealing with memory errorsBrendan2021/07/14 04:55 PM
                                                    Alternatives?cqwrteur2021/07/14 03:12 AM
                                                      Alternatives?Anon2021/07/14 04:16 AM
                                                        Alternatives?cqwrteur2021/07/14 06:55 AM
                                                      Alternatives?FrankHB2021/07/16 07:27 AM
                                                Alternatives?cqwrteur2021/07/14 02:38 AM
                                                  Alternatives?anon2021/07/14 03:50 AM
                                                    Stop feeding that trollnone2021/07/14 04:13 AM
                                                    Alternatives?cqwrteur2021/07/14 07:39 AM
                                                      Alternatives?Brendan2021/07/14 12:15 PM
                                                  Alternatives?Anon2021/07/14 04:19 AM
                                                    Alternatives?cqwrteur2021/07/14 07:12 AM
                                                      Alternatives?Anon2021/07/14 08:17 AM
                                                        Alternatives?cqwrteur2021/07/14 08:47 AM
                                                          Alternatives?Anon2021/07/14 01:00 PM
                                                            Alternatives?cqwrteur2021/07/14 01:44 PM
                                                          Alternatives?2021/07/15 10:36 AM
                                                  Alternatives?Gabriele Svelto2021/07/14 01:26 PM
                                                    Alternatives?cqwrteur2021/07/14 01:46 PM
                                                      Alternatives?Gabriele Svelto2021/07/14 02:36 PM
                                                        Alternatives?cqwrteur2021/07/14 02:55 PM
                                                          Alternatives?Smoochie2021/07/15 12:07 AM
                                                  Alternatives?2021/07/15 08:37 AM
                                                    Alternatives?Brendan2021/07/15 11:21 AM
                                                      Alternatives?Anon2021/07/15 01:15 PM
                                                  Alternatives?FrankHB2021/07/16 07:27 AM
                                          Alternatives?None2021/07/14 02:50 AM
                                            Alternatives?cqwrteur2021/07/14 02:54 AM
                                            Alternatives?cqwrteur2021/07/14 02:55 AM
                                              Alternatives?Rayla2021/07/14 05:47 AM
                                                Alternatives?cqwrteur2021/07/14 06:54 AM
                                              Alternatives?Gabriele Svelto2021/07/14 01:43 PM
                                Alternatives?FrankHB2021/07/13 12:47 AM
                            Alternatives?FrankHB2021/07/13 12:05 AM
                              Alternatives?Michael S2021/07/13 01:01 AM
                                Alternatives?FrankHB2021/07/13 01:25 AM
                            Alternatives?Doug S2021/07/13 12:29 AM
                              Alternatives?cqwrteur2021/07/13 12:48 AM
                              Alternatives?FrankHB2021/07/13 01:07 AM
              Is unsafe hell truly good for linux kernel in the future?2021/07/12 06:27 AM
                Is unsafe hell truly good for linux kernel in the future?Anon2021/07/12 09:46 AM
                Is unsafe hell truly good for linux kernel in the future?Etienne Lorrain2021/07/13 02:00 AM
    Is unsafe hell truly good for linux kernel in the future?cqwrteur2021/07/10 01:38 PM
Reply to this Topic
Name:
Email:
Topic:
Body: No Text
How do you spell avocado?