BINARY INSTALL, BUILD, TOOLS, LOCALIZING (last updated 2011-10-04 ------------------------------------------------------------------- CONTENTS (1) WIN32 BINARY DISTRIBUTION INSTALLATION (2) Mac OS X BINARY DISTRIBUTION INSTALLATION (3) UBUNTU Linux DEBIAN DISTRIBUTION INSTALLATION (4) MINIMUM INSTALL (5) BUILD, TEST AND INSTALL newLISP FROM SOURCE (6) COMMENTS FOR COMPILING AND LINKING (7) LOCALIZATION (8) UNINSTALL (9) RUNNING newLISP IN A SHELL OR CONSOLE WINDOW (10) RUNNING THE newLISP-GS GRAPHICAL FRONTEND (11) INSTRUCTIONS FOR CUSTOMIZED INSTALL AND PACKAGE CREATORS (12) COMMENTS ABOUT LIBFFI (1) WIN32 BINARY DISTRIBUTION INSTALLATION ------------------------------------------ The Win32 binary distribution comes packed as a Win32 installer application. After downloading a file: newlisp-xxxx-win-gs-xxx.exe double click on the downloaded file and follow instructions. xxxx and xxx are the version numbers for newLISP and the newLISP-GS the GUI frontend. On Win32 a ASCII version of newlisp.exe capable of ISO/IEC 8859 code pages is installed. A UTF-8 capable version is available from the newlisp download directory at: http://www.newlisp.org/downloads/UTF-8_win32/ (2) Mac OS X BINARY DISTRIBUTION INSTALLATION --------------------------------------------- After downloading double-click on the Mac OS X disk image file: newlisp-xxxx-ppc.dmg # for older PPC type Macs or newlisp-xxxx-intel.dmg # since at least end of 2007 This installs an applications icon in the Mac OS X Applications folder. On Mac OS X a UTF-8 capable version is installed by default. On both, Intel and PPC architectures Mac OS X v10.5 Leopard is minimum. (3) UBUNTU Linux DEBIAN DISTRIBUTION INSTALLATION ------------------------------------------------- Double click the file: newlisp-xxxx-x_i386.deb or newlisp-xxxx-utf8_i386.deb This will bring up the debian installer application. On some UBUNTU libraries libreadline and libffi may have to be installed when making from source: sudo apt-get install libreadline6 libreadline6-dev and apt-get install libffi-dev (4) MINIMUM INSTALL ------------------- For a minumum install, only the executable file: newlisp (or newlisp.exe on Win32) needs to be moved to a directory in the executable path, i.e. /usr/bin/newlisp on Unix. No other files are required. This installation is recommended for ISPs and other server installations. If modules are installed the environment NEWLISPDIR should be defined to point to the modules parent directory. If NEWLISPDIR is not defined, newLISP sets it to /usr/share/newlisp during startup. To reduce an exisiting UNIX install to a minimum installation, remove all files in /usr/share/newlisp and /usr/share/doc/newlisp and the executable files /usr/bin/newlisp-edit and /usr/bin/newlispdoc. On Mac OX X remove also the files under the Applications icon in the Applications folder. On Windows remove all file except newlisp.exe in C:/Program Files/newlisp. (5) BUILD AND INSTALL newLISP FROM SOURCE ----------------------------------------- Un-tar/gunzip the distribution file newlisp_9.x.x.tgz : tar xzvf newlisp_9.x.x.tgz Change the current directory in to newlisp_x.x.x/ and check what OS flavor make would detect, type: ./configure This will automatically detect the platforms Linus, MacOS X, FreeBSD, OpenBSD, NetBSD, SunOS/Solaris and Win32. To build on Win32 a MinGW installation hosted by MSYS is required. See http://mingw.org. If you agree with the platform detected by configure type: make After building has finished type: make testall or for a shorter version make test when all tests are passed OK do a sudo make install or if already in superuser mode: make install to find out all make options, use: make help For shorter ouput, 'make test' can be used instead of 'make check'. Using 'make testall' or 'make checkall' more tests and a speed benchmark are performed. (6) COMMENTS FOR COMPILING AND LINKING -------------------------------------- If skipping the ./configure step and just doing make, the configure script will be called automatically if no makefile_build can be found, or else the existing makefile_build will be used. The standard configure script assumes READLINE support, discovers the default memory model (32 bit vs 64 bit) and copies one of the pre-fabricated makefiles to makefile_build. The standard configure forces 32-bit on MacOS X even if 64-bit is detected. To force compile for 64-bit either choose an appropiate make file manually or use configure-alt. If compiling with READLINE fails on Linux , it may be due to missing readline.h and history.h include files. In this case the package 'libreadline5-dev' has to be installed. On some platforms the warning message "ANSI does not support long long" will be issued for every file compiled. This message can be discarded and does not occur on newer versions of GCC. The 'long long' data type is not used anywhere in the newLISP source but part of some header files of the GCC installation. Most of the makefile_xxxxx can also be used this way: make -f makefile_xxxxx but always read the contents of makefile_xxxxx first, as it sometimes contains specific instructions. configure-alt script -------------------- This script can be used as an alternative to the standard configure script. Instead of creating a makefile_build from existing pre- configured makefile configure-alt does an analysis of the capabilities found on the target platform and then custom generates a makefile_build. Numerous options can be configured. To find all options use: ./configure-alt --help For questions and support for configure-alt, please contact: Ted Walther . Note thet configure-alt uses a version-numbered directory for the installation. By default it also uses /usr/local instead of /usr as a prefix for the bin, man, share/newlisp and share/doc/newlisp directories. Avoid having installs from the standard 'configure' and alternate 'configure-alt' script on the same machine! NOTE, that newLISP can only be compiled for the IPL32 and LP64 memory models. configure-alt will configure a 64-bit (LP64) application by default if the platform and tools are capable. The standard configure script will configure a makefile for 32-bit (ILP32) by default. This may change in the future. Compiling and running newlisp-x.x.x/util/types.c will produce: IPL32 memory model ------------------ type bytes --------------- char 1 char * 4 void * 4 short int 2 int 4 long 4 long int 4 long long int 8 size_t 4 float 4 double 8 long double 16 wchar_t 4 size_t 4 off_t 8 time_t 4 LP64 memory model ----------------- type bytes --------------- char 1 char * 8 void * 8 short int 2 int 4 long 8 long int 8 long long int 8 size_t 8 float 4 double 8 long double 16 wchar_t 4 size_t 8 off_t 8 time_t 8 (7) LOCALIZATION ---------------- The PCRE Regular Expressions code can be localized to your country/language It comes with default character tables for English, but should work well for other languages when using the UTF-8 version of newLISP. For correct working of other string functions in your country/language a localizable 'C' library/OS may have to be used. The names of newLISP functions can be localized during runtime without performance loss, (see newlisp_manual.html). There are UTF-8 versions/makefiles available in the source distribution. See the chapter about 'Customization, localization and UTF-8' in the manual. (8) UNINSTALL ------------- On Win32 use the uninstall application from the newlisp applications menu. On Mac OS X double click on the uninstall script in the diskimage of the installer package. On UBUNTU Linux execute: sudo dpkg -r newlisp On all other UNIX, to uninstall if installed with make install do: sudo make uninstall or if installed with: make install_home make uninstall_home To manually uninstall on Win32 remove all files in c:\Program files\newlisp On Mac OS X and other UNIX remove all files in /usr/share/newlisp and /usr/share/doc/newlisp and the executable files /usr/bin/newlisp, /usr/bin/newliso-edit and /usr/bin/newlispdoc. On Mac OX X also remove the newLISP icon in the Applications folder. (8) RUNNING newLISP IN A SHELL OR CONSOLE WINDOW ------------------------------------------------ On all platforms simply execute: newlisp On Win32 the execution path of newlisp.exe was added to the environment during installation. On all other platforms the newlisp binary is in /usr/bin/newlisp or when using the home install in $HOME/bin where $HOME is the the home directory of the user taken from the environment variable HOME. (10) RUNNING THE newLISP-GS GRAPHICAL FRONTEND ---------------------------------------------- On Win32 and Mac OS X a Java based syntaxhighlighting editor is installed in in the Applications menus. In other UNIX execute: newlisp-edit from the command line in a terminal window. The editor needs a Java runtime environment JRE version 1.5 as a minimum. In case it is not installed it can be obtained from: http://www.oracle.com/technetwork/java/javase/downloads/index.html Since Mac OS X 10.7 Lion, Java is not installed by default. Install Java for OS X 10.7 Lion from here: http://support.apple.com/kb/DL1421 (11) INSTRUCTIONS FOR CUSTOMIZED INSTALL AND PACKAGE CREATORS ------------------------------------------------------------- By default the configure script uses the following install directories: /usr/bin/ /usr/share/newlisp /usr/share/doc/newlisp As an alternative the configure-alt script can be used. Do a: ./configure-alt --help To see all the options available. Options for install directories, readline support, UTF-8 support and memory model used are available. Like configure, configure-alt creates a makefile_build and makefile_install. Both makefiles are used by Makefile when doing: make make install make test or for a bigger testsuite make testall These are the standard configuration options recommended by newlisp.org: - use ILP32 memory model as a default, use LP64 only when ILP32 is not available on the platform (configure-alt will take the default offered on the platform) - use the default IPV4 support IPV6 has not been thoroughly tested yet although it passes the standard qa-net test script (configure-alt defaults to IPV4. - use readline support if possible (configure-alt uses it if available) - offer both packages, one with and one without UTF-8 support on UNIX installations. newlisp.org ships UTF-8 support on MAC OSX by default and ships without UTF-8 support on Win32 (offering UTF-8 binaries on the newlisp.org website). - for a brief, one line description of the package, use: newLISP is a LISP like, general purpose scripting language - for a longer description of the package, use: newLISP is a scripting language for developing web applications and programs in general and in the domains of artificial intelligence (AI) and statistics. (12) COMMENTS ABOUT LIBFFI -------------------------- Here some general comments for usage of libffi in newLISP: The extended ffi requiring libffi and ffi.h for compiling, was only introduced a short time ago in February of 2012. Except for module/gsl.lsp all other modules shipped in the distributions work with the older simple form of import not requiring libffi. The configure utility will pick libffi enabled makefiles only for Windows, OSX and Linux. For all other OS it will pick makefiles not requiring libffi. Ted Walther's configure-alt utility, which automatically configures the memory model (32-bit or 64-bit) never configures for the new extended ffi using libffi. The path for ffi.h chosen in newlisp.h, is only valid for OSX and UBUNTU Linux, for all other OSs the path might be different and has to be adjusted. In any case, libffi from http://sourceware.org/libffi/ is pretty easy to make for most platforms. On Windows, Mac OSX and UBUNTU Linux it is already installed by default. +++