Együtt fejleszthetik a jövőben C++-fordítóikat a GCC és az LLVM
2014-02-10T13:51:55+01:00
2014-02-10T13:51:57+01:00
2022-07-19T03:41:54+02:00
  • Ez egy régi, több frontos vita. A Richard Stallman (RMS) a szabad szoftver, a GNU licence alapítója elég kommunista világképet hirdet, amibe más tulajdonképpen nem is fér bele. A GCC egyik érdekes hiányossága/furcsasága, hogy a fordító köztes állapotai, pl. az AST (absztrakt szintakszis fa talán magyarul) nem érhető el külső programok számára, ami miatt a GCC nem használható pl. kódkiegészítésre, refaktoringra meg egyéb okosságokra.

    Itt van pl. ez a 2005-ös levél, ahol AST dumpot szerettek volna GCC-be rakni. Erre a levélre emlékszem, már akkor sem értettem ezt az álláspontot. Egy csomó felesleges munkát spórolhattem meg volna vele. Amúgy el is készült egy gcc-xml project, ami az AST egy részét XML-ként elment, melyet azért nem raktak bele a fő ágba, merthogy arra esetleg pénzes programok is épülhetnek:

    Re: -fdump-translation-unit considered harmful

        is there a reason for not making the front ends dynamic libraries which     could be linked by any program that wants to parse source code?One of our main goals for GCC is to prevent any parts of it from beingused together with non-free software.  Thus, we have deliberatelyavoided many things that might possibly have the effect offacilitating such usage, even if that consequence wasn't a certainty.We're looking for new methods now to try to prevent this, and the outcomeof this search would be very important in our decision of what to do.

    Ezt a levelet tette szóvá az egyik Clangos fejlesztő, aki a Google-nél dolgozik:

    GoingNative 2012 - Day 2 - Clang [2:24]-től
    Chandler Carruth - Clang: Defending C++ from Murphy's Million Monkeys

    Ez a videó is úgy lett értelmezve, hogy a clang a szabad szoftver ellen van, ami szerintem elég érdekes értelmezés. A Clang kiexportálja az AST, a refaktoring szolgáltatásokat meg mindent, ezért kezdi mindenki azt használni.

    A kódkiegészítés amúgy folyamatosan előjön, pl a clang levlistán 2012-ben, ami a következő miatt nem valósulhatott meg: RMS nyíltan kifejti, hogy a szabadszoftver elsősorban politikai mozgalom és nem az a célja, hogy tökéletes programok szülkessenek:

    Re: clang/emacs/ecb/semantic


    Re: clang/emacs/ecb/semantic

    The GNU Project campaigns for freedom, not functionality.Sometimes freedom requires a practical sacrifice,and sometimes functionality is part of that sacrifice.You don't have to agree, but if you want to argue againstthe GNU Project's position, don't do it in this list.Raise the issue somewhere else if you wish.-- Dr Richard StallmanPresident, Free Software Foundation

    A mostani vita is ebből mesterséges korlátozásból indult:

    Eric S. Raymond - clang and FSF's strategy

    David Kastrup's recent question on emacs-devel motivates me to bringup a larger related question I've been meaning to open for a while: Are theFSF's goals best served by continuing to technically restrict GCC?

    amire RMS következetesen reagál később:
    Richard Stallman - Re: clang and FSF's strategy

    Non-free software is an injustice.  Our goal is to eliminate that
    injustice, to give computer users freedom.  Developing free software
    part of what we do to achieve this goal.

    When any program fosters non-free software, that works directly
    against the overall goal.

    Copyleft is our method of making sure that our free software does not
    generate nonfree competitors which consist of our code plus something
    else that is off limits to us.

    --
    Dr Richard Stallman
    President, Free Software Foundation

    illetve, ami miatt ez az egész a hírekbe került: "The existence of LLVM is
    a terrible setback for our community precisely because it is not
    copylefted and can be used as the basis for nonfree compilers"

    Richard Stallman - Re: clang vs free software


    A GCC jövőjéért aggódók véleményét szerintem jól összegzi ez a levél:

    Eric S. Raymond - Don't shoot the messenger

    Don't shoot the messenger.  I didn't create the clang problem, I'monly reporting it in an attempt to shake up your assumptions andconcentrate your minds on how to make GCC more competitive.

    Amúgy érdekes mellékszál, hogy az Apple eredetileg GCC-vel kezdte az iOS fejlesztéseket, de a GPL v3 license miatt hagyott fel vele és tért át a clang-re. Eleinte akartak patcheket is küldeni a gcc-hez, de abból se lett semmi.

    Apple Originally Tried To Give GPL'ed LLVM To GCC
    Mutasd a teljes hozzászólást!
abcd