Enlightenment Mysteriously Drops Wayland Support 152
jones_supa writes: According to Enlightenment 0.19.12's release notes, it's an important release that fixes over 40 issues, which is quite something, considering that previous versions had only a few improvements, with most of them being minor. However, the big news is that 0.19.12 drops support for the Wayland display server. Unfortunately, the Enlightenment developers have omitted to mention why they decided to remove any form of support for Wayland from this release, and if it will return in upcoming releases of the software.
I guess they realised... (Score:5, Insightful)
... that Wayland is a solution for a problem thats already been solved better.
Re: (Score:2)
How/where has the problem been solved better?
Re:I guess they realised... (Score:5, Funny)
Windows
Re:I guess they realised... (Score:5, Informative)
I suspect the sentiment is that X11 is better because of the network transparency angle. Of course the underpinnings of how X11 does it are actually decrepit and inefficient and compare poorly to other strategies that leverage different entry points that Wayland actually preserves. Injection into the compositing and WM provides a simpler and nowadays better performing strategy than X11 primitives. It meant something when the X11 primitives were actually used in the typical X applications with some sort of relevance, but now pretty much applications running over remote X are pretty much dumping bitmap data rather than any useful shorthand for complex UI concepts. Meanwhile intejecting the payload via compositor and the context via WM avoids a lot of the complexity that X contends with and allows a compositor freedom in picking good client-server protocol/compression.
Comment removed (Score:5, Informative)
Re:I guess they realised... (Score:4, Funny)
it takes some gal
Found the problem. It's more of that horrible misogyny in the Linux community.
Re: I guess they realised... (Score:1)
Actually it's about ethics in UI programming.
Re:I guess they realised... (Score:5, Insightful)
It's just nobody's really asking for a replacement
No one asked Henry Ford to make cars, either. This attitude, specifically in technology, is baffling to me.
Re:I guess they realised... (Score:5, Informative)
No one asked Henry Ford to make cars, either.
And you know what? No one asked the Stanley Motor Carriage Company to make cars either.
Simply being new doesn't mean it's better. The trouble with Wayland, or rather why I'm deeply suspicious of it is that some of the claims from the devs about waykand and X11---and bear in mind they're X11 devs too---are flat out wrong at best and deeply deveptive at worst. Why the need for a FUD attack? If Wayland is better it ought to win on merit, not FUD.
Tahe for example this article: http://www.phoronix.com/scan.p... [phoronix.com]
Going through one at a time.
1. Extensions are what X11 calls API updates. Wayland will get API updates too, so this is not an advantage of wayland beyond version 1.0.
1. A, B, C: Almost all extension version updates add new API calls and keep the old ones. Sending Foo 2.0 calls to Foo 2.2 works just fine. Not to say that versioning isn't a problem, but then fixing the API is apparently bad for X but nothing else.
2. Well core X11 is super simple and a tiny setup of Xinput 2. This leaves essentially 2 input systems left of any complexity, 2.2 and 2.0, and as far as I can tell 2.0 isn't actually separate from 2.2. So, basically X has one major input system which actually looks kinda similar to the Wayland one.
3. That's a misunderstanding of "mechanism not policy"
4. So Xorg and Xfree86 got a bit crazy and then got refactored. Apparently historical cleanups are a bad thing? This happens in any project of any age.
5. Apparently it's impossible to add a new API call for synchronisation because from (1) that X11 isn't allowed api updates unlike every other system.
6. Yeah OK, fonts are not great.
7A A badly designed chunk of Xorg is apparently a problem with X11 now. Oh and it's been fixed so it's not a problem at all. But apparently every misstep in one implementation of an X server fixed 5 years ago is a reson it's bad now.
7B That was pure fud in 2013 when it was written. Xrandr and monitor hotplugging has worked flawlessly for years.
7C Huh? There's been xrandr front ends for years which remember certain layouts. Hell, Arandr, the nice GUI point and click one in all the repos remembers layouts just fine.
7D That smells like bullshit to me. Unless the second monitor is a separate screen (X11 term for something little used now) they it'd be impossible for one to have compositing and one not. I've not heard of anyone using screens in years.
8 Yeah and real toolkits are poorer for it. The window tree is a really nice thing when you have latency. Because with tree'd systems the server remembers which sub-sub-sub window a mouse click went to, and you could ignore the absolute position. With a treeless system all you have to go on is the position.
With latency, if you click, then the display updates then it processes the click, your click goes not where you want, but where the GUI is now. This I find happens more often than I'd like in web "apps". With tree based systems, sure the widget moved, but the assignment of the click to the window was latency free, so your click ends up correctly on the now-moved widged.
IOW tree based systems are superior. Many toolkits abandoned it for compatibility with non tree based systems. What we have now is actually fundementally worse in high latency environments.
9 Yes this is finally a genuine, no-nuance flaw.
10 C this is not correct if you have a compositing window manager, because it can do whatever it likes with the final display.
10 D their solution is to make the compositor do all this shit in Wayland. That could be done equally well in X. Sure, the current convention has a small flaw, but X11 now supports the Wayland way too.
10 E just use the features of the compositing window manager. It intercepts all key presses and windows anyway.
So without getting into the merits or demerits of Wayland, it's disappointing to see the devs engaging in a colossal FUDstorm.
Re: (Score:2, Interesting)
There is one BIG flaw in X11 that wasn't mentioned: by design, every program that hooks into X also gets access to ALL input X gets. Meaning by design you cannot prevent any keyloggers from logging your sudo password. Wayland only allows access to all input to the compositor itself, and with a sandbox it can prevent any other program from keylogging.
Re:I guess they realised... (Score:4, Informative)
There is one BIG flaw in X11 that wasn't mentioned: by design, every program that hooks into X also gets access to ALL input X gets. Meaning by design you cannot prevent any keyloggers from logging your sudo password. Wayland only allows access to all input to the compositor itself, and with a sandbox it can prevent any other program from keylogging.
Indeed, though entertainingly this isn't part of the X protocol, but part of the Xinput extension brought to you by the folks now working on Wayland. However, I don't see any reason that the compositor model of X11 can't be updated to intercept all events: it already has to intercept all events anyway because it needs to be able to arbitrarily mangle them before feeding them into the various captured windows.
So this flaw could be fixed for compositing window managers with a small update to the API. Given the architecture of X, the 10 remaining people like me using non compositing window managers could do it with an external compositor. However, one of the main bonkers criticism of X is that the API sometimes receives updates. So make of that what you will.
Re: (Score:2)
With latency, if you click, then the display updates then it processes the click, your click goes not where you want, but where the GUI is now. This I find happens more often than I'd like in web "apps". With tree based systems, sure the widget moved, but the assignment of the click to the window was latency free, so your click ends up correctly on the now-moved widged.
IOW tree based systems are superior. Many toolkits abandoned it for compatibility with non tree based systems. What we have now is actually fundementally worse in high latency environments.
Man, this explains a lot. Mainstream Linux GUIs have been going backwards for a long time. But at least we have, uh, well, we already had most of it back then, come to think of it.
Re: (Score:2)
Man, this explains a lot. Mainstream Linux GUIs have been going backwards for a long time. But at least we have, uh, well, we already had most of it back then, come to think of it.
Indeed and it really pains me. What Linux/unix had way back when was far from perfect. However, it had some awesomely brilliant features that neither Windows nor MacOS and then OSX had. The desire to blindly chase Windows 95 then XP then OSX has systematically stripped out almost all of the unique but superior features giving us w
Re: (Score:2)
Definitely. I remember being excited going from a 486 to a Pentium and how much it sped up the X session (which was already snappy enough to work with). It seemed like zero lag user interaction was just around the corner. Instead, we joined Windows in its laggy unresponsiveness. This wasn't just PCs either, even an Atari ST could run a usable monochrome X server. Instead of thoughtful coding, it's frameworks all the way down now.
Re: (Score:2)
Re:I guess they realised... (Score:5, Insightful)
init really was a bug ridden piece of garbage
Care to point out a couple of those bugs?
SystemD implements everything init did
And a lot more, yes [syste.md]
but does it right.
Hahaha, yeah, it probably looks right from a Windows-centric POV
Re:I guess they realised... (Score:5, Informative)
Okay, sure.
Re: (Score:3, Insightful)
What about the part where you were going to mention bugs in init?
Re: (Score:2)
Since systemd was mentioned I figured that sysv init + rc scripts was implied, otherwise it's not a really fair comparison.
Re: (Score:2)
But that still wouldn't be a fair comparison because systemd does so many more things not remotely related to sysvinit+init scripts. So what are we going to compare, systemd vs init+scripts+httpd+ntpd+consolekit+policykit+this+and+that?
Do you understand the problem, now that it's staring you in the face?
Re: (Score:2)
Yes
I don't see any problem.
Re:I guess they realised... (Score:5, Informative)
So shared libraries don't exist? That hasn't been a problem in a long time on BSD or OpenRC systems. Seriously, it's not hard to factor out code into a library. If you're only considering Debian, you have to remember that they are always behind (sometimes FAR behind) the update cycle.
Again, only if you were a moron and reinvented the wheel each script instead of using a common library.
That said, the ability to do things different is very important when you need to support something unusual.
No, there is not requirement to use PID files. That is simply a common way to implement a daemon. With sysvinit and sysvrc (or OpenRc), this kind of thing is an implementation detail that is out of scope.
Again, this is by design, as it left logging *unspecified*. If you don't like syslog, nothing was preventing you from using something else. (also, "useful" is subjective)
Patently incorrect, as I have used syslog to inspect startup crashes many times over the last *twenty years* I've been using UNIX. Maybe this has been a problem for other people, but I've never seen it. If your syslog is configured badly, that's an entirely separate problem.
While I can't speak for all distributions (you seem to have had some history with poorly-configured environments), there is nothing wrong with using sleep based polling. The only reliable way to detect if a prerequisite service is ready is by directly polling the service. (e..g issue an HTTP GET to a web server) The timeout is to allow startup to proceed in case of an error, (so you don't end up bricked, unable to use your computer)
There is a reason most distributions stopped using super-servers like xinetd: on-demand startup isn't that useful. Start your service at boot. You can defer expensive tasks until the first requests, if you want, which is when you would pay that cost anyway in an "on demand" launch. Listen to on the port, block on accept(2) or select(2) or similar, and let the OS page you out to the swap partition.
"On demand" isn't necessary, because the kernel already provides that feature. Adding a redundant implementation simply increases complexity and adds more opportunity for bugs. Super-servers make it even worse, as they add the risk that a problem in on service could take down all the services provided by the super-server.
Ok, now you're just trolling.
Want to have some fun? On a systemd box, pretend you just installed some updates, and you need to restart a few daemons so they run the updated versions. Try restarting dbus (system, not user). (You might want to make sure any open files are saved first)
Also, you might want to actually read about UNIX before you make these kinds of accusations. Reading taoup [catb.org] is a good place to start.
Re: (Score:1)
It... disappoints me that the more vocal systemd proponents have never actually *looked* at what modern (that is, built in the last ten years) sysvrc replacements do and how they do it.
To get anywhere *near* the power and flexibility of what you get from OpenRC in systemd, you're going to *have* to roll your own shell scripts. Given that the systemd folks are deathly allergic to shell scripting and won't provide these scripts *for* you, this means that -surprise!- each service with non-trivial is-it-started
Re: (Score:2)
I have no problem with shell scripts. I just don't see the point in keeping 20 copies of the same script, slightly customized. It's much cleaner to have a systemd style config file, where the file only contains what's important, and lacks any boilerplate content that might or not have been customized.
What kind of flexibility are you talking about, by the way? I've been using systemd for a while and don't really feel limited.
Re: (Score:3)
Of course. Keeping track of running services is out of scope for a service management system. Genius.
It seems to me that the reason why pid files still exist is because sysv provides next to nothing, so people end up using the easiest, but about the worst approach available.
Re: (Score:2)
>Thanks, but I'm not religious. I prefer things that are convenient to those that are ideologically pure.
That's all well and good but when that "ideology" is the result of 40 years of practical experience by a culture that has produced the engine that drives the entire 21st century (yes, that engine is Unix, because it drives the internet), which has allowed that system to survive thousands of incredible changes to technology virtually unchanged - because no matter how the world changed, it was still wor
Re: (Score:2)
There are quite a few reasons. For instance, like I already mentioned, sysv init has no logging and bad error handling. Processes may disappear without any logs being emitted. PID files may result in services not properly restarting. It's not a very reliable system, it's fragile and can break in ways that require you to manually do its job.
Consistency is not in any way e
Re: (Score:2)
Right... because the only alternative to systemd is SysV - actually I am in favor of parallel init and helped Richard Gooch worked on his back in circa 2000.
The fact is though - none of those ended up replacing half the damn base system with other components. Every other init replacement was an init replacement. The end.
Upstart was very nice, hell even slackware's RC based one was quite nice and lacked most of the issues you raise (though it didn't support paralel bootups out of the box I added support for
Re: (Score:2)
You ARE aware that systemd is configurable, right? You can ask it to direct your data to syslogd (where you can use your own implementation), you can configure it to log only to RAM (for maximum performance for the case you mentioned), and you can tell it to turn off its own logging (so i
Re: I guess they realised... (Score:2)
None of those are good enough reasons to violate a fundamental unix design principle thats been in place since Thompson's earliest experiments.
I cant edit the log with vi ? Then you broke unix. Its not unix anymore.
Cant imagine why anybody would possibly want to edit a log by hand ? Neither can I but thats the point: fundamental to the unix philosophy. We never ever try to imagine what a user may need to do or why. We do not do that. We let them do whatever they want exactly by not trying to imagine what th
Re: (Score:2)
Oh dear. Unix turned into a religion. I guess we're going to disagree here because I'm not religious and don't care about staying true to the doctrine.
That's actually entirely intentional. journald contains a way to sign log files in such a way that it would make tampering detectable.
Re: (Score:2)
>Oh dear. Unix turned into a religion. I guess we're going to disagree here because I'm not religious and don't care about staying true to the doctrine.
Ah the classic "call it a religion" and you can dismiss it argument. There's just one problem - this is the exactly OPPOSITE of a religion: because it's based on solid evidence. 40 years of hard experience and engineering principles that have seen the single greatest success in the entire history of software and produced the most flexible, powerful and re
Re: (Score:2)
Well, I don't see this evidence of yours.
Look at how this conversation has gone. I started by answering your technical concerns. Initially you had a real technical issue, a real need for better performance than the system originally provided, and how you needed to be able to replace the logger to solve it.
So I explained how systemd a
Re: I guess they realised... (Score:2)
Ive spent the majority of my career building distributions. Trust me as a distro developer of some distinction (linux.com once said that I did for slackware what Ubuntu did for debian, my distro at its height ran 95% of all computers in an entire country) when i tell you i know the decision making process and the motivation for adopting systemd has absolutely nothing to do with technical superiority.
But its worthless debating you. I showed you a legitimate case for not ever integrating core utilities. You r
Re: (Score:2)
Ooh, that explains things.
So what is it, then?
Re: (Score:2)
Of course it's useful. Why should something like cups get started without a printer? Why should the user know to enable it once they get one? These days hardware changes at runtime, and things are expected to work when you plug in a printer or a bluetooth adapter, and not to complain or stop booting if some hardware turns out not to be there anymore.
Cups should be started without a printer, because then you can print in a file, put the file on a USB stick and go to a print shop or a place with a printer :).
Or it may not know when an network or LPT printer becomes available.
That is a technicality, though.
Inits (Score:2)
So shared libraries don't exist? That hasn't been a problem in a long time on BSD or OpenRC systems. Seriously, it's not hard to factor out code into a library. If you're only considering Debian, you have to remember that they are always behind (sometimes FAR behind) the update cycle.
You're aware that OpenRC does the exact same thing as systemd here, yes? That common library is written in C like God and Dennis Ritchie intended. Similarly, they annotate their files with dependency information and other useful info; many of the anti-systemd complaints apply equally to both projects.
No, there is not requirement to use PID files. That is simply a common way to implement a daemon. With sysvinit and sysvrc (or OpenRc), this kind of thing is an implementation detail that is out of scope.
PID files are a bad hack. They are the reason cgroups exist, and why every other unix has replaced SysV init. And cgroups aren't even the first process tracking feature to land in Linux, just the one that actua
Re: (Score:2)
The ability to use a DIFFERENT logger is not a bug, in fact that feature is the reason Unix has survived for 40 years - because no matter how technology changed, no matter what hardware changes we saw, no matter what new demands were placed on it, you can meet them by swapping out just one or two simple components.
It is possible - only when every component is independent and simple, so you CAN swap out components individually and everything else still just works.
Re: (Score:2)
No, I don't like that it requires replacement with "something compatible" - ANYTHING that can accept a message should be compatible.
Re: (Score:2)
And what if I have legitimate reasons to want no logging at all ?
Or, as I recently discovered, I need to change the details of how a startup service installed from a repo is launched... on RHEL7 where the suggested command "systemctl edit" does not exist, and no amount of searching could find the configuration for it - it certainly wasn't in the path where google responses said it's meant to be..
I managed to find an alternative hack to remove the need to modify the bootscript in the end (I had to change wh
Re: (Score:2)
Unless you go out of your way to configure it otherwise, on Gentoo, having the *loopback* device started is enough to consider the network up and online. Additionally, after the WiFi device is brought online, its startup is backgrounded so that the time taken by AP discovery and association and IP address acquisition doesn't stall the rest of system start. When backgrounded, WiFi network interfaces are marked as "started, but unready". When AP association and IP address acquisition is complete, that interfa
Re: (Score:1)
Okay, sure.
I'd argue that's a feature, not a bug.
To elaborate, init is not doing nothing, it is providing some essential services:
it provides an attachment point to the kernel for orphaned child processes that would otherwise end up outside of the tree.
it performs essential resource cleanup for orphaned zombie processes, among other things allowing reuse of the PID by future processes.
Re: (Score:3)
Oh look a hockey game broke out in a boxing match :)
Re: (Score:2)
Try reading comprehension.
Re: (Score:3)
It's not like init/SystemD, where init really was a bug ridden piece of garbage that's needed replacing now since before Linux itself came on the scene, and SystemD implements everything init did but does it right.
Talking of statements that take some gall...
Re: (Score:1)
...
It's not like init/SystemD, where init really was a bug ridden piece of garbage that's needed replacing now since before Linux itself came on the scene, and SystemD implements everything init did but does it right.
BWAAA HAAAA HAAAAAAHAAAAAA HAAAAA AHAAAAA HAAAAAA!!!!!!!!!!!!!!!!!
Stop. stop. I'm gonna pee. [youtube.com]
Re:I guess they realised... (Score:5, Funny)
It's just nobody's really asking for a replacement,
Except SunOS which replaced it with SunNews,
--Ok, but apart from SunOS no one is asking for a replacement.
Well NeXTSTEP replaced it with display postscript.
--Ok, apart from SunOS and NeXTSTEP no one wants a replacement.
Android dumped it.
-- Yes, aside from SunOS and NeXTSTEP and Android, who else wanted a replacement?
OSX replaced it with Quartz as well as iOS.
-- All right, but apart from SunOS, NeXTSTEP, Android, OSX, iOS what have the Romans ever done for us, i mean who wants a replacement?
Ubuntu with Mir and the Xorg with Wayland?
--Oh, SHUT UP!
Re:I guess they realised... (Score:4, Insightful)
If one of the X developers essentially calls X obsolete crap [youtube.com], then I think we should listen to him.
There are certain things that just don't work well in X. One of them is vsync, which requires a rather large amount of nontrivial workarounds, like Intel did.
To get something like vsync integrated properly, you need to fundamentally change how frames are updated. This is what Wayland developers refer to when they say that "every frame is perfect". The X11 model is essentially dumb drawing and updating, with no regards to complete frames. It goes further when you have for example 2 videos on screen. Even if both have the same framerate, temporal jitter will cause lots of problems. With a display server like Wayland, it is possible to inform the server that "surface X needs to be presented at timestamp Y", giving the server the chance to correctly schedule and group together updates. This possibility doesn't exist in X.
X is an anachronism, designed for graphics hardware from a bygone era. X does not in any way reflect properly how today's graphics chipset work. Sure, X can be used, but you need to use so many extension that very little is left from core X, at which point you have the display server equivalent of the Ship of Theseus.
One other big problem with X: it is single-threaded. Applications *can* cause X to block and become unresponsive. LibreOffice is good at this.
That said, I am not particularly fond of Wayland. I think it is a step in the right direction, but I slightly prefer the DisplayPDF approach of OSX. I believe certain primitives like text do have to be part of the server. Not for network transparency, but because rendering text is not easy, and especially because it makes it easier to deal with display scalability issues (physical size, PPI etc.) and multi-monitor setups (and also allows for very nice benefits like system-wide font atlas caching). However, in order for this to work properly and efficiently, you need to merge the display server interfacing libraries (= the equivalent of libX11/libxcb), the server itself, and the UI toolkit(s) to work consistenly across the board (and this is what OSX Quartz does). In particular, this requires the protocol between the interfacing libraries and the server to be opaque, implementation-defined, and not guaranteed to remain the same. This is because it makes modernizations, subsystem replacements, and extensions much easier. In X, there are still old extensions around because some old programs use the (Xinput vs Xinput2 for example). With such an encapsulated protocol as I describe, there would be only one high-level input API. The possibility of API breaking changes would not be that high, since unlike in the 80's and 90's, these days, the essentials of a 2D on-screen user interface (basic widgets, interface structures, crucial features and behaviors etc.) are well-known and stable.
Re: (Score:2, Informative)
.. aaand I just experienced another ugly wart of X: the dual clipboard madness (middle-click vs. Ctrl+C / Ctrl+V). The youtube link was incorrect, and some other link was present in the clipboard. https://www.youtube.com/watch?... [youtube.com] is the right one.
Re: (Score:2)
Re: (Score:2)
X11 isn't perfect. Nobody's ever argued that. It's just nobody's really asking for a replacement, and if they were, they wouldn't be asking for Wayland. X11 is an extraordinary piece of technology, it takes some gal to claim everyone should just throw it out and replace it with a ground up rewrite that adds no new features and doesn't support the major features X11 is famous and loved for.
I think you'll find lots of people are asking for a replacement, starting with the people most familiar with X11. And more generally anybody who wants Linux to be able to host a modern, responsive desktop experience without suffering the latency and other bottlenecks of an arcane and mostly obsolete architecture for no reason whatsoever.
Re: (Score:2)
If init is such a big piece of crap why do UNIXes stick to it? There is no way to implement what init does with systemd. Systemd is flawed by design. It is a monstrosity that should never have seen the light of day. To name a few fundamental flaws: using a binary system log, using binaries for helper programs and xml files for configuration (what's wrong with using shell scripts and flat text???). Thirdly, it violates the very thing that underlies nearly every single component of UNIX or a UNIX-like operati
Re: (Score:2)
Change that to "yes", and there you go.
start-stop-daemon was written in C last time I checked. So was bash, and awk, and perl and a whole bunch of other stuff system scripts use.
Try actually looking at the config files? They're INI style text files, as quoted above
Re: (Score:2)
I've worked as a unix sysadmin in a shop where that meant having copies of every commercial and free unix. Hell I had two actual DEC Alphas running ! I had every version of Solaris from 8 onwards, every version of HPUX ever released and numerous linux systems there.
I'll know from bitter experience which things which unixes did best or worst. Linux had the best package managers by far for example, and HPUX probably the worst one you could ever have the misfortune of having to work with.
And as for init system
Re: (Score:2)
Actually I never worked with SMF, so I don't know much about it besides that it exists. What I was pointing out that the deviation from the holy "unix philosophy" is getting pretty much universal, and that if the old way of things was so wonderful we wouldn't have
Re: I guess they realised... (Score:2)
While I was quite happy with upstart.
Re: (Score:2)
It's been a while since I had to work with upstart, so I don't remember the exact list of grievances I had with it. But I do remember that one problem I had is that it has a seriously weird dependency model that works backwards: rather than saying what you need for your service to work, your service starts when it has what it needs.
As far as system administration goes I find this is very weird and undesirable. If a service is for some reason not starting it's now my problem to figure out what it wants, and
Re: (Score:2)
You may put bugs in your init scripts if you edit them with emacs, but you'll find everything works a lot better if you switch to vi.
Re: (Score:2)
Wow. That's a lot of buzzwords.
I think you left out "user experience", tho.
Re: (Score:2)
Re:I guess they realised... (Score:5, Insightful)
It is a myth that supporting old drawing primitives in X11 somehow slows down modern clients and you can essentially have the same buffer handling as Wayland with X. In fact, the design of Wayland is basically copied from X minus some old parts which are not needed by modern clients. The problem with this is: Breaking compatibility with a decades old protocol for no good reason is just moronic.
Re:I guess they realised... (Score:4, Interesting)
It's not that supporting the old things slows things down, it's that it doesn't speed things up. It actually does cause some problems, because various things in the X11 protocol use 8-bit fields of which a significant space is used by legacy stuff that no one uses anymore, but that's largely worked around in newer extensions.
If you're in a world where most applications are sending commands like 'draw line from x,y to x1,y1' then X11 network transparency is really fast. At the protocol layer, anyway - if you use xlib then performance will suck unless network latency is very low because it adds a synchronous API on top of an asynchronous protocol (XCB fixes this). Modern applications don't do that, they typically render pixmaps and just have the X server composite them. X11 can still do a reasonable job here, with XDAMAGE, XFIXES, and XRENDER, allowing you to keep most of a pixmap (a Picture, in fact) on the server, update image data in selected parts, and do all of the compositing in the server. The problem is that none of the X11 toolkits actually do this very well. Wayland doesn't solve this at all - it simply says 'well, grab an OpenGL context and send drawing commands'. That works okay - the OpenGL protocol allows you to copy textures to the server (and the GPU) and composite them very fast. The problem is that this approach also works fine in X11, and with X11 you get network transparency when you do it (which works reasonably).
The main criticism I'd have of X11 is that it puts too much state on the server. There is no way, at the X protocol layer (or even in the low-level X libraries) of saying 'disconnect this window from this display, reconnect it here', or 'oh, my X server has crashed, recreate my state on this newly restarted version'. The latter worked fine in BeOS almost 20 years ago and works fine in Windows today. The former worked on NeWS 30 years ago. Both are use cases that I'd love to see addressed for modern devices. The Wayland solution to this is 'write a web app'.
Re: (Score:2)
I haven't seen it in Wayland per se, but look at xpra. The way it implements remote app execution is in theory possible based on my understanding of wayland architecture. It doesn't have problems with detaching windows, etc. It currently requires a dummy X server, but it's not really in the actual display stack. It's a project that gives me hope for Wayland being able to provide a decent experience. Of course I don't know if Wayland is badly needed or not, but at least I could see a tolerable way of co
Re: (Score:2)
It's not that supporting the old things slows things down, it's that it doesn't speed things up. It actually does cause some problems, because various things in the X11 protocol use 8-bit fields of which a significant space is used by legacy stuff that no one uses anymore, but that's largely worked around in newer extensions.
Yep. I am not opposed to cleaning things up with extensions without breaking backwards and forwards compatibility.
If you're in a world where most applications are sending commands like 'draw line from x,y to x1,y1' then X11 network transparency is really fast.
X11 network transparency is also very fast if you move bitmaps over network and are a bit smart of how you do it (I wrote an image viewer
which works quite well over the network).
At the protocol layer, anyway - if you use xlib then performance will suck unless network latency is very low because it adds a synchronous API on top of an synchronous protocol (XCB fixes this).
Yes, absolutely. But the important thing is: It is not a protocol problem. Replacing xlib is a sensible thing to do, inventing a new protocol is not.
Modern applications don't do that, they typically render pixmaps and just have the X server composite them. X11 can still do a reasonable job here, with XDAMAGE, XFIXES, and XRENDER, allowing you to keep most of a pixmap (a Picture, in fact) on the server, update image data in selected parts, and do all of the compositing in the server.
Absolutely. The great thing is: X11 lets you do all this stuff because
Re:I guess they realised... (Score:4, Informative)
This is just nonsense. Your applications may be overly pixmap based (certain GTK+ engines started that mess when people prioritized "themes" over good design), but it is foolish to assume everybody else uses the same limited set of software. Remember, most of the software in the world is smaller private stuff used internally by businesses, academia, etc. Simply asserting that nobody uses various features doesn't make it true.
Wayland advocates really need to learn one of the most important lessons of software design, which was best explained by Joel Spolsky's essay "Things You Should Never Do, Part I [joelonsoftware.com]".
Yes, there are rough areas in X11 that really need to be fixed. That's true for almost any software project of sufficient size. Fortunately, the extension system in X11 allows a lot of those problems to be solved one at a time, while retaining backwards compatibility. The people that believe the very existence of backwards must somehow be a bottleneck are not creating the next version of X. Instead, they are creating something new. This is fine, but by their own definition, it is not a replacement for X11, and if Wayland tries to be such a replacement, it will inevitably grow to a similar level of "messiness" as numerous fixes, workarounds, and minor features are re-invented.
The problem with Wayland (and many other modern "replacement" projects, with systemd as the canonical example) is not technical in nature, but the hubris that so easily throws out so many man-years of effort.
Re: (Score:2)
It doesn't slow down, but they also don't help. That's the point I was making, that the lines, text, and pattern primitives that X was able to simply describe aren't leveraged in modern UI.
Now I can't speak to the question of what Wayland fixes in exchange for getting to ignore having X11 as part of the core, and whether it's worth it. I can say that even if it Xorg, it's time for most folks to move on to strategies like Xpra that preserve the awesome facets of seamless remote applications, perform better
Re:I guess they realised... (Score:4, Informative)
It doesn't slow down, but they also don't help. That's the point I was making, that the lines, text, and pattern primitives that X was able to simply describe aren't leveraged in modern UI.
Yes, this is why XRENDER was introduced 15 years ago.
Now I can't speak to the question of what Wayland fixes in exchange for getting to ignore having X11 as part of the core,
Well they don't have to deal with the old code, I can understand this. But it breaks compatibility on the protocol level, this is really stupid IMHO.
and whether it's worth it. I can say that even if it Xorg, it's time for most folks to move on to strategies like Xpra that preserve the awesome facets of seamless remote applications, perform better, and are not sensitive to things like network disconnects trashing the ability for the application to keep running.
Xpra is nice if you have a slow connection, but I use X applications just fine over the network every single day and it works just fine. Being able to disconnect would be nice though, and I do not understand why toolkits still do not support this. Well, the reason is that rewriting everything from scratch all the time is apparently more fun...
Re: (Score:2)
As for the primitives, nobody has ever said they slow modern clients. The point is that clients don't even use the primitives any more and its the same story applies for most of the rest of
Re: (Score:2)
The Wayland API is nothing like X11 except in broad concepts that all display / input APIs share - listening for input events, connecting to a display, creating a drawing area and so on. It's just that Wayland's map onto modern concepts such as GPU surfaces and compositing so that rendering is as efficient as possible.
I disagree. Wayland is essentially a subset of what X11 can do. It is based on sending messages over a unix domain socket and sharing buffers. This is exactly what modern X clients also do. This is no surprise: It was designed to support exactly what is needed for modern clients and no more with the explicit goal to get rid of everything else. But it does not add anything which you cannot also do in basically the same way with X.
As for the primitives, nobody has ever said they slow modern clients. The point is that clients don't even use the primitives any more and its the same story applies for most of the rest of X11.
This is true. This is about retaining backwards compatibility.
It has a 1980s 2D-centric, damage based view of the desktop and extensions are used to fool it into supporting surfaces and composition.
Extensions are ni
Re: (Score:2)
I disagree. Wayland is essentially a subset of what X11 can do. It is based on sending messages over a unix domain socket and sharing buffers. This is exactly what modern X clients also do. This is no surprise: It was designed to support exactly what is needed for modern clients and no more with the explicit goal to get rid of everything else. But it does not add anything which you cannot also do in basically the same way with X.
Trying to say that just because it uses sockets makes it like X11 doesn't make it so.
This is true. This is about retaining backwards compatibility.
Right... so we must maintain backwards compatibility for barely used functionality even when it impacts on performance in the every day use case. And even when you can have backwards compatibility by running Xwayland or by running X11 without Wayland while everyone else enjoys a better experience.
Extensions are nice way to make modern rendering possible without breaking backwards possibility. "fool" "2D-centric" "1980" is just FUD to make it sound bad, but X supports modern applications just fine. You have no technical argument.
It's not FUD, it's true. X11 is from an age where the screen screen was a bitmap and every window to be a region in that bitmap.
Re: (Score:2)
I disagree. Wayland is essentially a subset of what X11 can do. It is based on sending messages over a unix domain socket and sharing buffers. This is exactly what modern X clients also do. This is no surprise: It was designed to support exactly what is needed for modern clients and no more with the explicit goal to get rid of everything else. But it does not add anything which you cannot also do in basically the same way with X.
Trying to say that just because it uses sockets makes it like X11 doesn't make it so.
This is not what I said. I said Wayland is similar by design to a subset of X because it is designed that way. Domain sockets and sharing buffers matters because those things essentially determine the performance.
This is true. This is about retaining backwards compatibility.
Right... so we must maintain backwards compatibility for barely used functionality even when it impacts on performance in the every day use case. And even when you can have backwards compatibility by running Xwayland or by running X11 without Wayland while everyone else enjoys a better experience.
Unsubstantiated claims: 1. It does impact performance in every day use case. 2. people will enjoy a better experience.
Xwayland will certainly not be everywhere (it already isn't), breaking compatibility in practice. Also Xwayland is only one direction of compatibility. Wayland clients will not wor
Re: (Score:2)
Run X11 over Wayland if you want backwards compatibility or start the desktop with the X11 backend. There's no reason your esoteric needs should impact on the experience everyone else suffers from. And thankfully that reality will soon be realized.
I agree but applications and toolkits etc. will have to continue supporting X11.
For now I'll keep running a 2D uncomposited X11 desktop mostly built around gtk2. Not too esoteric I believe. I want Wayland to leave vaporware status : I just don't want to use any 3D accelerated desktop on X11 (although they might be a bit too heavy on RAM and disk I/O anyway). But if I have to I'll stay on X11 till end of times.
Re: (Score:2)
How/where has the problem been solved better?
systemd?
Surely systemd solves *everything* better, thats why all the distros have gone with it?
Re: (Score:2)
If you have to ask the question you won't understand the reason for the answer.
Yes and? (Score:1)
It's not a 1.0 release, which means anything, even core features, can change.
Re: (Score:3)
This is enlightment. They've never ever had a '1.0' release in decades of existing.
Re: (Score:3, Informative)
Re: (Score:3, Insightful)
Those knowledgeable in the horrible language of C...
That's where I stopped taking the article you linked seriously.
Re: (Score:3, Informative)
Those knowledgeable in the horrible language of C...
That's where I stopped taking the article you linked seriously.
C isn't a horrible programming language!
Its a beautiful practical joke.
Re: (Score:2)
C is, essentially, a good portable assembler. It's barely a compiler at all, which is why it could fit on really small 8-bit systems.
For that matter, Byte once ran an article where they implemented most of C in M68000 assembler macros, so that it ACUTALLY was assembler. It wasn't all of C, just most of it, and it was too clumsy to actually use (M68000 assembler code was as readable and much more efficient), but it worked.
For that matter, LifeboatC, an i8080 compiler, really was a translator from C to asse
Re: (Score:2)
http://www.stokely.com/lighter... [stokely.com]
We stopped when we got a clean compile on the following syntax: for(;P("\n"),R-;P("|"))for(e=C;e-;P("_"+(*u++/8)%2))P("| "+(*u/4)%2);
Re: (Score:2)
The macro assembler in Byte had conditionals, loops, etc. Don't know about switch statements. It had operators. I think it had types, and enums, but I'm not sure about structs. It had at least limited scoping.
I never used it enough to really get a handle on its capabilities, so it may well have done more than I'm saying. It *didn't* implement libraries other than assembler (no I/O, e.g.), so it was clearly not very useful. But it was over 80% of the C language, and possibly over 90%.
Re: (Score:2)
Yes, and it's not the real reason I consider C to be a high level assembler. The real reason is that I got tired of translating normal assembler to run on different processors. I had one piece of code that had to be in assembler (the Fortran dialects I had access to couldn't handle it) that I translated to run on everything from a CDC 3800 to an Apple ][+ to a Z-80 and when I hit the 80186 I said E****Nough, and converted it over to C. I only use a small subset of C for this, and every C dialect I've eve
Re: (Score:2)
My impression of EFL was that it was written by someone who uses C like a portable assembly language. That's just not highbrow enough for some people, but C does lend itself most naturally to that treatment.
Re: (Score:2)
Re: (Score:2)
As long as the conventions are understood and consistent, then who cares if all strings have to be null terminated or if the strings returned as static, garbage collected or must be free'd?
That information has to be encoded somewhere. If your convention is that every char* parameter is a null-terminated C string that must be copied by the callee if it is expected to persist beyond the duration of the function call, then that's great (you'd better be really consistent about not using char* for arbitrary data though). Similarly, if every pointer that is returned needs freeing by the caller, then that's also fine, and you can machine-generate the wrappers on that assumption.
If you're going
Re: (Score:2)
My guess is the team just does not have time to support Wayland.
I figured out the mystery (Score:5, Informative)
After about 1 minute of investigation, I figured it out.
https://www.mail-archive.com/git@lists.enlightenment.org/msg05157.html
The code they had was old and unmaintained and didn't work so they removed it.
It's TEMPORARY, No Big Deal (Score:5, Informative)
This is just a temporary change just for E19.... They have better Wayland support in E20. Explained @ http://www.phoronix.com/scan.php?page=news_item&px=Enlightenment-Wayland-Temp
Re: (Score:1)
Temporary? With the Enlightenment Project? It took them 16 years to get from E16 to E17. Anyone know the timeframe for E20?
The alpha's already out so likely not too long. I believe things really sped up after E17.
Because Wayland support is moved to DR 0.20 (Score:5, Informative)
See here: https://phab.enlightenment.org/phame/live/3/post/e20_alpha_release/ [enlightenment.org]
Re:Because Wayland support is moved to DR 0.20 (Score:5, Informative)
Official statement on Wayland support in Enlightenment and its libraries:
From the Enlightenment home page.
Re: (Score:2)
Thank you.
I was pretty sure there was some click-baityness occurring here, and you just proved me right.
it's all in the commit message (Score:5, Informative)
https://git.enlightenment.org/core/enlightenment.git/commit/?h=enlightenment-0.19&id=d9501096bfaf626699dd6a61b49be2fb96ee6713
author Mike Blumenkrantz 2015-09-26 02:53:16 (GMT)
committer Mike Blumenkrantz 2015-09-26 02:53:16 (GMT)
commit d9501096bfaf626699dd6a61b49be2fb96ee6713 (patch)
tree 729fa82c90fd58c539391575ac2534101781b8c6
parent map/unmap x11 client windows when toggling iconic state (diff)
completely remove all wayland support from build system
this is unmaintained and out of date. the protocol versions are old,
and it's extremely unlikely that any client will work and be in a
usable state given the development progress since E19 was originally
released.
use E20+ for wayland support.
fix https://phab.enlightenment.org/T2746
Re: (Score:3)
Wayland is about embedded (Score:2)
next release (Score:2)
In other news, Enlightenment 0.20.0-alpha includes full support for Wayland. Since 0.20.0 is coming soon(-ish), removing support from 0.19.x is simply an acknowledgment that all Wayland effort is being directed at 0.20 rather than the existing 0.19.x series.
Who uses Wayland anyway? (Score:2)
To run Wayland I guess you have to be an enthusiast or a developer (writing a toolkit, a graphics driver or a desktop environment) or some fringe Fedora + Gnome 3 user.
Let's say 0.1% users use Enlightenment, and 0.1% users use Wayland. So people running Enlightenment on Wayland could be as low as a millionth desktop linux users, thus perhaps 15 to 20 people, likely less.
Wayland is dying!
Re: (Score:1)
So you are saying that Muslims in Europe are the cause of Enlightenment dropping support for Wayland??? I knew they were savages!
Re: (Score:2)
And Linux is being overrun by hipsters who can't see something that works without wanting to replace it.
In any case, I heard they dropped Wayland support because systemd will soon be the new Linux GUI.