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

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

Parent Directory Parent Directory | Revision Log Revision Log


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

Revision 69650 - (view) (annotate) - [select for diffs]
Modified Tue Jul 24 17:18:14 2007 UTC (12 years, 4 months ago) by juliant
File length: 21816 byte(s)
Diff to previous 69629
Added monomorph mark for class types, either "frozen" or "invariant".
First (simple) conformance check for monomorphic types.

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: 21305 byte(s)
Diff to previous 67392
Creation of CAT_mono branch to implement variant/invariant proposal

Revision 67392 - (view) (annotate) - [select for diffs]
Modified Tue Mar 20 11:44:05 2007 UTC (12 years, 8 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 21305 byte(s)
Diff to previous 67227
Supported expanded/reference class type mark at run-time in .NET mode
(fixes test#exec211, partially fixes test#exec181, might have fixed
independent serialization when both expanded and reference variants of a
class type are present in the system - no test for that yet).
Changed initialization of generic types so that run-time type information
is computed before a call to their constructors (partially fixes
test#exec181). Removed run-time and generated code that is no longer used
because of this change. Modified run-time and class INTERNAL accordingly.


Revision 67227 - (view) (annotate) - [select for diffs]
Modified Tue Mar 13 01:32:16 2007 UTC (12 years, 9 months ago) by martins
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 21201 byte(s)
Diff to previous 67199
Support for multi constraint generics:
- Central new class is TYPE_SET_A: It provides features for type checking and feature lookup.
  (the TYPE_A interface is not perfectly complete until now)
- Added EXTENDED_TYPE_A: It basically encapsulates a type and a feature renaming.
- Changed parser to accept the new syntax.
- Adapted validity checks for generics to reflect the new rules.
- Changed AST_FEATURE_CHECKER_GENERATOR in particular `process_call' and its siblings
  to select the so called `multi_constrained_static'. This is the actual static type
  of the target. It is done for each access on a multi constraint generic.
- Added error classes VTGC*, VTGD* and VTMC*.
- Changed code which called `constrained_type' feature to make it capable
  of handling multi constraints. This is in most cases achieved through handling these cases
  explicitly: Autocompletion, query language and debugger are not yet adapted and don't work
  properly in the presence of multi constraint formals.
- Changed AST_DECORATED_OUTPUT_STRATEGY and the like to pretty print the multi constraints correctly.

Support for recursive formals:
- I added a second pass AST_FORMAL_GENERICS_PASS2 which handles the registration of suppliers
  and transformation of the types into the right class (formal or class type).

The rest of the changes are targeted to either one of these.


Revision 67199 - (view) (annotate) - [select for diffs]
Modified Mon Mar 12 10:26:03 2007 UTC (12 years, 9 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 21200 byte(s)
Diff to previous 66895
Moved `implemented_type' from CIL_CODE_GENERATOR and CLASS_C to CL_TYPE_I
to simplify the code and avoid potential mistakes when using it.
Supplied context type of the feature source code when generating replicated
features under .NET as otherwise type evaluation might cause a compiler
crash as generic parameters (if any) of the current class type might be
different from those of the source class type (this fixes bug#12219,
test#dotnet050).


Revision 66895 - (view) (annotate) - [select for diffs]
Modified Sun Feb 25 17:11:57 2007 UTC (12 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 20246 byte(s)
Diff to previous 64611
Support for FreeELKS:
- Added byte code for `floor' and `ceiling' operation on real types.
- Made `c_tagged_out' take an EIF_REFERENCE rather than an EIF_OBJECT, updated
  all C code using it accordingly and ANY/ISE_RUNTIME.
- Added `eif_built_in.h' to keep all macros used for external "built_in' features
  not implemented with Eiffel code.
- Added BUILT_IN_AS node for representing external "built_in' features:
  * when a built_in routine is found, we look in $ISE_EIFFEL/studio/built_ins to
    see if it has a corresponding implementation and the FEATURE_I/STD_BYTE_CODE
	is generated from the implementation. Otherwise we consider it as a special
	C routines.
  * In the formatters, we show the actual code of the implementation and not the
    external body, the same for debugging.
- Partial fix for Precursor call when call is made in an expanded class, the ancestor
  version might have non-expanded arguments and return type (e.g. like Current).
- Changed CLASS_TYPE for basic types so that `type_i' is a CL_TYPE_I and not
  a BASIC_I. It solves issues when you have code defined in basic types which
  would not be properly generated. Since it would be generated as if it was a
  normal expanded type but the types where still EIF_XXX instead of EIF_REFERENCE.
  This was needed for FreeELKS since now we have implementation in the basic types.
  Added some queries to CLASS_TYPE to avoid accessing `type' to get the information
  since sometime we still want to know that we are in basic types. Added `basic_type'
  to be used when it is a basic type. It has mostly an implication with .NET code
  generation.
- Updated debugger so that one can debug all features but attributes, deferred and
  constants.


Revision 64611 - (view) (annotate) - [select for diffs]
Modified Thu Oct 26 10:37:41 2006 UTC (13 years, 1 month ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 20209 byte(s)
Diff to previous 64465
Allowed for creation info `like Current' to be set on expanded types to simplify IL code generation for basic types (and first of all for TYPED_POINTER).

Revision 64465 - (view) (annotate) - [select for diffs]
Modified Fri Oct 20 12:53:49 2006 UTC (13 years, 1 month ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 20160 byte(s)
Diff to previous 64191
Supported code generation for basic types, so that they can be attached to
variables of an Eiffel type (e.g., INTEGER_64 to COMPARABLE) preserving
their expanded semantics.
Ensured that a creation information that might come from the code is not
stored in objects for class types that are used for code generation to
avoid problems with using it when not it should not be used.
Corrected code generation for inline agents so that the corresponding
methods are declared before use (it can be important when the agents are
nested, for example).
Added code to store information about local variables that might be
introduced for performing reattachment of an expanded object to a reference
entity in the methods that are generated to support interface of an
inherited class.


Revision 64191 - (view) (annotate) - [select for diffs]
Modified Thu Oct 5 21:04:08 2006 UTC (13 years, 2 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 19895 byte(s)
Diff to previous 63371
Merged from Eiffel_57:
  Fixed `il_type_name' to properly generate the class name when an external class name is
  specified. Before if you specified A.B you would get for the implementation class A.B.Impl
  which does not follow the normal pattern, instead we should get A.Impl.B. This is now the
  case with this fix.


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/cl_type_i.e
File length: 17946 byte(s)
Diff to previous 63370
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 63370 - (view) (annotate) - [select for diffs]
Modified Thu Sep 7 22:33:46 2006 UTC (13 years, 3 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 17936 byte(s)
Diff to previous 62805
Added redefinition of `static_type_id' with a weaker precondition since in
  CL_TYPE_I there is always an associated CLASS_TYPE. This helps us reducing
  the usage of `System.class_type_of_id' which we prefer to avoid.


Revision 62805 - (view) (annotate) - [select for diffs]
Modified Mon Aug 21 12:50:52 2006 UTC (13 years, 3 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 17755 byte(s)
Diff to previous 61575
Factored out code that records type information about generic types in byte code.
Changed implementation of {TYPED_POINTER_I}.type_a to follow the
implementation of {GEN_TYPE_I}.type_a where "meta_generic" is used instead
of "true_generics" (this fixes test#term133).


Revision 61575 - (view) (annotate) - [select for diffs]
Modified Mon Jul 24 12:51:08 2006 UTC (13 years, 4 months ago) by alexk
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 17495 byte(s)
Diff to previous 60999
Introduced a new feature to get a reference variant of a given expanded type to avoid creating BASIC_I instances for reference variants of basic types.

Revision 60999 - (view) (annotate) - [select for diffs]
Modified Thu Jul 6 00:50:32 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 17275 byte(s)
Diff to previous 60994
Fixed eweasel test#exec225 where expanded initialization and creation was done using the
  wrong CL_TYPE_I instance, it was using the one from CLASS_TYPE instead of the real one
  for the local or Result. Now `a_type' is passed as argument and we have a precondition to
  ensure it is a valid type for the current CLASS_TYPE instance.


Revision 60994 - (view) (annotate) - [select for diffs]
Modified Wed Jul 5 20:59:00 2006 UTC (13 years, 5 months ago) by manus
Original Path: trunk/Src/Eiffel/eiffel/genericity/cl_type_i.e
File length: 17266 byte(s)
Diff to previous 58325
Fixed bug#10520 and eweasel test#term142 when `separate' is used and causing `is_reference'
  to be False, when it should have been True. As a consequence we took a complex path in our
  code generation for assignment where we should not have since `separate' is a no-op.


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/cl_type_i.e
File length: 17146 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/cl_type_i.e
File length: 17146 byte(s)
Diff to previous 57781
Fixed mixing paranthesis in indexing clause for the licensing.
Added missing license reference in newly created Eiffel classes.


Revision 57781 - (view) (annotate) - [select for diffs]
Modified Mon Mar 27 17:11:27 2006 UTC (13 years, 8 months ago) by patrickr
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 17136 byte(s)
Diff to previous 56735
New compiler with new configuration system
For now only the batch compiler works


Revision 56735 - (view) (annotate) - [select for diffs]
Modified Thu Jan 26 13:08:50 2006 UTC (13 years, 10 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 17132 byte(s)
Diff to previous 56564
Added a query to indicate if a type is based on a frozen class.

Revision 56564 - (view) (annotate) - [select for diffs]
Modified Tue Jan 17 15:00:56 2006 UTC (13 years, 10 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 17011 byte(s)
Diff to previous 56535
Added a feature to replace "like Current" with the supplied context class
type.
Added a feature to determine if a generic type has a given class type as an
actual parameter.


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/cl_type_i.e
File length: 16644 byte(s)
Diff to previous 56356
Added text of the GPL license to all classes of the compiler.


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/cl_type_i.e
File length: 15239 byte(s)
Diff to previous 56062
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 56062 - (view) (annotate) - [select for diffs]
Modified Thu Dec 8 12:33:35 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 14994 byte(s)
Diff to previous 56011
Extended export status of `declaration_mark' and associated features to simplify its setting from TUPLE_CLASS_B.

Revision 56011 - (view) (annotate) - [select for diffs]
Modified Mon Dec 5 17:36:00 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 14979 byte(s)
Diff to previous 55897
Recorded explicit class type declaration rather than a calculated one to
avoid issues with recompiling classes that change their expandedness
status.
Initialized class types associated with a class using `update_types' to
ensure that all structures (e.g., `derivations') are updated as well.
Used instantiation procedure unconditionally to cover the case of "like
Current" type.
Made a feature `duplicate' available in CL_TYPE_I to avoid using reverse
assignment.
Ensured that parent types are reference.
Created generic attribute descriptor not only for types that depend on
formal generic but also for those depending on anchored type ("like
Current").


Revision 55897 - (view) (annotate) - [select for diffs]
Modified Sat Nov 26 18:55:32 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12849 byte(s)
Diff to previous 55707
Introduced a feature that ensures that attribute description is completely resolved in a sense that it does not depend on class type properties such as formal generics. This can also be used when resolving attributes of type "like Current".

Revision 55707 - (view) (annotate) - [select for diffs]
Modified Fri Nov 11 19:03:48 2005 UTC (14 years, 1 month ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12794 byte(s)
Diff to previous 55396
Removed trailing spaces.


Revision 55396 - (view) (annotate) - [select for diffs]
Modified Thu Oct 27 09:09:39 2005 UTC (14 years, 1 month ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12824 byte(s)
Diff to previous 49446
Changed .NET code generation to generate expanded types as single
classes all the time.


Revision 49446 - (view) (annotate) - [select for diffs]
Modified Thu Mar 24 07:11:22 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12778 byte(s)
Diff to previous 49345
Use new syntax for static calls.


Revision 49345 - (view) (annotate) - [select for diffs]
Modified Mon Mar 21 16:43:52 2005 UTC (14 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12818 byte(s)
Diff to previous 48802
Reuse the computed local variable for better performance in `il_type_name'.


Revision 48802 - (view) (annotate) - [select for diffs]
Modified Mon Feb 28 18:46:52 2005 UTC (14 years, 9 months ago) by raphaels
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12830 byte(s)
Diff to previous 48670
Enabled back "alias" clause on Eiffel classes to force .NET type name. This is needed by the CodeDom Provider (ASP.NET expects the generated type to have a specific name)


Revision 48670 - (view) (annotate) - [select for diffs]
Modified Wed Feb 23 17:46:45 2005 UTC (14 years, 9 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12519 byte(s)
Diff to previous 48204
Added a postcondition to `associated_class_type'.
Reverted to original definition of `has_associated_class_type' as it is
correct given that all class types are registered as required.


Revision 48204 - (view) (annotate) - [select for diffs]
Modified Tue Feb 1 16:11:01 2005 UTC (14 years, 10 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12486 byte(s)
Diff to previous 46609
Changed implementation of `has_associated_class_type' to match
implementation of `associated_class_type'.


Revision 46609 - (view) (annotate) - [select for diffs]
Modified Tue Nov 23 13:23:01 2004 UTC (15 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12475 byte(s)
Diff to previous 44445
Used IL_CASING.type_name to calculate a class type name.


Revision 44445 - (view) (annotate) - [select for diffs]
Modified Wed Jul 21 05:31:04 2004 UTC (15 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12959 byte(s)
Diff to previous 44058
Removed support for `reference X' types:
  - removed `reference_type' from CL_TYPE_I and moved it to BASIC_I, as
    we only need it on basic types to allow an optimized conversion expanded<->reference.
	`reference_type' is deferred in BASIC_I and implemented in each basic type
	class using the _REF class.
  - same for `associated_reference_class_type'.


Revision 44058 - (view) (annotate) - [select for diffs]
Modified Wed Jun 30 23:08:24 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 13405 byte(s)
Diff to previous 44032
Changed `is_generated_as_single_type' to be only true for external classes
  and classes which are `is_single'. All other eiffel classes gets an interface
  and an implementation.
Removed comment on `element_type' about the `is_expanded' case since we partially
  support expanded types in IL code generation now.


Revision 44032 - (view) (annotate) - [select for diffs]
Modified Wed Jun 30 04:19:23 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 13626 byte(s)
Diff to previous 43989
Made sure to generate `Element_type_object' for something declared of type
  ANY. This is because now our ANY and System.Object maps to System.Object
  in the generated code.
Fixed `is_generated_as_single_type' to ensure that it reports proper information
  for already generated types such as .NET external types, and for Eiffel types.
  Note that we commented some code while waiting for a good code generation
  of expanded in .NET.


Revision 43989 - (view) (annotate) - [select for diffs]
Modified Mon Jun 28 20:05:51 2004 UTC (15 years, 5 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 13834 byte(s)
Diff to previous 43828
Single type code generation is not yet perfect especially with inherited
routine using generic types. So we make sure that it is enabled only
when it is necessary.


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/cl_type_i.e
File length: 13752 byte(s)
Diff to previous 43364
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 43364 - (view) (annotate) - [select for diffs]
Modified Sat May 29 22:49:07 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 13628 byte(s)
Diff to previous 43301
Revisited `generate_expanded_creation' and added `generate_expanded_initialization'.
Removed code from CL_TYPE_I and replaced by a call to feature of CLASS_TYPE
  which does the same job, but avoids code duplication.


Revision 43301 - (view) (annotate) - [select for diffs]
Modified Fri May 28 06:29:04 2004 UTC (15 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 15067 byte(s)
Diff to previous 43156
A frozen class does not get generated as a single class now. A frozen class
  is just a class from which you cannot inherit. If one want it to be single,
  he has to inherit from a .NET class.


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/cl_type_i.e
File length: 15088 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/cl_type_i.e
File length: 15083 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/cl_type_i.e
File length: 15027 byte(s)
Diff to previous 42413
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 42413 - (view) (annotate) - [select for diffs]
Modified Fri Mar 26 03:31:02 2004 UTC (15 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 15154 byte(s)
Diff to previous 41824
Moved down `associated_reference_class_type' and `reference_type' from BASIC_I to
  CL_TYPE_I.
Fixed `description' of CL_TYPE_I so that EXPANDED_DESC are now properly created
  using the new `set_cl_type_i' routine of EXPANDED_DESC. Simplified code.


Revision 41824 - (view) (annotate) - [select for diffs]
Modified Sat Mar 6 01:51:40 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 14832 byte(s)
Diff to previous 40771
Made sure that basic types get `is_expanded' set to True.
Switch meaning of `is_expanded' and `is_true_expanded'. Now base types are also `is_expanded'
  and only expanded types that are not basic are `is_true_expanded'.
Added proper redefinition of `generic_derivation', `name' and `instantiation_in'.
Simplified `associated_class_type' since now the expanded and the reference
  version of a class do not use the same CLASS_TYPE instance, therefore no
  special trick is needed before doing the search.
Added `is_generated_as_single_type' for IL code generation to see if a CLASS_TYPE
  should be generated as just a .NET class or as a collection of interface/implementation.
Reviewed naming convention for IL code generation when you use a reference type as expanded
  and vice versa. Now we prepend the class name with either `VALUE_' or `REFERENCE_'.
Added invariant about `class_id' being positive.


Revision 40771 - (view) (annotate) - [select for diffs]
Modified Thu Dec 11 23:36:44 2003 UTC (16 years ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 13991 byte(s)
Diff to previous 39713
Use `twin' instead of `clone' which is now made obsolete.
Use `as_lower' and `as_upper' whenever appropriate instead of cloning and
  then calling `to_lower' or `to_upper'.


Revision 39713 - (view) (annotate) - [select for diffs]
Modified Fri Oct 17 19:27:17 2003 UTC (16 years, 1 month ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 13997 byte(s)
Diff to previous 39412
Fixed eweasel bug `freez026'. By previously fixing the way we handle
creation of generic type using anchored in their specification (e.g. A [like f])
we introduced a bug of type result caching. Indeed before when a `typarr'
had an anchor it contained either LIKE_ARG_TYPE, LIKE_CURRENT_TYPE,
LIKE_PFEATURE_TYPE or LIKE_FEATURE_TYPE. In such cases the C runtime
was preventing the caching of the information.
Now since we do not generate the LIKE_XX constants, but force a computation
of the value in the generated code the caching mechanism was not prevented
therefore in such cases it was giving the proper result the first time around
but not the second time around if the `anchors' were different.

To prevent this we tell the runtime if it can cache it by providing a non NULL
buffer, it cannot if we pass NULL.
To find out if we can pass a non-NULL or NULL, we simply find out if the
generic type is `is_explicit'. When it is `is_explicit, it is known for not
changing during the whole life of the application and we pass a non NULL buffer.
When it is not `is_explicit' then the value would have to be recomputed
each time it is queried, therefore we pass a NULL buffer.

To improve performance in non multithreaded mode we always mark the `typarr'
a static structure. As only one thread at the time can modify it if the
generic type is not explicit. In multithreaded mode, this is not the case
and therefore it is not `static'.

FIXME: we might be better off using `uint16' as on some platforms unsigned
operation are much faster than signed one. The second advantage will be to
increase the number of possible dynamic types from ~32000 to ~65000.


Revision 39412 - (view) (annotate) - [select for diffs]
Modified Sat Oct 4 22:08:21 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 13908 byte(s)
Diff to previous 39145
Fixed eweasel bug exec176. The change is quite dramatic. Instead of generating
special marker in `typarr' for anchored type, we generate just 0. Then the associated
entry is computed later on by applying RTID to the result since `typarr' needs
the `static_type_id', not the `type_id' when in workbench mode.
Moreover when a type has a `cr_info' then we generate the info for this only,
we do not repeat code generation for the type we think we have. I don't understand
why it was done before, I think this was just a mistake to do both, so now
they are separated by a `else'.


Revision 39145 - (view) (annotate) - [select for diffs]
Modified Fri Sep 19 02:32:25 2003 UTC (16 years, 2 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 13867 byte(s)
Diff to previous 37663
Removed `typecode' since not used for a while now.
Added `metamorphose_type' for basic types as some types do not metamorphose
in their corresponding reference type (e.g. TYPED_POINTER [G] which
metamorphosed into POINTER_REF).


Revision 37663 - (view) (annotate) - [select for diffs]
Modified Tue Jun 10 23:44:35 2003 UTC (16 years, 6 months ago) by julieng
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 13989 byte(s)
Diff to previous 37130
Replace !! with create keyword.
Replace creation keyword with create keyword.


Revision 37130 - (view) (annotate) - [select for diffs]
Modified Mon May 5 18:08:43 2003 UTC (16 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 13985 byte(s)
Diff to previous 35702
Minor optimization of `element_type to avoid useless information retrieval.
Removed `is_out' related code since we are now using TYPED_POINTER [XX] to
  represent them.


Revision 35702 - (view) (annotate) - [select for diffs]
Modified Fri Jan 31 23:54:48 2003 UTC (16 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 14201 byte(s)
Diff to previous 35665
Cosmetics in code generation.


Revision 35665 - (view) (annotate) - [select for diffs]
Modified Fri Jan 31 00:53:19 2003 UTC (16 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 14184 byte(s)
Diff to previous 35544
Renamed `generate_basic_creation' into `generate_default_value'.
Renamed `make_basic_creation_byte_code' into `make_default_byte_code'.
Fixed implementation of above two renamed features to do a proper job. The
  reason why it was not updated before was because this code was done in
  SPECIAL_FEATURES, but I felt that it should be defined in the TYPE_I classes
  and not outside (makes source code management easier in the future).
Added `generate_expanded_creation' which is implemented in BIT_I and CL_TYPE_I
  to create in a given register a new instance of an object which is expanded.
Removed `expanded_type_id' in CL_TYPE_I since it was strictly equivalent to
  `type_id'.


Revision 35544 - (view) (annotate) - [select for diffs]
Modified Fri Jan 24 06:26:36 2003 UTC (16 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12354 byte(s)
Diff to previous 35178
Fixed `is_valid' to take into account case where class is still in system
but its generic specification has changed.


Revision 35178 - (view) (annotate) - [select for diffs]
Modified Mon Dec 23 20:08:09 2002 UTC (16 years, 11 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 12287 byte(s)
Diff to previous 34621
Added `is_out' which is used to mark a parameter type has been a `out' parameter.
Only used for interfaces with languages that support out parameters.


Revision 34621 - (view) (annotate) - [select for diffs]
Modified Fri Oct 11 02:31:18 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 11975 byte(s)
Diff to previous 34563
Updated to `set_type_i', new name for `set_class_type_i' in REFERENCE_DESC.


Revision 34563 - (view) (annotate) - [select for diffs]
Modified Thu Oct 3 00:56:51 2002 UTC (17 years, 2 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 11981 byte(s)
Diff to previous 34253
Incorrect code generation for expanded classes of data used for store/retrieve
in order to get the dynamic type of the expanded reference. For some reasons
we were putting the class_id which is useless for the run-time.


Revision 34253 - (view) (annotate) - [select for diffs]
Modified Sun Sep 1 04:56:46 2002 UTC (17 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 11956 byte(s)
Diff to previous 33952
Modified `il_type_name' to take the name as it is stored in the precompiled
assembly and not like the name that would be generated using the current
system options.


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/cl_type_i.e
File length: 11458 byte(s)
Diff to previous 32282
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 32282 - (view) (annotate) - [select for diffs]
Modified Thu May 30 18:53:24 2002 UTC (17 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 10465 byte(s)
Diff to previous 31580
Use `search_item' instead of `conservative_search_item' as now TYPE_LIST
make sure not to move the cursor.


Revision 31580 - (view) (annotate) - [select for diffs]
Modified Wed Apr 17 02:42:15 2002 UTC (17 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 10530 byte(s)
Diff to previous 31541
For the moment we generate a value class `element_type' only for external classes.


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/cl_type_i.e
File length: 10436 byte(s)
Diff to previous 31263
Implemented `element_type', new abstract feature of TYPE_I.


Revision 31263 - (view) (annotate) - [select for diffs]
Modified Wed Apr 3 19:23:50 2002 UTC (17 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 9911 byte(s)
Diff to previous 30582
Replaced use of `+' by `|' for operation on `sk_ref' and `sk_exp' as both sk constants
are mask and it is more logical to use `|' for this type of operation rather than `+'
eventhough the effect is the same.


Revision 30582 - (view) (annotate) - [select for diffs]
Modified Sun Feb 10 00:04:43 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 9911 byte(s)
Diff to previous 30293
Fixed bug in IL code generation for creation of types such as A [like f] where
`f' is either a CL_TYPE_I or a GEN_TYPE_I. We forgot to get the type of `f'
into account.


Revision 30293 - (view) (annotate) - [select for diffs]
Modified Mon Jan 21 02:26:16 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 9766 byte(s)
Diff to previous 30224
Renamed `base_id' into `class_id' to be more consistent with other classes of compiler.
Updated code to use new creation procedure of CL_TYPE_A, GEN_TYPE_A and TUPLE_TYPE_A.


Revision 30224 - (view) (annotate) - [select for diffs]
Modified Thu Jan 17 00:57:45 2002 UTC (17 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 9777 byte(s)
Diff to previous 30169
Added `make' as a creation procedure that basically does the same thing as
`set_base_id' which has been removed.
Added precondition to `set_cr_info'.


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/cl_type_i.e
File length: 9565 byte(s)
Diff to previous 29681
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 29681 - (view) (annotate) - [select for diffs]
Modified Thu Dec 13 21:21:06 2001 UTC (18 years ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 9005 byte(s)
Diff to previous 28618
We do not use the external name anymore for an Eiffel class. Only for pure
external .NET classes.


Revision 28618 - (view) (annotate) - [select for diffs]
Modified Wed Oct 31 04:02:12 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 8853 byte(s)
Diff to previous 28380
Implemented `typecode' that returns the typecode for elements in a TUPLE.


Revision 28380 - (view) (annotate) - [select for diffs]
Modified Wed Oct 24 22:04:53 2001 UTC (18 years, 1 month ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 8729 byte(s)
Diff to previous 26913
Added `is_external' to find out if `base_class' is an external class or not.


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


Revision 16188 - (view) (annotate) - [select for diffs]
Modified Wed Aug 11 19:31:20 1999 UTC (20 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 7936 byte(s)
Diff to previous 14013
FIXME: As a temporary solution we removed the precondition `has_associated_class_type'
from `associated_class_type' since it is not true and also because the algorithm used
to do the search take always the last found item if no item has been found. That's bad
but I don't know what is behind the scene and why such a requirement has been done.


Revision 14013 - (view) (annotate) - [select for diffs]
Modified Wed Apr 14 19:02:53 1999 UTC (20 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 7934 byte(s)
Diff to previous 13232
Fixed a C-ANSI generation problem with generic conformance.
Previously we were generating something like:
	int16 typearr[] ={4,5,Dtype(l[0]),5,-1};
However, this is not accepted by most of the C ANSI compiler (mostly on
Unix platforms). Now, we fix this problem and are generating the following
code:
	int16 typearr[] ={4,5,0,5,-1};
	typearr[2]=Dtype(l[0]);
which is C ANSI.


Revision 13232 - (view) (annotate) - [select for diffs]
Modified Fri Feb 5 03:57:18 1999 UTC (20 years, 10 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 7054 byte(s)
Diff to previous 11734
Fixed some problems related to the use of expanded types in generic parameter or with
simple expanded types:
- Fixed the byte code generation
- Changed the skeleton to handle correctly expanded type as a generic parameter
- Changed the attribute description to match the new skeleton
- Propagation of the expanded information (which was not done before, especially
  with inheritance)
- Changed the make routine of the TO_SPECIAL class so that it handles correctly
  an expanded type.


Revision 11734 - (view) (annotate) - [select for diffs]
Modified Fri Oct 23 23:59:57 1998 UTC (21 years, 1 month ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 7025 byte(s)
Diff to previous 11599
Cosmetics


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/cl_type_i.e
File length: 7025 byte(s)
Diff to previous 11298
Changed the way how to generate a C file. We are now using a string buffer
to bufferize all the IO transfers.


Revision 11298 - (view) (annotate) - [select for diffs]
Modified Sun Sep 13 20:40:22 1998 UTC (21 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 6964 byte(s)
Diff to previous 11218
Improved the conformance of generic by writing in a file instead of creating a STRING.
Fixed one bug related to the use of `has_associated_class_type' in CL_TYPE_I.
Fixed one bug related to a bad generation of C code and the GC


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/cl_type_i.e
File length: 7130 byte(s)
Diff to previous 11209
Improved the speed of generic conformance by adding some static structure in
the C generated code.


Revision 11209 - (view) (annotate) - [select for diffs]
Modified Thu Sep 3 23:27:31 1998 UTC (21 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 7012 byte(s)
Diff to previous 11065
Fixed for generic conformance.


Revision 11065 - (view) (annotate) - [select for diffs]
Modified Wed Aug 19 03:27:55 1998 UTC (21 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 6910 byte(s)
Diff to previous 10890
Removed `associated_expanded_class_type' and `associated_separate_class_type'
since we don't really need them, we always can do it through `associated_class_type'
which is more general.


Revision 10890 - (view) (annotate) - [select for diffs]
Modified Tue Aug 11 00:12:19 1998 UTC (21 years, 4 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 7202 byte(s)
Diff to previous 10818
Updated version of generic conformance


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/cl_type_i.e
File length: 6648 byte(s)
Diff to previous 10196
Add the generic conformance to the compiler


Revision 10196 - (view) (annotate) - [select for diffs]
Modified Fri May 22 01:22:10 1998 UTC (21 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 5536 byte(s)
Diff to previous 10183
Changed former `search_item' into `conservative_search_item' which preserves
cursor's position and add `search_item' which does the same thing as
conservative_search_item' without saving cursor's position


Revision 10183 - (view) (annotate) - [select for diffs]
Modified Thu May 21 23:39:12 1998 UTC (21 years, 6 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 5510 byte(s)
Diff to previous 10140
Fixed one bug concerning the search algorithm used in `description' and in
`associated_class_type', now we are using the `search_item' function from
TYPE_LIST to get back to the old behavior. The problem is that some times
a search is not successful and in this case, we should always return a non-
void element (This has been taking care by `search_item'.


Revision 10140 - (view) (annotate) - [select for diffs]
Modified Thu May 14 00:28:06 1998 UTC (21 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 5860 byte(s)
Diff to previous 9971
Changes to reflect the new TYPE_LIST class.

The previous implementation seems to believe that the old `search' feature
from TYPE_LIST always succeed. Now, I added a check for this assumption
and if we did not find anything I return a Void element. But I'm not sure about
it.


Revision 9971 - (view) (annotate) - [select for diffs]
Modified Wed Apr 22 17:38:29 1998 UTC (21 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 5837 byte(s)
Diff to previous 9655
Changed the way to go within a list, now we are using `cursor' instead of `index'


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


Revision 8805 - (view) (annotate) - [select for diffs]
Modified Wed Dec 10 17:30:55 1997 UTC (22 years ago) by manus
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 5883 byte(s)
Diff to previous 7681
Cosmetics
Fixed a problem with same_as and is_equal in GEN_TYPE_I


Revision 7681 - (view) (annotate) - [select for diffs]
Modified Wed Feb 12 09:23:09 1997 UTC (22 years, 10 months ago) by michaels
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 5922 byte(s)
Diff to previous 6562
*** empty log message ***


Revision 6562 - (view) (annotate) - [select for diffs]
Modified Wed Sep 25 16:56:37 1996 UTC (23 years, 2 months ago) by dinov
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 5271 byte(s)
Diff to previous 5770
E_CLASS indirection removed
class_name => name in CLASS_C (comig from E_CLASS)


Revision 5770 - (view) (annotate) - [select for diffs]
Modified Fri Jun 28 18:53:00 1996 UTC (23 years, 5 months ago) by xavierl
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 5285 byte(s)
Diff to previous 5305
incorrect optimization removed


Revision 5305 - (view) (annotate) - [select for diffs]
Modified Fri May 24 15:43:47 1996 UTC (23 years, 6 months ago) by ericb
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 5271 byte(s)
Diff to previous 4623
optimization: `is_equal' called on IDs instead of `equal'


Revision 4623 - (view) (annotate) - [select for diffs]
Modified Thu Apr 11 10:44:28 1996 UTC (23 years, 8 months ago) by xavierl
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 5269 byte(s)
Diff to previous 3652
implementation of `is_separate'


Revision 3652 - (view) (annotate) - [select for diffs]
Modified Mon Jan 15 15:32:22 1996 UTC (23 years, 11 months ago) by ericb
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 4429 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, 11 months ago) by guusl
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 4401 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/cl_type_i.e
File length: 4426 byte(s)
Diff to previous 3084
different output routines


Revision 3084 - (view) (annotate) - [select for diffs]
Modified Mon Oct 30 11:39:19 1995 UTC (24 years, 1 month ago) by dinov
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 4445 byte(s)
Diff to previous 1323
implementation of the API


Revision 1323 - (view) (annotate) - [select for diffs]
Modified Sat Oct 29 18:24:38 1994 UTC (25 years, 1 month ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 4437 byte(s)
Diff to previous 1204
`dump' generates a standard string (classes in upper case)


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/cl_type_i.e
File length: 4382 byte(s)
Diff to previous 930
array optimization


Revision 930 - (view) (annotate) - [select for diffs]
Modified Sat Aug 27 00:59:35 1994 UTC (25 years, 3 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 4252 byte(s)
Diff to previous 850
array optimization


Revision 850 - (view) (annotate) - [select for diffs]
Modified Sat Aug 20 01:04:52 1994 UTC (25 years, 3 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 3977 byte(s)
Diff to previous 621
optimization and then


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/cl_type_i.e
File length: 3978 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/cl_type_i.e
File length: 3976 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/cl_type_i.e
File length: 3923 byte(s)
Diff to previous 541
*** empty log message ***


Revision 541 - (view) (annotate) - [select for diffs]
Modified Wed May 4 14:50:03 1994 UTC (25 years, 7 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 3723 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/cl_type_i.e
File length: 3719 byte(s)
Diff to previous 485
*** empty log message ***


Revision 485 - (view) (annotate) - [select for diffs]
Modified Fri Feb 18 11:40:51 1994 UTC (25 years, 9 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 3584 byte(s)
Diff to previous 282
*** empty log message ***


Revision 282 - (view) (annotate) - [select for diffs]
Modified Wed Jul 28 16:03:15 1993 UTC (26 years, 4 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 3803 byte(s)
Diff to previous 236
*** empty log message ***


Revision 236 - (view) (annotate) - [select for diffs]
Modified Tue Jun 8 12:09:28 1993 UTC (26 years, 6 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/eiffel/genericity/cl_type_i.e
File length: 3780 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/cl_type_i.e
File length: 3653 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