Sujet : Re: Python recompile
De : bc (at) *nospam* freeuk.com (bart)
Groupes : comp.lang.cDate : 16. Mar 2025, 16:30:40
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vr6qr0$21mcj$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
User-Agent : Mozilla Thunderbird
On 16/03/2025 14:21, Waldek Hebisch wrote:
bart <bc@freeuk.com> wrote:
On 16/03/2025 10:06, Waldek Hebisch wrote:
bart <bc@freeuk.com> wrote:
On 14/03/2025 19:37, Richard Harnden wrote:
On 14/03/2025 19:04, bart wrote:
After all no one (according to you) was complaining about grappling
with 100 discrete files.
>
100 discrete files helps 100 developers not to step on each other's toes.
>
And most of those 100 .o's won't need to be recompiled on every make.
It's quicker and easier.
>
>
That may be true about the people who /develop/ this sqlite3 product.
>
But this is a file created to ease deployment by people who want to
/use/ it.
>
I don't know why nobody in this group can grasp that concept even though
I've explained it a hundred times. For example, I have a transpiler
product that turns a 50-module project in my language into a single,
easy-to-build C source file.
>
But everyone makes the same point about it being hard to manage. No one
is even going to look inside it!
>
Do you realize that your amalgamation destroys most of C
modularization?
>
Do you realise that you're reinforcing the point I made?
>
The fact is, IT DOESN'T MATTER!
>
Creating a binary also destroys modularisation; so what?
Have you read what I wrote? To remaind you, just after the
quoted statement I wrote:
: In C there is no conflict between static
: objects at file scope in different files, even is they use
: the same name. In single file there may be conflict.
: Avoiding such conflicts is an extra developement effort.
Creating binary from multiple file preserves this property,
so one should rather say that creating binary respects
modularisation. Amalgamation on source level does not.
OK. If you were to just blindly source files together, then you are likely to get clashes (as well headers being repeated etc or things ending up in the wrong order).
But I'm sure the amalgamation process is well aware of that.
I might be wrong; maybe sqlite3.c /is/ created like this:
copy folder\*.c sqlite3.c
But I doubt that very much!
The transpilation process I use (multiple M files to one C file) decorates names so that the same static local name X used in modules A and B becomes A$X and B$X, so avoiding any conflicts.