Arguably these days having a clear frontend/backend separation is good compiler architecture. It might slow down compile times a bit, but it's worth the cost.
Arguably these days having a clear frontend/backend separation is good compiler architecture. It might slow down compile times a bit, but it's worth the cost.
These works are something I both understand and would never achieve myself. These are cultural artifacts, like deeply personal poetry, made purely for the process of it. Not practically useful, not state of the art, not research level, but... a personal journey?
If the author is reading this... can you share your vision? Motivation?
Really? I was under the impression that the fact that it is miserable to parse C++ directly means that it's also miserable to compile C++ - it can't be done quickly - which is something that everyone has to do all the time.
Visual Studio Code seems to be their big open source push, besides GitHub. Everyone uses it, and most development environments and UX are based on it. Used to be Atom, I remember.
Not really sure what you mean by that.
Both our Intel and AMD computers are doing great. Nothing "weird" about it.
No problems at all. YMMV.
My most recent computer is AMD Ryzen based, but we just bought an Intel-based Dell for my partner because the price/performance was better than comparable AMD machines at the time, possibly due to a sale. But the Intel chip is a lot faster than my laptop, so now I'm a little bit jealous of the Intel machine.
I have 2 intel/dell laptops and thinkpad/amd 14s laptop. Both Dells (a workstation-class 22 core cpu and a more power-efficient one) suck massively when compared to amd ai-something-something-ryzen.
What's worse, intel drivers are a mess on linux right now. Dell xps 13 plus is the worst laptop I had in a decade, and that's after owning every Linux-preinstalled Dell XPS 13 ever released.
It's just data + relevant functions. Which is ok.
That's all there is, really.
This is different from embedded Linux or Linux on a server. And this is different from Linux-the-kernel (which runs on Android).
All of that is just too nebulous. Linux is something that runs the kernel, that's about it.
I mean, I've been using linux for all of my life, servers, at home, for work, embedded dev, corporate environment, as a manager and as a dev, etc.
What I see is that linux as already everywhere. Desktop space is the only OS market where non-linux OSes are in the majority, and maybe this is why people are so excited about these pointless numbers.
Can I install LibreOffice on Android? Gnome, KDE, Xfce? Which percentage of packages in the Debian repos can I use on Android?
There is also a major family of OSes building on the kernel + gnu userspace, which you probably call "desktop linux".
In my house there are dozens of devices running linux the kernel: routers, a tv set, washing machines, NAS, printers, etc. Some have the full gnu posix-like stack, others are very barebones.
Then, there's is a bunch of android devices running the kernel as well.
What's wrong with all of these? At what point should i draw a line?
How so? In Ada, Fortran, C, C++, Java, Python, etc. parsing is one of the many phases of compiling. Far from being orthogonal problems, parsing is a sub-problem of compiling.
When we parse a string, we go up from low-level human-readable strings to intermediate parse trees to a high-level AST.
A process of compilation goes down from some kind of a high-level internal representation through phases to something that is close to the target low-level language.
It can go down from an AST, or LLVM-s internal representation, or whatever.
Problems solved by both processes are different:
1. Parsing is about finding string patterns (using regexps or PEGs or whatever) and representing these using a more strict high-level structure. The structure is usually tree-like but is also often a graph.
2. Compiling takes something high-level (a tree, a graph, etc) and emits something different, usually simplified.
A good example is a typical lisp implementation where the parser is trivial but compilation phases represent numerous simplifying phases.