Autore Topic: dead  (Letto 4532 volte)

Offline Z80Fan

  • Administrator
  • Guru
  • *****
  • Post: 1671
  • Karma: +13/-2
    • Mostra profilo
    • http://z80fan.altervista.org
Re:google go-lang ?
« Risposta #15 il: 20 Maggio 2013, 18:25:30 »
Ne ha qualcuno, c'è un backend per il TI msp430 ad esempio. C'è comunque un problema ad utilizzare linguaggi diversi dal C con LLVM, se è richiesto un runtime complesso (come nel caso di C++) bisogna molto probabilmente scrivere a manina le funzioni di supporto per il runtime (la parte per la gestione delle eccezioni/stack unwinding/etc., bisognerebbe in sostanza estendere anche compiler-rt/libc++abi per offrire pieno supporto al C++).
Per la prima parte, si può compilare il programma disabilitando eccezioni e RTTI, e ciò fa risparmiare memoria (le prestazioni rimangono essenzialmente le stesse); nel secondo caso, compiler-rt almeno provvede funzioni di fallback per i target che non supportano soluzioni custom, quindi almeno il programma potrà essere compilato e eseguito.

Citazione
Notare che alcune cose si possono tagliare, ma ad esempio non si può compilare libc++ senza supporto RTTI, mentre si può linkare ad un programma senza RTTI.
Se l'ambito che si propone è l'embedded, si potrebbe avere una libreria standard c++ ottimizzata per questo ambito (tipo MHVLib) che non ha dipendenze sulle eccezioni e su RTTI, in modo che il compilatore non debba generare codice per queste ultime. Inoltre non credo che nessun programmatore possa lamentarsi se in un micro a 8 bit non può avere la STL. :P

Ormai i compilatori e linker moderni hanno capacità di ottimizzazione veramente aggressive, e credo riescano tranquillamente a rimuovere il codice per le eccezioni e RTTI anche se non espressamente richiesto se vedono che in nessun punto del codice ciò è usato.

Tags: