# ECLiPSe Runtime Subset

Applies to ECLiPSe version: 5.3
Author: Joachim Schimpf

## Overview

We define a subset of the ECLiPSe system which is appropriate and supported for the purpose of running and delivering current (and hopefully future) ECLiPSe-based applications.

Informally, the runtime subset consists of

- the eclipse kernel
- a basic set of eclipse libraries
- the libraries for embedding into C/C++
- the java interface
- a standalone executable
- the flexlm licensing functionality

The runtime subset does not contain

- any sources
- any development/debugging tools
- unsupported/third party libraries
- Tcl/Tk interface
- Cplex/Xpress interfaces (these are separately packaged)

## Files in the runtime subset (ECLiPSe 5.3)

The list below defines the runtime subset for ECLiPSe 5.3 in terms of the names of the files in the runtime distribution.
Contents of eclipse_rt.tgz:

> `ARCH`
> `RUNME`

> `lib/eclipse.jar`

> `lib/${ARCH}/${LIBPREFIX}ec_java.${LIBSUFFIX}`
> `lib/${ARCH}/${LIBPREFIX}ec_java_load.${LIBSUFFIX}`
> `lib/${ARCH}/${LIBPREFIX}eclipse.${LIBSUFFIX}`
> `lib/${ARCH}/${LIBPREFIX}gmp*.${LIBSUFFIX}*`
> `lib/${ARCH}/bitmap.${SOSUFFIX}`
> `lib/${ARCH}/eclipse.exe`
> `lib/${ARCH}/edge_finder.${SOSUFFIX}`
> `lib/${ARCH}/ic.${SOSUFFIX}`
> `lib/${ARCH}/pteclipse.${LIBSUFFIX}`

> `lib/anti_unify.eco`
> `lib/apply.eco`
> `lib/apply_macros.eco`
> `lib/bin_info.eco`
> `lib/branch_and_bound.eco`
> `lib/calendar.eco`
> `lib/changeset.eco`
> `lib/cumulative.eco`
> `lib/ech.eco`
> `lib/eclipse_language.eco`
> `lib/edge_finder.eco`
> `lib/edge_finder3.eco`
> `lib/edge_finder_common.eco`
> `lib/fd.eco`
> `lib/fd_arith.eco`
> `lib/fd_chip.eco`
> `lib/fd_domain.eco`
> `lib/fd_elipsys.eco`
> `lib/fd_global.eco`
> `lib/fd_search.eco`
> `lib/fd_sets.eco`
> `lib/fd_util.eco`
> `lib/fromonto.eco`
> `lib/graph_algorithms.eco`
> `lib/hash.eco`
> `lib/heaps.eco`
> `lib/ic.eco`
> `lib/ic_constraints.eco`
> `lib/ic_kernel.eco`
> `lib/ic_search.eco`
> `lib/iso.eco`
> `lib/joop_boot.eco`
> `lib/kernel.eco`
> `lib/linearize.eco`
> `lib/lists.eco`
> `lib/make_overlap_bivs.eco`
> `lib/matrix_util.eco`
> `lib/notinstance.eco`
> `lib/numbervars.eco`
> `lib/ordset.eco`
> `lib/probe.eco`
> `lib/probe_search.eco`
> `lib/probe_support.eco`
> `lib/probing_for_scheduling.eco`
> `lib/propia.eco`
> `lib/queues.eco`
> `lib/range.eco`
> `lib/repair.eco`
> `lib/ria.eco`
> `lib/shadow_cons.eco`
> `lib/sorts.eco`
> `lib/strings.eco`
> `lib/suspend.eco`
> `lib/var_name.eco`

> `lib/version.pl`

The file names contain variables with the following meaning:
${ARCH}
  machine/operating system architecture (sparc_sunos5,sun4,i386_linux,i386_nt,alpha_linux)
${LIBPREFIX}
  "lib" on Unix, empty on Windows
${LIBSUFFIX}
  "a", "so" or "dll"
${SOSUFFIX}
  "so" or "dll"

## Installation of the runtime subset for embedding

If you are going to use ECLiPSe in embedded form, installation only consists of unpacking:

1. Unpack eclipse_rt.tgz
2. Unpack if_xpressXX.tgz or if_cplexXX.tgz if needed

## Installation of the runtime subset if you need an eclipse executable

Unpack as above. If you need a standalone eclipse executable on UNIX:

1. Invoke RUNME and accept the default options (you can do that by calling .`/RUNME </dev/null`, the only non-default you may want is a symbolic path name for the current directory, i.e. ECLIPSEDIR). This will create the executable sh-script
`<installation directory>/bin/${ARCH}/eclipse`
which can then be called directly.
2. Alternatively, you can omit the previous step, set ECLIPSEDIR and LD_LIBRARY_PATH in your environment and call lib/${ARCH}/eclipse.exe directly:
`ECLIPSEDIR=<installation directory>`
`LD_LIBRARY_PATH=${ECLIPSEDIR}/lib/${ARCH}:${LD_LIBRARY_PATH}`
`export ECLIPSEDIR LD_LIBRARY_PATH`
`${ECLIPSEDIR}/lib/${ARCH}/eclipse.exe`
Note that this is essentially the same as what the above sh-script does.

If you need a standalone eclipse executable on Windows:

1. Either make a registry entry HKEY_LOCAL_MACHINE\SOFTWARE\IC-Parc\ECLiPSe\<version> (where <version> is the version number, e.g. 5.3) with a string value that gives the installation directory in Windows path name syntax. Then you can simply execute
`<installation directory>/lib/i386_nt/eclipse.exe`
2. Alternatively, you can omit the registry entry and invoke eclipse.exe with the -D option:
`<installation directory>/lib/i386_nt/eclipse.exe -D <installation directory>`

Note that a standalone eclipse in a runtime installation always needs a `-e <goal>` command line option because it does not contain an interactive toplevel. If this is forgotten you will get the error message
`library not found in ensure_loaded(library(toplevel))`