Uso di c89 nel software GNU

1

In standard di codifica GNU si dice che lo sviluppatore di software libero dovrebbe usare C89 perché C99 non è molto diffuso ancora.

1999 Standard C is not widespread yet, so please do not require its features in programs.

Riferimento qui .

Parlano della conoscenza degli sviluppatori di C99 o dei compilatori che la supportano?

Inoltre, questa affermazione è plausibile fino ad oggi o è in qualche modo "obsoleta" o almeno obsoleta.

    
posta Federico klez Culloca 05.02.2011 - 14:43
fonte

3 risposte

2

Secondo Wikipedia solo i compilatori SUN e IBM supportano lo standard C99 completo . Anche GNU gcc manca ancora diverse funzionalità . Come puoi vedere dall'articolo Wiki, il sottoinsieme di funzionalità supportate varia molto tra i compilatori. Se vuoi che la tua applicazione sia agnostica per il compilatore, devi attaccare a C89.

    
risposta data 05.02.2011 - 19:19
fonte
1

Ho il sospetto che si tratti di un residuo di anni fa. A un certo punto, la SM non era conforme allo standard C99. Non sono sicuro di quello che sostengono ora. Non ho usato compilatori MS in pochi anni. Ho usato GCC per diverse piattaforme basate su ARM / MIPS. GCC supporta C99.

    
risposta data 05.02.2011 - 15:19
fonte
0

Il compilatore proprio del progetto GNU non supporta C99. È ovvio che il progetto GNU non vuole software GNU che non può essere compilato con il software GNU.

L'intero punto del progetto GNU è di avere un ambiente operativo sviluppato in modo indipendente, che è soprattutto gratuito, ma in secondo luogo anche autosufficiente. Non essere in grado di compilare se stesso sarebbe un enorme passo indietro.

Naturalmente, questo ragionamento si applica solo al progetto GNU, non al Software Libero in generale. Tuttavia, come altri hanno sottolineato, attualmente ci sono solo due compilatori che supportano C99, ed entrambi sono proprietari (o almeno controllati da una società non esattamente esente da software). Inoltre, entrambi questi compilatori hanno come target solo un insieme molto limitato di sistemi operativi e CPU (ad esempio, Oracle Solaris Studio ha come target solo 5 piattaforme (Solaris / Sparc, Solaris / x86, Solaris / AMD64, Linux / x86, Linux / AMD64) a differenza di GCC, per esempio, quali bersagli ... beh, in realtà non ho idea di quante piattaforme abbia come target, ma AFAIK è ben più di 50), quindi richiedendo C99, non limiteresti il tuo software solo a due compilatori, ma anche un piccolo set di piattaforme, ancora, molte di proprietà.

Nota che ci sono sottoinsiemi di C99 che sono molto più ampiamente supportati, per esempio in GCC.

    
risposta data 05.02.2011 - 21:22
fonte

Leggi altre domande sui tag