On Thu, 09 Jul 2009, Xavi wrote:
> Hi All,
> A spanish expression says: "ser más papistas que el Papa" in English "be more 
> Catholic than the Pope".
> I'm surprised that we are pass some lines and nobody says anything.
> Maybe not understand the changes or are the holidays but...
> Are we correcting errors in Clipper language?
> If so to me is OK but I'd like to read more comments.
> What is the result in the last xHarbour?

Few wrong results and RT errors and finally GPF.

There are some things broken in Clipper which we corrected in Harbour
but in this case we are also making fixes to some old extensions.
Just simply if we added support for some new constructions then it should
be fully functional. Situation like in xHarbour where in practice each
extension causes side effects and works only with some limited conditions
or breaks something else or causes GPF during compilation or GPF at runtime,
etc. is unacceptable for me.
If sth cannot be well implemented then should not be added to core code
at all.
Here the problem interacts with macrocompiler which in Clipper has few
bugs, does not support some valid language expressions, has serious
limitations like maximum expression size, etc.
We haven't replicated most of them intentionally.
In Harbour macrocompiler should support all valid language expressions
just like compiler and all of our extensions should work correctly when
used with macrocompiler. Otherwise we will create anomalies which sooner
or later are source of some problems.
We added support for passing array items by reference so it should work
correctly in compiler and macrocompiler for arrays and hashes.
Not like in xHarbour where it works only for arrays and it's only partially
supported by macrocompiler.
It's also very important to keep the syntax clean report errors in places
were wrong syntax is used. Otherwise people will produce wrong code by
mistake and then it will be hard to fix [macro]compiler without breaking
backward bug compatibility. Just simply look at problems reported by
xHarbour users when they migrate to Harbour. A lot of them are mistakes
in source code silently accepted by xHarbour compiler, i.e. who knows
me what this code does in xHarbour without real life testing?
   ? (@errorNew():tries(100))++
   ? ++(@errorNew():tries(100))
and who can answer with full syntax description _after_ real life testing ;-).
xHarbour compiles it without any errors.
Maybe some xHarbour developers read it and can answer.

Harbour and xHarbour support messages generated by macrocompiler, f.e.:
   proc main()
      o:=errorNew()
      s:="tries"
      ? o:&s
   return
but try to use some <op>=, ++ or -- with such macromessage expression
in xHarbour, i.e.:
      ? o:&s += 10
or:
      ? o:&s++
etc. This is probably result of some stupid typo but I reported it few
times in last years with many other compiler and macrocompipler bugs and
looks that in xHarbour team no one has enough knowledge to fix it or just
simply does not want to touch his fingers in such extensions.

best regards,
Przemek
_______________________________________________
Harbour mailing list
[email protected]
http://lists.harbour-project.org/mailman/listinfo/harbour

Reply via email to