Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (Cyborg)
  • No Skin
Collapse
Brand Logo

CIRCLE WITH A DOT

  1. Home
  2. Uncategorized
  3. i aspire to make software that is piss easy to package, which is why i will never touch rust again

i aspire to make software that is piss easy to package, which is why i will never touch rust again

Scheduled Pinned Locked Moved Uncategorized
4 Posts 2 Posters 0 Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • kimapr@ublog.kimapr.netK This user is from outside of this forum
    kimapr@ublog.kimapr.netK This user is from outside of this forum
    kimapr@ublog.kimapr.net
    wrote last edited by
    #1

    i aspire to make software that is piss easy to package, which is why i will never touch rust again

    sarpnt@fe.disroot.orgS 1 Reply Last reply
    0
    • kimapr@ublog.kimapr.netK kimapr@ublog.kimapr.net

      i aspire to make software that is piss easy to package, which is why i will never touch rust again

      sarpnt@fe.disroot.orgS This user is from outside of this forum
      sarpnt@fe.disroot.orgS This user is from outside of this forum
      sarpnt@fe.disroot.org
      wrote last edited by
      #2
      @kimapr what about rust makes packaging difficult? i think i've heard it before but i can't remember or find details
      kimapr@ublog.kimapr.netK 1 Reply Last reply
      0
      • sarpnt@fe.disroot.orgS sarpnt@fe.disroot.org
        @kimapr what about rust makes packaging difficult? i think i've heard it before but i can't remember or find details
        kimapr@ublog.kimapr.netK This user is from outside of this forum
        kimapr@ublog.kimapr.netK This user is from outside of this forum
        kimapr@ublog.kimapr.net
        wrote last edited by
        #3

        @SArpnt@fe.disroot.org honestly i forgot the details myself but i found this blog post about it https://blogs.gentoo.org/mgorny/2021/02/19/the-modern-packagers-security-nightmare/ (it doesn't single out rust but a lot of it applies to rust)

        it seems to come down to rust encouraging terrible development practices. rust has no stable ABI at all, so all rust software statically links each other, which means that if one rust library has a vulnerability, everything that uses it has to be rebuilt. worse yet, everyone pins specific, potentially severely out-of-date versions of dependencies to shield themselves from constant API breakage. because packagers care about security they obviously cannot accept this, so they unpin the versions, and because no one ever tests rust software that way and because the rust ecosystem does not care about API stability it would often break.

        basically, rust encourages devs to move fast and break things, and packagers are left to clean up the mess after them. Go also does this but i've never used Go so not as familiar with it.

        there's also the thing about rustc itself being near-impossible to bootstrap, rustc is written in Rust, but not just any Rust, it uses nightly-only features from the previous version of rustc. So to bootstrap it you have to go all the way from ancient versions of rustc, build the next version, and so on and so on, it's hell. Seems like the way Gentoo goes about this is to just give up and make the rust package depend on rust-bin.

        sarpnt@fe.disroot.orgS 1 Reply Last reply
        0
        • kimapr@ublog.kimapr.netK kimapr@ublog.kimapr.net

          @SArpnt@fe.disroot.org honestly i forgot the details myself but i found this blog post about it https://blogs.gentoo.org/mgorny/2021/02/19/the-modern-packagers-security-nightmare/ (it doesn't single out rust but a lot of it applies to rust)

          it seems to come down to rust encouraging terrible development practices. rust has no stable ABI at all, so all rust software statically links each other, which means that if one rust library has a vulnerability, everything that uses it has to be rebuilt. worse yet, everyone pins specific, potentially severely out-of-date versions of dependencies to shield themselves from constant API breakage. because packagers care about security they obviously cannot accept this, so they unpin the versions, and because no one ever tests rust software that way and because the rust ecosystem does not care about API stability it would often break.

          basically, rust encourages devs to move fast and break things, and packagers are left to clean up the mess after them. Go also does this but i've never used Go so not as familiar with it.

          there's also the thing about rustc itself being near-impossible to bootstrap, rustc is written in Rust, but not just any Rust, it uses nightly-only features from the previous version of rustc. So to bootstrap it you have to go all the way from ancient versions of rustc, build the next version, and so on and so on, it's hell. Seems like the way Gentoo goes about this is to just give up and make the rust package depend on rust-bin.

          sarpnt@fe.disroot.orgS This user is from outside of this forum
          sarpnt@fe.disroot.orgS This user is from outside of this forum
          sarpnt@fe.disroot.org
          wrote last edited by
          #4
          @kimapr this sounds more like the kinds of people that program in rust want ergonomic dependencies fast and don't consider this kind of security, not that the choice of language matters all that much. if c programmers constantly changed their library apis it would cause the exact same issues, and rust does provide plenty of tools to make and work with stable abis.

          javascript doesn't even have abi and it's had all the same kinds of dependency related security problems for years.

          i still agree that bootstrapping and abi need some serious ergonomic work, i've been thinking on how to design some kind of general purpose abi specification language since reading [faultlore's abi blog posts](https://faultlore.com/blah/c-isnt-a-language/) and wanting better control over abi for various projects
          1 Reply Last reply
          1
          0
          • R relay@relay.mycrowd.ca shared this topic
          Reply
          • Reply as topic
          Log in to reply
          • Oldest to Newest
          • Newest to Oldest
          • Most Votes


          • Login

          • Login or register to search.
          • First post
            Last post
          0
          • Categories
          • Recent
          • Tags
          • Popular
          • World
          • Users
          • Groups