To run the project requires a java vm. If you are intending to use maverick to develop or run basic applications then a java runtime is sufficient.
If you intend to develop MaVerick itself or to augment your basic code with java code then a full java devlopment kit(JDK) is recommended.
A recent version of java is recommended, if possible version 1.3 or later.
The latest java reelase 1.4.2 provides noticeable performance benefits over older versions. If you like bleeding edge 1.5.0 beta appears to also offer in addition a reduced memory footprint.
Over time java 1.1 has become harder and harder to support (see question below) and is currently not recommended.
Sort of runs...has these known problems because of missing functionality:
Used to compare and sort various objects within the MaVerick runtime. Coud be worked around by creating a 'maverickdbms.Comparable' interface.
Used to move sequentially through sets of objects. Similar to java.lang.Enumeration but also includes the ability to remove items from the set. Could be worked around by creating 'maverickdbms.Iterator' interface.
Used in the the string classes to provide a union type sructure for the string classes. Java 1.1 has a doubleToLongBits but this does not provide a reversable translation for doubles which are NaN.
Used to truncate files in the native(lh and localdb) database drivers. For java 1.1 either a jni routine to truncate is needed or a routine which creates a new file copies the first part of existing file then deletes the original and renames the new file (aaaaarrgh!)
Note also some third party software like the mysql and postgres jdbc drivers have minimum system requirements not satisfied by java 1.1.
MySQL JDBC Driver
Postgres JDBC Driver
The db.jar berkeley library
The asjava.jar library from ibm
See the relevant driver installation page for further details on any additional prerequisites
If you are doing development on MaVerick itself there are other tools that are useful
The ant build tool can be used to rebuild the source and many other useful tasks
JUnit is used in conjunction with ant to run the test suite
Antlr is used to build the basic compiler
The main repository for the MaVerick source code is at sourceforge and is readily retrievable using a subversion client
Please see the install pages for detailed installation instuctions.
MaVerick is distributed under the Lesser General Public License (LGPL) sometimes also referred to as the Library General Public License. This is a very common license created by the Free Software Foundation.
For further details see: http://www.gnu.org/copyleft/lesser.html
Currently MaVerick is distributed as a single 'tar.gz' file containing both source, documentation and binary(java jar) files. The 'tar.gz' format is a common unix format similar to 'zip' format on windows. Most common windows decompression software(ie winzip) should have no problem with it
If you have trouble with unzipping the software and need a zip file or windows installer or something please post to the mailing list(see below).
If running the project on Windows 95 or 98 the environment variable needs to be set up before running the compiler or compiled basic programs.
For linux/unix or windows NT/2000/XP/2003/XP Reloaded(aka Shorthorn)/Longhorn no action is required as the environment variable should be automatically discovered.
Try: RUN TEST
Only include the program suffix(ie .BAS) when compiling the program. It is stripped by the compiler when converting to object(.class file) code.
Currently at the time of writing the linear hash(lh) driver is probably the most advanced. This changes over time though, one of the founding principles of the project was to enable data to be stored and retrieved from many different and varied data sources.
Yes. Basic routines can be called from java, the basic routines appear as an ordinary java class.
Java routines may called by basic either by inheritence or setting up the java code as emulating a basic program or subroutine.
Java has an inbuilt api for calling C routines(JNI) this can be used to interface with MaVerick basic code. If the language has a C language api then it is very likely it will work with MaVerick. There are also more indirect alternatives ie pipes or tcp sockets etc. that may be utilized.
Project bugs are currently tracked on sourceforge. See:
http://www.sourceforge.net/projects/maverick/Look at the current listed bugs, if nothing similar is present then add a new bug with the web form. Try to isolate the bug to a simple test case if possible, this can greatly speed resolution.
Post it to the sourceforge patches.
http://www.sourceforge.net/projects/maverick/Perhaps also post to the devel list(see below) if you wish to discuss it first.
Try the project mailing list: maverick-devel@lists.sourceforge.net see the sourceforge page for subscription/archive information:
http://lists.sourceforge.net/lists/listinfo/maverick-devel