Página 1 de 3
Harbour 3.4 Clang compilador padrão
Enviado: 02 Out 2017 16:54
por Itamar M. Lins Jr.
Ola!
2017-09-30 15:07 UTC Viktor Szakats (vszakats users.noreply.github.com)
* .appveyor.yml
* switch to clang to build snapshot binary releases.
Please see RELNOTES, on how to install clang via MSYS2.
The binaries remain compatible with libs/objects built with
mingw 7.x.
* utils/hbmk2/pkg_dynl.hbm
! fix typo made in 2017-09-29 14:14 UTC
Parece que o padrão mudou de GCC para CLang.
Mais explicações, serão bem vindas!
Pelo que estou lendo o Clang tem vantagens sobre o GCC. Achei isso na NET.
https://clang.llvm.org/comparison.html#gcc
Saudações,
Itamar M. Lins Jr.
Harbour 3.4 Clang compilador padrão
Enviado: 02 Out 2017 19:47
por JoséQuintas
Apesar de muita coisa chamar atenção, esta me chamou mais:
GCC is licensed under the GPL license. clang uses a BSD license, which allows it to be embedded in software that is not GPL-licensed
Pode significar um Harbour pronto, sem depender de nada externo.
Harbour 3.4 Clang compilador padrão
Enviado: 03 Out 2017 07:55
por RobertoLinux
Bom dia.
Nobres colegas, não sei se entendi direito, mas me parece que desde o GCC 7.0 tudo que for compilado com o mesmo se torna GPL automaticamente, por isso o FreeBSD portou tudo para LLVM/clang. Eu acho que é isso, não tenho certeza.
Felicidades.
Harbour 3.4 Clang compilador padrão
Enviado: 03 Out 2017 10:39
por asimoes
Acompanhando:
O link que o Itamar postou:
Essa parte sobre os Prós
Clang vs GCC (GNU Compiler Collection)
Pro's of GCC vs clang:
GCC supports languages that clang does not aim to, such as Java, Ada, FORTRAN, Go, etc.
GCC supports more targets than LLVM.
GCC supports many language extensions, some of which are not implemented by Clang. For instance, in C mode, GCC supports nested functions and has an extension
Harbour 3.4 Clang compilador padrão
Enviado: 03 Out 2017 10:50
por RobertoLinux
Olá.
Em termos de capacidades, no link abaixo há um comparativo bem detalhado.
https://www.phoronix.com/scan.php?page= ... lers&num=1
Felicidades.
Harbour 3.4 Clang compilador padrão
Enviado: 03 Out 2017 12:12
por asimoes
Vamos acompanhar a evolução disso, porque tem muita biblioteca para manter compatibilidade (hwgui, minigui, etc)
Harbour 3.4 Clang compilador padrão
Enviado: 07 Out 2017 20:56
por JoséQuintas
Seja o que for... foi ou começou a ir....
2017-10-07 15:56 UTC Viktor Szakats (vszakats users.noreply.github.com)
* README.md
* clang is now the primary compiler on Windows and darwin
(as far as this fork is concerned)
* recommend at least 6.x version of mingw - it's a free upgrade.
Harbour 3.4 Clang compilador padrão
Enviado: 07 Out 2017 21:35
por JoséQuintas
Da wikipedia
Clang é um front-end de um compilador para as linguagens C, C++, Objective-C e Objective-C++ que utiliza o LLVM como back-end[1] desde a versão 2.6 do LLVM. Tem como objetivo oferecer um substituto open source ao GCC, o conjunto de compiladores da GNU. O desenvolvimento do Clang conta com o envolvimento de grandes empresas como o Google[2] e a Apple[3][4].
Seu código fonte está disponível sob uma licença da Universidade de Illinois[5] que combina as licenças MIT e BSD[4]. Implementa na totalidade a especificação C++11[6].
Partes que chamaram a atenção:
- é um front-end de um compilador para as linguagens C (?)
- substituto open source do GCC
- Participação de Google e Apple
- Totalidade da especificação do C++11
Harbour 3.4 Clang compilador padrão
Enviado: 07 Out 2017 21:47
por JoséQuintas
Mais um pouco:
Clang is an "LLVM native" C/C++/Objective-C compiler, which aims to deliver amazingly fast compiles (e.g. about 3x faster than GCC when compiling Objective-C code in a debug configuration),
The Clang Static Analyzer is a tool that automatically finds bugs in your code, and is a great example of the sort of tool that can be built using the Clang frontend as a library to parse C/C++ code
https://llvm.org/
Pelo que entendi, em termos que nós conhecemos, é como se CLang fosse um pré-compilador.
Seja como for, vai reduzir as diferenças do fonte em C entre compiladores, o que vai facilitar o desenvolvimento.
Não dá pra entender no que isso afeta em termos de compatibilidade, até onde precisa se estender essa troca, nas LIBs por exemplo.
Harbour 3.4 Clang compilador padrão
Enviado: 08 Out 2017 10:25
por asimoes
Eu até baixei o LLVM, tentei compilar com gcc 7.10 gerou 7 libs e abortou, pelo que eu vi tem que usar o GCC 6.x, não testei, enfim vou aguardar mais informações pra ver o impacto disso.
Harbour 3.4 Clang compilador padrão
Enviado: 08 Out 2017 12:25
por JoséQuintas
Também tentei e não consegui, mas não cheguei a trocar o compilador C.
Tem isto no readme, e parece que vai precisar de HB_WITH_SLANG ou algo assim.
Novamente: não sei no que isso pode afetar compatibilidade.
Mas como diz no changelog, é a primeira opção (primary), não que seja a única.
Por enquanto é o início de uso, pode ser que só daqui há algum tempo vejamos alguma diferença.
Harbour 3.4 Clang compilador padrão
Enviado: 08 Out 2017 13:24
por asimoes
Quintas,
Eu não sei se o Viktor já tem uma versão pré-compilada com clang, usando a versão GCC do MSYS2 deu erro, usando a versão 7.10 também, se tem mais alguma variável para definir eu também não sei, por enquanto vou na compilação de costume SET HB_COMPILER= mingw
Harbour 3.4 Clang compilador padrão
Enviado: 08 Out 2017 17:37
por Claudio Soto
El clang es un exelente compilador de c/c++ con un analizador de sintaxis muy bueno, mejor que gcc, yo lo he utilizado para programar en Android (ver por ejemplo el Charrua Server).
El LLVM es un "lenguaje"/herramienta para desarrollar compiladores
Harbour 3.4 Clang compilador padrão
Enviado: 08 Out 2017 19:49
por JoséQuintas
E pode dar uma idéia do que acontece com Harbour e LIBs?
Todos terão que trocar pra clang?
Ou para as LIBs não importa?
Ou como fica Harbour/xHarbour, se precisarão LIBs em versões diferentes por causa das rotinas em C?
Harbour 3.4 Clang compilador padrão
Enviado: 08 Out 2017 21:50
por Claudio Soto
La mayoría de los compiladores soporta el último estándar de C por lo tanto son compatibles, la diferencia es que algunos compiladores le agregan alguna cosa que no es estándar y ahí surgen los problemas, pero en general son cosas menores fácil de solucionar.