I mean technically the client is verifiable if you use discord in a browser tab... and verify it every time you load the web page... 🙃
Distros should ship with this this under /readme.jpg
What's the big deal? Just solve for ...
... = (π^2 / 6) - (1 + 1/4 + 1/9)
Ez
/s
Who is also 15 yrs old and has brain damage
First 1/3rd is a bit of fluff but after that, good article. Especially the last 1/3rd.
Might want to link to some examples, e. g. https://gitlab.inria.fr/coccinelle/coccinelleforrust/-/blob/main/docs/Getting%20Started.md?ref_type=heads
I didn't really understand the usecase till I saw that^
why not have many accounts and do both?
I love seeing natural number support as the first example (instead of float)
Linting let's you use indentation based block delineation instead of curly brackets while keeping the rest of the language functionality?
"Yeah we could make single defacto config, one that requires no additional dependencies, and one that entirely skips the mess of cli-args-via-env-vars ... OR 😏 We could make users pick one of several competing options, all of which do effectively the same thing but are mostly incompatible with each other and allow for a new tabs-vs-spaces-kind-of debate while also not letting you understand other peoples code bases unless you learn all of them. And, not only does it require everyone to install a separate binary, but also they need to somewhat coordinate on which version--versions that are independent from the gcc version but must be kinda-sorta-coordinated with the gcc version."
Sorry, I'm not convinced
The best part of this is the subtle implication that you can tell a million completely different stories with the same data.
also if you're interested in languages join c/programming_languages!
IMO a config.yaml or toml would simplify things
does this compiler exist
TLDR; 65% of what you want exists as the Rust compiler, which is probably as close as you're going to get at the moment (edit: I was wrong see the comment about racket for a less practical but more flexible system). Take a look at macros like view!
on this page. Rust doesnt support html-like syntax, but it does within that view!
because someone made a macro that supports it. Rustc doesn't directly have a config file AFAIK but it also doesn't need any build tools (no make, cmake, autoconf, etc) because everything can be done with rust itself (because it's macro system is Turing complete with full file access).
Full Response:
I agree with the general idea, but I think there are lots of misconceptions. Gcc does allow doing things before the preprocess step, after the preprocess step, before the linking step, etc. It's possible, but not easy, to run your own programs inbetween those kinds of steps. As for why there's no config file, it's probably cause gcc is really old, but I'll have to let someone else comment on that.
However, syntax support is effectively a completely different feature request. For example the "adding brackets to indentation" couldn't really/correctly come before the preprocessing step. I mean a really hacky solution like my indent experiment from a long time ago can, but it will never be even slightly reliable because of the preprocessor, multi-line strings, comments and other edgecases. Let me explain.
But note, preprocessor strings just coincidentally parse the same as C strings. There's already a limitation of the preprocessor failing on, lets say, python where python has triple-quote strings.
That said, preprocessing is actually highly unusual in the sense that it can be done as a separate step. Usually parsing needs to be done as a unified operation. Not to say it can't be modular, but rather the module must be given to a central controller that knows about everything rather than just having a code-transformaiton step.
With those misconceptions out of the way, now I want to talk about the parts I agree with.
IMO the perfect language is the one that has an "engine" that is completely separate from the syntax. And then the language/compiler should allow for different syntax. LLVM IR could be argued as being "an engine", but man is it a messy edgecase-y engine with no unified front-end.
The closest current thing to what you're talking about is almost certainly Rust macros. Unlike the preprocessor, Rust macros fully understand rust and are a part of the parsing process. They are decently close to what you're saying, instead of compiler flags it's just imports within Rust. You can write HMTL, SQL, and other code just right in the middle of a rust program (and it's not a string either, it's actual syntax support). Not only is it possible, but I have been eagerly awaiting for someone to create a garbage-collected syntax within a Rust macro. People have already created garbage collectors, it's just a matter of making a nice wrapper and inter-op.
That said, and even though Rust macros are head-and-sholders above basically every other language, I personally still think rust macros don't go far enough. Indent-based code isn't really possible within rust macros, rust macros can't have imbalanced braces, and there can be escaping issues that prevent things like YAML syntax from ever being possible. They also can't allow for extensions like units, e.g. 10gallons
without wrapping it with some kind of delimiter (which defeats the point)
AFAIK currently there is no compiler that supports a composable syntax like that. I've worked on designing such a system, and while I don't think it's impossible, it is extremely hard. There's a lot of complications, like parsing precedence, lookaheads, operator precedence. Two syntax modules that don't know about each other can easily break each other. Like I said, I don't think it's impossible, but it is difficult.
My favorite was this project because it really shouldn't be possible, it requires some unusual problem solving (kinda like code golf), but the best part is seeing people's horrified expression when they realize
(I'm working on a video that explains it, but until then the readme and stack overflow post will have to do.)
Yeah, and maybe that means I should try making such an instance. I don't have the funds for something like lemmy.world, but I've got the technical background. So maybe that'll turn into my winter break project
Yeah I could've been more clear. I mean the All feed not Local. I went and updated my comment. And to be fully clear, I've got no complaints about lemm.ee. It's exactly what I want, e.g. show me everything and I'll decide what to block. That said, I know I'm not the norm.
Saying you blocked a fair amount is exactly what I'm talking about, so have I. A little bit of effort can really make the feed more palletable. We need to have a place where that is done by default. Maybe even an open source AI or even just an algorithm that tailors it to the user. I'm already glad Lemmy.world is much more moderate than lemm.ee, and we just need a place that goes all the way; NSFW blocked by default, several communities blocked-by-default (not defederated), and somehow prevents All from being flooded by niche memes. I love Linux and the memes (even if they get a bit repetitive) but we shouldn't have 3 of the top 10 posts be linux memes.
I tried to get my lab mate, a PhD in computer science and Linux Mint user, to get a Lemmy. He took one look at the all page, laughed, pointed out the circle jerk stuff and asked how some junk posts even made it to the all page and then said "yeah, no thanks" and has never touched Lemmy since. He was already 4 times more likely than the average person, but even he was instantly turned off.
Yeah I completely disagree. Imagine if a city/local gov wanted to use Lemmy in order to be self hosted (similar to EU govs switching to Mastodon) but the public just wonders why their local gov put their stuff on a weird circle jerk website that's flooded with niche memes. "Why didn't they use the normal thing (i.e. reddit)?"
We should be welcoming enough that, when someone wants to make a new subreddit, they make Lemmy community instead. And I don't think thats the case right now.
Same for me: just say no, and they say OK. Effortless but the option is totally invisible.
The irony is, I've seen the staff stop using the face scanner for everyone halfway through the line to speed things up. So its not saving time, just costing money to increase surveillance.