/[eiffelstudio]/branches/CAT_mono/Src/Eiffel/API/evaluated_type/like_current.e
ViewVC logotype

Log of /branches/CAT_mono/Src/Eiffel/API/evaluated_type/like_current.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: 6732 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: 6599 byte(s)
Diff to previous 68030
Creation of CAT_mono branch to implement variant/invariant proposal

Revision 68030 - (view) (annotate) - [select for diffs]
Modified Mon Apr 30 18:38:45 2007 UTC (12 years, 7 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/like_current.e
File length: 6599 byte(s)
Diff to previous 67227
Main change: I merged many occurences of "constrained_type" like features into `FORMAL_A'
Renamed `is_multi_constrained_formal' into `is_multi_constrained'
type_a.e: I moved some features into FORMAL_A because the usage pattern suggests that they are not needed in TYPE_A (to improve speed).
renamed_type_a.e: added implementation for `conformance_type', this was a bug (not reported)
formal_dec_as.e: fixed a bug in `is_multi_constrained' (not reported)

Revision 67227 - (view) (annotate) - [select for diffs]
Modified Tue Mar 13 01:32:16 2007 UTC (12 years, 8 months ago) by martins
Original Path: trunk/Src/Eiffel/API/evaluated_type/like_current.e
File length: 6599 byte(s)
Diff to previous 67176
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 67176 - (view) (annotate) - [select for diffs]
Modified Sat Mar 10 01:10:13 2007 UTC (12 years, 9 months ago) by manus
Original Path: trunk/Src/Eiffel/API/evaluated_type/like_current.e
File length: 6601 byte(s)
Diff to previous 60520
Added `evaluated_type_in_descendant' in TYPE_A to evaluate a type in the context of a descendant class.
  The existing instantiation_in would not do it since it does it in a CL_TYPE_A version of the descandant
  class. Although not yet done, `instantiation_in' could be rewritten in a much simpler fashion by using
  this new routine and the existing `instantiated_in'.
Full class checking:
 - Added `full_class_checking' option in the configuration library and removed the system option
   in SYSTEM_OPTIONS.full_type_checking and the associated settings in the configuration library.
 - Updated code in AST_FEATURE_CHECKER_GENERATOR to perform a correct full class checking.
 - Changed EIFFEL_CLASS_C.pass3 to properly initialize the checker to perform full class checking,
   also melted routine without assertions are checked normally (i.e. `to_melt_in' on DEF_PROC_I
   are now the same as FEATURE_I).
First result of applying catcall checking on the compiler:
 - Fixed a validity error in `is_safe_equivalent' from TYPE_A.
 - Fixed a validity error in CLASS_TYPE.make


Revision 60520 - (view) (annotate) - [select for diffs]
Modified Tue Jun 27 11:13:50 2006 UTC (13 years, 5 months ago) by alexk
Original Path: trunk/Src/Eiffel/API/evaluated_type/like_current.e
File length: 6307 byte(s)
Diff to previous 58325
Redefined `is_external' to fix bug#10485 (see test#valid177).

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


Revision 57426 - (view) (annotate) - [select for diffs]
Modified Fri Mar 10 20:30:45 2006 UTC (13 years, 9 months ago) by tedf
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 6228 byte(s)
Diff to previous 57371
1. Removed all STRUCTURED_TEXT within the compiler.
2. Replaced with TEXT_FORMATTER for editor and documentation output formatting.
 Generally, there are five descendents for the moment.
-OUTPUT_WINDOW: For simple string output. i.e. Command line, file, buffered string etc.
-TEXT_FILTER: For various documentation formatting.
-EB_OUPUT_MANAGER: Mainly for EB_GRAPHICAL_OUTPUT_MANAGER decoration.
-EDITOR_TOKEN_WRITER: Editor tokens are translated here for colorized editor views.
-TEXT_FORMATTER_DECORATOR: A decorator of TEXT_FORMATTERS. Handles context and formatting information. AST visits for outputs are mainly mediated here.
 There are two sets of interface, process_* and add_*. The main one is process_* which is recommended to use. add_* is from STRUCTURED_TEXT which does not exist any more. As it affected vastly, I still keep its interfaces.
3. SHARED_TEXT_ITEMS are all strings now, as items in structured text have been removed.
4. Wrote AST_OUTPUT_STRATEGY which is an AST_VISITOR processing AST to TEXT_FORMATTER. Wrote AST_DECORATED_OUTPUT_STRATEGY a client of TEXT_FORMATTER_DECORATOR. And one AST_DOCUMENTATION_OUTPUT_STRATEGY only for documentation.
5. Removed flat/short views buffering of STRUCTURED_TEXT. It is slightly slower than before, but in my opinion acceptable.
6. Wrote a AST_TYPE_OUTPUT_STRATEGY which visit a type and print its ‘text’ representation output to a TEXT_FORMATTER.
7. Rewrote TOKEN_VISITOR and a descendant EIFFEL_TOKEN_VISITOR for editor tokens in library and in the compiler.
8. Leave printer command prints simple text in current editor. Further work will be done a little later.
9. We gain 22% faster of documentation generation for the moment. Less than we expected, I think, mainly because of additions and accuracy we gain.



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/API/evaluated_type/like_current.e
File length: 6151 byte(s)
Diff to previous 57234
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 57234 - (view) (annotate) - [select for diffs]
Modified Thu Mar 2 01:57:13 2006 UTC (13 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 6441 byte(s)
Diff to previous 56535
Wrote a TYPE_A visitor.


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/API/evaluated_type/like_current.e
File length: 6319 byte(s)
Diff to previous 56013
Added text of the GPL license to all classes of the compiler.


Revision 56013 - (view) (annotate) - [select for diffs]
Modified Mon Dec 5 18:00:32 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 4914 byte(s)
Diff to previous 55811
Promoted "like Current" type to code generation level.


Revision 55811 - (view) (annotate) - [select for diffs]
Modified Mon Nov 21 13:31:53 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 5187 byte(s)
Diff to previous 55791
Used an expandedness status of associated class for "like Current" to avoid
issue with using "like Current" as an actual generic for a formal generic
declared to be "reference".


Revision 55791 - (view) (annotate) - [select for diffs]
Modified Fri Nov 18 08:31:20 2005 UTC (14 years ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 5004 byte(s)
Diff to previous 50191
Changed many features to use a new feature `conformance_type' as well as
to support a slightly different behaviour because now `actual_type' can
return LIKE_CURRENT due to changes in processing of "like Current" type.
Changed signature and implementation of `instantiated_in' and
`instantiation_in' to accept LIKE_CURRENT that can now be used during
type checking in addition to the previously used CL_TYPE_A.


Revision 50191 - (view) (annotate) - [select for diffs]
Modified Tue Apr 19 04:53:21 2005 UTC (14 years, 7 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 3164 byte(s)
Diff to previous 49680
Added redefinition of `instantiated_in' so that we get a correct LIKE_CURRENT
  instance.


Revision 49680 - (view) (annotate) - [select for diffs]
Modified Thu Mar 31 15:29:08 2005 UTC (14 years, 8 months ago) by alexk
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 2873 byte(s)
Diff to previous 41737
Used a feature to get an intrinsic type of manifest constant.


Revision 41737 - (view) (annotate) - [select for diffs]
Modified Fri Mar 5 18:56:29 2004 UTC (15 years, 9 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 3019 byte(s)
Diff to previous 37662
Removed useless redefinition of `is_basic' since new body was the same as
  in parent class LIKE_TYPE_A.
Fixed an issue with the way operations are done on manifest integers. When
  the `like Current' reports to a manifest integer, then we forget its size
  and we use either 32 bits or 64 bits. It breaks some code, but it is much
  more correct that way (See comments on `instantiation_in' for what is now
  broken).


Revision 37662 - (view) (annotate) - [select for diffs]
Modified Tue Jun 10 23:37:06 2003 UTC (16 years, 6 months ago) by julieng
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 2123 byte(s)
Diff to previous 26913
Replace creation keyword with create keyword.


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/API/evaluated_type/like_current.e
File length: 2103 byte(s)
Diff to previous 11302
Merged branch `dev46_manu' to the trunc.


Revision 11302 - (view) (annotate) - [select for diffs]
Modified Sun Sep 13 22:35:07 1998 UTC (21 years, 2 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 2228 byte(s)
Diff to previous 11128
Removed `evaluated_type' and `associated_eclass' from TYPE_A and from their
descendants.

The first one, because it was a synonym to `actual_type'
The second one because it was the same as `associated_class'

Removed also useless precondition which were not exactly doing what their author
expected.


Revision 11128 - (view) (annotate) - [select for diffs]
Modified Mon Aug 24 02:25:56 1998 UTC (21 years, 3 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 2362 byte(s)
Diff to previous 9656
We removed E_CLASS from the system, we should now use CLASS_C instead.


Revision 9656 - (view) (annotate) - [select for diffs]
Modified Sun Mar 15 02:19:40 1998 UTC (21 years, 8 months ago) by manus
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 2362 byte(s)
Diff to previous 5775
Cosmetics
Changed some inheritance scheme concerning types
Add the depedency between genrics in GEN_TYPE_A


Revision 5775 - (view) (annotate) - [select for diffs]
Modified Fri Jun 28 18:56:07 1996 UTC (23 years, 5 months ago) by xavierl
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 3773 byte(s)
Diff to previous 3652
`is_equivalent' implemented (used instead of `deep_equal')


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/API/evaluated_type/like_current.e
File length: 3792 byte(s)
Diff to previous 3632
new abstractions for system counters (class ids and type ids)


Revision 3632 - (view) (annotate) - [select for diffs]
Modified Mon Jan 15 11:35:14 1996 UTC (23 years, 10 months ago) by guusl
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 3834 byte(s)
Diff to previous 3375
output done through STRUCTURED_TEXT instead of OUTPUT_WINDOW


Revision 3375 - (view) (annotate) - [select for diffs]
Modified Mon Dec 4 11:38:01 1995 UTC (24 years ago) by dinov
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 3832 byte(s)
Diff to previous 3181
cosmetics (indexing, feature clauses, comments)


Revision 3181 - (view) (annotate) - [select for diffs]
Modified Tue Nov 21 16:40:33 1995 UTC (24 years ago) by dinov
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 3744 byte(s)
Diff to previous 3076
reorganization in feature clauses


Revision 3076 - (view) (annotate) - [select for diffs]
Modified Mon Oct 30 11:20:12 1995 UTC (24 years, 1 month ago) by dinov
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 3768 byte(s)
Diff to previous 2659
features moved in specific feature clauses (Access, Output, ...)


Revision 2659 - (view) (annotate) - [select for diffs]
Modified Wed Jul 5 16:25:31 1995 UTC (24 years, 5 months ago) by dewij
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 3464 byte(s)
Diff to previous 1167
abstract parser: <type> => <type_B>


Revision 1167 - (view) (annotate) - [select for diffs]
Modified Tue Oct 4 23:00:57 1994 UTC (25 years, 2 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 3462 byte(s)
Diff to previous 605
case stuff


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/API/evaluated_type/like_current.e
File length: 3235 byte(s)
Diff to previous 547
*** empty log message ***


Revision 547 - (view) (annotate) - [select for diffs]
Modified Mon May 9 17:25:40 1994 UTC (25 years, 7 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 3224 byte(s)
Diff to previous 296
*** empty log message ***


Revision 296 - (view) (annotate) - [select for diffs]
Modified Thu Aug 19 20:09:35 1993 UTC (26 years, 3 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 2968 byte(s)
Diff to previous 274
*** empty log message ***


Revision 274 - (view) (annotate) - [select for diffs]
Modified Fri Jul 9 15:22:19 1993 UTC (26 years, 5 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 2793 byte(s)
Diff to previous 37
*** empty log message ***


Revision 37 - (view) (annotate) - [select for diffs]
Modified Mon Mar 15 12:25:50 1993 UTC (26 years, 9 months ago) by grator
Original Path: trunk/Src/bench/Eiffel/API/evaluated_type/like_current.e
File length: 2733 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/API/evaluated_type/like_current.e
File length: 2612 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