The Cross-Platform xBase.
Frequently Asked Questions about Harbour
David G. Holm <firstname.lastname@example.org>Revision: 1.45 Date: 2004-05-03 19:00:32
1. Legal Stuff
- 1.1. Copyright
- 1.2. License
- 1.3. Warranty
- 1.4. Trademarks
2. About Harbour
- 2.1. What is Harbour?
- 2.2. Why develop Harbour?
- 2.3. Who is developing Harbour?
- 2.4. Who owns Harbour?
- 2.5. So who do I blame when it all goes wrong?
- 2.6. How did Harbour get started?
- 2.7. What is "free software"?
- 2.8. So is Harbour in the public domain?
- 2.9. What is the GPL?
- 2.10. Why was the GPL chosen as the license for Harbour?
- 2.11. What is the Harbour exception?
- 2.12. So why don't you use the LGPL?
- 2.13. Will my applications be affected by the GPL?
3. Helping develop Harbour
- 3.1. How do I get started?
- 3.2. What C compiler should I use?
- 3.3. What other tools do I need?
- 3.4. Where can I find the source?
- 3.5. What is CVS and how do I use it?
- 3.6. How do I build Harbour?
- 3.7. What needs working on?
- 3.8. Are there any development guidelines?
- 3.9. Is it ok to extend the language with some spiffy new feature?
- 3.10. So what's with all these language extensions then?
- 3.11. I can't code C, how can I help development?
- 3.12. I've got loads of Clipper code I can donate, what shall I do?
- 3.13. I can't submit Clipper code either, can I still help anyway?
4. The Harbour mailing lists
- 4.1. Is there a developer's mailing list?
- 4.2. Is there a user's mailing list?
- 4.3. Is there a general discussion mailing list?
- 4.4. How do I remove myself from the mailing lists?
- 4.5. Are there any rules on the lists?
- 4.6. Are the lists archived anywhere?
- 4.7. Are there any newsgroups for Harbour?
5. Installing Harbour
- 5.1. Where can I get pre-built binaries?
6. General Harbour questions
- 6.1. When will Harbour be finished?
- 6.2. Are applications <attribute> than CA-Clipper applications?
- 6.3. What advantages does Harbour have over other Clipper compilers?
- 6.4. What advantages do other Clipper compilers have over Harbour?
- 6.5. Will Harbour support existing CA-Clipper 3rd party products?
- 6.6. Is Harbour a Windows development tool?
- 6.7. What platforms are supported by Harbour?
7. Pointers and links
- 7.1. Harbour related links
- 7.2. Articles about Harbour
- 7.3. Free (in either sense of the word) development tool links
- 7.4. Clipper related links
- 7.5. Free software related links
- 7.6. Other handy links
8. Administrative information
- 8.1. Document URL.
- 8.2. Feedback about the FAQ.
- 8.3. Document history
1. Legal Stuff
This document as a whole is copyrighted © 1999–2004 David G. Holm. Some portions of the document may be copyright other individual authors and are used with their permission. This document would not exist were it not for the efforts of the original maintainer, Dave Pearson.
This document should be considered as free software, distributed under the terms of the GNU General Public License, version 2. For details see the file COPYING.txt.
This document is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
This document may make reference to various trademarks, these trademarks are acknowledged and are only used for reference purposes.
2. About Harbour
2.1. What is Harbour?
Harbour is a free software compiler for the xBase superset language often referred to as Clipper (the language that is implemented by the compiler CA-Clipper). Harbour's chosen base implementation is, for the moment, the 5.2e version of CA-Clipper. This isn't to say that the additions found in 5.3 won't make it into Harbour, it simply reflects the fact that many Clipper programmers see 5.2e as the "last best" implementation of Clipper.
If the 5.3 extensions to the language are important to you please feel free to contribute to the project.
2.2. Why develop Harbour?
There are probably more reasons for developing Harbour than there are Harbour developers. To gain a better understanding of why some free software gets developed you might want to have a read of The Cathedral and the Bazaar.
2.3. Who is developing Harbour?
Many people. There are a small handful of people who could be called the "core development team" but the actual set of people who are contributing to the project is constantly in flux. Anyone can join the "development team" and, if you've got something to offer the project, you'll be more than welcome.
Anyone wondering who the core developers are should pop over to the Harbour project website and look at the crew list.
2.4. Who owns Harbour?
Nobody owns Harbour but many people hold the copyright on portions of Harbour.
2.5. So who do I blame when it all goes wrong?
Harbour is free software and comes with no warranty. The warranty statement is that which is provided by the GPL:
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
2.6. How did Harbour get started?
The idea of a free software Clipper compiler has been floating around for a long time and the subject has often cropped up in discussion on comp.lang.clipper. Actual work to get something developed started early in 1999 when Antonio Linares started a thread to discuss some ideas about developing a Clipper grammar using Lex and Yacc.
The rest, as they say, is history (that history might form the basis of another document should I ever get the time to compile it).
2.7. What is "free software"?
In general terms free software is one phrase for describing software that comes with certain freedoms, the free doesn't speak about the price, it speaks about your freedoms to use the software. A common suggestion is that you think "free speech" instead of "free beer".
See https://www.gnu.org/philosophy/free-sw.html for the Free Software Foundation's definition of "free software".
A related term is OpenSource, you can find out more about the idea of OpenSource at https://www.opensource.org/. You might also want to note that the FSF don't consider OpenSource and Free Software to be the same thing, see https://www.gnu.org/philosophy/free-software-for-freedom.html for more details.
2.8. So is Harbour in the public domain?
No, Harbour isn't in the public domain. Most parts of Harbour are copyrighted works and you should respect those copyrights as you would any other copyright. With a small number of exceptions each of the Harbour authors have placed their code under Harbour's chosen license, currently that license is the GPL and/or the GPL with Harbour exception.
Note, however, that some files that are part of harbour have been placed in the public domain.
2.9. What is the GPL?
The GPL is the license of the GNU system, it is a free software license. You might also hear it referred to as the Copyleft.
The GPL is currently the license under which parts of Harbour are released, other parts of Harbour are under the GPL plus the Harbour exception.
2.10. Why was the GPL chosen as the license for Harbour?
That's really a question best asked of each of the Harbour copyright holders. A simple answer would be that the GPL is seen as one of the more restrictive free software licenses and, for that reason more than any other, it appeared to give the maximum amount of freedom and at the same time the correct degree of control over use and distribution.
2.11. What is the Harbour exception?
There is one small wrinkle regarding the use of the GPL as the license for Harbour. Harbour comes in a number of parts, these can best be described as the compiler (including pre-processor), the virtual machine and the run-time library. The GPL dictates that anyone distributing binary versions of GPLd code must make an offer of providing the source and that the code linked against the GPLd code must also fall under the GPL. Failure to do so is a breach of license.
In Harbour terms this means different things depending on which portion of Harbour you are considering. The compiler itself can live under the GPL, it isn't part of the run-time and so poses no problem. This isn't true for the HVM and RTL because they get linked into your application and so would require that your code be distributed under a compatible license. While the Harbour developers would like to see you develop free software they have decided to let you make this choice.
To solve this problem the developers have employed the "Harbour Exception". This idea comes from the GPL exception used by guile. In effect, the exception states that you must observe the GPL except when the code in question is being used as the HVM and RTL of an application compiled with Harbour.
The wording of the exception currently reads:
The exception is that, if you link the Harbour libraries with other files to produce an executable, this does not by itself cause the resulting executable to be covered by the GNU General Public License. Your use of that executable is in no way restricted on account of linking the Harbour library code into it.
This exception does not however invalidate any other reasons why the executable file might be covered by the GNU General Public License.
This exception applies only to the code released by the Harbour Project under the name Harbour. If you copy code from other Harbour Project or Free Software Foundation releases into a copy of Harbour, as the General Public License permits, the exception does not apply to the code that you add in this way. To avoid misleading anyone as to the status of such modified files, you must delete this exception notice from them.
If you write modifications of your own for Harbour, it is your choice whether to permit this exception to apply to your modifications. If you do not wish that, delete this exception notice.Please note that the original wording of the exception was based on an earlier version of the guile exception. That version of the exception was less verbose and less clear. The wording of that version read:
The exception is that if you link the Harbour Runtime Library (HRL) and/or the Harbour Virtual Machine (HVM) with other files to produce an executable, this does not by itself cause the resulting executable to be covered by the GNU General Public License. Your use of that executable is in no way restricted on account of linking the RTL and/or HVM code into it.The Harbour sources are being converted over to the new exception as each copyright holder makes the change. The intention is that every item of source that uses the Harbour exception will clearly use the more verbose version.
2.12. So why don't you use the LGPL?
Given the above it might be reasonable to ask why the Harbour developers didn't elect to use the LGPL instead. The reason simply comes down to the requirements of the LGPL and what can be reasonably asked of anyone who wishes to make use of Harbour.
The LGPL requires that any binary distribution of the LGPLd code (in other words, an application compiled with Harbour and linked against the HVM and RTL) should be distributed in a method that allows the user to re-link the application against different and/or later copies of the code under the LGPL. This is an unreasonable and unworkable requirement as far as the Harbour developers are concerned.
For the most part it would be fine on platforms where an application can be linked against a dynamic version of the HVM and RTL, but any platform that doesn't support dynamic linking (PC/MS/DR/Open/Free-DOS for example) would be effectively shut out of Harbour usage. The Harbour developers consider this to be a reduction of freedom and this isn't acceptable for free software.
2.13. Will my applications be affected by the GPL?
No, the Harbour exception seeks to ensure that, when you build an application with Harbour, compiling with the Harbour compiler and linking against the HVM and RTL, your rights to license your own code are not in any way affected.
Harbour's license is there to try and protect the freedom offered by the Harbour developers. Harbour's license isn't there to try and force you to choose a specific license.
Be assured that it isn't the intention of the Harbour developers that your applications will have to be released as free software. Supporting free software would be the right thing to do but the Harbour developers have decided not to insist on this; we think it is more useful in this situation to set up Harbour's license so that it does not make any conditions on the status of your work that was built with and against Harbour.
As always, don't take anyone else's word for this stuff, when in doubt, read the license. If you're still in doubt pay someone who knows what they are doing to read the license for you. Hopefully you do this with licenses for your other development tools, Harbour is no different, it has a license that you need to understand.
3. Helping develop Harbour
3.1. How do I get started?
The first thing you should do is join the developer's mailing list and read the mail for a few days to get a feel for what is going on. You might also want to take a look at the archives too.
3.2. What C compiler should I use?
What C compiler do you want to use?
The Harbour developers consider GNU GCC to be the supported compiler of the Harbour project, use of the GCC port for your chosen platform is encouraged.
However, should you wish to use a different C compiler your contribution to make it work is more than welcome. Currently the following C compiler and platform combinations are supported by someone in the development team:
- Microsoft Windows
- DOS 32-bit
- GCC (various versions).
docdirectory of the Harbour source tree. If such documentation is missing please consider asking about it on the development mailing list and, once you've got the information, formatting it and placing it in the
docdirectory to help others who may wish to ask the same question.
3.3. What other tools do I need?
To build Harbour you'll need the following tools:
A C compiler.
Please see the FAQ section entitled What C compiler should I use? for more details on choosing a C compiler.
A make utility.
Most platform/compiler combinations within Harbour make use of GNU make, some developers use other make utilities, you'll need to speak to them if you want to ignore the GNU make files.
You should be able to find GNU make at:
- Microsoft Windows
Most (if not all) GNU/Linux distributions come with GNU make. If you can't find the make utility on your system you should look on your install CDs and/or the FTP site for your distribution.
TODO: Provide link
A copy of flex:
See the harbour download page.
The DJGPP distribution of GNU tools for DOS includes a port of flex.
Most GNU/Linux distributions come with a copy of flex. If you don't have it installed you should install it from your distribution media.
TODO: Provide link
TODO: Provide link
A copy of bison:
See the harbour download page.
The DJGPP distribution of GNU tools for DOS includes a port of bison.
Most GNU/Linux distributions come with a copy of bison. If you don't have it installed you should install it from your distribution media.
TODO: Provide link
TODO: Provide link
A CVS client for your chosen platform.
Please see the FAQ section entitled What is CVS and how do I use it? for more details on getting a CVS client for your environment.
3.4. Where can I find the source?
There are three methods of getting the source for harbour, which method you use will depend on how up-to-date you feel you need to be.
The unstable snapshot
A snapshot of the source is made available on the Harbour project download web page. Please be aware that this is an unstable snapshot. Using this source could make all sorts of horrible things happen - it might not even compile. You have been warned.
The stable snapshot
Once in a while a stable snapshot of the Harbour source is made available from the download page of the Harbour project website. These snapshots are referred to as "releases" and are considered stable in that the source will compile and there are no known showstoppers in the compiler, virtual machine or run-time library.
If you like to play with alpha quality software but want to feel safe doing so then a stable release is for you.
Direct CVS access
The best and most direct method of getting Harbour source is from the CVS server. This is where the Harbour developers work on the source for Harbour (actually, they all work on their own machines, this server gives them, in effect, a virtual shared directory).
If you intend to work with Harbour built from the CVS itself you should really consider subscribing to the developer's mailing list.
Please note that if you do want to help develop Harbour then the last option is the best option (and, in the long term, the only useful option for all concerned).
3.5. What is CVS and how do I use it?
Before proceeding you should probably have a good read of the introduction to CVS by Jim Blandy. Reading this document should save you a lot of confusion later on.
To use the CVS server you first need to get a copy of the CVS client software for your operating system:
See www.cyclic.com/cvs/windows.html for more details.
See the DOS section at www.cyclic.com/cvs/other.html.
Many GNU/Linux distributions come with the CVS client packaged as part of the distribution. If you don't have it installed check your install CDs or check the FTP site for the distribution in question.
See www.cyclic.com/cvs/mac.html for more details.
If you are building Harbour with an operating system not listed then please contact the FAQ maintainer with full details so that this list can be updated.
Once you have got your CVS client installed you can gain anonymous access to
the Harbour CVS server. Depending on platform, the first thing you need to
do is set the
CVSROOT environment variable to:
In addition to the above some environments might require extra information.
For example, the DOS, Windows and OS/2 CVS clients need to be given two
extra environment variables,
HOMEPATH. These two
environment variables tell the CVS client where the source will live
locally. For example, if your Harbour development directory is at
S:\FREESOFT\HARBOUR you'd set:
SET HOMEDRIVE=S SET HOMEPATH=\FREESOFT\HARBOUR\
Users of the Windows client have reported that the
variable must start with and finish with a directory separator. Users of the
DOS client have reported that the
HOMEDRIVE environment variable must
end with a colon.
Ensure that your harbour directory is created and change into it. Then run:
and press enter when prompted for a password. Now run:
cvs extract -P harbour
to get a copy of the Harbour CVS repository (users of the DOS client have
reported that it doesn't have the
extract command and that the
checkout command should be used instead, I'm also told that the CVS
client on GNU/Linux requires that you use
Note: The CVS commands and directories are case sensitive:
must be in all lower case.
Later, when you want to get changes from the CVS, you can do one of two things:
- Repeat the
extractcommand from your Harbour directory.
- From your Harbour directory run '
If you have problems after reading the above please consider reading the CVS introduction and also the documentation for the CVS client you've installed. If, after reading both those documents, you are still having problems you should drop a polite message into the developer's mailing list detailing your platform, environment, all the steps you performed and the exact nature of the problem.
3.6. How do I build Harbour?
The method used to build Harbour may differ from platform to platform and
even from tool set to tool set. Please have a good read of the files in the
doc directory of the Harbour source.
3.7. What needs working on?
See TODO in the root directory of the harbour sources.
If you're looking to get stuck into some Harbour development you'd do well to subscribe to the developer's mailing list, hang out there for a few days to get a feel for what is going on and then either start contributing bug fixes (always a good way of getting started) or simply announce your intention to work on an entry on the TODO list.
3.8. Are there any development guidelines?
Not as such no. That said, if you are going to cut some code for Harbour you might want to consider the following random observations:
- Harbour is written in both C and itself. As much as possible we stick with ANSI C (any non ANSI code should be guarded with pre-processor directives).
- Too many comments are better than too few comments.
- An ounce of testing can save a ton of debugging. Please ensure that, when you change code, you attempt to compile and use Harbour before submitting changes.
- English is the nearest we've got to a common language. Where possible please code in, comment in and document in English.
- Please don't make use of code you don't have the right to use. For example, don't go copying CA-Clipper header files to make Harbour header files.
- Have fun.
3.9. Is it ok to extend the language with some spiffy new feature?
As a rule, no. As stated earlier Harbour is designed, as much as possible, to be a CA-Clipper 5.2e compatible Clipper compiler (with some 5.3 bits thrown in when it makes sense). As such, until such a time as we're all done on the compatibility front, the Harbour developers would prefer to keep the language as "pure" as possible.
That said, if you've got an idea for something you think should be added to the language please feel free to make your case on the developer's mailing list. Please note that emails along the lines of "I want feature X because I'd like to have it" don't cut much ice. Emails to that effect that actually offer a working patch might cut a little ice. Preferably, you'll come to the list with a well thought out and documented case for the addition of a new language extension and you'll be willing to discuss the proposal.
Also, don't be upset if it is rejected, this is free software after all, if you really feel that the extension is required you can maintain a patch in parallel or, if you really must (but we'd prefer if you didn't), you could maintain a forked distribution of Harbour.
3.10. So what's with all these language extensions then?
Hey, come on, there aren't that many!
Seriously, ok, hands up, you've got us bang to rights. Harbour does include some extensions to "standard" Clipper but you'll notice that these extensions are, on the whole, either replacements for "must have" 3rd party add-ons that people used with CA-Clipper or they are a feature that is native to other Clipper compiler implementations.
3.11. I can't code C, how can I help development?
How about doing some Clipper (the language) coding? Parts of Harbour have been and can be written in itself. Why not look at what needs doing in the run-time library and seeing what could be coded using normal Clipper code?
Don't worry about speed for the moment, chances are the functions you're thinking about are not speed critical, even if they are someone can come along and, using your implementation as the base design, re-code it in C for extra speed (if re-coding will speed it up).
3.12. I've got loads of Clipper code I can donate, what shall I do?
Harbour isn't a project to create a repository of free Clipper code so, unless your code directly implements a core Clipper run-time library function it probably isn't a lot of use to Harbour.
However, don't let your code go to waste, why not consider starting a non-compiler specific but cross-platform free software Clipper library that will benefit programmers using any of the Clipper compiler implementations?
3.13. I can't submit Clipper code either, can I still help anyway?
You could help out any number of ways. Documentation is one area where volunteers are needed (it's a dirty job but someone has to do it). Perhaps you could help maintain the TODO list? How about creating and maintaining binary snapshots of each of the releases?
Simply put, if you really want to help Harbour development, you'll find a way.
4. The Harbour mailing lists
4.1. Is there a developer's mailing list?
Yes, the list lives at email@example.com. To subscribe to the Harbour development mailing list simply send an email to firstname.lastname@example.org and in the email say "subscribe". Alternatively you can subscribe via the World Wide Web at www.matrixlist.com/mailman/listinfo/harbour/.
4.2. Is there a user's mailing list?
Yes, the list lives at email@example.com. To subscribe to the Harbour user's mailing list simply send an email to firstname.lastname@example.org and in the email say "subscribe". Alternatively you can subscribe via the World Wide Web at www.matrixlist.com/mailman/listinfo/harbourusers/.
4.3. Is there a general discussion mailing list?
Yes, the list lives at email@example.com. To subscribe to the Harbour discussion mailing list simply send an email to firstname.lastname@example.org and in the email say "subscribe". Alternatively you can subscribe via the World Wide Web at www.matrixlist.com/mailman/listinfo/harbourtalk/.
4.4. How do I remove myself from the mailing lists?
Every email that comes from the Harbour mailing lists contains instructions for unsubscribing. The information is in the header of the email. For those people with MUAs that don't allow them to read such vital information here are the headers at the time of writing:
List-Unsubscribe: www.matrixlist.com/mailman/listinfo/harbour, mailto:email@example.com?subject=unsubscribe
List-Unsubscribe: www.matrixlist.com/mailman/listinfo/harbourusers, mailto:firstname.lastname@example.org?subject=unsubscribe
List-Unsubscribe: www.matrixlist.com/mailman/listinfo/harbourtalk, mailto:email@example.com?subject=unsubscribe
4.5. Are there any rules on the lists?
There are no rules as such but you might want to consider the following guidelines:
- Try to stay on topic. The developer's list is for Harbour design and development issues, the user's list is for Harbour usage discussion and the discussion list is for general Harbour discussion.
- Try not to mail binaries. Sometimes it is necessary on the development list, if so, try to keep the size down, the developer's list is very busy.
- Stick to plain text formatted email, turn off any HTML "features", content is far more important than form in the Harbour lists.
- Stick to English. This isn't a UK/US/AU-centric thing, it just so happens that English is more widely comprehended than any other language available on the lists. If you use English you'll be read by the maximum number of people.
- Don't use the subject as the message. Single line messages where the message is in the subject don't carry a lot of information. Be verbose, you'll stand a better chance of being understood.
- Do use the subject to outline a message. A descriptive subject is more likely to catch the eye of the people whose eye you wanted to catch.
The above isn't an exhaustive list of guidelines, neither are any of the above actually "enforced" (although you might find one or two people politely suggesting you consider abiding by them). Generally speaking the rules on the Harbour lists are those that apply to good email composition in general.
4.6. Are the lists archived anywhere?
You can access the developer's list at www.matrixlist.com/pipermail/harbour/, the user's list at www.matrixlist.com/pipermail/harbourusers/ and the discussion list at www.matrixlist.com/pipermail/harbourtalk/.
4.7. Are there any newsgroups for Harbour?
No, there are no newsgroups specific to Harbour. However, Harbour is a Clipper compatible compiler which means that Harbour is an on-topic subject for the Usenet group comp.lang.clipper.
5. Installing Harbour
5.1. Where can I get pre-built binaries?
While Harbour is still in development the preferred method of getting a Harbour binary is to download the source and build it yourself because this aids the development effort.
However, the Harbour developers also appreciate the efforts of people who don't want to develop Harbour itself but do want to test it and report bugs. To this end some people maintain Harbour binaries that are ready to be installed.
Please keep in mind that the following may not be the very latest cut of Harbour (Harbour changes by the hour while in this early phase of development) and that some platforms might be better supported than others. If you see that a platform isn't supported or is out of date please consider stepping in and making available binaries for that platform.
- The downloads page on the Harbour project's website contains a number of binary builds of the latest stable snapshot.
- David G. Holm is maintaining a repository of binary builds of stable (and sometimes, in parallel, unstable) releases at harbour.netfang.net/.
If you can't find binaries for your environment via the above links then this means that someone isn't contributing for that environment, perhaps you'd care to step in and fill that gap?
6. General Harbour questions
6.1. When will Harbour be finished?
"When it's finished".
Seriously, Harbour will be finished when it is finished. If the pace of Harbour development isn't fast enough for you you can always contribute something to the project to make it go faster. Such contributions could be code, documentation, faster machines for the key developers (but one suspects a free supply of pizza would be more welcome) or even an offer to employ one or more of the key developers to work on Harbour full time.
6.2. Are applications <attribute> than CA-Clipper applications?
Or, to put it another way, will your application be bigger, smaller, slower, faster, sexier, etc.... Generally, at least at this stage in the life of Harbour, any given body of code that can be compiled with Harbour and with CA-Clipper, on the same machine and with the same environment (it wouldn't be much of a comparison otherwise would it?) will run slower and will probably be "bigger" when compiled with Harbour.
The same is probably true when comparing Harbour compiled code with other Clipper compatible compilers.
The reasons for this are many and varied and, as is pointed out in many places in this document, Harbour is still early in its life and continuing development and Clipper compatibility are of greatest importance. The issue of "performance" will be addressed when it is most appropriate to do so, and when people are available to look into it.
As always, if the performance of Harbour is an issue for you now and you want to see Harbour perform as per your expectations then contributions speak louder than benchmark results.
6.3. What advantages does Harbour have over other Clipper compilers?
The main advantage Harbour has over other Clipper compilers is that it is free software. Harbour also attempts to remove some of the limits imposed by the base implementation but the extent of this will depend on your chosen platform.
The Harbour developers make no claim that Harbour is better or worse than any other implementation of the language, however, at the same time, each individual developer can probably sing the praises regarding the area of Harbour they have worked on.
Most importantly, try Harbour for yourself, decide for yourself why it has advantages for you.
6.4. What advantages do other Clipper compilers have over Harbour?
Currently the advantages other Clipper compilers have over Harbour are:
- They are available and working (for various values of "working").
- They are supported.
- They are documented.
- They, to some degree, give you someone to blame.
As time passes most of the above advantages will be eroded. Note that the documentation process is well under way and that support is simply a comp.lang.clipper post away. The only advantage that won't be eroded is the last one in the list.
I'm sure that users of other compilers, not to mention their authors, feel they have other advantages too. This is fine. Harbour isn't an exercise in removing or replacing those compilers, Harbour is an effort to complement the list of Clipper compilers with a free software offering.
6.5. Will Harbour support existing CA-Clipper 3rd party products?
No, but the above is the wrong question to ask. The question to ask is "will existing CA-Clipper 3rd party products support Harbour?", that's a question you should ask of the product author.
See the Harbour website for details of which 3rd party product authors are currently developing for Harbour or intend to support Harbour in the near future.
6.6. Is Harbour a Windows development tool?
No, Harbour is a cross platform CA-Clipper compatible compiler, it can be used for development on any supported platform.
6.7. What platforms are supported by Harbour?
There is no definitive list of supported platforms because any platform can be supported if someone is willing to make Harbour work on it. As of the time of writing Harbour is known to compile and run on MS-DOS, MS-Windows, OS/2, GNU/Linux and FreeBSD.
7. Pointers and links
The following is a random collection of pointers and links that deal with subjects connected to Harbour and the development of Harbour. The links appear in no particular order and no one link is in any way an endorsement of the target site by the Harbour development team.
7.1. Harbour related links
- The Harbour home page
- Harbour development mailing list archive
- Harbour user mailing list archive
- Harbour discussion mailing list archive
- David G. Holm's Harbour Project page (includes source and binary archives of recent Harbour builds)
7.2. Articles about Harbour
7.3. Free (in either sense of the word) development tool links
- Apple MPW tools
- GNU make
7.4. Clipper related links
- The Oasis
Other Clipper compiler implementations
- x2c - Summer '87 compatible compiler
- FlagShip - Clipper 5.x compatible Un*x targeting compiler
- Xbase++ - Clipper 5.x compatible Windows and OS/2 targeting compiler
- Clip - Free Software Clipper compatible compiler
- C3 - A Clipper compatible compiler for Windows
- xHarbour - a derivative fork of the Harbour compiler
- xHarbour - a commercial version of the free xHarbour compiler
- Xbase - Free C++ library for handling DBF files.
7.5. Free software related links
- The Free Software Foundation
- The GNU Project
- The Cathedral and the Bazaar
- Homesteading the Noosphere
- The Magic Cauldron
- FSF's definition of free software
- The GPL
- The Lesser GPL
- Reasons for not using the LGPL
- Free software/OpenSource license list
7.6. Other handy links
8. Administrative information
8.1. Document URL.
The primary location of this document is /faq/. There is every chance that you might be reading this document from another location, this is perfectly fine. However, keep in mind that only the above URL can be relied upon to be the most up-to-date copy.
Alejandro de Garate has translated portions of this document for inclusion in his Spanish Harbour website. Please note that I can't vouch for the correctness of the content because I don't speak Spanish.
dongming wang has translated this FAQ into Chinese. See www.xbase.8u8.com/html/xbase/harbour/harbour-faq/harbour.html. Once again, please note that I can't vouch for the correctness of the translation.
8.2. Feedback about the FAQ.
Feedback about this FAQ is always welcome. Comments, fixes, additions, subtractions or questions about the document should be sent to firstname.lastname@example.org.
Please note that questions about Harbour should be directed to one of the Harbour mailing lists (development questions to the developer's mailing list and other questions to the Harbour user's mailing list) and/or the Usenet group comp.lang.clipper.
Let me repeat that, the harbour-faq email address isn't for asking questions about installing or using Harbour, if you feel the need to send such questions to that address you've probably not read this document or you've totally missed the point of the content. Either way, there is little chance of me being able to help you by that point.
8.3. Document history
Revision 1.45 2004-05-03 19:00:32 Updated CVSROOT to match current SourceForge usage. Revision 1.44 2003-08-21 22:59:10 Fixed several broken links. Removed a couple of broken links that could not be fixed. Changed my binary download link from the mirror site to the primary site. Added Bruno Cantero's C3 compiler to the Clipper compatible compiler list. Revision 1.43 2003-08-20 21:22:01 Added xHarbour to Clipper related links Revision 1.42 2003-04-28 17:35:31 Dave Pearson assigned the FAQ copyright to David G. Holm. Revision 1.41 2003-04-25 17:44:57 The SGML conversion tool that I use mandates the use of name= for all URLs Revision 1.40 2003-04-24 21:09:35 David G. Holm took over the Harbour FAQ at the request of Dave Pearson Revision 1.39 2003-04-16 14:10:23 Changed the "primary location" for this document. Revision 1.38 2003-02-10 10:28:49 Updated the links for Mingw and CygWin. Revision 1.37 2002-10-31 14:27:07 Added pointer to Windows port GNU make as provided by Gerardo Perez. Revision 1.36 2002-10-03 08:25:08 Improved the consistency of terms regarding the HVM and RTL. Re-wrote section 2.13, it was very out of date. Added a pointer to the Chinese translation of the FAQ. Revision 1.35 2001-12-18 08:13:03 Removed the text in FAQ 2.5 that said that the wording of the warranty might change at some point in the future. Now that the license details are settled this isn't an issue. Added FreeBSD to the list of known supported platforms in FAQ 6.7. Gave (hopefully) useful URLs to each platform listed in the above list. Minor text corrections. Revision 1.34 2001-12-14 17:52:27 Fixed a minor spelling mistake. Revision 1.33 2001-12-14 17:48:26 Updated the link to Andi's binary distribution site. Revision 1.32 2001-11-29 13:21:02 Updated the link to Andi's binary distributions. Revision 1.31 2001-11-13 08:34:21 todo.txt has been renamed to TODO. Updated FAQ 3.7 to point to the new name for the file. Revision 1.30 2001-11-12 16:23:36 Added pointers to Andi's unstable binary distributions. Revision 1.29 2001-09-24 09:07:18 Added a pointer to Clip in the list of other Clipper compiler implementations. Revision 1.28 2001-08-21 10:21:20 Changed question 3.7 to reflect the fact that there is now a TODO list. Revision 1.27 2001-07-05 10:15:39 Replaced the (non-working since Deja died) Deja link to Antonio's initial comp.lang.clipper post with a link to the article in Google Groups' archive. Revision 1.26 2001-05-04 10:03:10 The CVS server has had the Harbour-project renamed to harbour-project. Changed all CVS references to take this into account. Revision 1.25 2001-04-26 10:11:19 Updated the copyright details of this document. Revision 1.24 2001-04-26 10:10:17 Updated some of the entries regarding license choices and the Harbour exception. The exception has changed slightly and the GPL is here to stay. Revision 1.23 2001-02-27 18:13:12 Attila Feher pointed out that the pointers to the DJGPP port of GNU make on ftp.cdrom.com had decayed. Fixed. Revision 1.22 2001-01-20 08:52:48 Updated CVS information, the Blandy document has moved and Alex Schaft pointed out a problem with following the anonymous CVS example from a GNU/Linux box. Revision 1.21 2000-12-19 13:09:55 Changed the www.hagbard.demon.co.uk links to www.davep.org links. Revision 1.20 2000-10-12 13:35:19 Changed all mailing list links from eGroups to harbour's own list server. Revision 1.19 2000-08-25 15:46:56 Correct the CVS tutorial links. Added a pointer to the Harbour User's mailing list archives. Added a pointer to my Harbour page. Revision 1.18 2000-06-06 12:22:45 Added details about the Harbour user's mailing list. Added "Are there any newsgroups for Harbour?". Revision 1.17 2000-05-24 17:23:56 Changed all the OneList links to eGroups links. Revision 1.16 2000-05-22 09:52:16 Added a pointer to Borland's free (of cost) compiler. Changed some of the details about source snapshots. Added a section for pointers to articles about Harbour. Revision 1.15 2000-02-17 09:16:53 Removed a link to Matthew's that I missed in the last version. Revision 1.14 2000-02-17 09:13:12 Removed the pointer to Matthew Collins' snapshot page while he's unable to maintain it. Expanded the answer to question 6.4 to reflect the fact that harbour development is coming along apace. Added a pointer to the Spanish language pages that contain a translation of parts of this document. Fixed random spelling mistakes. Revision 1.13 2000-01-27 10:00:57 Added "Is Harbour a Windows development tool?". Added "What platforms are supported by Harbour?". Removed the pointers to Andi Jahja's harbour snapshot and binary FAQ distribution while he isn't in a position to support them. Revision 1.12 2000-01-17 12:42:46 Brian Hays pointed out that the DOS CVS client and section 3.5 didn't fully agree. Fixed. Revision 1.11 2000-01-10 16:55:43 Fixed one or two language bugs. Improved some of the language regarding the GPL (thanks to RMS for his input on this subject). Noted that this document is now available from Harbour's SourceForge pages. Revision 1.10 1999-12-20 18:56:52 Changed the Clipper compiler implementation list in section 7.3 so that it better outlines what level of the language each compiler implements. Updated the URL for The Oasis. The FAQ is now available as a PostScript file. Changed the email addresses to point to davep.org instead of hagbard. Changed the details of the CVS server now that we've moved to SourceForge. Revision 1.9 1999-11-18 17:10:36 Added details of Andi's unstable snapshot. Where appropriate, parts of the main document have been linked to the Clipper implementation list in section 7.3. Changed section 6.5 so that it mentions the 3rd party support list. Revision 1.8 1999-11-16 16:35:41 Corrected the notes about David's and Matthew's websites in section 7.1, I'd moved David's to Matthew's and forgot to add one for Matthew. Revision 1.7 1999-11-16 16:31:52 Added a warning about using non-free licensed copyrighted code to the development guidelines in section 3.8. Changed the wording in section 4.2 to suggest that harbour will have a users mailing list "post-alpha" instead of "post-beta". Added details about Matthew Collins' unstable snapshot to section 3.4. Hunted down and fixed a couple more `htmlurl' tags that should have been `url' tags. Added details of Andi Jahja's alternative (Wintel oriented) FAQ formats. One or two general tidy-ups. Revision 1.6 1999-10-10 08:02:41 The HTML produced from harbour.sgml is now passed thru a Perl script which adds some extra colour and formatting information to make the FAQ better fit the colour scheme of the harbour website (if you didn't notice the problem your browser is probably dictating how you view information). Revision 1.5 1999-10-09 15:11:07 Removed the split of DOS 16/32-bit in the make details part of section 3.3. Changed the `htmlurl' tags into `url' tags in section 3.3, this means that the URLs actually show up in the plain text version of the FAQ. Changed the C compiler entry in 3.3 so that it reads better in both the HTML and plain text versions of the FAQ. Changed the CVS entry in 3.3 so that it reads better in both the HTML and plain text versions of the FAQ. The heading for the CVS links in section 7.5 read "RCS" when it should have read "CVS". Fixed. Placed the Clipper compiler implementations listed in section 7.3 into their own sub-list. Revision 1.4 1999-10-06 05:44:16 Rewrote section 3.4 to reflect the fact that three different methods of getting the Harbour source now exist. Revision 1.3 1999-10-02 13:44:15 Updated the information about the downloading of binary archives from the Harbour website. Fixed one or two spelling mistakes and grammatical errors. Revision 1.2 1999-10-02 07:47:06 Fixed some formatting bugs and spelling mistakes. Added details of David Holm's Harbour site. Noted in the CVS client setup advice that OS/2 requires the same environment variables as Windows. Made a move to fill the gaps in the development tool pointer list (your contributions are still needed people!). Revision 1.1 1999-10-01 13:36:23 Initial revision