/[eiffelstudio]/branches/CAT_mono/Src/Eiffel/eiffel/genericity/formal_i.e
ViewVC logotype

Log of /branches/CAT_mono/Src/Eiffel/eiffel/genericity/formal_i.e

Parent Directory Parent Directory | Revision Log Revision Log


Links to HEAD: (view) (annotate)
Sticky Revision:

Revision 69868 - (view) (annotate) - [select for diffs]
Modified Fri Aug 3 22:28:26 2007 UTC (12 years, 4 months ago) by martins
File length: 7126 byte(s)
Diff to previous 69629
enabled more types to store monomorph information

Revision 69629 - (view) (annotate) - [select for diffs]
Modified Mon Jul 23 21:36:18 2007 UTC (12 years, 4 months ago) by manus
File length: 7112 byte(s)
Diff to previous 63371
Creation of CAT_mono branch to implement variant/invariant proposal

Revision 63371 - (view) (annotate) - [select for diffs]
Modified Thu Sep 7 22:37:35 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/genericity/formal_i.e
File length: 7112 byte(s)
Diff to previous 58325
Fixed test#incr068 by first:
- renaming `is_valid' into `is_consistent' since it only checks the validity of TYPE_I objects.
- adding `is_valid' to TYPE_I which takes a CLASS_C as argument. Now is_valid will check that if
  you have a formal, then the CLASS_C has generics. Otherwise it is not valid.
- updating the pattern code to use `is_valid' instead of `is_consistent'.


Revision 58325 - (view) (annotate) - [select for diffs]
Modified Thu Apr 20 16:05:16 2006 UTC (13 years, 7 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/genericity/formal_i.e
File length: 6920 byte(s)
Diff to previous 58027
Moved trunk/Src/bench/Eiffel to trunk/Src/Eiffel.

Revision 58027 - (view) (annotate) - [select for diffs]
Modified Wed Apr 5 07:08:57 2006 UTC (13 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 6920 byte(s)
Diff to previous 57371
Fixed mixing paranthesis in indexing clause for the licensing.
Added missing license reference in newly created Eiffel classes.


Revision 57371 - (view) (annotate) - [select for diffs]
Modified Wed Mar 8 00:05:46 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 6910 byte(s)
Diff to previous 56708
Refactoring which separate TYPE_AS from TYPE_A.
* The TYPE_AS classes specific to the compiler have been removed, we now use the one from the
  parser cluster. Only INTEGER_CONSTANT and FORMAL_CONSTRAINT_AS are compiler specific, but defined
  as descendants of INTEGER_AS and FORMAL_DEC_AS.
* The return type and arguments' type are of type TYPE_A, which help us in removing many calls to
  `actual_type' when the purpose was to get the TYPE_A instance as statically it was a TYPE_AS, but
  dynamically it was TYPE_A.
* Rewritten the way we go from TYPE_AS to TYPE_A. This is now done in two steps.
  1 - convert TYPE_AS into TYPE_A using the AST_TYPE_A_GENERATOR visitor. For Bits symbol and anchors
      we get an UNEVALUATED_XX version.
  2 - evaluate and check validity of TYPE_A we obtained by 1), this is done using TYPE_A_CHECKER.
      TYPE_A_CHECKER is modular in the sense that it can be configured to trigger or not errors.
	  Useful to disable when we are in part of the UI of EiffelStudio who does not care about an
	  error reporting.
* Thanks to the above refactoring, I fixed eweasel tests: test#valid104, test#valid131, test#valid135.
  It was due to a bug that when solving an anchor type, we did not update `feature_id', as a consequence
  a comparison would yield False instead of True, because they were referring to the same anchor.
* In TYPE_A, try to add some preconditions to `associated_class' and fix all incorrect usage of it.
  Use `is_valid' a lot to ensure that we have a valid type (used to check validity of types in
  inheritance clause and constraints).
* Changed formatting so that we see G#x and arg#x (whereas it was Generic #x, Formal #x and arg # x)
  to make things more compact.
* Updated all the other part of EiffelStudio that depended on the above changes.
* New version number 5.7.0806



Revision 56708 - (view) (annotate) - [select for diffs]
Modified Wed Jan 25 10:54:16 2006 UTC (13 years, 10 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 6916 byte(s)
Diff to previous 56535
Added a query to distinguish standalone types.

Revision 56535 - (view) (annotate) - [select for diffs]
Modified Tue Jan 17 01:37:10 2006 UTC (13 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 6793 byte(s)
Diff to previous 56396
Added text of the GPL license to all classes of the compiler.


Revision 56396 - (view) (annotate) - [select for diffs]
Modified Wed Dec 28 12:57:04 2005 UTC (13 years, 11 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5388 byte(s)
Diff to previous 56356
Used a new feature to evalute type of a formal generic at run-time taking into account expandedness status of Current.

Revision 56356 - (view) (annotate) - [select for diffs]
Modified Fri Dec 23 11:15:48 2005 UTC (13 years, 11 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5927 byte(s)
Diff to previous 55865
Added a feature to evaluate the type of an expression in a given class
assuming that the context type is fixed. This is used to evaluate types in
the code of inherited features generated for expanded types.
Changed code generation for creation to take expandedness status of the
creation type into account.
Added a feature that loads a current object as a reference one regardless
of its actual expandedness status.
Added features to evaluate context type of a call as well as a type from a
possibly inherited code in the context type for which the code generation
is performed.
Taken expandedness status of a root class into account.


Revision 55865 - (view) (annotate) - [select for diffs]
Modified Wed Nov 23 12:25:42 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5704 byte(s)
Diff to previous 51968
Moved evaluation of ATTR_DESC to appropriate TYPE_I.


Revision 51968 - (view) (annotate) - [select for diffs]
Modified Thu Jun 9 21:52:27 2005 UTC (14 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5644 byte(s)
Diff to previous 45562
Improved code generation so that creating a NATIVE_ARRAY [G] where G is
  a formal generic parameter will properly find out the type of G in the
  current context and create the correct NATIVE_ARRAY type instance.


Revision 45562 - (view) (annotate) - [select for diffs]
Modified Sat Sep 11 23:16:11 2004 UTC (15 years, 2 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5327 byte(s)
Diff to previous 43828
Fixed errors reported by gelint since our compiler does not do yet system
validity checking (i.e. flat degree 3 checking).


Revision 43828 - (view) (annotate) - [select for diffs]
Modified Tue Jun 15 18:15:36 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5333 byte(s)
Diff to previous 43156
Redefined `dump' in GEN_TYPE_I to be correct, that is to say it will display
  the actual generic derivation, i.e. type of `associated_class_type'.
Changed signature of `instantiation_in' and `complete_instantiation_in' to
  take a CLASS_TYPE rather than a GEN_TYPE_I. This made a huge simplification
  in the code and made it clearer to understand that it was only used to find
  out the type in a given generic derivation and not in any kind of `GEN_TYPE_I'.
  By doing this work, we were able to easily fix eweasel test `exec181'.
In FORMAL_I, it showed that `complete_instantiation_in' did not have
  to do any special work, it just needed to take the information directly
  from the CLASS_TYPE_.
It enabled us to have a proper implementation of `generic_derivation' for
  generic types where `meta_generic' and `true_generics' are properly initialized.
New creation procedure for GEN_TYPE_I and descendants to help us add some
  invariants about `meta_generic' and `true_generics'.


Revision 43156 - (view) (annotate) - [select for diffs]
Modified Fri May 21 23:45:44 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5472 byte(s)
Diff to previous 43084
Cosmetic in code generation, now spaces after the comma in generation of type arrays
  used for generic conformance.


Revision 43084 - (view) (annotate) - [select for diffs]
Modified Tue May 18 04:14:09 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5464 byte(s)
Diff to previous 42865
Used two words names instead of just one for `put_xx', `read_xx' and `last_xxx' routines.
Used specific `put_xxx_id' routines to generate runtime IDs. This removes those
  very annoying `- 1' in the code because the runtime and the compiler are not
  indexed the same way.


Revision 42865 - (view) (annotate) - [select for diffs]
Modified Thu Apr 29 18:58:24 2004 UTC (15 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5440 byte(s)
Diff to previous 42638
Reduced code duplication between `cecil_value' and `sk_value', and between
`generate_cecil_value' and `generate_sk_value' as they are very similar.
Ensured that we do not generate `SK_DTYPE' anymore, but `SK_REF' instead.


Revision 42638 - (view) (annotate) - [select for diffs]
Modified Fri Apr 9 03:16:55 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5500 byte(s)
Diff to previous 42412
Implemented constraints that are either reference or expanded.


Revision 42412 - (view) (annotate) - [select for diffs]
Modified Fri Mar 26 03:27:00 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5038 byte(s)
Diff to previous 41826
Fixed incorrect specification of `description' for a formal generic parameter.
  It should be an ATTR_DESC, not an INTEGER_DESC.


Revision 41826 - (view) (annotate) - [select for diffs]
Modified Sat Mar 6 01:57:35 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 5041 byte(s)
Diff to previous 35418
Defined `tuple_code'.
Defined `name' which is used by `dump' now.
Removed `c_string_id' which was not used.
Fixed `complete_instantiation_in' so that when the generic parameter is
  expanded, then we return the type of the expanded and not Current. Before
  it was only done for basic type.
Changed encoding of FORMAL_I parameter for generic conformance. Instead of
  being `-32 - position', it is a sequence of {FORMAL_TYPE, position}. It enables
  us to free many `int16' values and therefore we can theoretically almost reach
  the 65535 types in an Eiffel system (this is not yet possible because the runtime
  is still using a `int16' and not `uint16').


Revision 35418 - (view) (annotate) - [select for diffs]
Modified Fri Jan 17 23:20:42 2003 UTC (16 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 4326 byte(s)
Diff to previous 33952
Removed post-condition as sometime we can go into this situation. For example
when compiling the ASSIGN_ATTEMPT class from Vision2 when using a C external.


Revision 33952 - (view) (annotate) - [select for diffs]
Modified Fri Aug 23 16:49:17 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 4349 byte(s)
Diff to previous 31541
Changed signature of `il_type_name' so that it can take a prefix, the purpose
was to move code from CLASS_TYPE into CL_TYPE_I. That way we can generate
a correct `il_type_name' for native arrays. Not doing it was basically
generating a class name that does not match what we were getting from CLASS_TYPE.


Revision 31541 - (view) (annotate) - [select for diffs]
Modified Tue Apr 16 00:30:54 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 4330 byte(s)
Diff to previous 30292
Implemented `element_type', new abstract feature of TYPE_I.


Revision 30292 - (view) (annotate) - [select for diffs]
Modified Mon Jan 21 02:24:48 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 4180 byte(s)
Diff to previous 30169
Changed class name FORMAL_ATTRIBUTE_I into TYPE_FEATURE_I.
Cosmetics.


Revision 30169 - (view) (annotate) - [select for diffs]
Modified Fri Jan 11 01:28:57 2002 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 4180 byte(s)
Diff to previous 29940
Addeg `generate_gen_type_il' in TYPE_I and redefined it in descendants. This is
  used for generic conformance in IL code generation where we generate in IL
  stream the data about the type being analyzed. This data is then used for creation
  of objects or reverse assignment.
In CL_TYPE_I added inheritance to `DEBUG_OUTPUT' so that we can see the associated
  class name in debugger.
Cosmetics.


Revision 29940 - (view) (annotate) - [select for diffs]
Modified Thu Dec 27 01:51:57 2001 UTC (17 years, 11 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 3095 byte(s)
Diff to previous 26913
Cosmetics and rearrangement of feature clauses with additions of some assertions
to make code more readable.


Revision 26913 - (view) (annotate) - [select for diffs]
Modified Sun Aug 12 23:50:20 2001 UTC (18 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 2449 byte(s)
Diff to previous 12176
Merged branch `dev46_manu' to the trunc.


Revision 12176 - (view) (annotate) - [select for diffs]
Modified Sat Dec 5 19:51:46 1998 UTC (21 years ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 2088 byte(s)
Diff to previous 11599
First implementation of TUPLE and ROUTINE OBJECT.
Now we can have in the Eiffel Code:
	~r
	~{A}r


Revision 11599 - (view) (annotate) - [select for diffs]
Modified Tue Oct 13 01:21:14 1998 UTC (21 years, 2 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 2228 byte(s)
Diff to previous 11218
Changed the way how to generate a C file. We are now using a string buffer
to bufferize all the IO transfers.


Revision 11218 - (view) (annotate) - [select for diffs]
Modified Fri Sep 4 02:24:57 1998 UTC (21 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 2198 byte(s)
Diff to previous 10818
Improved the speed of generic conformance by adding some static structure in
the C generated code.


Revision 10818 - (view) (annotate) - [select for diffs]
Modified Thu Jul 30 20:33:23 1998 UTC (21 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 2153 byte(s)
Diff to previous 9655
Add the generic conformance to the compiler


Revision 9655 - (view) (annotate) - [select for diffs]
Modified Sun Mar 15 02:15:49 1998 UTC (21 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 1606 byte(s)
Diff to previous 3652
Cosmetics
Changed somehow the interface of basic types *_I


Revision 3652 - (view) (annotate) - [select for diffs]
Modified Mon Jan 15 15:32:22 1996 UTC (23 years, 10 months ago) by ericb
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 1631 byte(s)
Diff to previous 3636
new abstractions for system counters (class ids and type ids)


Revision 3636 - (view) (annotate) - [select for diffs]
Modified Mon Jan 15 12:06:48 1996 UTC (23 years, 10 months ago) by guusl
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 1632 byte(s)
Diff to previous 3188
output done through STRUCTURED_TEXT instead of OUTPUT_WINDOW


Revision 3188 - (view) (annotate) - [select for diffs]
Modified Tue Nov 21 16:55:54 1995 UTC (24 years ago) by dinov
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 1657 byte(s)
Diff to previous 1204
different output routines


Revision 1204 - (view) (annotate) - [select for diffs]
Modified Wed Oct 5 00:16:03 1994 UTC (25 years, 2 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 1666 byte(s)
Diff to previous 621
array optimization


Revision 621 - (view) (annotate) - [select for diffs]
Modified Thu Jul 14 21:37:03 1994 UTC (25 years, 5 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 1586 byte(s)
Diff to previous 605
*** empty log message ***


Revision 605 - (view) (annotate) - [select for diffs]
Modified Tue Jun 28 16:58:24 1994 UTC (25 years, 5 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 1584 byte(s)
Diff to previous 552
*** empty log message ***


Revision 552 - (view) (annotate) - [select for diffs]
Modified Wed May 11 11:14:08 1994 UTC (25 years, 7 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 1589 byte(s)
Diff to previous 508
*** empty log message ***


Revision 508 - (view) (annotate) - [select for diffs]
Modified Mon Mar 28 11:18:45 1994 UTC (25 years, 8 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 1442 byte(s)
Diff to previous 18
*** empty log message ***


Revision 18 - (view) (annotate) - [select for diffs]
Added Fri Mar 12 17:44:01 1993 UTC (26 years, 9 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/formal_i.e
File length: 1381 byte(s)
Initial revision


This form allows you to request diffs between any two revisions of this file. For each of the two "sides" of the diff, enter a numeric revision.

  Diffs between and
  Type of Diff should be a

  ViewVC Help
Powered by ViewVC 1.1.23