File:  [local] / rpl / README
Revision 1.1: download - view: text, annotated - select for diffs - revision graph
Tue Jan 26 15:22:44 2010 UTC (14 years, 3 months ago) by bertrand
Branches: MAIN
CVS tags: HEAD
Initial revision

    1: ================================================================================
    2:     RPL/2 (R)
    3: ================================================================================
    4: 
    5: --------------------------------------------------------------------------------
    6:     WARNING :
    7: 
    8:     LESSTIF IS BROKEN AND CORRUPTS HEAP. PLEASE, DO NOT USE LESSTIF INSTEAD
    9:     REGULAR MOTIF LIBRARIES!
   10: 
   11:     I SHALL NOT ACCEPT ANY BUG REPORT FROM USERS THAT HAVE BUILD RPL/2 WITH
   12:     LESSTIF LIBRAIRIES SINCE OPENMOTIF IS AVAILABLE.
   13: --------------------------------------------------------------------------------
   14: 
   15:     RPL/2 signifies Reverse Polish Lisp/2. This language is obvious derivated
   16: from the first RPL written by Hewlett-Packard for its 28S calculator. Thus,
   17: this language is a half-compiled high level language which can perform
   18: symbolic and scientific computations.
   19: 
   20:   * RPL/2 is known to run on :
   21: 
   22:     - Linux (kernel 2.6.12 and above) on i386, amd64, ppc32, sparc32,
   23:         sparc64, alpha. Test distribution is Debian. Warning, you have to
   24:         use NPTL, not LinuxThreads due to a bug in sem_post() that is not
   25:         async safe.
   26:     - Solaris 9 and above on i386, amd64, sparc32 (only Solaris 9) and sparc64.
   27:         It can be built out of the box on Solaris in a 32bits userland. For a
   28:         64bits executable, you have to modify some generated makefiles. See
   29:         64bits on Solaris.
   30:     - FreeBSD 7.0 on i386.
   31:     - NetBSD 4.0 and above on sparc32 with a restriction. NetBSD's sigpending
   32:         is broken and it is impossible to use DETACH intrinsic. Bug report
   33:         has been done and this bug should be fixed in next NetBSD release.
   34: 
   35:   * RPL/2 should run on :
   36: 
   37:     - HP-UX (10.20 and above), but not tested for a long time.
   38:     - Linux (2.6.12 and above) on ppc64 and other hardware (arm, hppa...) or
   39:         with other distributions than Debian.
   40:     - FreeBSD 7.0 and above on other architecture than i386.
   41:     - NetBSD 4.0 and above on other architecture than sparc32 with restriction
   42:         due to sigpending bug.
   43:     - Mac OS X.
   44: 
   45:     Any information about RPL/2 on these last operating systems are welcome.
   46: 
   47:   * RPL/2 is not supported on :
   48: 
   49:     - OpenBSD due to a major bug in sigaltstack syscall when a program is
   50:         linked with -lthread. As this bug comes from OpenBSD libraries,
   51:         OpenBSD port has to wait for a fixed sigaltstack.
   52:     - OpenVMS (work in progress) on both VAX and Alpha due to some bugs in GNV.
   53:     - Hurd (vaporware...).
   54: 
   55:   * RPL/2 shall never be supported on :
   56: 
   57:     - Cygwin due to some troubles between Cygwin Posix subsystem and Windows.
   58:         You can try, but I shall never support Cygwin. If someone proposes
   59:         patches to build RPL/2 on Cygwin, I won't modify official RPL/2 source
   60:         tree, but only propose these patches against official tarball.
   61:     - Windows (all versions).
   62:     - OS/2 and eComStation.
   63:     - Mac OS preX.
   64: 
   65:     Tools directory contains some libraries that are normally provided by
   66:     all Posix systems. These libraries are built during build process
   67:     and RPL/2 is statically linked with them because I have seen that on
   68:     several systems, some Posix libraries have strange 'features'...
   69: 
   70:     On all systems, you must install GNU make and you should install
   71:     gcc/g++/gfortran (minimal release : 4.0.0). It is possible to build
   72:     RPL/2 with some other compilers (for example cc and f95 from SunStudio,
   73:     or cc and f95 from Digital^WCompaq^WHP) but I do not test all potential
   74:     combinaisons.
   75: 
   76:   * 64 bits on Solaris (are you sure that you need 64bits wide RPL/2 ?)
   77: 
   78:     You have to configure RPL/2 with some user defined variables.
   79: 
   80:     CFLAGS="$CFLAGS -m64" CXXFLAGS="$CXXFLAGS -m64" FCFLAGS="$FCFLAGS -m64" \
   81:             FFLAGS="$FFLAGS -m64" LDFLAGS="$LDFLAGS -m64" ./configure (options)
   82: 
   83:     If you want to use mysql or postgresql support, you should obtain 64bits
   84:     binary executables, libraries and daemons. PostgreSQL 8.3.5 does not compile
   85:     on Solaris 10 in 64bits mode with gcc/GNU ld (due to a strange bug, ld
   86:     tries to build a 32bits wide library with 64bits objects even if -m64 is
   87:     specified on command line...). I have not tried mysql.
   88: 
   89:     If you want to use rplc, you have to use GNU ld, not Solaris ld, due to
   90:     another bug that avoid symbol exportation. You have to check that rpl
   91:     is linked with libmtmalloc and not with libmalloc from libc because there
   92:     is another bug in Solaris' libc : free() can enter in a deadlock
   93:     (internal locked mutex).
   94: 
   95:     Of course, all 64bits libraries have to be accessible by LD_LIBRARY_PATH.
   96: 
   97: tchaikovski:[/usr/shared-apps/bin] > file rpl
   98: rpl: ELF 64-bit MSB executable SPARCV9 Version 1, dynamically linked,
   99:      not stripped
  100: 
  101:     Very easy^Wnice, isn't it ?
  102: 
  103:     J. Bertrand <joel.bertrand@systella.fr>

CVSweb interface <joel.bertrand@systella.fr>