• @[email protected]
    link
    fedilink
    10129 days ago

    Gentoo users would be really mad about this if they weren’t still building their web browsers and could get online

  • @[email protected]
    link
    fedilink
    English
    3429 days ago

    Why does this option without specifying a number of threads even exist? It might as well be footgun mode.

    • @[email protected]
      link
      fedilink
      2129 days ago

      I’m pretty sure it’s “run as many threads as there are cores” mode, though if you’re running it in a terminal I always find it best to use nproc-1 or -2 so the machine actually stays usable.

    • @[email protected]
      link
      fedilink
      829 days ago

      I don’t think I’ve ever used -j without specifying as many cores as I have, so it sounds completely reasonable.

    • palordrolap
      link
      fedilink
      629 days ago

      One of Perl’s design principles was the Robustness principle, though it probably wasn’t known by that name at the time. (The name came about around the same time Perl was becoming a thing, something something zeitgeist something.)

      Perl can be locked down and made to complain (with at least a couple of levels of pedantry) when things are wrong, but unlike most other languages, it doesn’t do so by default.

    • @[email protected]
      link
      fedilink
      39
      edit-2
      29 days ago

      I believe the left hand is a shell fork-bomb, on the assumption that anything that zany is probably malicious.

      And the right hand is a way to tell Make to use up all available system resources:

      "-j [jobs]’ ¶
      ‘--jobs[=jobs]’
      Specifies the number of recipes (jobs) to run simultaneously. With no argument, make runs as many recipes simultaneously as possible. If there is more than one ‘-j’ option, the last one is effective. See Parallel Execution, for more information on how recipes are run. Note that this option is ignored on MS-DOS."
      

      Edit: I think the make command is technically only a problem when run for a Makefile that tries to do too many things, and has at least one mistake in dependency controls. So… for every Makefile I ever encountered (or that I ever wrote!)

      Yeah. They’re the same picture

      • @Voroxpete
        link
        25
        edit-2
        29 days ago

        You are correct, left hand is a fork bomb. Specifically, it creates and then runs a function named “:”. What this function does is pipe its output into itself while running in a background process, which instantly spawns infinite copies of itself. Technically I believe the : character could be any character as its just a name. The creator just picked a colon for aesthetics.

        • @[email protected]
          link
          fedilink
          1329 days ago

          I always just kind of glazed over looking at that and just know “it’s a fork bomb” and basically what it does

          With your explanation, I can now actually understand all the parts and how they work, it actually makes sense

        • @[email protected]
          link
          fedilink
          529 days ago

          Now I get why it does what it does and how it works. I never thought that the colon was the variable name but it makes so much sense!

      • Max-P
        link
        fedilink
        529 days ago

        I think it can also get weird when you call other makefiles, like if you go make -j64 at the top level and that thing goes on to call make on subprojects, that can be a looooot of threads of that -j gets passed down. So even on that 64 core machine, now you have possibly 4096 jobs going, and it surfaces bugs that might not have been a problem when we had 2-4 cores (oh no, make is running 16 jobs at once, the horror).

        • @0x4E4FOP
          link
          English
          129 days ago

          There could also be other problems, like not being able to assign jobs correctly with that many threads. I’ve encountered this when assigning more jobs than there are threads on the rig. A lot more, like 2x, 4x the threads available.

        • @0x4E4FOP
          link
          English
          129 days ago

          Yep.

          It’s a “heck, here’s all I got” switch.

          Remember, with great power comes great responsibility 😉.

      • @0x4E4FOP
        link
        English
        129 days ago

        Hey, I build on a 1st gen i7 😠.

    • @0x4E4FOP
      link
      English
      129 days ago

      Aaawww, that’s nice 😊.

  • groche
    link
    fedilink
    829 days ago

    Nah you can have x3 load per core without problem. The real problem is when you haven’t got enough ram xD

    • @0x4E4FOP
      link
      English
      129 days ago

      I know the pain 😔… apparently, LLVM doesn’t like that my 4th gen i7 has only 32GB of RAM 🤨.