3 ms·
It'd be nice to squeak in a legitimate PLT argument from a mover and shaker: is Blow way off on doing a huge, bump-allocated arena every time he hits a `CALLQ`?
by benreesman 4y ago
It'd be nice to squeak in a legitimate PLT argument from a mover and shaker: is Blow way off on doing a huge, bump-allocated arena every time he hits a `CALLQ`? I think that sounds just obvious enough to be what the GCC/Linux people have been trying to do with resounding failure in the "growable stack"/nobody cares column for a decade now.
- steveklabnik 4y agoArenas are great. He’s not wrong that they’re great. He is (was?) wrong that somehow Rust makes them not possible, or bad to use, or something. rustc makes extensive use of them, in my understanding, even.
- benreesman 4y agoHe could use the endorsement of someone with your gravitas saying on the record that his (controversial) default is the better default. No one is saying that everyone will be served well by the default, but virtual memory is a great deal cheaper than physical DRAM on every conceivable platform for Jai or Rust, and him blowing it off in big chunks to avoid compiler/borrow-checker errors for the same cost in core without a bitchy compiler is a win in the leathered hacker's book.
- benreesman 4y agoWhy can the Haskell people, and the C++ people, and the Python people, and everyone except the Rust people say: we missed vector, we missed modern TLBs, we missed clock-rate forecasts not one but twice, like all those other people have. Why do you people always need to be right?
- c-cube 4y agoWhat is that thing about vectors that Haskell and python people agree on, but not rust people? I'm genuinely intrigued...
- benreesman 4y agoThat they're both stupid and it's wired in too deep to fix now. Catch a Rust person saying this is fucked full stop and it's too late to fix it.
- benreesman 4y agoMore rare in the wild: Clojure nailed it with syntax for the data structures people actually care about it practice! Find me that one.
- c-cube 4y agoAre you saying that the vector data structure is stupid?! And, moreover, that it's an opinion shared by the python and c++ communities? I'd love to see evidence of that. I'd also love to read arguments about why Vec/vector is stupid, it's certainly the first time I read that.
- mwcampbell 4y agoNo, he's saying that Haskell, C++, and Python proponents have each admitted that they were wrong about separate things.
- benreesman 4y agoNo one in the C++ community is like, great, in order to keep shit working we’ve got to honor this ABI where we can’t do SSO. No one in the Haskell community is like great: linked lists as the fundamental data type is just awesome on modern x86. The people in the Python community are like great: we just broke everything and took a decade doing it, because we were emphatically wrong about ASCII being a given. The people in the Rust community say nothing like this: Rust isn’t wrong: you’re wrong. Which is going to get progressively weirder as we move back to ASICS more weird than GPUs. I’m enheartened to hear that someone (e.g. you parent) has some grasp on reality on this, but I’ve been in this game long enough to see a decade of progress dunked over CORBA and XML, which had nothing like the mindshare or organic buy-in this Rust stuff does. This is true fanaticism, and I don’t know about you, but I’m going to miss being retired for it’s consequences for the least fun decade of a career that included Visual Basic.
- zozbot234 4y ago> He is (was?) wrong that somehow Rust makes them not possible, or bad to use, or something. I think the more meaningful question is whether local arenas are idiomatic enough in Rust. Of course, custom allocators are not the easiest thing to use in C++, either. And there are other semi-related things, such as allocating and initializing pinned objects in-place, for which Rust is still lacking a good story as the Rust-for-Linux folks have pointed out recently.
- benreesman 4y agoI think the more germane question is whether or not Rust is in any sense modern on hardware architectures that have changed their 5 year outlook twice in the past three? 2nm with tiles and backplane power is already a radically different landscape than AMD’s current leading edge big-L3, high-core arch. The fucking arrogance. It is not the world’s job to accommodate Rust. It’s C’s job to work out whether Rust works out or not.
- mwcampbell 4y agoThis seems to be a total non-sequitur from the previous comment. What does this have to do with arenas versus other memory allocation strategies? And in what way are hardware architectures being expected to accommodate Rust?
- benreesman 4y agoFor as long as sequential locality is the order of the day, bump allocators are on average going to stomp stack/heap dichotomies like C++ or Rust. By huge, huge, constant factors. I’m proposing Jai (and John) as plausibly more in touch with a rapidly-changing hardware landscape than Rust by definition practically ever could be without another round of pre-1.0 “everything is broken always”. Were you earnestly asking that question in good faith because you didn’t read the multiple siblings about Jai and arenas vs affine? Or are you just part of the gang tackle?
- mwcampbell 4y ago