| Deutsch English Français Italiano |
|
<20250314113217.0000634b@yahoo.com> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!eternal-september.org!.POSTED!not-for-mail From: Michael S <already5chosen@yahoo.com> Newsgroups: comp.lang.c Subject: Re: Python recompile Date: Fri, 14 Mar 2025 11:32:17 +0200 Organization: A noiseless patient Spider Lines: 405 Message-ID: <20250314113217.0000634b@yahoo.com> References: <vq1qas$j22$1@gallifrey.nk.ca> <vq7g1p$1vmg5$1@dont-email.me> <vq94dt$2boso$1@dont-email.me> <vqcsk7$23bfo$1@paganini.bofh.team> <vqefn1$3flpt$1@dont-email.me> <vqeu5c$3imil$1@dont-email.me> <vqeun4$3iqbq$1@dont-email.me> <vqfcbe$3lkkc$1@dont-email.me> <871pv861ht.fsf@nosuchdomain.example.com> <20250308192940.00001351@yahoo.com> <vqi1ge$8jg8$1@dont-email.me> <vqmgjv$3a2il$1@paganini.bofh.team> <vqn4dn$1eb9s$1@dont-email.me> <vqo3ss$3hkas$1@paganini.bofh.team> <vqph2e$203bs$2@dont-email.me> <vqvtop$cpvn$1@paganini.bofh.team> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: quoted-printable Injection-Date: Fri, 14 Mar 2025 10:32:20 +0100 (CET) Injection-Info: dont-email.me; posting-host="943fe49e92ae1a26c80cdfc20df6ad74"; logging-data="1089891"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1/ItHeP7WknvSc1ijnCZoXoRcp66x0wWf4=" Cancel-Lock: sha1:B1snjB4IH5M4mBW9NHHAMWvqUSo= X-Newsreader: Claws Mail 4.1.1 (GTK 3.24.34; x86_64-w64-mingw32) Bytes: 21162 On Fri, 14 Mar 2025 00:37:48 -0000 (UTC) antispam@fricas.org (Waldek Hebisch) wrote: > bart <bc@freeuk.com> wrote: > > On 11/03/2025 01:33, Waldek Hebisch wrote: =20 > >> bart <bc@freeuk.com> wrote: =20 > >>> On 10/03/2025 10:58, Waldek Hebisch wrote: =20 > >>>> bart <bc@freeuk.com> wrote: =20 > >>>>> > >>>>> I think nobody does. There's always been some sort of mystique > >>>>> surrounding 'gcc' on Windows. > >>>>> > >>>>> 'MinGW' supposedly 'Minimalist Gnu on Windows'. In that case I > >>>>> wouldn't like to see the full-scale one.. =20 > >>>> > >>>> "Minimalist" is not about size of the compiler. Rather, it is > >>>> about possible support routines. For "hosted implementation" C > >>>> mandates presence of C library and there is a lot of functions > >>>> not in C standard, but included in libraries of C compilers. > >>>> There is also question of operating system support, complicated > >>>> by fact that Windows is different than other systems. Cygwin > >>>> solved those issues by offering Posix emulation and a sizable > >>>> collection os libraries. MinGW is minimalist in the sense > >>>> that it provides very little own libraries and mainly uses > >>>> what is provide by Windows. =20 > >>> > >>> I still don't get this stuff. > >>> > >>> I get the impression that a port of gcc to Windows is not simply > >>> about building C programs, but building C programs that use a lot > >>> of features from Linux. =20 > >>=20 > >> You apparently do not get fact that people want tools to > >> automate various routine tasks. =20 > >=20 > > What routine task is this? I'm talking exclusively about turning a > > bunch of source files in some language (here it is C) into an > > executable binary. > >=20 > > This task can be done with a program called a 'compiler'. =20 >=20 > You ignore fact that people are developing programs. And developement > is much more than "turning a bunch of source files into an > executable". GPL says "The source code for a work means the preferred > form of the work for making modifications to it". And that nicely > captures the idea: sources are in form that is convenient for > developer and may require several steps before one gets the > executable. >=20 > > However, what I'm arguing about is that this simple task has become=20 > > unnecessarily elaborate on OSes like Linux, by introducing > > makefiles, OS-specific scripts, and OS-specific utilities. =20 >=20 > There is not much OS-specific in "Linux tools". 'make' is > problematic on zOS, because files have no timestamps there, > but most normal OS-es have timestamps (and IIUC even zOS > has USS where timestamps are available). You need ability > to invoke a program from a different program, exact form > of this is OS-dependent, but ability is there in any > semi-reasonable general purpose OS. You need ability > to get exit status of a program, again exact form is > OS-dependent but ability is there. >=20 > FYI, is started using "Linux tools" on MS-DOS, before I > heard about Linux. And tools are widely available, > IIUC classic zOS is problematic, but I think that USS > is OK. Some systems may be prone to breakage, when > there is small number of _active_ users and nobody bothers > to timely report real problems. >=20 > Coming back to developement, in many cases it is desirable > to generate some C files. C preprocessor can do some > transformations, but is may be convenient to transform > source in a way hard to do via proprocessor. Also, > this is C group, but big programs frequently have parts > in different languages, an then it is good to have > language-neutral tools. Simple tools to transform > or generate files are 'sed' and 'awk'. Some people > use 'perl' or 'python' for such purpose and in principle > there is much more possiblities. >=20 > More specialised are compiler-writing tools like 'bison' > and 'flex'. You can write a parser by hand, but using > 'bison' one does not need to know much to write working > parser. 'flex' helps in writing scanners, but IMO > is quite useful for text processing task (its support > for regular expressions is nicer than Perl or Python > offer, and speed frequently is much better too). >=20 > Users beside binary need also documentation. In principle > documentation could be provided as plain text, but there > is now tendency to offer nicely formatted documentation > and to offer multiple formats. Which means that there is > need for formatting tools. Old ones are Texinfo and TeX. > And some moment there was push towards SGML and formats > like DocBook. This needs appropriate tools. Some people > now prefer tools like 'sphinx' (which needs Python with > several extention packages). There is 'doxygen' which > extract information from source files and presents nicely > formated info about API (I am not a fan of 'doxygen' but > is seems to be widely used). >=20 > Beside building program and documentation one wants some > automatic way of running tests. And people want to > automate more tasks, for example removal of generated > files or installation. >=20 > Automation requires some scripting language. For authors > of free programs important point is free availability > (preferably with sources) of choosen language. That > ruled out things like MS Basic or 'command.com' (and > 'command.com' is quite limited). Unix shell was > available as port of OS on Unix systems and quite early > there were free ports of Unix shell to other systems. > So there were natural preference to Unix shell, simply > because of wide availability. Similarly with other > classic Unix tools. One can argue that those classic > tools are now dated, but there is stong inertia in > action: tools are widely used, widely availeble, there > is knowldege how to use them so people keep using them. >=20 > When one thinks about possible replacements, it is not an > easy job. Namely, Unix tools evolved and are designed > to work together. Different tool either must cooperate > nicely with existing tools, which forces similar > behaviour to current tools, or must provide replacement > for the whole toolkit which is much more complicated > than replacing a single tool. >=20 > When you look at bloat, I expect competing tools to be > much more bloated than classic Unix tools. Namely, > Unix tools were designed to be simple and power comes > from possibility to compose them. It is hard to > imagine way of composing tools that is both simple > and offers more possibilities than Unix way. So > one can have simpler/smaller tools but less powerful. > Or one can increase fuctionality of each tools separately > (to some degree this is happening with Unix tools), but > this increases complexity of each tool. One can try > to make one tool that replaces the whole toolkit, but > experiance suggest that such a single tool would be > much more complicated. To summarize, more powerful > tools are likely to be more complicated, hence more > bloated than classic Unix tools. Given that classic > Unix tools are quite small compared to modern systems > (they can be implemented in few megabytes of code) > incentive to make smaller tools is rather low. >=20 > > This is done even on smaller, simple applications, and also on > > those that are supposedly cross-platform that are to be built on > > the target. =20 >=20 > You can have basic toolkit running on rather wide set of systems. > So this is not a big burden for recipients, in particuar since > the same toolkit may be used to build many programs. > =20 > > If scripts are going to be used, then use them at the developer > > site only, and make the script generate the streamlined set of > > files for the particular platform of interest. =20 >=20 > Current free software ecosystem is colaborative work of many people. > In particular, there are people creating binary packages and if > all you want is running binary you may be better off getting a > package from them. Now, people creating binaries want to do > this in an automated way. For them having to give a list of files > to compiler each time when they build a package is too mach work. ========== REMAINDER OF ARTICLE TRUNCATED ==========