On Sun, 20 Jan 2013, Ron Pinkas wrote: Hi,
> I fully agree with Przemek, that we can NOT aford to drop support for Linux. > There are too many reasons to count, and Przmek did mention most of them. > I would only add, that many prospective open source contributors are Linux > users. > > As to the other obsevations and comments of Przemek, I must sadly agree. > It is time for a serious cleanup of our code base, and a serious commitment > to avoid localized hiding of Compiler warnings. > > Finally, I would like to personally invite Przemek, to help us. I sincerely > believe that you, Przemek, understand the important role of xHarbour in the > development of Harbour, and I hope that you do recognize that the difference > in spirit, between the 2 projects is still very important. While at THIS > point in time, we are clearly behind, in terms of stability, performance, > and code quality, we still pionereed many innovations, and for many years > it was Harbour, that was dormant, and clearly behind. I hope you agree that > Harbour would not be what it is today, without xHarbour. I agree. Both projects benefited from each other. A lot of code was borrowed from Harbour to xHarbour and from xHarbour to Harbour after the fork. Also ideas were shared even if the implementations were completely different. > Przemek, since you personally have revived Harbour, practically > single-handedly, and you are intimately familiar with all the issues > that you already fixed, and rewrote, for Harbour, I would like to > wholeheartedly invite you, to help us, so that our creative differences > may once again bring new life to both projects. I can try to help you in some spare time but recently I'm really busy due my business jobs and so called "spare time" is something really rare in my life :( Please only remember that I was not alone in Harbour modifications in last years. Viktor made really great job in general code and used types cleanup. Mindaugas added important extensions to compiler and HVM/RTL code, Pritapl is extensively working on set of addons like HBIDE, HBQT, HBXBPP. Also many other people worked on Harbour. If you think about real milestone in xHarbour developing then I would like to say sth what may be a shock for you but I strongly suggest to seriously rethink it before you answer. Updating current xHarbour code will be time consuming process which in practice would mean that Harbour code is copied to xHarbour and then adopted. Many problems and bugs can appear even due to stupid typos. So I suggest you to create new branch and copy whole current Harbour code just as is. Then working on this branch add or enable xHarbour extensions you think are really usable. Some of them you can be added as modifications in core code some others in separate libraries. As you can see most of xHarbour extensions were replicated in Harbour inside XHB library so it should not be hard job. If you want we can discuss each of them before commit and I'll try to tell you how it can be implemented and how it may interact with some other code or future extensions. This should help to sync code between both projects what can help in the future in code exchanging, i.e. 3-rd party projects can work with both Harbour and xHarbour without or with minimal modifications. In Harobur there is text filewhere I tried to discribe main differences between both projects: http://http://harbour-project.svn.sourceforge.net/viewvc/harbour-project/trunk/harbour/doc/xhb-diff.txt?view=log This may show you what should be done. I'll try to update this file and add some information about other differences. As you can seen not too much. I think that in less then month all modifications can be finished. The main problem I can see are some classes like TBROWSE, TGET and TIP library. The RTL TBROWSE and TGET classes in Harbour are much more compatible with Clipper then xHarbour ones. It greatly helps Clipper users but may create some problems for xHarbour users who used some specific to xHarbour only behavior. Probably it will be necessary to keep the previous implementation in separated library, i.e. as TBROWSEOLD. The TIP library is sth what I do not want to comment - I'm not familiar with this code. I have no idea how it's compatible with Harbour. The windows only extensions and windows API wrappers have WIN_ and WAPI_ prefixes in Harbour and are part of HBWIN library. I think it's good solution because it well separates non portable MS-Windows only code what helps users to create portable programs and isolate local to system extensions. xHarbour support directly windows printers in SET PRINTER TO command. Harbour doesn't so it have to be added. I would suggest to make it using replaceable FILE IO API so it won't be necessary to introduce platform oriented code to HVM. It also add possibilities to register other printing systems, i.e. for terminal server programs. The namespace support is sth what you will have to make yourselves. I'm not familiar with this code. When the base version will be ready people can begin tests and if they report some missing functionality then it can be added. Please also note that you can make next release using current SVN code. I even suggest to do that so without any time pressure from users you can work on new code in second branch. Harbour is much more restrictive in some cases then xHarbour, i.e. it hides many internals so they can be used by 3-rd party code. Fortunately in last years most of 3-rd party projects have been adopted to Harbour so it should not be a problem for them though for sure some code will have to be updated. In Harbour compiler can be used at runtime. It means that program which works like xBaseScript can be implemented in just few lines and .prg files are executed with full speed just like after -gc2 compilation. I even create hbscript which can be used as active script in MS-Windows. I haven't committed it yet. It covers similar functionality from xHarbour.com - I tested it with xHarbour examples and they worked well. The real problem can appear at runtime and is caused by binary compatibility with older code. HB_SERIALIZE() gives incompatible results. It means that HB_DESERIALIZE() from Harbour cannot decode data encoded by current xHarbour HB_SERIALIZE(). HB_SERIALIZE() is used by SQLRD so this problem is not such trivial because it may block migrating to new xHarbour version. Probably this can be resolved adding support for signatures used by xHarbour in serialization code. I haven't though about it before. I'll look at it closer and if it's possible I'll commit such patch to Harbour. The exception ic created by codeblocks. They cannot be desrialized even if you copy codeblock serialization code from current xHarbour to Harbour due to differences in PCODE. It's possible to write translation function though in general it's problematic extension which needs other solution to make it really functional. I.e. xbase++ stores with codeblock their string representation which is later used in serialization code. In deserialization such strings are macrocompiled Simple solution but I haven't checked how they resolved some potential problems like access to static functions or values of detached locals. Mayve they added support for context in macrocompiler or maybe they do not touched the problem at all. In the past I made some runtime tests and they show that xbase++ documentation is often very far from real behavior in problematic places. hb_valToExp() gives different results then ValToPrg() but in fact Harbour creates real expressions which can be macrocompiled so it's rather like a fix for current xHarbour behavior. I believe that you can quite fast catch all such differences and agree what to do with them. HTH. > BTW, again I would like to offer my sincerest apology, for having offended > you, many years ago. I give you my word again, that I sincerely did not > mean to be offensive, it was a simple misunderstanding due to a language > difference. Now that I have lived for some 7 years, in a non English > speaking culture, I better understand why you got so offended from the > term "creature", but I gurantee you that in English, the the phrase, > "what a funny creature, you are" is not used in that offensive context, > rather, it is a fairly common, synical phrase. Eitherway, please accept > my sincere apology. Let's forget about it and all other unnecessary personal digressions from the past. best regards, Przemek ------------------------------------------------------------------------------ Master Visual Studio, SharePoint, SQL, ASP.NET, C# 2012, HTML5, CSS, MVC, Windows 8 Apps, JavaScript and much more. Keep your skills current with LearnDevNow - 3,200 step-by-step video tutorials by Microsoft MVPs and experts. SALE $99.99 this month only -- learn more at: http://p.sf.net/sfu/learnmore_122412 _______________________________________________ xHarbour-developers mailing list xHarbour-developers@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/xharbour-developers