[fpc-pascal] Will the size of an executable depend on the uses clause

Travis Siegel tsiegel at softcon.com
Thu Jun 17 06:07:17 CEST 2021


Thanks for the sample.  For what it's worth, I got the executable down 
to just 10K using powerbasic version 6,  I suspect that's as small as it 
can get, since I did have to include a winbase.inc that comes with the 
compiler to get the function call of the GetTickCount64 call.  But then 
again, I cheated a bit by only having a single print statement where I 
formatted the output to my liking by simply using semicolons to string 
the various pieces of information together.

Powerbasic isn't cross platform, but it does consistently produce the 
smallest executables I've ever seen in the windows environment, and I've 
been using it for more than 20 years.

I do use fpc when I need cross platform capabilities though, so there is 
that.


On 6/16/2021 5:49 PM, Jean SUZINEAU via fpc-pascal wrote:
> My best score is 67 kb after strip -s with the code below ... ;-)
>
> Of course it will not work on every  version of Windows.
>
> program uptime;
>
> function GetTickCount64: QWord; stdcall; external 'kernel32.dll';
>
> function _2d( _i: Integer): String;
> begin
>      Str( _i, Result);
>      if Length(Result) < 2 then Result:= '0'+Result;
>
> end;
>
> function FormatUpTime( _tc: QWord): String;
> var
>    t, d, h, m, s: Integer;
>    sd: String;
> begin
>      t:= _tc div 1000;
>      s:= t mod 60;
>      m:= (t div 60) mod 60;
>      h:= (t div 3600) mod 24;
>      d:= (t div 86400);
>
>      Result:= _2d(h)+':'+_2d( m)+':'+_2d( s);
>      if 0 = d then exit;
>
>      Str( d, sd);
>      Result:= sd+' '+Result;
> end;
>
> begin
>      WriteLn( FormatUpTime( GetTickCount64));
> end.
>
>
> _______________________________________________
> fpc-pascal maillist  -  fpc-pascal at lists.freepascal.org
> https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal


More information about the fpc-pascal mailing list