Parent Directory
|
Revision Log
Links to HEAD: | (view) (annotate) |
Sticky Revision: |
Added monomorph mark for class types, either "frozen" or "invariant". First (simple) conformance check for monomorphic types.
Creation of CAT_mono branch to implement variant/invariant proposal
Moved trunk/Src/bench/Eiffel to trunk/Src/Eiffel.
Fixed mixing paranthesis in indexing clause for the licensing. Added missing license reference in newly created Eiffel classes.
New compiler with new configuration system For now only the batch compiler works
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
Added text of the GPL license to all classes of the compiler.
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").
Supported declaration of assigner command.
Adjusted feature name setting to follow changes for alias name support.
Use new syntax for static calls.
Fixed errors reported by gelint since our compiler does not do yet system validity checking (i.e. flat degree 3 checking).
Changed `partial_actual_type' to not take into account if `reference' was specified or not, because support for `reference X' has been removed.
Added redefinition of `actual_type' to return an instance of NATIVE_ARRAY_TYPE_A and not a GEN_TYPE_A as the inherited version does.
Updated to use new error code names of SPECIAL_CONST. Do not use `once' for signatures of routines as it is only called once per compilation and we don't need to keep them around forever.
Implemented constraints that are either reference or expanded: Renamed `formal_name' to `name' to match new name in FORMAL_AS/FORMAL_DEC_AS. Updated to new way of creating a FORMAL_A instance which now needs to know whether or not it has the `reference' or `expanded' constraint.
Implemented new feature `partial_actual_type' for native array.
Fixed code so that when we insert a new type we `melt_all' features of associated class. This fixes eweasel bug `term114': After initial compilation, a generic class TEST1 [G] is changed to a non-generic class and the class that inherits from TEST1 is changed correspondingly. When the system is frozen, the compiler dies in degree -1.
Replace !! with create keyword. Replace creation keyword with create keyword. Change order of elements in Precursor instructions.
Removed non-used local variable.
Implemented `check_validity' to ensure content of NATIVE_ARRAY on IL code generation.
Removed IL specific generation since SPECIAL are not CLI arrays anymore. Instead they are NATIVE_ARRAY and they are generated in the new class NATIVE_ARRAY_CLASS_TYPE.
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.
ViewVC Help | |
Powered by ViewVC 1.1.23 |