Teste XHarbour

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste XHarbour

Mensagem por JoséQuintas »

Estou com uma curiosidade há algum tempo....
Então vou fazer o teste do xHarbour ao estilo José Quintas.... rs
Vamos ver o que dá....

Por enquanto entrei lá no xharbour.org e baixei o XHarbour e o BC 5.1....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste XHarbour

Mensagem por JoséQuintas »

É... não deu.
Tentei usar o HBMK2 do Harbour no xHarbour, mas não dá.
Apesar de estarem disponíveis todas as configurações possíveis...
hbmk2 não usa o harbour.exe, usa a função hb_Compile().
Pois é... fantástico...

Com isso, não existe harbour.exe pra ser substituído....
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste XHarbour

Mensagem por JoséQuintas »

Esqueci de dizer: era só esse teste que eu queria fazer no xHarbour.
Acabei com a curiosidade que eu tinha...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
RobertoLinux
Usuário Nível 3
Usuário Nível 3
Mensagens: 110
Registrado em: 14 Abr 2014 18:32
Localização: Fortaleza/Ce

Teste XHarbour

Mensagem por RobertoLinux »

Bom dia.

O nobre colega baixou os fontes do xHarbour e os compilou com o BCC 551 ? e tentou usar o hbmk2 do Harbour? foi isso ?

Obrigado.
Entusiasta
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste XHarbour

Mensagem por JoséQuintas »

Quase isso, exceto que baixei direto os binários do xHarbour.

O Viktor já informou que existem algumas opções, como -xhb, -hb30, -hb20.
A intenção é simplificar/padronizar os projetos existentes eliminando a necessidade de arquivos BAT.
Isso simplifica configurar LIBs, compiladores diferentes, e muitas coisas mais.

Assim que possível vou fazer novos testes usando essas opções.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
RobertoLinux
Usuário Nível 3
Usuário Nível 3
Mensagens: 110
Registrado em: 14 Abr 2014 18:32
Localização: Fortaleza/Ce

Teste XHarbour

Mensagem por RobertoLinux »

Valeu ...
Entusiasta
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste XHarbour

Mensagem por JoséQuintas »

Apenas pra complementar, a informação do Viktor:
hbmk2 is capable of using an external harbour.exe compiler,
if you use any of the options -xhb, -hb30, -hb20 and similar. Of
these -xhb enables xHarbour mode. More info in the help.
E apenas pra lembrar:
- hbmk2 facilita na linquedição com dicas
- hbmk2 facilita a criar documentação
- hbmk2 facilita configurar libs adicionais
- hbmk2 facilita usar compiladores diferentes
- etc.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
RobertoLinux
Usuário Nível 3
Usuário Nível 3
Mensagens: 110
Registrado em: 14 Abr 2014 18:32
Localização: Fortaleza/Ce

Teste XHarbour

Mensagem por RobertoLinux »

Essa opção de usar compiladores diferentes, é bem interessante, mas não sei se estou correto, o ramo 3.4 deixou de suportar o BCC 5.x 6.x 7.x ? é isso mesmo ?
Entusiasta
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Teste XHarbour

Mensagem por Itamar M. Lins Jr. »

Ola!
Uma das pessoas que ainda mantém o xHarbour, é o Rafael Culik, criador do hbmaker.
Essa ferramenta não tem no Harbour 3.2/4, só no xHarbour.
Talvez isso explique a não adoção do hbmk2 no xHb e muitas outras coisas úteis que não é mantido no xHb porque conflita com as partes "vendidas" do xHB. Enfim, na minha opinião o xHB só tem prejudicado o Harbour.
Na realidade, do meu ponto de vista, neste momento eles estão mais para concorrentes do que parceiros.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Teste XHarbour

Mensagem por Itamar M. Lins Jr. »

Ola!
Não sei para quê, manter compatibilidade com o XHb, uma vez que ele está totalmente abandonado há mais de 5 anos.
Apenas aumento de sobrecarga nos aplicativos. Mais código sem necessidade. Tudo que o XHB faz o Harbour faz melhor, simples assim.
Se fosse um projeto iniciado há 5 anos, tudo bem, mas projetos novos ? Manter compatibilidade ?
Observe o Letodb e Letodbf ou o próprio Harbour 3.4 não tem como fazer MT com o xHarbour. Isso já não significa algo ? E ninguém para corrigir isso, se é para deixar igual ao Harbour "copiando tudo do Harbour ultimamente" para quê continuar com o Xhb. ?

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste XHarbour

Mensagem por JoséQuintas »

O Harbour 3.4 não aceita ser gerado em BCC, mas o HBMK2 mantém tudo porque atende tudo.

A opção de compiladores diferentes é relativamente simples: desviar as LIBs pra pasta conforme compilador.

-olib/${hb_plat}/${hb_comp}/${hb_name}

-Llib/${hb_plat}/${hb_comp}

${hb_plat} == plataforma/OS, por exemplo win
${hb_comp} == compilador, por exemplo bcc, bcc64, msvc, msvc64, mingw, mingw64
${hb_name} == nome do arquivo hbp, já representa o nome da lib

no computador:
/lib/win/bcc/nome.lib

simples e prático: cada compilador fica em uma pasta diferente, pode até ter todos ao mesmo tempo, exceto versões diferentes (msvc express + msvc visual studio)

Se tiver um arquivo só pra bcc:
{bcc}fontebcc.prg

se tiver um arquivo que NÃO é pra bcc
{|bcc}fontenaobcc.prg

se tiver um arquivo que NÃO é pra Windows
{|win}xxxxx

e por aí vai.

muitas facilidades no uso de hbmk2
Isso é apenas uma pequena parte

pra LIBs, entra o HBC também, algo como um conjunto de parâmetros/arquivos específicos daquela lib.
Num projeto de fivewin, por exemplo, usaria fivewin.hbc, e no fivewin.hbc tudo que é preciso pra fivewin.
Se trocar a fivewin, e ela alterar seus nomes, bastaria atualizar fivewin.hbc e todos os projetos usando essa LIB já seriam atualizados.
A LIB teria o seu HBC indicando o que ELA precisa.

Fica tudo bem organizado, cada "conjunto" cuidando do que é seu.
E o projeto só indica quais "conjuntos" utiliza.

Melhor do que espalhar diferentes BATs de diferentes coisas, e confundir tudo.

E se precisar, o HBMK2 também gera a lista de todos os comandos que ele estará usando, um por um.
Então não vai esconder nada de ninguém, quem quiser poderá ver cada comando individual, que poderia usar pra criar tudo manualmente.

Tem muito recurso que nem sei pra que serve.... rs
Ë ir usando a parte básica, e com o tempo, ou conforme for precisando, ir descobrindo recursos adicionais.

Ao invés de criar BATs ou outras coisas, que podem depender do sistema operacional, usa uma ferramenta que funciona igual em tudo que é lugar.
Não sei para quê, manter compatibilidade com o XHb, uma vez que ele está totalmente abandonado há mais de 5 anos
se é para deixar igual ao Harbour "copiando tudo do Harbour ultimamente" para quê continuar com o Xhb. ?
Concordo totalmente.
Mas no momento, um está atrapalhando o outro.
Usar HBMK2 pode ser um jeito de um ajudar o outro, ao invés de atrapalhar.
Melhor pra quem usa xHarbour, melhor pra quem usa LIBs que atendem Harbour/xHarbour, o que acaba sendo melhor para quem usa Harbour.
Uma coisa a mais pra ajudar, e uma coisa a menos pra atrapalhar, todos ganham.

E se alguém quiser trocar um pelo outro depois, não vai ser a compilação que vai atrapalhar.
Cada um vai poder usar o que quiser, seja um ou o outro.

E se a LIB continuar complicando só pra deixar preso ao xHarbour e bcc... vai ficar bem visível isso.
O usuário vai enxergar que podem estar fazendo de propósito, só pra ganhar dinheiro....
Quanto mais fora do padrão do Harbour, que atende tudo, mais preso o usuário fica aquele produto.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
RobertoLinux
Usuário Nível 3
Usuário Nível 3
Mensagens: 110
Registrado em: 14 Abr 2014 18:32
Localização: Fortaleza/Ce

Teste XHarbour

Mensagem por RobertoLinux »

Impressionante.

Muito bom o trabalho do Vickto e todos envolvidos.
Entusiasta
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste XHarbour

Mensagem por JoséQuintas »

UAU !!!!!

Vamos aos passos:

- baixei os binários do xHarbour no xharbour.org - bcc5.1, descompactei em D:\XHARBOUR
- baixei os binários do bcc 5.1, descompactei em D:\XHARBOUR\COMP\BCC

Fiz uma modificação prévia que até estranhei: tem LIBs pra bcc e mingw... mas tudo bem...
movi libs de d:\xharbour\lib pra d:\xharbour\lib\win\bcc e d:\xharbour\bin\win\mingw

copiei o hbmk2.exe do harbour 3.4 pra dentro da d:\xharbour\bin

Até aqui, nada de mais. coisas comuns.

Fiz igual faria no Harbour:

SET HB_COMPILER=bcc
SET HB_COMPILER_VER=0501
SET HB_INSTALL_PREFIX=d:\xharbour
SET PATH=d:\tools\util;d:\xharbour\bin;d:\xharbour\comp\bcc\bin

fui na minha pasta d:\temp, usei o que estava lá, e tentei compilar com HBMK2.
apenas acrescentei o -xhb
hbmk2 test -xhb

hbmk2: Processing environment options: -comp=bcc
hbmk2 [test]: Warning: Ignoring explicitly specified core header directory:
d:\xharbour\include (in option '-Id:\xharbour\include' in
test.hbp:2)
xHarbour 1.2.3 Intl. (SimpLex) (Build 20170902)
Copyright 1999-2017, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'test.prg'...
Generating C source output to 'C:\Users\joseq\AppData\Local\Temp\hbmk_erd3o6.dir\test.c'...
Done.
Lines 82, Functions/Procedures 3, pCodes 185
C:\Users\joseq\AppData\Local\Temp\hbmk_erd3o6.dir\test.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_SEFAZCLASS' referenced from C:\USERS\JOSEQ\APPDATA\LOCAL\TEMP\HBMK_ERD3O6.DIR\TEST.OBJ
Error: Unresolved external '_HB_FUN_XMLNODE' referenced from C:\USERS\JOSEQ\APPDATA\LOCAL\TEMP\HBMK_ERD3O6.DIR\TEST.OBJ
hbmk2 [test]: Error: Running linker. 2
ilink32.exe @C:\Users\joseq\AppData\Local\Temp\7hbpui.lnk

hbmk2: Error: Referenced, missing, but unrecognized Harbour function(s):
SEFAZCLASS(), XMLNODE()
---warning---

hbmk2 [test]: Warning: Ignoring explicitly specified core header directory:
d:\xharbour\include (in option '-Id:\xharbour\include' in
test.hbp:2)

é que no teste anterior tinha indicado a pasta de include do xHarbour e não precisa

test.prg
-Id:\xharbour\include

---Erro---
hbmk2: Error: Referenced, missing, but unrecognized Harbour function(s):
SEFAZCLASS(), XMLNODE()

É que está faltando mesmo.... rs


Vamos ao segundo teste: movi os arquivos hbx do Harbour 3.4 para o XHarbour, e corrigi o hbp
d:\temp>hbmk2 test -xhb
hbmk2: Processing environment options: -comp=bcc
xHarbour 1.2.3 Intl. (SimpLex) (Build 20170902)
Copyright 1999-2017, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'test.prg'...
Generating C source output to 'C:\Users\joseq\AppData\Local\Temp\hbmk_evhasm.dir\test.c'...
Done.
Lines 82, Functions/Procedures 3, pCodes 185
C:\Users\joseq\AppData\Local\Temp\hbmk_evhasm.dir\test.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external '_HB_FUN_SEFAZCLASS' referenced from C:\USERS\JOSEQ\APPDATA\LOCAL\TEMP\HBMK_EVHASM.DIR\TEST.OBJ
Error: Unresolved external '_HB_FUN_XMLNODE' referenced from C:\USERS\JOSEQ\APPDATA\LOCAL\TEMP\HBMK_EVHASM.DIR\TEST.OBJ
hbmk2 [test]: Error: Running linker. 2
ilink32.exe @C:\Users\joseq\AppData\Local\Temp\kdy3vo.lnk

hbmk2: Hint: Install package sefazclass and input file 'addons\sefazclass.hbc'
for missing Harbour function(s): xmlnode(), sefazclass()
Também mostrou a dica de onde encontrar as funções.

Por último, um fonte simples, que não depende de nada.
hbmk2 test2 -xhb

hbmk2: Processing environment options: -comp=bcc
xHarbour 1.2.3 Intl. (SimpLex) (Build 20170902)
Copyright 1999-2017, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'test2.prg'...
Generating C source output to 'C:\Users\joseq\AppData\Local\Temp\hbmk_8c2igg.dir\test2.c'...
Done.
Lines 5, Functions/Procedures 1, pCodes 11
C:\Users\joseq\AppData\Local\Temp\hbmk_8c2igg.dir\test2.c:
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland

d:\temp>test2

97
O HBP é porque já estava criado, no segundo teste foi direto o PRG.
Não faço idéia de como se compilaria no xHarbour hoje, mas me parece que não é tão fácil assim.
Quem usa xHarbour pode dizer se assim fica fácil ou não.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Teste XHarbour

Mensagem por JoséQuintas »

O próximo teste foi a SefazClass.
d:\cdrom\FONTES\INTEGRA\sefazclass>hbmk2 sefazclass -xhb
hbmk2: Processing environment options: -comp=bcc
hbmk2 [sefazclass]: Warning: Cannot find hbhpdf.hbc (referenced from
sefazclass.hbc)
hbmk2 [sefazclass]: Warning: Cannot find hbzebra.hbc (referenced from
sefazclass.hbc)
hbmk2 [sefazclass]: Warning: Cannot find hbwin.hbc (referenced from
sefazclass.hbc)
hbmk2 [sefazclass]: Warning: Cannot find hbct.hbc (referenced from
sefazclass.hbc)
xHarbour 1.2.3 Intl. (SimpLex) (Build 20170902)
Copyright 1999-2017, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'source\ze_capicom.prg'...
Generating C source output to 'C:\Users\joseq\AppData\Local\Temp\hbmk_7dleft.dir\ze_capicom.c'...
Done.
Lines 54, Functions/Procedures 2, pCodes 184
xHarbour 1.2.3 Intl. (SimpLex) (Build 20170902)
Copyright 1999-2017, http://www.xharbour.org http://www.harbour-project.org/
Compiling 'source\ze_SpedAssina.prg'...
source\ze_SpedAssina.prg(59) Error E0030 Syntax error: "syntax error at 'WITH'"
source\ze_SpedAssina.prg(85) Error E0030 Syntax error: "syntax error at 'END'"
source\ze_SpedAssina.prg(98) Error E0025 Invalid RETURN from within of SEQUENCE code
source\ze_SpedAssina.prg(215) Error E0030 Syntax error: "syntax error at 'WITH'"
source\ze_SpedAssina.prg(224) Error E0030 Syntax error: "syntax error at 'END'"
source\ze_SpedAssina.prg(228) Error E0025 Invalid RETURN from within of SEQUENCE code
source\ze_SpedAssina.prg(233) Error E0030 Syntax error: "syntax error at 'WITH'"
source\ze_SpedAssina.prg(239) Error E0030 Syntax error: "syntax error at 'END'"
source\ze_SpedAssina.prg(248) Error E0025 Invalid RETURN from within of SEQUENCE code
source\ze_SpedAssina.prg(251) Error E0025 Invalid RETURN from within of SEQUENCE code
source\ze_SpedAssina.prg(254) Error E0025 Invalid RETURN from within of SEQUENCE code
source\ze_SpedAssina.prg(256) Warning W0032 Variable 'LOK' is assigned but not used in function 'ASSINALOADXML(213)'
source\ze_SpedAssina.prg(256) Warning W0032 Variable 'LOK' is assigned but not used in function 'ASSINALOADXML(231)'
source\ze_SpedAssina.prg(266) Error E0030 Syntax error: "syntax error at 'WITH'"
source\ze_SpedAssina.prg(273) Error E0030 Syntax error: "syntax error at 'END'"
source\ze_SpedAssina.prg(276) Error E0025 Invalid RETURN from within of SEQUENCE code
source\ze_SpedAssina.prg(279) Error E0025 Invalid RETURN from within of SEQUENCE code
source\ze_SpedAssina.prg(281) Warning W0032 Variable 'LOK' is assigned but not used in function 'ASSINALOADCERTIFICADO(258)'
15 errors

No code generated
hbmk2 [sefazclass]: Error: Running Harbour compiler. 1
d:\xharbour\bin\harbour.exe -n1 source\ze_SpedAssina.prg -w3 -es2 -m -n -DHBMK_HAS_SEFAZCLASS=1 -oC:\Users\joseq\AppData\Local\Temp\hbmk_7dleft.dir\ -id:\xharbour\comp\bcc\Include -id:\xharbour\include -iinclude -undef:.ARCH. -D__PLATFORM__WINDOWS
Aí não tem jeito.... rs
LIBs que não tem no xHarbour e diferenças de sintaxe...
Mas já é sobre diferença entre Harbour e xHarbour, e não tem a ver com HBMK2.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Avatar do usuário
RobertoLinux
Usuário Nível 3
Usuário Nível 3
Mensagens: 110
Registrado em: 14 Abr 2014 18:32
Localização: Fortaleza/Ce

Teste XHarbour

Mensagem por RobertoLinux »

Beleza amigo,

Fiz um teste simples aqui e deu certo, parabéns pela iniciativa.
:-Y
Entusiasta
Responder