funny how nothing good is liscenced under the gpl
4 years ago
Reply to @pernia@freespeechextremist.com
4 years ago
Reply to @pasture@pl.gamers.exposed
4 years ago
Reply to @georgia@netzsphaere.xyz
4 years ago
Reply to @pasture@pl.gamers.exposed
@pasture@pl.gamers.exposed @georgia@netzsphaere.xyz reliscensing doesn't count, anything free could be gpl'd under that logic
4 years ago
Reply to @pernia@freespeechextremist.com
4 years ago
Reply to @pasture@pl.gamers.exposed
@pasture@pl.gamers.exposed @georgia@netzsphaere.xyz or its permissively liscenced, which is what good projects are
4 years ago
Reply to @pernia@freespeechextremist.com
@pernia@freespeechextremist.com @georgia@netzsphaere.xyz what? yeah, anything can gpl'd if the owner decides to make it gpl.
4 years ago
Reply to @pasture@pl.gamers.exposed
@pasture@pl.gamers.exposed @georgia@netzsphaere.xyz its a shit liescence, and projects with half a brain avoid it for a reason
4 years ago
Reply to @pernia@freespeechextremist.com
@pernia@freespeechextremist.com @georgia@netzsphaere.xyz what does this have to do with "no good software is licensed under the gpl", georgia and I gave you examples
4 years ago
Reply to @pernia@freespeechextremist.com
@pernia@freespeechextremist.com @georgia@netzsphaere.xyz so doom and pleroma are projects without half a brain
4 years ago
Reply to @pasture@pl.gamers.exposed
@pasture@pl.gamers.exposed @georgia@netzsphaere.xyz doom doesn't count. i guess i'm refering to linux and gnu more than anything
4 years ago
Reply to @meowski@fluf.club
@meowski@fluf.club @georgia@netzsphaere.xyz @pasture@pl.gamers.exposed they are shit. its cool that stallman wanted to make software free an available, but compared to other coreutils gnu is garbage
woodland creature
4 years ago
Reply to @pernia@freespeechextremist.com
@pernia@freespeechextremist.com @pasture@pl.gamers.exposed @georgia@netzsphaere.xyz gnu coreutils is pretty useful. you might want to rethink this
woodland creature
4 years ago
Reply to @pernia@freespeechextremist.com
@pernia@freespeechextremist.com @georgia@netzsphaere.xyz @pasture@pl.gamers.exposed they seem to work pretty well and are the most widely distributed. so idk you got a better bundle of core utils?
4 years ago
Reply to @meowski@fluf.club
@meowski@fluf.club @pernia@freespeechextremist.com @georgia@netzsphaere.xyz @pasture@pl.gamers.exposed aah, nobody mentioned gcc? More than half of the software wouldn't exist without gcc (assuming those devs wouldn't use TurboC or msvc)
4 years ago
Reply to @user@freespeechextremist.com
@user@freespeechextremist.com @meowski@fluf.club @georgia@netzsphaere.xyz p@freespeechextremist.comasture@p@freespeechextremist.coml.gamers.exposed gcc changes the code you write. @p@freespeechextremist.com can back me up here
rdr@p@freespeechextremist.comosting.lolicon.rocks @georgia@netzsphaere.xyz @meowski@fluf.club @p@freespeechextremist.com p@freespeechextremist.comasture@p@freespeechextremist.coml.gamers.exposed @user@freespeechextremist.com it FUCKS UP YOUR CODE TO THE POINT WHERE YOU HAVE TO ACCOUNT FOR IT. that's the difference between a cumpiler and a coompiler. cumpilers optimize, coompilers ooptimize
woodland creature
4 years ago
Reply to @pernia@freespeechextremist.com
4 years ago
Reply to @pernia@freespeechextremist.com
@pernia@freespeechextremist.com @user@freespeechextremist.com @georgia@netzsphaere.xyz @meowski@fluf.club @pasture@pl.gamers.exposed Yeah, it even changes function calls and then changes string constants to fit the new calls. It's ridiculous.
4 years ago
Reply to @meowski@fluf.club
@meowski@fluf.club @pernia@freespeechextremist.com @georgia@netzsphaere.xyz @pasture@pl.gamers.exposed @rdr@posting.lolicon.rocks @user@freespeechextremist.com gcc takes some excessive liberties. As far as I'm concerned, swapping out function calls by relying on knowledge about the stdlib (the way I found out it was doing this was it changed a printf() to a puts(), but it does this with a lot of libc functions) is way over the line.
4 years ago
Reply to @p@freespeechextremist.com
@p@freespeechextremist.com p@freespeechextremist.comernia @georgia@netzsphaere.xyz @meowski@fluf.club p@freespeechextremist.comasture@p@freespeechextremist.coml.gamers.exposed >changes string constants Tf?
4 years ago
Reply to @user@freespeechextremist.com
@user@freespeechextremist.com @georgia@netzsphaere.xyz @meowski@fluf.club @pasture@pl.gamers.exposed @pernia@freespeechextremist.com > Tf? It's got to alter the string constant in order to cut the newline off so that it can use puts() instead of printf(): echo '#include int main(int argc, char **argv) {printf("Hello, World!\n");return 0;} '>/tmp/hello.c && gcc -O3 -S -o /tmp/hello.s /tmp/hello.c && grep Hello /tmp/hello.s # This prints '.string "Hello, World!"' rather than '.string "Hello, World!\n"'. It's different behavior, so it's not an optimization any more.
Social Justice Wizard
4 years ago
Reply to @p@freespeechextremist.com
@p@freespeechextremist.com The produced executable does not behave differently when run. You're using a wonky definition of "changes behaviour" that looks into implementation details. A process in a UNIX environment should be seen as a blackbox with the following inputs and outputs: In: - Argument vector - Environment variables - Standard input port Out: - Standard output port - Standard error port - Exit code Plus of course it can open further ports, or cause side effects on the environment such as affecting the filesystem or spawning new processes. The functions in the C and POSIX standards aid in ultimately producing this blackbox. Nobody defines how exactly they must be implemented so long as their use results in the described runtime behaviour. @user@freespeechextremist.com @georgia@netzsphaere.xyz @meowski@fluf.club @pasture@pl.gamers.exposed @pernia@freespeechextremist.com
4 years ago
Reply to @socjuswiz@spinster.xyz
@socjuswiz@spinster.xyz @georgia@netzsphaere.xyz @meowski@fluf.club @pasture@pl.gamers.exposed @pernia@freespeechextremist.com @user@freespeechextremist.com > The produced executable does not behave differently when run. I gave two examples of it behaving differently, I can give more. > looks into implementation details. Have you never used a different libc? > A process in a UNIX environment should be seen as a blackbox with the following inputs and outputs: This is not a rule for a Unix environment. This is also a pants-on-head stupid non sequitur. A C compiler is not a Unix environment. C runs in several places that are not Unix environments. gcc is used in many of those places. "Unix" is not an acronym. (According to BWK, the small-caps style was due to excitement over adding small-caps to the typesetter.) If including an example of something as wild as "using the debugger and expecting that the program will do what you wrote" makes the example "wonky", I don't know how to help you. (Apparently v7's adb had breakpoints. But nobody was around to standardize the OS back then so I suppose Unix didn't exist until some time in the late 80s. One wonders how they got anything done!) gcc is a program inside this environment, I have executed it, and when I did, gcc has read some files and has written some files and I did not like its output. The output is not special simply because it's not text and the compiler is not special simply because it's a compiler: it's reading and writing and it has performed a bad transformation at one point. > The functions in the C and POSIX standards aid in ultimately producing this blackbox. This is the absolute worst way of viewing a standard. You have joined some sort of cargo cult: "Don't rely on implementation details remaining constant" is a very different thing from "Your environment is a black box." What you have described is not what a standard is for, it is not what this standard is for, and it is Even with your idiosyncratic rules, this is not the goal of a standard, and the standard is a guideline for implementors, and I am using a C compiler, not writing a POSIX-compliant system. POSIX is not the only OS standard, it is not the only Unix standard, it is not the C standard—of which there are also many–a standard is not the word of God, and POSIX is garbage anyway. *Should* the C compiler do this? I don't know, apparently unless I join a standards body, I'm not allowed to ask that question! "Not all that is lawful is honest" is a better way to approach this. "Is it the right thing to do?" is a very different question from "Is it legal?" If it's stupid behavior and the standard allows it, then the standard is not relevant for discussion of the behavior. If it's stupid behavior and the standard *requires* it, then the standard is stupid. In either case, "It's allowed to do this" is not a relevant point. Try, even once, writing a performant compiler or bytecode interpreter, or writing embedded software. Which functions the thing calls matters. It matters whether or not it translates to the same number of syscalls. Even if you're in a completely normal-looking Unix system, syscall overhead matters in any case where performance matters. If you are making anything, anything at all, that thing's dependencies are going to matter if you want it to actually work. If you write C, you will, sooner or later, have to stop pretending that you don't know how the stack works, or how paging works, or how syscalls work, or how your system lays out its memory, or how it works on other systems on which you expect your code to run, or endianness, or any of that. Go do whatever you people do: write another clone of grep in Rust, write an impassioned blog post defending Haskell's excessive memory usage, opine on Hacker News about how nobody but you really *gets* Dijkstra, or something. Adults are talking in this thread.
Show more
woodland creature
4 years ago
Reply to @p@freespeechextremist.com
4 years ago
Reply to @meowski@fluf.club
@meowski@fluf.club @georgia@netzsphaere.xyz @pasture@pl.gamers.exposed @pernia@freespeechextremist.com @rdr@posting.lolicon.rocks @user@freespeechextremist.com Yeah, I'm just saying, this is bad, the compiler should not do this, and should not have to be told not to do this. Messing with stuff around function calls is bad but it does the pointer-chase twice for something like "x->y->z++; if(x->y->z > 10) stuff();". Memory traffic's what gets you nowadays but the dragon book is about register allocation and compiler authors apparently would rather stick to that kind of thing.
woodland creature
4 years ago
Reply to @p@freespeechextremist.com
@p@freespeechextremist.com @georgia@netzsphaere.xyz @pasture@pl.gamers.exposed @pernia@freespeechextremist.com @rdr@posting.lolicon.rocks @user@freespeechextremist.com >it does the pointer-chase twice the trade off there would be memory usage vs speed. puts vs printf example is pretty innocuous. if you don't wnt to disable them entirely, you can also generate a report of which optimizations were used
4 years ago
Reply to @p@freespeechextremist.com
4 years ago
Reply to @p@freespeechextremist.com
@p@freespeechextremist.com @meowski@fluf.club @georgia@netzsphaere.xyz @pasture@pl.gamers.exposed @pernia@freespeechextremist.com @rdr@posting.lolicon.rocks @user@freespeechextremist.com > tell compiler to optimize code > compiler optimized code > OxO Optimization means go fast while remaining standard compliant. debugging behavior is not relevant to optimization. you told compiler to do it and it did what you asked.
4 years ago
Reply to @meowski@fluf.club
@meowski@fluf.club @georgia@netzsphaere.xyz @pasture@pl.gamers.exposed @pernia@freespeechextremist.com @rdr@posting.lolicon.rocks @user@freespeechextremist.com > the trade off there would be memory usage vs speed. There's actually no trade-off there. It boils down to "deref address in register into other register" a few times, then increment, store result, then a comparison. It doesn't need to reload before the comparison. > puts vs printf example is pretty innocuous. if you don't wnt to disable them entirely, you can also generate a report of which optimizations were used In this case, it's "-fno-builtin", and it happens with optimization off.
4 years ago
Reply to @meowski@fluf.club
@meowski@fluf.club @p@freespeechextremist.com @georgia@netzsphaere.xyz p@freespeechextremist.comasture@p@freespeechextremist.coml.gamers.exposed rdr@p@freespeechextremist.comosting.lolicon.rocks @user@freespeechextremist.com gcc: 0 gcc haters: 1
woodland creature
4 years ago
Reply to @p@freespeechextremist.com
4 years ago
Reply to @pernia@freespeechextremist.com
pernia - https://freespeechextremist.com/users/pernia meowski - https://fluf.club/users/meowski @p - https://freespeechextremist.com/users/p pasture - https://pl.gamers.exposed/users/pasture rdr - https://posting.lolicon.rocks/users/rdr user - https://freespeechextremist.com/users/user getting others to fight your battles is gay, your initial position of gpl software sucks was indefensible and you had to move the goalposts twelve times
4 years ago
Reply to @georgia@netzsphaere.xyz
4 years ago
Reply to @georgia@netzsphaere.xyz
@georgia@netzsphaere.xyz @meowski@fluf.club @p@freespeechextremist.com p@freespeechextremist.comasture@p@freespeechextremist.coml.gamers.exposed rdr@p@freespeechextremist.comosting.lolicon.rocks @user@freespeechextremist.com i'm not making anyone fight battles, i just tagged someone who knew more about the topic i mencioned than I did. i'm also not making anyone defend the elitist joke i made which made everyone's pussy clench up
4 years ago
Reply to @bbb@kiwifarms.cc
@bbb@kiwifarms.cc @georgia@netzsphaere.xyz @meowski@fluf.club @p@freespeechextremist.com p@freespeechextremist.comasture@p@freespeechextremist.coml.gamers.exposed rdr@p@freespeechextremist.comosting.lolicon.rocks @user@freespeechextremist.com finally a fucking good post
4 years ago
Reply to @shironeko@fedi.tesaguri.club
@shironeko@fedi.tesaguri.club @georgia@netzsphaere.xyz @meowski@fluf.club @pasture@pl.gamers.exposed @pernia@freespeechextremist.com @rdr@posting.lolicon.rocks @user@freespeechextremist.com > debugging behavior is not relevant to optimization. If you've got a bug that only manifests with optimization on, it is. > you told compiler to do it and it did what you asked. This happens with -O0, no optimization, which I keep forgetting because it's too egregious to make sense. (On the other hand, since this is not an optimization, it makes a kind of perverse sense.) Here's this from the note I made about it last time:
4 years ago
Reply to @p@freespeechextremist.com
@p@freespeechextremist.com @georgia@netzsphaere.xyz @meowski@fluf.club @pasture@pl.gamers.exposed @pernia@freespeechextremist.com @rdr@posting.lolicon.rocks @user@freespeechextremist.com lmao, this is hilarious, i guess built-ins are not covered by -O flag. really gcc is a library, more than an compiler. :(
4 years ago
Reply to @meowski@fluf.club
@meowski@fluf.club @georgia@netzsphaere.xyz @pasture@pl.gamers.exposed @pernia@freespeechextremist.com @rdr@posting.lolicon.rocks @user@freespeechextremist.com The end of the rabbit hole is just that you make peace with the compiler being terrible like compilers were in the 80s but for different reasons and with no escape and periodically someone says "Actually, this is good."
4 years ago
Reply to @georgia@netzsphaere.xyz
@georgia@netzsphaere.xyz @pernia@freespeechextremist.com @meowski@fluf.club @pasture@pl.gamers.exposed @rdr@posting.lolicon.rocks @user@freespeechextremist.com > your initial position of gpl software sucks was indefensible It's a perfectly defensible position because all software sucks. Take the Al Viro pill.
4 years ago
Reply to @p@freespeechextremist.com
@p@freespeechextremist.com @georgia@netzsphaere.xyz @meowski@fluf.club p@freespeechextremist.comasture@p@freespeechextremist.coml.gamers.exposed rdr@p@freespeechextremist.comosting.lolicon.rocks @user@freespeechextremist.com BASED P i unrectract my position
4 years ago
Reply to @p@freespeechextremist.com
Jeff "never puts away anything, especially oven mitts" Cliff, Bringer of Nightmares 🦝🐙 🇱🇧🧯 🇨🇦
4 years ago
Reply to @p@freespeechextremist.com
@p@freespeechextremist.com @socjuswiz@spinster.xyz @georgia@netzsphaere.xyz @meowski@fluf.club @pasture@pl.gamers.exposed @pernia@freespeechextremist.com @user@freespeechextremist.com the real interesting part is what happens when the culture wars come for the C standards bodies because you know that's next and suddenly, whether to put an endline on a string becomes as important as whether jesus redeemed our sins
[MOVED] Neopolitan
4 years ago
Reply to @p@freespeechextremist.com
@p@freespeechextremist.com @georgia@netzsphaere.xyz @meowski@fluf.club @pasture@pl.gamers.exposed @pernia@freespeechextremist.com @rdr@posting.lolicon.rocks @user@freespeechextremist.com Right now, I'm in a state where my first preference is to have working software. If possible, I want working "free as in freedom" software. But I also want my shit to work more or less as expected. If free software can't perform, I'll find an alternative. I don't have unlimited time to baby my programs, they should just work without major issue.
4 years ago
Reply to @jeffcliff@shitposter.club
@jeffcliff@shitposter.club @p@freespeechextremist.com @georgia@netzsphaere.xyz @meowski@fluf.club p@freespeechextremist.comasture@p@freespeechextremist.coml.gamers.exposed @socjuswiz@spinster.xyz @user@freespeechextremist.com thank God int main() is already called that
4 years ago
Reply to @p@freespeechextremist.com
4 years ago
Reply to @georgia@netzsphaere.xyz
@georgia@netzsphaere.xyz @p@freespeechextremist.com @meowski@fluf.club p@freespeechextremist.comasture@p@freespeechextremist.coml.gamers.exposed rdr@p@freespeechextremist.comosting.lolicon.rocks @user@freespeechextremist.com 1) never said that, i cited it as a permissively liscened alternative that was packaged the same way (a single binary) and that did the same thing. bsd coreutils are better than both busybox and toybox 2) you provided no counterarguments to that strawman either 3) you are a trannie case closed