Odpověď na názor

Odpovídáte na názor k článku Programovací jazyk C3: evoluce, nikoli revoluce. Názory mohou přidávat pouze registrovaní uživatelé. Nově přidané názory se na webu objeví až po schválení redakcí.

  • 11. 9. 2025 18:19

    radekm
    Stříbrný podporovatel

    > Když píšete, že jste "to přepsal do C3, tak se velikost zmenšila skoro na třetinu", bylo nebo nebylo to za cenu toho, že kompilátor ztratil přehled o zárukách?

    Zrovna v tomto konkrétním souboru se asi o žádnou záruku nepřišlo anebo jich bylo naprosté minimum (jediné, co mě teď napadá je, že místo ukazatele NonNull používám v NodeRef.node normální ukazatel). I původní kód v Rustu používá hodně unsafe a věci jako MaybeUninit nebo ukazatele. Naopak v C3 nehrozí tolik chyb s aliasingem jako v Rustu, kde si celá implementace musí dát veliký pozor, aby např. nevrátila třeba 2 mut reference na tutéž věc.

    Součástí implementace v Rustu jsou pak další soubory, které se snaží vybudovat safe rozhraní. Ty jsem také zahodil, ale ty do porovnání velikosti nepočítám. Moje implementace má totiž o dost flexibilnější rozhraní a dovoluje dělat věci, co safe implementace v Rustu neumí (např. moje porovnávací funkce nemusí porovnávat klíče stejného typu K).