Sem querer criar polêmica por favor.
Eu fui um usuário do xHarbour, fiquei algum tempo, anos usando ele, deste a época que ele nasceu, depois comecei a ler discussões e atritos entre alguns programadores(gurus) do xHarbour e do Harbour, e fiquei como fico até hoje acompanhado, pois precisamos enxergar na frente um pouco para ver se vamos continuar usando essa ou aquela linguagem, resumindo se irei ou não trocar de linguagem.
Na época eu parei de usar o xHarbour, com muito custo, troquei códigos etc... algumas pessoas entram em contato comigo, pedido para continuar usando o xHarbour, mas enfim eu adotei o Harbour, simplesmente eu sigo as informações do Przemek que no meu conceito é a pessoa que mais entende do xHarbour e do Harbour.
Na época o Andi Jahja ficou no xHabour fazendo uma serie de pequenas alterações, colocando muita coisa "for windows", depois o Andi disse que iria fazer uma alteração no xHarbour (se o pessoal permitisse) que simplesmente travaria ou deixaria o xHarbour impossibilitado de ser usado no Linux. O pessoal protestou etc... o Andi abandonou o xHarbour. Encurtando a história, agora ele vem com essa informação ou solicitação:
Agora, para os que jogam pedra em mim quando escrevo que o xHarbour tem problemas. Vejam a resposta do Przemek.Hello,
I randomly get this error message:
"WITH OBJECT excessive nesting!"
As per default build, HB_MAX_WITH_OBJECT is preset to 64. But I am very sure that my application does not have that much nests.
This occurs when I repeatedly execute sub function containing WITH OBJECT. I suspect the counter is not released after a nest reached an "END"
Anyone?
--
Andi
Veja que o xHarbour está com esses pepinos há 10 anos! E o pessoal vende ele! Usa SQLRDD...Hi!
After short checking current HVM code in xHarbour I can see two possible
reasons:
1. You are using recursion.
Due to limitation in xHarbour implementation FOR EACH and WITH OBJECT
cannot be used in algorithms using recursion because they can reach
HB_MAX_WITH_OBJECTS or HB_MAX_ENUMERATIONS limits.
It's very serious problem I reported nearly 10 years ago.
To resolve it it's necessary to redesign FOR EACH and WITH OBJECT
implementation in xHarbour. It would be nice to also eliminate
overhead caused by current code. Even if programmer does not use
above constructions then HVM in xHarbour executes additional code
to initialize and finally clean FOR EACH and WITH OBJECT counters
and containers on each PRG function call what reduces overall
performance. The implementation in Harbour does not have such
problems so it can be taken as base.
2. Looks that code executed for -gc3 output does not restore FOR EACH
and WITH OBJECT counters. Such additional cleanup it's yet another
overhead in current implementation which can be eliminated new one.
Example below illustrates it:
#include "hbclass.ch"
proc main()
local i
for i := 1 to 100
begin sequence
with object i
if i < 100
break
endif
end with
endsequence
next
return
This can be easy fixed anyhow I strongly suggest to start deeper
modifications which resolved also other problems.
best regards,
Przemek
Antes que digam que é o .COM o, .COM usa o mesmo fonte do .ORG.
O detalhe é que ninguém responde nada lá. Simplesmente porque não sabem resolver. Ai o Przemek que não esconde nada, logo abre o jogo.
Por isso o pessoal do xHarbour que usa esses comandos vez outra posta aqui problemas com GPF, etc...
Está ai a resposta.
A gravidade disso as pessoas podem não perceber, mas por exemplo trocaram o código da Hwgui todo na época para usar "For Each" com o xHarbour...
E esse tal "WITH OBJECT"
Aqui no forum por exemplo, está cheio de códigos que usam ele com o xHarbour.
Quem sabe agora com isso exposto eles comecem a corrigir.
Saudações,
Itamar M. Lins Jr.

