Difference between revisions of "Reducing dependencies in ec"

(what should be excluded from compiler lib)
(Added defining section)
Line 15: Line 15:
  
 
= Compiler library =
 
= Compiler library =
== what should be included in compiler lib ==
+
== Defining the Eiffel Compiler's Job ==
 +
The compiler library, as its name suggests, should only contain the compiler. This question is not deep enough. First we must ask '''What is a compiler'''? The question does not refer to to global notion of what is a compiler, as this has many representation by a number of disparate bodies, but must retain most of its logic. That is to say the answer cannot be - '''a mechanism for instilling an inert object with a form of kinetic energy to aid locomotion''' - this is not a compiler. At better question; '''What should an Eiffel compiler do'''?
 +
 
 +
This page is dedicate to the separation of peripheral tools that used compiled data to produce an output or tools that hook into the compiler to modify the compilation process, from the compiler. Given that, the question '''What should an Eiffel compiler do'''? is discussed in another page [[page]]. The following content will be based on this information.
 +
 
 +
== What should be included in compiler lib ==
 +
 
 
== what should be excluded from compiler lib ==
 
== what should be excluded from compiler lib ==
 
documentation generation
 
documentation generation
  
 
= to be continued =
 
= to be continued =

Revision as of 10:48, 3 November 2006


Overview

Actually the compiler and compiler_api cluster (Src/Eiffel/eiffel and Src/Eiffel/api) are full of unwanted dependencies on other component. What could be really useful is to break those dependencies to be able to have a compiler library (compiler.ecf for instance). Since this is a long task, we'll go step by step, listing the current issue and bad dependencies on other component (for instance compiler depends on graphical classes, or debugger classes which are fake in batch ec .. and this is no good).

So please when changing some code in the compiler or in any component, please try to reduce dependencies, when we'll have a compiler.ecf this will be much easier to make sure no bad dependencies are introduced.

Goal

move out and break bad dependencies from cluster compiler and compiler_api

Current issues

  • profiler, queries and query_language folders should be moved out of Eiffel/api
we should create Eiffel/utilities for instance to welcome those 3 folders.

Compiler library

Defining the Eiffel Compiler's Job

The compiler library, as its name suggests, should only contain the compiler. This question is not deep enough. First we must ask What is a compiler? The question does not refer to to global notion of what is a compiler, as this has many representation by a number of disparate bodies, but must retain most of its logic. That is to say the answer cannot be - a mechanism for instilling an inert object with a form of kinetic energy to aid locomotion - this is not a compiler. At better question; What should an Eiffel compiler do?

This page is dedicate to the separation of peripheral tools that used compiled data to produce an output or tools that hook into the compiler to modify the compilation process, from the compiler. Given that, the question What should an Eiffel compiler do? is discussed in another page page. The following content will be based on this information.

What should be included in compiler lib

what should be excluded from compiler lib

documentation generation

to be continued