# Overview of ECLiPSe components and assignment of maintainers

Author: Joachim Schimpf
Date: 2002-02-07

## Purpose

This document gives an overview of all components of the ECLiPSe system and assigns two or more maintainers to each component. The intentions are

- every change by one maintainer is reviewed (possibly after check-in) by the/an other maintainer
- every change by a non-maintainer should be reviewed by a maintainer before check-in
- at every team meeting, we go through the recent CVS commit log and make maintainers aware of what needs to be reviewed

Abbreviations used:

- amc - Andy Cheadle
- ajs - Andrew Sadler
- hhe - Hani El-Sakkout
- ks - Kish Shen
- mgw - Mark Wallace
- josh - Josh Singer
- js - Joachim Schimpf
- sn - Stefano Novello
- wh - Warwick Harvey

# ECLiPSe Kernel Components

Component | Description | Files in | Documentation | Test | Owner | We support | Maint 1 | Maint 2
Arithmetic | All ground arithmetic, including GNU multi precision library, used for Eclipse bignums and rationals | Gmp/* Kernel/src/{emu,bip_arith,bigrat,intervals}.c | Internals Manual |  | ICP LGPL | yes | js | wh
Pds,Alog,Usc | Parallel system support | Pds/ Alog/ Usc/ | Reports by Kees Schuerman |  | ICP | no | - | -
Shm | Memory management | Shm/ | DOC file |  | ICP | yes | js | amc
WinMSC | Windows Visual C build structure for Eclipse | WinMSC/ | source |  | ICP | yes | js | wh
INSTALL | Global install and build structure, makefiles | */INSTALL,BUILD,Makefile | Memo |  | ICP | yes | wh | ajs
Control | All solutions, suspensions, priorities, events etc | Kernel/src/emu*, bip_control Kernel/lib/setof | Internals Manual |  | ICP | yes | js | ks
Compiler (old) | Micha Meier's compiler, implemented in C | sepia/src/head,body,pass*,procedure,section | source Micha's papers |  | ICP | yes | - | -
Compiler (new) | New compiler, implemented in Eclipse | Compiler/* | Implementation Report |  | ICP | yes | js | ks
Heap Storage | Everything related to nonlogical storage | Kernel/src/bip_record, property, proc_desc, bip_array, dynamic | Internals Manual |  | ICP | yes | js | ks
Term Manip | All non-numeric operations (strings etc) | Kernel/src/bip_strings,tconv,comp | Internals Manual |  | ICP | yes | js | ks
Low level I/O | Buffers, files, sockets, streams | Kernel/src/io, bip_io | Internals Manual |  | ICP | yes | js | ajs
Read/Write | lexer, parser, writer | Kernel/src/lex, read, write, operator | Internals Manual |  | ICP | yes | js | ks
Modules | dictionary, procedure and property descriptors | Kernel/src/proc_desc,bip_module,dict | Internals Manual |  | ICP | yes | js | ks
Engine | Emulator, garbage collector, stack management | Kernel/src/emu*, gc*, mem* | Internals Manual |  | ICP | yes | js | ks amc
OS interface | Operating system interface predicates | Kernel/src/os_support, bip_misc | source |  | ICP | yes | js | ks
Compiler support | Assembler, compiled file storage | Kernel/lib/fcompile,asm | source,eci |  | ICP | yes | ks | js
Testing | Test harness and utilities | Tests/aitch, test_eclipse Kernel/lib/t_all,test_util,timelog | source |  | ICP | yes | wh | js

# ECLiPSe Libraries

Component | Description | Files in | Documentation | Test | Owner | We support | Maint 1 | Maint 2
Clpqr | Simplex solver in Prolog | Clpqr/ | Paper by Holzbaur |  | 3rd party | no | - | -
Contrib | DEC10 Prolog libraries | Contrib/ | source, .hlp files |  | public domain | no | - | -
Oci | Oracle interface | Oci/ | libman/oci.tex |  | PTL | no | sn | -
CHR | Constraint handling rules | ecrc_solvers/chr | Library Manual |  | ICP | no | - | -
ECH | New constraint handling rules | icparc_solvers/ech | Library Manual |  | ICP | yes | ks | ajs
Conjunto | Set solver | ecrc_solvers/ | Library Manual |  | ICP | no | - | -
Grace | Visualiser | ecrc_solvers/grace/ |  |  |  | no | - | -
Propia | Generalised propagation | ecrc_solvers/ | Library Manual |  | ICP | yes | mgw | wh
Global FD/IC | Global fd constraints | icparc_solvers/{edge_finder, cumulative, fd_global} | Library Manual |  | ICP | yes | js | ajs
Eplex | Cplex/Xpress interface | icparc_solvers/eplex* | Library Manual |  | ICP | yes | ks | js
Probing | Probing for scheduling | icparc_solvers/probe* | Library Manual |  | ICP | yes | mgw | wh
Repair | Repair/tentative value library | icparc_solvers/repair* | Library Manual |  | ICP | yes | js | mgw sn/hhe
Ria | Real interval constraints | icparc_solvers/ria* | Library Manual |  | ICP | yes | js | wh
IC | Interval constraints | icparc_solvers/ic* | Library Manual |  | ICP | yes | wh | ajs
Search samples | Code templates and examples | icparc_solvers/cbs,wcs,knapsack,repair_fd | Tutorial |  | ICP | no | mgw | ks
Graph alg | Graph representation and algorithms library | icparc_solvers/graph_algorithms | eci |  | ICP | yes | js | ajs
daVinci | DaVinci interface | pt_libraries | eci |  | PTL | yes | js | hs ks
Search tools | Search library for fd, branch-and-bound | pt_libraries icparc_solvers/branch_and_bound | eci |  | PTL | yes | js | hs wh
Project Tools |  | pt_libraries/pretty_printer,... | eci |  | PTL | yes | js | hs ks
Utilities | Various small libraries | Kernel/lib/calendar, lists, shadow_cons, var_names | source |  | ICP | yes | js | ks mgw
FD | Finite domain solver | Kernel/lib/fd | source |  | ICP | yes | wh | js
Collections | Abstract data types for collections | Kernel/lib/hash mercury/m_map, m_tree234 | source |  | ICP LGPL | yes | wh | amc
Compatibility Libraries | Compatility packages for other, mainly Prolog systems | Kernel/lib/bsi,cprolog,quintus,sicstus,iso | source,eci |  | ICP | yes | js | ks
FD Sets | Finite integer set solver | icparc_solvers/fd_sets | source,eci |  | ICP | yes | js | wh

# ECLiPSe Interfacing

Component | Description | Files in | Documentation | Test | Owner | We support | Maint 1 | Maint 2
JavaInterface | Java embedding and remote interface | JavaInterface/* | Embedding Manual, javadoc |  | PTL | yes | josh | ajs
VBInterface | Visual Basic interface | VBInterface/ | Embedding Manual |  | ICP | no | sn | -
Tcl Interface | Tcl/Tk embedding interface | lib_tcl/eclipse.tcl | Embedding Manual |  | ICP | yes | ks | js
RemoteInterface | Generic remote interface | Kernel/lib/ | Embedding Manual |  | ICP | yes | ks | josh
C/C++ Interface | Low level embedding and external predicate interface | Kernel/src/embed,eclipse_cc,external,embed | Embedding Manual |  | ICP | yes | ajs | sn

# ECLiPSe Development Tools

Component | Description | Files in | Documentation | Test | Owner | We support | Maint 1 | Maint 2
Opium | Debugging system | Opium/ | Papers, reports, manual by Mireille Ducasse |  | public domain | no | - | -
Toplevel | Interactive toplevel | Kernel/lib/toplevel | source |  | ICP | yes | js | ks
Debugger and Profiler | The box model tracer with its user interfaces | Kernel/lib/tracer*, profile, lib_tcl/eclipse_tools | source |  | ICP | yes | js | ks
Documenter | Tools to extract interfaces and generate documentation | Kernel/lib/document | source |  | ICP | yes | js | ks
TkEclipse | The development GUI inTCL/Tkl | lib_tcl/* | source | script | ICP | yes | ks | js
Visualisation Tools | Development tools for visualising constraint programming and search | Visualisation/* | tbd |  | PTL | yes | ajs | amc