yodaiken.com
Daily reminder it's impossible to use C correctly, even Linus doesn't understand the standard and advocates for ignoring it, basically inviting UBs and subtle bugs:
> Don't tell me "the C standard is unclear". The C standard is _clearly_ bogus shit (see above on strict aliasing rules), and when it is bogus garbage, it needs to be explicitly ignored
> The standard simply is not *important*, when it is in direct conflict with reality and reliable code generation.
> I've said this before, and I'll say it again: a standards paper is just so much toilet paper when it conflicts with reality. It has absolutely _zero_ relevance. In fact, I'll take real toilet paper over standards any day, because at least that way I won't have splinters and ink up my arse.
No, you can either support him, basically turning gcc with a set of the compiler options into the de-facto C standard, but then it's no better than other languages without a standard and you're a hostage of the horribly maintained project gcc is. Or you can argue against him, but then you have to somehow show that competent C programmers even exist, because the most famous C programmer in the world is clearly incompetent.
Daily reminder it's impossible to use C correctly...
>most famous C programmer in the world
that would be carmack.
Carmack is unknown outside of /vr/
also, the rest of your comment is false. you are making false assumptions about what linus said and what he meant...
but anyhow, this is the third in a row C-shitposting thread. I am sage-ing without any second thoughts. have fun pytard struggling to understand { and }
I saw this same thread yesterday.
carmack switched to c++ ages ago
that means that more people use linux than have played doom.
doubt it
and linux haven't programmed in over a decade. he is reviewing code, not writting it.
I know this is bait but I'll bite:
People who think this shit in real life are insufferable faggots who have 0 concept of how much abstraction there already is between them programming in "real" languages bare metal. The amount of abstraction that's achieved by going from logic gates to C is fucking astronomical, and you could probably never achieve writing a C compiler from bare metal in your entire life if it weren't for the work of hundreds of years of mathematicians working all this shit out for you. Comparatively, the jump from C to Python is minuscule in the grand scheme of things. Sure it might abstract away a few data structures and make things nicer to use, but it's nothing compared to carefully organizing bits of sand together in such a way that they perform actual computation.
Computer science and abstraction are tied together at the hip. Losers who can't understand that the continuous abstraction of mathematics is the very essence of computing are the most obnoxious fucking faggots in the world. The losers who can't understand that it's actually harder to think abstractly are the funniest of them all. Sure you can do the equivalent of hand-holding a modern abacus. You're not accomplishing anything by reinventing the wheel for the thousandth time, you're just doing it because someone needs some retarded shit to be fast, but you're not furthering the field of computer-science. You're not developing new fucking algorithms in C, you're implementing something that someone (far smarter than you) has already thought of in a slightly different flavor just so you can get a paycheck.
I know this is pasta, I won't bite.
I was the OP in the original warosu.org
can confirm it was bait, and I even mostly use Python myself
> carmack.
Who?
co-founder of Id-Software.
Yeah, you know, except writing fucking git as a hobby project in his spare time.
>daily reminder pytards and sepples are still strugling with C
Thanks I guess.
Version control software is extremely simple to write so that's the most brainlet post I've ever seen on Jow Forums.
Ok, let's see what software you've written that's good enough to be adopted by literally tens of millions of programmers. I'll wait. It's simple, so should be no problem.
How to spot the butthurt 10 years old.jpg
Oh, so you've done nothing then? Shocking.
>even Linus doesn't understand the standard
Can you expand on that? I see no evidence for this.
>and advocates for ignoring it, basically inviting UBs and subtle bugs:
I don't think you know what undefined behavior means. Yes, Linus advocates for writing code that violates the C standard (that is not *inviting* undefined behavior, it's writing code that *has* undefined behavior), but that only means that the resulting code is broken *when compiled with an arbitrary compiler following the C standard*. But the linux kernel isn't written in standard C in the first place; it's explicitly written in the extended dialect implemented by gcc, not standard C proper. And in the gcc dialect of C, aliasing is totally well-defined behavior as long as the right command line arguments are used.
>No, you can either support him, basically turning gcc with a set of the compiler options into the de-facto C standard,
>Or you can argue against him,
That's a false dichotomy you're presenting here. The linux kernel is explicitly written in the gcc dialect of C, not standard C. That makes gcc-C the standard *for the kernel project*. It does not make gcc-C the de-facto standard *in general*.
>the most famous C programmer in the world is clearly incompetent.
Do elaborate.
Friendly reminder that ChadBSD promotes and uses C, also tranny hipsters are allergic to C for a reason, see pic.
>Version control software is extremely simple to write
AAHAHAHHHAHAHAHAHAAHAAAHAHAHAAAAAA
Do you even understand the scale of a version control system? Microsoft certainly didn't think it was a trivial matter and chose to use an established project rather than rolling their own (again). Even then, they dedicated a bunch of resources to improving it to meet their needs for the scale and complexity of their Windows repos. devblogs.microsoft.com
Who the fuck is that
- pointless if you're not targeting openbsd exclusively, which defeats the last 2 points (by definition, you have to be a hipster to target openbsd)
- same in the great majority of languages, moot point
- all C libraries are available in all languages with an ffi (which is basically all of them), but not the other way around, thus this is a point against C and for literally any language with an ffi that's not C.
- false, see gnu extensions, and their ubiquituousness
- see first point. It's also a fact that hipsters' favorite language is C.
How to spot the butthurt 10 years old.jpg
Carmack switched to c++ and now has been experimenting with rust and Haskell because he's actually talented and not a braindead cnile.
Have you ever written your own? Protip: I have. I needed one because git is not suitable to version control scientific workflows. Protip also: just because you're an incompetent pajeet doesn't mean the rest of the world is.
it's actually possible to write safe C, by writing haskell that transpiles to a verified and very restricted subset of C.
ivorylang.org
It has been used to develop the autopilot of UAVs.
smaccmpilot.org
Interesting. What feature do scientific workflows have that git is not suitable for? And how did you solve that in your own alternative?
>Id-Software
what is that?
Fine, I'll take the bait.
>Protip: I have. I needed one because git is not suitable to version control scientific workflows
Sounds interesting, care to elaborate or link the source?
>Protip also: just because you're an incompetent pajeet doesn't mean the rest of the world is.
kek, by your own admission you've accomplished nothing because "Version control software is extremely simple to write".
Scientific workflows generate large amounts of artifacts in the form of data (raw, partially processed, fully processed according to various pipelines), results (experiment logs, parameter sets, instrument configurations), metadata on everything (hypotheses when applicable, filtering methods, wetlab-related parameters), partial and complete experiment run information, etc.
These come from a mix of instrument outputs and computational tools. On the scientific pipeline, basically anything can be changed at any time, and an immense amount of unique small changes to code and data can be made every day.
The data format of each piece is widely variable: some are proprietary binary blobs, some are xml, some are binary dumps (some diffable, some not), some are graphical reports (e.g. svg or png graphs and tables).
All of this has to be kept in perfect sync with as little manual interaction as possible because any amount of time spent on this adds up extremely quickly due to the amount of unique experiments performed daily (especially on the computational side).
The data absolutely cannot be managed by git because:
- git can't deal well with blobs, even with shit like gvfs and git-lfs (if you ever get those working in the first place)
- git has no good way to manage the huge amount of changes to the data for each experiment (e.g. even just commits, let alone branches, become impossible to navigate).
- git has no good way to keep everything in sync given that everything can update at a different rate
- every single last parameter (including experiment time, every command-line parameter to every program call, every graph generated, etc.) must be logged
Moreover, we needed a way to query the information quickly and efficiently based on this "meta"data ("which experiment gave me these reports?" or "which experiments relied on that data?") so we can have reproducibility, and this must be available in as portable a way as possible.
>kek, by your own admission you've accomplished nothing because "Version control software is extremely simple to write".
BTFO
why has there been so many insecure scriptkidders raging on C lately? Is this some sort of pre-summer phenomenon? A raid by reddit? Who are these zoomers and why are they so butthurt?
I built a custom solution using an sqlite backing store that creates and maintains a structured project with automatic versioning, information tagging and relevant query tools, using artifact references to support large blobs (which we usually want to store on a different disk than the rest). The whole process enables merging arbitrary parts of the workflow into an arbitrary current state, or explore fully identical previous states and reproduce the experiments.
That's right, pajeet, I said that building this version control system was nothing particularly interesting. The thing is, you're the only one who claims otherwise. I have never bragged about it because it's literally nothing to brag about. Unless you think hello world and fizzbuzz are worth bragging about.
Who will anti-C trannies ever recover?
By somehow being less retarded than @cucknadianbryan
>we stole something then made it shit, ad-hoc and insecure that means we invented it
every single time.
>The data absolutely cannot be managed by git because:
>- git can't deal well with blobs, even with shit like gvfs and git-lfs (if you ever get those working in the first place)
>- git has no good way to manage the huge amount of changes to the data for each experiment (e.g. even just commits, let alone branches, become impossible to navigate).
>- git has no good way to keep everything in sync given that everything can update at a different rate
>- every single last parameter (including experiment time, every command-line parameter to every program call, every graph generated, etc.) must be logged
It is sad if you honestly believe this. Git can do all these things quite happily, and people use it in this way all the time. Did it ever occur to you that the problem is in your knowledge of how to use these tools?
In particular, the automatic generation of derived artifacts from source data is a problem with a large number of highly developed tools. This toolchain is generally separate from the version control system used; rather, the toolchain to generate these artifacts and the configuration thereof is stored in version control, as is the source data, and generated artifacts MAY also be stored in version control depending on how they expensive they are to recreate. Integrating the two systems into one blob just adds unnecessary complication.
>In 2019, writing a C program doesn't start with typing main.
Oh, ok.
Thanks for proving you are an incompetent pajeet with no clue what you're talking about.
It's been known for quite some time now to do type punning using memcpy and not unions. And yes, this implies that Linus is in fact (at least in this regard) incompetent.
Not to mention that you can write a lot of useful software without needing type punning and/or unions at all. It's only some really low level stuff where you sometimes really need to rely on such techniques.
>(at least in this regard)
Linus has never really had a clue what he's ever talked about. He always let critical regressions and garbage code right through and his only contribution is managing to con many people into working "for him for free" (for him meaning he is credited with everything despite doing nothing, for free meaning he doesn't personally pay them).
what the fuck did he mean by this?
you obviously put #include first, and copyright license and author before that.
>In 2019, writing a C program doesn't start with typing main.
C-let here, what does this mean?
it means you put copyright and license information and author name and filename first.
Maybe he forgot, since he's busy with his Youtube channel now.
He means that you should write a bunch of rules that will spy on syscalls to make sure you don't make the wrong ones. Protip: it doesn't actually help.
This guy is probably some grad student academia fag. They love to roll their own shitty implementations rather than learn tools that are "beneath them".
>and not a braindead cnile.
Ironically, he actually is SENILE given his terrible ideas like memegatextures and mobile vr.
I accept your surrender, pajeet.
All C needs to be perfect is to replace that awful header/includes system with namespaces and a true module system. It would also be nice to make things private, protected, public, etc.
It doesn't need classes or OO-bullshit. I would change nothing else.
>It doesn't need classes or OO-bullshit.
Yeah, let's just cast struct pointers everywhere! What could go wrong?
Have you tried being competent at programming?
Said the guy who wants access modifiers but no OOP.
I didn't say that. Maybe check the names next time you respond to someone.
Yeah nice try sweaty, both comments were made by a guy named Anonymous. You're some Greek faggot, aren't you?
So where's the published paper and source on the pros of your nextgen experimentation version control system anyhow?
lol
>...a true module system. It would also be nice to make things private, protected, public, etc.
>It doesn't need classes or OO-bullshit
Nigguh what? You basically described oo shit though.
t.mentally ill
This is the kind of person who creates these anti-C threads and violently spreads FUD against the language that people like Linus, Theo, Terry, Carmack have used to build the useful application that we all use.
Let that sink for a moment.
Genetic fallacy.
Megatextures and VR are great ideas, we just don't have the hardware to make use of them. Megatextures could save designers and programmers hundred of hours of work. Unlike the average Cnile , Carmack thinks about advancing software engineering.
>FUD
Fuck off back to your brainlet board. You gotta circlejerk about ETH pumping some single digits
>Carmack
Stop lumping him in with the other talentless hacks he stopping using C as soon as a viable alternative appeared and he's constantly looking for a replacement for C++ too.
Are you OK, pajeet? Need someone to call an ambulance to save you from your stroke?
Yes, simple version control systems like are simple. Want a gold star? Complex and more capable ones like git are not so simple. The fact that you can't seem to understand the difference speaks to your far too dialed in focus on your particular use case.
These.
t. zoomer
Ok. Even if you did make it, you're just one of those gays hoping your garbage acedemic work can be turned into some fucking startup that was funded by other people's money. Get fucked faggot. Also I'm not the same person you were arguing with.
Are there really people who think they can convince their co-debaters by just screaming PAJEET after every reply?
My version control system is a strict superset of git though. And yes it's simple.
ruindays.com
Get well soon!
pledging absolutely helps prevent a wide range of attacks from accessing the majority of the system. it's a solid idea and a simple api which is rare in the security world. most security measures fail because they're too complicated and wind up being misconfigured, but openbsd's pledging system is dead simple to use correctly. compared to things like selinux and apparmor it's really a diamond in the rough.
Selinux and apparmor only need to be implemented on the user side while pledge has to be implemented in both sides as far as I'm aware, so it's useless on that end, not to mention only usable for trusted applications, for which you wouldn't really benefit from pledge anyway (since even with pledge you should never trust anything network-facing). And the other problem is that pledge doesn't actually cover use cases implied in that post making the reply completely vacuous (as openbsd users' usually are).
Access is a linking matter, it has nothing to do with OOP. C has access modifiers already with static and extern. On top of that, you can easily create opaque data types by defining types in headers and leaving the type definition in the source files only.
Oh look it is this thread again..
C is fine stop spamming autist
>My version control system is a strict superset of git
lol, I'm out
I thought each c file was(or can be) a module, like one at least. Isn't that why you need headers for external access?
#include literally takes the included file and copies it into the source.
you can however compile and then link a binary that has no main, with which you can read and call addresses for extending binary functionality.
Keep being butthurt, child.
pledge is only needed on the one end. being able to lock down the filesystem related system calls is very useful for any network facing process, and the unconditional sigabrt ensures shell code can't continue when it somehow manages to get its foot in the door. pledge and unveil are genuinely good ideas and i can't wait until they come up with something similar for linux.
Without uncatchable sigabrt and other facilities pledge is useless. Pledge being user-side is retarded for the obvious reasons outlined before. Unveil and pledge are complete jokes security-wise. You get to lock down precisely nothing with them. More like "open up". Linux not only has had infinitely superior solutions since forever in the way of grsec's patches, apparmor and selinux, but even more so at the OS level with the likes of cgroups.
Not only is there precisely 0 use of pledge or unveil in linux, it would actually increase its attack surface.
Meanwhile in openbsd, it is yet another non-feature with 0 security gains just for playing pretend with the cool kids. That's why openbsd couldn't possibly ever be taken seriously.
Openbsd fanboys are the most dangerous kinds of people because they blindly advocate for anti-security measures that INCREASE THE ATTACK SURFACE with 0 advantage and call it "decreasing the attack surface". Absolutely insane.
damn it, if i had know you were completely retarded i wouldn't have wasted my time replying to you. give me a better warning next time, jackass.
>get btfo
>ur jus rtard xd
Every single time. You never actually have any argument. Hell, you never even have one word's worth of substance in any of your posts. It's always the same old tired pure propaganda message. If it's ever put into question in any way, shape or form (especially if hard evidence is presented), it's "ur a troll" or "ur a rtard xd". Like clockwork.
This is why openbsd has always been and always will be the most insecure real OS in the world.
But GCC is a good compiler, so there's no issue.
All these people bagging on GCC because it ensures your freedoms are respected via the GPL as opposed to the public domain Clang.
you're so weird. are you schizophrenic?
gcc is a shitty compiler
Oh the iron knee.
Unfortunately, it also happens to be the best.
No.
Then name a better one. It must compile faster executables, or have a stable, targetable API (i.e. clang can't count because llvm is the most unstable shit in the universe), or have any other tangible advantage, really, and it must work reasonably on generic hardware (so icc doesn't count).
He's known by mid 30s programmers and tech guys.
I don't need all that shit, so your rules don't apply objectively to what is "best". i.e. you made arbirtrary prejudiced decisions on what counts and doesn't.
most people who played doom don't know carmack. most linux users are enthusiasts and as a result know who linus is.
fuck off cunt
I literally said "any advantage whatsoever" and you call that an arbitrary prejudiced decision on what counts and doesn't. Think about that for a second before you go back to whatever insane asylum you crawled out of. Nevermind the fact you still haven't named anything.
>It must
Those are set preconditions based on your arbitrary choice of what is "best".
What the fuck is everybody talking about?
>carmack
>c
even linus torvalds said git is simple and that's how he could write it in a few days.
Hahaha sure thing kiddo. John Doom Slayer Carmack is a living legend that gives Elon musk rocket science advice on twitter