Deutsch   English   Français   Italiano  
<vqfcbe$3lkkc$1@dont-email.me>

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: bart <bc@freeuk.com>
Newsgroups: comp.lang.c
Subject: Re: Python recompile
Date: Fri, 7 Mar 2025 18:02:23 +0000
Organization: A noiseless patient Spider
Lines: 80
Message-ID: <vqfcbe$3lkkc$1@dont-email.me>
References: <vq1qas$j22$1@gallifrey.nk.ca> <vq3oag$18iv6$1@dont-email.me>
 <vq4hf2$1brf7$1@dont-email.me> <vq4l3d$1ck9e$1@dont-email.me>
 <vq4m0u$1ctpn$1@dont-email.me> <vq4n05$1d5dv$1@dont-email.me>
 <vq4om7$1dbo2$2@dont-email.me> <vq6dqh$1pskk$1@dont-email.me>
 <vq6f8p$1pmnk$1@dont-email.me> <vq6gqc$1qcp8$1@dont-email.me>
 <vq6ips$1pmnk$2@dont-email.me> <vq6j5h$1qosf$1@dont-email.me>
 <20250304092827.708@kylheku.com> <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>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 7bit
Injection-Date: Fri, 07 Mar 2025 19:02:23 +0100 (CET)
Injection-Info: dont-email.me; posting-host="ef0e5752bdffd2710a2294b6a977f418";
	logging-data="3854988"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX19mJ/sUgrnEdrq3GNXH7jaz"
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:oaDALQ1aIgJOFmrxguihn5g3SeU=
In-Reply-To: <vqeun4$3iqbq$1@dont-email.me>
Content-Language: en-GB
Bytes: 4600

On 07/03/2025 14:09, Muttley@DastardlyHQ.org wrote:
> On Fri, 7 Mar 2025 14:00:13 +0000
> bart <bc@freeuk.com> wibbled:
>> On 07/03/2025 09:53, Muttley@DastardlyHQ.org wrote:
>> Note that if downloadeding pre-built binaries, you will usually have a
>> separate binary file for each platform. The same here: a separate C file
>> per platform.
> 
> Not sure why you think that makes things simpler. Just means you could end
> up with 10x the number of files unless you have a different source package
> for each platform.

Sure, because downloading the source code for all conceivable platforms 
is so simple!

I just (well, nearly 2 hours ago!) downloaded the sources for gcc. It 
was 0.75GB in all, 142,000 files, 5,500 folders. There are 84,000 .c 
files, and 4,600 .h files.

It took something over 90 MINUTES to unzip, using a SSD.

I haven't started to look at what's involved in building it for Windows 
Actually I haven't got a clue how to go about it. Neither do I know how 
long it might take.

Is this what you mean by 'simpler'?

It is hard enough downloading ready-made binaries, which I now do from 
here: winlibs.com. There is a selection of ZIP files which contain the 
various binaries, headers etc which are needed for the built compiler to 
do its job.

So people expect a binary download of a product to be a single binary, 
for which there is commonly a selection, for example Windows/32-bit or 
Windows/64-bit; or maybe .MSI/.ZIP, or maybe for MacOS.

For large products however it will be a ZIP file or installer, rather 
than the single EXE which /is/ the product in my case.

What I provide is that same selection, but the file extension is .c. You 
need a C compiler to turn it into a .exe file.

To contrast with building gcc, here is how you might build my (C 
compiler) product from source, if you were on Windows and were happy to 
use my binary. You need the two files ccp.ma and mm.exe here:

   c:\demo>dir
   11/02/2025  20:13           578,187 ccp.ma
   16/08/2024  19:28                70 hello.c
   05/03/2025  13:38           402,432 mm.exe

'ccp.ma' is the amalgamated source and support files in the original 
language that I would provide. mm.exe is the compiler:

   c:\demo>mm ccp
   Compiling ccp.m to ccp.exe             # (gets renamed to bcc.exe)

Now it can be used as a C compiler, here using '-r' to run immediately:

   c:\demo>ccp -r hello
   Compiling hello.c to hello.(run)
   Hello, World!

Alternately the compiler itself could be run from source without 
generating ccp.exe:

   c:\demo>tim mm -r ccp -r hello
   Compiling ccp.m to ccp.(run)
   Compiling hello.c to hello.(run)
   Hello, World!
   Time: 0.072

Building the C compiler then running it to build and run hello.c took 
under 0.1 seconds. (The timing excludes command shell overheads that 
might be 0.02 seconds, since this is normally done within an IDE.)

This is literally magnitudes smaller, faster, simpler and easier than 
working from gcc sources.