Library Categorization

Revision as of 13:28, 18 August 2009 by Bmeyer (Talk | contribs) (Proposed new structure)

The goal of this page is to offer a better file hierarchy for Eiffel libraries included in EiffelStudio. Currently (as of EiffelStudio 6.4 and older) you have a flat representation of libraries under $ISE_LIBRARY and they are represented by their name. Our goal is to provide a hierarchy based on what they provide. Our inspiration is the FreeBSD ports hierarchy which is only one level deep.

In addition to the categorization, we will add some suffix to the library name so that we can clearly check the status of the library:

  • no suffix: Eiffel Software endorsed and supported library.
  • -contrib: externally contributed library not supported by Eiffel Software.
  • -unstable: library available to user but beware that it might change its interface from release to release.

Here is the list of libraries included flat in EiffelStudio 6.4:

  • api_wrapper: Make it easy to call C routines from dynamically loaded shared libraries
  • argument_parser: Parsing the command line arguments of a program
  • base: Kernel library classes, data structure, reflection, I/O
  • com: COM technology
  • diff: Diff and patch facilities
  • docking: Facility to have a customizable UI.
  • Eiffel2Java: Calling Java from Eiffel
  • encoding: Transforming text in one encoding to another encoding
  • event: Low level mechanism to receive a UI event when a file/pipe has something new.
  • gobo: Gobo
  • gobo_extension: ISE gobo extensions
  • graph: Representation of graph in UI (See diagram tool in Eiffel Studio).
  • i18n: Internationalization library:
  • lex: lexical analysis
  • memory_analyzer: Memory analysis
  • net: Networking library
  • parse: Parsing:
  • preferences: Facility to store user preferences
  • process: Facility to start and follow processes
  • store: Relational database access
  • testing: Testing facility
  • thread: Threading in Eiffel
  • time: Time facility
  • uuid: UUID generation facility
  • vision2: Platform independent UI toolkit
  • vision2_extension: Extension to Vision2
  • web: CGI facility for Eiffel
  • wel: UI toolkit for Windows

Proposed new structure

It is a two level structure where libraries are always at the second level.

  • data
  • database
  • ecli-contrib: ODBC only database access
  • store: Relational database access
  • data_structures
  • adt
  • base: Kernel library classes, data structure, I/O
  • event: Low level mechanism to receive a UI event when a file/pipe has something new.
  • language_interfaces: Interact with other programming languages easily from Eiffel.
  • C
  • api_loader: Make it easy to call C routines from dynamically loaded shared libraries
  • COM
  • com: COM technology
  • Java
  • Eiffel2Java: Calling Java from Eiffel
  • network
  • socket
  • net: Networking library
  • runtime
  • memory
  • memory_analyzer: Memory analysis
  • process
  • argument_parser: Parsing the command line arguments of a program
  • process: Facility to start and follow processes
  • reflection
  • concurrency
  • thread: Threading in Eiffel
  • testing
  • framework
  • testing: Testing facility
  • text
  • encoding
  • encoding: Transforming text in one encoding to another encoding
  • internationalization
  • i18n: Internationalization library
  • lexer
  • lex: EiffelLex
  • parser
  • parse: EiffelParse
  • utilities
  • diff: Diff and patch facilities
  • ui
  • drawing
  • graph: Representation of graph in UI (See diagram tool in EiffelStudio)
  • interface
  • docking: Facility to have a customizable UI
  • preferences: Facility to store user preferences
  • toolkit
  • vision2: Platform independent UI toolkit
  • vision2_extension: Extension to Vision2
  • wel: UI toolkit for Windows
  • utilities
  • general
  • uuid: UUID generation facility
  • time
  • time: time and date
  • web
  • cgi
  • web: CGI facility for Eiffel
  • framework
  • xebra: Eiffel Server Pages