"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "q-7.11/README" of archive q-7.11.tar.gz:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 
    2 Q eQuational Programming System Version 7.11
    3 Copyright (c) 1991-2008 by Albert Graef
    4 <ag@muwiinfa.geschichte.uni-mainz.de, Dr.Graef@t-online.de>
    5 
    6 The Q programming system is free software; you can redistribute it and/or
    7 modify it under the terms of the GNU General Public License as published by
    8 the Free Software Foundation; either version 2, or (at your option)
    9 any later version.
   10 
   11 The Q programming system is distributed in the hope that it will be
   12 useful, but WITHOUT ANY WARRANTY; without even the implied warranty of
   13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   14 GNU General Public License for more details.
   15 
   16 You should have received a copy of the GNU General Public License
   17 along with this program; if not, write to the Free Software
   18 Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
   19 
   20 (See the file "COPYING" included in the distribution for the GNU General
   21 Public License.)
   22 
   23 
   24 Author's address:
   25 
   26 Albert Graef			Johannes Gutenberg-Universitaet Mainz
   27 Schmittpforte 11                Musikwissenschaftliches Institut
   28 55599 Wonsheim/Germany          Bereich Musikinformatik
   29 Dr.Graef@t-online.de		55099 Mainz/Germany
   30 				ag@muwiinfa.geschichte.uni-mainz.de
   31 
   32 URL: http://www.musikinformatik.uni-mainz.de/ag
   33 
   34 
   35 ABOUT Q
   36 ===== =
   37 
   38 Q is a powerful and extensible programming language based on term rewriting
   39 which offers advanced symbolic processing and functional programming
   40 capabilities.
   41 
   42 Q's main features:
   43 
   44 - SIMPLE: Programs are just collections of equations which are used to
   45   evaluate expressions in a symbolic fashion.
   46 
   47 - POWERFUL: Despite its conceptual simplicity, Q is a full-featured functional
   48   programming language with a modern syntax, curried function applications,
   49   built-in support for lambda abstractions (as of Q 7.1), dynamic object-
   50   oriented typing including (as of Q 7.7) support for Wadler-style views,
   51   exception handling and POSIX style multithreading. As of version 7.0, Q also
   52   fully supports unicode environments.
   53 
   54 - EXTENSIBLE: Q has a libtool-based C interface which makes it easy to extend
   55   the interpreter with your own primitives. As of version 6.0, Q also supports
   56   SWIG, the "Simplified Wrapper and Interface Generator", which makes it
   57   fairly easy to wrap complex C/C++ libraries in Q modules.
   58 
   59 - EMBEDDABLE: Q can also be embedded in C/C++ programs, in order to employ Q
   60   as a macro language or term rewriting engine in your applications.
   61 
   62 - PORTABLE: Q runs on BeOS, FreeBSD, Linux, Mac OS X, Solaris and Windows.
   63   Porting to other modern Unix-based platforms should be a piece of cake.
   64 
   65 - FAST: As an interpreted language Q is certainly not as fast as native
   66   machine code, but it has an efficient interpreter which byte-compiles
   67   scripts in an eye blink and executes them about as fast as interpreted Lisp
   68   or Haskell.
   69 
   70 - EASY TO USE: Just throw together some equations, run the interpreter and
   71   start to evaluate expressions. The interpreter also includes a symbolic
   72   debugger which makes it easy to run your programs in a step-wise fashion.
   73   Q scripts can be run from the command line or within GNU Emacs. For Windows,
   74   a graphical IDE for editing and running Q scripts is also available.
   75 
   76 - BATTERIES INCLUDED: Q comes with a comprehensive standard library (written
   77   in Q itself) which provides complex and rational numbers, additional list
   78   processing functions, "streams" (a lazy variant of lists), container data
   79   structures (sets, dictionaries, etc.), and a PostScript interface. The
   80   distribution also includes a system interface written in C and other add-on
   81   modules for interfacing to various third-party tools and libraries, which
   82   makes Q a powerful tool for scientific programming, computer music,
   83   multimedia, and other advanced applications.
   84 
   85 The source distribution includes the Q programming tools, the standard
   86 library, a collection of useful add-on modules for interfacing to GNU Octave,
   87 GNU dbm, ODBC, Curl, GGI, ImageMagick, Tcl/Tk, XML/XSLT and IBM's Data
   88 Explorer, as well as Q language modes for Emacs, Vim and Kate. More packages
   89 in source and binary form and additional information can be found on the Q
   90 homepage at SourceForge:
   91 
   92 	http://q-lang.sourceforge.net
   93 
   94 GETTING Q
   95 =========
   96 
   97 As of December 2003, Q has become a SourceForge-hosted project, which can be
   98 found at the following URL:
   99 
  100 	http://sourceforge.net/projects/q-lang/
  101 
  102 There you can obtain released source and binary packages, as well as the
  103 latest and greatest development sources in CVS, under the following URLs.
  104 
  105 Download area:
  106 
  107 	http://sourceforge.net/project/showfiles.php?group_id=96881
  108 
  109 CVS access:
  110 
  111 	http://sourceforge.net/cvs/?group_id=96881
  112 
  113 Note that to build Q from the cvs sources you will first have to run the
  114 autogen.sh script which creates the configury. (You need autoconf, automake
  115 and libtool to do this, see MAINTAINER'S NOTE below.) Then you proceed to
  116 configure and compile the sources as explained under "INSTALLING FROM THE
  117 SOURCES" below.
  118 
  119 INSTALLATION
  120 ============
  121 
  122 See the INSTALL file for generic (UNIX) installation instructions. This
  123 version has been tested (at least) on Linux and Windows, and should also work
  124 (with the usual amount of tweaking) on most other modern UNIX/POSIX-based
  125 platforms. Please report any patches required to build the package on other
  126 systems so that they can be included in the next release.
  127 
  128 Binary packages for Linux and Windows are available on the Q project
  129 website. These packages also contain the various add-on modules which are
  130 available, and are the most convenient way to get up and running quickly.
  131 NOTE: Many of the add-on modules require additional libraries to work, as
  132 detailed on the Q homepage. However, you only need to install these
  133 dependencies if you actually want to use the corresponding modules. The base
  134 system, consisting of interpreter and standard library including the clib
  135 module, only requires the C library and the GNU multiprecision library to
  136 work. If necessary, you can instruct the package installer to ignore other,
  137 unsatisfied dependencies (e.g., rpm may be run with the --nodeps option).
  138 
  139 INSTALLING FROM THE SOURCES
  140 ---------------------------
  141 
  142 If you have a Bourne-compatible shell, a POSIX-compatible C library, and
  143 either gcc (recommended) or another decent C compiler with ANSI C support,
  144 chances are that you will be able to build this package from source without
  145 too much hassle.
  146 
  147 You'll need the GNU multiprecision library version 3.0 or later. If this
  148 library is not available on your system, get it at http://www.swox.com/gmp/
  149 and install it first.
  150 
  151 As with other GNU autotools-based packages, the basic compile/install
  152 procedure is as follows:
  153 
  154 	./configure && make && make install
  155 
  156 In this case configure picks a default set of optimization/debugging flags.
  157 More aggressive optimization can make a great difference for execution speed,
  158 though, so you might wish to try something like:
  159 
  160 	CFLAGS=-O3 ./configure && make && make install
  161 
  162 If all is well, this will install Q in the default location (/usr/local); you
  163 can invoke the configure script with the --prefix option to change this. There
  164 are a number of other configure options to play with; run configure with the
  165 --help option for a list of the available options.
  166 
  167 You can also run a simple test suite with:
  168 
  169 	make test
  170 
  171 This is by no means an exhaustive check of the interpreter's internals, but if
  172 any of these tests fails then there's probably a portability bug that needs to
  173 be fixed. You can also run this test before actually installing the software.
  174 
  175 The same build process should also work on Cygwin, BeOS and Mac OS X. See also
  176 the comments on specific systems below.
  177 
  178 Documentation is available in texinfo format, from which you can create both
  179 online and printed manuals in a variety of formats. The online manual in info
  180 format will be installed on your system. Furthermore, additional README files
  181 with information about the installed modules can be found in <prefix>/share/
  182 q/etc.
  183 
  184 [MAINTAINER'S NOTE: The current release was prepared using autoconf 2.61,
  185 automake 1.10 and libtool 1.5.23c. If necessary, you can always grab the Q cvs
  186 sources and run autogen.sh to bootstrap the configury yourself. Note that you
  187 only need these tools if you are building from cvs sources, or if you want to
  188 work on the configure scripts and automake Makefiles.]
  189 
  190 POST-INSTALL
  191 ------------
  192 
  193 To complete the installation, you might wish to install Emacs Q mode, which
  194 provides auto-indentation and syntax highlighting of Q scripts in GNU Emacs
  195 and XEmacs, and also lets you run Q scripts right inside the editor. To these
  196 ends, copy the q-mode.el file under <prefix>/share/q/etc to your Emacs
  197 site-lisp directory (or any directory searched for elisp files), and set up
  198 your .emacs file as described in Appendix E of the manual and at the beginning
  199 of the q-mode.el file.
  200 
  201 In the etc directory you also find syntax files to enjoy Q syntax highlighting
  202 in Vim (a popular vi clone) and the advanced KDE editor Kate. For Kate, just
  203 copy the q.xml file into your kde/share/apps/katepart/syntax directory and
  204 you're set. For Vim, copy q.vim to the ~/.vim/syntax directory and follow the
  205 instructions in the file to add the necessary entry to the filetype.vim file
  206 so that Vim recognizes the '.q' file type.
  207 
  208 TROUBLESHOOTING / KNOWN ISSUES
  209 --------------- - ----- ------
  210 
  211 The interpreter doesn't work on 64 bit systems yet. This will be fixed "Real
  212 Soon Now"(TM).
  213 
  214 When compiling from the sources, the most common problem probably is that
  215 shared libraries and external modules refuse to build on your system. In this
  216 case, you can disable dynamic modules altogether with the --disable-shared
  217 configure option. This should work on *any* system supported by libtool, and
  218 you will still be able to use the modules bundled with the Q distribution
  219 since these will be linked directly into the interpreter.
  220 
  221 If you *can* build the modules successfully, you may still encounter problems
  222 loading them in the interpreter, due to bugs in libtool's dynamic module
  223 loader, libltdl. In this case, if you have a custom libltdl on your system,
  224 you can try to use that with the --with-installed-ltdl configure option. (Use
  225 this option with care. If you do not have libltdl on your system or configure
  226 cannot locate it, the bundled libltdl will be built and installed on your
  227 system, which may cause problems with other libltdl-based applications.)
  228 
  229 Moreover, recent libtool versions apparently have problems linking the Q
  230 executable on some systems (I noticed this on FreeBSD 5.1 and Mac OS X
  231 10.2.4). I think that this is a libtool bug; libtool versions <=1.4.2 did not
  232 exhibit this behaviour. A workaround for this is to remove ltmain.sh and the
  233 libltdl directory and rebuild the configury with the autogen.sh script (you
  234 need to have a working autoconf/automake/libtool combo installed to do this).
  235 
  236 If configure fails to locate some required or optional third-party libraries
  237 on your system, you can specify --with-PKG=LIBS and --with-PKG-includes=
  238 INCLUDES to tell configure how to link these libraries (-L, -l etc.), and
  239 which additional includes (-I) are required to access the corresponding header
  240 files. Run configure --help to find out about the optional libraries and
  241 corresponding --with options which are supported. Only the gmp library is
  242 strictly necessary for building the package. Multithreading support will be
  243 enabled by default if the POSIX thread library is found, but can be disabled
  244 with the --without-pthread option. Likewise, unicode support is enabled by
  245 default if configure finds the necessary bits and pieces on your system, but
  246 can be disabled with --without-unicode.
  247 
  248 For instance, if your gmp library is in /root/lib and the gmp.h header file in
  249 /root/include, then you would configure with:
  250 ./configure --with-gmp="-L/root/lib -lgmp" --with-gmp-includes=-I/root/include
  251 
  252 SYSTEM-SPECIFIC NOTES
  253 =====================
  254 
  255 BEOS
  256 ----
  257 
  258 You'll need a working readline library to enjoy command line editing.
  259 Moreover, the module loader in the stock libltdl is broken. I suggest that you
  260 install the readline library from the GeekGadgets package and the fixed
  261 libtool package, both available from http://www.bebits.com. Then you can build
  262 the package with:
  263 
  264 ./configure --with-installed-ltdl
  265 
  266 Otherwise you'll have to live without dynamic loader support, and you should
  267 configure as follows:
  268 
  269 ./configure --disable-shared
  270 
  271 Note that currently there's no multithreading support, as there's no strictly
  272 POSIX-compatible thread library for BeOS. Also, BeOS support is pretty much in
  273 limbo since I don't run BeOS any more, and probably won't until one of the
  274 free replacements really takes off.
  275 
  276 CYGWIN
  277 ------
  278 
  279 Q versions 7.1 and later have been reported to compile and install cleanly on
  280 recent Cygwin versions. Older Cygwin releases had issues with dynamic modules
  281 and POSIX threads, but these seem to be fixed now, so make sure you get a
  282 recent Cygwin version if you want to run Q on this platform.
  283 
  284 FREEBSD
  285 -------
  286 
  287 (As of version 4.3.2, tested on FreeBSD 5.1-RELEASE. The same build procedure
  288 might work on the other BSDs as well, but I have not tested this.)
  289 
  290 Make sure you have a recent gmp library, as well as the libraries for the
  291 modules that you want (gdbm, odbc, tk, etc., all available in the ports
  292 tree). You'll also have to specify some compilation flags to enable the
  293 compiler to find things in /usr/local. If you want multithreading, add
  294 --with-pthread=-lc_r to the configure command. (Recent FreeBSD versions might
  295 now include a "real" pthread library, in this case you can omit this flag.)
  296 
  297 Sample configure command (omit the Tcl/Tk include paths and --with-tk option
  298 if you don't need the tk module):
  299 
  300 CFLAGS="-O3 -I/usr/local/include -I/usr/local/include/tcl8.4 \
  301 -I/usr/local/include/tk8.4 -L/usr/local/lib" \
  302 ./configure --with-tk="-ltcl84 -ltk84" --with-pthread=-lc_r
  303 
  304 LIBTOOL TROUBLES: If you run into trouble when linking the Q main executable,
  305 try removing ltmain.sh and libltdl from the main source directory, run
  306 autogen.sh to rebuild the configury (you need to have autoconf/automake/libtool
  307 installed to do this) and try again.
  308 
  309 NOTE: This port has not been tested for a while, so any feedback and patches
  310 needed to make Q work on this platform are appreciated.
  311 
  312 LINUX
  313 -----
  314 
  315 Linux is the primary development platform for this software, and the sources
  316 should build out of the box on all recent Linux distributions. RPM packages
  317 for SUSE Linux are available on the Q project website.
  318 
  319 MAC OS X
  320 --- -- -
  321 
  322 As of version 4.2, the sources can be compiled with the gcc from the Mac OS X
  323 development pack. As reported by Andrew Berg and Marco Maggesi, to get a basic
  324 installation up and running on recent OSX systems you need to install the gmp
  325 and readline libraries. You can get these, e.g., from the Fink repository at
  326 http://finkproject.org (when using Fink, don't forget to also install the
  327 corresponding development packages). Specify the compiler include and library
  328 paths paths required to compile and link against the optional software (taking
  329 Fink as an example):
  330 
  331 C_INCLUDE_PATH=/sw/include LIBRARY_PATH=/sw/lib ./configure
  332 C_INCLUDE_PATH=/sw/include LIBRARY_PATH=/sw/lib make
  333 
  334 If you want to build from CVS sources you'll also need m4, autoconf and
  335 automake, also available from the Fink repository. More packages (such as X11,
  336 Tcl/Tk, etc.) will be needed if you want to build all the included modules.
  337 
  338 NOTES:
  339 
  340 - The gcc preprocessor on some older OSX versions seems to be broken, but this
  341   can be worked around using gcc's -no-cpp-precomp option. Add this to the
  342   CFLAGS variable in the configure command and you should be set.
  343 
  344 - Depending on the OSX version you might also run into problems when linking
  345   some modules or the Q main executable. This can usually be cured by
  346   rebuilding the configury from scratch as described in TROUBLESHOOTING above.
  347 
  348 - Q-Tk applications currently require that you have an X11-based Tcl/Tk
  349   installed and must be run in an X server, which is available from
  350   http://www.apple.com/macosx/x11/. Actually it should also be possible to
  351   build an X-less version which uses the native (Aqua) Tcl/Tk, but I haven't
  352   figured out how to do this yet; any input on this will be appreciated.
  353 
  354   To get an X11 version of Tcl/Tk running on your system, you'll have to
  355   install Tcl/Tk from source. First install the X11 server so that the
  356   necessary X11 libraries are available. Then get the Tcl/Tk 8.4 sources from
  357   http://www.tcl.tk and follow the instructions for Unix installation.
  358   (*Don't* use the OS X installation procedure, otherwise you will get the
  359   Aqua version.)
  360 
  361 SOLARIS
  362 -------
  363 
  364 The sources should compile cleanly with gcc (versions up to 4.3.1 have been
  365 tested with gcc 2.95.2 under Solaris 2.8/x86). Configure as follows:
  366 
  367 ./configure --with-pthread="-lpthread -lrt"
  368 
  369 The -lrt option (-lposix4 on older Solaris systems) is needed to get the
  370 semaphore functions, if you're building with pthread support.
  371 
  372 NOTE: This port has not been tested for a while, so any feedback and patches
  373 needed to make Q work on this platform are appreciated.
  374 
  375 WINDOWS
  376 -------
  377 
  378 A binary release for all current 32 bit Windows systems, the Qpad package, is
  379 available from the Q project website. It provides an MSI installer package, a
  380 user-friendly Windows GUI frontend to the interpreter, extensive online
  381 documentation including the full Q language manual in html help format, and of
  382 course precompiled binaries of the Q programming tools, libraries and modules.
  383 
  384 All required libraries and other support files are included in this package,
  385 except ImageMagick and Tcl/Tk, which you will have to install separately if
  386 you want to use the corresponding modules. You can find Windows installers for
  387 these libraries at the following URLs:
  388 
  389 - ImageMagick: http://www.imagemagick.org/www/archives.html
  390 
  391 - Tcl/Tk: http://aspn.activestate.com/ASPN/Downloads/ActiveTcl/
  392 
  393 If you would like to use q-mode.el under Windows, you should get a Win32
  394 version of Emacs which supports processes (and hence comint). Two nice Windows
  395 ports of Emacs are NT Emacs (see http://www.cs.washington.edu/homes/voelker/
  396 ntemacs.html) and XEmacs (http://www.xemacs.org). After installing Qpad, you
  397 can find q-mode.el in Qpad\etc under your program files directory. Copy this
  398 file to your Emacs site-lisp directory, and set up your .emacs file as
  399 described in Appendix E of the manual.
  400 
  401 If you want to build the native Windows port yourself, you need a recent
  402 version of Mingw and Msys, both available at http://www.mingw.org. To build
  403 the entire distribution, you'll also need MS Visual C/C++ and a bunch of
  404 additional libraries. To ease porting, the Q project website has a zip file
  405 with the complete build tree used to create the current Windows release,
  406 including the Qpad sources, the add-on modules, and all dependencies except
  407 ImageMagick and Tcl/Tk.
  408 
  409 OPTIONAL SOFTWARE
  410 ======== ========
  411 
  412 The Q distribution comes with some add-on modules which can be found in the
  413 `modules' directory of the Q source tree. `Clib', Q's "system" module which
  414 provides access to some important functions from the C library, is now an
  415 integrated part of the standard library, and is documented in the Q language
  416 manual. Some other modules are provided to access various useful third-party
  417 software. Documentation for these can be found in the appropriate README files
  418 inside the etc subdirectory of the Q installation directory after
  419 installation. Note that if you are building the Q core distribution from
  420 source then only those modules will be built for which the corresponding third
  421 party libraries are available on your system.
  422 
  423 CURL
  424 ----
  425 
  426 The `curl' module gives access to libcurl (http://curl.haxx.se/), a powerful
  427 library for transferring files with URL syntax which supports all common
  428 Internet protocols. See README-Curl for more information.
  429 
  430 GDBM
  431 ----
  432 
  433 Q's `gdbm' module provides an interface to the GNU dbm library, see gdbm(3).
  434 If you have a Linux system then most likely you already have this library,
  435 otherwise you can get it from http://www.gnu.org or one of its mirrors. This
  436 module is also supported on FreeBSD, OS X and Windows. See README-Gdbm for
  437 more information.
  438 
  439 GGI
  440 ---
  441 
  442 The `ggi' module provides access to the GGI (General Graphics Interface)
  443 library, available from http://www.ggi-project.org. This module allows you to
  444 create raster graphics on a variety of display devices. See README-GGI for
  445 more information.
  446 
  447 Please note that GGI itself doesn't provide any custom font support for text
  448 rendering, but Q's `ggi' module does. To make this work, you'll also need
  449 version 2 of the FreeType library, available from http://www.freetype.org/.
  450 
  451 GHOSTSCRIPT
  452 -----------
  453 
  454 Q provides access to PostScript graphics via the `graphics' script contained
  455 in the standard library. This script also provides an interface to
  456 Ghostscript, a PostScript previewer which is available for a great variety of
  457 systems and can be obtained from http://www.ghostscript.com.
  458 
  459 IMAGEMAGICK
  460 -----------
  461 
  462 The `magick' module lets you access most common image formats using the
  463 ImageMagick library, available from http://www.imagemagick.org. Using this
  464 module you can also, e.g., perform various image manipulation operations and
  465 render image files in a GGI visual. See README-Magick for more information.
  466 
  467 OCTAVE
  468 ------
  469 
  470 The `octave' module provides access to John W. Eaton's Octave, a comprehensive
  471 MATLAB-like software for performing advanced numeric computations. To use this
  472 module, you must have Octave installed on your system, which is available from
  473 http://www.octave.org. You can also find some additional items including
  474 information about binary packages for Windows at the GNU Octave Repository
  475 (http://octave.sourceforge.net/). See README-Octave for more information.
  476 
  477 ODBC
  478 ----
  479 
  480 ODBC has become the industry standard for portable and vendor independent
  481 database access. Q's ODBC interface lets you connect to ODBC-compatible
  482 databases and retrieve or modify data using SQL statements. To use this
  483 module, you need an ODBC driver manager on your system, as well as the
  484 database and corresponding ODBC driver you want to use. Two well-known open
  485 source ODBC implementations are iODBC (http://www.iodbc.org/) and unixODBC
  486 (http://www.unixodbc.org/). Two popular ODBC-compatible open source databases
  487 are MySQL (http://www.mysql.com/) and PostgreSQL (http://www.postgresql.org/).
  488 Under Windows you can also connect to various proprietary databases such as MS
  489 Access. See README-ODBC for more information.
  490 
  491 OPENDX
  492 ------
  493 
  494 The `dxl' ("DX-Link") module provides an interface to IBM's Open Data
  495 Explorer, a powerful scientific data visualization software. This software
  496 needs Motif, and is only available for Unix and Linux systems at this
  497 time. (At least there is no straightforward way to make it run on other
  498 systems.) You can get it at http://www.opendx.org. See README-DXL for more
  499 information.
  500 
  501 SWIG
  502 ----
  503 
  504 SWIG is the "Simplified Wrapper and Interface Generator" which allows you to
  505 create C/C++ wrapper modules for various target languages in an easy way. More
  506 information about SWIG can be found at http://www.swig.org.
  507 
  508 SWIG support is an important new feature which has been added in version 6.0
  509 of the Q programming system. While a hand-crafted interface module allows you
  510 to tailor the interface to the Q environment, creating such a module by hand
  511 is often impractical for huge C/C++ libraries. This is where SWIG comes in
  512 handy. SWIG makes it really easy to wrap big libraries since the wrappers are
  513 generated automatically from simple interface definition files.
  514 
  515 Note that until the Q-SWIG module becomes part of the official SWIG
  516 distribution, to use SWIG with Q you'll need a SWIG version which has been
  517 patched up to add support for the Q language. For the time being, a suitable
  518 SWIG package can be found on the Q homepage.
  519 
  520 TCL/TK
  521 ------
  522 
  523 The `tk' module provides an interface to Tcl/Tk, John Ousterhout's command
  524 language and graphical user interface toolkit. Using the `tk' module, you can
  525 employ Tcl/Tk to create functional if not fancy graphical user interfaces
  526 which are portable across most popular operating systems and windowing
  527 environments, including Unix/X11, Mac OS and MS Windows. See README-Tk for
  528 more information. Support for Gnocl, Peter G. Baum's Tcl->Gnome/GTK bridge
  529 (http://gnocl.sf.net), is also available as a separate package.
  530 
  531 XML/XSLT
  532 --------
  533 
  534 XML (Extensible Markup Language, http://www.w3.org/TR/REC-xml) and XSLT (XML
  535 Stylesheet Language Transformations, http://www.w3.org/TR/xslt) are open
  536 standards by the W3C consortium. XML is used to represent structured data,
  537 XSLT to transform that data into other XML-based formats. XML is commonly
  538 employed to represent complex structured data in a way which facilitates data
  539 exchange across various applications and systems, while XSLT helps to present
  540 such structured data in any manner desired, e.g., as an HTML file. Q provides
  541 an interface to XML and XSLT via its `xml' module, which is implemented using
  542 the libxml2 and libxslt libraries from the GNOME project (http://xmlsoft.org).
  543 
  544 AND MORE ...
  545 --- ---- ---
  546 
  547 The auxiliary software listed above only encompasses the modules whose sources
  548 are distributed with the Q core package. Other interfaces such as the
  549 multimedia library (featuring modules to work with digital audio, signal
  550 processing, MIDI, 3D graphics and sound, etc.) and Qt/Q (Q's complete
  551 interface to Trolltech's Qt GUI toolkit) are available as separate source
  552 packages from the Q homepage. As of Q 7.0, the compiled versions of these
  553 modules are usually included in the binary packages of the Q programming
  554 system. New and/or experimental modules may also be provided as separate
  555 binary packages, or only in source form. Please check the Q homepage for more
  556 information about these add-ons.
  557 
  558 Q is also available as a plugin or module inside other environments. At the
  559 time of this writing, the available interfaces include the mod_q Apache module
  560 (which lets you run Q as a module inside the Apache web server), the Pd/Q
  561 external (which allows you to implement Pd control objects in Q) and John
  562 Cowan's Q interface for the Chicken Scheme compiler. The Apache and Pd/Q
  563 modules are available from the Q website, the Chicken module from
  564 http://www.call-with-current-continuation.org/.
  565 
  566 FEEDBACK
  567 ========
  568 
  569 This software is provided free of charge and without any warranty, but that
  570 does *not* mean that I'm not fixing bugs or listening to new ideas. ;-) So
  571 your questions, comments, suggestions, contributions and, in particular, bug
  572 reports and patches are always welcome. I'd also like to hear about your
  573 experiences using Q, and which applications you use it for.
  574 
  575 To these ends, the SourceForge project website provides an area where you can
  576 post bug reports and patches, as well as support and feature requests.
  577 Moreover, the site also offers two mailing lists for discussing Q development
  578 and usage.
  579 
  580 
  581 Enjoy!
  582 
  583 June 2007  Albert Graef