tinycc-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Tinycc-devel] Relative paths of include files are not normalised, w


From: Jonathan Newman
Subject: Re: [Tinycc-devel] Relative paths of include files are not normalised, which can break #pragma once
Date: Fri, 7 Jul 2023 22:12:48 +0100

My take as a regular user of tcc with projects that use #pragma once:
Speed is a very useful feature in itself. tcc is fast enough that I can often forego a proper make system and just recompile everything every time, which eliminates a source of complexity and potential issues. So personally I'm a fan of a fast and simple solution (resolving to an absolute path), even if it doesn't handle special cases like symlinked headers.

On Fri, 7 Jul 2023 at 21:31, <david.koch@libertysurf.fr> wrote:
> I created a new patch where I removed the stat call.
> I now calculate the full path name on linux and windows.
> This means that soft/hard links do not work any more.
> There is still a small slowdown because we create/compare the full path
> name now.
> But it is about 0.1% on my 64 bits x86_64 machine. Hard to measure correct.

What is the incentive about this ?

Feature and usefulness vs speed and benchmark prowess ?

Who is going to arbitrate what tcc is supposed to do exactly ?


Regards.


----- Mail d'origine -----
De: Herman ten Brugge via Tinycc-devel <tinycc-devel@nongnu.org>
À: tinycc-devel@nongnu.org
Cc: Herman ten Brugge <hermantenbrugge@home.nl>
Envoyé: Fri, 07 Jul 2023 20:09:03 +0200 (CEST)
Objet: Re: [Tinycc-devel] Relative paths of include files are not normalised, which can break #pragma once

On 7/7/23 08:59, grischka wrote:
> On 07.07.2023 07:45, draco wrote:
>> Hermann,
>>
>> I tested your patch a bit, seems to work as expected and brings tcc
>> win32 back to it's normal speed.
>
> It might be too slow on linux too ...
>
> Basically the "#ifndef cache" is meant to make it faster,
> while the #pragma once also needs to detect path aliases.
>
> That is two different goals in the first place.
>
> Another goal in tinycc is simple code.  For example to have
> a common solution for platforms.
I did a benchmark on linux and it is about 2% slower on my machine.

I created a new patch where I removed the stat call.
I now calculate the full path name on linux and windows.
This means that soft/hard links do not work any more.
There is still a small slowdown because we create/compare the full path
name now.
But it is about 0.1% on my 64 bits x86_64 machine. Hard to measure correct.

     Herman



_______________________________________________
Tinycc-devel mailing list
Tinycc-devel@nongnu.org
https://lists.nongnu.org/mailman/listinfo/tinycc-devel

reply via email to

[Prev in Thread] Current Thread [Next in Thread]