HN user

fluffything

2,917 karma
Posts7
Comments926
View on HN

I mean, the author could have removed most of the complexity by using Rust HALs.

They just decided to reimplement from scratch their own different solution. That’s completely fair, but doesn’t allow you to make the complexity argument.

It would be like deciding to start a C++ project without using the C++ std library and arguing that C++ is hard because you had to reimplement std::Tuple...

Lifetime analysis doesn’t even show up in Rust compiler profiles. It takes 0 seconds.

Rust lifetime analysis is a function-local pass. It never needs to access any state outside the function. It can be done on all functions in parallel, etc.

You could do Rust alias analysis with 33 MHZ.

When somebody pays somebody to write those frameworks.

When nvidia sees a need, they can change CUDA over night to address it, and they pay people to do that.

When you need to do the same in Vulkan, that’s a multi year process till your extension is “open”. A teaser here whose job is to get something done with ML has better things to do than going through that.

But distros do handle this for you. I installed Arch last year with sway and “it just works”.

Like the OP say, if you want HiDPI fractional scaling that’s a solved problem on Wayland. If you want to stick with X11, then that’s never going to work great

Rust actually supports multiple ABIs and you can pick which one to use.

The one I use for maximum portability is the C ABI defined in the ISO C standard and on the platform docs (eg the Itanium ABI specified eg in the x86psABI document on Linux).

I didn’t chose to ignore that. I compiled a Rust binary library 4 years ago, it still works without recompiling today on a dozen of operating systems and toolchains that did not exist back then.

Try doing the same with C++.

I really believe you when you say that you are clueless about how to do this, since you don’t seem to have any idea about what you are talking about, and all your posts start with a disclaimer about that.

But at this point the only thing I have to tell you is RTFM. Doing this is easy. HackerNews isnt a “Rust for illiterates” support group. Go and read the book.

You keep repeating FUD.

Read the damn Editions RFC. The community agreed that no semantics or ABi breaking changes will land to Rust, EVER.

This is not a lesson from Py th on, but from C++, which introduces breaking changes every single release, which are much smaller than Python but still a pain in million LOc code bases.

If that ever happens, it was agreed that the result would be a different language, with a different name.

That is, editions don’t have this problem because the FUD that you are trying to spread every single time this issue comes up cannot happen, by design.

Your argument “Rust editions don’t solve this problem because they don’t handle semantic or ABI changes” is false, because in Rust there CANNOT be any semantics or ABI changes, and editions handle this situation just fine.

In the context of Python 2 vs 3 this argument makes even less sense, because editions allows combining libraries from different editions ina forward and backward compatible way without issues. Source: work on multiple >500kLOC Rust code base and one >1 million LOC and they all use crates from all editions, and mix & match them, without any issues, doing LTO across them, using dynamic libraries, and all possible combinations of binaries across 4 major platforms.

More like a computer is a combination of hardware and software.

A different vendor product with cheaper storage can still be a much worse value proposition than my 2012 MacBook Air.

The problem here is that the Parent you are replying to assumes “storage” is the only issue why I haven’t upgraded. That’s an incorrect assumption.

I haven’t upgraded because paying >1000$ should add value over my MacBook Air 2012, yet for me all laptops in the market do not add enough value to justify the cost.

A new MacBook with 1 TB SSD storage sets you over 2000$, but the value just isn’t there.

Everybody’s mom is recommending an M1 these days, yet crappy webcam, support for 1 monitor only, expensive storage, low ram, being 1st gen of apples arm lineage with 1st gen flaws, no MagSafe, ... make it a bad value proposition right now for me compared with my 2012 air which doesn’t have most of these flaws.. sure it is better in many aspects, but it is also much worse in others (eg 1 external monitor support is a deal breaker for me)

Rust will never do semantic changes.

That’s a feature.

If you want languages that introduce semantic changes and break your code, you have many options to pick from, C++ being one such language in the same space as Rust.

I have a MacBook Air 2012 with an SD card reader.

It has a 256GB SSD drive, and a 1 TB SD Card inside that I use for storing photos, video, music, etc. essentially everything that does not need fast storage.

This laptop was only meant to be a 1 year temporary solution, so I’ve been waiting 9 years to upgrade.

I’ve yet to find a new reasonably priced MacBook with 1,256Gb of built in storage.

Carrying an external drive sucks.

Unless Apple makes 1-2 Tb SSDs lower in price to the 100$ mark, the lack of an SD card is a killer for me.

Paying 500$ for an extra 256GB SSD when I can get 1 Tb SD card for 100$ is just ridiculous.

If this is a language for people that didn’t managed to learn C++, D or Rust... lots of questions quite unfavorable for Zig pop up. I’d just remove that sentence.

even if the language is great, if all the ecosystem is written by people that didn’t manage to learn C++ in 25 years, I can’t really trust any library there

You can have millions of coroutines in flight in Rust using async/await without issues.

This app explicitly wants to use threads, for some reason.

will definitely be

Sure, eventually, that will be the case.

But right now, most GTK apps are not Wayland native and look bad on Wayland. Those that are Wayland native have so many bugs on Wayland that they are still objectively significantly worse than their Xorg alternatives.

All apps I use have a problem. Slack, Zoom, Chrome, Emacs, LibreOffice.

The only app I use that doesn't have a problem is Alacritty, which is the terminal emulator I kind of have to use to avoid this problem. Other terminal emulators I've tried do have this problem.

HiDPI displays is what I see mentioned the most. But when you then ask if fractional scaling works on Wayland, the answer is "yes, but it doesn't work for any app you actually use".

If all you want to do is download a "demo" terminal, and put it in a HiDPI display, and enable fractional scaling, to show it to your friends, then yes, this works.

If you want to get some work done on any app (a text editor, web browser, ...). Then its worse than Xorg at the moment.

All the things you mentioned are already fixed and most have had reasonable workarounds for a while. [...] Some are still working their way through the distros [...]

Can you back this up ?

Because I can back this up that this is not the case.

* Neither Chromium nor Firefox properly support wayland yet and have a lot of bugs. Fedora ships a patched version of Firefox to workaround some of these issues, so does arch, but none of this is properly fixed. Chromium-dev + patches does not handle multiple displays with different resolution (text is in the wrong position, toolboxes are wrong), it is not able to share a full screen (shows up as black), etc.

* Emacs does not support Wayland yet. Some users have some patches no enable GTK3 wayland support, but these work badly with Wayland/Sway, not properly recognizing input devices (e.g. Delete key recognized as Backspace is the classic bug for this). Users using these have to remap their keyboards every time they start emacs.

* Point us to one Electron app with Wayland support please. Just one. Go ahead. I'll go sit down, and wait, in case you need to wait for any to be released, maybe next year, or the year after that. Whatever the "Year of Wayland" in the Linux desktop will be.

* Can you share a screen shot of the Zoom or Webex videoconferencing software (the native packages) on Sway sharing monitors ? If not, don't worry. Can you share a screen shot of using their crappy web versions through any official browser release (unpatched) sharing full monitors through screen sharing?

Comparing card at a particular resolution became meaningless when Control at 1080p with DLSS2.0 upscaling to 4k looks better than native rendering at 4k resolution.

I couldn't care less about being able to play games at 120 or 140 FPS, but I do care about image quality.

I wish these reviewers would compare the different cards at the same image quality at playable framerates (e.g. 60 FPS or 120 FPS).

It would then be interesting to see the performance of, e.g., a 3080 rendering Control at 1080p with ray tracing on and DLSS upsampling to 4k vs "whatever settings give the same image quality" for the RX 6800 XT.

If I wouldn't care about ray tracing or DLSS, I would probably be much better off buying a used 2080 Ti at this point. Sure, that would give me 40 FPS at Control 4k native vs 45 of the RX 6800 XT, but these 5 FPS aren't really worth 2x the price.

Some console games of this new generation have an option to enable ray tracing and play at ~28-30 FPS, or disable it to get to 60 FPS.

Apparently the 3060 with ray-tracing on and DLSS on beats the new consoles by a landslide.

Quite unfortunate to have consoles with ray tracing hardware that you cannot really use if you want to play at a decent FPS rate.

No proper screen sharing through any mainstream videoconference application is a killer for work. (0)

chromium doesn't support wayland yet, so it is blurry in HiDPI displays with scaling (chromium-dev does, but it has so many bugs it isn't even funny). As a consequence, all electron apps end up blurry... of which there are many.

Same applies to all apps that don't support Wayland yet. For example, I spend 90% of my time using Emacs, and it is blurry on Sway if I enable HiDPI scaling.

---

So sure. If you don't have a "modern" HiDPI monitor, and if you don't need to screen share often, and if you don't need to use chromium for work, or any App that doesn't support wayland yet, like all electron apps, Emacs, etc., or your work involves ML, or you want to game, or have an nvidia graphics card, which sway does not want to support (as opposed to gnome and kde), and you don't want to buy two GFX cards, or if you have to do screen sharing, or probably another dozen other things that most users need to do occasioanlly, or even every day. Then, and only then, Sway might be for you.

But you can also use i3, where all this stuff just works.

---

(0) I've seen people creating virtual webcams using OBS studio to capture their screen and share it as their "webcam" in videoconferences, but no mainstream software really supports this "as screen sharing", so the quality is quite bad, in a meeting with 10 people everyone needs to pick the webcam because the apps don't support this huge hack, etc.

Rust macros are just programs that take source code as input and produce source code as output.

These programs can do anything that the user running them does.

You can compile them to WASM, ship them over the network, and run them on a WASM interpreter with restricted permissions, like "no file-system access, no random-number generator access, no network access", etc.

WASM runs very fast (compiled to native code), is supported on every platform that has a web browser or a WASM interpreter, of which there are many open source implementations available, and has no undefined behavior (WASM modules either fail to validate or trap during execution but they don't "read out of bounds" or "segfault").

So to me at least this is a solved problem.

I guess one can do the same with common lisp macros, but nowadays at least, the infrastructure for WASM is just much better.