A r e y o u r e a d y t o h a v e s o m e f u n ?
-
@manx @thephd Maybe you are right, but my perspective after observing the industry for a while is this: Complexity always grows until things suck too much and then people build alternatives and the cycle starts again. At the same time, if some part does not suck yet because it is relatively small and simple, people think that complexity needs to be moved there from the other parts nobody wants to touch. Couldn't this be part of what is happening here?
@uecker @thephd Maybe partly.
I still think that removing cyclic dependencies is something to strive for in general. I see clear practical advantages for use cases that I encounter.
However, I also see problems arising from implementing too much in constexpr, but for me, the advantages from simplifying the build outweigh them clearly here. Other people might weight things differently.
... -
@uecker @thephd that’s just cmake being utter garbage (without hyperbole, it has more in common with microsoft batch than it does with an actual build system) that for no apparent reason half the software industry agreed to force on each other, the other half being google’s flavor of the week.
qt needs more than 90k lines of code—again, no hyperbole because i’ve ported some of that recently—consisting mostly of cmake workarounds to achieve what meson can express entirely declaratively in just over a hundred. and none of it would have to exist if qt didn’t require 5 or 6 different generators.
so i don’t think “this makes bad build systems even more of a pain to use” is a strong argument -
@uecker @thephd Maybe partly.
I still think that removing cyclic dependencies is something to strive for in general. I see clear practical advantages for use cases that I encounter.
However, I also see problems arising from implementing too much in constexpr, but for me, the advantages from simplifying the build outweigh them clearly here. Other people might weight things differently.
...@uecker @thephd ...
I also still think that the C/C++ build system ecosystem only has the chance of getting addressed IFF we take away responsibility from them and simplify them first. Standardizing the complexity that currently exist across all of them would just result in an even more complex generalized "solution" that really does not help at all. -
@uecker @thephd meson can also handle that case (plus cross compilation and figuring out how to run it if it needs to compiled for a different system/architecture) in a single line as well.
but you’ve just said it: cross-compilation breaks the assumptions of many build systems. there aren’t many that properly support the canadian cross to begin with, and there’s a lot of platform-specific quirks that build systems need to figure out to make it all work as well.
that’s an incredible amount of jank and moving parts for something that could just be done by the compiler that you already use to compile the generator code. -
@uecker @thephd meson can also handle that case (plus cross compilation and figuring out how to run it if it needs to compiled for a different system/architecture) in a single line as well.
but you’ve just said it: cross-compilation breaks the assumptions of many build systems. there aren’t many that properly support the canadian cross to begin with, and there’s a lot of platform-specific quirks that build systems need to figure out to make it all work as well.
that’s an incredible amount of jank and moving parts for something that could just be done by the compiler that you already use to compile the generator code.@mia @thephd I think "just" having an additional interpreter in the compiler is not generally a good idea. I want things to be more modular and less monolithic. Compilers are already too complex for my taste. If people use modularity to create a mess, then this is IMHO not an argument against modularity but for cleaning up the mess.
-
@mia @thephd I think "just" having an additional interpreter in the compiler is not generally a good idea. I want things to be more modular and less monolithic. Compilers are already too complex for my taste. If people use modularity to create a mess, then this is IMHO not an argument against modularity but for cleaning up the mess.
@uecker @thephd well i think the past 30 years of software engineering have abundantly demonstrated that people are generally bad at cleaning up messes. just look at libc.
i don’t like complexity either, but what we’re talking about here is a problem that is, much like wanting to embed binary files, nearly universal.
and good tools do not foist such things off on the user in the name of simplicity, especially when doing so results in a million ugly hacks downstream.
-
A r e y o u r e a d y t o h a v e s o m e f u n ?
:3

@thephd Wait, is there some update on
std::embedin the standard library that I missed or is it still not a thing? -
A r e y o u r e a d y t o h a v e s o m e f u n ?
:3

@thephd i'm trying my best to understand what is going on here, and what i think is happening is that you have made lua into a compiled language hosted(??) in c. is that correct?
-
@uecker @thephd well i think the past 30 years of software engineering have abundantly demonstrated that people are generally bad at cleaning up messes. just look at libc.
i don’t like complexity either, but what we’re talking about here is a problem that is, much like wanting to embed binary files, nearly universal.
and good tools do not foist such things off on the user in the name of simplicity, especially when doing so results in a million ugly hacks downstream.
-
@uecker @thephd i’m arguing in favor of putting that complexity as close to the source of the problem as possible so that it only needs to be dealt with in the one place that is in a very good position to do so, rather than an unbounded number of places that then have to wonder why it is still so hard and still requires all these crutches in the current year. like, so far your argument boils down to aesthetic preferences more than anything else and it makes me wonder who you think the languange and its tools are for
-
@uecker @thephd i’m arguing in favor of putting that complexity as close to the source of the problem as possible so that it only needs to be dealt with in the one place that is in a very good position to do so, rather than an unbounded number of places that then have to wonder why it is still so hard and still requires all these crutches in the current year. like, so far your argument boils down to aesthetic preferences more than anything else and it makes me wonder who you think the languange and its tools are for
@mia @thephd You argument is "build systems are a mess, so solve everything in the compiler close to the source of the problem". Somehow this argument is also seems weak. Similar generic arguments always are used to justify centralization of complexity. But I do think code generation is fundamentally different from code translation and should not be done by the same tool and I do not think this is purely aesthetic argument. But let's agree to disagree.
-
@mia @thephd You argument is "build systems are a mess, so solve everything in the compiler close to the source of the problem". Somehow this argument is also seems weak. Similar generic arguments always are used to justify centralization of complexity. But I do think code generation is fundamentally different from code translation and should not be done by the same tool and I do not think this is purely aesthetic argument. But let's agree to disagree.
-
-
@maxmustermann @thephd @uecker the creators of cmake were just trying to replace build.bat
what i’m wondering is what the qt devs were smoking when they went with cmake and didn’t start questioning their choices about 4000 lines in
those 90k lines are a fraction of their cmake macros too -
@maxmustermann @thephd @uecker the creators of cmake were just trying to replace build.bat
what i’m wondering is what the qt devs were smoking when they went with cmake and didn’t start questioning their choices about 4000 lines in
those 90k lines are a fraction of their cmake macros too@thephd @maxmustermann @uecker there’s a lot of code working around the fact that cmake doesn’t have a list type (that’s right in true batch file fashion it only has ;-separated strings) -
@thephd @maxmustermann @uecker there’s a lot of code working around the fact that cmake doesn’t have a list type (that’s right in true batch file fashion it only has ;-separated strings)@thephd @maxmustermann @uecker how this ended up on systems that aren’t windows is a complete mystery to me
-
@mia The unpleasant experiences I had are not with projects doing run-time code generation by running a program during the build, but were all related to other random build complexities.
-
@maxmustermann @thephd @uecker it doesn’t help that nothing it does is documented anywhere so if you want to replace it with something that doesn’t put peolpe in straitjackets, you will have to read all that
-
@thephd i'm trying my best to understand what is going on here, and what i think is happening is that you have made lua into a compiled language hosted(??) in c. is that correct?
@shitpostalotl C++, not C. God forbid C having this kind of power.
-
@thephd Wait, is there some update on
std::embedin the standard library that I missed or is it still not a thing?@NekkoDroid just trying to finish it off, yeah.